blade-code 0.10.86 → 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-6n63ev2e.js → chunk-07hn8br0.js} +38 -38
- package/dist/{chunk-cdx9tebt.js → chunk-0mrh85yz.js} +1 -1
- package/dist/chunk-12e2yj9p.js +2 -0
- package/dist/chunk-17s7gvqm.js +1 -0
- package/dist/{chunk-mp90dsxs.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-yq5vm0hf.js → chunk-37x3xyqk.js} +2 -2
- package/dist/{chunk-g9xjcfrf.js → chunk-3aejg2jy.js} +1 -1
- package/dist/{chunk-zpryec89.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-z21es9vg.js → chunk-51rayzy2.js} +3 -3
- package/dist/chunk-6gnerzt5.js +1 -0
- package/dist/{chunk-bwt1djsp.js → chunk-78cjfm2t.js} +2 -2
- package/dist/{chunk-9vmxd900.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-hazs43pe.js → chunk-8wp4px6b.js} +1 -1
- package/dist/chunk-943vkrwc.js +2 -0
- package/dist/{chunk-b8p2mwq9.js → chunk-9ap72kq4.js} +2 -2
- package/dist/chunk-9fxvqbve.js +1 -0
- package/dist/{chunk-b1mh28yd.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-0nb8999e.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-wktx761x.js → chunk-dp72xx4j.js} +2 -2
- package/dist/{chunk-deeh2eq1.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-x89n28mq.js → chunk-k1t91vp3.js} +2 -2
- package/dist/chunk-kbgsbq7k.js +1 -0
- package/dist/{chunk-90b512gm.js → chunk-kpmaxt15.js} +1 -1
- package/dist/{chunk-p3jvzk1f.js → chunk-kvw91990.js} +2 -2
- package/dist/{chunk-t5d4p0gc.js → chunk-kz40nxhm.js} +2 -2
- package/dist/{chunk-gzjt969t.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-zg8g2jcr.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-00xsfm2j.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-2dq84j8s.js → chunk-w2tcjj0w.js} +1 -1
- package/dist/chunk-wattrxqd.js +1 -0
- package/dist/{chunk-bthb5c55.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/package.json +2 -2
- package/dist/chunk-2ps02f7j.js +0 -1
- package/dist/chunk-4y34e9ty.js +0 -1
- package/dist/chunk-7jp7e0zj.js +0 -1
- package/dist/chunk-9erhm3gg.js +0 -8
- package/dist/chunk-9zm7v41x.js +0 -1
- package/dist/chunk-gd2sw9zm.js +0 -2
- package/dist/chunk-gk79etn6.js +0 -118
- package/dist/chunk-hg8d4vhj.js +0 -2
- package/dist/chunk-hm92k82b.js +0 -1
- package/dist/chunk-hxgzj76t.js +0 -1
- package/dist/chunk-j2s2g9ep.js +0 -1
- package/dist/chunk-k6m9wmsq.js +0 -1
- package/dist/chunk-tap68662.js +0 -1
- package/dist/chunk-vt654hsf.js +0 -10
- package/dist/chunk-w2sb1hy9.js +0 -1
- package/dist/chunk-x2rraka3.js +0 -1
- package/dist/chunk-x564avfw.js +0 -1
- package/dist/chunk-xj65p2sn.js +0 -1
- package/dist/chunk-xwtx2vng.js +0 -1
- package/dist/chunk-zpbbcdme.js +0 -1673
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};
|