blade-code 0.11.6 → 0.11.7
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-nneh4gkw.js → chunk-03ax0738.js} +1 -1
- package/dist/{chunk-mhv4q5sg.js → chunk-03hbrytg.js} +1 -1
- package/dist/{chunk-6sk6chsm.js → chunk-0w3h2qnk.js} +1 -1
- package/dist/{chunk-cfxs7jdk.js → chunk-1khsmsem.js} +1 -1
- package/dist/{chunk-xmp1ve8a.js → chunk-253fwyzb.js} +1 -1
- package/dist/{chunk-8d1vekke.js → chunk-29ek6raw.js} +1 -1
- package/dist/{chunk-nh301gpr.js → chunk-33sgdacd.js} +1 -1
- package/dist/{chunk-yh28byeh.js → chunk-37exmxas.js} +1 -1
- package/dist/{chunk-n32pbwyk.js → chunk-4mamvx8a.js} +3 -3
- package/dist/{chunk-0vw2xj0h.js → chunk-4rqen6w9.js} +1 -1
- package/dist/{chunk-nznd7549.js → chunk-4v28fy5p.js} +1 -1
- package/dist/{chunk-qfp7emtk.js → chunk-6f5gf32h.js} +1 -1
- package/dist/{chunk-vnxj21sa.js → chunk-6s4btp37.js} +99 -97
- package/dist/{chunk-qexnx2v2.js → chunk-70n8qq1r.js} +1 -1
- package/dist/{chunk-87bd1w02.js → chunk-9f99qxqc.js} +1 -1
- package/dist/{chunk-rgxknntk.js → chunk-9q7egv5e.js} +1 -1
- package/dist/{chunk-vgkcck5q.js → chunk-atjraymv.js} +1 -1
- package/dist/chunk-byrk9d45.js +1 -0
- package/dist/{chunk-acxyw1ej.js → chunk-chhf109c.js} +1 -1
- package/dist/{chunk-6jjpj5ge.js → chunk-d561qcwy.js} +1 -1
- package/dist/{chunk-8yh4mn8a.js → chunk-d9gdv6hv.js} +1 -1
- package/dist/chunk-drqv15xs.js +1 -0
- package/dist/{chunk-s2ner5gp.js → chunk-dtv22yvk.js} +1 -1
- package/dist/{chunk-ftk0ytf8.js → chunk-ep0g03gq.js} +1 -1
- package/dist/{chunk-t39n33ek.js → chunk-exp8ksxn.js} +1 -1
- package/dist/{chunk-zzacj0n9.js → chunk-f7nx3ewr.js} +1 -1
- package/dist/{chunk-hxwzdkwp.js → chunk-ghg7sbxt.js} +1 -1
- package/dist/{chunk-fprmcxd6.js → chunk-gt2wpeyx.js} +1 -1
- package/dist/{chunk-y7zh1sq6.js → chunk-hdbxph08.js} +1 -1
- package/dist/{chunk-6h1x1m4f.js → chunk-j4v5f56k.js} +1 -1
- package/dist/{chunk-vp4rdvvw.js → chunk-j6tm12ft.js} +1 -1
- package/dist/{chunk-bzwxh6nq.js → chunk-k17d0ysy.js} +1 -1
- package/dist/{chunk-avrnqtca.js → chunk-n90wq61v.js} +1 -1
- package/dist/{chunk-a1y938pg.js → chunk-ska66dmc.js} +1 -1
- package/dist/{chunk-sb12h5yv.js → chunk-vrk1p3p2.js} +1 -1
- package/dist/{chunk-aq7e74mn.js → chunk-wqk2nkm4.js} +2 -2
- package/dist/{chunk-yg81xx37.js → chunk-yeee0ac9.js} +1 -1
- package/dist/{chunk-5vh8zyjz.js → chunk-zhnctpb5.js} +1 -1
- package/package.json +1 -1
- package/dist/chunk-2s1gmqh4.js +0 -1
- package/dist/chunk-p9dvggw1.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Xj as I}from"./chunk-
|
|
1
|
+
import{Xj as I}from"./chunk-k17d0ysy.js";import{Jk as f}from"./chunk-gmpsfkgg.js";import*as j from"fs/promises";import*as S from"path";import X from"semver";import{ProxyAgent as R,fetch as k}from"undici";function x(){return process.env.HTTPS_PROXY||process.env.HTTP_PROXY||process.env.https_proxy||process.env.http_proxy}function L(){let z=x();if(z)try{return new R(z)}catch(q){console.warn(`[proxyFetch] Invalid proxy URL: ${z}`)}return}async function F(z,q,Z){let{timeout:W=30000,signal:J,...Q}=q;if(J?.aborted)throw new DOMException("The operation was aborted.","AbortError");let Y=L(),$=new AbortController,w=!1,y=setTimeout(()=>{w=!0,$.abort()},W),T=()=>$.abort();J?.addEventListener("abort",T);let D;try{let B={method:Q.method,headers:Q.headers,body:Q.body,signal:$.signal,dispatcher:Y};return D=await k(z.toString(),B),await Z(D)}catch(B){if(B instanceof Error&&B.name==="AbortError"){if(w)throw Error(`Request timeout after ${W}ms`);throw B}throw B}finally{if(clearTimeout(y),J?.removeEventListener("abort",T),$.abort(),D?.body&&!D.body.locked)await D.body.cancel().catch(()=>{return});await Y?.destroy?.().catch(()=>{return})}}var O="blade-code",G="https://cdn.jsdelivr.net/npm/blade-code@latest/CHANGELOG.md",H=S.join(process.env.HOME||process.env.USERPROFILE||".",".blade"),N=S.join(H,"version-cache.json"),_=3600000,g=`https://registry.npmjs.org/${O}/latest`,M=null;async function P(){try{if(process.env.BLADE_VERSION)return process.env.BLADE_VERSION;return I()}catch{return"unknown"}}async function b(){try{let z=await j.readFile(N,"utf-8"),q=JSON.parse(z);if(Date.now()-q.checkedAt<_)return q;return{...q,checkedAt:0}}catch{return null}}async function K(z){try{await j.mkdir(H,{recursive:!0,mode:493}),await j.writeFile(N,JSON.stringify(z,null,2))}catch{}}async function E(){try{return await F(g,{timeout:5000,headers:{Accept:"application/json"}},async(z)=>{if(!z.ok)return null;let q=await z.json();if(!q||typeof q!=="object"||!("version"in q))return null;return typeof q.version==="string"&&X.valid(q.version)?q.version:null})}catch{return null}}async function A(z=!1){let q=await P(),Z=G;if(q==="unknown")return{currentVersion:q,latestVersion:null,hasUpdate:!1,shouldPrompt:!1,releaseNotesUrl:Z,error:"Unable to determine current version"};let W=await b(),J=W?.skipUntilVersion,Q=null;if(!z&&W?.latestVersion&&W.checkedAt>0)Q=W.latestVersion;else if(Q=await E(),J=(await b())?.skipUntilVersion??J,Q)await K({latestVersion:Q,checkedAt:Date.now(),skipUntilVersion:J});else if(W?.latestVersion)await K({checkedAt:0,skipUntilVersion:J});if(!Q||!X.valid(Q))return{currentVersion:q,latestVersion:null,hasUpdate:!1,shouldPrompt:!1,releaseNotesUrl:Z,error:"Unable to check for updates"};if(X.lt(Q,q))Q=q,await K({latestVersion:Q,checkedAt:Date.now(),skipUntilVersion:J});let Y=X.gt(Q,q),$=Y;if(Y&&J)$=X.gt(Q,J);return{currentVersion:q,latestVersion:Q,hasUpdate:Y,shouldPrompt:$,releaseNotesUrl:Z}}async function V(z){let q=await b();await K({latestVersion:q?.latestVersion??z,checkedAt:q?.checkedAt||Date.now(),skipUntilVersion:z})}function v(){return`npm install -g ${O}@latest --registry https://registry.npmjs.org`}async function p(){let{spawn:z}=await import("child_process");return new Promise((q)=>{let Z=v(),W=z(Z,{stdio:"inherit",shell:!0});W.on("close",(J)=>{if(J===0)q({success:!0,message:"Upgrade successful! Please restart blade."});else q({success:!1,message:`Upgrade failed (exit code: ${J})`})}),W.on("error",(J)=>{q({success:!1,message:`Upgrade failed: ${J.message}`})})})}async function h(){try{let z=await b();if(!z?.latestVersion||!X.valid(z.latestVersion)||!z.checkedAt){if(!M)M=A(!0).then(()=>{return},()=>{return}).finally(()=>{M=null});return null}let q=await P();if(!X.valid(q)||!X.gt(z.latestVersion,q)||z.skipUntilVersion&&X.valid(z.skipUntilVersion)&&!X.gt(z.latestVersion,z.skipUntilVersion))return null;return{currentVersion:q,latestVersion:z.latestVersion,hasUpdate:!0,shouldPrompt:!0,releaseNotesUrl:G}}catch{return null}}
|
|
2
2
|
export{A as k,V as l,v as m,p as n,h as o};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Vf as N}from"./chunk-
|
|
1
|
+
import{Vf as N}from"./chunk-chhf109c.js";import{Ah as $}from"./chunk-d9gdv6hv.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};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{p as g,q as R,r as c,s as v,t as d,u as m,v as l}from"./chunk-
|
|
1
|
+
import{p as g,q as R,r as c,s as v,t as d,u as m,v as l}from"./chunk-exp8ksxn.js";import{ha as O,oa as h}from"./chunk-4mamvx8a.js";import"./chunk-nad5spvc.js";import"./chunk-70n8qq1r.js";import"./chunk-whxkwaz1.js";import{bc as w,mc as _}from"./chunk-6s4btp37.js";import"./chunk-9qxch6sy.js";import{ne as L}from"./chunk-d561qcwy.js";import"./chunk-skktstg8.js";import{Se as P}from"./chunk-s14zayxp.js";import"./chunk-b5cz00mt.js";import{xf as y}from"./chunk-9q7egv5e.js";import{Af as I,Bf as S,zf as C}from"./chunk-0w3h2qnk.js";import{Cf as M}from"./chunk-yjdyzb5z.js";import"./chunk-crv3sghv.js";import{Zf as A}from"./chunk-chhf109c.js";import"./chunk-x6k5ye1z.js";import"./chunk-v508x7cg.js";import"./chunk-1g7c3f82.js";import"./chunk-3v9epq9s.js";import"./chunk-eexs73bz.js";import"./chunk-pm163dfm.js";import"./chunk-1khsmsem.js";import"./chunk-ska66dmc.js";import"./chunk-kehgewqh.js";import"./chunk-kkzznz4w.js";import"./chunk-1cy4ab77.js";import"./chunk-7ajvrtb3.js";import"./chunk-d9gdv6hv.js";import"./chunk-ys8gysg8.js";import{Fh as F}from"./chunk-ep0g03gq.js";import{Zi as z}from"./chunk-b22ab7yw.js";import"./chunk-amabfzc8.js";import"./chunk-m2x6pb4f.js";import"./chunk-saz6mwpq.js";import"./chunk-xhwdac1j.js";import"./chunk-0eajnhrj.js";import"./chunk-k17d0ysy.js";import"./chunk-asgmmaec.js";import"./chunk-ed2hdrwe.js";import"./chunk-gmpsfkgg.js";import i 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 o(j){return j.command("* [message]","Print response and exit (useful for pipes)",(q)=>q.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(q)=>{if(!q.p)return;let G=await jj(q);process.exit(G)})}async function jj(j,q=process){let G;try{await g();let U=j.forkSession!==!0&&(j.continue===!0||typeof j.resume==="string"&&j.resume.length>0)?await c({message:j.message,_:j._}):await R({message:j.message,_:j._,defaultMessage:"Hello"}),Y=U===void 0,K=Y?{mode:"agent",content:""}:await v(U);if(K.mode==="output"){if(K.content)q.stdout.write(`${K.content}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{readFileSync as c}from"node:fs";import{dirname as n,join as l}from"node:path";import{fileURLToPath as a}from"node:url";var e={name:"blade-code",version:"0.11.
|
|
1
|
+
import{readFileSync as c}from"node:fs";import{dirname as n,join as l}from"node:path";import{fileURLToPath as a}from"node:url";var e={name:"blade-code",version:"0.11.7",private:!1,description:"🗡️ Blade Code - 智能代码助手命令行工具",type:"module",bin:{blade:"dist/blade.js"},files:["dist","vendor/ripgrep/**","README.md"],scripts:{dev:"node scripts/run-bun.js --watch src/blade.tsx","dev:serve":"node scripts/run-bun.js --watch src/blade.tsx serve --port 4097",build:"rm -rf dist && node scripts/run-bun.js run scripts/build.ts",start:"node scripts/run-bun.js run dist/blade.js",test:"node scripts/test.js","test:all":"node scripts/test.js all","test:unit":"node scripts/test.js unit","test:integration":"node scripts/test.js integration","test:real-api":"node scripts/test.js realApi","test:real-api:qualification":"node scripts/test.js realApiQualification","test:cli":"node scripts/test.js cli","test:headless-core":"node scripts/test.js headlessCore","test:e2e":"node scripts/test.js e2e","test:performance":"node scripts/test.js performance","test:snapshot":"node scripts/test.js snapshot","test:security":"node scripts/test.js security","browser:install":"playwright install chromium","browser:check":"node scripts/run-bun.js run scripts/browser-check.ts","test:coverage":"node scripts/test.js all --coverage","test:watch":"vitest --watch --config vitest.config.ts","qualify:local":"node scripts/run-bun.js run scripts/qualify.ts local","qualify:production":"node scripts/run-bun.js run scripts/qualify.ts production","benchmark:repo":"node scripts/run-bun.js run scripts/run-real-repo-benchmark.ts","test:update-snapshots":"node scripts/test.js snapshot --update",lint:"biome lint src tests","lint:fix":"biome lint --write src tests","type-check":"tsc --noEmit","format:check":"biome format src tests",ready:"node scripts/run-bun.js run scripts/qualify.ts production",prepack:"node scripts/download-ripgrep.js && node scripts/run-bun.js run build",release:"node scripts/release.js","release:dry":"node scripts/release.js --dry-run","release:major":"node scripts/release.js --major","release:minor":"node scripts/release.js --minor","release:patch":"node scripts/release.js --patch"},keywords:["cli","blade","ai","assistant","agent","llm"],author:"echoVic",license:"MIT",repository:{type:"git",url:"git+https://github.com/echoVic/blade-code.git"},homepage:"https://github.com/echoVic/blade-code#readme",bugs:{url:"https://github.com/echoVic/blade-code/issues"},engines:{node:">=22.19.0"},optionalDependencies:{"@vscode/ripgrep":"^1.18.0","better-sqlite3":"^11.8.1","bun-pty":"^0.4.8","node-pty":"1.1.0"},dependencies:{"@agentclientprotocol/sdk":"^1.3.0","@anthropic-ai/sandbox-runtime":"0.0.67","@earendil-works/pi-ai":"0.86.1","@inkjs/ui":"^2.0.0","@modelcontextprotocol/sdk":"^1.30.0",ahooks:"^3.9.7",ajv:"^8.17.1","ansi-escapes":"^7.3.0","async-mutex":"^0.5.0",axios:"^1.19.0",chalk:"^6.0.0",diff:"^8.0.4","fast-glob":"^3.3.3","fuse.js":"^7.5.0","gray-matter":"^4.0.3",hono:"^4.13.0",ink:"npm:@jrichman/ink@6.4.10","ink-big-text":"^2.0.0","ink-gradient":"^3.0.0","ink-select-input":"^6.2.0","ink-spinner":"^5.0.0","ink-text-input":"^6.0.0","js-tiktoken":"^1.0.21","lodash-es":"^4.18.1",lowlight:"^3.3.0","lru-cache":"^11.5.2",nanoid:"^5.1.16",open:"^10.1.2",pathe:"^2.0.3",picomatch:"^4.0.5",playwright:"1.63.0","proper-lockfile":"^4.1.2",react:"19.2.4","react-dom":"19.2.4",semver:"^7.8.5","string-width":"^8.2.2",typebox:"1.3.10",undici:"^8.10.2","vscode-jsonrpc":"8.2.1","vscode-languageserver-protocol":"3.17.5","vscode-languageserver-types":"3.17.5","wrap-ansi":"^9.0.2","write-file-atomic":"^7.0.1",ws:"^8.21.2",yaml:"^2.9.0",yargs:"^18.1.0",zustand:"^5.0.14"},devDependencies:{"@biomejs/biome":"2.5.7","@types/bun":"^1.3.14","@types/json-schema":"^7.0.15","@types/lodash-es":"^4.17.12","@types/node":"^22.15.24","@types/picomatch":"^4.0.3","@types/proper-lockfile":"^4.1.4","@types/react":"19.2.10","@types/react-dom":"19.2.3","@types/semver":"^7.8.0","@types/write-file-atomic":"^4.0.3","@types/ws":"^8.18.1","@types/yargs":"^17.0.35","@vitest/coverage-v8":"^5.0.1",jsdom:"^26.0.0",typescript:"^5.9.2",vitest:"^5.0.1"}};var s;function i(){if(s)return s;let r=n(a(import.meta.url));for(let o=0;o<5;o++){try{let t=JSON.parse(c(l(r,"package.json"),"utf8"));if(t.name===e.name&&typeof t.version==="string"&&typeof t.description==="string")return s=t,s}catch{}r=n(r)}return s={name:e.name,version:process.env.BLADE_VERSION??e.version,description:e.description},s}function d(){return i().version}function y(){return i().name}function v(){return i().description}function w(){return`v${d()} © 2025 Blade Code`}
|
|
2
2
|
export{d as Xj,y as Yj,v as Zj,w as _j};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{k as o}from"./chunk-
|
|
1
|
+
import{k as o}from"./chunk-hdbxph08.js";import"./chunk-k17d0ysy.js";import"./chunk-gmpsfkgg.js";import{execSync as r}from"child_process";var l={command:"update",describe:"Check for updates and install if available",handler:async()=>{console.log("Checking for updates...");try{let e=await o(!0);if(console.log(`Current version: ${e.currentVersion}`),e.error){console.log(`Warning: ${e.error}`);return}if(e.latestVersion)console.log(`Latest version: ${e.latestVersion}`);if(e.hasUpdate&&e.latestVersion){console.log(""),console.log(`\x1B[33mUpdate available: ${e.currentVersion} -> ${e.latestVersion}\x1B[0m`),console.log(""),console.log("Updating...");try{r("npm install -g blade-code@latest --registry https://registry.npmjs.org",{stdio:"inherit"}),console.log(""),console.log("Update complete!")}catch(t){console.error("Error: Update failed. Please run manually:"),console.error(" npm install -g blade-code@latest"),process.exit(1)}}else console.log("You are running the latest version of Blade")}catch(e){console.error(`Error: Failed to check for updates: ${e instanceof Error?e.message:"未知错误"}`),process.exit(1)}}};export{l as updateCommands};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{ch as FO,dh as $b,eh as JO}from"./chunk-kehgewqh.js";import{kh as wb}from"./chunk-kkzznz4w.js";import{th as Z0,uh as $O}from"./chunk-1cy4ab77.js";import{xh as BO}from"./chunk-7ajvrtb3.js";import{Ah as bb,yh as Ab}from"./chunk-
|
|
1
|
+
import{ch as FO,dh as $b,eh as JO}from"./chunk-kehgewqh.js";import{kh as wb}from"./chunk-kkzznz4w.js";import{th as Z0,uh as $O}from"./chunk-1cy4ab77.js";import{xh as BO}from"./chunk-7ajvrtb3.js";import{Ah as bb,yh as Ab}from"./chunk-d9gdv6hv.js";import{Pi as Zb,Qi as G0,Ui as Wb}from"./chunk-ep0g03gq.js";import{Zi as B}from"./chunk-b22ab7yw.js";import{Ej as k,Fj as A,Gj as m,Ij as U,Lj as pO}from"./chunk-saz6mwpq.js";import{Xj as Eb}from"./chunk-k17d0ysy.js";import{ck as _}from"./chunk-asgmmaec.js";import{xk as O0}from"./chunk-ed2hdrwe.js";import xb from"node:path";import I0 from"node:path";import Db from"node:fs";import WO from"node:os";import E from"node:path";import k0 from"yaml";var GO=`# Goal Completion Verifier
|
|
2
2
|
|
|
3
3
|
You are a fresh, independent, adversarial verifier. The parent Agent has claimed
|
|
4
4
|
that a persisted goal is complete. Your job is to refute that claim unless the
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{e as p5,f as x5,h as I$,i as M6}from"./chunk-nh301gpr.js";import{l as x7,m as c7,n as u7}from"./chunk-y7zh1sq6.js";import{B as HJ,C as FJ,D as q6}from"./chunk-fprmcxd6.js";import{$ as WY,Ba as _3,Ca as O3,Da as XX,Ea as tJ,Ga as sJ,Ia as pY,L as mY,P as YX,R as h4,S as T4,T as SY,U as kY,_ as NY,ca as HY,ha as a$,ja as PJ,ka as bJ,ma as FY,oa as z8,pa as X7,qa as Z7,ta as Q7,ua as U7,ya as m9,za as W3}from"./chunk-n32pbwyk.js";import"./chunk-nad5spvc.js";import{Qa as b5,Ra as M5,Sa as T5,Va as JX}from"./chunk-qexnx2v2.js";import{Xa as OY}from"./chunk-whxkwaz1.js";import{Qb as qY,Rb as F6,bc as _Y,mc as B4}from"./chunk-vnxj21sa.js";import{xc as N8}from"./chunk-9qxch6sy.js";import{$d as AJ,Hd as XY,Rd as WJ,Sd as g2,Wd as BJ,ae as p2,ce as t8,ke as K8,ne as a0}from"./chunk-6jjpj5ge.js";import"./chunk-skktstg8.js";import{Re as CJ,Se as w4,Te as RJ}from"./chunk-s14zayxp.js";import{of as aJ,pf as U6}from"./chunk-b5cz00mt.js";import{Cf as m7}from"./chunk-yjdyzb5z.js";import{Df as W8,Ef as _6,Gf as J1}from"./chunk-6h1x1m4f.js";import"./chunk-crv3sghv.js";import{Kf as C2,Lf as F$,Mf as r1,Nf as J9,Of as o8,Pf as LJ,Qf as m3,Rf as A9,Sf as D5,Tf as p3,Uf as D2,Vf as m0,Wf as e7,Xf as L$,Yf as g7,Zf as l6,_f as _8,bg as rJ,eg as K$}from"./chunk-acxyw1ej.js";import"./chunk-x6k5ye1z.js";import"./chunk-v508x7cg.js";import"./chunk-1g7c3f82.js";import"./chunk-3v9epq9s.js";import{wg as P9}from"./chunk-eexs73bz.js";import"./chunk-pm163dfm.js";import"./chunk-cfxs7jdk.js";import{Jg as H6,Kg as C7,Pg as Y7,Yg as $X}from"./chunk-a1y938pg.js";import"./chunk-kehgewqh.js";import"./chunk-kkzznz4w.js";import"./chunk-1cy4ab77.js";import"./chunk-7ajvrtb3.js";import{Ah as j$,yh as Z9}from"./chunk-8yh4mn8a.js";import"./chunk-ys8gysg8.js";import{Ih as fJ,Pi as t7,Ui as J7,Vi as s7}from"./chunk-ftk0ytf8.js";import{Zi as G$}from"./chunk-b22ab7yw.js";import"./chunk-amabfzc8.js";import{wj as m2,xj as e8,zj as Q9}from"./chunk-m2x6pb4f.js";import{Bj as n7,Ej as N1}from"./chunk-saz6mwpq.js";import{Mj as E5,Nj as g5,Qj as C1}from"./chunk-xhwdac1j.js";import"./chunk-0eajnhrj.js";import{_j as y5}from"./chunk-bzwxh6nq.js";import{ck as E9}from"./chunk-asgmmaec.js";import{dk as G8,xk as lJ}from"./chunk-ed2hdrwe.js";import{Jk as Y6}from"./chunk-gmpsfkgg.js";import{useMemoizedFn as Z4}from"ahooks";import{useEffect as gK,useState as Q4}from"react";import{useMemoizedFn as i0}from"ahooks";import h7 from"ansi-escapes";import{Box as g1,useStdout as fK}from"ink";import{useEffect as $1,useMemo as DK,useRef as y2,useState as E7}from"react";import{useShallow as UX}from"zustand/react/shallow";import{useStore as QX}from"zustand";function z0($){return QX(D2,$)}var GX=[],v2=()=>z0(($)=>$.session.sessionId),_1=()=>z0(($)=>$.session.workspaceRoot),V8=()=>z0(($)=>$.session.messages),p9=()=>z0(($)=>$.session.clearCount),x9=()=>z0(($)=>$.session.isCompacting),c9=()=>z0(($)=>$.session.tokenUsage.estimatedCostUsd),u9=()=>z0(($)=>{let{totalInputTokens:J,cacheReadTokens:Y,cacheWriteTokens:Z}=$.session.tokenUsage;return m9({totalInputTokens:J,cacheReadTokens:Y,cacheWriteTokens:Z}).hitRate}),j8=()=>z0(($)=>$.session.providerRecovery),d9=()=>z0(($)=>$.session.turnActivity),l9=()=>z0(($)=>$.session.actionStationarity),u1=()=>z0(($)=>$.session.actions),r9=()=>z0(($)=>{let{totalTokens:J,maxContextTokens:Y}=$.session.tokenUsage;if(Y<=0)return 100;let Z=Math.max(0,100-J/Y*100);return Math.round(Z)}),a9=()=>z0(($)=>$.app.initializationStatus),i9=()=>z0(($)=>$.app.initializationError),V2=()=>z0(($)=>$.app.activeModal),o9=()=>z0(($)=>$.app.tasks),n9=()=>z0(($)=>$.app.modelEditorTarget),t9=()=>z0(($)=>$.app.sessionSelectorData),s9=()=>z0(($)=>$.app.sessionHistoryViewerData),e9=()=>z0(($)=>$.app.taskAttentionStatus),h8=()=>z0(($)=>$.app.taskAttentionUnreadKeys),$J=()=>z0(($)=>$.app.awaitingSecondCtrlC),O1=()=>z0(($)=>$.app.actions),j2=()=>z0(($)=>$.app.sideConversation),JJ=()=>z0(($)=>$.app.teams),E8=()=>z0(($)=>$.app.initializationStatus==="ready"),YJ=()=>z0(($)=>$.app.tasks.length>0),h2=()=>z0(($)=>$.config.config?.permissionMode||"default"),XJ=()=>z0(($)=>$.config.config?.models??GX),g8=()=>z0(($)=>{let J=$.config.config;if(!J)return;let Y=J.currentModelId;return J.models.find((X)=>X.id===Y)??J.models[0]}),m8=()=>z0(($)=>$.config.config?.currentModelId),ZJ=()=>z0(($)=>$.config.config?.agentTeamsEnabled===!0),f0=()=>z0(($)=>{return F$.getTheme()}),QJ=()=>z0(($)=>$.config.config?.codeTheme??"default"),s0=()=>z0(($)=>$.focus.currentFocus),UJ=()=>z0(($)=>$.focus.actions),E2=()=>z0(($)=>$.command.isProcessing),GJ=()=>z0(($)=>$.command.actions),p8=()=>z0(($)=>$.app.followUpQueue),KJ=()=>z0(($)=>$.app.followUpQueueMutation),zJ=()=>z0(($)=>$.command.recoveredSteeringCount),x8=()=>z0(($)=>$.app.reasoningEffort!=="off"),c8=()=>z0(($)=>$.app.reasoningEffort),u8=()=>z0(($)=>$.app.serviceTier),d8=()=>z0(($)=>$.app.responseVerbosity),l8=()=>z0(($)=>$.app.communicationStyle),r8=()=>z0(($)=>$.session.currentThinkingContent),qJ=()=>z0(($)=>$.session.thinkingExpanded),a8=()=>z0(($)=>$.session.currentStreamingMessageId),i8=()=>z0(UX(($)=>({lines:$.session.currentStreamingLines,tail:$.session.currentStreamingTail,lineCount:$.session.currentStreamingLineCount,version:$.session.currentStreamingVersion}))),_J=()=>z0(($)=>$.session.finalizingStreamingMessageId),OJ=()=>z0(($)=>$.session.historyExpanded),NJ=()=>z0(($)=>$.session.expandedMessageCount);import{randomUUID as eX}from"node:crypto";import{useMemoizedFn as Y1}from"ahooks";import{useEffect as d1,useMemo as KY,useRef as N6}from"react";function KX($,J){try{return $.code===J.code&&$.message===J.message&&$.retryable===J.retryable&&$.resource===J.resource}catch{return!1}}class G4{options;requested=!1;waitingForIdle=!1;disposed=!1;generation=0;wakeEpoch=0;idleEpoch=0;attempt=0;recoveryStartedAt=null;scheduledToken=null;activeAttemptToken=null;activeRunController=null;retryTimer=null;deadlineTimer=null;now;scheduleCallback;setTimerCallback;clearTimerCallback;constructor($){this.options=$;this.now=$.now??Date.now,this.scheduleCallback=$.scheduleMicrotask??queueMicrotask,this.setTimerCallback=$.setTimer??setTimeout,this.clearTimerCallback=$.clearTimer??clearTimeout}request(){if(this.disposed)return;if(this.wakeEpoch++,this.requested=!0,this.waitingForIdle||this.retryTimer)return;this.scheduleIfRunnable()}notifyIdle(){if(this.disposed)return;if(this.idleEpoch++,this.retryTimer)return;this.waitingForIdle=!1,this.scheduleIfRunnable()}dispose(){if(this.disposed)return;this.disposed=!0,this.generation++,this.requested=!1,this.waitingForIdle=!1,this.scheduledToken=null,this.clearOwnedTimer("retry"),this.clearOwnedTimer("deadline"),this.activeAttemptToken=null;let $=this.activeRunController;this.activeRunController=null,$?.abort("pending-resume-coordinator-disposed"),this.resetEpisodeBudget()}scheduleIfRunnable(){if(this.disposed||!this.requested||this.scheduledToken||this.activeAttemptToken||this.retryTimer||this.waitingForIdle)return;if(!this.options.canRun()){this.waitingForIdle=!0;return}let $=this.generation,J={};this.scheduledToken=J;try{this.scheduleCallback(()=>{if(this.disposed||$!==this.generation||this.scheduledToken!==J)return;this.scheduledToken=null,this.flush($).catch((Y)=>{this.handleUnexpectedFailure(Y,$)})})}catch(Y){this.handleUnexpectedFailure(Y,$)}}async flush($){if(this.disposed||$!==this.generation||this.activeAttemptToken||!this.requested||this.retryTimer||this.waitingForIdle)return;if(!this.options.canRun()){this.waitingForIdle=!0;return}let J={},Y=new AbortController,Z=this.wakeEpoch,X=this.idleEpoch;if(this.attempt++,this.recoveryStartedAt===null)this.recoveryStartedAt=this.now(),this.installDeadlineTimer($);this.activeAttemptToken=J,this.activeRunController=Y;let Q;try{Q=await this.options.run(Y.signal)}finally{if(this.activeAttemptToken===J){if(this.activeAttemptToken=null,this.activeRunController=null,!this.disposed&&$!==this.generation)this.scheduleIfRunnable()}}if(this.disposed||$!==this.generation)return;if(Q.status==="completed"){let U=this.wakeEpoch!==Z;if(this.clearEpisode(),U)this.requested=!0,this.scheduleIfRunnable();return}if(Q.status==="deferred"){if(this.attempt--,this.attempt===0)this.clearOwnedTimer("deadline"),this.resetEpisodeBudget();if(this.requested=!0,this.idleEpoch!==X)this.waitingForIdle=!1,this.scheduleIfRunnable();else this.waitingForIdle=!0;return}this.handleFailure(Q,$)}handleFailure($,J){let Y=g2($.taskFailure),Z=this.options.sessionIdentity;if($.workKind!=="pending_input"||!$.evidence||!Z||!KX($.taskFailure,$.evidence.taskFailure)){this.terminate("failed",this.attempt,Y);return}let X=FJ({sessionIdentity:Z,failedAttempt:this.attempt,recoveryStartedAt:this.recoveryStartedAt??this.now(),now:this.now(),workStillPending:$.workStillPending,evidence:$.evidence});if(X.phase!=="retry_scheduled"){this.terminate(X.phase,this.attempt,Y);return}this.requested=!0,this.waitingForIdle=!1;let Q={},U=this.setTimerCallback(()=>{if(this.disposed||J!==this.generation||this.retryTimer?.token!==Q)return;this.retryTimer=null,this.scheduleIfRunnable()},X.delayMs);this.retryTimer={handle:U,token:Q},U.unref?.()}handleUnexpectedFailure($,J){if(this.disposed||J!==this.generation)return;this.terminate("failed",Math.max(1,this.attempt),g2($),"pending-resume-coordinator-failed")}installDeadlineTimer($){let J={},Y=this.setTimerCallback(()=>{if(this.disposed||$!==this.generation||this.deadlineTimer?.token!==J)return;this.deadlineTimer=null,this.terminate("exhausted",Math.max(1,this.attempt),WJ("timeout"),"pending-resume-recovery-deadline-exceeded")},HJ);this.deadlineTimer={handle:Y,token:J},Y.unref?.()}terminate($,J,Y,Z){let X=this.activeRunController;if(this.generation++,this.requested=!1,this.waitingForIdle=!1,this.scheduledToken=null,this.clearOwnedTimer("retry"),this.clearOwnedTimer("deadline"),this.resetEpisodeBudget(),Z)X?.abort(Z);try{this.options.onTerminalFailure?.({phase:$,attempt:J,taskFailure:Y})}catch{}}clearEpisode(){this.requested=!1,this.waitingForIdle=!1,this.clearOwnedTimer("retry"),this.clearOwnedTimer("deadline"),this.resetEpisodeBudget()}resetEpisodeBudget(){this.attempt=0,this.recoveryStartedAt=null}clearOwnedTimer($){let J=$==="retry"?this.retryTimer:this.deadlineTimer;if(!J)return;if($==="retry")this.retryTimer=null;else this.deadlineTimer=null;this.clearTimerCallback(J.handle)}}class Q8{options;finalized=!1;constructor($){this.options=$}get isFinalized(){return this.finalized}acceptsDeltas(){return!this.finalized&&!this.options.signal.aborted}startTurn(){this.finalized=!1}finalize(){if(!this.acceptsDeltas())return!1;return this.finalized=!0,this.commit(this.options.streamingBuffer.drainPendingBuffers()),!0}abortAndFinalize($){if(this.finalized)return $(),!1;this.finalized=!0;let J=this.options.streamingBuffer.drainPendingBuffers();return $(),this.commit(J),!0}discard(){this.finalized=!0,this.options.streamingBuffer.resetStreamingBuffers(),this.options.discardStreamingMessage(),this.options.clearThinking()}commit($){let J=this.options.getStreamingMessageId();if(J){if($.extraContent)o8(J,$.extraContent);LJ(J)}this.options.finalizeStreamingMessage($.extraContent,$.extraThinking)}}function zX($){if(!($ instanceof Error))return"未知错误";let Z=$.lastError??$;if(Z.responseBody)try{let U=JSON.parse(Z.responseBody)?.error?.message;if(U){let G=Z.statusCode?` (HTTP ${Z.statusCode})`:"";return`${U}${G}`}}catch{}let X=$.message.match(/Last error:\s*(.+)$/);if(X)return X[1];return $.message}function qX($){if(!($ instanceof Error))return!1;return $.name==="AbortError"||$.message.includes("aborted")}function _X($){if(!($ instanceof Error))return!1;let J=$.message;return J.includes("can only concatenate str")||J.includes("image_url")||J.includes("multimodal")||J.includes("vision")||J.includes("does not support images")}function n8($){let J=qX($),Y=_X($),Z;if(Y)Z="当前模型不支持图片理解功能。请切换到支持视觉能力的模型(如 Claude 4.5、GPT-5.2、Gemini 3 Pro、Qwen3-VL-Plus 等)后重试。";else Z=zX($);return{displayMessage:Z,isAbort:J,isVisionNotSupported:Y}}import{appendFileSync as OX,mkdirSync as NX,writeFileSync as WX}from"node:fs";import HX from"node:os";import K4 from"node:path";var wJ=null;function FX(){let $=process.env.BLADE_STORAGE_ROOT||K4.join(HX.homedir(),".blade");return K4.join($,"logs","stream-debug.log")}function LX($){if(wJ===$)return;let J=K4.dirname($);NX(J,{recursive:!0,mode:493}),WX($,`=== Stream Debug Log Started: ${new Date().toISOString()} ===
|
|
1
|
+
import{e as p5,f as x5,h as I$,i as M6}from"./chunk-33sgdacd.js";import{l as x7,m as c7,n as u7}from"./chunk-hdbxph08.js";import{B as HJ,C as FJ,D as q6}from"./chunk-gt2wpeyx.js";import{$ as WY,Ba as _3,Ca as O3,Da as XX,Ea as tJ,Ga as sJ,Ia as pY,L as mY,P as YX,R as h4,S as T4,T as SY,U as kY,_ as NY,ca as HY,ha as a$,ja as PJ,ka as bJ,ma as FY,oa as z8,pa as X7,qa as Z7,ta as Q7,ua as U7,ya as m9,za as W3}from"./chunk-4mamvx8a.js";import"./chunk-nad5spvc.js";import{Qa as b5,Ra as M5,Sa as T5,Va as JX}from"./chunk-70n8qq1r.js";import{Xa as OY}from"./chunk-whxkwaz1.js";import{Qb as qY,Rb as F6,bc as _Y,mc as B4}from"./chunk-6s4btp37.js";import{xc as N8}from"./chunk-9qxch6sy.js";import{$d as AJ,Hd as XY,Rd as WJ,Sd as g2,Wd as BJ,ae as p2,ce as t8,ke as K8,ne as a0}from"./chunk-d561qcwy.js";import"./chunk-skktstg8.js";import{Re as CJ,Se as w4,Te as RJ}from"./chunk-s14zayxp.js";import{of as aJ,pf as U6}from"./chunk-b5cz00mt.js";import{Cf as m7}from"./chunk-yjdyzb5z.js";import{Df as W8,Ef as _6,Gf as J1}from"./chunk-j4v5f56k.js";import"./chunk-crv3sghv.js";import{Kf as C2,Lf as F$,Mf as r1,Nf as J9,Of as o8,Pf as LJ,Qf as m3,Rf as A9,Sf as D5,Tf as p3,Uf as D2,Vf as m0,Wf as e7,Xf as L$,Yf as g7,Zf as l6,_f as _8,bg as rJ,eg as K$}from"./chunk-chhf109c.js";import"./chunk-x6k5ye1z.js";import"./chunk-v508x7cg.js";import"./chunk-1g7c3f82.js";import"./chunk-3v9epq9s.js";import{wg as P9}from"./chunk-eexs73bz.js";import"./chunk-pm163dfm.js";import"./chunk-1khsmsem.js";import{Jg as H6,Kg as C7,Pg as Y7,Yg as $X}from"./chunk-ska66dmc.js";import"./chunk-kehgewqh.js";import"./chunk-kkzznz4w.js";import"./chunk-1cy4ab77.js";import"./chunk-7ajvrtb3.js";import{Ah as j$,yh as Z9}from"./chunk-d9gdv6hv.js";import"./chunk-ys8gysg8.js";import{Ih as fJ,Pi as t7,Ui as J7,Vi as s7}from"./chunk-ep0g03gq.js";import{Zi as G$}from"./chunk-b22ab7yw.js";import"./chunk-amabfzc8.js";import{wj as m2,xj as e8,zj as Q9}from"./chunk-m2x6pb4f.js";import{Bj as n7,Ej as N1}from"./chunk-saz6mwpq.js";import{Mj as E5,Nj as g5,Qj as C1}from"./chunk-xhwdac1j.js";import"./chunk-0eajnhrj.js";import{_j as y5}from"./chunk-k17d0ysy.js";import{ck as E9}from"./chunk-asgmmaec.js";import{dk as G8,xk as lJ}from"./chunk-ed2hdrwe.js";import{Jk as Y6}from"./chunk-gmpsfkgg.js";import{useMemoizedFn as Z4}from"ahooks";import{useEffect as gK,useState as Q4}from"react";import{useMemoizedFn as i0}from"ahooks";import h7 from"ansi-escapes";import{Box as g1,useStdout as fK}from"ink";import{useEffect as $1,useMemo as DK,useRef as y2,useState as E7}from"react";import{useShallow as UX}from"zustand/react/shallow";import{useStore as QX}from"zustand";function z0($){return QX(D2,$)}var GX=[],v2=()=>z0(($)=>$.session.sessionId),_1=()=>z0(($)=>$.session.workspaceRoot),V8=()=>z0(($)=>$.session.messages),p9=()=>z0(($)=>$.session.clearCount),x9=()=>z0(($)=>$.session.isCompacting),c9=()=>z0(($)=>$.session.tokenUsage.estimatedCostUsd),u9=()=>z0(($)=>{let{totalInputTokens:J,cacheReadTokens:Y,cacheWriteTokens:Z}=$.session.tokenUsage;return m9({totalInputTokens:J,cacheReadTokens:Y,cacheWriteTokens:Z}).hitRate}),j8=()=>z0(($)=>$.session.providerRecovery),d9=()=>z0(($)=>$.session.turnActivity),l9=()=>z0(($)=>$.session.actionStationarity),u1=()=>z0(($)=>$.session.actions),r9=()=>z0(($)=>{let{totalTokens:J,maxContextTokens:Y}=$.session.tokenUsage;if(Y<=0)return 100;let Z=Math.max(0,100-J/Y*100);return Math.round(Z)}),a9=()=>z0(($)=>$.app.initializationStatus),i9=()=>z0(($)=>$.app.initializationError),V2=()=>z0(($)=>$.app.activeModal),o9=()=>z0(($)=>$.app.tasks),n9=()=>z0(($)=>$.app.modelEditorTarget),t9=()=>z0(($)=>$.app.sessionSelectorData),s9=()=>z0(($)=>$.app.sessionHistoryViewerData),e9=()=>z0(($)=>$.app.taskAttentionStatus),h8=()=>z0(($)=>$.app.taskAttentionUnreadKeys),$J=()=>z0(($)=>$.app.awaitingSecondCtrlC),O1=()=>z0(($)=>$.app.actions),j2=()=>z0(($)=>$.app.sideConversation),JJ=()=>z0(($)=>$.app.teams),E8=()=>z0(($)=>$.app.initializationStatus==="ready"),YJ=()=>z0(($)=>$.app.tasks.length>0),h2=()=>z0(($)=>$.config.config?.permissionMode||"default"),XJ=()=>z0(($)=>$.config.config?.models??GX),g8=()=>z0(($)=>{let J=$.config.config;if(!J)return;let Y=J.currentModelId;return J.models.find((X)=>X.id===Y)??J.models[0]}),m8=()=>z0(($)=>$.config.config?.currentModelId),ZJ=()=>z0(($)=>$.config.config?.agentTeamsEnabled===!0),f0=()=>z0(($)=>{return F$.getTheme()}),QJ=()=>z0(($)=>$.config.config?.codeTheme??"default"),s0=()=>z0(($)=>$.focus.currentFocus),UJ=()=>z0(($)=>$.focus.actions),E2=()=>z0(($)=>$.command.isProcessing),GJ=()=>z0(($)=>$.command.actions),p8=()=>z0(($)=>$.app.followUpQueue),KJ=()=>z0(($)=>$.app.followUpQueueMutation),zJ=()=>z0(($)=>$.command.recoveredSteeringCount),x8=()=>z0(($)=>$.app.reasoningEffort!=="off"),c8=()=>z0(($)=>$.app.reasoningEffort),u8=()=>z0(($)=>$.app.serviceTier),d8=()=>z0(($)=>$.app.responseVerbosity),l8=()=>z0(($)=>$.app.communicationStyle),r8=()=>z0(($)=>$.session.currentThinkingContent),qJ=()=>z0(($)=>$.session.thinkingExpanded),a8=()=>z0(($)=>$.session.currentStreamingMessageId),i8=()=>z0(UX(($)=>({lines:$.session.currentStreamingLines,tail:$.session.currentStreamingTail,lineCount:$.session.currentStreamingLineCount,version:$.session.currentStreamingVersion}))),_J=()=>z0(($)=>$.session.finalizingStreamingMessageId),OJ=()=>z0(($)=>$.session.historyExpanded),NJ=()=>z0(($)=>$.session.expandedMessageCount);import{randomUUID as eX}from"node:crypto";import{useMemoizedFn as Y1}from"ahooks";import{useEffect as d1,useMemo as KY,useRef as N6}from"react";function KX($,J){try{return $.code===J.code&&$.message===J.message&&$.retryable===J.retryable&&$.resource===J.resource}catch{return!1}}class G4{options;requested=!1;waitingForIdle=!1;disposed=!1;generation=0;wakeEpoch=0;idleEpoch=0;attempt=0;recoveryStartedAt=null;scheduledToken=null;activeAttemptToken=null;activeRunController=null;retryTimer=null;deadlineTimer=null;now;scheduleCallback;setTimerCallback;clearTimerCallback;constructor($){this.options=$;this.now=$.now??Date.now,this.scheduleCallback=$.scheduleMicrotask??queueMicrotask,this.setTimerCallback=$.setTimer??setTimeout,this.clearTimerCallback=$.clearTimer??clearTimeout}request(){if(this.disposed)return;if(this.wakeEpoch++,this.requested=!0,this.waitingForIdle||this.retryTimer)return;this.scheduleIfRunnable()}notifyIdle(){if(this.disposed)return;if(this.idleEpoch++,this.retryTimer)return;this.waitingForIdle=!1,this.scheduleIfRunnable()}dispose(){if(this.disposed)return;this.disposed=!0,this.generation++,this.requested=!1,this.waitingForIdle=!1,this.scheduledToken=null,this.clearOwnedTimer("retry"),this.clearOwnedTimer("deadline"),this.activeAttemptToken=null;let $=this.activeRunController;this.activeRunController=null,$?.abort("pending-resume-coordinator-disposed"),this.resetEpisodeBudget()}scheduleIfRunnable(){if(this.disposed||!this.requested||this.scheduledToken||this.activeAttemptToken||this.retryTimer||this.waitingForIdle)return;if(!this.options.canRun()){this.waitingForIdle=!0;return}let $=this.generation,J={};this.scheduledToken=J;try{this.scheduleCallback(()=>{if(this.disposed||$!==this.generation||this.scheduledToken!==J)return;this.scheduledToken=null,this.flush($).catch((Y)=>{this.handleUnexpectedFailure(Y,$)})})}catch(Y){this.handleUnexpectedFailure(Y,$)}}async flush($){if(this.disposed||$!==this.generation||this.activeAttemptToken||!this.requested||this.retryTimer||this.waitingForIdle)return;if(!this.options.canRun()){this.waitingForIdle=!0;return}let J={},Y=new AbortController,Z=this.wakeEpoch,X=this.idleEpoch;if(this.attempt++,this.recoveryStartedAt===null)this.recoveryStartedAt=this.now(),this.installDeadlineTimer($);this.activeAttemptToken=J,this.activeRunController=Y;let Q;try{Q=await this.options.run(Y.signal)}finally{if(this.activeAttemptToken===J){if(this.activeAttemptToken=null,this.activeRunController=null,!this.disposed&&$!==this.generation)this.scheduleIfRunnable()}}if(this.disposed||$!==this.generation)return;if(Q.status==="completed"){let U=this.wakeEpoch!==Z;if(this.clearEpisode(),U)this.requested=!0,this.scheduleIfRunnable();return}if(Q.status==="deferred"){if(this.attempt--,this.attempt===0)this.clearOwnedTimer("deadline"),this.resetEpisodeBudget();if(this.requested=!0,this.idleEpoch!==X)this.waitingForIdle=!1,this.scheduleIfRunnable();else this.waitingForIdle=!0;return}this.handleFailure(Q,$)}handleFailure($,J){let Y=g2($.taskFailure),Z=this.options.sessionIdentity;if($.workKind!=="pending_input"||!$.evidence||!Z||!KX($.taskFailure,$.evidence.taskFailure)){this.terminate("failed",this.attempt,Y);return}let X=FJ({sessionIdentity:Z,failedAttempt:this.attempt,recoveryStartedAt:this.recoveryStartedAt??this.now(),now:this.now(),workStillPending:$.workStillPending,evidence:$.evidence});if(X.phase!=="retry_scheduled"){this.terminate(X.phase,this.attempt,Y);return}this.requested=!0,this.waitingForIdle=!1;let Q={},U=this.setTimerCallback(()=>{if(this.disposed||J!==this.generation||this.retryTimer?.token!==Q)return;this.retryTimer=null,this.scheduleIfRunnable()},X.delayMs);this.retryTimer={handle:U,token:Q},U.unref?.()}handleUnexpectedFailure($,J){if(this.disposed||J!==this.generation)return;this.terminate("failed",Math.max(1,this.attempt),g2($),"pending-resume-coordinator-failed")}installDeadlineTimer($){let J={},Y=this.setTimerCallback(()=>{if(this.disposed||$!==this.generation||this.deadlineTimer?.token!==J)return;this.deadlineTimer=null,this.terminate("exhausted",Math.max(1,this.attempt),WJ("timeout"),"pending-resume-recovery-deadline-exceeded")},HJ);this.deadlineTimer={handle:Y,token:J},Y.unref?.()}terminate($,J,Y,Z){let X=this.activeRunController;if(this.generation++,this.requested=!1,this.waitingForIdle=!1,this.scheduledToken=null,this.clearOwnedTimer("retry"),this.clearOwnedTimer("deadline"),this.resetEpisodeBudget(),Z)X?.abort(Z);try{this.options.onTerminalFailure?.({phase:$,attempt:J,taskFailure:Y})}catch{}}clearEpisode(){this.requested=!1,this.waitingForIdle=!1,this.clearOwnedTimer("retry"),this.clearOwnedTimer("deadline"),this.resetEpisodeBudget()}resetEpisodeBudget(){this.attempt=0,this.recoveryStartedAt=null}clearOwnedTimer($){let J=$==="retry"?this.retryTimer:this.deadlineTimer;if(!J)return;if($==="retry")this.retryTimer=null;else this.deadlineTimer=null;this.clearTimerCallback(J.handle)}}class Q8{options;finalized=!1;constructor($){this.options=$}get isFinalized(){return this.finalized}acceptsDeltas(){return!this.finalized&&!this.options.signal.aborted}startTurn(){this.finalized=!1}finalize(){if(!this.acceptsDeltas())return!1;return this.finalized=!0,this.commit(this.options.streamingBuffer.drainPendingBuffers()),!0}abortAndFinalize($){if(this.finalized)return $(),!1;this.finalized=!0;let J=this.options.streamingBuffer.drainPendingBuffers();return $(),this.commit(J),!0}discard(){this.finalized=!0,this.options.streamingBuffer.resetStreamingBuffers(),this.options.discardStreamingMessage(),this.options.clearThinking()}commit($){let J=this.options.getStreamingMessageId();if(J){if($.extraContent)o8(J,$.extraContent);LJ(J)}this.options.finalizeStreamingMessage($.extraContent,$.extraThinking)}}function zX($){if(!($ instanceof Error))return"未知错误";let Z=$.lastError??$;if(Z.responseBody)try{let U=JSON.parse(Z.responseBody)?.error?.message;if(U){let G=Z.statusCode?` (HTTP ${Z.statusCode})`:"";return`${U}${G}`}}catch{}let X=$.message.match(/Last error:\s*(.+)$/);if(X)return X[1];return $.message}function qX($){if(!($ instanceof Error))return!1;return $.name==="AbortError"||$.message.includes("aborted")}function _X($){if(!($ instanceof Error))return!1;let J=$.message;return J.includes("can only concatenate str")||J.includes("image_url")||J.includes("multimodal")||J.includes("vision")||J.includes("does not support images")}function n8($){let J=qX($),Y=_X($),Z;if(Y)Z="当前模型不支持图片理解功能。请切换到支持视觉能力的模型(如 Claude 4.5、GPT-5.2、Gemini 3 Pro、Qwen3-VL-Plus 等)后重试。";else Z=zX($);return{displayMessage:Z,isAbort:J,isVisionNotSupported:Y}}import{appendFileSync as OX,mkdirSync as NX,writeFileSync as WX}from"node:fs";import HX from"node:os";import K4 from"node:path";var wJ=null;function FX(){let $=process.env.BLADE_STORAGE_ROOT||K4.join(HX.homedir(),".blade");return K4.join($,"logs","stream-debug.log")}function LX($){if(wJ===$)return;let J=K4.dirname($);NX(J,{recursive:!0,mode:493}),WX($,`=== Stream Debug Log Started: ${new Date().toISOString()} ===
|
|
2
2
|
`),wJ=$}function z4($,J,Y){try{let Z=FX();LX(Z);let X=new Date().toISOString(),Q=Y?` | ${JSON.stringify(Y)}`:"",U=`[${X}] [${$}] ${J}${Q}
|
|
3
3
|
`;OX(Z,U)}catch{}}var U8=N1("UI");function q4($,J){if(J.state==="requires_attention"){let Y=J.reason==="interrupted_tool_call";$.addToolMessage("Turn recovery requires attention",{toolName:"Runtime Recovery",phase:"complete",summary:Y?"An interrupted tool may have partially completed":"A completed tool may already have changed external state",detail:`${J.turnId} · inspect workspace, processes, and external state before retrying`});return}$.addToolMessage(J.state==="completed"?"Recovered completed turn":"Resuming interrupted turn",{toolName:"Runtime Recovery",phase:"complete",summary:J.state==="completed"?"The durable final response was recovered":"No tool execution was recorded before interruption",detail:J.turnId})}function MJ($,J){let Y=$.streamSession??new Q8({signal:$.signal,streamingBuffer:$.streamingBuffer,getStreamingMessageId:$.getStreamingMessageId,finalizeStreamingMessage:$.sessionActions.finalizeStreamingMessage,discardStreamingMessage:$.sessionActions.discardStreamingMessage,clearThinking:()=>$.sessionActions.setCurrentThinkingContent(null)}),Z=(X)=>{for(let Q of X){if((Q.origin??"user")!=="user")continue;let U=$.commandActions.takeFollowUpPresentation(Q.id);if(U){$.sessionActions.addUserMessage(U.displayText);continue}if(!Q.recovered||Q.persisted)continue;let G=typeof Q.content==="string"?Q.content:Q.content.map((z)=>z.type==="text"?z.text:"[Image]").join(`
|
|
4
4
|
`);$.sessionActions.addUserMessage(G)}};return(X)=>{switch(X.kind){case"content_delta":if(X.delta.length>0)J.outputStarted=!0;if(!Y.acceptsDeltas())break;J.contentDeltaCount++,J.contentDeltaTotalLen+=X.delta.length,z4("loopEventHandler","onContentDelta",{callCount:J.contentDeltaCount,deltaLen:X.delta.length,totalLen:J.contentDeltaTotalLen}),$.streamingBuffer.batchAppendContent(X.delta);break;case"thinking_delta":if(X.delta.length>0)J.outputStarted=!0;if(!Y.acceptsDeltas())break;if($.thinkingModeEnabled)$.streamingBuffer.batchAppendThinking(X.delta);break;case"stream_end":{$.sessionActions.setProviderCircuit(null),$.sessionActions.setProviderRetry(null),$.sessionActions.setProviderStall(null),U8.debug("[loopEventHandler] stream_end",{contentDeltaCount:J.contentDeltaCount,contentDeltaTotalLen:J.contentDeltaTotalLen,streamFinalized:Y.isFinalized,signalAborted:$.signal.aborted}),z4("loopEventHandler","onStreamEnd",{contentDeltaCallCount:J.contentDeltaCount,contentDeltaTotalLen:J.contentDeltaTotalLen,streamFinalized:Y.isFinalized,signalAborted:$.signal.aborted}),Y.finalize();break}case"model_fallback":$.sessionActions.setProviderAdmission(null),$.sessionActions.setProviderCircuit(null),$.sessionActions.setProviderRetry(null),$.sessionActions.setProviderStall(null),Y.discard();break;case"provider_admission":{let{kind:Q,...U}=X;$.sessionActions.setProviderAdmission(X.phase==="queued"?U:null);break}case"provider_circuit":{let{kind:Q,...U}=X;$.sessionActions.setProviderCircuit(X.phase==="closed"?null:U);break}case"provider_retry":{let{kind:Q,...U}=X;$.sessionActions.setProviderRetry(X.phase==="recovered"?null:U);break}case"provider_stall":{let{kind:Q,...U}=X;$.sessionActions.setProviderStall(X.phase==="detected"?U:null);break}case"provider_recovery":$.sessionActions.setProviderRecovery(X.recovery);break;case"action_stationarity":{let{kind:Q,...U}=X;$.sessionActions.setActionStationarity(X.phase==="recovered"?null:U);break}case"turn_recovery":{q4($.sessionActions,X.assessment);break}case"tool_start":{J.toolExecutionStarted=!0;let Q=X.toolCall;if(!("function"in Q))break;if(Q.function.name===t8)break;if(U8.debug("[loopEventHandler] tool_start",{toolName:Q.function.name,toolKind:X.toolKind}),["TaskCreate","TaskUpdate","TaskList"].includes(Q.function.name))break;try{let U=JSON.parse(Q.function.arguments),G=PJ(Q.function.name,U);$.sessionActions.addToolMessage(G,{toolCallId:Q.id,toolName:Q.function.name,phase:"start",summary:G,params:U})}catch(U){U8.error("[loopEventHandler] onToolStart error:",U)}break}case"tool_progress":{J.toolExecutionStarted=!0;let Q=X.toolCall;if(!("function"in Q))break;if(Q.function.name===t8)break;let U=X.update.total!==void 0?` ${Math.max(0,Math.min(100,Math.round((X.update.progress??0)/X.update.total*100)))}%`:"",G=`${Q.function.name}${U}: ${X.update.message}`;$.sessionActions.addToolMessage(G,{toolCallId:Q.id,toolName:Q.function.name,phase:"progress",summary:G,...X.update.admission?{admission:X.update.admission}:{}});break}case"tool_result":{J.toolExecutionStarted=!0;let Q=X.toolCall;if(!("function"in Q))break;if(Q.function.name===t8)break;U8.debug("[loopEventHandler] tool_result",{toolName:Q.function.name,success:X.result.success});let U=AJ(bJ(Q.function.name,X.result),BJ);$.sessionActions.addToolMessage(U.summary,{toolCallId:Q.id,toolName:Q.function.name,phase:"complete",summary:U.summary,detail:U.detail});break}case"structured_output":J.outputStarted=!0,$.sessionActions.replaceLastAssistantMessage(JSON.stringify(X.output,null,2));break;case"token_usage":$.sessionActions.updateTokenUsage(X.usage);break;case"conversation_recap":if($.signal.aborted)break;$.sessionActions.addMessage({id:X.messageId,role:"assistant",content:X.text,timestamp:Date.now(),metadata:{conversationRecap:!0}});break;case"compaction":if($.sessionActions.setCompacting(X.phase==="start"),X.phase==="end"){if(X.outcome!=="failed")$.sessionActions.resetContextUsage(),J.compactionCount=(J.compactionCount??0)+1;if(X.memory?.outcome==="written"){let Q=`Saved ${X.memory.entries} project memories`;$.sessionActions.addToolMessage(Q,{toolName:"Project Memory",phase:"complete",summary:Q})}}break;case"turn_start":U8.debug("[loopEventHandler] turn_start",{turn:X.turn,maxTurns:X.maxTurns}),$.sessionActions.updateTokenUsage({turnCount:X.turn}),$.sessionActions.setProviderCircuit(null),$.sessionActions.setProviderRetry(null),$.sessionActions.setProviderStall(null),Y.startTurn();break;case"task_update":$.appActions.setTasks(X.tasks);break;case"goal_frontier_updated":$.appActions.setTasks(X.tasks);break;case"mcp_catalog_changed":{let Q=`MCP catalog r${X.revision}: +${X.added.length} -${X.removed.length} ~${X.updated.length}`;$.sessionActions.addToolMessage(Q,{toolName:"MCP Catalog",phase:"complete",summary:Q,detail:[X.added.length>0?`Added: ${X.added.join(", ")}`:"",X.removed.length>0?`Removed: ${X.removed.join(", ")}`:"",X.updated.length>0?`Updated: ${X.updated.join(", ")}`:""].filter(Boolean).join(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./chunk-v508x7cg.js";import{Ui as Q}from"./chunk-
|
|
2
|
-
`);try{let{rebuildProjectionIndex:z}=await import("./chunk-hb680ebj.js"),{SessionService:B}=await import("./chunk-
|
|
1
|
+
import"./chunk-v508x7cg.js";import{Ui as Q}from"./chunk-ep0g03gq.js";import{Zi as L}from"./chunk-b22ab7yw.js";import"./chunk-amabfzc8.js";import"./chunk-m2x6pb4f.js";import"./chunk-saz6mwpq.js";import"./chunk-xhwdac1j.js";import"./chunk-0eajnhrj.js";import"./chunk-k17d0ysy.js";import"./chunk-asgmmaec.js";import"./chunk-ed2hdrwe.js";import{Jk as F}from"./chunk-gmpsfkgg.js";var K=[22,19,0];function T(G){let A=/^v?(\d+)\.(\d+)\.(\d+)/.exec(G);if(!A)return!1;let H=A.slice(1).map(Number);for(let z=0;z<K.length;z++){let B=H[z]??0,J=K[z];if(B!==J)return B>J}return!0}var X={command:"doctor",describe:"Check the health of your Blade installation",builder:(G)=>G.option("rebuild-index",{type:"boolean",default:!1,describe:"Rebuild the SQLite session index from JSONL transcripts"}),handler:async(G)=>{if(G.rebuildIndex){console.log(`Rebuilding session index from JSONL transcripts...
|
|
2
|
+
`);try{let{rebuildProjectionIndex:z}=await import("./chunk-hb680ebj.js"),{SessionService:B}=await import("./chunk-zhnctpb5.js"),J=await z(B.projectionDeriverForSearch());if(J===null)console.log("[WARN] Session index unavailable (SQLite driver missing); reads fall back to JSONL scan.");else console.log(`[OK] Session index rebuilt: ${J} session(s) indexed.`)}catch(z){console.log("[FAIL] Session index rebuild failed"),console.log(` Error: ${z instanceof Error?z.message:"未知错误"}`),process.exit(1)}return}console.log(`Running Blade health check...
|
|
3
3
|
`);let A=0;try{await Q.getInstance().initialize(),console.log("[OK] Configuration: OK")}catch(z){console.log("[FAIL] Configuration: FAILED"),console.log(` Error: ${z instanceof Error?z.message:"未知错误"}`),A++}let H=process.version;if(T(H))console.log(`[OK] Node.js version: ${H}`);else console.log(`[WARN] Node.js version: ${H} (required: >=22.19.0)`),A++;try{let z=await import("fs/promises"),B=L();await z.access(B,(await import("fs")).constants.R_OK|(await import("fs")).constants.W_OK),console.log("[OK] File system permissions: OK")}catch(z){console.log("[FAIL] File system permissions: FAILED"),console.log(" Error: Cannot read/write in current directory"),A++}try{await import("ink"),console.log("[OK] Dependencies: OK")}catch(z){console.log("[FAIL] Dependencies: FAILED"),console.log(" Error: Missing required dependencies"),A++}if(console.log(`
|
|
4
4
|
Health Check Summary:`),A===0)console.log("All checks passed! Blade is ready to use.");else console.log(`Warning: Found ${A} issue(s). Please resolve them for optimal performance.`),process.exit(1)}};export{T as isSupportedNodeVersion,X as doctorCommands};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Va as H}from"./chunk-
|
|
1
|
+
import{Va as H}from"./chunk-70n8qq1r.js";import"./chunk-9qxch6sy.js";import"./chunk-skktstg8.js";import{cg as $,eg as T}from"./chunk-chhf109c.js";import"./chunk-x6k5ye1z.js";import"./chunk-v508x7cg.js";import"./chunk-d9gdv6hv.js";import"./chunk-ys8gysg8.js";import"./chunk-ep0g03gq.js";import{Zi as k}from"./chunk-b22ab7yw.js";import"./chunk-amabfzc8.js";import"./chunk-m2x6pb4f.js";import"./chunk-saz6mwpq.js";import"./chunk-xhwdac1j.js";import"./chunk-0eajnhrj.js";import"./chunk-k17d0ysy.js";import"./chunk-asgmmaec.js";import"./chunk-ed2hdrwe.js";import"./chunk-gmpsfkgg.js";import U from"os";import J from"path";function X(z){return typeof z==="string"?z:void 0}function N(z){if(!Array.isArray(z))return;let q=[];for(let K of z)if(typeof K==="string")q.push(K);else if(K!=null)q.push(String(K));return q}function b(){console.log(`
|
|
2
2
|
blade mcp
|
|
3
3
|
`),console.log(`管理 MCP 服务器
|
|
4
4
|
`),console.log("Commands:"),console.log(" blade mcp add <name> <commandOrUrl> [args...] 添加 MCP 服务器"),console.log(" blade mcp remove <name> 删除 MCP 服务器 [aliases: rm]"),console.log(" blade mcp list 列出所有 MCP 服务器并检查健康状态 [aliases: ls]"),console.log(" blade mcp get <name> 获取服务器详情"),console.log(" blade mcp login <name> 登录远程 MCP OAuth"),console.log(" blade mcp logout <name> 清除远程 MCP OAuth 凭证"),console.log(` blade mcp add-json <name> <json> 从 JSON 字符串添加服务器
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{he as a,ie as b,je as c,ke as d,le as e,me as f,ne as g}from"./chunk-
|
|
1
|
+
import{he as a,ie as b,je as c,ke as d,le as e,me as f,ne as g}from"./chunk-d561qcwy.js";import"./chunk-skktstg8.js";import"./chunk-s14zayxp.js";import"./chunk-b5cz00mt.js";import"./chunk-pm163dfm.js";import"./chunk-1cy4ab77.js";import"./chunk-ys8gysg8.js";import"./chunk-b22ab7yw.js";import"./chunk-m2x6pb4f.js";import"./chunk-saz6mwpq.js";import"./chunk-0eajnhrj.js";import"./chunk-k17d0ysy.js";import"./chunk-ed2hdrwe.js";import"./chunk-gmpsfkgg.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};
|
package/package.json
CHANGED
package/dist/chunk-2s1gmqh4.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{xf as a,yf as b}from"./chunk-rgxknntk.js";import"./chunk-bzwxh6nq.js";import"./chunk-gmpsfkgg.js";export{a as globalOptions,b as cliConfig};
|
package/dist/chunk-p9dvggw1.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{k as a,l as b,m as c,n as d,o as e}from"./chunk-y7zh1sq6.js";import"./chunk-bzwxh6nq.js";import"./chunk-gmpsfkgg.js";export{b as setSkipUntilVersion,d as performUpgrade,c as getUpgradeCommand,e as checkVersionOnStartup,a as checkVersion};
|