blade-code 0.10.29 → 0.10.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/blade.js +2 -2
  2. package/dist/{chunk-5jxm20vq.js → chunk-1444wfhr.js} +1 -1
  3. package/dist/{chunk-xn5zf98b.js → chunk-1sswefqp.js} +1 -1
  4. package/dist/chunk-2wdmt91f.js +1 -0
  5. package/dist/{chunk-1p45ytbg.js → chunk-3y97cpzv.js} +1 -1
  6. package/dist/{chunk-1yyyt228.js → chunk-56hphybe.js} +1 -1
  7. package/dist/{chunk-bk649qwy.js → chunk-64hndcnj.js} +41 -41
  8. package/dist/{chunk-js9g83ty.js → chunk-6h9d9ykg.js} +1 -1
  9. package/dist/{chunk-m9rg16w4.js → chunk-7brnbdq8.js} +1 -1
  10. package/dist/{chunk-x1p5dmfv.js → chunk-7e7zgzag.js} +1 -1
  11. package/dist/{chunk-s0txchah.js → chunk-82jdnt03.js} +1 -1
  12. package/dist/{chunk-k98n1xwg.js → chunk-9mamc250.js} +1 -1
  13. package/dist/{chunk-66f2fv34.js → chunk-b634n0ts.js} +199 -199
  14. package/dist/{chunk-0mq1yd3k.js → chunk-btfxa4w8.js} +1 -1
  15. package/dist/chunk-d38t0wa2.js +6 -0
  16. package/dist/{chunk-mqezgpcw.js → chunk-e269454y.js} +1 -1
  17. package/dist/{chunk-fewpzx8s.js → chunk-e3qzedvj.js} +1 -1
  18. package/dist/{chunk-33wkt12h.js → chunk-f90v5vza.js} +1 -1
  19. package/dist/{chunk-amm31k3r.js → chunk-fr3kysfm.js} +1 -1
  20. package/dist/{chunk-c2sxy022.js → chunk-h9c7xec5.js} +1 -1
  21. package/dist/{chunk-tf9jmrwk.js → chunk-j3k3xdac.js} +1 -1
  22. package/dist/{chunk-b5btamzc.js → chunk-j7ebts5c.js} +1 -1
  23. package/dist/{chunk-z9ytq8tq.js → chunk-kk071ywk.js} +2 -2
  24. package/dist/{chunk-bbfeb6ry.js → chunk-kkpxmhjv.js} +3 -3
  25. package/dist/chunk-m3epqvpc.js +1 -0
  26. package/dist/{chunk-qv9xa4h1.js → chunk-m8jen593.js} +1 -1
  27. package/dist/{chunk-pamjbphm.js → chunk-mbrgz77y.js} +1 -1
  28. package/dist/{chunk-rfybbxab.js → chunk-n1byt26d.js} +1 -1
  29. package/dist/chunk-q9ghq6jw.js +204 -0
  30. package/dist/chunk-qs9wwe8d.js +9 -0
  31. package/dist/{chunk-q0c3fww1.js → chunk-qv1v32ts.js} +12 -12
  32. package/dist/{chunk-grt2wftd.js → chunk-rh5g6em4.js} +1 -1
  33. package/dist/{chunk-0yy41vwq.js → chunk-vx8a7e1j.js} +1 -1
  34. package/dist/{chunk-h45x1nem.js → chunk-x96czg8t.js} +1 -1
  35. package/dist/{chunk-fvfwmdp0.js → chunk-x9940mcy.js} +1 -1
  36. package/dist/{chunk-vz7hpwf0.js → chunk-xh2c6ycd.js} +1 -1
  37. package/dist/{chunk-v5q235ny.js → chunk-ze8rmhs1.js} +1 -1
  38. package/dist/web/assets/{ChatView-BtSSERlQ.js → ChatView-CjEyCR8V.js} +3 -3
  39. package/dist/web/assets/{CodeBlockHighlighter-CAuanOO0.js → CodeBlockHighlighter-DZxXrhQO.js} +1 -1
  40. package/dist/web/assets/{FilePreview-BKQ-EBj3.js → FilePreview-8fbolCzV.js} +1 -1
  41. package/dist/web/assets/{MarkdownRenderer-BdYjJ_NM.js → MarkdownRenderer-Bfm5TG2z.js} +3 -3
  42. package/dist/web/assets/{SettingsModal-CB6hM8fT.js → SettingsModal-KATzS3Iy.js} +1 -1
  43. package/dist/web/assets/{TaskSwitcher-sSD4B7C_.js → TaskSwitcher-BrfN6F0-.js} +1 -1
  44. package/dist/web/assets/{TerminalPanel-ZnEoQU6o.js → TerminalPanel-sbqhmFcK.js} +1 -1
  45. package/dist/web/assets/{index-DtOztVFd.js → index-xB4mFHWl.js} +3 -3
  46. package/dist/web/index.html +1 -1
  47. package/package.json +1 -1
  48. package/dist/chunk-5dt6199b.js +0 -1
  49. package/dist/chunk-5x26t0c4.js +0 -204
  50. package/dist/chunk-qgp7sqh2.js +0 -1
  51. package/dist/chunk-wxzsnptj.js +0 -6
  52. package/dist/chunk-zx8ktpc4.js +0 -9
