blade-code 0.10.76 → 0.10.77
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-9fm80wbr.js → chunk-0141jad7.js} +1 -1
- package/dist/{chunk-aq15mcwm.js → chunk-091qx62q.js} +1 -1
- package/dist/{chunk-fmkntp49.js → chunk-0a0sj79a.js} +2 -2
- package/dist/chunk-0cbr2gs7.js +168 -0
- package/dist/{chunk-zvpr8s8r.js → chunk-0hpenwph.js} +1 -1
- package/dist/{chunk-9x141v5g.js → chunk-0ra945vt.js} +2 -2
- package/dist/{chunk-yg7cacsc.js → chunk-1mc7nfb4.js} +1 -1
- package/dist/chunk-28drv25s.js +1 -0
- package/dist/{chunk-j67n7v73.js → chunk-2herdn98.js} +1 -1
- package/dist/{chunk-wx9zxzgm.js → chunk-33bpwkyk.js} +2 -2
- package/dist/chunk-3ekj5azv.js +1 -0
- package/dist/chunk-3j0dhewn.js +1 -0
- package/dist/{chunk-6h3x4jv0.js → chunk-5e56atqj.js} +26 -26
- package/dist/{chunk-68stvfdj.js → chunk-5nezhmnq.js} +2 -2
- package/dist/{chunk-zk34d9mm.js → chunk-69s3e453.js} +1 -1
- package/dist/chunk-6adxyred.js +1 -0
- package/dist/{chunk-9dspha54.js → chunk-72kqnntm.js} +2 -2
- package/dist/{chunk-kxgr18gy.js → chunk-7ffdedgc.js} +2 -2
- package/dist/{chunk-n5d0d6q7.js → chunk-7nx0pzfk.js} +1 -1
- package/dist/chunk-8k4jza38.js +1 -0
- package/dist/chunk-9tb7cwem.js +1 -0
- package/dist/{chunk-cgd0vjw2.js → chunk-b86m3bpv.js} +1 -1
- package/dist/{chunk-ttbq1xmz.js → chunk-b948f9w9.js} +2 -2
- package/dist/chunk-b9hdp0n4.js +1 -0
- package/dist/{chunk-8bsse16j.js → chunk-b9nhnzaj.js} +1 -1
- package/dist/{chunk-z37v80c1.js → chunk-b9vm7gns.js} +2 -2
- package/dist/{chunk-vwa2kczj.js → chunk-c8td6vaa.js} +1 -1
- package/dist/{chunk-db2v383v.js → chunk-cq5gtwxb.js} +1 -1
- package/dist/chunk-cr1xp3re.js +10 -0
- package/dist/{chunk-tssmnn37.js → chunk-dj99h8ca.js} +2 -2
- package/dist/{chunk-ts96epcd.js → chunk-dshgm836.js} +1 -1
- package/dist/{chunk-qnj3dajb.js → chunk-eeb2945p.js} +1 -1
- package/dist/{chunk-ehks2r00.js → chunk-fsm3fb2m.js} +1 -1
- package/dist/{chunk-h0ys86rn.js → chunk-geam96gd.js} +1 -1
- package/dist/chunk-gn6ftvjy.js +1 -0
- package/dist/{chunk-tnaxxgje.js → chunk-gre57x9m.js} +1 -1
- package/dist/{chunk-bvhbc0wr.js → chunk-h0fh3j9w.js} +1 -1
- package/dist/{chunk-zwd5q6dt.js → chunk-h3w814js.js} +1 -1
- package/dist/{chunk-vn1r6z64.js → chunk-h6a0nct6.js} +1 -1
- package/dist/{chunk-ckvq6z49.js → chunk-h9xayrwp.js} +1 -1
- package/dist/chunk-hchn7baz.js +1 -0
- package/dist/{chunk-r8ayexxd.js → chunk-jdb2mwbn.js} +1 -1
- package/dist/{chunk-9k3tg2hs.js → chunk-je4xvy93.js} +3 -3
- package/dist/{chunk-vdtma2yq.js → chunk-jwx10h5z.js} +1 -1
- package/dist/{chunk-c80pzvhs.js → chunk-jzvbjn6e.js} +1 -1
- package/dist/{chunk-eesa8c5h.js → chunk-ky9q53m7.js} +1 -1
- package/dist/{chunk-abzn9eba.js → chunk-mb3htbeh.js} +1 -1
- package/dist/{chunk-625krpnt.js → chunk-mctkgv0d.js} +4 -4
- package/dist/{chunk-js4vqnds.js → chunk-mygw13zd.js} +1 -1
- package/dist/{chunk-8chhdkg2.js → chunk-n3amyjrd.js} +8 -5
- package/dist/{chunk-90yjhvjb.js → chunk-nqcpyazv.js} +1 -1
- package/dist/chunk-nx4z7pxk.js +1 -0
- package/dist/chunk-nxmssc56.js +1 -0
- package/dist/{chunk-9ra452yc.js → chunk-pfvgkexe.js} +1 -1
- package/dist/{chunk-xmty01x3.js → chunk-phgcgfv1.js} +1 -1
- package/dist/{chunk-chmf8s1j.js → chunk-pq4fjmnj.js} +2 -2
- package/dist/{chunk-gx1wx7z5.js → chunk-pr8c6qef.js} +1 -1
- package/dist/{chunk-js4aekf1.js → chunk-qxn5bg5k.js} +1 -1
- package/dist/{chunk-gpxvyxz1.js → chunk-qz5xm4cr.js} +1 -1
- package/dist/chunk-rdvm8zvw.js +6 -0
- package/dist/chunk-reakyamv.js +2 -0
- package/dist/chunk-rpbyc2k4.js +1 -0
- package/dist/{chunk-01k69v34.js → chunk-seamt0j3.js} +2 -2
- package/dist/{chunk-426sb4tk.js → chunk-shq0pkxq.js} +1 -1
- package/dist/{chunk-79cxktz1.js → chunk-sj0k8cdf.js} +1 -1
- package/dist/{chunk-vpn2e8tj.js → chunk-xrt796d6.js} +2 -2
- package/dist/{chunk-yhyqcmh1.js → chunk-yqkyhp0e.js} +1 -1
- package/dist/{chunk-psy247es.js → chunk-zkhb55jz.js} +1 -1
- package/dist/chunk-zwbv30np.js +1 -0
- package/package.json +1 -1
- package/dist/chunk-0z6fn1mt.js +0 -1
- package/dist/chunk-25q79gk4.js +0 -6
- package/dist/chunk-2nnfx3s7.js +0 -1
- package/dist/chunk-5b0tejhz.js +0 -1
- package/dist/chunk-66w68q81.js +0 -168
- package/dist/chunk-6r150c8y.js +0 -1
- package/dist/chunk-9eah1889.js +0 -1
- package/dist/chunk-9tcrrjzg.js +0 -1
- package/dist/chunk-bpf84msg.js +0 -1
- package/dist/chunk-c074qee7.js +0 -1
- package/dist/chunk-d8gn6hw5.js +0 -1
- package/dist/chunk-egv5k7t5.js +0 -1
- package/dist/chunk-et3d69av.js +0 -1
- package/dist/chunk-mjq7rrq1.js +0 -1
- package/dist/chunk-t1bvxk3s.js +0 -2
- package/dist/chunk-tppvhg2n.js +0 -1
- package/dist/chunk-zjfdj7be.js +0 -10
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{b as RY,c as MY,d as TY}from"./chunk-
|
|
1
|
+
import{b as RY,c as MY,d as TY}from"./chunk-phgcgfv1.js";import{j as DJ,k as VJ}from"./chunk-1mc7nfb4.js";import{u as s2}from"./chunk-dshgm836.js";import{B as c6,D as gY,F as OQ,G as XQ,H as v6,L as A6,M as P6,Q as j1,S as e4,T as $6,W as y6,Y as z2,Z as nJ,_ as tJ,ba as sJ,ca as eJ,ga as L4,ha as $9,ja as t6,ka as s6,la as mY,ma as O6,oa as z6,qa as x6}from"./chunk-n3amyjrd.js";import{ua as qJ,va as OJ,wa as zJ,za as EY}from"./chunk-b86m3bpv.js";import{Ba as b6}from"./chunk-ky9q53m7.js";import{Eb as QQ,ib as L6,jb as B6,vb as w6}from"./chunk-0cbr2gs7.js";import{Pb as W2}from"./chunk-r8wbvxn7.js";import{Gc as Y6,Hc as $Q,Ic as Z6,Kc as d2,Sc as O2,Vc as C0,gc as _6,uc as t4,zc as s4}from"./chunk-5e56atqj.js";import"./chunk-skw3b17a.js";import"./chunk-jwx10h5z.js";import{wd as PY}from"./chunk-jdb2mwbn.js";import{Ad as C1,xd as H2,yd as e2}from"./chunk-2herdn98.js";import"./chunk-h3w814js.js";import{Ed as k$,Fd as a0,Gd as Q$,Hd as jQ,Id as g$,Jd as r2,Kd as v9,Ld as Q4,Md as MJ,Nd as D9,Od as V$,Pd as l0,Qd as jY,Rd as o0,Sd as AY,Td as D8,Ud as N2,Xd as U6,ce as p0}from"./chunk-yqkyhp0e.js";import"./chunk-v508x7cg.js";import"./chunk-c9e0fbyh.js";import"./chunk-seamt0j3.js";import{se as J4}from"./chunk-33bpwkyk.js";import"./chunk-mygw13zd.js";import"./chunk-b948f9w9.js";import{Ee as Q8,He as _Y,Me as iJ,Ve as hY}from"./chunk-xrt796d6.js";import"./chunk-jzvbjn6e.js";import"./chunk-7nx0pzfk.js";import"./chunk-b9nhnzaj.js";import{pf as gQ,rf as q1}from"./chunk-je4xvy93.js";import"./chunk-zkhb55jz.js";import{tg as DY,yg as oJ,zg as VY}from"./chunk-dj99h8ca.js";import"./chunk-pfvgkexe.js";import"./chunk-qxn5bg5k.js";import{Ig as m$,Jg as a2,Kg as mQ}from"./chunk-reakyamv.js";import{Og as d0}from"./chunk-0141jad7.js";import"./chunk-eeb2945p.js";import{lh as vY,oh as t1}from"./chunk-b9vm7gns.js";import{qh as kJ,rh as SJ,uh as h1}from"./chunk-5nezhmnq.js";import"./chunk-h6a0nct6.js";import{Gh as bJ}from"./chunk-7ffdedgc.js";import{Jh as F4}from"./chunk-0a0sj79a.js";import"./chunk-sj0k8cdf.js";import{Uh as e8}from"./chunk-0ra945vt.js";import{Wh as EQ}from"./chunk-h0fh3j9w.js";import{useMemoizedFn as u8}from"ahooks";import{useEffect as S7,useState as l8}from"react";import{useMemoizedFn as s0}from"ahooks";import{Box as z$}from"ink";import{useEffect as _$,useMemo as R7,useRef as p8}from"react";import{useShallow as uY}from"zustand/react/shallow";import{useStore as xY}from"zustand";function t($){return xY(V$,$)}var lY=[],j$=()=>t(($)=>$.session.sessionId),T1=()=>t(($)=>$.session.workspaceRoot),B4=()=>t(($)=>$.session.messages),w4=()=>t(($)=>$.session.clearCount),b4=()=>t(($)=>$.session.isCompacting),A4=()=>t(($)=>$.session.tokenUsage.estimatedCostUsd),P4=()=>t(($)=>{let{totalInputTokens:Q,cacheReadTokens:Y,cacheWriteTokens:J}=$.session.tokenUsage;return L4({totalInputTokens:Q,cacheReadTokens:Y,cacheWriteTokens:J}).hitRate}),y4=()=>t(($)=>$.session.providerCircuit),R4=()=>t(($)=>$.session.providerAdmission),M4=()=>t(($)=>$.session.providerRetry),T4=()=>t(($)=>$.session.providerStall),C4=()=>t(($)=>$.session.actionStationarity),i1=()=>t(($)=>$.session.actions),I4=()=>t(($)=>{let{inputTokens:Q,maxContextTokens:Y}=$.session.tokenUsage;if(Y<=0)return 100;let J=Math.max(0,100-Q/Y*100);return Math.round(J)}),f4=()=>t(($)=>$.app.initializationStatus),k4=()=>t(($)=>$.app.initializationError),D2=()=>t(($)=>$.app.activeModal),S4=()=>t(($)=>$.app.tasks),v4=()=>t(($)=>$.app.modelEditorTarget),D4=()=>t(($)=>$.app.sessionSelectorData),V4=()=>t(($)=>$.app.awaitingSecondCtrlC),n1=()=>t(($)=>$.app.actions),V2=()=>t(($)=>$.app.sideConversation),j4=()=>t(($)=>$.app.teams),j2=()=>t(($)=>$.app.initializationStatus==="ready"),h4=()=>t(($)=>$.app.tasks.length>0),h$=()=>t(($)=>$.config.config?.permissionMode||"default"),E4=()=>t(($)=>$.config.config?.models??lY),h2=()=>t(($)=>{let Q=$.config.config;if(!Q)return;let Y=Q.currentModelId;return Q.models.find((Z)=>Z.id===Y)??Q.models[0]}),E2=()=>t(($)=>$.config.config?.currentModelId),g4=()=>t(($)=>$.config.config?.agentTeamsEnabled===!0),b0=()=>t(($)=>{return a0.getTheme()}),m4=()=>t(($)=>$.config.config?.codeTheme??"default"),e0=()=>t(($)=>$.focus.currentFocus),p4=()=>t(($)=>$.focus.actions),E$=()=>t(($)=>$.command.isProcessing),c4=()=>t(($)=>$.command.actions),g2=()=>t(($)=>$.command.pendingCommands),x4=()=>t(($)=>$.command.recoveredSteeringCount),m2=()=>t(($)=>$.app.reasoningEffort!=="off"),p2=()=>t(($)=>$.app.reasoningEffort),c2=()=>t(($)=>$.app.serviceTier),x2=()=>t(($)=>$.app.responseVerbosity),u2=()=>t(($)=>$.app.communicationStyle),u4=()=>t(($)=>$.session.currentThinkingContent),l4=()=>t(($)=>$.session.thinkingExpanded),d4=()=>t(($)=>$.session.currentStreamingMessageId),r4=()=>t(uY(($)=>({lines:$.session.currentStreamingLines,tail:$.session.currentStreamingTail,lineCount:$.session.currentStreamingLineCount,version:$.session.currentStreamingVersion}))),a4=()=>t(($)=>$.session.finalizingStreamingMessageId),o4=()=>t(($)=>$.session.historyExpanded),i4=()=>t(($)=>$.session.expandedMessageCount);import{useMemoizedFn as s1}from"ahooks";import{useEffect as c$,useRef as s8}from"react";function dY($){if(!($ instanceof Error))return"未知错误";let J=$.lastError??$;if(J.responseBody)try{let K=JSON.parse(J.responseBody)?.error?.message;if(K){let U=J.statusCode?` (HTTP ${J.statusCode})`:"";return`${K}${U}`}}catch{}let Z=$.message.match(/Last error:\s*(.+)$/);if(Z)return Z[1];return $.message}function rY($){if(!($ instanceof Error))return!1;return $.name==="AbortError"||$.message.includes("aborted")}function aY($){if(!($ instanceof Error))return!1;let Q=$.message;return Q.includes("can only concatenate str")||Q.includes("image_url")||Q.includes("multimodal")||Q.includes("vision")||Q.includes("does not support images")}function l2($){let Q=rY($),Y=aY($),J;if(Y)J="当前模型不支持图片理解功能。请切换到支持视觉能力的模型(如 Claude 4.5、GPT-5.2、Gemini 3 Pro、Qwen3-VL-Plus 等)后重试。";else J=dY($);return{displayMessage:J,isAbort:Q,isVisionNotSupported:Y}}import{appendFileSync as oY,mkdirSync as iY,writeFileSync as nY}from"node:fs";import tY from"node:os";import a8 from"node:path";var n4=null;function sY(){let $=process.env.BLADE_STORAGE_ROOT||a8.join(tY.homedir(),".blade");return a8.join($,"logs","stream-debug.log")}function eY($){if(n4===$)return;let Q=a8.dirname($);iY(Q,{recursive:!0,mode:493}),nY($,`=== Stream Debug Log Started: ${new Date().toISOString()} ===
|
|
2
2
|
`),n4=$}function o8($,Q,Y){try{let J=sY();eY(J);let Z=new Date().toISOString(),X=Y?` | ${JSON.stringify(Y)}`:"",K=`[${Z}] [${$}] ${Q}${X}
|
|
3
3
|
`;oY(J,K)}catch{}}var q2=t1("UI");function Q6($,Q){let Y=!1;return(J)=>{switch(J.kind){case"content_delta":if(Y||$.signal.aborted)break;Q.contentDeltaCount++,Q.contentDeltaTotalLen+=J.delta.length,o8("loopEventHandler","onContentDelta",{callCount:Q.contentDeltaCount,deltaLen:J.delta.length,totalLen:Q.contentDeltaTotalLen}),$.streamingBuffer.batchAppendContent(J.delta);break;case"thinking_delta":if(Y||$.signal.aborted)break;if($.thinkingModeEnabled)$.streamingBuffer.batchAppendThinking(J.delta);break;case"stream_end":{if($.sessionActions.setProviderCircuit(null),$.sessionActions.setProviderRetry(null),$.sessionActions.setProviderStall(null),q2.debug("[loopEventHandler] stream_end",{contentDeltaCount:Q.contentDeltaCount,contentDeltaTotalLen:Q.contentDeltaTotalLen,streamFinalized:Y,signalAborted:$.signal.aborted}),o8("loopEventHandler","onStreamEnd",{contentDeltaCallCount:Q.contentDeltaCount,contentDeltaTotalLen:Q.contentDeltaTotalLen,streamFinalized:Y,signalAborted:$.signal.aborted}),Y||$.signal.aborted){Y=!0;break}let{extraContent:Z,extraThinking:X}=$.streamingBuffer.drainPendingBuffers(),K=$.getStreamingMessageId();if(K){if(Z)g$(K,Z);r2(K)}$.sessionActions.finalizeStreamingMessage(Z,X),Y=!0;break}case"model_fallback":Y=!0,$.sessionActions.setProviderAdmission(null),$.sessionActions.setProviderCircuit(null),$.sessionActions.setProviderRetry(null),$.sessionActions.setProviderStall(null),$.streamingBuffer.resetStreamingBuffers(),$.sessionActions.discardStreamingMessage(),$.sessionActions.setCurrentThinkingContent(null);break;case"provider_admission":{let{kind:Z,...X}=J;$.sessionActions.setProviderAdmission(J.phase==="queued"?X:null);break}case"provider_circuit":{let{kind:Z,...X}=J;$.sessionActions.setProviderCircuit(J.phase==="closed"?null:X);break}case"provider_retry":{let{kind:Z,...X}=J;$.sessionActions.setProviderRetry(J.phase==="recovered"?null:X);break}case"provider_stall":{let{kind:Z,...X}=J;$.sessionActions.setProviderStall(J.phase==="detected"?X:null);break}case"action_stationarity":{let{kind:Z,...X}=J;$.sessionActions.setActionStationarity(J.phase==="recovered"?null:X);break}case"tool_start":{let Z=J.toolCall;if(!("function"in Z))break;if(Z.function.name===d2)break;if(q2.debug("[loopEventHandler] tool_start",{toolName:Z.function.name,toolKind:J.toolKind}),["TaskCreate","TaskUpdate","TaskList"].includes(Z.function.name))break;try{let X=JSON.parse(Z.function.arguments),K=e4(Z.function.name,X);$.sessionActions.addToolMessage(K,{toolCallId:Z.id,toolName:Z.function.name,phase:"start",summary:K,params:X})}catch(X){q2.error("[loopEventHandler] onToolStart error:",X)}break}case"tool_progress":{let Z=J.toolCall;if(!("function"in Z))break;if(Z.function.name===d2)break;let X=J.update.total!==void 0?` ${Math.max(0,Math.min(100,Math.round((J.update.progress??0)/J.update.total*100)))}%`:"",K=`${Z.function.name}${X}: ${J.update.message}`;$.sessionActions.addToolMessage(K,{toolCallId:Z.id,toolName:Z.function.name,phase:"progress",summary:K,...J.update.admission?{admission:J.update.admission}:{}});break}case"tool_result":{let Z=J.toolCall;if(!("function"in Z))break;if(Z.function.name===d2)break;q2.debug("[loopEventHandler] tool_result",{toolName:Z.function.name,success:J.result.success});let X=s4($6(Z.function.name,J.result),t4);$.sessionActions.addToolMessage(X.summary,{toolCallId:Z.id,toolName:Z.function.name,phase:"complete",summary:X.summary,detail:X.detail});break}case"structured_output":$.sessionActions.replaceLastAssistantMessage(JSON.stringify(J.output,null,2));break;case"token_usage":$.sessionActions.updateTokenUsage(J.usage);break;case"compaction":if($.sessionActions.setCompacting(J.phase==="start"),J.phase==="end"){if($.sessionActions.resetContextUsage(),J.outcome!=="failed")Q.compactionCount=(Q.compactionCount??0)+1}break;case"turn_start":q2.debug("[loopEventHandler] turn_start",{turn:J.turn,maxTurns:J.maxTurns}),$.sessionActions.updateTokenUsage({turnCount:J.turn}),$.sessionActions.setProviderCircuit(null),$.sessionActions.setProviderRetry(null),$.sessionActions.setProviderStall(null),Y=!1;break;case"task_update":$.appActions.setTasks(J.tasks);break;case"mcp_catalog_changed":{let Z=`MCP catalog r${J.revision}: +${J.added.length} -${J.removed.length} ~${J.updated.length}`;$.sessionActions.addToolMessage(Z,{toolName:"MCP Catalog",phase:"complete",summary:Z,detail:[J.added.length>0?`Added: ${J.added.join(", ")}`:"",J.removed.length>0?`Removed: ${J.removed.join(", ")}`:"",J.updated.length>0?`Updated: ${J.updated.join(", ")}`:""].filter(Boolean).join(`
|
|
4
4
|
`)});break}case"mcp_content_changed":{let Z=`MCP ${J.contentKind} r${J.revision}: +${J.added.length} -${J.removed.length} ~${J.updated.length}`;$.sessionActions.addToolMessage(Z,{toolName:"MCP Content",phase:"complete",summary:Z,detail:[J.added.length>0?`Added: ${J.added.join(", ")}`:"",J.removed.length>0?`Removed: ${J.removed.join(", ")}`:"",J.updated.length>0?`Updated: ${J.updated.join(", ")}`:""].filter(Boolean).join(`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
export{M as
|
|
1
|
+
import{Wh as F}from"./chunk-h0fh3j9w.js";import{execSync as G}from"node:child_process";import*as C from"node:os";import*as v from"node:path";function H(k){return v.resolve(k).replace(/[/\\]/g,"-").replace(/:/g,"_")}function M(k){let q=k.replace(/_/g,":");if(q.startsWith("-"))q="/"+q.slice(1);return q.replace(/-/g,"/")}function z(k){let q=H(k);return v.join(E(),"projects",q)}function J(k){return typeof k==="string"&&k!=="."&&k!==".."&&/^[A-Za-z0-9_-][A-Za-z0-9._-]{0,199}$/.test(k)}function A(k){if(!J(k))throw Error(`Invalid session ID: ${k}`)}function N(k,q){return A(q),v.join(z(k),`${q}.jsonl`)}function O(k,q){return A(q),v.join(z(k),`${q}.inbox.json`)}function Q(k,q){return A(q),v.join(z(k),`${q}.goal.json`)}function T(k){try{return G("git rev-parse --abbrev-ref HEAD",{cwd:k,encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()||void 0}catch{return}}function E(){return process.env.BLADE_STORAGE_ROOT||v.join(C.homedir(),".blade")}async function U(){let{readdir:k}=await import("node:fs/promises");try{let q=v.join(E(),"projects");return(await k(q,{withFileTypes:!0})).filter((w)=>w.isDirectory()).map((w)=>w.name)}catch{return[]}}
|
|
2
|
+
export{M as Mh,z as Nh,J as Oh,A as Ph,N as Qh,O as Rh,Q as Sh,T as Th,E as Uh,U as Vh};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{uh as o}from"./chunk-5nezhmnq.js";async function e(){return o().listProviders()}async function i(r){return o().listModels(r)}
|
|
2
2
|
export{e as j,i as k};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$d as n,Od as a,Pd as b,Qd as c,Rd as d,Sd as e,Td as f,Ud as g,Vd as h,Wd as i,Xd as j,Yd as k,Zd as l,_d as m,ae as o,be as p,ce as q}from"./chunk-yqkyhp0e.js";import"./chunk-v508x7cg.js";import"./chunk-c9e0fbyh.js";import"./chunk-dj99h8ca.js";import"./chunk-pfvgkexe.js";import"./chunk-qxn5bg5k.js";import"./chunk-reakyamv.js";import"./chunk-0141jad7.js";import"./chunk-eeb2945p.js";import"./chunk-b9vm7gns.js";import"./chunk-5nezhmnq.js";import"./chunk-h6a0nct6.js";import"./chunk-7ffdedgc.js";import"./chunk-0a0sj79a.js";import"./chunk-sj0k8cdf.js";import"./chunk-0ra945vt.js";import"./chunk-h0fh3j9w.js";export{a as vanillaStore,c as sessionActions,l as getThinkingModeEnabled,b as getState,n as getServiceTier,o as getResponseVerbosity,m as getReasoningEffort,j as getModelById,e as getMessages,k as getMcpServers,i as getCurrentModel,f as getConfig,p as getCommunicationStyle,h as getAllModels,g as ensureStoreInitialized,q as configActions,d as appActions};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Pd as N}from"./chunk-
|
|
1
|
+
import{Pd as N}from"./chunk-yqkyhp0e.js";import{rf as $}from"./chunk-je4xvy93.js";import{Og as _}from"./chunk-0141jad7.js";import{mh as Y,oh as Z}from"./chunk-b9vm7gns.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 xd,y as yd,j as zd,C as Ad};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
export{D as
|
|
1
|
+
import{ue as B}from"./chunk-mygw13zd.js";import{uh as Y}from"./chunk-5nezhmnq.js";import{Ah as $,xh as Z}from"./chunk-h6a0nct6.js";import{createHash as H}from"node:crypto";var N="fast-mode-2026-02-01";function R(q,x,z){if(x.api!=="anthropic-messages"||z.providerValue!=="fast")return q;let J={...q},w=Object.keys(J).find((G)=>G.toLowerCase()==="anthropic-beta")??"anthropic-beta",Q=new Set((J[w]??"").split(",").map((G)=>G.trim()).filter(Boolean));return Q.add(N),J[w]=[...Q].join(","),J}function D(q){return`BLADE_MODEL_API_KEY_${H("sha256").update(q).digest("hex").slice(0,32).toUpperCase()}`}function F(q,x){if(!q.fallbackModels?.length)return;return q.fallbackModels.map((z)=>{let J=(x.models??[]).filter((G)=>G.provider===z.provider&&G.model===z.model),w=z.configId?(x.models??[]).find((G)=>G.id===z.configId):J.length===1?J[0]:void 0;if(z.configId&&!w)throw Error(`Unknown fallback model config ID: ${z.configId}`);if(w&&(w.provider!==z.provider||w.model!==z.model))throw Error(`Fallback model config ${w.id} does not match ${z.provider}/${z.model}`);if(!z.configId&&J.length>1)throw Error(`Fallback model ${z.provider}/${z.model} is ambiguous; set configId`);if(!w)return z;let Q=w.provider===q.provider;return{...z,configId:w.id,channel:{apiKey:process.env[D(w.id)]??(Q?process.env.BLADE_API_KEY:void 0),baseUrl:w.overrides?.baseUrl??(Q?process.env.BLADE_BASE_URL:void 0),temperature:w.overrides?.temperature??x.temperature,maxOutputTokens:w.overrides?.maxOutputTokens,timeout:w.overrides?.timeout??x.timeout,streamIdleTimeout:w.overrides?.streamIdleTimeout,apiVersion:w.overrides?.apiVersion,customHeaders:w.overrides?.customHeaders,enablePromptCaching:w.overrides?.enablePromptCaching}}})}function h(q,x,z,J=Y(),w="auto",Q="auto"){let G=J.resolveConfig(q),U=B(G,z),W=$(G,w),X=Z(G,Q),L=q.overrides;return{config:q,model:G,displayName:q.displayName??G.name,chat:{provider:q.provider,model:q.model,apiKey:process.env[D(q.id)]??process.env.BLADE_API_KEY,baseUrl:process.env.BLADE_BASE_URL??L?.baseUrl,temperature:L?.temperature??x.temperature,maxContextTokens:G.contextWindow,maxOutputTokens:L?.maxOutputTokens,timeout:L?.timeout??x.timeout,streamIdleTimeout:L?.streamIdleTimeout,reasoningEnabled:U.effective!=="off",...U.effective==="off"?{}:{reasoningEffort:U.effective},...W.providerValue?{serviceTier:W.providerValue}:{},...X.providerValue?{responseVerbosity:X.providerValue}:{},fallbackModels:F(q,x),enablePromptCaching:L?.enablePromptCaching,customHeaders:R(L?.customHeaders,G,W),apiVersion:L?.apiVersion,maxRetries:L?.maxRetries,providerCircuitBreakerOpenMs:x.providerCircuitBreakerOpenMs,providerRequestConcurrency:x.providerRequestConcurrency,providerGlobalConcurrency:x.providerGlobalConcurrency,providerOwnerConcurrency:x.providerOwnerConcurrency,providerRequestAdmissionMs:x.providerRequestAdmissionMs,providerRequestPendingBytes:x.providerRequestPendingBytes,modelCatalog:J},reasoning:U,serviceTier:W,responseVerbosity:X}}function j(q,x=Y()){try{return q.displayName??x.getModel(q.provider,q.model).name}catch{return q.displayName??q.model}}
|
|
2
|
+
export{D as qe,h as re,j as se};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{td as a,ud as b,vd as c}from"./chunk-c8td6vaa.js";import"./chunk-jdb2mwbn.js";import"./chunk-yqkyhp0e.js";import"./chunk-v508x7cg.js";import"./chunk-c9e0fbyh.js";import"./chunk-b9nhnzaj.js";import"./chunk-dj99h8ca.js";import"./chunk-pfvgkexe.js";import"./chunk-qxn5bg5k.js";import"./chunk-reakyamv.js";import"./chunk-0141jad7.js";import"./chunk-eeb2945p.js";import"./chunk-b9vm7gns.js";import"./chunk-5nezhmnq.js";import"./chunk-h6a0nct6.js";import"./chunk-7ffdedgc.js";import"./chunk-0a0sj79a.js";import"./chunk-sj0k8cdf.js";import"./chunk-0ra945vt.js";import"./chunk-h0fh3j9w.js";export{a as validatePermissions,c as validateOutput,b as loadConfiguration};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Pc as a,Qc as b,Rc as c,Sc as d,Tc as e,Uc as f,Vc as g}from"./chunk-5e56atqj.js";import"./chunk-skw3b17a.js";import"./chunk-jwx10h5z.js";import"./chunk-mygw13zd.js";import"./chunk-7nx0pzfk.js";import"./chunk-zkhb55jz.js";import"./chunk-reakyamv.js";import"./chunk-0141jad7.js";import"./chunk-b9vm7gns.js";import"./chunk-h6a0nct6.js";import"./chunk-7ffdedgc.js";import"./chunk-0ra945vt.js";import"./chunk-h0fh3j9w.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};
|