blade-code 0.11.8 → 0.11.10
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/blade.js +2 -2
- package/dist/{chunk-74vmjngm.js → chunk-0vet7np5.js} +1 -1
- package/dist/{chunk-j5e589we.js → chunk-113t7z1d.js} +1 -1
- package/dist/{chunk-926rkw87.js → chunk-123x4vv0.js} +1 -1
- package/dist/{chunk-2fj047zf.js → chunk-1j3y40wn.js} +1 -1
- package/dist/{chunk-hdy7b6zw.js → chunk-3ce55d11.js} +1 -1
- package/dist/{chunk-34y4z9ns.js → chunk-54mb3ar4.js} +1 -1
- package/dist/{chunk-0e9nrf53.js → chunk-58t96cyv.js} +1 -1
- package/dist/{chunk-1gr9vqy1.js → chunk-5tf0hs46.js} +1 -1
- package/dist/{chunk-7876fd4b.js → chunk-75an4n90.js} +1 -1
- package/dist/{chunk-ayqqhefz.js → chunk-7bvtz3mm.js} +1 -1
- package/dist/{chunk-de3wa8nq.js → chunk-7me3rm8n.js} +1 -1
- package/dist/{chunk-np5t59fa.js → chunk-8cr35jh6.js} +1 -1
- package/dist/{chunk-53twn9t2.js → chunk-8fasjabf.js} +1 -1
- package/dist/{chunk-vjvw3v6b.js → chunk-8hke5rc9.js} +1 -1
- package/dist/{chunk-m8sttgjc.js → chunk-8httqk7j.js} +1 -1
- package/dist/{chunk-3t655nhk.js → chunk-8tjh8nzm.js} +1 -1
- package/dist/{chunk-e613h191.js → chunk-8wk4q3bz.js} +363 -363
- package/dist/{chunk-8r8fp09p.js → chunk-am63xh9m.js} +1 -1
- package/dist/{chunk-1crgzzz7.js → chunk-bckm03fv.js} +53 -53
- package/dist/{chunk-erget6wk.js → chunk-d40j41s5.js} +1 -1
- package/dist/{chunk-14jd0cj6.js → chunk-geakn1sr.js} +1 -1
- package/dist/{chunk-s7jd42xp.js → chunk-j5nz7kb4.js} +1 -1
- package/dist/chunk-j63n860q.js +1 -0
- package/dist/{chunk-rwtsvy5y.js → chunk-jgmaytrk.js} +1 -1
- package/dist/{chunk-rcfef8qj.js → chunk-k5595spk.js} +1 -1
- package/dist/{chunk-dgypy6yt.js → chunk-k6knawfb.js} +9 -9
- package/dist/{chunk-b0smnpzh.js → chunk-katmqxmn.js} +1 -1
- package/dist/{chunk-rh1q6srx.js → chunk-kn7jya27.js} +1 -1
- package/dist/chunk-mnm8epn5.js +2 -0
- package/dist/{chunk-547g7bq5.js → chunk-mvyrhqrm.js} +2 -2
- package/dist/{chunk-22py5y1p.js → chunk-pt4reckf.js} +1 -1
- package/dist/chunk-se9tcqqv.js +1 -0
- package/dist/{chunk-re6hbrmb.js → chunk-t5hhrj1g.js} +1 -1
- package/dist/{chunk-5q2gp1bb.js → chunk-vh5za5en.js} +1 -1
- package/dist/{chunk-mmwqe49e.js → chunk-vhc0z5k0.js} +1 -1
- package/dist/{chunk-3m8949fr.js → chunk-vkabej0v.js} +1 -1
- package/dist/{chunk-29t2wbwt.js → chunk-yzw0e9a5.js} +1 -1
- package/dist/{chunk-nr5s7qtp.js → chunk-z7f2a75f.js} +1 -1
- package/package.json +1 -1
- package/dist/chunk-c1331rdc.js +0 -2
- package/dist/chunk-jbp9wt3f.js +0 -1
- package/dist/chunk-kz842bqy.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Vf as N}from"./chunk-
|
|
1
|
+
import{Vf as N}from"./chunk-k6knawfb.js";import{Ah as $}from"./chunk-vkabej0v.js";import{Zi as _}from"./chunk-b22ab7yw.js";import{Cj as Y,Ej as Z}from"./chunk-saz6mwpq.js";function X(){if(process.stdin.isTTY&&typeof process.stdin.setRawMode==="function")try{process.stdin.setRawMode(!1)}catch{}if(!process.stdout.isTTY)return;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",()=>{if(!process.stdin.isTTY||!process.stdout.isTTY){this.shutdown("SIGINT",0);return}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 Df,y as Ef,j as Ff,C as Gf};
|