package/dist/blade.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{Sc as W}from"./chunk-s0txchah.js";import{Vc as F,Wc as M}from"./chunk-d9gthet1.js";import"./chunk-pamjbphm.js";import"./chunk-v508x7cg.js";import"./chunk-6kc12pma.js";import"./chunk-qv9xa4h1.js";import"./chunk-s3zfyy7r.js";import"./chunk-0yy41vwq.js";import"./chunk-gdp6fg4e.js";import"./chunk-4qyhtrhx.js";import"./chunk-s6rdv601.js";import{Af as B,zf as N}from"./chunk-1ggxyyar.js";import{Df as T}from"./chunk-ekv4hpy8.js";import"./chunk-8gv6hsrf.js";import"./chunk-5m5nxkfs.js";import"./chunk-x1p5dmfv.js";import"./chunk-2d35rmyg.js";import"./chunk-d4327k1v.js";import"./chunk-heydawsf.js";import{hg as J}from"./chunk-37se34rx.js";import v from"node:path";var E=process.argv.slice(2),I=u(E),p=I!==null;if(I!==null)T.setGlobalDebug(I);function u(Q){for(let Y=0;Y<Q.length;Y+=1){let U=Q[Y];if(U==="--debug"||U==="-d"){let X=Q[Y+1];return X&&!X.startsWith("-")?X:!0}if(U.startsWith("--debug="))return U.slice(8)||!0}return null}function c(Q){return Q.length===1&&(Q[0]==="--version"||Q[0]==="-V")}function q(Q,...Y){return Q.some((U)=>Y.some((X)=>U===X||U.startsWith(`${X}=`)))}function m(Q,...Y){let U=[];for(let X=0;X<Q.length;X+=1){let G=Q[X],z=Y.find(($)=>G.startsWith(`${$}=`));if(z){let $=G.slice(z.length+1);if($)U.push($);continue}if(Y.includes(G)){let $=Q[X+1];if($&&!$.startsWith("-"))U.push($),X+=1}}return U}async function t(){if(c(E)){let{getVersion:K}=await import("./chunk-33wkt12h.js");console.log(K());return}let Q=process.cwd(),Y=F(Q);M(Y),N(B());let U=m(E,"--plugin-dir","--pluginDir");if(U.length>0){let{configureInvocationPluginDirs:K}=await import("./chunk-mqezgpcw.js");K(U.map((Z)=>v.resolve(Q,Z)))}if(q(E,"--trust-workspace","--trustWorkspace")){let{WorkspaceTrustService:K}=await import("./chunk-a5yd0c77.js");await K.getInstance().trust(B())}if(process.getuid&&process.getuid()===0){let K=!!process.env.SUDO_USER,Z=!!process.env.BLADE_ALLOW_ROOT;if(K&&!Z)console.error(""),console.error("Error: 请不要使用 sudo 运行 blade"),console.error(""),console.error("原因:"),console.error(" 使用 sudo 会创建属于 root 的配置文件,"),console.error(" 导致普通用户无法访问。"),console.error(""),console.error("正确用法:"),console.error(" blade # 直接运行,不要加 sudo"),console.error(""),console.error("如果遇到权限错误,请运行:"),console.error(" sudo chown -R $USER:$USER ~/.blade/"),console.error(""),console.error("如果你确实需要以 root 运行(容器/CI),设置环境变量:"),console.error(" BLADE_ALLOW_ROOT=1 blade"),console.error(""),process.exit(1)}if(q(E,"--headless")){let{handleHeadlessMode:K}=await import("./chunk-wxzsnptj.js");if(await K())return}if(W(),q(E,"--print","-p")){let{handlePrintMode:K}=await import("./chunk-zx8ktpc4.js");if(await K())return}if(E.includes("--acp")){let{runAcpIntegration:K}=await import("./chunk-q0c3fww1.js");await K();return}let[{default:X},{hideBin:G},{cliConfig:z,globalOptions:$},{loadConfiguration:_,validateOutput:D,validatePermissions:R},{doctorCommands:S},{installCommands:k},{mcpCommands:O},{projectsCommands:y},{scheduleCommands:b},{serveCommand:V},{updateCommands:P},{webCommand:x}]=await Promise.all([import("yargs"),import("yargs/helpers"),import("./chunk-qgp7sqh2.js"),import("./chunk-h45x1nem.js"),import("./chunk-z9ytq8tq.js"),import("./chunk-hdr8bcxt.js"),import("./chunk-amm31k3r.js"),import("./chunk-z5eaph4a.js"),import("./chunk-p6s92zj1.js"),import("./chunk-tf9jmrwk.js"),import("./chunk-b5btamzc.js"),import("./chunk-m9rg16w4.js")]),A=X(G(process.argv)).scriptName(z.scriptName).usage(z.usage).version(z.version).locale(z.locale).showHelpOnFail(z.showHelpOnFail).demandCommand(0,"").recommendCommands().strict(z.strict).parserConfiguration({"populate--":!0}).options($).middleware([_,R,D]).command(O).command(y).command(b).command(S).command(P).command(k).command(x).command(V).completion("completion",!1).help("help","Show help").alias("help","h").alias("version","V").fail((K,Z,L)=>{if(Z){if(console.error("An error occurred:"),console.error(Z.message),p&&Z.stack)console.error(`
2
+ import{Sc as W}from"./chunk-82jdnt03.js";import{Vc as F,Wc as M}from"./chunk-d9gthet1.js";import"./chunk-mbrgz77y.js";import"./chunk-v508x7cg.js";import"./chunk-6kc12pma.js";import"./chunk-m8jen593.js";import"./chunk-s3zfyy7r.js";import"./chunk-vx8a7e1j.js";import"./chunk-gdp6fg4e.js";import"./chunk-4qyhtrhx.js";import"./chunk-s6rdv601.js";import{Af as B,zf as N}from"./chunk-1ggxyyar.js";import{Df as T}from"./chunk-ekv4hpy8.js";import"./chunk-8gv6hsrf.js";import"./chunk-5m5nxkfs.js";import"./chunk-7e7zgzag.js";import"./chunk-2d35rmyg.js";import"./chunk-d4327k1v.js";import"./chunk-heydawsf.js";import{hg as J}from"./chunk-37se34rx.js";import v from"node:path";var E=process.argv.slice(2),I=u(E),p=I!==null;if(I!==null)T.setGlobalDebug(I);function u(Q){for(let Y=0;Y<Q.length;Y+=1){let U=Q[Y];if(U==="--debug"||U==="-d"){let X=Q[Y+1];return X&&!X.startsWith("-")?X:!0}if(U.startsWith("--debug="))return U.slice(8)||!0}return null}function c(Q){return Q.length===1&&(Q[0]==="--version"||Q[0]==="-V")}function q(Q,...Y){return Q.some((U)=>Y.some((X)=>U===X||U.startsWith(`${X}=`)))}function m(Q,...Y){let U=[];for(let X=0;X<Q.length;X+=1){let G=Q[X],z=Y.find(($)=>G.startsWith(`${$}=`));if(z){let $=G.slice(z.length+1);if($)U.push($);continue}if(Y.includes(G)){let $=Q[X+1];if($&&!$.startsWith("-"))U.push($),X+=1}}return U}async function t(){if(c(E)){let{getVersion:K}=await import("./chunk-f90v5vza.js");console.log(K());return}let Q=process.cwd(),Y=F(Q);M(Y),N(B());let U=m(E,"--plugin-dir","--pluginDir");if(U.length>0){let{configureInvocationPluginDirs:K}=await import("./chunk-e269454y.js");K(U.map((Z)=>v.resolve(Q,Z)))}if(q(E,"--trust-workspace","--trustWorkspace")){let{WorkspaceTrustService:K}=await import("./chunk-a5yd0c77.js");await K.getInstance().trust(B())}if(process.getuid&&process.getuid()===0){let K=!!process.env.SUDO_USER,Z=!!process.env.BLADE_ALLOW_ROOT;if(K&&!Z)console.error(""),console.error("Error: 请不要使用 sudo 运行 blade"),console.error(""),console.error("原因:"),console.error(" 使用 sudo 会创建属于 root 的配置文件,"),console.error(" 导致普通用户无法访问。"),console.error(""),console.error("正确用法:"),console.error(" blade # 直接运行,不要加 sudo"),console.error(""),console.error("如果遇到权限错误,请运行:"),console.error(" sudo chown -R $USER:$USER ~/.blade/"),console.error(""),console.error("如果你确实需要以 root 运行(容器/CI),设置环境变量:"),console.error(" BLADE_ALLOW_ROOT=1 blade"),console.error(""),process.exit(1)}if(q(E,"--headless")){let{handleHeadlessMode:K}=await import("./chunk-d38t0wa2.js");if(await K())return}if(W(),q(E,"--print","-p")){let{handlePrintMode:K}=await import("./chunk-qs9wwe8d.js");if(await K())return}if(E.includes("--acp")){let{runAcpIntegration:K}=await import("./chunk-qv1v32ts.js");await K();return}let[{default:X},{hideBin:G},{cliConfig:z,globalOptions:$},{loadConfiguration:_,validateOutput:D,validatePermissions:R},{doctorCommands:S},{installCommands:k},{mcpCommands:O},{projectsCommands:y},{scheduleCommands:b},{serveCommand:V},{updateCommands:P},{webCommand:x}]=await Promise.all([import("yargs"),import("yargs/helpers"),import("./chunk-m3epqvpc.js"),import("./chunk-x96czg8t.js"),import("./chunk-kk071ywk.js"),import("./chunk-hdr8bcxt.js"),import("./chunk-fr3kysfm.js"),import("./chunk-z5eaph4a.js"),import("./chunk-p6s92zj1.js"),import("./chunk-j3k3xdac.js"),import("./chunk-j7ebts5c.js"),import("./chunk-7brnbdq8.js")]),A=X(G(process.argv)).scriptName(z.scriptName).usage(z.usage).version(z.version).locale(z.locale).showHelpOnFail(z.showHelpOnFail).demandCommand(0,"").recommendCommands().strict(z.strict).parserConfiguration({"populate--":!0}).options($).middleware([_,R,D]).command(O).command(y).command(b).command(S).command(P).command(k).command(x).command(V).completion("completion",!1).help("help","Show help").alias("help","h").alias("version","V").fail((K,Z,L)=>{if(Z){if(console.error("An error occurred:"),console.error(Z.message),p&&Z.stack)console.error(`
3
3
  Stack trace:`),console.error(Z.stack);else console.error(`
4
4
  Run with --debug to show the stack trace.`);process.exit(1)}if(K)console.error("Error: Invalid arguments:"),console.error(K),console.error(`
5
- Hint: Did you mean:`),L.showHelp(),process.exit(1)}).command("$0",!1,()=>{},async(K)=>{let Z=K._.slice(1),L=Z.length>0?Z.join(" "):void 0,h=import("./chunk-5dt6199b.js").then(({checkVersionOnStartup:C})=>C()),[{render:w},{createElement:f},{AppWrapper:j}]=await Promise.all([import("ink"),import("react"),import("./chunk-bk649qwy.js")]),H={...K,initialMessage:L,debug:K.debug,print:Boolean(K.print),versionCheckPromise:h};delete H._,delete H.$0,delete H.message,w(f(j,H),{patchConsole:!0,exitOnCtrlC:!1,alternateBuffer:!1})});try{await A.parse()}catch(K){console.error("Error: Parse error:",K),process.exit(1)}}if(J.main==J.module)t().catch(console.error);export{t as main};
5
+ Hint: Did you mean:`),L.showHelp(),process.exit(1)}).command("$0",!1,()=>{},async(K)=>{let Z=K._.slice(1),L=Z.length>0?Z.join(" "):void 0,h=import("./chunk-2wdmt91f.js").then(({checkVersionOnStartup:C})=>C()),[{render:w},{createElement:f},{AppWrapper:j}]=await Promise.all([import("ink"),import("react"),import("./chunk-64hndcnj.js")]),H={...K,initialMessage:L,debug:K.debug,print:Boolean(K.print),versionCheckPromise:h};delete H._,delete H.$0,delete H.message,w(f(j,H),{patchConsole:!0,exitOnCtrlC:!1,alternateBuffer:!1})});try{await A.parse()}catch(K){console.error("Error: Parse error:",K),process.exit(1)}}if(J.main==J.module)t().catch(console.error);export{t as main};
@@ -1,4 +1,4 @@
1
- import{Pc as I}from"./chunk-48tz6s0s.js";import{gd as E}from"./chunk-pamjbphm.js";import{af as f,ff as y,gf as T,hf as w,if as M,lf as k,mf as N}from"./chunk-0yy41vwq.js";import{nf as c}from"./chunk-gdp6fg4e.js";import{of as S,qf as n,tf as m}from"./chunk-4qyhtrhx.js";import{yf as O}from"./chunk-1ggxyyar.js";import{Ef as h}from"./chunk-ekv4hpy8.js";import{promises as R}from"node:fs";import A from"node:path";var C=["systemPrompt","appendSystemPrompt","initialMessage","resumeSessionId","forkSession","allowedTools","disallowedTools","mcpConfigPaths","strictMcpConfig","model","addDirs","outputFormat","inputFormat","print","includePartialMessages","replayUserMessages","agentsConfig","settingSources"],U=new Set([...Object.keys(f),...C]),p=n.Number({exclusiveMinimum:0}),e=n.String({minLength:1}),r=n.Array(n.String()),B=n.Object({currentModelId:n.Optional(n.String()),modelProviders:n.Optional(n.Record(e,n.Object({name:e,baseUrl:e,wireApi:m(["openai-completions","anthropic-messages"]),apiKeyEnv:n.Optional(e)}))),models:n.Optional(n.Array(n.Object({id:e,displayName:n.Optional(e),provider:e,model:e,overrides:n.Optional(n.Object({baseUrl:n.Optional(n.String()),temperature:n.Optional(n.Number()),maxOutputTokens:n.Optional(p),timeout:n.Optional(p),streamIdleTimeout:n.Optional(n.Number({minimum:1000})),apiVersion:n.Optional(n.String()),customHeaders:n.Optional(n.Record(n.String(),n.String())),maxRetries:n.Optional(n.Integer({minimum:0})),enablePromptCaching:n.Optional(n.Boolean())})),fallbackModels:n.Optional(n.Array(n.Object({provider:e,model:e})))}))),temperature:n.Optional(n.Number()),maxOutputTokens:n.Optional(p),stream:n.Optional(n.Boolean()),topP:n.Optional(n.Number()),topK:n.Optional(n.Number()),timeout:n.Optional(p),codeTheme:n.Optional(n.String()),uiTheme:n.Optional(m(["light","dark","system"])),language:n.Optional(n.String()),fontSize:n.Optional(p),autoSaveSessions:n.Optional(n.Boolean()),notifyBuild:n.Optional(n.Boolean()),notifyErrors:n.Optional(n.Boolean()),notifySounds:n.Optional(n.Boolean()),privacyTelemetry:n.Optional(n.Boolean()),privacyCrash:n.Optional(n.Boolean()),debug:n.Optional(n.Union([n.Boolean(),n.String()])),mcpEnabled:n.Optional(n.Boolean()),mcpServers:n.Optional(n.Record(n.String(),n.Record(n.String(),n.Unknown()))),lspServers:n.Optional(n.Record(e,n.Object({command:e,args:n.Optional(n.Array(n.String())),extensionToLanguage:n.Record(e,e),env:n.Optional(n.Record(n.String(),n.String())),initializationOptions:n.Optional(n.Unknown()),settings:n.Optional(n.Unknown()),enabled:n.Optional(n.Boolean()),priority:n.Optional(n.Integer()),startupTimeout:n.Optional(n.Integer({minimum:100})),shutdownTimeout:n.Optional(n.Integer({minimum:100})),requestTimeout:n.Optional(n.Integer({minimum:100})),diagnosticWaitTimeout:n.Optional(n.Integer({minimum:0})),maxRestarts:n.Optional(n.Integer({minimum:0,maximum:10}))}))),permissionMode:n.Optional(n.Enum(c)),maxTurns:n.Optional(n.Integer({minimum:-1})),maxConcurrentTasks:n.Optional(n.Integer({minimum:y,maximum:T})),maxQueuedTasks:n.Optional(n.Integer({minimum:w,maximum:M})),systemPrompt:n.Optional(n.String()),appendSystemPrompt:n.Optional(n.String()),initialMessage:n.Optional(n.String()),resumeSessionId:n.Optional(n.String()),forkSession:n.Optional(n.Boolean()),allowedTools:n.Optional(n.Array(e)),disallowedTools:n.Optional(n.Array(e)),mcpConfigPaths:n.Optional(n.Array(e)),strictMcpConfig:n.Optional(n.Boolean()),model:n.Optional(e),addDirs:n.Optional(n.Array(e)),outputFormat:n.Optional(m(["text","json","stream-json","jsonl"])),inputFormat:n.Optional(m(["text","stream-json"])),print:n.Optional(n.Boolean()),includePartialMessages:n.Optional(n.Boolean()),replayUserMessages:n.Optional(n.Boolean()),agentsConfig:n.Optional(n.String()),settingSources:n.Optional(n.String()),permissions:n.Optional(n.Object({allow:n.Optional(r),ask:n.Optional(r),deny:n.Optional(r)})),env:n.Optional(n.Record(n.String(),n.String())),hooks:n.Optional(n.Record(n.String(),n.Unknown())),enabledPlugins:n.Optional(n.Record(e,n.Boolean())),pluginSourcePolicy:n.Optional(n.Object({restrictToAllowedSources:n.Optional(n.Boolean()),requireGitCommitSha:n.Optional(n.Boolean()),allowedGitHosts:n.Optional(n.Array(e)),allowedMarketplaces:n.Optional(n.Array(e)),allowedLocalRoots:n.Optional(n.Array(e))})),disableAllHooks:n.Optional(n.Boolean())}),x=[["systemPrompt","systemPrompt"],["appendSystemPrompt","appendSystemPrompt"],["initialMessage","initialMessage"],["resumeSessionId","sessionId"],["forkSession","forkSession"],["allowedTools","allowedTools"],["disallowedTools","disallowedTools"],["mcpConfigPaths","mcpConfig"],["strictMcpConfig","strictMcpConfig"],["model","model"],["addDirs","addDir"],["outputFormat","outputFormat"],["inputFormat","inputFormat"],["print","print"],["includePartialMessages","includePartialMessages"],["replayUserMessages","replayUserMessages"],["agentsConfig","agents"],["settingSources","settingSources"],["permissionMode","permissionMode"],["maxTurns","maxTurns"],["maxConcurrentTasks","maxConcurrentTasks"],["maxQueuedTasks","maxQueuedTasks"]];function d(o,i){let t;try{t=JSON.parse(o)}catch(s){let a=s instanceof Error?`: ${s.message}`:"";throw Error(`Invalid JSON provided to --settings (${i})${a}`)}if(!t||typeof t!=="object"||Array.isArray(t))throw Error("--settings must contain a JSON object");for(let s of Object.keys(t))if(!U.has(s))throw Error(`Unknown --settings field: ${s}`);let l=S(B,t);if(!l.success){let s=l.error.issues.map((a)=>`${a.path.join(".")||"settings"}: ${a.message}`).join("; ");throw Error(`Invalid --settings value: ${s}`)}return l.data}async function P(o){if(o===void 0)return;let i=o.trim();if(!i)throw Error("--settings requires a JSON object or file path");if(i.startsWith("{"))return d(i,"inline JSON");let t=A.resolve(O(),i),l;try{l=await R.readFile(t,"utf8")}catch(s){let a=s instanceof Error?`: ${s.message}`:"";throw Error(`Unable to read --settings file ${t}${a}`)}return d(l,t)}function b(o,i){if(!i)return;let t=i;for(let[l,s]of x){if(l==="permissionMode"&&o.yolo===!0)continue;if(o[s]===void 0&&t[l]!==void 0)o[s]=t[l]}}var u=h("General"),V=(o)=>{if(o.yolo){if(o.permissionMode&&o.permissionMode!=="yolo")throw Error("Cannot use both --yolo and --permission-mode with different values");o.permissionMode="yolo"}if(Array.isArray(o.allowedTools))o.allowedTools=o.allowedTools.flatMap((i)=>i.split(",").map((t)=>t.trim()).filter((t)=>t.length>0));if(Array.isArray(o.disallowedTools))o.disallowedTools=o.disallowedTools.flatMap((i)=>i.split(",").map((t)=>t.trim()).filter((t)=>t.length>0));if(Array.isArray(o.allowedTools)&&Array.isArray(o.disallowedTools)){let i=o.allowedTools.filter((t)=>o.disallowedTools.includes(t));if(i.length>0)throw Error(`Tools cannot be both allowed and disallowed: ${i.join(", ")}`)}},Y=async(o)=>{let i=await P(typeof o.settings==="string"?o.settings:void 0);if(b(o,i),typeof o.agents==="string")I(o.agents);F(o);try{let l=await k.getInstance().initialize(i),s=N(l,o);if(E().config.actions.setConfig(s),o.debug)u.info("[CLI] 配置已加载到 Store")}catch(t){u.error("[CLI] [FAIL] 配置初始化失败",t instanceof Error?t.message:t),console.error(`
1
+ import{Pc as I}from"./chunk-48tz6s0s.js";import{gd as E}from"./chunk-mbrgz77y.js";import{af as f,ff as y,gf as T,hf as w,if as M,lf as k,mf as N}from"./chunk-vx8a7e1j.js";import{nf as c}from"./chunk-gdp6fg4e.js";import{of as S,qf as n,tf as m}from"./chunk-4qyhtrhx.js";import{yf as O}from"./chunk-1ggxyyar.js";import{Ef as h}from"./chunk-ekv4hpy8.js";import{promises as R}from"node:fs";import A from"node:path";var C=["systemPrompt","appendSystemPrompt","initialMessage","resumeSessionId","forkSession","allowedTools","disallowedTools","mcpConfigPaths","strictMcpConfig","model","addDirs","outputFormat","inputFormat","print","includePartialMessages","replayUserMessages","agentsConfig","settingSources"],U=new Set([...Object.keys(f),...C]),p=n.Number({exclusiveMinimum:0}),e=n.String({minLength:1}),r=n.Array(n.String()),B=n.Object({currentModelId:n.Optional(n.String()),modelProviders:n.Optional(n.Record(e,n.Object({name:e,baseUrl:e,wireApi:m(["openai-completions","anthropic-messages"]),apiKeyEnv:n.Optional(e)}))),models:n.Optional(n.Array(n.Object({id:e,displayName:n.Optional(e),provider:e,model:e,overrides:n.Optional(n.Object({baseUrl:n.Optional(n.String()),temperature:n.Optional(n.Number()),maxOutputTokens:n.Optional(p),timeout:n.Optional(p),streamIdleTimeout:n.Optional(n.Number({minimum:1000})),apiVersion:n.Optional(n.String()),customHeaders:n.Optional(n.Record(n.String(),n.String())),maxRetries:n.Optional(n.Integer({minimum:0})),enablePromptCaching:n.Optional(n.Boolean())})),fallbackModels:n.Optional(n.Array(n.Object({provider:e,model:e})))}))),temperature:n.Optional(n.Number()),maxOutputTokens:n.Optional(p),stream:n.Optional(n.Boolean()),topP:n.Optional(n.Number()),topK:n.Optional(n.Number()),timeout:n.Optional(p),codeTheme:n.Optional(n.String()),uiTheme:n.Optional(m(["light","dark","system"])),language:n.Optional(n.String()),fontSize:n.Optional(p),autoSaveSessions:n.Optional(n.Boolean()),notifyBuild:n.Optional(n.Boolean()),notifyErrors:n.Optional(n.Boolean()),notifySounds:n.Optional(n.Boolean()),privacyTelemetry:n.Optional(n.Boolean()),privacyCrash:n.Optional(n.Boolean()),debug:n.Optional(n.Union([n.Boolean(),n.String()])),mcpEnabled:n.Optional(n.Boolean()),mcpServers:n.Optional(n.Record(n.String(),n.Record(n.String(),n.Unknown()))),lspServers:n.Optional(n.Record(e,n.Object({command:e,args:n.Optional(n.Array(n.String())),extensionToLanguage:n.Record(e,e),env:n.Optional(n.Record(n.String(),n.String())),initializationOptions:n.Optional(n.Unknown()),settings:n.Optional(n.Unknown()),enabled:n.Optional(n.Boolean()),priority:n.Optional(n.Integer()),startupTimeout:n.Optional(n.Integer({minimum:100})),shutdownTimeout:n.Optional(n.Integer({minimum:100})),requestTimeout:n.Optional(n.Integer({minimum:100})),diagnosticWaitTimeout:n.Optional(n.Integer({minimum:0})),maxRestarts:n.Optional(n.Integer({minimum:0,maximum:10}))}))),permissionMode:n.Optional(n.Enum(c)),maxTurns:n.Optional(n.Integer({minimum:-1})),maxConcurrentTasks:n.Optional(n.Integer({minimum:y,maximum:T})),maxQueuedTasks:n.Optional(n.Integer({minimum:w,maximum:M})),systemPrompt:n.Optional(n.String()),appendSystemPrompt:n.Optional(n.String()),initialMessage:n.Optional(n.String()),resumeSessionId:n.Optional(n.String()),forkSession:n.Optional(n.Boolean()),allowedTools:n.Optional(n.Array(e)),disallowedTools:n.Optional(n.Array(e)),mcpConfigPaths:n.Optional(n.Array(e)),strictMcpConfig:n.Optional(n.Boolean()),model:n.Optional(e),addDirs:n.Optional(n.Array(e)),outputFormat:n.Optional(m(["text","json","stream-json","jsonl"])),inputFormat:n.Optional(m(["text","stream-json"])),print:n.Optional(n.Boolean()),includePartialMessages:n.Optional(n.Boolean()),replayUserMessages:n.Optional(n.Boolean()),agentsConfig:n.Optional(n.String()),settingSources:n.Optional(n.String()),permissions:n.Optional(n.Object({allow:n.Optional(r),ask:n.Optional(r),deny:n.Optional(r)})),env:n.Optional(n.Record(n.String(),n.String())),hooks:n.Optional(n.Record(n.String(),n.Unknown())),enabledPlugins:n.Optional(n.Record(e,n.Boolean())),pluginSourcePolicy:n.Optional(n.Object({restrictToAllowedSources:n.Optional(n.Boolean()),requireGitCommitSha:n.Optional(n.Boolean()),allowedGitHosts:n.Optional(n.Array(e)),allowedMarketplaces:n.Optional(n.Array(e)),allowedLocalRoots:n.Optional(n.Array(e))})),disableAllHooks:n.Optional(n.Boolean())}),x=[["systemPrompt","systemPrompt"],["appendSystemPrompt","appendSystemPrompt"],["initialMessage","initialMessage"],["resumeSessionId","sessionId"],["forkSession","forkSession"],["allowedTools","allowedTools"],["disallowedTools","disallowedTools"],["mcpConfigPaths","mcpConfig"],["strictMcpConfig","strictMcpConfig"],["model","model"],["addDirs","addDir"],["outputFormat","outputFormat"],["inputFormat","inputFormat"],["print","print"],["includePartialMessages","includePartialMessages"],["replayUserMessages","replayUserMessages"],["agentsConfig","agents"],["settingSources","settingSources"],["permissionMode","permissionMode"],["maxTurns","maxTurns"],["maxConcurrentTasks","maxConcurrentTasks"],["maxQueuedTasks","maxQueuedTasks"]];function d(o,i){let t;try{t=JSON.parse(o)}catch(s){let a=s instanceof Error?`: ${s.message}`:"";throw Error(`Invalid JSON provided to --settings (${i})${a}`)}if(!t||typeof t!=="object"||Array.isArray(t))throw Error("--settings must contain a JSON object");for(let s of Object.keys(t))if(!U.has(s))throw Error(`Unknown --settings field: ${s}`);let l=S(B,t);if(!l.success){let s=l.error.issues.map((a)=>`${a.path.join(".")||"settings"}: ${a.message}`).join("; ");throw Error(`Invalid --settings value: ${s}`)}return l.data}async function P(o){if(o===void 0)return;let i=o.trim();if(!i)throw Error("--settings requires a JSON object or file path");if(i.startsWith("{"))return d(i,"inline JSON");let t=A.resolve(O(),i),l;try{l=await R.readFile(t,"utf8")}catch(s){let a=s instanceof Error?`: ${s.message}`:"";throw Error(`Unable to read --settings file ${t}${a}`)}return d(l,t)}function b(o,i){if(!i)return;let t=i;for(let[l,s]of x){if(l==="permissionMode"&&o.yolo===!0)continue;if(o[s]===void 0&&t[l]!==void 0)o[s]=t[l]}}var u=h("General"),V=(o)=>{if(o.yolo){if(o.permissionMode&&o.permissionMode!=="yolo")throw Error("Cannot use both --yolo and --permission-mode with different values");o.permissionMode="yolo"}if(Array.isArray(o.allowedTools))o.allowedTools=o.allowedTools.flatMap((i)=>i.split(",").map((t)=>t.trim()).filter((t)=>t.length>0));if(Array.isArray(o.disallowedTools))o.disallowedTools=o.disallowedTools.flatMap((i)=>i.split(",").map((t)=>t.trim()).filter((t)=>t.length>0));if(Array.isArray(o.allowedTools)&&Array.isArray(o.disallowedTools)){let i=o.allowedTools.filter((t)=>o.disallowedTools.includes(t));if(i.length>0)throw Error(`Tools cannot be both allowed and disallowed: ${i.join(", ")}`)}},Y=async(o)=>{let i=await P(typeof o.settings==="string"?o.settings:void 0);if(b(o,i),typeof o.agents==="string")I(o.agents);F(o);try{let l=await k.getInstance().initialize(i),s=N(l,o);if(E().config.actions.setConfig(s),o.debug)u.info("[CLI] 配置已加载到 Store")}catch(t){u.error("[CLI] [FAIL] 配置初始化失败",t instanceof Error?t.message:t),console.error(`
2
2
  [FAIL] 配置初始化失败
3
3
  `),console.error("原因:",t instanceof Error?t.message:"未知错误"),console.error(`
4
4
  请检查:`),console.error(" 1. 配置文件格式是否正确 (~/.blade/config.json)"),console.error(" 2. 是否需要运行 blade 进行首次配置"),console.error(` 3. 配置文件权限是否正确
@@ -1,4 +1,4 @@
1
- import{rb as Xt,sb as bn,tb as Tn,ub as fn}from"./chunk-ej1z75jf.js";import{rc as jt}from"./chunk-4djps7bz.js";import{ue as Bt}from"./chunk-qv9xa4h1.js";import{Ae as tn,Be as en,Ce as zt,De as U,Ee as rn,Fe as gt,Ge as mt,Ie as dn,Je as En,Ke as B,Le as on,Me as pn,Ne as un,Oe as lt,Pe as cn,Qe as Mn,Re as wn,Te as S,We as yn,Xe as Ht,Ye as Ut,Ze as R,_e as qt,ze as xt}from"./chunk-0yy41vwq.js";import{of as X,qf as x}from"./chunk-4qyhtrhx.js";import{Af as vt}from"./chunk-1ggxyyar.js";import{Sf as nn,Tf as sn}from"./chunk-x1p5dmfv.js";import{hg as ss}from"./chunk-37se34rx.js";import{EventEmitter as hs}from"events";import Bn from"node:path";function An(t){if(t===void 0)return"undefined";if(typeof t==="string")return t;try{let i=JSON.stringify(t);return i===void 0?String(t):i}catch{return String(t)}}function _n(t){let i=t;switch(t.code){case"type":return`类型错误:${t.message}`;case"required":return"缺少必需参数";case"minLength":return`字符串过短:${t.message}`;case"maxLength":return`字符串过长:${t.message}`;case"minimum":case"exclusiveMinimum":return`数值太小:${t.message}`;case"maximum":case"exclusiveMaximum":return`数值太大:${t.message}`;case"minItems":return`数组元素过少:${t.message}`;case"maxItems":return`数组元素过多:${t.message}`;case"format":return`格式错误:${t.message}`;case"enum":return`必须是枚举允许的值之一:${t.message}`;case"const":return`必须是指定的字面量值:${t.message}`;case"additionalProperties":case"unevaluatedProperties":return`包含未知参数:${t.message}`;case"anyOf":case"oneOf":return"不符合任何有效的类型定义";case"~refine":return t.message||"自定义验证失败";default:return t.message||`验证失败:${An(i)}`}}class Jt extends Error{issues;type;constructor(t,i,n="validation_error"){super(t);this.issues=i;this.type=n;this.name="ToolValidationError"}}function Vt(t,i){let n=X(t,i);if(n.success)return n.data;let s=n.error.issues.map((r)=>({field:r.path.length>0?r.path.join("."):"root",message:_n(r),value:r.value})),e=s.length===1?`参数验证失败 [${s[0].field}]: ${s[0].message}`:`参数验证失败 (${s.length} 个错误):
1
+ import{rb as Xt,sb as bn,tb as Tn,ub as fn}from"./chunk-ej1z75jf.js";import{rc as jt}from"./chunk-4djps7bz.js";import{ue as Bt}from"./chunk-m8jen593.js";import{Ae as tn,Be as en,Ce as zt,De as U,Ee as rn,Fe as gt,Ge as mt,Ie as dn,Je as En,Ke as B,Le as on,Me as pn,Ne as un,Oe as lt,Pe as cn,Qe as Mn,Re as wn,Te as S,We as yn,Xe as Ht,Ye as Ut,Ze as R,_e as qt,ze as xt}from"./chunk-vx8a7e1j.js";import{of as X,qf as x}from"./chunk-4qyhtrhx.js";import{Af as vt}from"./chunk-1ggxyyar.js";import{Sf as nn,Tf as sn}from"./chunk-7e7zgzag.js";import{hg as ss}from"./chunk-37se34rx.js";import{EventEmitter as hs}from"events";import Bn from"node:path";function An(t){if(t===void 0)return"undefined";if(typeof t==="string")return t;try{let i=JSON.stringify(t);return i===void 0?String(t):i}catch{return String(t)}}function _n(t){let i=t;switch(t.code){case"type":return`类型错误:${t.message}`;case"required":return"缺少必需参数";case"minLength":return`字符串过短:${t.message}`;case"maxLength":return`字符串过长:${t.message}`;case"minimum":case"exclusiveMinimum":return`数值太小:${t.message}`;case"maximum":case"exclusiveMaximum":return`数值太大:${t.message}`;case"minItems":return`数组元素过少:${t.message}`;case"maxItems":return`数组元素过多:${t.message}`;case"format":return`格式错误:${t.message}`;case"enum":return`必须是枚举允许的值之一:${t.message}`;case"const":return`必须是指定的字面量值:${t.message}`;case"additionalProperties":case"unevaluatedProperties":return`包含未知参数:${t.message}`;case"anyOf":case"oneOf":return"不符合任何有效的类型定义";case"~refine":return t.message||"自定义验证失败";default:return t.message||`验证失败:${An(i)}`}}class Jt extends Error{issues;type;constructor(t,i,n="validation_error"){super(t);this.issues=i;this.type=n;this.name="ToolValidationError"}}function Vt(t,i){let n=X(t,i);if(n.success)return n.data;let s=n.error.issues.map((r)=>({field:r.path.length>0?r.path.join("."):"root",message:_n(r),value:r.value})),e=s.length===1?`参数验证失败 [${s[0].field}]: ${s[0].message}`:`参数验证失败 (${s.length} 个错误):
2
2
  ${s.map((r)=>` - ${r.field}: ${r.message}`).join(`
3
3
  `)}`;throw new Jt(e,s)}function st(t){if(!t||typeof t!=="object")return;let i=t;if(i.type==="object"&&i.properties)i.required??=[],i.additionalProperties??=!1;for(let n of Object.values(i))if(Array.isArray(n))for(let s of n)st(s);else st(n)}function et(t){let i=JSON.parse(JSON.stringify(t,(n,s)=>n.startsWith("~")?void 0:s));return st(i),i}class rt{toolName;params;executeFn;descriptionFn;affectedPathsFn;constructor(t,i,n,s,e){this.toolName=t;this.params=i;this.executeFn=n;this.descriptionFn=s;this.affectedPathsFn=e}getDescription(){if(this.descriptionFn)return this.descriptionFn(this.params);return`执行工具: ${this.toolName}`}getAffectedPaths(){if(this.affectedPathsFn)return this.affectedPathsFn(this.params);return[]}async execute(t,i,n){let s={signal:t,updateOutput:i,...n};return this.executeFn(this.params,s)}}function Gt(t){return{name:t.name,displayName:t.displayName,kind:t.kind,isReadOnly:t.isReadOnly??jt(t.kind),isConcurrencySafe:t.isConcurrencySafe??!1,parallelism:t.parallelism??(t.isConcurrencySafe?"shared":"exclusive"),strict:t.strict??!1,description:t.description,version:t.version||"1.0.0",category:t.category,tags:t.tags||[],getFunctionDeclaration(){let i=et(t.schema),n=t.description.short;if(t.description.long)n+=`
4
4
 
@@ -0,0 +1 @@
1
+ import{a,b,c,d,e}from"./chunk-6h9d9ykg.js";import"./chunk-7e7zgzag.js";import"./chunk-37se34rx.js";export{b as setSkipUntilVersion,d as performUpgrade,c as getUpgradeCommand,e as checkVersionOnStartup,a as checkVersion};
@@ -1 +1 @@
1
- import{ic as a,jc as b,kc as c,lc as d,mc as e,nc as f,oc as g}from"./chunk-fvfwmdp0.js";import"./chunk-4djps7bz.js";import"./chunk-rezjy4mp.js";import"./chunk-vz0zsct0.js";import"./chunk-9pww3s5m.js";import"./chunk-s3zfyy7r.js";import"./chunk-s6rdv601.js";import"./chunk-1ggxyyar.js";import"./chunk-ekv4hpy8.js";import"./chunk-5m5nxkfs.js";import"./chunk-x1p5dmfv.js";import"./chunk-heydawsf.js";import"./chunk-37se34rx.js";export{b as __setSessionSnapshotIOForTesting,c as __resetSessionSnapshotIOForTesting,g as SessionService,d as SessionMissingCreationError,e as SessionArchivedError,f as SessionArchiveConflictError,a as STALE_EMPTY_SESSION_AGE_MS};
1
+ import{ic as a,jc as b,kc as c,lc as d,mc as e,nc as f,oc as g}from"./chunk-x9940mcy.js";import"./chunk-4djps7bz.js";import"./chunk-rezjy4mp.js";import"./chunk-vz0zsct0.js";import"./chunk-9pww3s5m.js";import"./chunk-s3zfyy7r.js";import"./chunk-s6rdv601.js";import"./chunk-1ggxyyar.js";import"./chunk-ekv4hpy8.js";import"./chunk-5m5nxkfs.js";import"./chunk-7e7zgzag.js";import"./chunk-heydawsf.js";import"./chunk-37se34rx.js";export{b as __setSessionSnapshotIOForTesting,c as __resetSessionSnapshotIOForTesting,g as SessionService,d as SessionMissingCreationError,e as SessionArchivedError,f as SessionArchiveConflictError,a as STALE_EMPTY_SESSION_AGE_MS};
@@ -1 +1 @@
1
- import{fd as a,gd as b,hd as c,id as d,jd as e,kd as f,ld as g,md as h,nd as i,od as j,pd as k,qd as l,rd as m,sd as n,td as o,ud as p,vd as q}from"./chunk-pamjbphm.js";import"./chunk-v508x7cg.js";import"./chunk-6kc12pma.js";import"./chunk-0yy41vwq.js";import"./chunk-gdp6fg4e.js";import"./chunk-4qyhtrhx.js";import"./chunk-s6rdv601.js";import"./chunk-1ggxyyar.js";import"./chunk-ekv4hpy8.js";import"./chunk-8gv6hsrf.js";import"./chunk-5m5nxkfs.js";import"./chunk-x1p5dmfv.js";import"./chunk-2d35rmyg.js";import"./chunk-d4327k1v.js";import"./chunk-heydawsf.js";import"./chunk-37se34rx.js";export{a as vanillaStore,c as sessionActions,l as getThinkingModeEnabled,b as getState,n as getServiceTier,o as getResponseVerbosity,m as getReasoningEffort,j as getModelById,e as getMessages,k as getMcpServers,i as getCurrentModel,f as getConfig,p as getCommunicationStyle,h as getAllModels,g as ensureStoreInitialized,q as configActions,d as appActions};
1
+ import{fd as a,gd as b,hd as c,id as d,jd as e,kd as f,ld as g,md as h,nd as i,od as j,pd as k,qd as l,rd as m,sd as n,td as o,ud as p,vd as q}from"./chunk-mbrgz77y.js";import"./chunk-v508x7cg.js";import"./chunk-6kc12pma.js";import"./chunk-vx8a7e1j.js";import"./chunk-gdp6fg4e.js";import"./chunk-4qyhtrhx.js";import"./chunk-s6rdv601.js";import"./chunk-1ggxyyar.js";import"./chunk-ekv4hpy8.js";import"./chunk-8gv6hsrf.js";import"./chunk-5m5nxkfs.js";import"./chunk-7e7zgzag.js";import"./chunk-2d35rmyg.js";import"./chunk-d4327k1v.js";import"./chunk-heydawsf.js";import"./chunk-37se34rx.js";export{a as vanillaStore,c as sessionActions,l as getThinkingModeEnabled,b as getState,n as getServiceTier,o as getResponseVerbosity,m as getReasoningEffort,j as getModelById,e as getMessages,k as getMcpServers,i as getCurrentModel,f as getConfig,p as getCommunicationStyle,h as getAllModels,g as ensureStoreInitialized,q as configActions,d as appActions};