@luban-code/luban-code 1.100.0 → 1.100.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/acp.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 xv=Object.create;var am=Object.defineProperty;var Sv=Object.getOwnPropertyDescriptor;var vv=Object.getOwnPropertyNames;var _v=Object.getPrototypeOf,Tv=Object.prototype.hasOwnProperty;var Z=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Mv=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of vv(e))!Tv.call(t,r)&&r!==n&&am(t,r,{get:()=>e[r],enumerable:!(s=Sv(e,r))||s.enumerable});return t};var Cv=(t,e,n)=>(n=t!=null?xv(_v(t)):{},Mv(e||!t||!t.__esModule?am(n,"default",{value:t,enumerable:!0}):n,t));var Ea=Z((wI,Av)=>{Av.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.100.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:"git+https://github.com/eppen/luban.git"},engines:{vscode:"^1.104.0"},categories:["AI","Chat","Programming Languages"],activationEvents:["onStartupFinished","onView:luban.chatView","onCommand:luban.focusView","onCommand:luban.browserPreview","onCommand:luban.markdownPreview"],main:"./dist/extension.js",bin:{luban:"dist/cli.js","luban-code":"dist/cli.js","luban-acp":"dist/acp.js"},files:["dist/cli.js","dist/acp.js","dist/cli-plugin.js","dist/extension.js","registry/","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:review-autokeep":"node scripts/build.js && node scripts/test-review-autokeep.js","test:skills":"node scripts/test-skills.js","test:rules":"node scripts/test-rules.js","test:plugins":"node scripts/test-plugins.js","test:plugins-ext":"node scripts/test-plugins-ext.js","test:registry":"node scripts/test-registry-client.js","test:registry-skill":"node scripts/test-registry-skill.js","test:install":"node scripts/test-install-scripts.js",cli:"node cli.js","test:acp":"node scripts/test-acp.js","test:acp-pkg":"node scripts/test-acp-pkg.js","test:cli-resume":"node scripts/test-cli-resume.js",vsix:"node scripts/vsix.js","test:general":"node scripts/test-general-settings.js","test:provider-models":"node scripts/test-provider-models.js","test:hub":"node scripts/test-hub-tabs.js","test:hub-market":"node scripts/test-hub-market.js","test:market-ext":"node scripts/test-market-ext.js","test:sync-registry":"node scripts/test-sync-registry.js","test:i18n":"node scripts/test-i18n.js","test:css":"node scripts/test-css-vars.js","test:webdav":"node scripts/test-webdav.js","test:webdav-override":"node scripts/test-webdav-override.js","test:browser-events":"node scripts/test-browser-events.js","test:browser-tool":"node scripts/test-browser-tool.js","test:browser-launch":"node scripts/test-browser-launch.js","test:computer-linux":"node scripts/test-computer-linux.js","test:computer-linux-live":"node scripts/live-computer-linux.js","test:computer-tool":"node scripts/test-computer-tool.js","test:subagent":"node scripts/test-subagent-guards.js","test:lm-provider":"node scripts/test-lm-provider.js","test:agent-budget":"node scripts/test-agent-budget.js","test:gamepad":"node scripts/test-gamepad.js","test:status":"node scripts/test-status.js","test:avatar":"node scripts/test-avatar.js","test:cli-md":"node scripts/test-cli-md.js","test:mdpreview":"node scripts/test-mdpreview.js","test:mdpreview-live":"node scripts/live-mdpreview.js","test:cli-confirm":"node scripts/test-cli-confirm.js","test:cli-input":"node scripts/test-cli-input.js","test:token-audit":"node scripts/test-token-audit.js","test:think":"node scripts/test-think.js","test:webfetch-md":"node scripts/test-webfetch-md.js","test:tabs":"node scripts/test-workspace-tab-filter.js","test:status-live":"node scripts/live-status.js","test:review-freeze":"node scripts/live-review-freeze.js","test:review-focus":"node scripts/live-review-focus.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.plugins",title:"%cmdPlugins%",category:"Luban"},{command:"luban.market",title:"%cmdMarket%",category:"Luban"},{command:"luban.rules.open",title:"%cmdOpenRules%",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.findInSession",title:"%cmdFindInSession%",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.addFileToNewChat",title:"%cmdAddFileToNewChat%",category:"Luban"},{command:"luban.addFolderToNewChat",title:"%cmdAddFolderToNewChat%",category:"Luban"},{command:"luban.addSelectionToChat",title:"%cmdAddSelectionToChat%",category:"Luban"},{command:"luban.addSelectionToNewChat",title:"%cmdAddSelectionToNewChat%",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"},{command:"luban.browserPreview",title:"%cmdBrowserPreview%",category:"Luban"},{command:"luban.markdownPreview",title:"%cmdMarkdownPreview%",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"},{command:"luban.markdownPreview",when:"resourceLangId == markdown",group:"navigation@3",icon:"$(preview)"}],"explorer/context":[{command:"luban.addFileToChat",when:"!explorerResourceIsFolder && resourceScheme == file",group:"1_luban@1"},{command:"luban.addFolderToChat",when:"explorerResourceIsFolder && resourceScheme == file",group:"1_luban@2"},{command:"luban.addFileToNewChat",when:"!explorerResourceIsFolder && resourceScheme == file",group:"1_luban@3"},{command:"luban.addFolderToNewChat",when:"explorerResourceIsFolder && resourceScheme == file",group:"1_luban@4"}],"editor/context":[{command:"luban.addSelectionToChat",when:"editorHasSelection && resourceScheme == file",group:"1_luban@0"},{command:"luban.addSelectionToNewChat",when:"editorHasSelection && resourceScheme == file",group:"1_luban@1"}],"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.addFileToNewChat",when:"false"},{command:"luban.addFolderToNewChat",when:"false"},{command:"luban.addSelectionToChat",when:"editorHasSelection"},{command:"luban.addSelectionToNewChat",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.findInSession",key:"cmd+f",mac:"cmd+f",win:"ctrl+f",linux:"ctrl+f",when:"focusedView == 'luban.chatView'"},{command:"luban.findInSession",key:"cmd+f",mac:"cmd+f",win:"ctrl+f",linux:"ctrl+f",when:"activeWebviewPanelId == 'luban'"},{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",icon:"media/icon.svg"}]},languageModelChatProviders:[{vendor:"luban",displayName:"Luban",icon:"media/icon.png",managementCommand:"luban.providerSettings"}],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:200,minimum:0,description:"%cfgAgentMaxRounds%"},"luban.agent.maxMinutes":{type:"number",default:30,minimum:1,description:"%cfgAgentMaxMinutes%"},"luban.agent.noWriteNudges":{type:"number",default:2,minimum:0,description:"%cfgAgentNoWriteNudges%"},"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.net.tlsMaxVersion":{type:"string",enum:["auto","1.2"],enumDescriptions:["%cfgNetTlsMaxVersionAuto%","%cfgNetTlsMaxVersion12%"],default:"auto",description:"%cfgNetTlsMaxVersion%"},"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.browser.confirm":{type:"boolean",default:!0,description:"%cfgBrowserConfirm%"},"luban.browser.preview":{type:"boolean",default:!1,description:"%cfgBrowserPreview%"},"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.plugins.enabled":{type:"boolean",default:!1,description:"%cfgPluginsEnabled%"},"luban.plugins.maxTools":{type:"number",default:30,minimum:1,maximum:200,description:"%cfgPluginsMaxTools%"},"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.review.autoKeep":{type:"boolean",default:!1,description:"%cfgReviewAutoKeep%"},"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%"},"luban.statusBar.enabled":{type:"boolean",default:!0,description:"%cfgStatusBarEnabled%"},"luban.rules.enabled":{type:"boolean",default:!0,description:"%cfgRulesEnabled%"},"luban.rules.maxChars":{type:"number",default:12e3,minimum:1e3,description:"%cfgRulesMaxChars%"},"luban.rules.indexMaxChars":{type:"number",default:2e3,minimum:200,description:"%cfgRulesIndexMaxChars%"}}}},devDependencies:{esbuild:"^0.25.0"},dependencies:{"@clack/prompts":"^1.8.1",picocolors:"^1.1.1"}}});var cm=Z((bI,lm)=>{"use strict";var Pa=require("fs"),qo=require("path"),jc=require("module");function Bo(t){let e=function(){return s},n={version:"1.104.0",env:{language:t.language||"zh-cn",appName:"luban-acp",uriScheme:"file",appHost:"desktop"},workspace:{textDocuments:[],getConfiguration:function(){return{get:function(){},has:function(){return!1},inspect:function(){}}},onDidChangeConfiguration:function(){return{dispose:function(){}}},fs:{writeFile:function(r,o){return new Promise(function(i,a){try{Pa.mkdirSync(qo.dirname(r.fsPath),{recursive:!0}),Pa.writeFileSync(r.fsPath,o),i(void 0)}catch(l){a(l)}})},readFile:function(r){return new Promise(function(o,i){Pa.readFile(r.fsPath,function(a,l){a?i(a):o(l)})})},stat:function(r){return new Promise(function(o,i){Pa.stat(r.fsPath,function(a,l){a?i(a):o(l)})})}}},languages:{getDiagnostics:function(){return[]},onDidChangeDiagnostics:function(){return{dispose:function(){}}}},window:{activeTextEditor:null,visibleTextEditors:[],showErrorMessage:function(){return Promise.resolve(void 0)},showInformationMessage:function(){return Promise.resolve(void 0)},showWarningMessage:function(){return Promise.resolve(void 0)},createOutputChannel:function(){return{appendLine:function(){},append:function(){},show:function(){},dispose:function(){}}},onDidChangeActiveTextEditor:function(){return{dispose:function(){}}},createStatusBarItem:function(){return{text:"",tooltip:"",show:function(){},hide:function(){},dispose:function(){}}}},commands:{executeCommand:function(r){return Promise.reject(new Error("ACP \u8FDB\u7A0B\u6CA1\u6709\u7F16\u8F91\u5668\uFF0C\u4E0D\u80FD\u6267\u884C\u547D\u4EE4 "+r))},registerCommand:function(){return{dispose:function(){}}}},extensions:{getExtension:function(){return null},all:[]},Uri:{file:function(r){return{fsPath:r,scheme:"file",path:r,toString:function(){return"file://"+r},with:function(){return n.Uri.file(r)}}},parse:function(r){let o=/^file:\/\/(.*)$/.exec(String(r));return{fsPath:o?decodeURIComponent(o[1]):String(r),scheme:"file"}},joinPath:function(r,...o){return n.Uri.file(qo.join(r.fsPath,...o))}},Position:function(r,o){this.line=r,this.character=o},Range:function(r,o,i,a){this.start=new n.Position(r,o),this.end=new n.Position(i,a)},CancellationTokenSource:function(){let r=[];return{token:{isCancellationRequested:!1,onCancellationRequested:function(o){return r.push(o),{dispose:function(){}}}},cancel:function(){r.forEach(function(o){try{o()}catch{}})},dispose:function(){}}},EventEmitter:function(){let r=[];return{event:function(o){return r.push(o),{dispose:function(){}}},fire:function(o){r.forEach(function(i){try{i(o)}catch{}})},dispose:function(){}}}};Object.defineProperty(n.workspace,"workspaceFolders",{enumerable:!0,get:function(){return t.root?[{uri:{fsPath:t.root,scheme:"file",toString:function(){return"file://"+t.root}},name:qo.basename(t.root),index:0}]:[]}});let s=new Proxy(e,{get:function(r,o){if(!(o==="then"||o===Symbol.toPrimitive||o==="inspect"||o===Symbol.iterator))return o in n?n[o]:(o in r||(r[o]=Bo(t)),r[o])},apply:function(){return Bo(t)},construct:function(){return Bo(t)}});return s}function Ov(t){let e=t||{},n={root:qo.resolve(e.root||process.cwd()),language:e.language||""},s=Bo(n),r=jc._load;return jc._load=function(o,i,a){return o==="vscode"?s:r.call(this,o,i,a)},{stub:s,get root(){return n.root},setRoot:function(o){n.root=qo.resolve(o)},restore:function(){jc._load=r}}}lm.exports={install:Ov,makeStub:Bo}});var Ic=Z((kI,um)=>{function Uo(t){let e=String(t??"");return e===""?[]:e.split(`
3
+ "use strict";var xv=Object.create;var am=Object.defineProperty;var Sv=Object.getOwnPropertyDescriptor;var vv=Object.getOwnPropertyNames;var _v=Object.getPrototypeOf,Tv=Object.prototype.hasOwnProperty;var Z=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Mv=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of vv(e))!Tv.call(t,r)&&r!==n&&am(t,r,{get:()=>e[r],enumerable:!(s=Sv(e,r))||s.enumerable});return t};var Cv=(t,e,n)=>(n=t!=null?xv(_v(t)):{},Mv(e||!t||!t.__esModule?am(n,"default",{value:t,enumerable:!0}):n,t));var Ea=Z((wI,Av)=>{Av.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.100.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:"git+https://github.com/eppen/luban.git"},engines:{vscode:"^1.104.0"},categories:["AI","Chat","Programming Languages"],activationEvents:["onStartupFinished","onView:luban.chatView","onCommand:luban.focusView","onCommand:luban.browserPreview","onCommand:luban.markdownPreview"],main:"./dist/extension.js",bin:{luban:"dist/cli.js","luban-code":"dist/cli.js","luban-acp":"dist/acp.js"},files:["dist/cli.js","dist/acp.js","dist/cli-plugin.js","dist/extension.js","registry/","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:review-autokeep":"node scripts/build.js && node scripts/test-review-autokeep.js","test:skills":"node scripts/test-skills.js","test:rules":"node scripts/test-rules.js","test:plugins":"node scripts/test-plugins.js","test:plugins-ext":"node scripts/test-plugins-ext.js","test:registry":"node scripts/test-registry-client.js","test:registry-skill":"node scripts/test-registry-skill.js","test:install":"node scripts/test-install-scripts.js",cli:"node cli.js","test:acp":"node scripts/test-acp.js","test:acp-pkg":"node scripts/test-acp-pkg.js","test:cli-resume":"node scripts/test-cli-resume.js",vsix:"node scripts/vsix.js","test:general":"node scripts/test-general-settings.js","test:provider-models":"node scripts/test-provider-models.js","test:hub":"node scripts/test-hub-tabs.js","test:hub-market":"node scripts/test-hub-market.js","test:market-ext":"node scripts/test-market-ext.js","test:sync-registry":"node scripts/test-sync-registry.js","test:i18n":"node scripts/test-i18n.js","test:css":"node scripts/test-css-vars.js","test:webdav":"node scripts/test-webdav.js","test:webdav-override":"node scripts/test-webdav-override.js","test:browser-events":"node scripts/test-browser-events.js","test:browser-tool":"node scripts/test-browser-tool.js","test:browser-launch":"node scripts/test-browser-launch.js","test:computer-linux":"node scripts/test-computer-linux.js","test:computer-linux-live":"node scripts/live-computer-linux.js","test:computer-tool":"node scripts/test-computer-tool.js","test:subagent":"node scripts/test-subagent-guards.js","test:lm-provider":"node scripts/test-lm-provider.js","test:agent-budget":"node scripts/test-agent-budget.js","test:gamepad":"node scripts/test-gamepad.js","test:status":"node scripts/test-status.js","test:avatar":"node scripts/test-avatar.js","test:cli-md":"node scripts/test-cli-md.js","test:mdpreview":"node scripts/test-mdpreview.js","test:mdpreview-live":"node scripts/live-mdpreview.js","test:cli-confirm":"node scripts/test-cli-confirm.js","test:cli-input":"node scripts/test-cli-input.js","test:token-audit":"node scripts/test-token-audit.js","test:think":"node scripts/test-think.js","test:webfetch-md":"node scripts/test-webfetch-md.js","test:tabs":"node scripts/test-workspace-tab-filter.js","test:status-live":"node scripts/live-status.js","test:review-freeze":"node scripts/live-review-freeze.js","test:review-focus":"node scripts/live-review-focus.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.plugins",title:"%cmdPlugins%",category:"Luban"},{command:"luban.market",title:"%cmdMarket%",category:"Luban"},{command:"luban.rules.open",title:"%cmdOpenRules%",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.findInSession",title:"%cmdFindInSession%",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.addFileToNewChat",title:"%cmdAddFileToNewChat%",category:"Luban"},{command:"luban.addFolderToNewChat",title:"%cmdAddFolderToNewChat%",category:"Luban"},{command:"luban.addSelectionToChat",title:"%cmdAddSelectionToChat%",category:"Luban"},{command:"luban.addSelectionToNewChat",title:"%cmdAddSelectionToNewChat%",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"},{command:"luban.browserPreview",title:"%cmdBrowserPreview%",category:"Luban"},{command:"luban.markdownPreview",title:"%cmdMarkdownPreview%",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"},{command:"luban.markdownPreview",when:"resourceLangId == markdown",group:"navigation@3",icon:"$(preview)"}],"explorer/context":[{command:"luban.addFileToChat",when:"!explorerResourceIsFolder && resourceScheme == file",group:"1_luban@1"},{command:"luban.addFolderToChat",when:"explorerResourceIsFolder && resourceScheme == file",group:"1_luban@2"},{command:"luban.addFileToNewChat",when:"!explorerResourceIsFolder && resourceScheme == file",group:"1_luban@3"},{command:"luban.addFolderToNewChat",when:"explorerResourceIsFolder && resourceScheme == file",group:"1_luban@4"}],"editor/context":[{command:"luban.addSelectionToChat",when:"editorHasSelection && resourceScheme == file",group:"1_luban@0"},{command:"luban.addSelectionToNewChat",when:"editorHasSelection && resourceScheme == file",group:"1_luban@1"}],"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.addFileToNewChat",when:"false"},{command:"luban.addFolderToNewChat",when:"false"},{command:"luban.addSelectionToChat",when:"editorHasSelection"},{command:"luban.addSelectionToNewChat",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.findInSession",key:"cmd+f",mac:"cmd+f",win:"ctrl+f",linux:"ctrl+f",when:"focusedView == 'luban.chatView'"},{command:"luban.findInSession",key:"cmd+f",mac:"cmd+f",win:"ctrl+f",linux:"ctrl+f",when:"activeWebviewPanelId == 'luban'"},{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",icon:"media/icon.svg"}]},languageModelChatProviders:[{vendor:"luban",displayName:"Luban",icon:"media/icon.png",managementCommand:"luban.providerSettings"}],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:200,minimum:0,description:"%cfgAgentMaxRounds%"},"luban.agent.maxMinutes":{type:"number",default:30,minimum:1,description:"%cfgAgentMaxMinutes%"},"luban.agent.noWriteNudges":{type:"number",default:2,minimum:0,description:"%cfgAgentNoWriteNudges%"},"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.net.tlsMaxVersion":{type:"string",enum:["auto","1.2"],enumDescriptions:["%cfgNetTlsMaxVersionAuto%","%cfgNetTlsMaxVersion12%"],default:"auto",description:"%cfgNetTlsMaxVersion%"},"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.browser.confirm":{type:"boolean",default:!0,description:"%cfgBrowserConfirm%"},"luban.browser.preview":{type:"boolean",default:!1,description:"%cfgBrowserPreview%"},"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.plugins.enabled":{type:"boolean",default:!1,description:"%cfgPluginsEnabled%"},"luban.plugins.maxTools":{type:"number",default:30,minimum:1,maximum:200,description:"%cfgPluginsMaxTools%"},"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.review.autoKeep":{type:"boolean",default:!1,description:"%cfgReviewAutoKeep%"},"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%"},"luban.statusBar.enabled":{type:"boolean",default:!0,description:"%cfgStatusBarEnabled%"},"luban.rules.enabled":{type:"boolean",default:!0,description:"%cfgRulesEnabled%"},"luban.rules.maxChars":{type:"number",default:12e3,minimum:1e3,description:"%cfgRulesMaxChars%"},"luban.rules.indexMaxChars":{type:"number",default:2e3,minimum:200,description:"%cfgRulesIndexMaxChars%"}}}},devDependencies:{esbuild:"^0.25.0"},dependencies:{"@clack/prompts":"^1.8.1",picocolors:"^1.1.1"}}});var cm=Z((bI,lm)=>{"use strict";var Pa=require("fs"),qo=require("path"),jc=require("module");function Bo(t){let e=function(){return s},n={version:"1.104.0",env:{language:t.language||"zh-cn",appName:"luban-acp",uriScheme:"file",appHost:"desktop"},workspace:{textDocuments:[],getConfiguration:function(){return{get:function(){},has:function(){return!1},inspect:function(){}}},onDidChangeConfiguration:function(){return{dispose:function(){}}},fs:{writeFile:function(r,o){return new Promise(function(i,a){try{Pa.mkdirSync(qo.dirname(r.fsPath),{recursive:!0}),Pa.writeFileSync(r.fsPath,o),i(void 0)}catch(l){a(l)}})},readFile:function(r){return new Promise(function(o,i){Pa.readFile(r.fsPath,function(a,l){a?i(a):o(l)})})},stat:function(r){return new Promise(function(o,i){Pa.stat(r.fsPath,function(a,l){a?i(a):o(l)})})}}},languages:{getDiagnostics:function(){return[]},onDidChangeDiagnostics:function(){return{dispose:function(){}}}},window:{activeTextEditor:null,visibleTextEditors:[],showErrorMessage:function(){return Promise.resolve(void 0)},showInformationMessage:function(){return Promise.resolve(void 0)},showWarningMessage:function(){return Promise.resolve(void 0)},createOutputChannel:function(){return{appendLine:function(){},append:function(){},show:function(){},dispose:function(){}}},onDidChangeActiveTextEditor:function(){return{dispose:function(){}}},createStatusBarItem:function(){return{text:"",tooltip:"",show:function(){},hide:function(){},dispose:function(){}}}},commands:{executeCommand:function(r){return Promise.reject(new Error("ACP \u8FDB\u7A0B\u6CA1\u6709\u7F16\u8F91\u5668\uFF0C\u4E0D\u80FD\u6267\u884C\u547D\u4EE4 "+r))},registerCommand:function(){return{dispose:function(){}}}},extensions:{getExtension:function(){return null},all:[]},Uri:{file:function(r){return{fsPath:r,scheme:"file",path:r,toString:function(){return"file://"+r},with:function(){return n.Uri.file(r)}}},parse:function(r){let o=/^file:\/\/(.*)$/.exec(String(r));return{fsPath:o?decodeURIComponent(o[1]):String(r),scheme:"file"}},joinPath:function(r,...o){return n.Uri.file(qo.join(r.fsPath,...o))}},Position:function(r,o){this.line=r,this.character=o},Range:function(r,o,i,a){this.start=new n.Position(r,o),this.end=new n.Position(i,a)},CancellationTokenSource:function(){let r=[];return{token:{isCancellationRequested:!1,onCancellationRequested:function(o){return r.push(o),{dispose:function(){}}}},cancel:function(){r.forEach(function(o){try{o()}catch{}})},dispose:function(){}}},EventEmitter:function(){let r=[];return{event:function(o){return r.push(o),{dispose:function(){}}},fire:function(o){r.forEach(function(i){try{i(o)}catch{}})},dispose:function(){}}}};Object.defineProperty(n.workspace,"workspaceFolders",{enumerable:!0,get:function(){return t.root?[{uri:{fsPath:t.root,scheme:"file",toString:function(){return"file://"+t.root}},name:qo.basename(t.root),index:0}]:[]}});let s=new Proxy(e,{get:function(r,o){if(!(o==="then"||o===Symbol.toPrimitive||o==="inspect"||o===Symbol.iterator))return o in n?n[o]:(o in r||(r[o]=Bo(t)),r[o])},apply:function(){return Bo(t)},construct:function(){return Bo(t)}});return s}function Ov(t){let e=t||{},n={root:qo.resolve(e.root||process.cwd()),language:e.language||""},s=Bo(n),r=jc._load;return jc._load=function(o,i,a){return o==="vscode"?s:r.call(this,o,i,a)},{stub:s,get root(){return n.root},setRoot:function(o){n.root=qo.resolve(o)},restore:function(){jc._load=r}}}lm.exports={install:Ov,makeStub:Bo}});var Ic=Z((kI,um)=>{function Uo(t){let e=String(t??"");return e===""?[]:e.split(`
4
4
  `)}function Nc(t){return(t||[]).join(`
5
5
  `)}function Ev(t,e){let n=t.length,s=e.length,r=s+1,o=new Int32Array((n+1)*r);for(let c=n-1;c>=0;c--){let u=c*r,d=(c+1)*r;for(let f=s-1;f>=0;f--)o[u+f]=t[c]===e[f]?o[d+f+1]+1:Math.max(o[d+f],o[u+f+1])}let i=[],a=0,l=0;for(;a<n&&l<s;)t[a]===e[l]?(i.push({t:" ",s:t[a]}),a++,l++):o[(a+1)*r+l]>=o[a*r+l+1]?(i.push({t:"-",s:t[a]}),a++):(i.push({t:"+",s:e[l]}),l++);for(;a<n;)i.push({t:"-",s:t[a++]});for(;l<s;)i.push({t:"+",s:e[l++]});return i}function Pv(t,e,n){let s=0,r=0;for(let u=0;u<e;u++)t[u].t!=="+"&&s++,t[u].t!=="-"&&r++;let o=t.slice(e,n).map(function(u){return{t:u.t,s:u.s}}),i=0,a=0,l=0,c=0;for(let u of o)u.t!=="+"&&i++,u.t!=="-"&&a++,u.t==="+"&&l++,u.t==="-"&&c++;return{oldStart:s,oldLines:i,newStart:r,newLines:a,add:l,del:c,header:"@@ -"+(s+1)+","+i+" +"+(r+1)+","+a+" @@",lines:o}}function jv(t){let e=[];for(let r=0;r<t.length;r++)t[r].t!==" "&&e.push(r);let n=[],s=0;for(;s<e.length;){let r=e[s],o=r,i=s+1;for(;i<e.length&&e[i]-o-1<=2*3;)o=e[i],i++;s=i;let a=Math.max(0,r-3),l=Math.min(t.length,o+3+1);n.push(Pv(t,a,l))}return n.forEach(function(r,o){r.id="h"+(o+1)}),n}function Nv(t,e){let n=Uo(t),s=Uo(e),r=n.length,o=s.length,i=0;for(;i<r&&i<o&&n[i]===s[i];)i++;let a=0;for(;a<r-i&&a<o-i&&n[r-1-a]===s[o-1-a];)a++;let l=n.slice(i,r-a),c=s.slice(i,o-a);if(!l.length&&!c.length)return[];let u;l.length*c.length>1e6?u=l.map(function(f){return{t:"-",s:f}}).concat(c.map(function(f){return{t:"+",s:f}})):u=Ev(l,c);let d=[];for(let f=0;f<i;f++)d.push({t:" ",s:n[f]});for(let f of u)d.push(f);for(let f=r-a;f<r;f++)d.push({t:" ",s:n[f]});return jv(d)}function Iv(t){let e=0,n=0;for(let s of t||[])e+=s.add,n+=s.del;return{add:e,del:n,hunks:(t||[]).length}}function Lv(t,e){let n=Uo(t),s=[];for(let r of e.lines)r.t!=="-"&&s.push(r.s);return Nc(n.slice(0,e.oldStart).concat(s,n.slice(e.oldStart+e.oldLines)))}function Fv(t,e){let n=Uo(t),s=[];for(let r of e.lines)r.t!=="+"&&s.push(r.s);return Nc(n.slice(0,e.newStart).concat(s,n.slice(e.newStart+e.newLines)))}function Dv(t,e){let n=[];for(let s of e.lines)s.t!=="+"&&n.push(s.s);return{start:e.newStart,end:e.newStart+e.newLines,lines:n}}function Rv(t){let e=[],n=[],s=t.newStart,r=-1,o=null;for(let i of t.lines)i.t==="+"?(r<0&&(r=s),s++):i.t==="-"?(r>=0&&(e.push({start:r,count:s-r}),r=-1),o||(o={at:s,lines:[]},n.push(o)),o.lines.push(i.s)):(r>=0&&(e.push({start:r,count:s-r}),r=-1),o=null,s++);return r>=0&&e.push({start:r,count:s-r}),{add:e,del:n}}um.exports={CONTEXT:3,splitLines:Uo,joinLines:Nc,computeHunks:Nv,stats:Iv,applyHunkToBaseline:Lv,revertHunkText:Fv,revertHunkEdit:Dv,hunkRanges:Rv}});var wm=Z((xI,ym)=>{var Lt=require("fs"),Hr=require("fs").promises,Fc=require("path"),pm=500,Lc=2e4,dm=2e4,qv=8e4,Bv=4e3,Uv=20,Wv=40,mm=50,Kv=4,Hv=5*1024*1024,zv={"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif"},Gv=/^[A-Za-z0-9_-]+\.[a-z]{3,4}$/;function ss(t){return(t<10?"0":"")+t}function Dc(t){let e=t||new Date;return e.getFullYear()+ss(e.getMonth()+1)+ss(e.getDate())+"-"+ss(e.getHours())+ss(e.getMinutes())+ss(e.getSeconds())+"-"+Math.random().toString(36).slice(2,6)}function Me(t,e){let n=String(t??"");return n.length>e?n.slice(0,e)+"\u2026":n}function Jv(t){if(!Array.isArray(t)||!t.length)return;let e=[];for(let n of t.slice(0,Kv)){if(!n||typeof n!="object")continue;let s=Me(n.file,120),r=String(n.mime==null?"":n.mime),o=zv[r];if(!o||!Gv.test(s)||s.slice(s.lastIndexOf(".")+1)!==o)continue;let i=Math.min(Hv,Math.floor(Number(n.bytes)||0));i<=0||e.push({file:s,mime:r,bytes:i})}return e.length?e:void 0}function $v(t){let e=t?new Date(t):new Date;return isNaN(e.getTime())?"":ss(e.getMonth()+1)+"-"+ss(e.getDate())+" "+ss(e.getHours())+":"+ss(e.getMinutes())}var hm="\u65B0\u4F1A\u8BDD";function Xv(t){typeof t=="string"&&t&&(hm=t)}function Wo(t,e,n){for(let s of t||[])if(s&&s.t==="user"&&s.text){let r=String(s.text).replace(/\s+/g," ").trim();if(r)return r.length>40?r.slice(0,40)+"\u2026":r}return(n||hm)+" \xB7 "+$v(e)}var Vv=40,Yv={pending:1,in_progress:1,completed:1,cancelled:1},Zv=4,Qv=6;function fm(t){if(!Array.isArray(t)||!t.length)return[];let e=[];for(let n of t.slice(0,Vv)){if(!n||typeof n!="object")continue;let s=Me(n.id,64).trim(),r=Me(n.content,200).trim();if(!s||!r)continue;let o=String(n.status==null?"pending":n.status).trim().toLowerCase();e.push({id:s,content:r,status:Yv[o]?o:"pending"})}return e}function e_(t){if(!Array.isArray(t)||!t.length)return[];let e=[];for(let n of t.slice(0,Qv)){if(!n||typeof n!="object")continue;let s=Me(n.id,64).trim(),r=Me(n.label,120).trim();if(!s||!r)continue;let o={id:s,label:r};n.recommended&&(o.recommended=!0),e.push(o)}return e}function t_(t){if(!Array.isArray(t)||!t.length)return[];let e=[];for(let n of t.slice(0,Zv)){if(!n||typeof n!="object")continue;let s=Me(n.id,64).trim(),r=Me(n.prompt,240).trim(),o=e_(n.options);if(!s||!r||o.length<2)continue;let i={id:s,prompt:r,options:o};n.allow_multiple&&(i.allow_multiple=!0),e.push(i)}return e}function n_(t,e){let n=t&&typeof t=="object"?t:{},s=Array.isArray(e)?e:[],r={};for(let o=0;o<s.length;o++){let i=s[o],a=Object.create(null);for(let c=0;c<i.options.length;c++)a[i.options[c].id]=1;let l=n[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=Me(c[f],64).trim();!p||!a[p]||d[p]||(d[p]=1,u.push(p))}u.length&&(r[i.id]=u)}else{let c=Me(Array.isArray(l)?l[0]:l,64).trim();c&&a[c]&&(r[i.id]=c)}}return r}function gm(t){let e=Object.assign({},t);if(e.t==="tool")return e.name=Me(e.name,60),e.path=Me(e.path,300),e.result=Me(e.result,Bv),e.ok=e.ok!==!1,e;if(e.t==="sources")return e.items=(e.items||[]).slice(0,Uv).map(function(n){return{title:Me(n&&n.title,200),url:Me(n&&n.url,500),siteName:Me(n&&n.siteName,80),date:Me(n&&n.date,40)}}),e.query=Me(e.query,200),e;if(e.t==="refs")return e.refs=(e.refs||[]).slice(0,Wv).map(function(n){return{kind:n&&n.kind==="selection"?"selection":"file",path:Me(n&&n.path,400),startLine:n&&n.startLine||0,endLine:n&&n.endLine||0,lines:n&&n.lines||0,truncated:!!(n&&n.truncated),omitted:!!(n&&n.omitted),label:Me(n&&n.label,400)}}),e;if(e.t==="usage"){let n=function(r){return Math.max(0,Math.floor(Number(r)||0))},s=function(r){let o=Number(r);return isFinite(o)&&o>0?Math.min(1,Number(o.toFixed(3))):0};return e.requests=n(e.requests),e.promptTokens=n(e.promptTokens),e.completionTokens=n(e.completionTokens),e.totalTokens=n(e.totalTokens),e.cachedTokens=n(e.cachedTokens),e.contextTokens=n(e.contextTokens),e.window=n(e.window),e.hit=s(e.hit),e.percent=s(e.percent),e.estimated=!!e.estimated,e.model=Me(e.model,120),delete e.prefixHint,e}if(e.t==="user"){e.text=Me(e.text,Lc),e.web=!!e.web,e.ctx!=null&&(e.ctx=Me(e.ctx,qv)),e.exec&&(e.exec=!0);let n=Jv(e.images);return n?e.images=n:delete e.images,e}if(e.t==="error")return e.message=Me(e.message,2e3),e;if(e.t==="todos")return e.items=fm(e.items),e;if(e.t==="ask_question")return e.id=Me(e.id,80),e.title=Me(e.title,80),e.questions=t_(e.questions),e.answers=n_(e.answers,e.questions),e;if(e.t==="plan"){e.planFile=Me(e.planFile,1e3),typeof e.text=="string"&&(e.text=Me(e.text,Lc)),typeof e.think=="string"&&(e.think=Me(e.think,dm));let n=fm(e.todos);return n.length?e.todos=n:delete e.todos,e}return typeof e.text=="string"&&(e.text=Me(e.text,Lc)),typeof e.think=="string"&&(e.think=Me(e.think,dm)),e}function Rc(t){return{id:t.id,title:t.title||Wo(t.items,t.createdAt),createdAt:t.createdAt||"",updatedAt:t.updatedAt||"",root:t.root||"",modelKey:t.modelKey||"",mode:t.mode||"",items:(t.items||[]).length,bytes:t.bytes||0}}function qe(t,e){this.dir=t,this.max=e&&e.max||mm,this._listCache=null,this._listJson="",this._listMtime=0,this._wq=null,this._removed=new Set,this._syncGen=0,this._tmpSeq=0,this._cleanupTmp()}qe.prototype._cleanupTmp=function(){let t=[];try{t=Lt.readdirSync(this.dir)}catch{return 0}let e=0;for(let n of t){let s=/\.tmp-(\d+)-\d+$/.exec(n);if(!(!s||s[1]===String(process.pid)))try{Lt.unlinkSync(Fc.join(this.dir,n)),e++}catch{}}return e};qe.prototype.setMax=function(t){let e=Number(t);return isFinite(e)&&e>=1&&(this.max=Math.floor(e)),this.max};qe.prototype.fileOf=function(t){return Fc.join(this.dir,String(t)+".json")};qe.prototype.indexPath=function(){return Fc.join(this.dir,"index.json")};qe.prototype._ensureDir=function(){Lt.mkdirSync(this.dir,{recursive:!0,mode:448})};qe.prototype._write=function(t,e){this._ensureDir();let n=t+".tmp-"+process.pid+"-"+ ++this._tmpSeq;if(Lt.writeFileSync(n,e,{mode:384}),Lt.existsSync(t))try{Lt.copyFileSync(t,t+".bak")}catch{}Lt.renameSync(n,t)};qe.prototype._writeAsync=async function(t,e,n){await Hr.mkdir(this.dir,{recursive:!0,mode:448});let s=t+".tmp-"+process.pid+"-"+ ++this._tmpSeq;if(await Hr.writeFile(s,e,{mode:384}),typeof n=="function"&&!n()){try{await Hr.unlink(s)}catch{}return!1}try{await Hr.access(t);try{await Hr.copyFile(t,t+".bak")}catch{}}catch{}return await Hr.rename(s,t),!0};qe.prototype._mtimeOf=function(t){try{return Lt.statSync(t).mtimeMs}catch{return 0}};qe.prototype._ids=function(){let t=[];try{t=Lt.readdirSync(this.dir)}catch{return[]}let e=[];for(let n of t)!/\.json$/.test(n)||n==="index.json"||e.push(n.slice(0,-5));return e};qe.prototype.rebuildIndex=function(){let t=[];for(let n of this._ids()){let s=this.load(n);s&&t.push(Rc(s))}t.sort(function(n,s){return String(s.updatedAt).localeCompare(String(n.updatedAt))});let e=JSON.stringify({v:1,sessions:t})+`
6
6
  `;try{this._write(this.indexPath(),e),this._listJson=e,this._listMtime=this._mtimeOf(this.indexPath())}catch{}return this._listCache=t,t};qe.prototype.readIndex=function(){if(this._listCache&&this._mtimeOf(this.indexPath())===this._listMtime)return this._listCache;let t=null;try{let e=Lt.readFileSync(this.indexPath(),"utf8"),n=JSON.parse(e);Array.isArray(n)?t=n:n&&Array.isArray(n.sessions)&&(t=n.sessions),t&&(this._listJson=e,this._listMtime=this._mtimeOf(this.indexPath()))}catch{t=null}return t?(t=t.filter(function(e){return e&&e.id}),!t.length&&this._ids().length?this.rebuildIndex():(this._listCache=t,t)):this.rebuildIndex()};qe.prototype.writeIndex=function(t){let e=(t||[]).slice().sort(function(s,r){return String(r.updatedAt||"").localeCompare(String(s.updatedAt||""))}),n=JSON.stringify({v:1,sessions:e})+`
package/dist/cli.js CHANGED
@@ -12,7 +12,7 @@ data: `+JSON.stringify(l)+`
12
12
  `;r.forEach(function(u){try{u.write(c)}catch{r.delete(u)}})});function a(){gl&&(gl(),gl=null),r.forEach(function(l){try{l.end()}catch{}}),r.clear();try{i.close()}catch{}Hn=null}return Hn={port:n,close:a,clients:r},Hn}function zT(){let t=Number(process.env.LUBAN_STATUS_PORT||0);return t>0&&t<65536?Lh({port:t}):null}function GT(t){let e=t||{};Wn&&(clearTimeout(Wn),Wn=null),Kn&&(clearTimeout(Kn),Kn=null),Nu(),Hn&&(Hn.close(),Hn=null),mo.clear(),Eu=!1;let n=On();Tr=Object.assign(Eh(),{source:String(e.source||"")}),Tr.since=n,Tr.changedAt=n,Tr.ts=n}function JT(){process.once("exit",function(){try{let t=Or();ju[t.state]&&rn({state:"offline",text:"\u5DF2\u9000\u51FA",tool:null}),mi();try{Ls.unlinkSync(Cr.join(po,process.pid+".json"))}catch{}}catch{}})}function $T(){return Mh}function XT(){return po}function VT(){return Hn?{port:Hn.port,clients:Hn.clients.size}:null}Or();JT();Fh.exports={VERSION:Th,STATES:Ch,SLEEP_MS:Ah,MOOD_OF:yl,get:Ar,update:rn,moodFor:Iu,startTurn:FT,thinking:LT,typing:RT,progress:qT,round:BT,tool:Ih,waiting:UT,done:WT,fail:Nh,offline:KT,fromMessage:Dh,applyMessage:HT,subscribe:Ph,serve:Lh,autoServe:zT,reset:GT,writeNow:mi,file:$T,dir:XT,sse:VT}});var Sl=Q((LL,Uh)=>{var wi=require("fs"),YT=require("path"),Rh=24,qh=120,gi=[{key:"today",label:"\u4ECA\u5929",days:1},{key:"7d",label:"\u8FD1 7 \u5929",days:7},{key:"30d",label:"\u8FD1 30 \u5929",days:30},{key:"all",label:"\u5168\u90E8",days:0}];function Lu(t){return(t<10?"0":"")+t}function bi(t){let e=t instanceof Date?t:new Date(Number(t));return isNaN(e.getTime())?new Date:e}function xl(t){let e=bi(t);return e.getFullYear()+"-"+Lu(e.getMonth()+1)+"-"+Lu(e.getDate())}function yi(t){let e=bi(t);return e.getFullYear()+"-"+Lu(e.getMonth()+1)}function ho(t){let e=bi(t);return new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0).getTime()}function ZT(t,e){let n=e==null?Date.now():Number(e),s=gi.find(function(i){return i.key===String(t||"")})||gi[1];if(!s.days)return{key:s.key,label:s.label,from:0,to:n,days:0};let r=bi(n),o=new Date(r.getFullYear(),r.getMonth(),r.getDate()-(s.days-1),0,0,0,0).getTime();return{key:s.key,label:s.label,from:o,to:n,days:s.days}}function En(t){let e=Number(t);return isFinite(e)&&e>0?Math.floor(e):0}function ys(t,e){let n=String(t??"");return n.length>e?n.slice(0,e):n}function wl(t){let e=Number(t);return!isFinite(e)||e<=0?0:Number(Math.min(1,e).toFixed(3))}function QT(t,e,n){let s=t||{},r=e||{},o=function(){let f=Number(s.ts);if(isFinite(f)&&f>0)return Math.floor(f);let p=n==null?Date.now():Number(n);return isFinite(p)&&p>0?Math.floor(p):Date.now()}(),i=En(r.promptTokens),a=En(r.completionTokens),l=En(r.totalTokens)||i+a,c=Math.min(En(r.cachedTokens),i),u=En(r.contextTokens),d=En(r.window);return{v:1,at:new Date(o).toISOString(),ts:o,day:xl(o),provider:ys(s.provider,60),model:ys(s.model||r.model,120),modelKey:ys(s.modelKey,160),mode:ys(s.mode,20)||"agent",source:ys(s.source,20),session:ys(s.session,80),requests:En(r.requests),promptTokens:i,completionTokens:a,totalTokens:l,cachedTokens:c,contextTokens:u,window:d,hit:r.hit!=null?wl(r.hit):i>0?wl(c/i):0,percent:r.percent!=null?wl(r.percent):d>0?wl(u/d):0,estimated:!!r.estimated,partial:!!r.partial}}function Fu(t,e){return YT.join(t,e+".jsonl")}function eM(t){wi.mkdirSync(t,{recursive:!0,mode:448})}function Ru(t){let e=[];try{e=wi.readdirSync(t)}catch{return[]}let n=[];for(let s of e)/^\d{4}-\d{2}\.jsonl$/.test(s)&&n.push(s.slice(0,-6));return n.sort(),n}function Bh(t,e){let n=function(){let r=bi(e??Date.now());return new Date(r.getFullYear(),r.getMonth()-(Rh-1),1,0,0,0,0).getTime()}(),s=[];for(let r of Ru(t)){let o=new Date(Number(r.slice(0,4)),Number(r.slice(5,7))-1,1,0,0,0,0).getTime();if(!(!isFinite(o)||o>=n))try{wi.unlinkSync(Fu(t,r)),s.push(r)}catch{}}return s}function tM(t,e){if(!t)return{ok:!1,error:"dir \u4E0D\u80FD\u4E3A\u7A7A"};if(!e||!e.ts)return{ok:!1,error:"record \u7F3A\u5C11 ts"};try{eM(t);let n=Fu(t,yi(e.ts));return wi.appendFileSync(n,JSON.stringify(e)+`
13
13
  `,{mode:384}),Bh(t,Math.max(Number(e.ts)||0,Date.now())),{ok:!0,file:n,month:yi(e.ts)}}catch(n){return{ok:!1,error:String(n&&n.message||n)}}}function nM(t,e,n){let s=Number(e)>0?Number(e):0,r=Number(n)>0?Number(n):Date.now(),o=s>0?yi(s):"",i=yi(r),a=Ru(t).filter(function(u){return o&&u<o?!1:u<=i}),l=[],c=0;for(let u of a){let d="";try{d=wi.readFileSync(Fu(t,u),"utf8")}catch{continue}for(let f of d.split(`
14
14
  `)){let p=f.trim();if(!p)continue;let m=null;try{m=JSON.parse(p)}catch{c++;continue}if(!m||!m.ts){c++;continue}let h=Number(m.ts);!isFinite(h)||h<s||h>r||l.push(m)}}return l.sort(function(u,d){return Number(u.ts)-Number(d.ts)}),{rows:l,files:a.map(function(u){return u+".jsonl"}),bad:c}}function hi(){return{turns:0,requests:0,promptTokens:0,completionTokens:0,totalTokens:0,cachedTokens:0,estimatedTurns:0,partialTurns:0}}function bl(t,e){t.turns++,t.requests+=En(e.requests),t.promptTokens+=En(e.promptTokens),t.completionTokens+=En(e.completionTokens),t.totalTokens+=En(e.totalTokens),t.cachedTokens+=En(e.cachedTokens),e.estimated&&t.estimatedTurns++,e.partial&&t.partialTurns++}function kl(t){return t.hit=t.promptTokens>0?Number(Math.min(1,t.cachedTokens/t.promptTokens).toFixed(3)):0,t}function sM(t,e,n,s){let r=Object.keys(t).sort();if(!r.length)return[];let o=e>0?ho(e):ho(t[r[0]].ts),i=n>0?ho(n):ho(t[r[r.length-1]].ts),a=Math.round((i-o)/864e5)+1,l=s>0?Math.min(a,s):a;if(l>qh)return r.map(function(u){return t[u]});let c=[];for(let u=0;u<l;u++){let d=new Date(o);d.setDate(d.getDate()+u);let f=xl(d.getTime());c.push(t[f]||Object.assign({day:f,ts:d.getTime()},hi(),{hit:0,empty:!0}))}return c}function rM(t,e){let n=e||{},s=Array.isArray(t)?t:[],r=hi(),o=Object.create(null),i=Object.create(null),a=Object.create(null);for(let d of s){bl(r,d);let f=String(d.modelKey||"")||String(d.provider||"")+"::"+String(d.model||"")||"\u672A\u77E5\u6A21\u578B";o[f]||(o[f]=Object.assign({key:f,provider:ys(d.provider,60),model:ys(d.model,120)||"\u672A\u77E5\u6A21\u578B"},hi())),bl(o[f],d);let p=ys(d.mode,20)||"agent";i[p]||(i[p]=Object.assign({mode:p},hi())),bl(i[p],d);let m=String(d.day||xl(d.ts));a[m]||(a[m]=Object.assign({day:m,ts:ho(d.ts)},hi())),bl(a[m],d)}let l=Object.keys(o).map(function(d){let f=kl(o[d]);return f.share=r.totalTokens>0?Number((f.totalTokens/r.totalTokens).toFixed(3)):0,f}).sort(function(d,f){return f.totalTokens!==d.totalTokens?f.totalTokens-d.totalTokens:String(d.key).localeCompare(String(f.key))}),c=Object.keys(i).map(function(d){return kl(i[d])}).sort(function(d,f){return f.totalTokens!==d.totalTokens?f.totalTokens-d.totalTokens:String(d.mode).localeCompare(String(f.mode))}),u=sM(a,Number(n.from)||0,Number(n.to)||0,Number(n.days)||0).map(function(d){return d.empty?d:kl(d)});return s.length?Object.assign(kl(r),{byModel:l,byMode:c,byDay:u}):{turns:0,requests:0,promptTokens:0,completionTokens:0,totalTokens:0,cachedTokens:0,estimatedTurns:0,partialTurns:0,hit:0,byModel:[],byMode:[],byDay:[]}}function oM(t){let e=gi.find(function(n){return n.key===String(t||"")});return e?e.label:gi[1].label}Uh.exports={MONTHS_KEEP:Rh,MAX_FILL_DAYS:qh,RANGES:gi,dayOf:xl,monthOf:yi,startOfDay:ho,rangeOf:ZT,rangeLabel:oM,row:QT,append:tM,read:nM,monthFiles:Ru,prune:Bh,aggregate:rM}});var Fs=Q((FL,Wh)=>{var iM=["node_modules",".git","dist","build","out","coverage",".next",".venv","venv","target","vendor","__pycache__",".cache","npm-cache","_npx","_cacache",".m2"];Wh.exports={SKIP_DIRS:iM}});var $h=Q((RL,Jh)=>{"use strict";var aM=require("fs"),lM=require("path"),{SKIP_DIRS:cM}=Fs(),Kh=4e3,uM=80,dM=5e3,Hh=Object.create(null);cM.forEach(function(t){Hh[t]=!0});function fM(t,e){return t.name<e.name?-1:t.name>e.name?1:0}function zh(t){let e=[],n=Object.create(null);return function s(r,o,i){if(e.length>=Kh||i>8)return;let a;try{a=aM.readdirSync(r,{withFileTypes:!0})}catch{return}a.sort(fM);for(let l=0;l<a.length&&e.length<Kh;l++){let c=a[l],u=c.name;if(u==="."||u==="..")continue;let d=!1;try{d=c.isDirectory()}catch{}if(d){if(Hh[u])continue;let p=o+u+"/";n[p]=!0,s(lM.join(r,u),p,i+1);continue}if(!c.isFile())continue;let f=o+u;/[\s"'`]/.test(f)||e.push(f)}}(t,"",0),{files:e,dirs:Object.keys(n)}}function Gh(t,e){let n=String(e??""),s=n.toLowerCase(),r=n.lastIndexOf("/"),o=r>=0?n.slice(0,r+1):"",i=[],a=Object.create(null);function l(d,f){let p=d.slice(o.length);!p||!(f&&p.indexOf("/")===p.length-1)&&p.indexOf("/")>=0||i.indexOf(d)>=0||a[d]||(a[d]=!0,i.push(d))}!o&&"web".indexOf(s)===0&&i.push("web");let c=[],u=[];for(let d=0;d<t.files.length;d++){let f=t.files[d];f.toLowerCase().indexOf(s)===0&&c.push(f)}for(let d=0;d<t.dirs.length;d++){let f=t.dirs[d];f.toLowerCase().indexOf(s)===0&&u.push(f)}return c.forEach(function(d){l(d,!1)}),u.forEach(function(d){l(d,!0)}),i.sort(function(d,f){if(d==="web"||f==="web")return d==="web"?-1:1;let p=d.indexOf(n)===0,m=f.indexOf(n)===0;return p!==m?p?-1:1:d.length!==f.length?d.length-f.length:d<f?-1:d>f?1:0}),i.slice(0,uM)}function pM(t){let e=t||{},n=String(e.root||process.cwd()),s=(e.commands||[]).filter(function(i){return typeof i=="string"&&i.charAt(0)==="/"}),r={at:0,root:"",files:[],dirs:[]};function o(){if(r.root===n&&Date.now()-r.at<dM)return r;let i=zh(n);return r={at:Date.now(),root:n,files:i.files,dirs:i.dirs},r}return function(a){let l=String(a??"");if(l.charAt(0)==="/"&&!/\s/.test(l))return[s.filter(function(p){return p.indexOf(l)===0}),l];let c=l.lastIndexOf("@");if(c<0||c>0&&!/\s/.test(l.charAt(c-1)))return[[],l];let u=l.slice(c+1);return/\s/.test(u)?[[],l]:[Gh(o(),u),u]}}function mM(t,e){if(e&&e.name==="enter"&&t===`
15
- `)return!0;let n=e&&e.sequence;return n==="\x1B\r"?!0:typeof n=="string"&&/^(?:\u001b\[13;2[~u]|\u001b\[27;2;13~)$/.test(n)}Jh.exports={createCompleter:pM,listEntries:zh,completePath:Gh,isNewlineKey:mM}});var vl=Q((qL,hM)=>{hM.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.100.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:"git+https://github.com/eppen/luban.git"},engines:{vscode:"^1.104.0"},categories:["AI","Chat","Programming Languages"],activationEvents:["onStartupFinished","onView:luban.chatView","onCommand:luban.focusView","onCommand:luban.browserPreview","onCommand:luban.markdownPreview"],main:"./dist/extension.js",bin:{luban:"dist/cli.js","luban-code":"dist/cli.js","luban-acp":"dist/acp.js"},files:["dist/cli.js","dist/acp.js","dist/cli-plugin.js","dist/extension.js","registry/","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:review-autokeep":"node scripts/build.js && node scripts/test-review-autokeep.js","test:skills":"node scripts/test-skills.js","test:rules":"node scripts/test-rules.js","test:plugins":"node scripts/test-plugins.js","test:plugins-ext":"node scripts/test-plugins-ext.js","test:registry":"node scripts/test-registry-client.js","test:registry-skill":"node scripts/test-registry-skill.js","test:install":"node scripts/test-install-scripts.js",cli:"node cli.js","test:acp":"node scripts/test-acp.js","test:acp-pkg":"node scripts/test-acp-pkg.js","test:cli-resume":"node scripts/test-cli-resume.js",vsix:"node scripts/vsix.js","test:general":"node scripts/test-general-settings.js","test:provider-models":"node scripts/test-provider-models.js","test:hub":"node scripts/test-hub-tabs.js","test:hub-market":"node scripts/test-hub-market.js","test:market-ext":"node scripts/test-market-ext.js","test:sync-registry":"node scripts/test-sync-registry.js","test:i18n":"node scripts/test-i18n.js","test:css":"node scripts/test-css-vars.js","test:webdav":"node scripts/test-webdav.js","test:webdav-override":"node scripts/test-webdav-override.js","test:browser-events":"node scripts/test-browser-events.js","test:browser-tool":"node scripts/test-browser-tool.js","test:browser-launch":"node scripts/test-browser-launch.js","test:computer-linux":"node scripts/test-computer-linux.js","test:computer-linux-live":"node scripts/live-computer-linux.js","test:computer-tool":"node scripts/test-computer-tool.js","test:subagent":"node scripts/test-subagent-guards.js","test:lm-provider":"node scripts/test-lm-provider.js","test:agent-budget":"node scripts/test-agent-budget.js","test:gamepad":"node scripts/test-gamepad.js","test:status":"node scripts/test-status.js","test:avatar":"node scripts/test-avatar.js","test:cli-md":"node scripts/test-cli-md.js","test:mdpreview":"node scripts/test-mdpreview.js","test:mdpreview-live":"node scripts/live-mdpreview.js","test:cli-confirm":"node scripts/test-cli-confirm.js","test:cli-input":"node scripts/test-cli-input.js","test:token-audit":"node scripts/test-token-audit.js","test:think":"node scripts/test-think.js","test:webfetch-md":"node scripts/test-webfetch-md.js","test:tabs":"node scripts/test-workspace-tab-filter.js","test:status-live":"node scripts/live-status.js","test:review-freeze":"node scripts/live-review-freeze.js","test:review-focus":"node scripts/live-review-focus.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.plugins",title:"%cmdPlugins%",category:"Luban"},{command:"luban.market",title:"%cmdMarket%",category:"Luban"},{command:"luban.rules.open",title:"%cmdOpenRules%",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.findInSession",title:"%cmdFindInSession%",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.addFileToNewChat",title:"%cmdAddFileToNewChat%",category:"Luban"},{command:"luban.addFolderToNewChat",title:"%cmdAddFolderToNewChat%",category:"Luban"},{command:"luban.addSelectionToChat",title:"%cmdAddSelectionToChat%",category:"Luban"},{command:"luban.addSelectionToNewChat",title:"%cmdAddSelectionToNewChat%",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"},{command:"luban.browserPreview",title:"%cmdBrowserPreview%",category:"Luban"},{command:"luban.markdownPreview",title:"%cmdMarkdownPreview%",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"},{command:"luban.markdownPreview",when:"resourceLangId == markdown",group:"navigation@3",icon:"$(preview)"}],"explorer/context":[{command:"luban.addFileToChat",when:"!explorerResourceIsFolder && resourceScheme == file",group:"1_luban@1"},{command:"luban.addFolderToChat",when:"explorerResourceIsFolder && resourceScheme == file",group:"1_luban@2"},{command:"luban.addFileToNewChat",when:"!explorerResourceIsFolder && resourceScheme == file",group:"1_luban@3"},{command:"luban.addFolderToNewChat",when:"explorerResourceIsFolder && resourceScheme == file",group:"1_luban@4"}],"editor/context":[{command:"luban.addSelectionToChat",when:"editorHasSelection && resourceScheme == file",group:"1_luban@0"},{command:"luban.addSelectionToNewChat",when:"editorHasSelection && resourceScheme == file",group:"1_luban@1"}],"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.addFileToNewChat",when:"false"},{command:"luban.addFolderToNewChat",when:"false"},{command:"luban.addSelectionToChat",when:"editorHasSelection"},{command:"luban.addSelectionToNewChat",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.findInSession",key:"cmd+f",mac:"cmd+f",win:"ctrl+f",linux:"ctrl+f",when:"focusedView == 'luban.chatView'"},{command:"luban.findInSession",key:"cmd+f",mac:"cmd+f",win:"ctrl+f",linux:"ctrl+f",when:"activeWebviewPanelId == 'luban'"},{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",icon:"media/icon.svg"}]},languageModelChatProviders:[{vendor:"luban",displayName:"Luban",icon:"media/icon.png",managementCommand:"luban.providerSettings"}],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:200,minimum:0,description:"%cfgAgentMaxRounds%"},"luban.agent.maxMinutes":{type:"number",default:30,minimum:1,description:"%cfgAgentMaxMinutes%"},"luban.agent.noWriteNudges":{type:"number",default:2,minimum:0,description:"%cfgAgentNoWriteNudges%"},"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.net.tlsMaxVersion":{type:"string",enum:["auto","1.2"],enumDescriptions:["%cfgNetTlsMaxVersionAuto%","%cfgNetTlsMaxVersion12%"],default:"auto",description:"%cfgNetTlsMaxVersion%"},"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.browser.confirm":{type:"boolean",default:!0,description:"%cfgBrowserConfirm%"},"luban.browser.preview":{type:"boolean",default:!1,description:"%cfgBrowserPreview%"},"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.plugins.enabled":{type:"boolean",default:!1,description:"%cfgPluginsEnabled%"},"luban.plugins.maxTools":{type:"number",default:30,minimum:1,maximum:200,description:"%cfgPluginsMaxTools%"},"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.review.autoKeep":{type:"boolean",default:!1,description:"%cfgReviewAutoKeep%"},"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%"},"luban.statusBar.enabled":{type:"boolean",default:!0,description:"%cfgStatusBarEnabled%"},"luban.rules.enabled":{type:"boolean",default:!0,description:"%cfgRulesEnabled%"},"luban.rules.maxChars":{type:"number",default:12e3,minimum:1e3,description:"%cfgRulesMaxChars%"},"luban.rules.indexMaxChars":{type:"number",default:2e3,minimum:200,description:"%cfgRulesIndexMaxChars%"}}}},devDependencies:{esbuild:"^0.25.0"},dependencies:{"@clack/prompts":"^1.8.1",picocolors:"^1.1.1"}}});var Wu=Q((BL,Uu)=>{function Er(t,e){let n=String(t??"").replace(/\s+/g," ").trim();return n?n.length>e?n.slice(0,e):n:""}function gM(t,e){if(!t||typeof t!="object")return null;let n=Er(t.id,64),s=Er(t.label!=null?t.label:t.text,120);if(!s)return null;n||(n="o"+(e+1));let r={id:n,label:s};return(t.recommended===!0||t.recommended==="true")&&(r.recommended=!0),r}function yM(t,e){if(!t||typeof t!="object")return null;let n=Er(t.id,64),s=Er(t.prompt!=null?t.prompt:t.question,240);if(!s)return null;n||(n="q"+(e+1));let r=Array.isArray(t.options)?t.options:[],o=[],i=Object.create(null);for(let a=0;a<r.length&&o.length<6;a++){let l=gM(r[a],a);l&&(i[l.id]||(i[l.id]=1,o.push(l)))}return o.length<2?null:{id:n,prompt:s,allow_multiple:!!(t.allow_multiple||t.allowMultiple),options:o}}function Rs(t){let e=t&&typeof t=="object"?t:{},n=Er(e.title,80),s=Array.isArray(e.questions)?e.questions:[];if(!s.length)throw new Error("ask_question \u9700\u8981\u975E\u7A7A questions \u6570\u7EC4");let r=[],o=Object.create(null);for(let i=0;i<s.length&&r.length<4;i++){let a=yM(s[i],i);a&&(o[a.id]||(o[a.id]=1,r.push(a)))}if(!r.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:r}}function qu(t,e){let n=t&&t.questions||[],s=e&&typeof e=="object"?e:{},r={};for(let o=0;o<n.length;o++){let i=n[o],a=Object.create(null);for(let c=0;c<i.options.length;c++)a[i.options[c].id]=i.options[c];let l=s[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=Er(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");r[i.id]=u}else{let c=Er(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");r[i.id]=c}}return r}function Xh(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 Vh(t,e){let n=t&&t.questions||[],s=["\u7528\u6237\u56DE\u7B54\uFF1A"];t&&t.title&&s.unshift("\u63D0\u95EE\uFF1A"+t.title);for(let r=0;r<n.length;r++){let o=n[r],i=e[o.id],a;Array.isArray(i)?a=i.map(function(l){return l+"\uFF08"+Xh(o,l)+"\uFF09"}).join("\u3001"):a=i+"\uFF08"+Xh(o,i)+"\uFF09",s.push("- "+o.id+"\uFF08"+o.prompt+"\uFF09: "+a)}return s.join(`
15
+ `)return!0;let n=e&&e.sequence;return n==="\x1B\r"?!0:typeof n=="string"&&/^(?:\u001b\[13;2[~u]|\u001b\[27;2;13~)$/.test(n)}Jh.exports={createCompleter:pM,listEntries:zh,completePath:Gh,isNewlineKey:mM}});var vl=Q((qL,hM)=>{hM.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.100.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:"git+https://github.com/eppen/luban.git"},engines:{vscode:"^1.104.0"},categories:["AI","Chat","Programming Languages"],activationEvents:["onStartupFinished","onView:luban.chatView","onCommand:luban.focusView","onCommand:luban.browserPreview","onCommand:luban.markdownPreview"],main:"./dist/extension.js",bin:{luban:"dist/cli.js","luban-code":"dist/cli.js","luban-acp":"dist/acp.js"},files:["dist/cli.js","dist/acp.js","dist/cli-plugin.js","dist/extension.js","registry/","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:review-autokeep":"node scripts/build.js && node scripts/test-review-autokeep.js","test:skills":"node scripts/test-skills.js","test:rules":"node scripts/test-rules.js","test:plugins":"node scripts/test-plugins.js","test:plugins-ext":"node scripts/test-plugins-ext.js","test:registry":"node scripts/test-registry-client.js","test:registry-skill":"node scripts/test-registry-skill.js","test:install":"node scripts/test-install-scripts.js",cli:"node cli.js","test:acp":"node scripts/test-acp.js","test:acp-pkg":"node scripts/test-acp-pkg.js","test:cli-resume":"node scripts/test-cli-resume.js",vsix:"node scripts/vsix.js","test:general":"node scripts/test-general-settings.js","test:provider-models":"node scripts/test-provider-models.js","test:hub":"node scripts/test-hub-tabs.js","test:hub-market":"node scripts/test-hub-market.js","test:market-ext":"node scripts/test-market-ext.js","test:sync-registry":"node scripts/test-sync-registry.js","test:i18n":"node scripts/test-i18n.js","test:css":"node scripts/test-css-vars.js","test:webdav":"node scripts/test-webdav.js","test:webdav-override":"node scripts/test-webdav-override.js","test:browser-events":"node scripts/test-browser-events.js","test:browser-tool":"node scripts/test-browser-tool.js","test:browser-launch":"node scripts/test-browser-launch.js","test:computer-linux":"node scripts/test-computer-linux.js","test:computer-linux-live":"node scripts/live-computer-linux.js","test:computer-tool":"node scripts/test-computer-tool.js","test:subagent":"node scripts/test-subagent-guards.js","test:lm-provider":"node scripts/test-lm-provider.js","test:agent-budget":"node scripts/test-agent-budget.js","test:gamepad":"node scripts/test-gamepad.js","test:status":"node scripts/test-status.js","test:avatar":"node scripts/test-avatar.js","test:cli-md":"node scripts/test-cli-md.js","test:mdpreview":"node scripts/test-mdpreview.js","test:mdpreview-live":"node scripts/live-mdpreview.js","test:cli-confirm":"node scripts/test-cli-confirm.js","test:cli-input":"node scripts/test-cli-input.js","test:token-audit":"node scripts/test-token-audit.js","test:think":"node scripts/test-think.js","test:webfetch-md":"node scripts/test-webfetch-md.js","test:tabs":"node scripts/test-workspace-tab-filter.js","test:status-live":"node scripts/live-status.js","test:review-freeze":"node scripts/live-review-freeze.js","test:review-focus":"node scripts/live-review-focus.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.plugins",title:"%cmdPlugins%",category:"Luban"},{command:"luban.market",title:"%cmdMarket%",category:"Luban"},{command:"luban.rules.open",title:"%cmdOpenRules%",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.findInSession",title:"%cmdFindInSession%",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.addFileToNewChat",title:"%cmdAddFileToNewChat%",category:"Luban"},{command:"luban.addFolderToNewChat",title:"%cmdAddFolderToNewChat%",category:"Luban"},{command:"luban.addSelectionToChat",title:"%cmdAddSelectionToChat%",category:"Luban"},{command:"luban.addSelectionToNewChat",title:"%cmdAddSelectionToNewChat%",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"},{command:"luban.browserPreview",title:"%cmdBrowserPreview%",category:"Luban"},{command:"luban.markdownPreview",title:"%cmdMarkdownPreview%",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"},{command:"luban.markdownPreview",when:"resourceLangId == markdown",group:"navigation@3",icon:"$(preview)"}],"explorer/context":[{command:"luban.addFileToChat",when:"!explorerResourceIsFolder && resourceScheme == file",group:"1_luban@1"},{command:"luban.addFolderToChat",when:"explorerResourceIsFolder && resourceScheme == file",group:"1_luban@2"},{command:"luban.addFileToNewChat",when:"!explorerResourceIsFolder && resourceScheme == file",group:"1_luban@3"},{command:"luban.addFolderToNewChat",when:"explorerResourceIsFolder && resourceScheme == file",group:"1_luban@4"}],"editor/context":[{command:"luban.addSelectionToChat",when:"editorHasSelection && resourceScheme == file",group:"1_luban@0"},{command:"luban.addSelectionToNewChat",when:"editorHasSelection && resourceScheme == file",group:"1_luban@1"}],"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.addFileToNewChat",when:"false"},{command:"luban.addFolderToNewChat",when:"false"},{command:"luban.addSelectionToChat",when:"editorHasSelection"},{command:"luban.addSelectionToNewChat",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.findInSession",key:"cmd+f",mac:"cmd+f",win:"ctrl+f",linux:"ctrl+f",when:"focusedView == 'luban.chatView'"},{command:"luban.findInSession",key:"cmd+f",mac:"cmd+f",win:"ctrl+f",linux:"ctrl+f",when:"activeWebviewPanelId == 'luban'"},{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",icon:"media/icon.svg"}]},languageModelChatProviders:[{vendor:"luban",displayName:"Luban",icon:"media/icon.png",managementCommand:"luban.providerSettings"}],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:200,minimum:0,description:"%cfgAgentMaxRounds%"},"luban.agent.maxMinutes":{type:"number",default:30,minimum:1,description:"%cfgAgentMaxMinutes%"},"luban.agent.noWriteNudges":{type:"number",default:2,minimum:0,description:"%cfgAgentNoWriteNudges%"},"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.net.tlsMaxVersion":{type:"string",enum:["auto","1.2"],enumDescriptions:["%cfgNetTlsMaxVersionAuto%","%cfgNetTlsMaxVersion12%"],default:"auto",description:"%cfgNetTlsMaxVersion%"},"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.browser.confirm":{type:"boolean",default:!0,description:"%cfgBrowserConfirm%"},"luban.browser.preview":{type:"boolean",default:!1,description:"%cfgBrowserPreview%"},"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.plugins.enabled":{type:"boolean",default:!1,description:"%cfgPluginsEnabled%"},"luban.plugins.maxTools":{type:"number",default:30,minimum:1,maximum:200,description:"%cfgPluginsMaxTools%"},"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.review.autoKeep":{type:"boolean",default:!1,description:"%cfgReviewAutoKeep%"},"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%"},"luban.statusBar.enabled":{type:"boolean",default:!0,description:"%cfgStatusBarEnabled%"},"luban.rules.enabled":{type:"boolean",default:!0,description:"%cfgRulesEnabled%"},"luban.rules.maxChars":{type:"number",default:12e3,minimum:1e3,description:"%cfgRulesMaxChars%"},"luban.rules.indexMaxChars":{type:"number",default:2e3,minimum:200,description:"%cfgRulesIndexMaxChars%"}}}},devDependencies:{esbuild:"^0.25.0"},dependencies:{"@clack/prompts":"^1.8.1",picocolors:"^1.1.1"}}});var Wu=Q((BL,Uu)=>{function Er(t,e){let n=String(t??"").replace(/\s+/g," ").trim();return n?n.length>e?n.slice(0,e):n:""}function gM(t,e){if(!t||typeof t!="object")return null;let n=Er(t.id,64),s=Er(t.label!=null?t.label:t.text,120);if(!s)return null;n||(n="o"+(e+1));let r={id:n,label:s};return(t.recommended===!0||t.recommended==="true")&&(r.recommended=!0),r}function yM(t,e){if(!t||typeof t!="object")return null;let n=Er(t.id,64),s=Er(t.prompt!=null?t.prompt:t.question,240);if(!s)return null;n||(n="q"+(e+1));let r=Array.isArray(t.options)?t.options:[],o=[],i=Object.create(null);for(let a=0;a<r.length&&o.length<6;a++){let l=gM(r[a],a);l&&(i[l.id]||(i[l.id]=1,o.push(l)))}return o.length<2?null:{id:n,prompt:s,allow_multiple:!!(t.allow_multiple||t.allowMultiple),options:o}}function Rs(t){let e=t&&typeof t=="object"?t:{},n=Er(e.title,80),s=Array.isArray(e.questions)?e.questions:[];if(!s.length)throw new Error("ask_question \u9700\u8981\u975E\u7A7A questions \u6570\u7EC4");let r=[],o=Object.create(null);for(let i=0;i<s.length&&r.length<4;i++){let a=yM(s[i],i);a&&(o[a.id]||(o[a.id]=1,r.push(a)))}if(!r.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:r}}function qu(t,e){let n=t&&t.questions||[],s=e&&typeof e=="object"?e:{},r={};for(let o=0;o<n.length;o++){let i=n[o],a=Object.create(null);for(let c=0;c<i.options.length;c++)a[i.options[c].id]=i.options[c];let l=s[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=Er(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");r[i.id]=u}else{let c=Er(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");r[i.id]=c}}return r}function Xh(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 Vh(t,e){let n=t&&t.questions||[],s=["\u7528\u6237\u56DE\u7B54\uFF1A"];t&&t.title&&s.unshift("\u63D0\u95EE\uFF1A"+t.title);for(let r=0;r<n.length;r++){let o=n[r],i=e[o.id],a;Array.isArray(i)?a=i.map(function(l){return l+"\uFF08"+Xh(o,l)+"\uFF09"}).join("\u3001"):a=i+"\uFF08"+Xh(o,i)+"\uFF09",s.push("- "+o.id+"\uFF08"+o.prompt+"\uFF09: "+a)}return s.join(`
16
16
  `)}function Bu(t){let e=t&&t.questions||[];return e.length!==1?!0:!!e[0].allow_multiple}Uu.exports={MAX_QUESTIONS:4,MIN_OPTIONS:2,MAX_OPTIONS:6,normalize:Rs,normalizeAnswers:qu,formatAnswers:Vh,needsConfirm:Bu};if(require.main===Uu){let t=function(s,r){if(!s)throw new Error(r||"assert failed")},e=0,n=function(s,r){try{r(),e++,console.log("ok "+s)}catch(o){console.error("FAIL "+s+": "+o.message),process.exitCode=1}};n("normalize basic",function(){let s=Rs({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(!Bu(s),"single select no confirm")}),n("normalize rejects empty / short options",function(){let s=!1;try{Rs({questions:[]})}catch{s=!0}t(s,"empty"),s=!1;try{Rs({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 o=0;o<8;o++)s.push({label:"L"+o});let r=Rs({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(r.questions.length===4,"max q"),t(r.questions[0].options.length===6,"max opt"),t(r.questions[0].id==="q1","auto id")}),n("normalizeAnswers single + multi",function(){let s=Rs({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(Bu(s),"confirm");let r=qu(s,{a:"x",b:["p","q"]});t(r.a==="x"&&r.b.length===2,JSON.stringify(r));let o=Vh(s,r);t(o.indexOf("\u7528\u6237\u56DE\u7B54")>=0&&o.indexOf("x\uFF08X\uFF09")>=0,o)}),n("normalizeAnswers rejects bad",function(){let s=Rs({questions:[{id:"a",prompt:"\u5355\u9009",options:[{id:"x",label:"X"},{id:"y",label:"Y"}]}]}),r=!1;try{qu(s,{a:"z"})}catch{r=!0}t(r,"bad id")}),n("normalize recommended flag",function(){let s=Rs({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 Hu=Q((UL,Yh)=>{function ki(t){let e=String(t??"");return e===""?[]:e.split(`
17
17
  `)}function Ku(t){return(t||[]).join(`
18
18
  `)}function wM(t,e){let n=t.length,s=e.length,r=s+1,o=new Int32Array((n+1)*r);for(let c=n-1;c>=0;c--){let u=c*r,d=(c+1)*r;for(let f=s-1;f>=0;f--)o[u+f]=t[c]===e[f]?o[d+f+1]+1:Math.max(o[d+f],o[u+f+1])}let i=[],a=0,l=0;for(;a<n&&l<s;)t[a]===e[l]?(i.push({t:" ",s:t[a]}),a++,l++):o[(a+1)*r+l]>=o[a*r+l+1]?(i.push({t:"-",s:t[a]}),a++):(i.push({t:"+",s:e[l]}),l++);for(;a<n;)i.push({t:"-",s:t[a++]});for(;l<s;)i.push({t:"+",s:e[l++]});return i}function bM(t,e,n){let s=0,r=0;for(let u=0;u<e;u++)t[u].t!=="+"&&s++,t[u].t!=="-"&&r++;let o=t.slice(e,n).map(function(u){return{t:u.t,s:u.s}}),i=0,a=0,l=0,c=0;for(let u of o)u.t!=="+"&&i++,u.t!=="-"&&a++,u.t==="+"&&l++,u.t==="-"&&c++;return{oldStart:s,oldLines:i,newStart:r,newLines:a,add:l,del:c,header:"@@ -"+(s+1)+","+i+" +"+(r+1)+","+a+" @@",lines:o}}function kM(t){let e=[];for(let r=0;r<t.length;r++)t[r].t!==" "&&e.push(r);let n=[],s=0;for(;s<e.length;){let r=e[s],o=r,i=s+1;for(;i<e.length&&e[i]-o-1<=2*3;)o=e[i],i++;s=i;let a=Math.max(0,r-3),l=Math.min(t.length,o+3+1);n.push(bM(t,a,l))}return n.forEach(function(r,o){r.id="h"+(o+1)}),n}function xM(t,e){let n=ki(t),s=ki(e),r=n.length,o=s.length,i=0;for(;i<r&&i<o&&n[i]===s[i];)i++;let a=0;for(;a<r-i&&a<o-i&&n[r-1-a]===s[o-1-a];)a++;let l=n.slice(i,r-a),c=s.slice(i,o-a);if(!l.length&&!c.length)return[];let u;l.length*c.length>1e6?u=l.map(function(f){return{t:"-",s:f}}).concat(c.map(function(f){return{t:"+",s:f}})):u=wM(l,c);let d=[];for(let f=0;f<i;f++)d.push({t:" ",s:n[f]});for(let f of u)d.push(f);for(let f=r-a;f<r;f++)d.push({t:" ",s:n[f]});return kM(d)}function SM(t){let e=0,n=0;for(let s of t||[])e+=s.add,n+=s.del;return{add:e,del:n,hunks:(t||[]).length}}function vM(t,e){let n=ki(t),s=[];for(let r of e.lines)r.t!=="-"&&s.push(r.s);return Ku(n.slice(0,e.oldStart).concat(s,n.slice(e.oldStart+e.oldLines)))}function _M(t,e){let n=ki(t),s=[];for(let r of e.lines)r.t!=="+"&&s.push(r.s);return Ku(n.slice(0,e.newStart).concat(s,n.slice(e.newStart+e.newLines)))}function TM(t,e){let n=[];for(let s of e.lines)s.t!=="+"&&n.push(s.s);return{start:e.newStart,end:e.newStart+e.newLines,lines:n}}function MM(t){let e=[],n=[],s=t.newStart,r=-1,o=null;for(let i of t.lines)i.t==="+"?(r<0&&(r=s),s++):i.t==="-"?(r>=0&&(e.push({start:r,count:s-r}),r=-1),o||(o={at:s,lines:[]},n.push(o)),o.lines.push(i.s)):(r>=0&&(e.push({start:r,count:s-r}),r=-1),o=null,s++);return r>=0&&e.push({start:r,count:s-r}),{add:e,del:n}}Yh.exports={CONTEXT:3,splitLines:ki,joinLines:Ku,computeHunks:xM,stats:SM,applyHunkToBaseline:vM,revertHunkText:_M,revertHunkEdit:TM,hunkRanges:MM}});var Qh=Q((Zh,xi)=>{(function(t){"use strict";let e={js:"break case catch class const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield async await static get set of",ts:"break case catch class const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield async await static get set of interface type enum implements private protected public readonly abstract declare namespace as satisfies keyof infer never unknown any string number boolean object symbol bigint",python:"and as assert async await break class continue def del elif else except False finally for from global if import in is lambda None nonlocal not or pass raise return True try while with yield match case",json:"true false null",go:"break case chan const continue default defer else fallthrough for func go goto if import interface map package range return select struct switch type var nil true false",rust:"as async await break const continue crate dyn else enum extern false fn for if impl in let loop match mod move mut pub ref return self Self static struct super trait true type unsafe use where while",sh:"if then else elif fi for while until do done case esac function return exit local export readonly shift",sql:"select from where insert into values update set delete create table drop alter add index join left right inner outer on group by order limit offset as and or not null primary key foreign references distinct"},n={};Object.keys(e).forEach(function(l){n[l]=new Set(e[l].split(/\s+/))});function s(l){let c=String(l||"").toLowerCase().trim();return c==="javascript"||c==="node"||c==="mjs"||c==="cjs"?"js":c==="typescript"?"ts":c==="py"||c==="python3"?"python":c==="golang"?"go":c==="rs"?"rust":c==="bash"||c==="shell"||c==="zsh"?"sh":c==="jsx"||c==="tsx"?c==="tsx"?"ts":"js":c}function r(l){let c=s(l);return n[c]?n[c]:n.js}function o(l,c){let u=r(c),d=s(c),f={kws:u,hashComment:d==="python"||d==="sh"||d==="ruby"||d==="yaml"||d==="toml",sql:d==="sql"},p=String(l??"").split(`
package/dist/extension.js CHANGED
@@ -987,7 +987,7 @@ Plugins run on this machine with your permissions. After installing, you still h
987
987
  \u30BD\u30FC\u30B9\uFF1A{repo}
988
988
  \u30EC\u30D3\u30E5\u30FC\u72B6\u614B\uFF1A{review}
989
989
 
990
- \u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3042\u306A\u305F\u306E\u6A29\u9650\u3067\u672C\u6A5F\u4E0A\u3067\u52D5\u4F5C\u3057\u307E\u3059\u3002\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u5F8C\u3082\u3001\u300C\u30D7\u30E9\u30B0\u30A4\u30F3\u300D\u30BB\u30AF\u30B7\u30E7\u30F3\u3067\u4FE1\u983C\u3059\u308B\u307E\u3067\u6709\u52B9\u306B\u306A\u308A\u307E\u305B\u3093\u3002`,"ext.marketInstallYes":"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB","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.thinkInline":"{pos}: \u30E2\u30C7\u30EB\u300C{id}\u300D\u306E thinking.inline \u306F true / false \u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\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.navBackup":"\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7","hub.navUsage":"\u4F7F\u7528\u91CF","hub.navPlugins":"\u30D7\u30E9\u30B0\u30A4\u30F3","hub.navMarket":"\u30DE\u30FC\u30B1\u30C3\u30C8","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.navBackupTitle":"\u30AF\u30E9\u30A6\u30C9\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\uFF08WebDAV\uFF1A\u30BB\u30C3\u30B7\u30E7\u30F3 / \u6DFB\u4ED8 / \u30D7\u30E9\u30F3 / \u8A2D\u5B9A\uFF09","hub.navUsageTitle":"Token \u4F7F\u7528\u91CF\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\uFF08\u30E2\u30C7\u30EB / \u65E5 / \u30E2\u30FC\u30C9\u5225\uFF09","hub.navPluginsTitle":"\u30ED\u30FC\u30AB\u30EB\u30D7\u30E9\u30B0\u30A4\u30F3\uFF08\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB / \u30A2\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB / \u30B4\u30DF\u7BB1\uFF09","market.title":"\u30D7\u30E9\u30B0\u30A4\u30F3\u30DE\u30FC\u30B1\u30C3\u30C8","market.statusReady":"\u6E96\u5099\u5B8C\u4E86","market.refreshing":"\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u66F4\u65B0\u4E2D\u2026","market.refresh":"\u66F4\u65B0","market.refreshTitle":"\u30EA\u30E2\u30FC\u30C8\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u518D\u53D6\u5F97\u3057\u307E\u3059\uFF08\u53D6\u5F97\u3067\u304D\u306A\u3044\u5834\u5408\u306F\u540C\u68B1\u30DF\u30E9\u30FC\u3092\u4F7F\u7528\uFF09","market.source":"\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306E\u53D6\u5F97\u5143\uFF1A{source}","market.sourceTitle":"\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306E\u53D6\u5F97\u5143\u3067\u3059\u3002\u30EA\u30E2\u30FC\u30C8\u306F\u516C\u958B\u30D7\u30E9\u30B0\u30A4\u30F3\u30EA\u30DD\u30B8\u30C8\u30EA\u3001\u540C\u68B1\u7248\u306F\u62E1\u5F35\u6A5F\u80FD\u3068\u3068\u3082\u306B\u914D\u5E03\u3055\u308C\u308B\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u306E\u30DF\u30E9\u30FC\u3067\u3059\u3002","market.offlineNote":"\u30EA\u30E2\u30FC\u30C8\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u53D6\u5F97\u3067\u304D\u306A\u3044\u305F\u3081\u3001\u62E1\u5F35\u6A5F\u80FD\u306B\u540C\u68B1\u3055\u308C\u305F\u30DF\u30E9\u30FC\u3092\u8868\u793A\u3057\u3066\u3044\u307E\u3059\uFF08\u516C\u958B\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3068\u306F\u30D0\u30A4\u30C8\u5358\u4F4D\u3067\u4E00\u81F4\u3057\u307E\u3059\u304C\u3001\u6700\u65B0\u3067\u306F\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\uFF09\u3002","market.empty":"\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093\u3002","market.emptyHint":"\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306F\u516C\u958B\u30D7\u30E9\u30B0\u30A4\u30F3\u30EA\u30DD\u30B8\u30C8\u30EA\u304B\u3089\u53D6\u5F97\u3057\u307E\u3059\u3002\u53D6\u5F97\u3067\u304D\u306A\u3044\u5834\u5408\u306F\u540C\u68B1\u30DF\u30E9\u30FC\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002","market.count":"{n} \u4EF6\u306E\u9805\u76EE","market.install":"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB","market.update":"\u66F4\u65B0","market.installed":"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F","market.updateAvailable":"\u66F4\u65B0\u3042\u308A","market.installing":"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u4E2D\u2026","market.cancelled":"\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u4F55\u3082\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF09","market.failed":"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{msg}","market.installedOk":"\u300C{name}\u300D\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3057\u305F\u3002\u300C\u30D7\u30E9\u30B0\u30A4\u30F3\u300D\u30BB\u30AF\u30B7\u30E7\u30F3\u3067\u4FE1\u983C\u3057\u3066\u6709\u52B9\u306B\u3057\u3066\u304F\u3060\u3055\u3044","market.replacedOk":"\u300C{name}\u300D\u3092\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u66F4\u65B0\u3057\u307E\u3057\u305F","market.replaceConfirm":"\u300C{name}\u300D\u306F\u3059\u3067\u306B\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F\u3067\u3059\u3002\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u3067\u7F6E\u304D\u63DB\u3048\u307E\u3059\u304B\uFF1F\u53E4\u3044\u65B9\u306F\u30B4\u30DF\u7BB1\u3078\u79FB\u52D5\u3057\u307E\u3059\u3002","market.typePlugin":"\u30D7\u30E9\u30B0\u30A4\u30F3","market.typeSkill":"\u30B9\u30AD\u30EB","market.reviewReviewed":"\u30EC\u30D3\u30E5\u30FC\u6E08\u307F","market.reviewPending":"\u30EC\u30D3\u30E5\u30FC\u5F85\u3061","market.reviewFlagged":"\u554F\u984C\u3042\u308A","market.reviewRevoked":"\u53D6\u308A\u4E0B\u3052\u6E08\u307F","market.signed":"\u7F72\u540D\u6E08\u307F","market.unsigned":"\u672A\u7F72\u540D","market.permNone":"\u8FFD\u52A0\u306E\u6A29\u9650\u5BA3\u8A00\u306A\u3057","market.noTools":"\u306A\u3057","market.permFsRead":"\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u53D6\u308B","market.permFsWrite":"\u30D5\u30A1\u30A4\u30EB\u3092\u66F8\u304D\u8FBC\u3080 / \u524A\u9664\u3059\u308B","market.permShell":"shell \u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C\u3059\u308B","market.permNet":"\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u884C\u3046","market.permEnv":"\u74B0\u5883\u5909\u6570\u3092\u8AAD\u307F\u53D6\u308B","market.permsLabel":"\u5BA3\u8A00\u3055\u308C\u305F\u6A29\u9650","market.repoLabel":"\u30BD\u30FC\u30B9","market.foot":"\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3042\u306A\u305F\u306E\u6A29\u9650\u3067\u672C\u6A5F\u4E0A\u3067\u52D5\u4F5C\u3057\u307E\u3059\u3002\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u5F8C\u3082\u3001\u300C\u30D7\u30E9\u30B0\u30A4\u30F3\u300D\u30BB\u30AF\u30B7\u30E7\u30F3\u3067\u4FE1\u983C\u3059\u308B\u307E\u3067\u6709\u52B9\u306B\u306A\u308A\u307E\u305B\u3093","plugins.title":"\u30ED\u30FC\u30AB\u30EB\u30D7\u30E9\u30B0\u30A4\u30F3","plugins.globalDirTitle":"\u30B0\u30ED\u30FC\u30D0\u30EB\u30D7\u30E9\u30B0\u30A4\u30F3\u30D5\u30A9\u30EB\u30C0\uFF08~/.luban/plugins\uFF09","plugins.dirsTitle":"\u30B9\u30AD\u30E3\u30F3\u5BFE\u8C61\uFF08\u4E0A\uFF1A\u30B0\u30ED\u30FC\u30D0\u30EB\u3001\u4E0B\uFF1A\u73FE\u5728\u306E\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\uFF09","plugins.statusReady":"\u6E96\u5099\u5B8C\u4E86","plugins.rescan":"\u518D\u30B9\u30AD\u30E3\u30F3","plugins.rescanTitle":"\u30D7\u30E9\u30B0\u30A4\u30F3\u30D5\u30A9\u30EB\u30C0\u3092\u518D\u30B9\u30AD\u30E3\u30F3\u3057\u3001\u30E2\u30B8\u30E5\u30FC\u30EB\u30AD\u30E3\u30C3\u30B7\u30E5\u3092\u7834\u68C4\u3057\u307E\u3059\uFF08\u30D7\u30E9\u30B0\u30A4\u30F3\u306E\u30B3\u30FC\u30C9\u3092\u76F4\u3057\u305F\u5F8C\u306B\uFF09","plugins.rescanning":"\u518D\u30B9\u30AD\u30E3\u30F3\u4E2D\u2026","plugins.install":"\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u8FFD\u52A0\u2026","plugins.installTitle":"plugin.json \u3092\u542B\u3080\u30D5\u30A9\u30EB\u30C0\u3092\u9078\u3073\u3001\u30B0\u30ED\u30FC\u30D0\u30EB\u30D7\u30E9\u30B0\u30A4\u30F3\u30D5\u30A9\u30EB\u30C0\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3059","plugins.installing":"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u4E2D\u2026","plugins.working":"\u51E6\u7406\u4E2D\u2026","plugins.cancelled":"\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F","plugins.failed":"\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{msg}","plugins.countHint":"\u6709\u52B9 {plugins} \u4EF6 \xB7 \u672A\u627F\u8A8D {pending} \u4EF6","plugins.emptyA":"\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093\u3002","plugins.emptyB":"\u53F3\u4E0A\u306E\u300C\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u8FFD\u52A0\u2026\u300D\u304B\u3089 <code>plugin.json</code> \u3092\u542B\u3080\u30D5\u30A9\u30EB\u30C0\u3092\u9078\u3093\u3067\u304F\u3060\u3055\u3044\u3002\u8FFD\u52A0\u3059\u308B\u3068 <code>pl__&lt;\u30D7\u30E9\u30B0\u30A4\u30F3&gt;__&lt;\u30C4\u30FC\u30EB&gt;</code> \u3068\u3044\u3046\u540D\u524D\u3067 Agent \u306E\u30C4\u30FC\u30EB\u4E00\u89A7\u306B\u73FE\u308C\u307E\u3059\u3002","plugins.installed":"\u6709\u52B9","plugins.installedOk":"\u300C{name}\u300D\u3092\u8FFD\u52A0\u3057\u3001\u4FE1\u983C\u6E08\u307F\u306B\u3057\u307E\u3057\u305F","plugins.uninstalledOk":"\u300C{name}\u300D\u3092\u30B4\u30DF\u7BB1\u3078\u79FB\u52D5\u3057\u307E\u3057\u305F","plugins.restoredOk":"\u300C{name}\u300D\u3092\u5143\u306B\u623B\u3057\u307E\u3057\u305F","plugins.trustedOk":"\u300C{name}\u300D\u3092\u4FE1\u983C\u3057\u307E\u3057\u305F","plugins.pendingTitle":"\u7121\u52B9\uFF08\u672A\u627F\u8A8D\uFF09","plugins.pendingHint":"\u3053\u306E\u884C\u306E\u300C\u4FE1\u983C\u300D\u3092\u62BC\u3059\u307E\u3067\u8AAD\u307F\u8FBC\u307E\u308C\u307E\u305B\u3093","plugins.trashTitle":"\u30B4\u30DF\u7BB1","plugins.trashCount":"{n} \u4EF6","plugins.trashNote":"\u30A2\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306F\u30D5\u30A9\u30EB\u30C0\u3092\u3053\u3053\u3078\u79FB\u3059\u3060\u3051\u3067\u3059\u3002\u300C\u5143\u306B\u623B\u3059\u300D\u3067\u5143\u306E\u5834\u6240\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3001\u305D\u308C\u4EE5\u5916\u306F\u30B0\u30ED\u30FC\u30D0\u30EB\uFF09\u306B\u623B\u308A\u307E\u3059\u3002","plugins.removedAt":"\u79FB\u52D5\u65E5\u6642\uFF1A{at}","plugins.openTrash":"\u30B4\u30DF\u7BB1\u3092\u958B\u304F","plugins.openTrashTitle":"OS \u306E\u30D5\u30A1\u30A4\u30EB\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC\u3067\u30B4\u30DF\u7BB1\u30D5\u30A9\u30EB\u30C0\u3092\u958B\u304F","plugins.openGlobal":"\u30D7\u30E9\u30B0\u30A4\u30F3\u30D5\u30A9\u30EB\u30C0\u3092\u958B\u304F","plugins.openGlobalTitle":"OS \u306E\u30D5\u30A1\u30A4\u30EB\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC\u3067\u30B0\u30ED\u30FC\u30D0\u30EB\u30D7\u30E9\u30B0\u30A4\u30F3\u30D5\u30A9\u30EB\u30C0\u3092\u958B\u304F","plugins.offTitle":"\u30D7\u30E9\u30B0\u30A4\u30F3\u6A5F\u80FD\u306F\u30AA\u30D5\u3067\u3059","plugins.offNote":"\u5207\u308A\u66FF\u3048\u306F\u300C\u4E00\u822C\u300D\u30BB\u30AF\u30B7\u30E7\u30F3\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u8A2D\u5B9A\uFF08luban.plugins.enabled\uFF09\u306B\u3042\u308A\u307E\u3059\u3002\u30AA\u30D5\u306E\u9593\u306F\u30D7\u30E9\u30B0\u30A4\u30F3\u304C\u8AAD\u307F\u8FBC\u307E\u308C\u305A\u3001\u3053\u3053\u306E\u30C4\u30FC\u30EB\u3082 Agent \u306B\u306F\u6E21\u308A\u307E\u305B\u3093\u3002","plugins.offGo":"\u4E00\u822C\u3092\u958B\u304F","plugins.foot":"\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3053\u306E\u30DE\u30B7\u30F3\u4E0A\u3067\u81EA\u5206\u306E\u6A29\u9650\u3067\u52D5\u4F5C\u3057\u307E\u3059\u3002\u4FE1\u983C\u3067\u304D\u308B\u914D\u5E03\u5143\u3060\u3051\u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044","plugins.scopeGlobal":"\u30B0\u30ED\u30FC\u30D0\u30EB","plugins.scopeProject":"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8","plugins.ro":"\u8AAD\u307F\u53D6\u308A\u5C02\u7528","plugins.rw":"\u66F8\u304D\u8FBC\u307F","plugins.roTip":"\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u306E\u5BA3\u8A00\uFF1APlan \u30E2\u30FC\u30C9\u3067\u3082\u8A31\u53EF\u3055\u308C\u307E\u3059","plugins.rwTip":"\u526F\u4F5C\u7528\u3042\u308A\uFF1APlan \u30E2\u30FC\u30C9\u3067\u306F\u30D6\u30ED\u30C3\u30AF\u3055\u308C\u307E\u3059","plugins.uninstall":"\u30A2\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB","plugins.restore":"\u5143\u306B\u623B\u3059","plugins.trust":"\u4FE1\u983C","plugins.replaceConfirm":"\u540C\u540D\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u300C{name}\u300D\u304C\u65E2\u306B\u3042\u308A\u307E\u3059\u3002\u53E4\u3044\u3082\u306E\u3092\u30B4\u30DF\u7BB1\u3078\u79FB\u3057\u3001\u4ECA\u56DE\u9078\u3093\u3060\u30D5\u30A9\u30EB\u30C0\u3067\u7F6E\u304D\u63DB\u3048\u307E\u3059\u304B\uFF1F","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.groupNetwork":"\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF","general.netTlsMaxVersion":"TLS \u306E\u6700\u9AD8\u30D0\u30FC\u30B8\u30E7\u30F3","general.netTlsMaxVersionTitle":"\u30E2\u30C7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u3067\u4F7F\u3046 TLS \u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u4E0A\u9650\u3002\u5909\u66F4\u306F\u4EE5\u964D\u306B\u65B0\u898F\u78BA\u7ACB\u3059\u308B\u63A5\u7D9A\u306B\u306E\u307F\u52B9\u304D\u307E\u3059","general.netTlsMaxVersionNote":"\u4E00\u90E8\u306E CDN \u30A8\u30C3\u30B8\u30CE\u30FC\u30C9\u306F TLS 1.3 \u306E\u30CF\u30F3\u30C9\u30B7\u30A7\u30A4\u30AF\u3092\u62D2\u5426\u3057\u3066\u5207\u65AD\u3057\u307E\u3059\uFF08\u75C7\u72B6\uFF1A\u6642\u3005\u300C\u63A5\u7D9A\u304C\u4E2D\u65AD\u3055\u308C\u307E\u3057\u305F\u300D\uFF09\u30021.2 \u306B\u3059\u308B\u3068\u56DE\u907F\u3067\u304D\u307E\u3059\u3002\u4EE5\u964D\u306B\u65B0\u898F\u78BA\u7ACB\u3059\u308B\u63A5\u7D9A\u306B\u306E\u307F\u5F71\u97FF\u3057\u307E\u3059\u3002","general.tlsAuto":"\u81EA\u52D5\uFF08TLS 1.3\uFF09","general.tls12":"TLS 1.2 \u306B\u5236\u9650","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.agentNoWriteNudges":"\u7A7A\u56DE\u3057\u50AC\u4FC3\u56DE\u6570\uFF080 = \u7121\u52B9\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.groupPlugins":"\u30ED\u30FC\u30AB\u30EB\u30D7\u30E9\u30B0\u30A4\u30F3","general.pluginsEnabled":"\u30ED\u30FC\u30AB\u30EB\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u6709\u52B9\u5316","general.pluginsMaxTools":"\u30C4\u30FC\u30EB\u6570\u306E\u4E0A\u9650\uFF081\u301C200\uFF09","general.pluginsNote":"~/.luban/plugins \u3068 <\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9>/.luban/plugins \u304B\u3089\u3001plugin.json \u3092\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u3068\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u8AAD\u307F\u8FBC\u307F\u307E\u3059\u3002\u30C4\u30FC\u30EB\u306F pl__ \u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u4ED8\u304D\u3067\u30E2\u30C7\u30EB\u306E\u4E00\u89A7\u306B\u73FE\u308C\u307E\u3059\u3002\u521D\u56DE\u8AAD\u307F\u8FBC\u307F\u6642\u3068\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u5BB9\u304C\u5909\u5316\u3057\u305F\u3068\u304D\u306B\u78BA\u8A8D\u30C0\u30A4\u30A2\u30ED\u30B0\u304C\u51FA\u307E\u3059\u3002\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u62E1\u5F35\u6A5F\u80FD\u306E\u30D7\u30ED\u30BB\u30B9\u5185\u3067\u52D5\u304F\u305F\u3081\u30B5\u30F3\u30C9\u30DC\u30C3\u30AF\u30B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u4FE1\u983C\u3067\u304D\u308B\u30B3\u30FC\u30C9\u3060\u3051\u3092\u5165\u308C\u3066\u304F\u3060\u3055\u3044\u3002Plan \u30E2\u30FC\u30C9\u3067\u306F\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u3068\u7533\u544A\u3057\u305F\u30C4\u30FC\u30EB\u306E\u307F\u8A31\u53EF\u3055\u308C\u307E\u3059\u3002","general.reviewAutoOpenDiff":"\u66F8\u304D\u8FBC\u307F\u5F8C\u306B diff \u3092\u81EA\u52D5\u8868\u793A","general.reviewAutoKeep":"\u65E2\u5B9A\u3067\u81EA\u52D5\u4FDD\u6301\uFF08\u4FDD\u7559\u30EC\u30D3\u30E5\u30FC\u3092\u30B9\u30AD\u30C3\u30D7\uFF09","general.reviewAutoKeepNote":"\u300C\u81EA\u52D5\u4FDD\u6301\u300D\u306F\u30EC\u30D3\u30E5\u30FC\u57FA\u6E96\u3092\u305D\u306E\u307E\u307E\u5F15\u304D\u4E0A\u3052\u308B\u305F\u3081\u3001\u4FDD\u7559\u30EC\u30D3\u30E5\u30FC\u306B\u3082 diff \u306B\u3082\u6B8B\u3089\u305A\u3001\u623B\u3059\u624B\u6BB5\u306F git \u306E\u307F\u3002\u30AF\u30EA\u30FC\u30F3\u306A git \u30EF\u30FC\u30AF\u30C4\u30EA\u30FC\u3067\u306E\u307F\u6709\u52B9\uFF08\u672A\u30B3\u30DF\u30C3\u30C8\u306E\u5909\u66F4\u3084\u30EA\u30DD\u30B8\u30C8\u30EA\u3067\u306A\u3044\u5834\u5408\u306F\u30CF\u30F3\u30AF\u5358\u4F4D\u306E\u30EC\u30D3\u30E5\u30FC\u306B\u623B\u308B\uFF09\u3002Plan \u306E\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u30FB\u5371\u967A\u30B3\u30DE\u30F3\u30C9\u306E\u30D6\u30E9\u30C3\u30AF\u30EA\u30B9\u30C8\u30FBcomputer \u306E\u78BA\u8A8D\u306F\u5F71\u97FF\u3092\u53D7\u3051\u306A\u3044\u3002","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.reload":"\u8A2D\u5B9A\u3092\u518D\u8AAD\u307F\u8FBC\u307F","settings.reloadTitle":"providers.json \u3092\u8AAD\u307F\u76F4\u3057\u307E\u3059\uFF08\u30B9\u30AD\u30EB / \u30EB\u30FC\u30EB / MCP \u3092\u542B\u3080\uFF09\u3002\u672A\u4FDD\u5B58\u306E\u7DE8\u96C6\u306F\u7834\u68C4\u3055\u308C\u307E\u3059","settings.reloading":"\u518D\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026","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.thinkInline":"inline","settings.thinkInlineTitle":"inline: \u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u304C\u601D\u8003\u3092\u305D\u306E\u307E\u307E content \u306B\u66F8\u304D\u8FBC\u3080\u5834\u5408\uFF08\u672B\u5C3E\u306E </think> \u306E\u307F\u3001\u6253\u3061\u5207\u3089\u308C\u308B\u3068\u30BF\u30B0\u3082\u51FA\u306A\u3044\uFF09\u3002\u30AA\u30F3\u306B\u3059\u308B\u3068\u601D\u8003\u3092\u6709\u52B9\u306B\u3057\u305F\u3068\u304D content \u3092\u6700\u521D\u306E 1 \u6587\u5B57\u304B\u3089\u601D\u8003\u30D6\u30ED\u30C3\u30AF\u306B\u96C6\u3081\u3001\u56DE\u7B54\u306B\u6F0F\u308C\u307E\u305B\u3093","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\u3057\u3001\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u691C\u51FA\u4E2D\u2026","settings.modelsHead":"\u30E2\u30C7\u30EB\uFF08{n}\uFF09\xB7 id / \u8868\u793A\u540D / maxInputTokens / maxOutputTokens / toolCalling / vision / thinking","settings.modelsColsId":"id","settings.modelsColsName":"\u8868\u793A\u540D","settings.modelsColsIn":"\u5165\u529B\u30A6\u30A3\u30F3\u30C9\u30A6","settings.modelsColsOut":"\u51FA\u529B\u4E0A\u9650","settings.modelsColsTools":"tools","settings.modelsColsVision":"vision","settings.limitsNote":"\u5165\u529B\u30A6\u30A3\u30F3\u30C9\u30A6 = \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u5168\u4F53\u306E\u4E88\u7B97\uFF08maxInputTokens\uFF09\u3001\u51FA\u529B\u4E0A\u9650 = 1 \u56DE\u306E\u56DE\u7B54\u4E0A\u9650\uFF08maxOutputTokens\u3001\u9577\u3044\u30D5\u30A1\u30A4\u30EB / \u601D\u8003\u30E2\u30C7\u30EB\u306F 16384 \u4EE5\u4E0A\u63A8\u5968\uFF09\u3002\u5408\u8A08\u304C\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u306E\u5B9F\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u8D85\u3048\u306A\u3044\u3088\u3046\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u7A7A\u6B04\u306F 65536 / 8192 \u3068\u3057\u3066\u6271\u3044\u307E\u3059\u3002","settings.maxInTitle":"maxInputTokens\uFF1A\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u5168\u4F53\u306E\u4E88\u7B97\u3002\u30ED\u30FC\u30AB\u30EB\u30E2\u30C7\u30EB\u3067\u306F\u30B5\u30FC\u30D0\u30FC\u306E\u5B9F\u30A6\u30A3\u30F3\u30C9\u30A6\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08Ollama \u306F OLLAMA_CONTEXT_LENGTH / num_ctx\uFF09","settings.maxOutTitle":"maxOutputTokens\uFF1A1 \u56DE\u306E\u56DE\u7B54\u4E0A\u9650\uFF08max_tokens\uFF09\u3002\u9577\u3044\u30D5\u30A1\u30A4\u30EB\u3084\u601D\u8003\u30E2\u30C7\u30EB\u306F 16384 \u4EE5\u4E0A\u63A8\u5968","settings.limitPreset":"\u3088\u304F\u4F7F\u3046\u30A6\u30A3\u30F3\u30C9\u30A6\u2026","settings.limitPresetSmall":"8k / 2k","settings.limitPreset16":"16k / 4k","settings.limitPreset32":"32k / 8k","settings.limitPreset64":"64k / 16k","settings.limitPreset128":"128k / 16k","settings.limitPreset256":"256k / 32k","settings.limitPreset512":"512k / 32k","settings.limitPreset1m":"1M / 32k","settings.suggestLimits":"\u30A6\u30A3\u30F3\u30C9\u30A6 {in} / \u51FA\u529B {out} \u3092\u691C\u51FA\uFF08{source}\uFF09","settings.suggestTraining":"\uFF08\u5B66\u7FD2\u6642\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u3002\u30B5\u30FC\u30D0\u30FC\u306E num_ctx \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF09","settings.applySuggestion":"\u63A1\u7528","settings.sourceGeneric":"\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF","settings.sourceOpenrouter":"OpenRouter","settings.sourceVllm":"vLLM","settings.sourceOllama":"Ollama","settings.sourceLlamacpp":"llama.cpp","settings.warningTitle":"\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF1A","settings.warnThinkOutput":"\u30E2\u30C7\u30EB\u300C{id}\u300D\u306F thinking \u6709\u52B9\u3067\u3059\u304C\u51FA\u529B\u4E0A\u9650\u304C {n} \u3057\u304B\u3042\u308A\u307E\u305B\u3093\u3002\u601D\u8003\u30C8\u30FC\u30AF\u30F3\u3082\u3053\u3053\u304B\u3089\u6D88\u8CBB\u3059\u308B\u305F\u3081\u3001\u672C\u6587\u304C\u7A7A\u306B\u306A\u308A\u3084\u3059\u3044\u3067\u3059","settings.warnOutGeIn":"\u30E2\u30C7\u30EB\u300C{id}\u300D\u306E\u51FA\u529B\u4E0A\u9650 \u2265 \u5165\u529B\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059\u3002\u5024\u304C\u9006\u306E\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059","settings.warnSmallWindow":"\u30E2\u30C7\u30EB\u300C{id}\u300D\u306E\u5165\u529B\u30A6\u30A3\u30F3\u30C9\u30A6 < 16k\uFF1A\u5C0F\u30A6\u30A3\u30F3\u30C9\u30A6\u30E2\u30FC\u30C9\u306B\u306A\u308A\u3001\u30C4\u30FC\u30EB\u3068\u30B7\u30B9\u30C6\u30E0\u30D7\u30ED\u30F3\u30D7\u30C8\u304C\u7C21\u7565\u5316\u3055\u308C\u307E\u3059","settings.warnHuge":"\u30E2\u30C7\u30EB\u300C{id}\u300D\u306E\u30A6\u30A3\u30F3\u30C9\u30A6 / \u51FA\u529B\u4E0A\u9650\u304C\u7570\u5E38\u306B\u5927\u304D\u3044\u3067\u3059\uFF08{n}\uFF09\u3002\u5165\u529B\u30DF\u30B9\u3067\u306A\u3044\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044","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.fetchedWithMeta":"\u2705 \u30E2\u30C7\u30EB\u3092 {n} \u4EF6\u53D6\u5F97\uFF08{m} \u4EF6\u306B\u30A6\u30A3\u30F3\u30C9\u30A6\u60C5\u5831\u3042\u308A\uFF09","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","webdav.title":"\u30AF\u30E9\u30A6\u30C9\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\uFF08WebDAV\uFF09","webdav.enabled":"\u30AF\u30E9\u30A6\u30C9\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3092\u6709\u52B9\u306B\u3059\u308B","webdav.url":"\u30B5\u30FC\u30D0\u30FC URL","webdav.urlPh":"https://dav.example.com/remote.php/dav/files/me","webdav.username":"\u30E6\u30FC\u30B6\u30FC\u540D","webdav.usernamePh":"WebDAV \u30A2\u30AB\u30A6\u30F3\u30C8\uFF08\u7A7A\u6B04\u53EF\uFF09","webdav.password":"\u30D1\u30B9\u30EF\u30FC\u30C9 / \u30A2\u30D7\u30EA\u30D1\u30B9\u30EF\u30FC\u30C9","webdav.passwordPh":"\u7A7A\u6B04\u306A\u3089\u5909\u66F4\u3057\u307E\u305B\u3093\uFF08SecretStorage \u306B\u4FDD\u5B58\u6E08\u307F\uFF09","webdav.passwordPhNew":"SecretStorage \u306E\u307F\u306B\u4FDD\u5B58\u3057\u3001\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u306B\u306F\u66F8\u304D\u307E\u305B\u3093","webdav.clearPassword":"\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u524A\u9664","webdav.remoteDir":"\u30EA\u30E2\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0\u30FC","webdav.remoteDirPh":"luban","webdav.perMachine":"\u30DE\u30B7\u30F3\u3054\u3068\u306B\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u5206\u3051\u308B","webdav.perMachineHint":"\u30AA\u30F3\u306B\u3059\u308B\u3068\u5B9F\u969B\u306E\u30D5\u30A9\u30EB\u30C0\u30FC\u306F\u300C\u30EA\u30E2\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0\u30FC / \u3053\u306E\u30DE\u30B7\u30F3\u306E\u540D\u524D\u300D\u306B\u306A\u308A\u3001\u8907\u6570\u306E PC \u304C\u305D\u308C\u305E\u308C\u72EC\u7ACB\u306B\u4FDD\u5B58\u3055\u308C\u4E0A\u66F8\u304D\u3057\u5408\u3044\u307E\u305B\u3093\u3002\u30AA\u30D5\u306E\u5834\u5408\u306F\u5168\u30DE\u30B7\u30F3\u3067\u540C\u3058\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u5171\u6709\u3057\u307E\u3059\uFF08\u6700\u5F8C\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u304C\u512A\u5148\uFF09\u3002","webdav.machine":"\u8AAD\u307F\u53D6\u308A\u5143\u306E\u30DE\u30B7\u30F3","webdav.machineHint":"\u300C\u8AAD\u307F\u53D6\u308A\u5143\u306E\u30DE\u30B7\u30F3\u300D\u306F\u300C\u30EA\u30E2\u30FC\u30C8\u306E\u5185\u5BB9\u3092\u898B\u308B\u300D\u300C\u30EA\u30E2\u30FC\u30C8\u304B\u3089\u5FA9\u5143\u300D\u3060\u3051\u306B\u52B9\u304D\u307E\u3059\u3002\u5225\u306E PC \u3092\u9078\u3076\u3068\u305D\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3092\u8AAD\u307F\u307E\u3059\uFF08\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u306F\u5E38\u306B\u3053\u306E\u30DE\u30B7\u30F3\u306E\u30D5\u30A9\u30EB\u30C0\u30FC\u3078\u66F8\u304D\u8FBC\u307F\u307E\u3059\uFF09\u3002","webdav.machineRefresh":"\u4ED6\u306E PC \u3092\u63A2\u3059","webdav.machineRefreshTitle":"\u30EA\u30E2\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0\u30FC\u914D\u4E0B\u306E\u5404\u30DE\u30B7\u30F3\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u4E00\u89A7\u3092\u8AAD\u307F\u307E\u3059\uFF08\u8AAD\u307F\u53D6\u308A\u306E\u307F\u3001\u66F8\u304D\u8FBC\u307F\u306A\u3057\uFF09","webdav.machineLocal":"\u3053\u306E\u30DE\u30B7\u30F3\uFF08\u65E2\u5B9A\uFF09","webdav.machineShared":"\u5171\u6709\u30D5\u30A9\u30EB\u30C0\u30FC","webdav.machineItem":"{dir} \xB7 {at} \xB7 {n} \u30D5\u30A1\u30A4\u30EB","webdav.machineItemLocal":"{dir}\uFF08\u3053\u306E\u30DE\u30B7\u30F3\uFF09 \xB7 {at} \xB7 {n} \u30D5\u30A1\u30A4\u30EB","webdav.machineLoading":"\u30EA\u30E2\u30FC\u30C8\u306E\u30DE\u30B7\u30F3\u4E00\u89A7\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026","webdav.machineNone":"\u30EA\u30E2\u30FC\u30C8\u306B\u3042\u308B\u306E\u306F\u3053\u306E\u30DE\u30B7\u30F3\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3060\u3051\u3067\u3059\uFF08{dir} \u914D\u4E0B\u306B\u4ED6\u306E PC \u306E\u3082\u306E\u306F\u3042\u308A\u307E\u305B\u3093\uFF09","webdav.machineFound":"{n} \u53F0\u5206\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u304C\u3042\u308A\u307E\u3059\u3002\u300C\u8AAD\u307F\u53D6\u308A\u5143\u306E\u30DE\u30B7\u30F3\u300D\u3067\u5207\u308A\u66FF\u3048\u3089\u308C\u307E\u3059","webdav.force":"\u30ED\u30FC\u30AB\u30EB\u306E\u65B0\u3057\u3044\u30D5\u30A1\u30A4\u30EB\u3082\u4E0A\u66F8\u304D","webdav.forceHint":"\u65E2\u5B9A\u3067\u306F\u300C\u30ED\u30FC\u30AB\u30EB\u304C\u30EA\u30E2\u30FC\u30C8\u306E\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u3088\u308A\u65B0\u3057\u3044\u300D\u30D5\u30A1\u30A4\u30EB\u306F\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\u3002\u30AA\u30F3\u306B\u3059\u308B\u3068\u4E0A\u66F8\u304D\u3057\u307E\u3059\uFF08\u5FA9\u5143\u524D\u306E\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u306F ~/.luban/backups/ \u306B\u6B8B\u308A\u307E\u3059\uFF09\u3002\u30DE\u30B7\u30F3\u9593\u3067 provider \u8A2D\u5B9A\u3092\u540C\u671F\u3059\u308B\u3068\u304D\u306B\u5FC5\u8981\u3067\u3059","webdav.statusListInfoLegacy":"\u30EA\u30E2\u30FC\u30C8\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\uFF08\u65E7\u30EB\u30FC\u30C8\uFF09 \xB7 {at} \xB7 {machine} \xB7 {n} \u30D5\u30A1\u30A4\u30EB","webdav.includes":"\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u5BFE\u8C61","webdav.inc.sessions":"\u30BB\u30C3\u30B7\u30E7\u30F3\u5C65\u6B74","webdav.inc.attachments":"\u753B\u50CF\u6DFB\u4ED8","webdav.inc.plans":"\u30D7\u30E9\u30F3\u6587\u66F8","webdav.inc.config":"provider \u8A2D\u5B9A\uFF08\u5E73\u6587\u30AD\u30FC\u306F\u9664\u53BB\uFF09","webdav.inc.mcp":"mcp.json","webdav.providerTitle":"\u5FA9\u5143\u3059\u308B\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u9078\u3076","webdav.providerAll":"\u3059\u3079\u3066\u9078\u629E","webdav.providerNone":"\u3059\u3079\u3066\u89E3\u9664","webdav.providerConfirm":"\u9078\u629E\u3057\u305F\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u5FA9\u5143","webdav.providerCount":"{n} \u4EF6\u306E\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u9078\u629E\u4E2D","webdav.providerCountNone":"\u5C11\u306A\u304F\u3068\u3082 1 \u4EF6\u306E\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u9078\u3093\u3067\u304F\u3060\u3055\u3044","webdav.providerEmpty":"\u3053\u306E\u30DE\u30B7\u30F3\u306B\u306F\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u8A2D\u5B9A\uFF08providers.json\uFF09\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u4ED6\u306E\u30AB\u30C6\u30B4\u30EA\u30FC\u306E\u307F\u5FA9\u5143\u3057\u307E\u3059","webdav.providerLoading":"\u30EA\u30E2\u30FC\u30C8\u306E\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u4E00\u89A7\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026","webdav.providerHint":"\u30C1\u30A7\u30C3\u30AF\u3057\u305F\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3060\u3051\u3092\u30ED\u30FC\u30AB\u30EB\u8A2D\u5B9A\u306B\u30DE\u30FC\u30B8\u3057\u307E\u3059\uFF08\u540C\u3058 id \u306E\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u65E2\u306B\u3042\u308B\u5834\u5408\u3001\u30ED\u30FC\u30AB\u30EB\u306E apiKey \u3092\u4FDD\u6301\u3057\u30E2\u30C7\u30EB\u3060\u3051\u8FFD\u52A0\uFF09","webdav.providerItem":"{name} \xB7 {n} \u30E2\u30C7\u30EB","webdav.providerItemExists":"{name} \xB7 {n} \u30E2\u30C7\u30EB\uFF08\u3053\u306E\u30DE\u30B7\u30F3\u306B\u65E2\u5B58\u3002\u30ED\u30FC\u30AB\u30EB\u306E apiKey \u3092\u4FDD\u6301\uFF09","webdav.providerPickHint":"\u300C\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u8A2D\u5B9A\u300D\u3092\u30AA\u30F3\u306B\u3057\u3066\u300C\u30EA\u30E2\u30FC\u30C8\u304B\u3089\u5FA9\u5143\u300D\u3092\u62BC\u3059\u3068\u3001\u5FA9\u5143\u3059\u308B\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u9078\u3079\u307E\u3059","webdav.save":"\u8A2D\u5B9A\u3092\u4FDD\u5B58","webdav.test":"\u63A5\u7D9A\u30C6\u30B9\u30C8","webdav.testing":"\u63A5\u7D9A\u4E2D\u2026","webdav.backup":"\u4ECA\u3059\u3050\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7","webdav.restore":"\u30EA\u30E2\u30FC\u30C8\u304B\u3089\u5FA9\u5143","webdav.list":"\u30EA\u30E2\u30FC\u30C8\u306E\u5185\u5BB9\u3092\u898B\u308B","webdav.openFile":"webdav.json \u3092\u958B\u304F","webdav.openFileTitle":"\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u306B\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u542B\u307E\u308C\u307E\u305B\u3093\uFF08SecretStorage \u306E\u307F\uFF09","webdav.note":"\u30D1\u30B9\u30EF\u30FC\u30C9\u306F VS Code \u306E SecretStorage \u306B\u4FDD\u5B58\u3057\u3001webdav.json \u306B\u306F\u66F8\u304D\u307E\u305B\u3093\u3002\u30BB\u30C3\u30B7\u30E7\u30F3\u672C\u6587\u306F\u30EA\u30E2\u30FC\u30C8\u3078\u9001\u4FE1\u3055\u308C\u308B\u305F\u3081\u3001\u4FE1\u983C\u3067\u304D\u308B\u30B5\u30FC\u30D0\u30FC\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u5FA9\u5143\u524D\u306B\u306F\u4E0A\u66F8\u304D\u5BFE\u8C61\u306E\u30D5\u30A1\u30A4\u30EB\u3092 <code>~/.luban/backups/</code> \u306B\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u3057\u307E\u3059\u3002","webdav.statusReady":"\u6E96\u5099\u5B8C\u4E86","webdav.statusSaved":"\u8A2D\u5B9A\u3092\u4FDD\u5B58\u3057\u307E\u3057\u305F","webdav.statusInvalid":"{n} \u4EF6\u306E\u554F\u984C\u304C\u3042\u308A\u3001\u4FDD\u5B58\u3057\u3066\u3044\u307E\u305B\u3093","webdav.statusTestOk":"\u63A5\u7D9A OK \xB7 {ms}ms","webdav.statusTestCreate":"\u63A5\u7D9A OK\u3002\u30EA\u30E2\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0\u30FC\u306F\u521D\u56DE\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u6642\u306B\u4F5C\u6210\u3057\u307E\u3059","webdav.statusTestFail":"\u63A5\u7D9A\u5931\u6557\uFF1A{msg}","webdav.statusBusy":"\u8EE2\u9001\u4E2D\u3067\u3059\u3002\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u2026","webdav.statusProgress":"{phase} {done}/{total}","webdav.statusBackupDone":"\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u5B8C\u4E86 \xB7 {n} \u30D5\u30A1\u30A4\u30EB","webdav.statusBackupDoneInc":"\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u5B8C\u4E86 \xB7 {u} \u4EF6\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 \xB7 {s} \u4EF6\u30B9\u30AD\u30C3\u30D7\uFF08\u5909\u66F4\u306A\u3057\uFF09","webdav.statusRestoreDone":"\u5FA9\u5143\u5B8C\u4E86 \xB7 {n} \u30D5\u30A1\u30A4\u30EB","webdav.catWrap":"\uFF08{parts}\uFF09","webdav.catSessions":"\u30BB\u30C3\u30B7\u30E7\u30F3 {n}","webdav.catAttachments":"\u6DFB\u4ED8 {n}","webdav.catPlans":"\u30D7\u30E9\u30F3 {n}","webdav.catProviders":"provider \u8A2D\u5B9A {n}","webdav.catMcp":"MCP \u8A2D\u5B9A {n}","webdav.statusRestorePartial":"\u30EA\u30E2\u30FC\u30C8\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u304C\u4E0D\u5B8C\u5168\u3067\u3059\uFF08\u524D\u56DE\u306E\u8EE2\u9001\u304C\u672A\u5B8C\u4E86\uFF09\u3001{n} \u4EF6\u30B9\u30AD\u30C3\u30D7","webdav.statusRestoreBlocked":"\u30ED\u30FC\u30AB\u30EB\u304C\u65B0\u3057\u3044 {n} \u4EF6\u306F\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u300C\u30ED\u30FC\u30AB\u30EB\u306E\u65B0\u3057\u3044\u30D5\u30A1\u30A4\u30EB\u3082\u4E0A\u66F8\u304D\u300D\u3092\u30AA\u30F3\u306B\u3057\u3066\u518D\u5B9F\u884C\uFF09","webdav.statusProviderMerged":"provider \u3092 {p} \u4EF6\u8FFD\u52A0 \xB7 \u30E2\u30C7\u30EB {m} \u4EF6","webdav.statusProviderNoNew":"provider \u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\uFF08\u8FFD\u52A0\u306A\u3057\uFF09","webdav.mergeSep":"\u3001","webdav.statusListNone":"\u30EA\u30E2\u30FC\u30C8\u306B Luban \u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093","webdav.statusListInfo":"\u30EA\u30E2\u30FC\u30C8\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7 \xB7 {at} \xB7 {machine} \xB7 {n} \u30D5\u30A1\u30A4\u30EB","webdav.statusListPartial":"\uFF08\u524D\u56DE\u306E\u8EE2\u9001\u304C\u672A\u5B8C\u4E86\u3001{n} \u4EF6\u6B20\u843D\uFF09","webdav.statusNoUrl":"\u5148\u306B\u30B5\u30FC\u30D0\u30FC URL \u3092\u5165\u529B\u3057\u3066\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044","webdav.confirmOverwrite":"\u30EA\u30E2\u30FC\u30C8\u306B\u306F {machine} \u306E {at} \u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\uFF08{n} \u30D5\u30A1\u30A4\u30EB\uFF09\u304C\u3042\u308A\u307E\u3059\u3002\u7D9A\u884C\u3059\u308B\u3068\u3053\u306E\u30DE\u30B7\u30F3\u306E\u5185\u5BB9\u3067\u4E0A\u66F8\u304D\u3057\u307E\u3059\u3002\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F","webdav.confirmOverwriteYes":"\u4E0A\u66F8\u304D\u3059\u308B","webdav.statusCancelled":"\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u30EA\u30E2\u30FC\u30C8\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u306F\u5909\u66F4\u3057\u3066\u3044\u307E\u305B\u3093\uFF09","webdav.phase.test":"\u63A5\u7D9A","webdav.phase.scan":"\u30B9\u30AD\u30E3\u30F3","webdav.phase.upload":"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9","webdav.phase.manifest":"\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8","webdav.phase.snapshot":"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8","webdav.phase.download":"\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9","webdav.phase.restore":"\u5FA9\u5143","webdav.phase.done":"\u5B8C\u4E86","webdav.phase.confirm":"\u78BA\u8A8D\u5F85\u3061","webdav.phase.warn":"\u6CE8\u610F","webdav.restoredNotice":"{n} \u30D5\u30A1\u30A4\u30EB\u3092\u5FA9\u5143\u3057\u307E\u3057\u305F{cat}\u3002\u5FA9\u5143\u524D\u306E\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u306F {dir} \u306B\u3042\u308A\u307E\u3059\u3002\u958B\u3044\u3066\u3044\u308B\u30BF\u30D6\u306F\u53E4\u3044\u5185\u5BB9\u306E\u53EF\u80FD\u6027\u304C\u3042\u308B\u305F\u3081\u3001\u958B\u304D\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002","webdav.noSnapshot":"\uFF08\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u306F\u4E0A\u66F8\u304D\u3057\u3066\u3044\u307E\u305B\u3093\uFF09","webdav.errUrl":"\u30B5\u30FC\u30D0\u30FC URL \u306F http(s):// \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","webdav.errNeedUrl":"WebDAV \u30B5\u30FC\u30D0\u30FC URL \u304C\u672A\u8A2D\u5B9A\u3067\u3059","webdav.errDisabled":"WebDAV \u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u304C\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u305B\u3093\u3002\u5148\u306B\u300C\u30AF\u30E9\u30A6\u30C9\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3092\u6709\u52B9\u5316\u300D\u3092\u30AA\u30F3\u306B\u3057\u3066\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044","webdav.errRemoteDir":"\u30EA\u30E2\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0\u30FC\u306F [A-Za-z0-9._-] \u306E\u30BB\u30B0\u30E1\u30F3\u30C8\u306E\u307F\u3001\u300C..\u300D\u306F\u4F7F\u3048\u307E\u305B\u3093","webdav.errBadMachine":"\u30DE\u30B7\u30F3\u306E\u30D5\u30A9\u30EB\u30C0\u30FC\u540D\u304C\u4E0D\u6B63\u3067\u3059\uFF08[A-Za-z0-9._-] \u306E\u307F\u53EF\u3001\u300C..\u300D\u3084\u30B9\u30E9\u30C3\u30B7\u30E5\u306F\u4E0D\u53EF\uFF09","webdav.errInclude":"\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u7BC4\u56F2\u306E\u30B9\u30A4\u30C3\u30C1\u306F\u771F\u507D\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","webdav.errAuth":"\u8A8D\u8A3C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08401\uFF09\uFF1A\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u9055\u3044\u307E\u3059","webdav.errRemotePath":"\u30EA\u30E2\u30FC\u30C8\u30D1\u30B9\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\uFF08404\uFF09\uFF1AURL \u3068\u30EA\u30E2\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044","webdav.errHttp":"\u30B5\u30FC\u30D0\u30FC\u304C\u30A8\u30E9\u30FC\u72B6\u614B\u3092\u8FD4\u3057\u307E\u3057\u305F","webdav.errNetwork":"\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u8981\u6C42\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A\u30B5\u30FC\u30D0\u30FC\u306B\u5230\u9054\u3067\u304D\u306A\u3044\u304B\u8A3C\u660E\u66F8\u306E\u554F\u984C\u3067\u3059","webdav.errPartial":"\u4E00\u90E8\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u8EE2\u9001\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08{n} \u4EF6\uFF09","webdav.errTimeout":"\u8981\u6C42\u304C\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F\uFF0860 \u79D2\uFF09","webdav.errBusy":"\u524D\u56DE\u306E\u8EE2\u9001\u304C\u307E\u3060\u5B9F\u884C\u4E2D\u3067\u3059\u3002\u7D42\u308F\u308B\u307E\u3067\u304A\u5F85\u3061\u304F\u3060\u3055\u3044","webdav.errNoBackup":"\u30EA\u30E2\u30FC\u30C8\u306B Luban \u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u304C\u3042\u308A\u307E\u305B\u3093\uFF08manifest.json \u306A\u3057\uFF09","webdav.errBadManifest":"\u30EA\u30E2\u30FC\u30C8\u306E manifest.json \u304C\u58CA\u308C\u3066\u3044\u3066\u89E3\u6790\u3067\u304D\u307E\u305B\u3093","webdav.errRemoteNewer":"\u30EA\u30E2\u30FC\u30C8\u306B\u65B0\u3057\u3044\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u304C\u3042\u308A\u307E\u3059\uFF08\u5225\u30DE\u30B7\u30F3\u306E\u53EF\u80FD\u6027\uFF09\u3002\u4E0A\u66F8\u304D\u306B\u306F\u78BA\u8A8D\u304C\u5FC5\u8981\u3067\u3059","mascot.state.offline":"\u30AA\u30D5\u30E9\u30A4\u30F3","mascot.state.idle":"\u5F85\u6A5F\u4E2D","mascot.state.thinking":"\u8003\u3048\u4E2D","mascot.state.typing":"\u51FA\u529B\u4E2D","mascot.state.tool":"\u30C4\u30FC\u30EB\u5B9F\u884C","mascot.state.waiting":"\u78BA\u8A8D\u5F85\u3061","mascot.state.done":"\u5B8C\u4E86","mascot.state.error":"\u30A8\u30E9\u30FC"}},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 r(){let d=typeof navigator<"u"&&navigator&&navigator.language||"";return/^zh/i.test(d)?"zh-cn":/^ja/i.test(d)?"ja":"en"}function o(d){return n=s(d)||r(),n}function i(){return n}function a(d,f,p){let h=s(d)||n,y=(e[h]||e["zh-cn"])[f];return y==null&&(y=e["zh-cn"][f]),y==null?f:(p&&(y=String(y).replace(/\{(\w+)\}/g,function(w,T){return p[T]==null?w:String(p[T])})),y)}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:o,getLang:i,has:c,normalize:s,langs:["zh-cn","en","ja"]};typeof pa<"u"&&pa&&pa.exports&&(pa.exports=u),t&&(t.LubanI18n=u)})(typeof globalThis<"u"?globalThis:Zx)});var rv=ne((X2,sv)=>{"use strict";var zr=require("path"),Vp=/!\[([^\]]*)\]\(([^()\s]*(?:\([^()\s]*\)[^()\s]*)*)\)/g;function fI(t){let e=[],n=new Set,s=String(t??""),r;for(Vp.lastIndex=0;(r=Vp.exec(s))!==null;){let o=String(r[2]||"").trim();o&&(n.has(o)||(n.add(o),e.push(o)))}return e}function ev(t,e){if(!t||!e)return!1;let n=zr.resolve(t),s=zr.resolve(e);if(n===s)return!0;let r=zr.relative(s,n);return!!r&&!r.startsWith("..")&&!zr.isAbsolute(r)}function tv(t){let e=String(t||"");return!e||e.startsWith("//")||e.startsWith("data:")||e.startsWith("#")?!0:/^[a-z][a-z0-9+.-]*:/i.test(e)}function nv(t,e,n){let s=String(t??"").trim();if(!s)return{kind:"invalid",url:s};if(tv(s)){if(!/^file:/i.test(s))return{kind:"remote",url:s};let i=s.replace(/^file:\/\//i,"");return nv(i,e,n)}let r=zr.isAbsolute(s)?zr.resolve(s):zr.resolve(String(e||""),s),o=Array.isArray(n)?n:[];for(let i of o)if(ev(r,i))return{kind:"workspace",abs:r,url:s};return{kind:"inline",abs:r,url:s}}sv.exports={extractImageUrls:fI,classifyImage:nv,insideRoot:ev,isRemoteLike:tv,IMG_RE:Vp}});var ov=ne((Y2,pI)=>{pI.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.100.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:"git+https://github.com/eppen/luban.git"},engines:{vscode:"^1.104.0"},categories:["AI","Chat","Programming Languages"],activationEvents:["onStartupFinished","onView:luban.chatView","onCommand:luban.focusView","onCommand:luban.browserPreview","onCommand:luban.markdownPreview"],main:"./dist/extension.js",bin:{luban:"dist/cli.js","luban-code":"dist/cli.js","luban-acp":"dist/acp.js"},files:["dist/cli.js","dist/acp.js","dist/cli-plugin.js","dist/extension.js","registry/","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:review-autokeep":"node scripts/build.js && node scripts/test-review-autokeep.js","test:skills":"node scripts/test-skills.js","test:rules":"node scripts/test-rules.js","test:plugins":"node scripts/test-plugins.js","test:plugins-ext":"node scripts/test-plugins-ext.js","test:registry":"node scripts/test-registry-client.js","test:registry-skill":"node scripts/test-registry-skill.js","test:install":"node scripts/test-install-scripts.js",cli:"node cli.js","test:acp":"node scripts/test-acp.js","test:acp-pkg":"node scripts/test-acp-pkg.js","test:cli-resume":"node scripts/test-cli-resume.js",vsix:"node scripts/vsix.js","test:general":"node scripts/test-general-settings.js","test:provider-models":"node scripts/test-provider-models.js","test:hub":"node scripts/test-hub-tabs.js","test:hub-market":"node scripts/test-hub-market.js","test:market-ext":"node scripts/test-market-ext.js","test:sync-registry":"node scripts/test-sync-registry.js","test:i18n":"node scripts/test-i18n.js","test:css":"node scripts/test-css-vars.js","test:webdav":"node scripts/test-webdav.js","test:webdav-override":"node scripts/test-webdav-override.js","test:browser-events":"node scripts/test-browser-events.js","test:browser-tool":"node scripts/test-browser-tool.js","test:browser-launch":"node scripts/test-browser-launch.js","test:computer-linux":"node scripts/test-computer-linux.js","test:computer-linux-live":"node scripts/live-computer-linux.js","test:computer-tool":"node scripts/test-computer-tool.js","test:subagent":"node scripts/test-subagent-guards.js","test:lm-provider":"node scripts/test-lm-provider.js","test:agent-budget":"node scripts/test-agent-budget.js","test:gamepad":"node scripts/test-gamepad.js","test:status":"node scripts/test-status.js","test:avatar":"node scripts/test-avatar.js","test:cli-md":"node scripts/test-cli-md.js","test:mdpreview":"node scripts/test-mdpreview.js","test:mdpreview-live":"node scripts/live-mdpreview.js","test:cli-confirm":"node scripts/test-cli-confirm.js","test:cli-input":"node scripts/test-cli-input.js","test:token-audit":"node scripts/test-token-audit.js","test:think":"node scripts/test-think.js","test:webfetch-md":"node scripts/test-webfetch-md.js","test:tabs":"node scripts/test-workspace-tab-filter.js","test:status-live":"node scripts/live-status.js","test:review-freeze":"node scripts/live-review-freeze.js","test:review-focus":"node scripts/live-review-focus.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.plugins",title:"%cmdPlugins%",category:"Luban"},{command:"luban.market",title:"%cmdMarket%",category:"Luban"},{command:"luban.rules.open",title:"%cmdOpenRules%",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.findInSession",title:"%cmdFindInSession%",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.addFileToNewChat",title:"%cmdAddFileToNewChat%",category:"Luban"},{command:"luban.addFolderToNewChat",title:"%cmdAddFolderToNewChat%",category:"Luban"},{command:"luban.addSelectionToChat",title:"%cmdAddSelectionToChat%",category:"Luban"},{command:"luban.addSelectionToNewChat",title:"%cmdAddSelectionToNewChat%",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"},{command:"luban.browserPreview",title:"%cmdBrowserPreview%",category:"Luban"},{command:"luban.markdownPreview",title:"%cmdMarkdownPreview%",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"},{command:"luban.markdownPreview",when:"resourceLangId == markdown",group:"navigation@3",icon:"$(preview)"}],"explorer/context":[{command:"luban.addFileToChat",when:"!explorerResourceIsFolder && resourceScheme == file",group:"1_luban@1"},{command:"luban.addFolderToChat",when:"explorerResourceIsFolder && resourceScheme == file",group:"1_luban@2"},{command:"luban.addFileToNewChat",when:"!explorerResourceIsFolder && resourceScheme == file",group:"1_luban@3"},{command:"luban.addFolderToNewChat",when:"explorerResourceIsFolder && resourceScheme == file",group:"1_luban@4"}],"editor/context":[{command:"luban.addSelectionToChat",when:"editorHasSelection && resourceScheme == file",group:"1_luban@0"},{command:"luban.addSelectionToNewChat",when:"editorHasSelection && resourceScheme == file",group:"1_luban@1"}],"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.addFileToNewChat",when:"false"},{command:"luban.addFolderToNewChat",when:"false"},{command:"luban.addSelectionToChat",when:"editorHasSelection"},{command:"luban.addSelectionToNewChat",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.findInSession",key:"cmd+f",mac:"cmd+f",win:"ctrl+f",linux:"ctrl+f",when:"focusedView == 'luban.chatView'"},{command:"luban.findInSession",key:"cmd+f",mac:"cmd+f",win:"ctrl+f",linux:"ctrl+f",when:"activeWebviewPanelId == 'luban'"},{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",icon:"media/icon.svg"}]},languageModelChatProviders:[{vendor:"luban",displayName:"Luban",icon:"media/icon.png",managementCommand:"luban.providerSettings"}],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:200,minimum:0,description:"%cfgAgentMaxRounds%"},"luban.agent.maxMinutes":{type:"number",default:30,minimum:1,description:"%cfgAgentMaxMinutes%"},"luban.agent.noWriteNudges":{type:"number",default:2,minimum:0,description:"%cfgAgentNoWriteNudges%"},"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.net.tlsMaxVersion":{type:"string",enum:["auto","1.2"],enumDescriptions:["%cfgNetTlsMaxVersionAuto%","%cfgNetTlsMaxVersion12%"],default:"auto",description:"%cfgNetTlsMaxVersion%"},"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.browser.confirm":{type:"boolean",default:!0,description:"%cfgBrowserConfirm%"},"luban.browser.preview":{type:"boolean",default:!1,description:"%cfgBrowserPreview%"},"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.plugins.enabled":{type:"boolean",default:!1,description:"%cfgPluginsEnabled%"},"luban.plugins.maxTools":{type:"number",default:30,minimum:1,maximum:200,description:"%cfgPluginsMaxTools%"},"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.review.autoKeep":{type:"boolean",default:!1,description:"%cfgReviewAutoKeep%"},"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%"},"luban.statusBar.enabled":{type:"boolean",default:!0,description:"%cfgStatusBarEnabled%"},"luban.rules.enabled":{type:"boolean",default:!0,description:"%cfgRulesEnabled%"},"luban.rules.maxChars":{type:"number",default:12e3,minimum:1e3,description:"%cfgRulesMaxChars%"},"luban.rules.indexMaxChars":{type:"number",default:2e3,minimum:200,description:"%cfgRulesIndexMaxChars%"}}}},devDependencies:{esbuild:"^0.25.0"},dependencies:{"@clack/prompts":"^1.8.1",picocolors:"^1.1.1"}}});var v=require("vscode"),N=require("fs"),D=require("path"),it=require("os"),eh=require("tls"),{exec:hI,execSync:Yv}=require("child_process"),yn=yu(),Yn=_m(),mI=Mm(),Yr=Nm(),gI=Dm(),Te=Iu(),gn=Qm(),xn=sg(),iv=ag(),nt=bg(),$t=sd(),Xt=uy(),Ms=my(),ct=vy(),Zv=Ty(),lr=Ly(),Ac=By(),cr=ew(),Rt=ad(),$n=aw(),Os=uw(),Ke=mw(),ve=kw(),wt=Lw(),Ze=_o(),Cs=Nb(),Qv=wi(),av=Vd(),vn=Jb(),yI=tk(),eS=fk(),Sn=up(),as=Uk(),Ga=process.platform==="linux",wI=process.platform==="darwin",ue=Ga?cx():process.platform==="win32"?Cx():$x(),ls=process.platform==="win32",tS=ls?"Windows":wI?"macOS":Ga?"Linux":"\u4EC5\u652F\u6301 macOS / Windows / Linux",bI=ls?" \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":Ga?" X11 \u4F1A\u8BDD\u6700\u5B8C\u6574\uFF1BWayland \u4E0B xdotool \u53EA\u80FD\u64CD\u4F5C XWayland \u5E94\u7528\uFF0C\u539F\u751F Wayland \u7A97\u53E3\u7684\u70B9\u51FB / \u62D6\u52A8\u4E0D\u53EF\u7528\u3002\u65E0\u5934\u73AF\u5883\u8981\u5148\u8D77 Xvfb\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",Ca=ls?"\u5C4F\u5E55\u7269\u7406\u50CF\u7D20":Ga?"\u5C4F\u5E55\u50CF\u7D20":"\u5C4F\u5E55\u903B\u8F91\u70B9";function kI(){return ls?{a:65,p:80,bang:49}:Ga?{a:97,p:112,bang:49}:{a:0,p:35,bang:18}}var Qt=Ux(),hr=Yx(),vs=Zd(),nS=Qx(),lv=rv(),cv=ov(),xI=kr().SKIP_DIRS,fr=cv&&cv.version||"0.0.0",Oc=process.env.LUBAN_OUT_DIR||"/tmp/luban-ide",vI=Oc+"/result.json",ft=D.join(it.homedir(),".luban","providers.json"),ba={startedAt:new Date().toISOString(),steps:[],acks:[]},SI=400,uv=2e3,Wo=null;function sS(){try{N.mkdirSync(Oc,{recursive:!0}),N.writeFileSync(vI,JSON.stringify(ba,null,2))}catch{}}function Sh(){Wo&&(clearTimeout(Wo),Wo=null),sS()}function S(t,e){ba.steps.push({step:t,at:new Date().toISOString(),...e}),ba.steps.length>uv&&ba.steps.splice(0,ba.steps.length-uv),Wo||(Wo=setTimeout(function(){Wo=null,sS()},SI))}var en="",rS=[];function oS(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 za(){let t="auto";try{t=v.workspace.getConfiguration("luban").get("language")}catch{}return oS(t,v.env&&v.env.language)}function O(t,e){return nS.t(t,e)}function Ec(t){en=nS.setLang(za()),Yn.setUntitled(O("store.untitled")),MI();try{wn&&wn.fire()}catch{}try{Bh()}catch{}return S("language_applied",{lang:en,reason:t||""}),en}function _I(t){for(let e of rS.splice(0))try{e(t)}catch{}}function TI(t){return new Promise(function(e){let n=!1,s=setTimeout(function(){n||(n=!0,e(null))},t||8e3);rS.push(function(r){n||(n=!0,clearTimeout(s),e(r))})})}function MI(){let t=[Me&&Me.webview,ye&&ye.webview,_t&&_t.webview];for(let e of t)if(e)try{e.postMessage({type:"lang",lang:en})}catch(n){S("broadcast_lang_failed",{message:n.message})}}var iS={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}]}]},Bt=iS,Jo="builtin",us=Object.create(null),St=null,Ko=[],aS=40,th=Object.create(null),dv=new Map;function CI(t){for(let e of t.providers||[])!e||!Array.isArray(e.models)||(e.models=e.models.map(function(n){return typeof n=="string"?{id:n,name:n}:(n&&typeof n=="object"&&!n.id&&n.name&&(n.id=String(n.name)),n)}).filter(function(n){return n&&typeof n=="object"&&n.id}));return t}function nu(){try{let t=JSON.parse(N.readFileSync(ft,"utf8"));if(t&&Array.isArray(t.providers)&&t.providers.length){Bt=CI(t),Jo=ft,S("config_loaded",{source:ft,providers:t.providers.map(e=>e.id),models:Zn().length});return}}catch(t){S("config_load_failed",{message:t.message,path:ft})}Bt=iS,Jo="builtin"}function AI(){let t=[];for(let e of Bt.providers||[])for(let n of e.models||[])t.push({provider:e,model:n});return t}function Zn(){let t=AI(),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 pt(t){let e=Zn(),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===Bt.defaultModel)||e.find(s=>s.provider.id+"::"+s.model.id===Bt.defaultModel)||e[0]}function ni(){let t=pt(Bt.defaultModel);return t?t.key:""}function OI(t){try{let e=N.readFileSync(D.join(it.homedir(),".hermes",".env"),"utf8");for(let n of e.split(`
990
+ \u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3042\u306A\u305F\u306E\u6A29\u9650\u3067\u672C\u6A5F\u4E0A\u3067\u52D5\u4F5C\u3057\u307E\u3059\u3002\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u5F8C\u3082\u3001\u300C\u30D7\u30E9\u30B0\u30A4\u30F3\u300D\u30BB\u30AF\u30B7\u30E7\u30F3\u3067\u4FE1\u983C\u3059\u308B\u307E\u3067\u6709\u52B9\u306B\u306A\u308A\u307E\u305B\u3093\u3002`,"ext.marketInstallYes":"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB","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.thinkInline":"{pos}: \u30E2\u30C7\u30EB\u300C{id}\u300D\u306E thinking.inline \u306F true / false \u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\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.navBackup":"\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7","hub.navUsage":"\u4F7F\u7528\u91CF","hub.navPlugins":"\u30D7\u30E9\u30B0\u30A4\u30F3","hub.navMarket":"\u30DE\u30FC\u30B1\u30C3\u30C8","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.navBackupTitle":"\u30AF\u30E9\u30A6\u30C9\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\uFF08WebDAV\uFF1A\u30BB\u30C3\u30B7\u30E7\u30F3 / \u6DFB\u4ED8 / \u30D7\u30E9\u30F3 / \u8A2D\u5B9A\uFF09","hub.navUsageTitle":"Token \u4F7F\u7528\u91CF\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\uFF08\u30E2\u30C7\u30EB / \u65E5 / \u30E2\u30FC\u30C9\u5225\uFF09","hub.navPluginsTitle":"\u30ED\u30FC\u30AB\u30EB\u30D7\u30E9\u30B0\u30A4\u30F3\uFF08\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB / \u30A2\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB / \u30B4\u30DF\u7BB1\uFF09","market.title":"\u30D7\u30E9\u30B0\u30A4\u30F3\u30DE\u30FC\u30B1\u30C3\u30C8","market.statusReady":"\u6E96\u5099\u5B8C\u4E86","market.refreshing":"\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u66F4\u65B0\u4E2D\u2026","market.refresh":"\u66F4\u65B0","market.refreshTitle":"\u30EA\u30E2\u30FC\u30C8\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u518D\u53D6\u5F97\u3057\u307E\u3059\uFF08\u53D6\u5F97\u3067\u304D\u306A\u3044\u5834\u5408\u306F\u540C\u68B1\u30DF\u30E9\u30FC\u3092\u4F7F\u7528\uFF09","market.source":"\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306E\u53D6\u5F97\u5143\uFF1A{source}","market.sourceTitle":"\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306E\u53D6\u5F97\u5143\u3067\u3059\u3002\u30EA\u30E2\u30FC\u30C8\u306F\u516C\u958B\u30D7\u30E9\u30B0\u30A4\u30F3\u30EA\u30DD\u30B8\u30C8\u30EA\u3001\u540C\u68B1\u7248\u306F\u62E1\u5F35\u6A5F\u80FD\u3068\u3068\u3082\u306B\u914D\u5E03\u3055\u308C\u308B\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u306E\u30DF\u30E9\u30FC\u3067\u3059\u3002","market.offlineNote":"\u30EA\u30E2\u30FC\u30C8\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u53D6\u5F97\u3067\u304D\u306A\u3044\u305F\u3081\u3001\u62E1\u5F35\u6A5F\u80FD\u306B\u540C\u68B1\u3055\u308C\u305F\u30DF\u30E9\u30FC\u3092\u8868\u793A\u3057\u3066\u3044\u307E\u3059\uFF08\u516C\u958B\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3068\u306F\u30D0\u30A4\u30C8\u5358\u4F4D\u3067\u4E00\u81F4\u3057\u307E\u3059\u304C\u3001\u6700\u65B0\u3067\u306F\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\uFF09\u3002","market.empty":"\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093\u3002","market.emptyHint":"\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306F\u516C\u958B\u30D7\u30E9\u30B0\u30A4\u30F3\u30EA\u30DD\u30B8\u30C8\u30EA\u304B\u3089\u53D6\u5F97\u3057\u307E\u3059\u3002\u53D6\u5F97\u3067\u304D\u306A\u3044\u5834\u5408\u306F\u540C\u68B1\u30DF\u30E9\u30FC\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002","market.count":"{n} \u4EF6\u306E\u9805\u76EE","market.install":"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB","market.update":"\u66F4\u65B0","market.installed":"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F","market.updateAvailable":"\u66F4\u65B0\u3042\u308A","market.installing":"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u4E2D\u2026","market.cancelled":"\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u4F55\u3082\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF09","market.failed":"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{msg}","market.installedOk":"\u300C{name}\u300D\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3057\u305F\u3002\u300C\u30D7\u30E9\u30B0\u30A4\u30F3\u300D\u30BB\u30AF\u30B7\u30E7\u30F3\u3067\u4FE1\u983C\u3057\u3066\u6709\u52B9\u306B\u3057\u3066\u304F\u3060\u3055\u3044","market.replacedOk":"\u300C{name}\u300D\u3092\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u66F4\u65B0\u3057\u307E\u3057\u305F","market.replaceConfirm":"\u300C{name}\u300D\u306F\u3059\u3067\u306B\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F\u3067\u3059\u3002\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u3067\u7F6E\u304D\u63DB\u3048\u307E\u3059\u304B\uFF1F\u53E4\u3044\u65B9\u306F\u30B4\u30DF\u7BB1\u3078\u79FB\u52D5\u3057\u307E\u3059\u3002","market.typePlugin":"\u30D7\u30E9\u30B0\u30A4\u30F3","market.typeSkill":"\u30B9\u30AD\u30EB","market.reviewReviewed":"\u30EC\u30D3\u30E5\u30FC\u6E08\u307F","market.reviewPending":"\u30EC\u30D3\u30E5\u30FC\u5F85\u3061","market.reviewFlagged":"\u554F\u984C\u3042\u308A","market.reviewRevoked":"\u53D6\u308A\u4E0B\u3052\u6E08\u307F","market.signed":"\u7F72\u540D\u6E08\u307F","market.unsigned":"\u672A\u7F72\u540D","market.permNone":"\u8FFD\u52A0\u306E\u6A29\u9650\u5BA3\u8A00\u306A\u3057","market.noTools":"\u306A\u3057","market.permFsRead":"\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u53D6\u308B","market.permFsWrite":"\u30D5\u30A1\u30A4\u30EB\u3092\u66F8\u304D\u8FBC\u3080 / \u524A\u9664\u3059\u308B","market.permShell":"shell \u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C\u3059\u308B","market.permNet":"\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u884C\u3046","market.permEnv":"\u74B0\u5883\u5909\u6570\u3092\u8AAD\u307F\u53D6\u308B","market.permsLabel":"\u5BA3\u8A00\u3055\u308C\u305F\u6A29\u9650","market.repoLabel":"\u30BD\u30FC\u30B9","market.foot":"\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3042\u306A\u305F\u306E\u6A29\u9650\u3067\u672C\u6A5F\u4E0A\u3067\u52D5\u4F5C\u3057\u307E\u3059\u3002\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u5F8C\u3082\u3001\u300C\u30D7\u30E9\u30B0\u30A4\u30F3\u300D\u30BB\u30AF\u30B7\u30E7\u30F3\u3067\u4FE1\u983C\u3059\u308B\u307E\u3067\u6709\u52B9\u306B\u306A\u308A\u307E\u305B\u3093","plugins.title":"\u30ED\u30FC\u30AB\u30EB\u30D7\u30E9\u30B0\u30A4\u30F3","plugins.globalDirTitle":"\u30B0\u30ED\u30FC\u30D0\u30EB\u30D7\u30E9\u30B0\u30A4\u30F3\u30D5\u30A9\u30EB\u30C0\uFF08~/.luban/plugins\uFF09","plugins.dirsTitle":"\u30B9\u30AD\u30E3\u30F3\u5BFE\u8C61\uFF08\u4E0A\uFF1A\u30B0\u30ED\u30FC\u30D0\u30EB\u3001\u4E0B\uFF1A\u73FE\u5728\u306E\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\uFF09","plugins.statusReady":"\u6E96\u5099\u5B8C\u4E86","plugins.rescan":"\u518D\u30B9\u30AD\u30E3\u30F3","plugins.rescanTitle":"\u30D7\u30E9\u30B0\u30A4\u30F3\u30D5\u30A9\u30EB\u30C0\u3092\u518D\u30B9\u30AD\u30E3\u30F3\u3057\u3001\u30E2\u30B8\u30E5\u30FC\u30EB\u30AD\u30E3\u30C3\u30B7\u30E5\u3092\u7834\u68C4\u3057\u307E\u3059\uFF08\u30D7\u30E9\u30B0\u30A4\u30F3\u306E\u30B3\u30FC\u30C9\u3092\u76F4\u3057\u305F\u5F8C\u306B\uFF09","plugins.rescanning":"\u518D\u30B9\u30AD\u30E3\u30F3\u4E2D\u2026","plugins.install":"\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u8FFD\u52A0\u2026","plugins.installTitle":"plugin.json \u3092\u542B\u3080\u30D5\u30A9\u30EB\u30C0\u3092\u9078\u3073\u3001\u30B0\u30ED\u30FC\u30D0\u30EB\u30D7\u30E9\u30B0\u30A4\u30F3\u30D5\u30A9\u30EB\u30C0\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3059","plugins.installing":"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u4E2D\u2026","plugins.working":"\u51E6\u7406\u4E2D\u2026","plugins.cancelled":"\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F","plugins.failed":"\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A{msg}","plugins.countHint":"\u6709\u52B9 {plugins} \u4EF6 \xB7 \u672A\u627F\u8A8D {pending} \u4EF6","plugins.emptyA":"\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093\u3002","plugins.emptyB":"\u53F3\u4E0A\u306E\u300C\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u8FFD\u52A0\u2026\u300D\u304B\u3089 <code>plugin.json</code> \u3092\u542B\u3080\u30D5\u30A9\u30EB\u30C0\u3092\u9078\u3093\u3067\u304F\u3060\u3055\u3044\u3002\u8FFD\u52A0\u3059\u308B\u3068 <code>pl__&lt;\u30D7\u30E9\u30B0\u30A4\u30F3&gt;__&lt;\u30C4\u30FC\u30EB&gt;</code> \u3068\u3044\u3046\u540D\u524D\u3067 Agent \u306E\u30C4\u30FC\u30EB\u4E00\u89A7\u306B\u73FE\u308C\u307E\u3059\u3002","plugins.installed":"\u6709\u52B9","plugins.installedOk":"\u300C{name}\u300D\u3092\u8FFD\u52A0\u3057\u3001\u4FE1\u983C\u6E08\u307F\u306B\u3057\u307E\u3057\u305F","plugins.uninstalledOk":"\u300C{name}\u300D\u3092\u30B4\u30DF\u7BB1\u3078\u79FB\u52D5\u3057\u307E\u3057\u305F","plugins.restoredOk":"\u300C{name}\u300D\u3092\u5143\u306B\u623B\u3057\u307E\u3057\u305F","plugins.trustedOk":"\u300C{name}\u300D\u3092\u4FE1\u983C\u3057\u307E\u3057\u305F","plugins.pendingTitle":"\u7121\u52B9\uFF08\u672A\u627F\u8A8D\uFF09","plugins.pendingHint":"\u3053\u306E\u884C\u306E\u300C\u4FE1\u983C\u300D\u3092\u62BC\u3059\u307E\u3067\u8AAD\u307F\u8FBC\u307E\u308C\u307E\u305B\u3093","plugins.trashTitle":"\u30B4\u30DF\u7BB1","plugins.trashCount":"{n} \u4EF6","plugins.trashNote":"\u30A2\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306F\u30D5\u30A9\u30EB\u30C0\u3092\u3053\u3053\u3078\u79FB\u3059\u3060\u3051\u3067\u3059\u3002\u300C\u5143\u306B\u623B\u3059\u300D\u3067\u5143\u306E\u5834\u6240\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3001\u305D\u308C\u4EE5\u5916\u306F\u30B0\u30ED\u30FC\u30D0\u30EB\uFF09\u306B\u623B\u308A\u307E\u3059\u3002","plugins.removedAt":"\u79FB\u52D5\u65E5\u6642\uFF1A{at}","plugins.openTrash":"\u30B4\u30DF\u7BB1\u3092\u958B\u304F","plugins.openTrashTitle":"OS \u306E\u30D5\u30A1\u30A4\u30EB\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC\u3067\u30B4\u30DF\u7BB1\u30D5\u30A9\u30EB\u30C0\u3092\u958B\u304F","plugins.openGlobal":"\u30D7\u30E9\u30B0\u30A4\u30F3\u30D5\u30A9\u30EB\u30C0\u3092\u958B\u304F","plugins.openGlobalTitle":"OS \u306E\u30D5\u30A1\u30A4\u30EB\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC\u3067\u30B0\u30ED\u30FC\u30D0\u30EB\u30D7\u30E9\u30B0\u30A4\u30F3\u30D5\u30A9\u30EB\u30C0\u3092\u958B\u304F","plugins.offTitle":"\u30D7\u30E9\u30B0\u30A4\u30F3\u6A5F\u80FD\u306F\u30AA\u30D5\u3067\u3059","plugins.offNote":"\u5207\u308A\u66FF\u3048\u306F\u300C\u4E00\u822C\u300D\u30BB\u30AF\u30B7\u30E7\u30F3\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u8A2D\u5B9A\uFF08luban.plugins.enabled\uFF09\u306B\u3042\u308A\u307E\u3059\u3002\u30AA\u30D5\u306E\u9593\u306F\u30D7\u30E9\u30B0\u30A4\u30F3\u304C\u8AAD\u307F\u8FBC\u307E\u308C\u305A\u3001\u3053\u3053\u306E\u30C4\u30FC\u30EB\u3082 Agent \u306B\u306F\u6E21\u308A\u307E\u305B\u3093\u3002","plugins.offGo":"\u4E00\u822C\u3092\u958B\u304F","plugins.foot":"\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3053\u306E\u30DE\u30B7\u30F3\u4E0A\u3067\u81EA\u5206\u306E\u6A29\u9650\u3067\u52D5\u4F5C\u3057\u307E\u3059\u3002\u4FE1\u983C\u3067\u304D\u308B\u914D\u5E03\u5143\u3060\u3051\u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044","plugins.scopeGlobal":"\u30B0\u30ED\u30FC\u30D0\u30EB","plugins.scopeProject":"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8","plugins.ro":"\u8AAD\u307F\u53D6\u308A\u5C02\u7528","plugins.rw":"\u66F8\u304D\u8FBC\u307F","plugins.roTip":"\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u306E\u5BA3\u8A00\uFF1APlan \u30E2\u30FC\u30C9\u3067\u3082\u8A31\u53EF\u3055\u308C\u307E\u3059","plugins.rwTip":"\u526F\u4F5C\u7528\u3042\u308A\uFF1APlan \u30E2\u30FC\u30C9\u3067\u306F\u30D6\u30ED\u30C3\u30AF\u3055\u308C\u307E\u3059","plugins.uninstall":"\u30A2\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB","plugins.restore":"\u5143\u306B\u623B\u3059","plugins.trust":"\u4FE1\u983C","plugins.replaceConfirm":"\u540C\u540D\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u300C{name}\u300D\u304C\u65E2\u306B\u3042\u308A\u307E\u3059\u3002\u53E4\u3044\u3082\u306E\u3092\u30B4\u30DF\u7BB1\u3078\u79FB\u3057\u3001\u4ECA\u56DE\u9078\u3093\u3060\u30D5\u30A9\u30EB\u30C0\u3067\u7F6E\u304D\u63DB\u3048\u307E\u3059\u304B\uFF1F","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.groupNetwork":"\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF","general.netTlsMaxVersion":"TLS \u306E\u6700\u9AD8\u30D0\u30FC\u30B8\u30E7\u30F3","general.netTlsMaxVersionTitle":"\u30E2\u30C7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u3067\u4F7F\u3046 TLS \u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u4E0A\u9650\u3002\u5909\u66F4\u306F\u4EE5\u964D\u306B\u65B0\u898F\u78BA\u7ACB\u3059\u308B\u63A5\u7D9A\u306B\u306E\u307F\u52B9\u304D\u307E\u3059","general.netTlsMaxVersionNote":"\u4E00\u90E8\u306E CDN \u30A8\u30C3\u30B8\u30CE\u30FC\u30C9\u306F TLS 1.3 \u306E\u30CF\u30F3\u30C9\u30B7\u30A7\u30A4\u30AF\u3092\u62D2\u5426\u3057\u3066\u5207\u65AD\u3057\u307E\u3059\uFF08\u75C7\u72B6\uFF1A\u6642\u3005\u300C\u63A5\u7D9A\u304C\u4E2D\u65AD\u3055\u308C\u307E\u3057\u305F\u300D\uFF09\u30021.2 \u306B\u3059\u308B\u3068\u56DE\u907F\u3067\u304D\u307E\u3059\u3002\u4EE5\u964D\u306B\u65B0\u898F\u78BA\u7ACB\u3059\u308B\u63A5\u7D9A\u306B\u306E\u307F\u5F71\u97FF\u3057\u307E\u3059\u3002","general.tlsAuto":"\u81EA\u52D5\uFF08TLS 1.3\uFF09","general.tls12":"TLS 1.2 \u306B\u5236\u9650","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.agentNoWriteNudges":"\u7A7A\u56DE\u3057\u50AC\u4FC3\u56DE\u6570\uFF080 = \u7121\u52B9\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.groupPlugins":"\u30ED\u30FC\u30AB\u30EB\u30D7\u30E9\u30B0\u30A4\u30F3","general.pluginsEnabled":"\u30ED\u30FC\u30AB\u30EB\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u6709\u52B9\u5316","general.pluginsMaxTools":"\u30C4\u30FC\u30EB\u6570\u306E\u4E0A\u9650\uFF081\u301C200\uFF09","general.pluginsNote":"~/.luban/plugins \u3068 <\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9>/.luban/plugins \u304B\u3089\u3001plugin.json \u3092\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u3068\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u8AAD\u307F\u8FBC\u307F\u307E\u3059\u3002\u30C4\u30FC\u30EB\u306F pl__ \u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u4ED8\u304D\u3067\u30E2\u30C7\u30EB\u306E\u4E00\u89A7\u306B\u73FE\u308C\u307E\u3059\u3002\u521D\u56DE\u8AAD\u307F\u8FBC\u307F\u6642\u3068\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5185\u5BB9\u304C\u5909\u5316\u3057\u305F\u3068\u304D\u306B\u78BA\u8A8D\u30C0\u30A4\u30A2\u30ED\u30B0\u304C\u51FA\u307E\u3059\u3002\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u62E1\u5F35\u6A5F\u80FD\u306E\u30D7\u30ED\u30BB\u30B9\u5185\u3067\u52D5\u304F\u305F\u3081\u30B5\u30F3\u30C9\u30DC\u30C3\u30AF\u30B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u4FE1\u983C\u3067\u304D\u308B\u30B3\u30FC\u30C9\u3060\u3051\u3092\u5165\u308C\u3066\u304F\u3060\u3055\u3044\u3002Plan \u30E2\u30FC\u30C9\u3067\u306F\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u3068\u7533\u544A\u3057\u305F\u30C4\u30FC\u30EB\u306E\u307F\u8A31\u53EF\u3055\u308C\u307E\u3059\u3002","general.reviewAutoOpenDiff":"\u66F8\u304D\u8FBC\u307F\u5F8C\u306B diff \u3092\u81EA\u52D5\u8868\u793A","general.reviewAutoKeep":"\u65E2\u5B9A\u3067\u81EA\u52D5\u4FDD\u6301\uFF08\u4FDD\u7559\u30EC\u30D3\u30E5\u30FC\u3092\u30B9\u30AD\u30C3\u30D7\uFF09","general.reviewAutoKeepNote":"\u300C\u81EA\u52D5\u4FDD\u6301\u300D\u306F\u30EC\u30D3\u30E5\u30FC\u57FA\u6E96\u3092\u305D\u306E\u307E\u307E\u5F15\u304D\u4E0A\u3052\u308B\u305F\u3081\u3001\u4FDD\u7559\u30EC\u30D3\u30E5\u30FC\u306B\u3082 diff \u306B\u3082\u6B8B\u3089\u305A\u3001\u623B\u3059\u624B\u6BB5\u306F git \u306E\u307F\u3002\u30AF\u30EA\u30FC\u30F3\u306A git \u30EF\u30FC\u30AF\u30C4\u30EA\u30FC\u3067\u306E\u307F\u6709\u52B9\uFF08\u672A\u30B3\u30DF\u30C3\u30C8\u306E\u5909\u66F4\u3084\u30EA\u30DD\u30B8\u30C8\u30EA\u3067\u306A\u3044\u5834\u5408\u306F\u30CF\u30F3\u30AF\u5358\u4F4D\u306E\u30EC\u30D3\u30E5\u30FC\u306B\u623B\u308B\uFF09\u3002Plan \u306E\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u30FB\u5371\u967A\u30B3\u30DE\u30F3\u30C9\u306E\u30D6\u30E9\u30C3\u30AF\u30EA\u30B9\u30C8\u30FBcomputer \u306E\u78BA\u8A8D\u306F\u5F71\u97FF\u3092\u53D7\u3051\u306A\u3044\u3002","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.reload":"\u8A2D\u5B9A\u3092\u518D\u8AAD\u307F\u8FBC\u307F","settings.reloadTitle":"providers.json \u3092\u8AAD\u307F\u76F4\u3057\u307E\u3059\uFF08\u30B9\u30AD\u30EB / \u30EB\u30FC\u30EB / MCP \u3092\u542B\u3080\uFF09\u3002\u672A\u4FDD\u5B58\u306E\u7DE8\u96C6\u306F\u7834\u68C4\u3055\u308C\u307E\u3059","settings.reloading":"\u518D\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026","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.thinkInline":"inline","settings.thinkInlineTitle":"inline: \u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u304C\u601D\u8003\u3092\u305D\u306E\u307E\u307E content \u306B\u66F8\u304D\u8FBC\u3080\u5834\u5408\uFF08\u672B\u5C3E\u306E </think> \u306E\u307F\u3001\u6253\u3061\u5207\u3089\u308C\u308B\u3068\u30BF\u30B0\u3082\u51FA\u306A\u3044\uFF09\u3002\u30AA\u30F3\u306B\u3059\u308B\u3068\u601D\u8003\u3092\u6709\u52B9\u306B\u3057\u305F\u3068\u304D content \u3092\u6700\u521D\u306E 1 \u6587\u5B57\u304B\u3089\u601D\u8003\u30D6\u30ED\u30C3\u30AF\u306B\u96C6\u3081\u3001\u56DE\u7B54\u306B\u6F0F\u308C\u307E\u305B\u3093","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\u3057\u3001\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u691C\u51FA\u4E2D\u2026","settings.modelsHead":"\u30E2\u30C7\u30EB\uFF08{n}\uFF09\xB7 id / \u8868\u793A\u540D / maxInputTokens / maxOutputTokens / toolCalling / vision / thinking","settings.modelsColsId":"id","settings.modelsColsName":"\u8868\u793A\u540D","settings.modelsColsIn":"\u5165\u529B\u30A6\u30A3\u30F3\u30C9\u30A6","settings.modelsColsOut":"\u51FA\u529B\u4E0A\u9650","settings.modelsColsTools":"tools","settings.modelsColsVision":"vision","settings.limitsNote":"\u5165\u529B\u30A6\u30A3\u30F3\u30C9\u30A6 = \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u5168\u4F53\u306E\u4E88\u7B97\uFF08maxInputTokens\uFF09\u3001\u51FA\u529B\u4E0A\u9650 = 1 \u56DE\u306E\u56DE\u7B54\u4E0A\u9650\uFF08maxOutputTokens\u3001\u9577\u3044\u30D5\u30A1\u30A4\u30EB / \u601D\u8003\u30E2\u30C7\u30EB\u306F 16384 \u4EE5\u4E0A\u63A8\u5968\uFF09\u3002\u5408\u8A08\u304C\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u306E\u5B9F\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u8D85\u3048\u306A\u3044\u3088\u3046\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u7A7A\u6B04\u306F 65536 / 8192 \u3068\u3057\u3066\u6271\u3044\u307E\u3059\u3002","settings.maxInTitle":"maxInputTokens\uFF1A\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u5168\u4F53\u306E\u4E88\u7B97\u3002\u30ED\u30FC\u30AB\u30EB\u30E2\u30C7\u30EB\u3067\u306F\u30B5\u30FC\u30D0\u30FC\u306E\u5B9F\u30A6\u30A3\u30F3\u30C9\u30A6\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08Ollama \u306F OLLAMA_CONTEXT_LENGTH / num_ctx\uFF09","settings.maxOutTitle":"maxOutputTokens\uFF1A1 \u56DE\u306E\u56DE\u7B54\u4E0A\u9650\uFF08max_tokens\uFF09\u3002\u9577\u3044\u30D5\u30A1\u30A4\u30EB\u3084\u601D\u8003\u30E2\u30C7\u30EB\u306F 16384 \u4EE5\u4E0A\u63A8\u5968","settings.limitPreset":"\u3088\u304F\u4F7F\u3046\u30A6\u30A3\u30F3\u30C9\u30A6\u2026","settings.limitPresetSmall":"8k / 2k","settings.limitPreset16":"16k / 4k","settings.limitPreset32":"32k / 8k","settings.limitPreset64":"64k / 16k","settings.limitPreset128":"128k / 16k","settings.limitPreset256":"256k / 32k","settings.limitPreset512":"512k / 32k","settings.limitPreset1m":"1M / 32k","settings.suggestLimits":"\u30A6\u30A3\u30F3\u30C9\u30A6 {in} / \u51FA\u529B {out} \u3092\u691C\u51FA\uFF08{source}\uFF09","settings.suggestTraining":"\uFF08\u5B66\u7FD2\u6642\u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u3002\u30B5\u30FC\u30D0\u30FC\u306E num_ctx \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF09","settings.applySuggestion":"\u63A1\u7528","settings.sourceGeneric":"\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF","settings.sourceOpenrouter":"OpenRouter","settings.sourceVllm":"vLLM","settings.sourceOllama":"Ollama","settings.sourceLlamacpp":"llama.cpp","settings.warningTitle":"\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF1A","settings.warnThinkOutput":"\u30E2\u30C7\u30EB\u300C{id}\u300D\u306F thinking \u6709\u52B9\u3067\u3059\u304C\u51FA\u529B\u4E0A\u9650\u304C {n} \u3057\u304B\u3042\u308A\u307E\u305B\u3093\u3002\u601D\u8003\u30C8\u30FC\u30AF\u30F3\u3082\u3053\u3053\u304B\u3089\u6D88\u8CBB\u3059\u308B\u305F\u3081\u3001\u672C\u6587\u304C\u7A7A\u306B\u306A\u308A\u3084\u3059\u3044\u3067\u3059","settings.warnOutGeIn":"\u30E2\u30C7\u30EB\u300C{id}\u300D\u306E\u51FA\u529B\u4E0A\u9650 \u2265 \u5165\u529B\u30A6\u30A3\u30F3\u30C9\u30A6\u3067\u3059\u3002\u5024\u304C\u9006\u306E\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059","settings.warnSmallWindow":"\u30E2\u30C7\u30EB\u300C{id}\u300D\u306E\u5165\u529B\u30A6\u30A3\u30F3\u30C9\u30A6 < 16k\uFF1A\u5C0F\u30A6\u30A3\u30F3\u30C9\u30A6\u30E2\u30FC\u30C9\u306B\u306A\u308A\u3001\u30C4\u30FC\u30EB\u3068\u30B7\u30B9\u30C6\u30E0\u30D7\u30ED\u30F3\u30D7\u30C8\u304C\u7C21\u7565\u5316\u3055\u308C\u307E\u3059","settings.warnHuge":"\u30E2\u30C7\u30EB\u300C{id}\u300D\u306E\u30A6\u30A3\u30F3\u30C9\u30A6 / \u51FA\u529B\u4E0A\u9650\u304C\u7570\u5E38\u306B\u5927\u304D\u3044\u3067\u3059\uFF08{n}\uFF09\u3002\u5165\u529B\u30DF\u30B9\u3067\u306A\u3044\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044","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.fetchedWithMeta":"\u2705 \u30E2\u30C7\u30EB\u3092 {n} \u4EF6\u53D6\u5F97\uFF08{m} \u4EF6\u306B\u30A6\u30A3\u30F3\u30C9\u30A6\u60C5\u5831\u3042\u308A\uFF09","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","webdav.title":"\u30AF\u30E9\u30A6\u30C9\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\uFF08WebDAV\uFF09","webdav.enabled":"\u30AF\u30E9\u30A6\u30C9\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3092\u6709\u52B9\u306B\u3059\u308B","webdav.url":"\u30B5\u30FC\u30D0\u30FC URL","webdav.urlPh":"https://dav.example.com/remote.php/dav/files/me","webdav.username":"\u30E6\u30FC\u30B6\u30FC\u540D","webdav.usernamePh":"WebDAV \u30A2\u30AB\u30A6\u30F3\u30C8\uFF08\u7A7A\u6B04\u53EF\uFF09","webdav.password":"\u30D1\u30B9\u30EF\u30FC\u30C9 / \u30A2\u30D7\u30EA\u30D1\u30B9\u30EF\u30FC\u30C9","webdav.passwordPh":"\u7A7A\u6B04\u306A\u3089\u5909\u66F4\u3057\u307E\u305B\u3093\uFF08SecretStorage \u306B\u4FDD\u5B58\u6E08\u307F\uFF09","webdav.passwordPhNew":"SecretStorage \u306E\u307F\u306B\u4FDD\u5B58\u3057\u3001\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u306B\u306F\u66F8\u304D\u307E\u305B\u3093","webdav.clearPassword":"\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u524A\u9664","webdav.remoteDir":"\u30EA\u30E2\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0\u30FC","webdav.remoteDirPh":"luban","webdav.perMachine":"\u30DE\u30B7\u30F3\u3054\u3068\u306B\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u5206\u3051\u308B","webdav.perMachineHint":"\u30AA\u30F3\u306B\u3059\u308B\u3068\u5B9F\u969B\u306E\u30D5\u30A9\u30EB\u30C0\u30FC\u306F\u300C\u30EA\u30E2\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0\u30FC / \u3053\u306E\u30DE\u30B7\u30F3\u306E\u540D\u524D\u300D\u306B\u306A\u308A\u3001\u8907\u6570\u306E PC \u304C\u305D\u308C\u305E\u308C\u72EC\u7ACB\u306B\u4FDD\u5B58\u3055\u308C\u4E0A\u66F8\u304D\u3057\u5408\u3044\u307E\u305B\u3093\u3002\u30AA\u30D5\u306E\u5834\u5408\u306F\u5168\u30DE\u30B7\u30F3\u3067\u540C\u3058\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u5171\u6709\u3057\u307E\u3059\uFF08\u6700\u5F8C\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u304C\u512A\u5148\uFF09\u3002","webdav.machine":"\u8AAD\u307F\u53D6\u308A\u5143\u306E\u30DE\u30B7\u30F3","webdav.machineHint":"\u300C\u8AAD\u307F\u53D6\u308A\u5143\u306E\u30DE\u30B7\u30F3\u300D\u306F\u300C\u30EA\u30E2\u30FC\u30C8\u306E\u5185\u5BB9\u3092\u898B\u308B\u300D\u300C\u30EA\u30E2\u30FC\u30C8\u304B\u3089\u5FA9\u5143\u300D\u3060\u3051\u306B\u52B9\u304D\u307E\u3059\u3002\u5225\u306E PC \u3092\u9078\u3076\u3068\u305D\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3092\u8AAD\u307F\u307E\u3059\uFF08\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u306F\u5E38\u306B\u3053\u306E\u30DE\u30B7\u30F3\u306E\u30D5\u30A9\u30EB\u30C0\u30FC\u3078\u66F8\u304D\u8FBC\u307F\u307E\u3059\uFF09\u3002","webdav.machineRefresh":"\u4ED6\u306E PC \u3092\u63A2\u3059","webdav.machineRefreshTitle":"\u30EA\u30E2\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0\u30FC\u914D\u4E0B\u306E\u5404\u30DE\u30B7\u30F3\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u4E00\u89A7\u3092\u8AAD\u307F\u307E\u3059\uFF08\u8AAD\u307F\u53D6\u308A\u306E\u307F\u3001\u66F8\u304D\u8FBC\u307F\u306A\u3057\uFF09","webdav.machineLocal":"\u3053\u306E\u30DE\u30B7\u30F3\uFF08\u65E2\u5B9A\uFF09","webdav.machineShared":"\u5171\u6709\u30D5\u30A9\u30EB\u30C0\u30FC","webdav.machineItem":"{dir} \xB7 {at} \xB7 {n} \u30D5\u30A1\u30A4\u30EB","webdav.machineItemLocal":"{dir}\uFF08\u3053\u306E\u30DE\u30B7\u30F3\uFF09 \xB7 {at} \xB7 {n} \u30D5\u30A1\u30A4\u30EB","webdav.machineLoading":"\u30EA\u30E2\u30FC\u30C8\u306E\u30DE\u30B7\u30F3\u4E00\u89A7\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026","webdav.machineNone":"\u30EA\u30E2\u30FC\u30C8\u306B\u3042\u308B\u306E\u306F\u3053\u306E\u30DE\u30B7\u30F3\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3060\u3051\u3067\u3059\uFF08{dir} \u914D\u4E0B\u306B\u4ED6\u306E PC \u306E\u3082\u306E\u306F\u3042\u308A\u307E\u305B\u3093\uFF09","webdav.machineFound":"{n} \u53F0\u5206\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u304C\u3042\u308A\u307E\u3059\u3002\u300C\u8AAD\u307F\u53D6\u308A\u5143\u306E\u30DE\u30B7\u30F3\u300D\u3067\u5207\u308A\u66FF\u3048\u3089\u308C\u307E\u3059","webdav.force":"\u30ED\u30FC\u30AB\u30EB\u306E\u65B0\u3057\u3044\u30D5\u30A1\u30A4\u30EB\u3082\u4E0A\u66F8\u304D","webdav.forceHint":"\u65E2\u5B9A\u3067\u306F\u300C\u30ED\u30FC\u30AB\u30EB\u304C\u30EA\u30E2\u30FC\u30C8\u306E\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u3088\u308A\u65B0\u3057\u3044\u300D\u30D5\u30A1\u30A4\u30EB\u306F\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\u3002\u30AA\u30F3\u306B\u3059\u308B\u3068\u4E0A\u66F8\u304D\u3057\u307E\u3059\uFF08\u5FA9\u5143\u524D\u306E\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u306F ~/.luban/backups/ \u306B\u6B8B\u308A\u307E\u3059\uFF09\u3002\u30DE\u30B7\u30F3\u9593\u3067 provider \u8A2D\u5B9A\u3092\u540C\u671F\u3059\u308B\u3068\u304D\u306B\u5FC5\u8981\u3067\u3059","webdav.statusListInfoLegacy":"\u30EA\u30E2\u30FC\u30C8\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\uFF08\u65E7\u30EB\u30FC\u30C8\uFF09 \xB7 {at} \xB7 {machine} \xB7 {n} \u30D5\u30A1\u30A4\u30EB","webdav.includes":"\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u5BFE\u8C61","webdav.inc.sessions":"\u30BB\u30C3\u30B7\u30E7\u30F3\u5C65\u6B74","webdav.inc.attachments":"\u753B\u50CF\u6DFB\u4ED8","webdav.inc.plans":"\u30D7\u30E9\u30F3\u6587\u66F8","webdav.inc.config":"provider \u8A2D\u5B9A\uFF08\u5E73\u6587\u30AD\u30FC\u306F\u9664\u53BB\uFF09","webdav.inc.mcp":"mcp.json","webdav.providerTitle":"\u5FA9\u5143\u3059\u308B\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u9078\u3076","webdav.providerAll":"\u3059\u3079\u3066\u9078\u629E","webdav.providerNone":"\u3059\u3079\u3066\u89E3\u9664","webdav.providerConfirm":"\u9078\u629E\u3057\u305F\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u5FA9\u5143","webdav.providerCount":"{n} \u4EF6\u306E\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u9078\u629E\u4E2D","webdav.providerCountNone":"\u5C11\u306A\u304F\u3068\u3082 1 \u4EF6\u306E\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u9078\u3093\u3067\u304F\u3060\u3055\u3044","webdav.providerEmpty":"\u3053\u306E\u30DE\u30B7\u30F3\u306B\u306F\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u8A2D\u5B9A\uFF08providers.json\uFF09\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u4ED6\u306E\u30AB\u30C6\u30B4\u30EA\u30FC\u306E\u307F\u5FA9\u5143\u3057\u307E\u3059","webdav.providerLoading":"\u30EA\u30E2\u30FC\u30C8\u306E\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u4E00\u89A7\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026","webdav.providerHint":"\u30C1\u30A7\u30C3\u30AF\u3057\u305F\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3060\u3051\u3092\u30ED\u30FC\u30AB\u30EB\u8A2D\u5B9A\u306B\u30DE\u30FC\u30B8\u3057\u307E\u3059\uFF08\u540C\u3058 id \u306E\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u304C\u65E2\u306B\u3042\u308B\u5834\u5408\u3001\u30ED\u30FC\u30AB\u30EB\u306E apiKey \u3092\u4FDD\u6301\u3057\u30E2\u30C7\u30EB\u3060\u3051\u8FFD\u52A0\uFF09","webdav.providerItem":"{name} \xB7 {n} \u30E2\u30C7\u30EB","webdav.providerItemExists":"{name} \xB7 {n} \u30E2\u30C7\u30EB\uFF08\u3053\u306E\u30DE\u30B7\u30F3\u306B\u65E2\u5B58\u3002\u30ED\u30FC\u30AB\u30EB\u306E apiKey \u3092\u4FDD\u6301\uFF09","webdav.providerPickHint":"\u300C\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u8A2D\u5B9A\u300D\u3092\u30AA\u30F3\u306B\u3057\u3066\u300C\u30EA\u30E2\u30FC\u30C8\u304B\u3089\u5FA9\u5143\u300D\u3092\u62BC\u3059\u3068\u3001\u5FA9\u5143\u3059\u308B\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u9078\u3079\u307E\u3059","webdav.save":"\u8A2D\u5B9A\u3092\u4FDD\u5B58","webdav.test":"\u63A5\u7D9A\u30C6\u30B9\u30C8","webdav.testing":"\u63A5\u7D9A\u4E2D\u2026","webdav.backup":"\u4ECA\u3059\u3050\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7","webdav.restore":"\u30EA\u30E2\u30FC\u30C8\u304B\u3089\u5FA9\u5143","webdav.list":"\u30EA\u30E2\u30FC\u30C8\u306E\u5185\u5BB9\u3092\u898B\u308B","webdav.openFile":"webdav.json \u3092\u958B\u304F","webdav.openFileTitle":"\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u306B\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u542B\u307E\u308C\u307E\u305B\u3093\uFF08SecretStorage \u306E\u307F\uFF09","webdav.note":"\u30D1\u30B9\u30EF\u30FC\u30C9\u306F VS Code \u306E SecretStorage \u306B\u4FDD\u5B58\u3057\u3001webdav.json \u306B\u306F\u66F8\u304D\u307E\u305B\u3093\u3002\u30BB\u30C3\u30B7\u30E7\u30F3\u672C\u6587\u306F\u30EA\u30E2\u30FC\u30C8\u3078\u9001\u4FE1\u3055\u308C\u308B\u305F\u3081\u3001\u4FE1\u983C\u3067\u304D\u308B\u30B5\u30FC\u30D0\u30FC\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u5FA9\u5143\u524D\u306B\u306F\u4E0A\u66F8\u304D\u5BFE\u8C61\u306E\u30D5\u30A1\u30A4\u30EB\u3092 <code>~/.luban/backups/</code> \u306B\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u3057\u307E\u3059\u3002","webdav.statusReady":"\u6E96\u5099\u5B8C\u4E86","webdav.statusSaved":"\u8A2D\u5B9A\u3092\u4FDD\u5B58\u3057\u307E\u3057\u305F","webdav.statusInvalid":"{n} \u4EF6\u306E\u554F\u984C\u304C\u3042\u308A\u3001\u4FDD\u5B58\u3057\u3066\u3044\u307E\u305B\u3093","webdav.statusTestOk":"\u63A5\u7D9A OK \xB7 {ms}ms","webdav.statusTestCreate":"\u63A5\u7D9A OK\u3002\u30EA\u30E2\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0\u30FC\u306F\u521D\u56DE\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u6642\u306B\u4F5C\u6210\u3057\u307E\u3059","webdav.statusTestFail":"\u63A5\u7D9A\u5931\u6557\uFF1A{msg}","webdav.statusBusy":"\u8EE2\u9001\u4E2D\u3067\u3059\u3002\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u2026","webdav.statusProgress":"{phase} {done}/{total}","webdav.statusBackupDone":"\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u5B8C\u4E86 \xB7 {n} \u30D5\u30A1\u30A4\u30EB","webdav.statusBackupDoneInc":"\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u5B8C\u4E86 \xB7 {u} \u4EF6\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 \xB7 {s} \u4EF6\u30B9\u30AD\u30C3\u30D7\uFF08\u5909\u66F4\u306A\u3057\uFF09","webdav.statusRestoreDone":"\u5FA9\u5143\u5B8C\u4E86 \xB7 {n} \u30D5\u30A1\u30A4\u30EB","webdav.catWrap":"\uFF08{parts}\uFF09","webdav.catSessions":"\u30BB\u30C3\u30B7\u30E7\u30F3 {n}","webdav.catAttachments":"\u6DFB\u4ED8 {n}","webdav.catPlans":"\u30D7\u30E9\u30F3 {n}","webdav.catProviders":"provider \u8A2D\u5B9A {n}","webdav.catMcp":"MCP \u8A2D\u5B9A {n}","webdav.statusRestorePartial":"\u30EA\u30E2\u30FC\u30C8\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u304C\u4E0D\u5B8C\u5168\u3067\u3059\uFF08\u524D\u56DE\u306E\u8EE2\u9001\u304C\u672A\u5B8C\u4E86\uFF09\u3001{n} \u4EF6\u30B9\u30AD\u30C3\u30D7","webdav.statusRestoreBlocked":"\u30ED\u30FC\u30AB\u30EB\u304C\u65B0\u3057\u3044 {n} \u4EF6\u306F\u4E0A\u66F8\u304D\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u300C\u30ED\u30FC\u30AB\u30EB\u306E\u65B0\u3057\u3044\u30D5\u30A1\u30A4\u30EB\u3082\u4E0A\u66F8\u304D\u300D\u3092\u30AA\u30F3\u306B\u3057\u3066\u518D\u5B9F\u884C\uFF09","webdav.statusProviderMerged":"provider \u3092 {p} \u4EF6\u8FFD\u52A0 \xB7 \u30E2\u30C7\u30EB {m} \u4EF6","webdav.statusProviderNoNew":"provider \u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\uFF08\u8FFD\u52A0\u306A\u3057\uFF09","webdav.mergeSep":"\u3001","webdav.statusListNone":"\u30EA\u30E2\u30FC\u30C8\u306B Luban \u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093","webdav.statusListInfo":"\u30EA\u30E2\u30FC\u30C8\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7 \xB7 {at} \xB7 {machine} \xB7 {n} \u30D5\u30A1\u30A4\u30EB","webdav.statusListPartial":"\uFF08\u524D\u56DE\u306E\u8EE2\u9001\u304C\u672A\u5B8C\u4E86\u3001{n} \u4EF6\u6B20\u843D\uFF09","webdav.statusNoUrl":"\u5148\u306B\u30B5\u30FC\u30D0\u30FC URL \u3092\u5165\u529B\u3057\u3066\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044","webdav.confirmOverwrite":"\u30EA\u30E2\u30FC\u30C8\u306B\u306F {machine} \u306E {at} \u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\uFF08{n} \u30D5\u30A1\u30A4\u30EB\uFF09\u304C\u3042\u308A\u307E\u3059\u3002\u7D9A\u884C\u3059\u308B\u3068\u3053\u306E\u30DE\u30B7\u30F3\u306E\u5185\u5BB9\u3067\u4E0A\u66F8\u304D\u3057\u307E\u3059\u3002\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F","webdav.confirmOverwriteYes":"\u4E0A\u66F8\u304D\u3059\u308B","webdav.statusCancelled":"\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u30EA\u30E2\u30FC\u30C8\u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u306F\u5909\u66F4\u3057\u3066\u3044\u307E\u305B\u3093\uFF09","webdav.phase.test":"\u63A5\u7D9A","webdav.phase.scan":"\u30B9\u30AD\u30E3\u30F3","webdav.phase.upload":"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9","webdav.phase.manifest":"\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8","webdav.phase.snapshot":"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8","webdav.phase.download":"\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9","webdav.phase.restore":"\u5FA9\u5143","webdav.phase.done":"\u5B8C\u4E86","webdav.phase.confirm":"\u78BA\u8A8D\u5F85\u3061","webdav.phase.warn":"\u6CE8\u610F","webdav.restoredNotice":"{n} \u30D5\u30A1\u30A4\u30EB\u3092\u5FA9\u5143\u3057\u307E\u3057\u305F{cat}\u3002\u5FA9\u5143\u524D\u306E\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u306F {dir} \u306B\u3042\u308A\u307E\u3059\u3002\u958B\u3044\u3066\u3044\u308B\u30BF\u30D6\u306F\u53E4\u3044\u5185\u5BB9\u306E\u53EF\u80FD\u6027\u304C\u3042\u308B\u305F\u3081\u3001\u958B\u304D\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002","webdav.noSnapshot":"\uFF08\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u306F\u4E0A\u66F8\u304D\u3057\u3066\u3044\u307E\u305B\u3093\uFF09","webdav.errUrl":"\u30B5\u30FC\u30D0\u30FC URL \u306F http(s):// \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059","webdav.errNeedUrl":"WebDAV \u30B5\u30FC\u30D0\u30FC URL \u304C\u672A\u8A2D\u5B9A\u3067\u3059","webdav.errDisabled":"WebDAV \u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u304C\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u305B\u3093\u3002\u5148\u306B\u300C\u30AF\u30E9\u30A6\u30C9\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3092\u6709\u52B9\u5316\u300D\u3092\u30AA\u30F3\u306B\u3057\u3066\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044","webdav.errRemoteDir":"\u30EA\u30E2\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0\u30FC\u306F [A-Za-z0-9._-] \u306E\u30BB\u30B0\u30E1\u30F3\u30C8\u306E\u307F\u3001\u300C..\u300D\u306F\u4F7F\u3048\u307E\u305B\u3093","webdav.errBadMachine":"\u30DE\u30B7\u30F3\u306E\u30D5\u30A9\u30EB\u30C0\u30FC\u540D\u304C\u4E0D\u6B63\u3067\u3059\uFF08[A-Za-z0-9._-] \u306E\u307F\u53EF\u3001\u300C..\u300D\u3084\u30B9\u30E9\u30C3\u30B7\u30E5\u306F\u4E0D\u53EF\uFF09","webdav.errInclude":"\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u7BC4\u56F2\u306E\u30B9\u30A4\u30C3\u30C1\u306F\u771F\u507D\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","webdav.errAuth":"\u8A8D\u8A3C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08401\uFF09\uFF1A\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u9055\u3044\u307E\u3059","webdav.errRemotePath":"\u30EA\u30E2\u30FC\u30C8\u30D1\u30B9\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\uFF08404\uFF09\uFF1AURL \u3068\u30EA\u30E2\u30FC\u30C8\u30D5\u30A9\u30EB\u30C0\u30FC\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044","webdav.errHttp":"\u30B5\u30FC\u30D0\u30FC\u304C\u30A8\u30E9\u30FC\u72B6\u614B\u3092\u8FD4\u3057\u307E\u3057\u305F","webdav.errNetwork":"\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u8981\u6C42\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A\u30B5\u30FC\u30D0\u30FC\u306B\u5230\u9054\u3067\u304D\u306A\u3044\u304B\u8A3C\u660E\u66F8\u306E\u554F\u984C\u3067\u3059","webdav.errPartial":"\u4E00\u90E8\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u8EE2\u9001\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08{n} \u4EF6\uFF09","webdav.errTimeout":"\u8981\u6C42\u304C\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F\uFF0860 \u79D2\uFF09","webdav.errBusy":"\u524D\u56DE\u306E\u8EE2\u9001\u304C\u307E\u3060\u5B9F\u884C\u4E2D\u3067\u3059\u3002\u7D42\u308F\u308B\u307E\u3067\u304A\u5F85\u3061\u304F\u3060\u3055\u3044","webdav.errNoBackup":"\u30EA\u30E2\u30FC\u30C8\u306B Luban \u306E\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u304C\u3042\u308A\u307E\u305B\u3093\uFF08manifest.json \u306A\u3057\uFF09","webdav.errBadManifest":"\u30EA\u30E2\u30FC\u30C8\u306E manifest.json \u304C\u58CA\u308C\u3066\u3044\u3066\u89E3\u6790\u3067\u304D\u307E\u305B\u3093","webdav.errRemoteNewer":"\u30EA\u30E2\u30FC\u30C8\u306B\u65B0\u3057\u3044\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u304C\u3042\u308A\u307E\u3059\uFF08\u5225\u30DE\u30B7\u30F3\u306E\u53EF\u80FD\u6027\uFF09\u3002\u4E0A\u66F8\u304D\u306B\u306F\u78BA\u8A8D\u304C\u5FC5\u8981\u3067\u3059","mascot.state.offline":"\u30AA\u30D5\u30E9\u30A4\u30F3","mascot.state.idle":"\u5F85\u6A5F\u4E2D","mascot.state.thinking":"\u8003\u3048\u4E2D","mascot.state.typing":"\u51FA\u529B\u4E2D","mascot.state.tool":"\u30C4\u30FC\u30EB\u5B9F\u884C","mascot.state.waiting":"\u78BA\u8A8D\u5F85\u3061","mascot.state.done":"\u5B8C\u4E86","mascot.state.error":"\u30A8\u30E9\u30FC"}},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 r(){let d=typeof navigator<"u"&&navigator&&navigator.language||"";return/^zh/i.test(d)?"zh-cn":/^ja/i.test(d)?"ja":"en"}function o(d){return n=s(d)||r(),n}function i(){return n}function a(d,f,p){let h=s(d)||n,y=(e[h]||e["zh-cn"])[f];return y==null&&(y=e["zh-cn"][f]),y==null?f:(p&&(y=String(y).replace(/\{(\w+)\}/g,function(w,T){return p[T]==null?w:String(p[T])})),y)}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:o,getLang:i,has:c,normalize:s,langs:["zh-cn","en","ja"]};typeof pa<"u"&&pa&&pa.exports&&(pa.exports=u),t&&(t.LubanI18n=u)})(typeof globalThis<"u"?globalThis:Zx)});var rv=ne((X2,sv)=>{"use strict";var zr=require("path"),Vp=/!\[([^\]]*)\]\(([^()\s]*(?:\([^()\s]*\)[^()\s]*)*)\)/g;function fI(t){let e=[],n=new Set,s=String(t??""),r;for(Vp.lastIndex=0;(r=Vp.exec(s))!==null;){let o=String(r[2]||"").trim();o&&(n.has(o)||(n.add(o),e.push(o)))}return e}function ev(t,e){if(!t||!e)return!1;let n=zr.resolve(t),s=zr.resolve(e);if(n===s)return!0;let r=zr.relative(s,n);return!!r&&!r.startsWith("..")&&!zr.isAbsolute(r)}function tv(t){let e=String(t||"");return!e||e.startsWith("//")||e.startsWith("data:")||e.startsWith("#")?!0:/^[a-z][a-z0-9+.-]*:/i.test(e)}function nv(t,e,n){let s=String(t??"").trim();if(!s)return{kind:"invalid",url:s};if(tv(s)){if(!/^file:/i.test(s))return{kind:"remote",url:s};let i=s.replace(/^file:\/\//i,"");return nv(i,e,n)}let r=zr.isAbsolute(s)?zr.resolve(s):zr.resolve(String(e||""),s),o=Array.isArray(n)?n:[];for(let i of o)if(ev(r,i))return{kind:"workspace",abs:r,url:s};return{kind:"inline",abs:r,url:s}}sv.exports={extractImageUrls:fI,classifyImage:nv,insideRoot:ev,isRemoteLike:tv,IMG_RE:Vp}});var ov=ne((Y2,pI)=>{pI.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.100.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:"git+https://github.com/eppen/luban.git"},engines:{vscode:"^1.104.0"},categories:["AI","Chat","Programming Languages"],activationEvents:["onStartupFinished","onView:luban.chatView","onCommand:luban.focusView","onCommand:luban.browserPreview","onCommand:luban.markdownPreview"],main:"./dist/extension.js",bin:{luban:"dist/cli.js","luban-code":"dist/cli.js","luban-acp":"dist/acp.js"},files:["dist/cli.js","dist/acp.js","dist/cli-plugin.js","dist/extension.js","registry/","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:review-autokeep":"node scripts/build.js && node scripts/test-review-autokeep.js","test:skills":"node scripts/test-skills.js","test:rules":"node scripts/test-rules.js","test:plugins":"node scripts/test-plugins.js","test:plugins-ext":"node scripts/test-plugins-ext.js","test:registry":"node scripts/test-registry-client.js","test:registry-skill":"node scripts/test-registry-skill.js","test:install":"node scripts/test-install-scripts.js",cli:"node cli.js","test:acp":"node scripts/test-acp.js","test:acp-pkg":"node scripts/test-acp-pkg.js","test:cli-resume":"node scripts/test-cli-resume.js",vsix:"node scripts/vsix.js","test:general":"node scripts/test-general-settings.js","test:provider-models":"node scripts/test-provider-models.js","test:hub":"node scripts/test-hub-tabs.js","test:hub-market":"node scripts/test-hub-market.js","test:market-ext":"node scripts/test-market-ext.js","test:sync-registry":"node scripts/test-sync-registry.js","test:i18n":"node scripts/test-i18n.js","test:css":"node scripts/test-css-vars.js","test:webdav":"node scripts/test-webdav.js","test:webdav-override":"node scripts/test-webdav-override.js","test:browser-events":"node scripts/test-browser-events.js","test:browser-tool":"node scripts/test-browser-tool.js","test:browser-launch":"node scripts/test-browser-launch.js","test:computer-linux":"node scripts/test-computer-linux.js","test:computer-linux-live":"node scripts/live-computer-linux.js","test:computer-tool":"node scripts/test-computer-tool.js","test:subagent":"node scripts/test-subagent-guards.js","test:lm-provider":"node scripts/test-lm-provider.js","test:agent-budget":"node scripts/test-agent-budget.js","test:gamepad":"node scripts/test-gamepad.js","test:status":"node scripts/test-status.js","test:avatar":"node scripts/test-avatar.js","test:cli-md":"node scripts/test-cli-md.js","test:mdpreview":"node scripts/test-mdpreview.js","test:mdpreview-live":"node scripts/live-mdpreview.js","test:cli-confirm":"node scripts/test-cli-confirm.js","test:cli-input":"node scripts/test-cli-input.js","test:token-audit":"node scripts/test-token-audit.js","test:think":"node scripts/test-think.js","test:webfetch-md":"node scripts/test-webfetch-md.js","test:tabs":"node scripts/test-workspace-tab-filter.js","test:status-live":"node scripts/live-status.js","test:review-freeze":"node scripts/live-review-freeze.js","test:review-focus":"node scripts/live-review-focus.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.plugins",title:"%cmdPlugins%",category:"Luban"},{command:"luban.market",title:"%cmdMarket%",category:"Luban"},{command:"luban.rules.open",title:"%cmdOpenRules%",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.findInSession",title:"%cmdFindInSession%",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.addFileToNewChat",title:"%cmdAddFileToNewChat%",category:"Luban"},{command:"luban.addFolderToNewChat",title:"%cmdAddFolderToNewChat%",category:"Luban"},{command:"luban.addSelectionToChat",title:"%cmdAddSelectionToChat%",category:"Luban"},{command:"luban.addSelectionToNewChat",title:"%cmdAddSelectionToNewChat%",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"},{command:"luban.browserPreview",title:"%cmdBrowserPreview%",category:"Luban"},{command:"luban.markdownPreview",title:"%cmdMarkdownPreview%",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"},{command:"luban.markdownPreview",when:"resourceLangId == markdown",group:"navigation@3",icon:"$(preview)"}],"explorer/context":[{command:"luban.addFileToChat",when:"!explorerResourceIsFolder && resourceScheme == file",group:"1_luban@1"},{command:"luban.addFolderToChat",when:"explorerResourceIsFolder && resourceScheme == file",group:"1_luban@2"},{command:"luban.addFileToNewChat",when:"!explorerResourceIsFolder && resourceScheme == file",group:"1_luban@3"},{command:"luban.addFolderToNewChat",when:"explorerResourceIsFolder && resourceScheme == file",group:"1_luban@4"}],"editor/context":[{command:"luban.addSelectionToChat",when:"editorHasSelection && resourceScheme == file",group:"1_luban@0"},{command:"luban.addSelectionToNewChat",when:"editorHasSelection && resourceScheme == file",group:"1_luban@1"}],"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.addFileToNewChat",when:"false"},{command:"luban.addFolderToNewChat",when:"false"},{command:"luban.addSelectionToChat",when:"editorHasSelection"},{command:"luban.addSelectionToNewChat",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.findInSession",key:"cmd+f",mac:"cmd+f",win:"ctrl+f",linux:"ctrl+f",when:"focusedView == 'luban.chatView'"},{command:"luban.findInSession",key:"cmd+f",mac:"cmd+f",win:"ctrl+f",linux:"ctrl+f",when:"activeWebviewPanelId == 'luban'"},{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",icon:"media/icon.svg"}]},languageModelChatProviders:[{vendor:"luban",displayName:"Luban",icon:"media/icon.png",managementCommand:"luban.providerSettings"}],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:200,minimum:0,description:"%cfgAgentMaxRounds%"},"luban.agent.maxMinutes":{type:"number",default:30,minimum:1,description:"%cfgAgentMaxMinutes%"},"luban.agent.noWriteNudges":{type:"number",default:2,minimum:0,description:"%cfgAgentNoWriteNudges%"},"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.net.tlsMaxVersion":{type:"string",enum:["auto","1.2"],enumDescriptions:["%cfgNetTlsMaxVersionAuto%","%cfgNetTlsMaxVersion12%"],default:"auto",description:"%cfgNetTlsMaxVersion%"},"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.browser.confirm":{type:"boolean",default:!0,description:"%cfgBrowserConfirm%"},"luban.browser.preview":{type:"boolean",default:!1,description:"%cfgBrowserPreview%"},"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.plugins.enabled":{type:"boolean",default:!1,description:"%cfgPluginsEnabled%"},"luban.plugins.maxTools":{type:"number",default:30,minimum:1,maximum:200,description:"%cfgPluginsMaxTools%"},"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.review.autoKeep":{type:"boolean",default:!1,description:"%cfgReviewAutoKeep%"},"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%"},"luban.statusBar.enabled":{type:"boolean",default:!0,description:"%cfgStatusBarEnabled%"},"luban.rules.enabled":{type:"boolean",default:!0,description:"%cfgRulesEnabled%"},"luban.rules.maxChars":{type:"number",default:12e3,minimum:1e3,description:"%cfgRulesMaxChars%"},"luban.rules.indexMaxChars":{type:"number",default:2e3,minimum:200,description:"%cfgRulesIndexMaxChars%"}}}},devDependencies:{esbuild:"^0.25.0"},dependencies:{"@clack/prompts":"^1.8.1",picocolors:"^1.1.1"}}});var v=require("vscode"),N=require("fs"),D=require("path"),it=require("os"),eh=require("tls"),{exec:hI,execSync:Yv}=require("child_process"),yn=yu(),Yn=_m(),mI=Mm(),Yr=Nm(),gI=Dm(),Te=Iu(),gn=Qm(),xn=sg(),iv=ag(),nt=bg(),$t=sd(),Xt=uy(),Ms=my(),ct=vy(),Zv=Ty(),lr=Ly(),Ac=By(),cr=ew(),Rt=ad(),$n=aw(),Os=uw(),Ke=mw(),ve=kw(),wt=Lw(),Ze=_o(),Cs=Nb(),Qv=wi(),av=Vd(),vn=Jb(),yI=tk(),eS=fk(),Sn=up(),as=Uk(),Ga=process.platform==="linux",wI=process.platform==="darwin",ue=Ga?cx():process.platform==="win32"?Cx():$x(),ls=process.platform==="win32",tS=ls?"Windows":wI?"macOS":Ga?"Linux":"\u4EC5\u652F\u6301 macOS / Windows / Linux",bI=ls?" \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":Ga?" X11 \u4F1A\u8BDD\u6700\u5B8C\u6574\uFF1BWayland \u4E0B xdotool \u53EA\u80FD\u64CD\u4F5C XWayland \u5E94\u7528\uFF0C\u539F\u751F Wayland \u7A97\u53E3\u7684\u70B9\u51FB / \u62D6\u52A8\u4E0D\u53EF\u7528\u3002\u65E0\u5934\u73AF\u5883\u8981\u5148\u8D77 Xvfb\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",Ca=ls?"\u5C4F\u5E55\u7269\u7406\u50CF\u7D20":Ga?"\u5C4F\u5E55\u50CF\u7D20":"\u5C4F\u5E55\u903B\u8F91\u70B9";function kI(){return ls?{a:65,p:80,bang:49}:Ga?{a:97,p:112,bang:49}:{a:0,p:35,bang:18}}var Qt=Ux(),hr=Yx(),vs=Zd(),nS=Qx(),lv=rv(),cv=ov(),xI=kr().SKIP_DIRS,fr=cv&&cv.version||"0.0.0",Oc=process.env.LUBAN_OUT_DIR||"/tmp/luban-ide",vI=Oc+"/result.json",ft=D.join(it.homedir(),".luban","providers.json"),ba={startedAt:new Date().toISOString(),steps:[],acks:[]},SI=400,uv=2e3,Wo=null;function sS(){try{N.mkdirSync(Oc,{recursive:!0}),N.writeFileSync(vI,JSON.stringify(ba,null,2))}catch{}}function Sh(){Wo&&(clearTimeout(Wo),Wo=null),sS()}function S(t,e){ba.steps.push({step:t,at:new Date().toISOString(),...e}),ba.steps.length>uv&&ba.steps.splice(0,ba.steps.length-uv),Wo||(Wo=setTimeout(function(){Wo=null,sS()},SI))}var en="",rS=[];function oS(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 za(){let t="auto";try{t=v.workspace.getConfiguration("luban").get("language")}catch{}return oS(t,v.env&&v.env.language)}function O(t,e){return nS.t(t,e)}function Ec(t){en=nS.setLang(za()),Yn.setUntitled(O("store.untitled")),MI();try{wn&&wn.fire()}catch{}try{Bh()}catch{}return S("language_applied",{lang:en,reason:t||""}),en}function _I(t){for(let e of rS.splice(0))try{e(t)}catch{}}function TI(t){return new Promise(function(e){let n=!1,s=setTimeout(function(){n||(n=!0,e(null))},t||8e3);rS.push(function(r){n||(n=!0,clearTimeout(s),e(r))})})}function MI(){let t=[Me&&Me.webview,ye&&ye.webview,_t&&_t.webview];for(let e of t)if(e)try{e.postMessage({type:"lang",lang:en})}catch(n){S("broadcast_lang_failed",{message:n.message})}}var iS={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}]}]},Bt=iS,Jo="builtin",us=Object.create(null),St=null,Ko=[],aS=40,th=Object.create(null),dv=new Map;function CI(t){for(let e of t.providers||[])!e||!Array.isArray(e.models)||(e.models=e.models.map(function(n){return typeof n=="string"?{id:n,name:n}:(n&&typeof n=="object"&&!n.id&&n.name&&(n.id=String(n.name)),n)}).filter(function(n){return n&&typeof n=="object"&&n.id}));return t}function nu(){try{let t=JSON.parse(N.readFileSync(ft,"utf8"));if(t&&Array.isArray(t.providers)&&t.providers.length){Bt=CI(t),Jo=ft,S("config_loaded",{source:ft,providers:t.providers.map(e=>e.id),models:Zn().length});return}}catch(t){S("config_load_failed",{message:t.message,path:ft})}Bt=iS,Jo="builtin"}function AI(){let t=[];for(let e of Bt.providers||[])for(let n of e.models||[])t.push({provider:e,model:n});return t}function Zn(){let t=AI(),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 pt(t){let e=Zn(),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===Bt.defaultModel)||e.find(s=>s.provider.id+"::"+s.model.id===Bt.defaultModel)||e[0]}function ni(){let t=pt(Bt.defaultModel);return t?t.key:""}function OI(t){try{let e=N.readFileSync(D.join(it.homedir(),".hermes",".env"),"utf8");for(let n of e.split(`
991
991
  `)){let s=n.match(new RegExp("^\\s*"+t+"\\s*=\\s*(.+)\\s*$"));if(s)return s[1].trim().replace(/^["']|["']$/g,"")}}catch{}return""}function Va(t){let e=t&&t.apiKeyEnv;return e?process.env[e]?String(process.env[e]).trim():OI(e):""}function Pc(t){if(!t)return"";if(t.apiKey)return String(t.apiKey);let e=us[t.id];return e?String(e):Va(t)}var _h="luban-local";function EI(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 Xo(t){return t?t.keyless===!0?!0:EI(t.baseUrl):!1}function Yo(t){let e=Pc(t);return e||(Xo(t)?_h:"")}function lS(t){return String(t.baseUrl||"").replace(/\/+$/,"")+"/chat/completions"}var nh=2e4,Th=3e3,fv=8e3,PI="https://cn.bing.com/search",cS="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0 Safari/537.36",Jp=2*1024*1024;function uS(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 zn(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 jc(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 dS(t){let e=t||{},n=pt(e.modelKey);if(!n)throw new Error("\u6CA1\u6709\u53EF\u7528\u6A21\u578B\u914D\u7F6E");let s=jc(n.provider);if(!s)throw new Error("\u5F53\u524D provider \u672A\u914D\u7F6E FIM \u8865\u5168\uFF08providers.json \u91CC\u52A0 inlineCompletion.baseUrl\uFF09");let r=Yo(n.provider);if(!r)throw new Error("provider "+n.provider.id+" \u7F3A\u5C11 API key");let o=n.provider.inlineCompletion||{},i=Ac.buildPrompt({path:e.path,text:e.text,offset:e.offset,prefixLines:o.prefixLines,suffixLines:o.suffixLines,maxChars:o.maxPromptChars}),a={model:String(o.model||"deepseek-chat"),prompt:i.prompt,suffix:i.suffix,max_tokens:Math.min(Math.max(Math.floor(Number(o.maxTokens))||256,16),2048),stream:!1},l=Math.max(500,Number(o.timeoutMs)||3e3),c=new AbortController,u=su(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 "+r},body:JSON.stringify(a),signal:c.signal});if(!f.ok){let y=await f.text();throw new Error("FIM HTTP "+f.status+": "+String(y).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:Ac.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 jI(t,e){let n="";try{let o=JSON.parse(e);o&&o.error&&o.error.message&&(n=String(o.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 su(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 fS(t){let e=new AbortController,n=su(t&&t.signal),s=t&&t.timeoutMs||nh,r=setTimeout(function(){e.abort()},s);return n.signal&&(n.isCancelled()?e.abort():n.signal.addEventListener("abort",function(){e.abort()})),{ctrl:e,outer:n,timer:r,ms:s}}async function pS(t,e,n,s){let r=s||{},o=uS(n&&n.provider);if(!o)throw new Error("\u5F53\u524D provider \u672A\u914D\u7F6E\u8054\u7F51\u641C\u7D22\uFF08providers.json \u91CC\u52A0 webSearch.baseUrl\uFF09");let i=Yo(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=su(r.signal),c=setTimeout(function(){a.abort()},r.timeoutMs||nh);l.signal&&(l.isCancelled()?a.abort():l.signal.addEventListener("abort",function(){a.abort()}));let u,d;try{u=await fetch(o+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((r.timeoutMs||nh)/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 S("web_http_error",{endpoint:t,status:u.status,body:String(d).slice(0,300)}),new Error(jI(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 II(t,e,n){let s=n||{};if(!e)throw new Error("\u6CA1\u6709\u53EF\u7528\u6A21\u578B\u914D\u7F6E");let r=String(t??"").replace(/\s+/g," ").trim().slice(0,128);if(!r)throw new Error("\u641C\u7D22\u8BCD\u4E3A\u7A7A");let o=e.provider.webSearch&&e.provider.webSearch.count||8,i=typeof s.count=="number"&&isFinite(s.count)?s.count:o;i=Math.min(Math.max(Math.round(i)||8,1),50);let a={query:r,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 pS("/search",a,e,s),u=Array.isArray(c&&c.results)?c.results:[];return S("web_search",{provider:e.provider.id,query:r,count:i,needContent:!!s.needContent,results:u.length}),{query:r,results:u}}async function NI(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 r=await pS("/fetch",{url:s},e,n||{}),o=String(r&&r.title||""),i=String(r&&r.content||""),a=n&&n.maxChars||12e3,l=i.length>a?i.slice(0,a)+`
992
992
  \u2026[\u6B63\u6587\u5DF2\u622A\u65AD]`:i;return S("web_fetch",{provider:e.provider.id,url:s.slice(0,200),title:o,chars:i.length}),{url:s,title:o,content:l,fullChars:i.length}}var FI={amp:"&",lt:"<",gt:">",quot:'"',apos:"'",nbsp:" "};function kc(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",r=parseInt(n.slice(s?2:1),s?16:10);return isFinite(r)&&r>0&&r<65536?String.fromCharCode(r):e}return FI[n]||e})}function Da(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,`
993
993
  `),e=e.replace(/<br\s*\/?>/gi,`
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@luban-code/luban-code",
3
3
  "displayName": "Luban",
4
4
  "description": "Luban — a standalone sidebar AI coding agent (multi-provider, OpenAI-compatible, zero source patches)",
5
- "version": "1.100.0",
5
+ "version": "1.100.1",
6
6
  "license": "Apache-2.0",
7
7
  "author": {
8
8
  "name": "eppen (liuhualiang)",