blade-code 0.10.39 → 0.10.40

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 (87) hide show
  1. package/dist/blade.js +2 -2
  2. package/dist/{chunk-zg6drp32.js → chunk-03bzxkdg.js} +1 -1
  3. package/dist/chunk-0442z8f4.js +1 -0
  4. package/dist/{chunk-4eg9qnxt.js → chunk-0s11h8yd.js} +1 -1
  5. package/dist/{chunk-7ptkstyx.js → chunk-1hea2ad2.js} +1 -1
  6. package/dist/chunk-2b4h0nb5.js +1 -0
  7. package/dist/{chunk-xs8v8nhj.js → chunk-2fgmsnh6.js} +1 -1
  8. package/dist/{chunk-kbmw1can.js → chunk-34cexc50.js} +1 -1
  9. package/dist/{chunk-5ajyr2am.js → chunk-3azdwanx.js} +1 -1
  10. package/dist/chunk-3nj2f0q9.js +2 -0
  11. package/dist/chunk-3w64mkc3.js +22 -0
  12. package/dist/{chunk-tdqz02hf.js → chunk-4dq8rbq2.js} +187 -187
  13. package/dist/{chunk-4yxavv7j.js → chunk-4p8sp6p3.js} +1 -1
  14. package/dist/{chunk-9s2c9awb.js → chunk-4wk9cc2b.js} +1 -1
  15. package/dist/{chunk-b5g5mfq1.js → chunk-74jd1hcs.js} +57 -57
  16. package/dist/{chunk-aesdm7cg.js → chunk-7qj2tbew.js} +1 -1
  17. package/dist/{chunk-kah7p2zm.js → chunk-8jexqfqg.js} +1 -1
  18. package/dist/{chunk-e09g9a7d.js → chunk-8kqnezvc.js} +1 -1
  19. package/dist/{chunk-jc498kjk.js → chunk-9dxkfqxg.js} +1 -1
  20. package/dist/{chunk-mjcgy285.js → chunk-9wxj0gxa.js} +1 -1
  21. package/dist/chunk-bqpqh6re.js +2 -0
  22. package/dist/{chunk-ksd1532x.js → chunk-dhcm8958.js} +1 -1
  23. package/dist/{chunk-b1pz71cr.js → chunk-dhsdn91x.js} +1 -1
  24. package/dist/{chunk-nh43dgpd.js → chunk-ew5dmar1.js} +2 -2
  25. package/dist/chunk-fa1gxd12.js +1 -0
  26. package/dist/{chunk-byekf2bq.js → chunk-fk8jf873.js} +2 -2
  27. package/dist/{chunk-56vs8ewy.js → chunk-h188kz0p.js} +1 -1
  28. package/dist/{chunk-7b68psjh.js → chunk-h7bat4ws.js} +1 -1
  29. package/dist/chunk-h9620q2d.js +1 -0
  30. package/dist/{chunk-22pmyhp9.js → chunk-hpqhk0jf.js} +1 -1
  31. package/dist/{chunk-n52vvqfj.js → chunk-k2hzhw9f.js} +1 -1
  32. package/dist/{chunk-f3xwk6be.js → chunk-keart8yy.js} +2 -2
  33. package/dist/chunk-kpr5nqh2.js +5 -0
  34. package/dist/{chunk-gkc69333.js → chunk-mc42kjv9.js} +2 -2
  35. package/dist/{chunk-xvgfbahj.js → chunk-np8f17zg.js} +1 -1
  36. package/dist/{chunk-qp6k78yb.js → chunk-nxc705wc.js} +1 -1
  37. package/dist/chunk-nzyc8z6k.js +6 -0
  38. package/dist/{chunk-fjcmx039.js → chunk-p504jme7.js} +2 -2
  39. package/dist/chunk-px491bge.js +1 -0
  40. package/dist/{chunk-ekfxm6g8.js → chunk-r01spp7a.js} +1 -1
  41. package/dist/{chunk-a14dy6yc.js → chunk-rb1fv7en.js} +1 -1
  42. package/dist/{chunk-m6mp65n0.js → chunk-rs43m9d9.js} +4 -4
  43. package/dist/chunk-s3nz9qx8.js +1 -0
  44. package/dist/{chunk-29abk8tj.js → chunk-ts3pgkmz.js} +2 -2
  45. package/dist/chunk-v53vv0e9.js +6 -0
  46. package/dist/chunk-v85q852a.js +44 -0
  47. package/dist/{chunk-sd8ptaz2.js → chunk-vs7tcyse.js} +1 -1
  48. package/dist/{chunk-kth1ra8z.js → chunk-vtb0m80j.js} +7 -7
  49. package/dist/chunk-vtdg5cb1.js +1 -0
  50. package/dist/chunk-vv0vk8bp.js +1 -0
  51. package/dist/chunk-w69qkark.js +1 -0
  52. package/dist/{chunk-shxg223c.js → chunk-x6c6yqpx.js} +2 -2
  53. package/dist/chunk-xpmr9bf7.js +1 -0
  54. package/dist/{chunk-79gk29st.js → chunk-xtfy56qh.js} +1 -1
  55. package/dist/chunk-y10jqqyg.js +1 -0
  56. package/dist/{chunk-59v0kdc9.js → chunk-ydz6bvs1.js} +45 -45
  57. package/dist/{chunk-r1wyfnk8.js → chunk-zfn7w33a.js} +1 -1
  58. package/dist/{chunk-g9a3ht1x.js → chunk-zv9jxwdp.js} +1 -1
  59. package/dist/web/assets/{ChatView-BY2JoPwW.js → ChatView-BP89vdT_.js} +9 -9
  60. package/dist/web/assets/{CodeBlockHighlighter-BIeXOc6N.js → CodeBlockHighlighter-UnjC3KVk.js} +1 -1
  61. package/dist/web/assets/{FilePreview-CLfqslxP.js → FilePreview-D0BiZowf.js} +1 -1
  62. package/dist/web/assets/{MarkdownRenderer-D-iAfBPN.js → MarkdownRenderer-CPu_rkPT.js} +3 -3
  63. package/dist/web/assets/{SettingsModal-D9SfF3HV.js → SettingsModal-CM9pcJas.js} +1 -1
  64. package/dist/web/assets/{TaskSwitcher-CKYCrKc2.js → TaskSwitcher-BOCm7kPO.js} +1 -1
  65. package/dist/web/assets/{TerminalPanel-Bj4qKgM6.js → TerminalPanel-CUZ4slSS.js} +1 -1
  66. package/dist/web/assets/{index-Dwm-v3BV.js → index-CthLsVgC.js} +7 -7
  67. package/dist/web/assets/{session-events-Yagzv-3E.js → session-events-109FkhOM.js} +5 -5
  68. package/dist/web/index.html +2 -2
  69. package/package.json +1 -1
  70. package/dist/chunk-1kbn1ypd.js +0 -1
  71. package/dist/chunk-3m0c6znc.js +0 -44
  72. package/dist/chunk-6yd3j5v5.js +0 -2
  73. package/dist/chunk-83mfrs3p.js +0 -5
  74. package/dist/chunk-99n3w3tg.js +0 -1
  75. package/dist/chunk-9q7v4ad9.js +0 -1
  76. package/dist/chunk-a51m3ysp.js +0 -1
  77. package/dist/chunk-bvdk0hb2.js +0 -2
  78. package/dist/chunk-bzymtpc8.js +0 -22
  79. package/dist/chunk-g2m6y08q.js +0 -1
  80. package/dist/chunk-gq29vpef.js +0 -6
  81. package/dist/chunk-gsx7sw92.js +0 -6
  82. package/dist/chunk-gvkb3mrd.js +0 -1
  83. package/dist/chunk-m88j03bm.js +0 -1
  84. package/dist/chunk-p2t4gj7w.js +0 -1
  85. package/dist/chunk-skxst3ya.js +0 -1
  86. package/dist/chunk-ya6xazne.js +0 -1
  87. package/dist/chunk-zjzz2mh9.js +0 -1
