blade-code 0.10.85 → 0.10.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/blade.js +2 -2
- package/dist/chunk-029q49wd.js +1691 -0
- package/dist/{chunk-y8fswz6h.js → chunk-07hn8br0.js} +38 -38
- package/dist/{chunk-rg3bvddy.js → chunk-0mrh85yz.js} +1 -1
- package/dist/chunk-12e2yj9p.js +2 -0
- package/dist/chunk-17s7gvqm.js +1 -0
- package/dist/{chunk-ff5y1ba2.js → chunk-1ajybpd8.js} +1 -1
- package/dist/{chunk-sb84vdcf.js → chunk-1g5s5vf3.js} +1 -1
- package/dist/{chunk-shr5cg46.js → chunk-1mb2y0e0.js} +2 -2
- package/dist/{chunk-hjr9r44k.js → chunk-33g68zy1.js} +1 -1
- package/dist/{chunk-jw8zwqyg.js → chunk-37x3xyqk.js} +2 -2
- package/dist/{chunk-g9xjcfrf.js → chunk-3aejg2jy.js} +1 -1
- package/dist/{chunk-21rjwgc2.js → chunk-3dsggcwt.js} +2 -2
- package/dist/{chunk-sk8h4m9m.js → chunk-45a1tsk1.js} +1 -1
- package/dist/chunk-4amesx3y.js +8 -0
- package/dist/{chunk-hm782j80.js → chunk-51rayzy2.js} +3 -3
- package/dist/chunk-6gnerzt5.js +1 -0
- package/dist/{chunk-99h419nm.js → chunk-78cjfm2t.js} +2 -2
- package/dist/{chunk-1gv7095w.js → chunk-78x3z8cf.js} +1 -1
- package/dist/{chunk-m5f934fh.js → chunk-7a8j14gg.js} +1 -1
- package/dist/{chunk-r8wbvxn7.js → chunk-7avnhnjn.js} +1 -1
- package/dist/chunk-85s1nyaz.js +1 -0
- package/dist/{chunk-83caxxbt.js → chunk-8mee32xq.js} +1 -1
- package/dist/{chunk-1q3z3ryy.js → chunk-8wp4px6b.js} +1 -1
- package/dist/chunk-943vkrwc.js +2 -0
- package/dist/{chunk-mhq9p8mm.js → chunk-9ap72kq4.js} +2 -2
- package/dist/chunk-9fxvqbve.js +1 -0
- package/dist/{chunk-0nsrw84g.js → chunk-9zaxwfa5.js} +1 -1
- package/dist/chunk-am6pzb5h.js +1 -0
- package/dist/{chunk-jf4bxxyf.js → chunk-anpph83s.js} +1 -1
- package/dist/chunk-azpkmttg.js +118 -0
- package/dist/{chunk-1jyr0t4q.js → chunk-b7k56qfy.js} +1 -1
- package/dist/{chunk-rwvaapta.js → chunk-bvp5wpz8.js} +2 -2
- package/dist/{chunk-272swnyr.js → chunk-ckqz2btx.js} +1 -1
- package/dist/chunk-d1m21wr4.js +1 -0
- package/dist/{chunk-sr4zv59p.js → chunk-d83meq4k.js} +1 -1
- package/dist/{chunk-skg520wq.js → chunk-dm1knbf8.js} +2 -2
- package/dist/{chunk-d7v34g3f.js → chunk-dp72xx4j.js} +2 -2
- package/dist/{chunk-ax95qw8w.js → chunk-dtq9t14j.js} +2 -2
- package/dist/{chunk-tpxs85cg.js → chunk-f7p7tzx2.js} +2 -2
- package/dist/chunk-hgzs14b2.js +1 -0
- package/dist/chunk-hj41cbd6.js +1 -0
- package/dist/{chunk-ffa6hhee.js → chunk-hkh2nsam.js} +2 -2
- package/dist/{chunk-knwa4gmn.js → chunk-k1t91vp3.js} +2 -2
- package/dist/chunk-kbgsbq7k.js +1 -0
- package/dist/{chunk-bvzzq0jb.js → chunk-kpmaxt15.js} +1 -1
- package/dist/{chunk-c7sx7pa4.js → chunk-kvw91990.js} +2 -2
- package/dist/{chunk-h1gapq0a.js → chunk-kz40nxhm.js} +2 -2
- package/dist/{chunk-7md9r31q.js → chunk-m3xycm44.js} +1 -1
- package/dist/{chunk-6jsmac0q.js → chunk-m5hnyxf3.js} +1 -1
- package/dist/{chunk-jndq361v.js → chunk-mh92e9gy.js} +1 -1
- package/dist/{chunk-7m5q8vxf.js → chunk-ne5w9ds8.js} +1 -1
- package/dist/{chunk-htt5c847.js → chunk-pknksqe8.js} +2 -2
- package/dist/{chunk-ww51801m.js → chunk-q15sm6vj.js} +1 -1
- package/dist/chunk-q2t49c64.js +1 -0
- package/dist/{chunk-44dzrn0p.js → chunk-q8jfwyr4.js} +1 -1
- package/dist/{chunk-7wjqw574.js → chunk-qrsxw68t.js} +1 -1
- package/dist/chunk-qsxt9ejm.js +1 -0
- package/dist/{chunk-r77pcb0f.js → chunk-r2nzt9jm.js} +2 -2
- package/dist/{chunk-01zar8q6.js → chunk-rj49h1x1.js} +2 -2
- package/dist/chunk-rjbxqscc.js +1 -0
- package/dist/{chunk-e1ry8aj5.js → chunk-rm8w0qg7.js} +1 -1
- package/dist/{chunk-t1633e8m.js → chunk-rxjyc6ff.js} +2 -2
- package/dist/chunk-t9xtxg1a.js +1 -0
- package/dist/{chunk-7rfhmbqw.js → chunk-tc1001nx.js} +1 -1
- package/dist/{chunk-0q5bz3nm.js → chunk-vyk5nxsz.js} +2 -2
- package/dist/{chunk-72th07qj.js → chunk-w2tcjj0w.js} +1 -1
- package/dist/chunk-wattrxqd.js +1 -0
- package/dist/{chunk-9ye1s8tj.js → chunk-wyk6yc02.js} +2 -2
- package/dist/{chunk-fv8b98tz.js → chunk-x079eg84.js} +2 -2
- package/dist/{chunk-d2pwwdab.js → chunk-xhhgpbzs.js} +1 -1
- package/dist/chunk-xn8kfrry.js +10 -0
- package/dist/chunk-xxk5d2v6.js +2 -0
- package/dist/{chunk-b2p9qm6j.js → chunk-y7dtdwqx.js} +2 -2
- package/dist/chunk-yv1p4bcd.js +1 -0
- package/dist/web/assets/ChatView-juDcmnHV.js +18 -0
- package/dist/web/assets/{CodeBlockHighlighter-DeJNC14V.js → CodeBlockHighlighter-BR4c98oZ.js} +1 -1
- package/dist/web/assets/FilePreview-DKgh-Chb.js +8 -0
- package/dist/web/assets/{KanbanBoard-DvHAwhcw.js → KanbanBoard-CQU0UQP8.js} +1 -1
- package/dist/web/assets/{MarkdownRenderer-BY51R1Fj.js → MarkdownRenderer-BVPIxk31.js} +3 -3
- package/dist/web/assets/{SettingsModal-CZGKcV1S.js → SettingsModal-CuUrUdWR.js} +1 -1
- package/dist/web/assets/{TaskSwitcher-DgeqVRAB.js → TaskSwitcher-DB7by2ch.js} +1 -1
- package/dist/web/assets/{TerminalPanel-KOLgH_tg.js → TerminalPanel-BN9ftZUH.js} +1 -1
- package/dist/web/assets/index-BdnOTMNi.css +1 -0
- package/dist/web/assets/index-ebnhtfFC.js +11 -0
- package/dist/web/assets/{teamService-Bxs4R7Al.js → teamService-CFKFv0qS.js} +1 -1
- package/dist/web/assets/{vendor-icons-DovdPN7M.js → vendor-icons-CX5BfgqQ.js} +1 -1
- package/dist/web/index.html +3 -3
- package/package.json +2 -2
- package/dist/chunk-1khv7fp2.js +0 -1
- package/dist/chunk-7jp7e0zj.js +0 -1
- package/dist/chunk-7ne59gra.js +0 -10
- package/dist/chunk-7qa8rfmy.js +0 -1
- package/dist/chunk-a0nb3aad.js +0 -1
- package/dist/chunk-cxe0ghk2.js +0 -1
- package/dist/chunk-fevtj34k.js +0 -1
- package/dist/chunk-gd2sw9zm.js +0 -2
- package/dist/chunk-hg8d4vhj.js +0 -2
- package/dist/chunk-kvk1bbqj.js +0 -1
- package/dist/chunk-kzzzzymt.js +0 -1
- package/dist/chunk-ppyqrdqc.js +0 -1673
- package/dist/chunk-q4c1nv7m.js +0 -8
- package/dist/chunk-syg4pnbr.js +0 -1
- package/dist/chunk-tbbc90bs.js +0 -1
- package/dist/chunk-w2sb1hy9.js +0 -1
- package/dist/chunk-x2rraka3.js +0 -1
- package/dist/chunk-xj65p2sn.js +0 -1
- package/dist/chunk-xkb0zrjj.js +0 -118
- package/dist/chunk-znv9g3mt.js +0 -1
- package/dist/web/assets/ChatView-DMPNX1fC.js +0 -18
- package/dist/web/assets/FilePreview-qWMpc2P_.js +0 -8
- package/dist/web/assets/index-BNeDPN7E.css +0 -1
- package/dist/web/assets/index-DHX-G3RT.js +0 -11
package/README.md
CHANGED
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
- 🆓 **开箱即用** - 内置免费 GLM-4.7 模型,可选自定义模型
|
|
30
30
|
- 🌐 **双模式界面** - CLI 终端 + Web UI,随心切换
|
|
31
31
|
- 🛠️ **丰富工具** - 20+ 内置工具:文件/搜索/Shell/Git/Web 等
|
|
32
|
+
- 🌍 **原生浏览器自动化** - Session 隔离 Chromium、ARIA 快照与安全 ref 交互
|
|
32
33
|
- 🔗 **扩展能力** - MCP、插件与 Skills 系统
|
|
33
34
|
- 📋 **结构化工作流** - Spec / Plan / Subagents / Agent Teams
|
|
34
35
|
- 🔒 **安全可控** - default/autoEdit/plan/yolo 权限模式与工具白/黑名单
|
|
@@ -47,6 +48,10 @@ npm install -g blade-code
|
|
|
47
48
|
# 或
|
|
48
49
|
pnpm add -g blade-code
|
|
49
50
|
|
|
51
|
+
# 可选:安装 Agent Browser 所需的固定版本 Chromium
|
|
52
|
+
blade browser install
|
|
53
|
+
blade browser status
|
|
54
|
+
|
|
50
55
|
# CLI 模式
|
|
51
56
|
blade
|
|
52
57
|
blade "帮我分析这个项目"
|
|
@@ -99,6 +104,7 @@ API key 以渠道 ID 为键存放在权限为 `0600` 的 `~/.blade/auth.json`,
|
|
|
99
104
|
- `blade` 启动交互式 CLI 界面
|
|
100
105
|
- `blade web` 启动 Web UI(0.2.0 新增)
|
|
101
106
|
- `blade serve` 启动无头服务器(0.2.0 新增)
|
|
107
|
+
- `blade browser install/status` 安装或检查原生 Browser Tool 的 Chromium
|
|
102
108
|
- `blade mcp` 管理 MCP 服务器;`blade mcp login/logout` 显式管理远程 OAuth
|
|
103
109
|
- `blade doctor` 环境自检
|
|
104
110
|
- `blade update` 检查更新
|
package/dist/blade.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{
|
|
2
|
+
import{pe as W}from"./chunk-k1t91vp3.js";import{se as F,te as M}from"./chunk-dm1knbf8.js";import"./chunk-wyk6yc02.js";import"./chunk-v508x7cg.js";import"./chunk-3aejg2jy.js";import"./chunk-51rayzy2.js";import"./chunk-ckqz2btx.js";import"./chunk-3dsggcwt.js";import"./chunk-ne5w9ds8.js";import"./chunk-45a1tsk1.js";import"./chunk-12e2yj9p.js";import{Fh as N,Gh as B}from"./chunk-1g5s5vf3.js";import"./chunk-33g68zy1.js";import{fi as T}from"./chunk-hkh2nsam.js";import"./chunk-rxjyc6ff.js";import"./chunk-7a8j14gg.js";import"./chunk-kvw91990.js";import"./chunk-bvp5wpz8.js";import"./chunk-8mee32xq.js";import"./chunk-1mb2y0e0.js";import{Oi as J}from"./chunk-m5hnyxf3.js";import p from"node:path";var E=process.argv.slice(2),I=c(E),u=I!==null;if(I!==null)T.setGlobalDebug(I);function c(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 m(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 t(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 l(){if(m(E)){let{getVersion:K}=await import("./chunk-q2t49c64.js");console.log(K());return}let Q=process.cwd(),Y=F(Q);M(Y),N(B());let U=t(E,"--plugin-dir","--pluginDir");if(U.length>0){let{configureInvocationPluginDirs:K}=await import("./chunk-d1m21wr4.js");K(U.map((Z)=>p.resolve(Q,Z)))}if(q(E,"--trust-workspace","--trustWorkspace")){let{WorkspaceTrustService:K}=await import("./chunk-qsxt9ejm.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-1ajybpd8.js");if(await K())return}if(W(),q(E,"--print","-p")){let{handlePrintMode:K}=await import("./chunk-8wp4px6b.js");if(await K())return}if(E.includes("--acp")){let{runAcpIntegration:K}=await import("./chunk-9zaxwfa5.js");await K();return}let[{default:X},{hideBin:G},{cliConfig:z,globalOptions:$},{loadConfiguration:_,validateOutput:D,validatePermissions:R},{browserCommands:S},{doctorCommands:k},{installCommands:O},{mcpCommands:y},{projectsCommands:V},{scheduleCommands:b},{serveCommand:P},{updateCommands:x},{webCommand:A}]=await Promise.all([import("yargs"),import("yargs/helpers"),import("./chunk-17s7gvqm.js"),import("./chunk-am6pzb5h.js"),import("./chunk-wattrxqd.js"),import("./chunk-dp72xx4j.js"),import("./chunk-anpph83s.js"),import("./chunk-0mrh85yz.js"),import("./chunk-mh92e9gy.js"),import("./chunk-rm8w0qg7.js"),import("./chunk-rjbxqscc.js"),import("./chunk-b7k56qfy.js"),import("./chunk-xn8kfrry.js")]),h=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(S).command(y).command(V).command(b).command(k).command(x).command(O).command(A).command(P).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),u&&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,
|
|
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,f=import("./chunk-6gnerzt5.js").then(({checkVersionOnStartup:v})=>v()),[{render:w},{createElement:j},{AppWrapper:C}]=await Promise.all([import("ink"),import("react"),import("./chunk-kpmaxt15.js")]),H={...K,initialMessage:L,debug:K.debug,print:Boolean(K.print),versionCheckPromise:f};delete H._,delete H.$0,delete H.message,w(j(C,H),{patchConsole:!0,exitOnCtrlC:!1,alternateBuffer:!1})});try{await h.parse()}catch(K){console.error("Error: Parse error:",K),process.exit(1)}}if(J.main==J.module)l().catch(console.error);export{l as main};
|