@@ -1,4 +1,4 @@
1
- import{qd as N}from"./chunk-kth1ra8z.js";import{Ee as $}from"./chunk-f3xwk6be.js";import{Nf as _}from"./chunk-6360fg4j.js";import{_f as Y,ag as Z}from"./chunk-byekf2bq.js";function X(){if(process.stdin.isTTY&&typeof process.stdin.setRawMode==="function")try{process.stdin.setRawMode(!1)}catch{}process.stdout.write("\x1B[<u"),process.stdout.write("\x1B[>4;0m"),process.stdout.write("\x1B[?2004l"),process.stdout.write("\x1B[?1004l"),process.stdout.write("\x1B[?1l\x1B>"),process.stdout.write("\x1B[?25h"),process.stdout.write("\x1B[0m")}var z=Z("Service");function E(b){switch(b){case"SIGINT":return"ctrl_c";case"esc":return"esc";case"uncaughtException":case"unhandledRejection":return"error";case"SIGTERM":case"normal":default:return"user_exit"}}class B{static instance=null;cleanupHandlers=[];isShuttingDown=!1;initialized=!1;lastSigintTime=0;SIGINT_DOUBLE_CLICK_WINDOW=3000;constructor(){}static getInstance(){if(!B.instance)B.instance=new B;return B.instance}initialize(){if(this.initialized){z.debug("[GracefulShutdown] 已初始化,跳过重复初始化");return}process.on("uncaughtException",(b)=>{this.handleFatalError("uncaughtException",b)}),process.on("unhandledRejection",(b)=>{let q=b instanceof Error?b:Error(String(b));this.handleFatalError("unhandledRejection",q)}),process.on("SIGTERM",()=>{z.info("[GracefulShutdown] 收到 SIGTERM 信号"),this.shutdown("SIGTERM",0)}),process.on("SIGINT",()=>{let b=Date.now();if(b-this.lastSigintTime<this.SIGINT_DOUBLE_CLICK_WINDOW)z.info("[GracefulShutdown] 收到第二次 SIGINT 信号,执行退出"),this.shutdown("SIGINT",0);else z.info("[GracefulShutdown] 收到第一次 SIGINT 信号,再按一次退出"),this.lastSigintTime=b,console.log(`
1
+ import{qd as N}from"./chunk-vtb0m80j.js";import{Ee as $}from"./chunk-keart8yy.js";import{Nf as _}from"./chunk-6360fg4j.js";import{gg as Y,ig as Z}from"./chunk-fk8jf873.js";function X(){if(process.stdin.isTTY&&typeof process.stdin.setRawMode==="function")try{process.stdin.setRawMode(!1)}catch{}process.stdout.write("\x1B[<u"),process.stdout.write("\x1B[>4;0m"),process.stdout.write("\x1B[?2004l"),process.stdout.write("\x1B[?1004l"),process.stdout.write("\x1B[?1l\x1B>"),process.stdout.write("\x1B[?25h"),process.stdout.write("\x1B[0m")}var z=Z("Service");function E(b){switch(b){case"SIGINT":return"ctrl_c";case"esc":return"esc";case"uncaughtException":case"unhandledRejection":return"error";case"SIGTERM":case"normal":default:return"user_exit"}}class B{static instance=null;cleanupHandlers=[];isShuttingDown=!1;initialized=!1;lastSigintTime=0;SIGINT_DOUBLE_CLICK_WINDOW=3000;constructor(){}static getInstance(){if(!B.instance)B.instance=new B;return B.instance}initialize(){if(this.initialized){z.debug("[GracefulShutdown] 已初始化,跳过重复初始化");return}process.on("uncaughtException",(b)=>{this.handleFatalError("uncaughtException",b)}),process.on("unhandledRejection",(b)=>{let q=b instanceof Error?b:Error(String(b));this.handleFatalError("unhandledRejection",q)}),process.on("SIGTERM",()=>{z.info("[GracefulShutdown] 收到 SIGTERM 信号"),this.shutdown("SIGTERM",0)}),process.on("SIGINT",()=>{let b=Date.now();if(b-this.lastSigintTime<this.SIGINT_DOUBLE_CLICK_WINDOW)z.info("[GracefulShutdown] 收到第二次 SIGINT 信号,执行退出"),this.shutdown("SIGINT",0);else z.info("[GracefulShutdown] 收到第一次 SIGINT 信号,再按一次退出"),this.lastSigintTime=b,console.log(`
2
2
  再按一次 Ctrl+C 退出
3
3
  `)}),this.initialized=!0,z.debug("[GracefulShutdown] 全局错误处理器已初始化")}registerCleanup(b){return this.cleanupHandlers.push(b),z.debug(`[GracefulShutdown] 注册清理函数,当前共 ${this.cleanupHandlers.length} 个`),()=>{let q=this.cleanupHandlers.indexOf(b);if(q!==-1)this.cleanupHandlers.splice(q,1),z.debug(`[GracefulShutdown] 取消注册清理函数,剩余 ${this.cleanupHandlers.length} 个`)}}handleFatalError(b,q){if(this.isShuttingDown){console.error(`[GracefulShutdown] 退出过程中发生额外错误 (${b}):`,q);return}if(console.error(""),console.error("═".repeat(60)),console.error(`Uncaught error (${b})`),console.error("═".repeat(60)),console.error(""),console.error("错误信息:",q.message),console.error(""),q.stack)console.error("堆栈跟踪:"),console.error(q.stack);console.error(""),console.error("═".repeat(60)),console.error(""),this.shutdown(b,1)}async shutdown(b,q=0){if(this.isShuttingDown){z.debug("[GracefulShutdown] 已在退出过程中,跳过重复退出");return}this.isShuttingDown=!0;try{N().command.actions.abort("process-shutdown")}catch(A){z.warn("[GracefulShutdown] Failed to abort the active command",A)}z.info(`[GracefulShutdown] 开始优雅退出 (原因: ${b})`);let Q=setTimeout(()=>{X(),process.exit(q)},5000);Q.unref?.();let U=4000,K;try{await Promise.race([this.runCleanupHandlers(),new Promise((A,J)=>{K=setTimeout(()=>{J(Error(`清理超时 (${U}ms)`))},U),K.unref?.()})])}catch(A){console.error("[GracefulShutdown] 清理过程中发生错误:",A)}finally{if(K)clearTimeout(K)}try{let A=$.getInstance(),J=N(),V=J.session?.sessionId||"unknown",W=J.session?.workspaceRoot||_();if(A.isEnabled(W,V)){let v=J.config?.config?.permissionMode||"default";await A.executeSessionEndHooks(E(b),{projectDir:W,sessionId:V,permissionMode:v})}}catch(A){console.error("[GracefulShutdown] SessionEnd hooks 执行失败:",A)}try{await Y()}catch{}clearTimeout(Q),X(),setTimeout(()=>{process.exit(q)},100)}async runCleanupHandlers(){let b=[...this.cleanupHandlers].reverse();for(let q of b)try{let F=q();if(F instanceof Promise)await F}catch(F){console.error("[GracefulShutdown] 清理函数执行失败:",F)}}isExiting(){return this.isShuttingDown}reset(){this.isShuttingDown=!1,this.cleanupHandlers=[],this.initialized=!1}}var O=()=>{return B.getInstance()},y=(b)=>{return O().registerCleanup(b)},j=()=>{O().initialize()},C=(b=0)=>{O().shutdown("normal",b)};
4
4
  export{O as _c,y as $c,j as ad,C as bd};
@@ -1,4 +1,4 @@
1
- import{m as R,n as c,o as g,p as d,q as m,r as l}from"./chunk-g9a3ht1x.js";import{L as M,S as y}from"./chunk-tdqz02hf.js";import"./chunk-mjcgy285.js";import"./chunk-kbmw1can.js";import{ib as h,rb as A}from"./chunk-b5g5mfq1.js";import"./chunk-5cgyevqj.js";import{jc as w,xc as U}from"./chunk-aesdm7cg.js";import"./chunk-qgez5vw6.js";import"./chunk-5ajyr2am.js";import{Uc as C}from"./chunk-b1pz71cr.js";import{Wc as I,Xc as S,Yc as v}from"./chunk-gq29vpef.js";import{Zc as O}from"./chunk-qggnvzkc.js";import"./chunk-0evyrnx0.js";import{ud as P}from"./chunk-kth1ra8z.js";import"./chunk-v508x7cg.js";import"./chunk-atsw605q.js";import"./chunk-83mfrs3p.js";import"./chunk-6yd3j5v5.js";import"./chunk-3rjmkaey.js";import"./chunk-4eg9qnxt.js";import"./chunk-sd8ptaz2.js";import"./chunk-hq18c6r9.js";import"./chunk-zwt7f9ab.js";import"./chunk-ckfc7j7m.js";import"./chunk-f3xwk6be.js";import"./chunk-v11r4ahz.js";import"./chunk-3m0c6znc.js";import{Af as F}from"./chunk-a7pvtxvz.js";import"./chunk-93jx06kq.js";import"./chunk-thstqcg3.js";import{Nf as z}from"./chunk-6360fg4j.js";import"./chunk-bvdk0hb2.js";import"./chunk-byekf2bq.js";import"./chunk-fjcmx039.js";import"./chunk-e09g9a7d.js";import"./chunk-gkc69333.js";import"./chunk-nh43dgpd.js";import"./chunk-zg6drp32.js";import"./chunk-29abk8tj.js";import"./chunk-kah7p2zm.js";import p from"yargs";import{hideBin as e}from"yargs/helpers";var s=new Set(Object.values(F));function t(j){if(j&&s.has(j))return j;return}function x(j){if(j.options.outputFormat==="json")j.io.stdout.write(`${JSON.stringify({response:j.response,...j.structuredOutput?{structured_output:j.structuredOutput,output_schema_digest:j.structuredOutputSchemaDigest}:{},input:j.requestInput,model:j.options.model,timestamp:new Date().toISOString()},null,2)}
1
+ import{m as R,n as c,o as g,p as d,q as m,r as l}from"./chunk-zv9jxwdp.js";import{L as M,S as y}from"./chunk-4dq8rbq2.js";import"./chunk-9wxj0gxa.js";import"./chunk-34cexc50.js";import{ib as h,rb as A}from"./chunk-74jd1hcs.js";import"./chunk-5cgyevqj.js";import{jc as w,xc as U}from"./chunk-7qj2tbew.js";import"./chunk-qgez5vw6.js";import"./chunk-3azdwanx.js";import{Uc as C}from"./chunk-dhsdn91x.js";import{Wc as I,Xc as S,Yc as v}from"./chunk-nzyc8z6k.js";import{Zc as O}from"./chunk-qggnvzkc.js";import"./chunk-0evyrnx0.js";import{ud as P}from"./chunk-vtb0m80j.js";import"./chunk-v508x7cg.js";import"./chunk-atsw605q.js";import"./chunk-kpr5nqh2.js";import"./chunk-3nj2f0q9.js";import"./chunk-3rjmkaey.js";import"./chunk-0s11h8yd.js";import"./chunk-vs7tcyse.js";import"./chunk-hq18c6r9.js";import"./chunk-zwt7f9ab.js";import"./chunk-ckfc7j7m.js";import"./chunk-keart8yy.js";import"./chunk-v11r4ahz.js";import"./chunk-v85q852a.js";import{Af as F}from"./chunk-a7pvtxvz.js";import"./chunk-93jx06kq.js";import"./chunk-thstqcg3.js";import{Nf as z}from"./chunk-6360fg4j.js";import"./chunk-bqpqh6re.js";import"./chunk-fk8jf873.js";import"./chunk-p504jme7.js";import"./chunk-8kqnezvc.js";import"./chunk-mc42kjv9.js";import"./chunk-ew5dmar1.js";import"./chunk-03bzxkdg.js";import"./chunk-ts3pgkmz.js";import"./chunk-8jexqfqg.js";import p from"yargs";import{hideBin as e}from"yargs/helpers";var s=new Set(Object.values(F));function t(j){if(j&&s.has(j))return j;return}function x(j){if(j.options.outputFormat==="json")j.io.stdout.write(`${JSON.stringify({response:j.response,...j.structuredOutput?{structured_output:j.structuredOutput,output_schema_digest:j.structuredOutputSchemaDigest}:{},input:j.requestInput,model:j.options.model,timestamp:new Date().toISOString()},null,2)}
2
2
  `);else if(j.options.outputFormat==="stream-json")j.io.stdout.write(`${JSON.stringify(j.structuredOutput?{type:"structured_output",output:j.structuredOutput,schema_digest:j.structuredOutputSchemaDigest}:{type:"response",content:j.response})}
3
3
  `);else j.io.stdout.write(`${j.response}
4
4
  `)}function i(j){return j.command("* [message]","Print response and exit (useful for pipes)",(B)=>B.positional("message",{describe:"Message to process",type:"string"}).option("p",{alias:"print",describe:"Print response and exit (useful for pipes)",type:"boolean"}).option("output-format",{describe:'Output format: "text", "json", "stream-json"',type:"string",default:"text"}).option("include-partial-messages",{describe:"Include partial message chunks as they arrive",type:"boolean"}).option("input-format",{describe:'Input format: "text", "stream-json"',type:"string",default:"text"}).option("json-schema",{alias:["jsonSchema"],describe:"Inline JSON Schema for the structured final response",type:"string"}).option("output-schema",{alias:["outputSchema"],describe:"Path to a JSON Schema file for the structured final response",type:"string"}).option("model",{describe:"Model for the current session",type:"string"}).option("append-system-prompt",{describe:"Append a system prompt to the default system prompt",type:"string"}).option("system-prompt",{describe:"Replace the default system prompt",type:"string"}).option("max-turns",{alias:["maxTurns"],describe:"Maximum conversation turns (-1: unlimited, N>0: limit to N turns)",type:"number"}),async(B)=>{if(!B.p)return;let q=await n(B);process.exit(q)})}async function n(j,B=process){let q;try{await R();let _=j.forkSession!==!0&&(j.continue===!0||typeof j.resume==="string"&&j.resume.length>0)?await g({message:j.message,_:j._}):await c({message:j.message,_:j._,defaultMessage:"Hello"}),J=_===void 0,T=J?{mode:"agent",content:""}:await d(_);if(T.mode==="output"){if(T.content)B.stdout.write(`${T.content}