blade-code 0.10.119 → 0.10.121
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-8nm03qtd.js → chunk-2jx9yez1.js} +1 -1
- package/dist/{chunk-057qv2wd.js → chunk-5yd5k1tf.js} +1 -1
- package/dist/{chunk-5s4knzbg.js → chunk-6x5c8qa6.js} +1 -1
- package/dist/{chunk-4v2t1xs5.js → chunk-863ynx9m.js} +1 -1
- package/dist/{chunk-h25505f0.js → chunk-88krdjg8.js} +1 -1
- package/dist/{chunk-ka1915vs.js → chunk-8myvrket.js} +1 -1
- package/dist/{chunk-et8gsz80.js → chunk-9p4jkczh.js} +2 -2
- package/dist/{chunk-aeyvj4h8.js → chunk-a31m4s8k.js} +1 -1
- package/dist/{chunk-mtaqnt1q.js → chunk-akcn83x5.js} +1 -1
- package/dist/{chunk-ncsp5n4k.js → chunk-b1rqfaea.js} +1 -1
- package/dist/{chunk-8q0a693b.js → chunk-d75myaef.js} +1 -1
- package/dist/{chunk-b8a0sphn.js → chunk-dw9wcrtp.js} +1 -1
- package/dist/{chunk-esk028rd.js → chunk-e2b6d9mw.js} +1 -1
- package/dist/{chunk-pd9d22ss.js → chunk-fwmym1zk.js} +1 -1
- package/dist/{chunk-bzaz3335.js → chunk-gnvepc4p.js} +1 -1
- package/dist/{chunk-qvqqapft.js → chunk-kaqz84w8.js} +1 -1
- package/dist/{chunk-dxjn1stn.js → chunk-khwmnyjg.js} +1 -1
- package/dist/chunk-myg02cas.js +1 -0
- package/dist/{chunk-jvnf66a0.js → chunk-n1t4vdw5.js} +1 -1
- package/dist/chunk-nhnkbddn.js +1 -0
- package/dist/{chunk-p357ac7b.js → chunk-pccb23xv.js} +1 -1
- package/dist/{chunk-yy0a99es.js → chunk-pqt9p2tb.js} +1 -1
- package/dist/{chunk-h6hjbmk9.js → chunk-pttzjrg7.js} +1 -1
- package/dist/chunk-r72e7yj0.js +8 -0
- package/dist/{chunk-saasrzn4.js → chunk-rvvvx553.js} +1 -1
- package/dist/{chunk-txzgwgqk.js → chunk-ssmd3rn9.js} +1 -1
- package/dist/{chunk-g8hcxgg8.js → chunk-szw16t85.js} +1 -1
- package/dist/{chunk-82dckkw7.js → chunk-v5d7he8r.js} +1 -1
- package/dist/{chunk-ar8a7kmt.js → chunk-v9bfzh20.js} +1 -1
- package/dist/{chunk-60092knz.js → chunk-vke2en0x.js} +1 -1
- package/dist/{chunk-jekst6kh.js → chunk-vsr1g5ke.js} +1 -1
- package/dist/{chunk-2jdnjmbh.js → chunk-vxxcdarq.js} +1 -1
- package/dist/{chunk-hna3c2ck.js → chunk-w9gj8etn.js} +3 -3
- package/dist/{chunk-xede4817.js → chunk-wgv86d7e.js} +1 -1
- package/dist/{chunk-yt07a4zp.js → chunk-y7wwx4jn.js} +1 -1
- package/dist/{chunk-6437f0h4.js → chunk-ymaxdwy1.js} +1 -1
- package/dist/{chunk-xvn45j67.js → chunk-z2w3d9gy.js} +1 -1
- package/package.json +1 -1
- package/dist/chunk-b916gtwm.js +0 -1
- package/dist/chunk-d5kjq9p5.js +0 -8
- package/dist/chunk-g7ed3sfy.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{e as q3,f as z3}from"./chunk-anjpwev3.js";import{i as OX,j as _X,k as NX}from"./chunk-
|
|
1
|
+
import{e as q3,f as z3}from"./chunk-anjpwev3.js";import{i as OX,j as _X,k as NX}from"./chunk-y7wwx4jn.js";import{x as M8}from"./chunk-vsr1g5ke.js";import{$ as M9,F as NY,J as RX,L as h4,M as f4,N as ZY,T as l9,U as r9,Z as E$,aa as y9,ca as a9,ea as v2,fa as T3,ga as C3,ja as I3,ka as S3,oa as dJ,pa as DY,ra as kY,sa as fY,ta as TX,ua as V9,wa as j9,ya as FY}from"./chunk-w9gj8etn.js";import"./chunk-dabq8kdx.js";import{Ga as l6,Ha as r6,Ia as a6,La as yX}from"./chunk-gnvepc4p.js";import{Na as d9}from"./chunk-fpjhg6ce.js";import{Hb as c9,Qb as T4,ub as x9,vb as u9}from"./chunk-fwmym1zk.js";import{$b as E2}from"./chunk-sca5q3tt.js";import{Fd as C9,Gd as R4,Hd as I9,Jd as L8,Rd as f2,Ud as f0,ed as E9,td as b9,yd as P9}from"./chunk-863ynx9m.js";import"./chunk-q265drks.js";import"./chunk-7dykmcjj.js";import{xe as qX}from"./chunk-3jqd18d8.js";import{Be as n$,ye as h2,ze as y8}from"./chunk-v9bfzh20.js";import"./chunk-twdfyk78.js";import{Fe as t1,Ge as K$,He as R1,Ie as GJ,Je as H8,Ke as B9,Le as O6,Me as CJ,Ne as J3,Oe as _6,Pe as J2,Qe as Y$,Re as PX,Se as U$,Te as GX,Ue as Z4,Ve as V2,Ye as v9,df as a0}from"./chunk-szw16t85.js";import"./chunk-v508x7cg.js";import"./chunk-ye4wyq1k.js";import"./chunk-kpqdfn9z.js";import{tf as IJ}from"./chunk-b41den40.js";import"./chunk-8qp8v96d.js";import"./chunk-8myvrket.js";import{Ff as C8,If as x3,Nf as R3,Wf as MX}from"./chunk-e2b6d9mw.js";import"./chunk-0zzh482s.js";import"./chunk-adkpwx6c.js";import"./chunk-85bamng3.js";import{sg as OJ,ug as y$}from"./chunk-b1rqfaea.js";import"./chunk-2t6b962t.js";import{Bh as y3,Ch as bX,wh as AX}from"./chunk-88krdjg8.js";import"./chunk-kz15jy62.js";import"./chunk-9fgkg1vr.js";import{Lh as K2,Mh as w8,Oh as _J}from"./chunk-pykxe413.js";import{Th as X$}from"./chunk-kzzty3v5.js";import"./chunk-9jtjq50j.js";import{qi as BX,ti as y1}from"./chunk-w4xqaw4h.js";import{vi as K3,wi as U3,zi as Q1}from"./chunk-r6svhe3w.js";import"./chunk-a4dmw23t.js";import{Li as n6}from"./chunk-dw9wcrtp.js";import{Oi as cJ}from"./chunk-ncqagb27.js";import"./chunk-207s8tns.js";import{Zi as y4}from"./chunk-spxb931p.js";import{$i as zJ}from"./chunk-m7b779kd.js";import{useMemoizedFn as H4}from"ahooks";import{useEffect as IK,useState as W4}from"react";import{useMemoizedFn as t0}from"ahooks";import UX from"ansi-escapes";import{Box as W1,useStdout as bK}from"ink";import{useEffect as L1,useMemo as PK,useRef as t2,useState as MK}from"react";import{useShallow as IX}from"zustand/react/shallow";import{useStore as CX}from"zustand";function X0($){return CX(J2,$)}var SX=[],Y2=()=>X0(($)=>$.session.sessionId),o$=()=>X0(($)=>$.session.workspaceRoot),J8=()=>X0(($)=>$.session.messages),lJ=()=>X0(($)=>$.session.clearCount),rJ=()=>X0(($)=>$.session.isCompacting),aJ=()=>X0(($)=>$.session.tokenUsage.estimatedCostUsd),iJ=()=>X0(($)=>{let{totalInputTokens:J,cacheReadTokens:X,cacheWriteTokens:Y}=$.session.tokenUsage;return dJ({totalInputTokens:J,cacheReadTokens:X,cacheWriteTokens:Y}).hitRate}),oJ=()=>X0(($)=>$.session.providerCircuit),nJ=()=>X0(($)=>$.session.providerAdmission),tJ=()=>X0(($)=>$.session.providerRetry),sJ=()=>X0(($)=>$.session.providerStall),eJ=()=>X0(($)=>$.session.actionStationarity),P1=()=>X0(($)=>$.session.actions),$9=()=>X0(($)=>{let{totalTokens:J,maxContextTokens:X}=$.session.tokenUsage;if(X<=0)return 100;let Y=Math.max(0,100-J/X*100);return Math.round(Y)}),J9=()=>X0(($)=>$.app.initializationStatus),Y9=()=>X0(($)=>$.app.initializationError),Y8=()=>X0(($)=>$.app.activeModal),X9=()=>X0(($)=>$.app.tasks),Z9=()=>X0(($)=>$.app.modelEditorTarget),Q9=()=>X0(($)=>$.app.sessionSelectorData),K9=()=>X0(($)=>$.app.awaitingSecondCtrlC),M1=()=>X0(($)=>$.app.actions),X8=()=>X0(($)=>$.app.sideConversation),U9=()=>X0(($)=>$.app.teams),Z8=()=>X0(($)=>$.app.initializationStatus==="ready"),G9=()=>X0(($)=>$.app.tasks.length>0),X2=()=>X0(($)=>$.config.config?.permissionMode||"default"),q9=()=>X0(($)=>$.config.config?.models??SX),Q8=()=>X0(($)=>{let J=$.config.config;if(!J)return;let X=J.currentModelId;return J.models.find((Z)=>Z.id===X)??J.models[0]}),K8=()=>X0(($)=>$.config.config?.currentModelId),z9=()=>X0(($)=>$.config.config?.agentTeamsEnabled===!0),P0=()=>X0(($)=>{return K$.getTheme()}),O9=()=>X0(($)=>$.config.config?.codeTheme??"default"),r0=()=>X0(($)=>$.focus.currentFocus),_9=()=>X0(($)=>$.focus.actions),Z2=()=>X0(($)=>$.command.isProcessing),N9=()=>X0(($)=>$.command.actions),Q2=()=>X0(($)=>$.command.pendingCommands),F9=()=>X0(($)=>$.command.recoveredSteeringCount),U8=()=>X0(($)=>$.app.reasoningEffort!=="off"),G8=()=>X0(($)=>$.app.reasoningEffort),q8=()=>X0(($)=>$.app.serviceTier),z8=()=>X0(($)=>$.app.responseVerbosity),O8=()=>X0(($)=>$.app.communicationStyle),_8=()=>X0(($)=>$.session.currentThinkingContent),H9=()=>X0(($)=>$.session.thinkingExpanded),N8=()=>X0(($)=>$.session.currentStreamingMessageId),F8=()=>X0(IX(($)=>({lines:$.session.currentStreamingLines,tail:$.session.currentStreamingTail,lineCount:$.session.currentStreamingLineCount,version:$.session.currentStreamingVersion}))),W9=()=>X0(($)=>$.session.finalizingStreamingMessageId),L9=()=>X0(($)=>$.session.historyExpanded),w9=()=>X0(($)=>$.session.expandedMessageCount);import{useMemoizedFn as Z1}from"ahooks";import{useEffect as g1,useMemo as tX,useRef as T8}from"react";class L4{options;requested=!1;scheduled=!1;inFlight=!1;disposed=!1;generation=0;activeRunController=null;scheduleCallback;constructor($){this.options=$;this.scheduleCallback=$.schedule??queueMicrotask}request(){if(this.disposed)return;this.requested=!0,this.scheduleIfRunnable()}notifyIdle(){this.scheduleIfRunnable()}dispose(){this.disposed=!0,this.requested=!1,this.scheduled=!1,this.generation++,this.activeRunController?.abort("pending-resume-coordinator-disposed"),this.activeRunController=null}scheduleIfRunnable(){if(this.disposed||!this.requested||this.scheduled||this.inFlight||!this.options.canRun())return;this.scheduled=!0;let $=this.generation;this.scheduleCallback(()=>{if(this.disposed||$!==this.generation)return;this.scheduled=!1,this.flush()})}async flush(){if(this.disposed||this.inFlight||!this.requested||!this.options.canRun())return;this.requested=!1,this.inFlight=!0;let $=new AbortController;this.activeRunController=$;let J="completed";try{J=await this.options.run($.signal)}finally{if(this.activeRunController===$)this.activeRunController=null;if(this.inFlight=!1,J==="deferred")this.requested=!0;this.scheduleIfRunnable()}}}class S2{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)H8(J,$.extraContent);B9(J)}this.options.finalizeStreamingMessage($.extraContent,$.extraThinking)}}function kX($){if(!($ instanceof Error))return"未知错误";let Y=$.lastError??$;if(Y.responseBody)try{let K=JSON.parse(Y.responseBody)?.error?.message;if(K){let U=Y.statusCode?` (HTTP ${Y.statusCode})`:"";return`${K}${U}`}}catch{}let Z=$.message.match(/Last error:\s*(.+)$/);if(Z)return Z[1];return $.message}function fX($){if(!($ instanceof Error))return!1;return $.name==="AbortError"||$.message.includes("aborted")}function vX($){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 W8($){let J=fX($),X=vX($),Y;if(X)Y="当前模型不支持图片理解功能。请切换到支持视觉能力的模型(如 Claude 4.5、GPT-5.2、Gemini 3 Pro、Qwen3-VL-Plus 等)后重试。";else Y=kX($);return{displayMessage:Y,isAbort:J,isVisionNotSupported:X}}import{appendFileSync as DX,mkdirSync as VX,writeFileSync as jX}from"node:fs";import EX from"node:os";import w4 from"node:path";var A9=null;function hX(){let $=process.env.BLADE_STORAGE_ROOT||w4.join(EX.homedir(),".blade");return w4.join($,"logs","stream-debug.log")}function gX($){if(A9===$)return;let J=w4.dirname($);VX(J,{recursive:!0,mode:493}),jX($,`=== Stream Debug Log Started: ${new Date().toISOString()} ===
|
|
2
2
|
`),A9=$}function B4($,J,X){try{let Y=hX();gX(Y);let Z=new Date().toISOString(),Q=X?` | ${JSON.stringify(X)}`:"",K=`[${Z}] [${$}] ${J}${Q}
|
|
3
3
|
`;DX(Y,K)}catch{}}var k2=y1("UI");function b4($,J){if(J.state==="requires_attention"){let X=J.reason==="interrupted_tool_call";$.addToolMessage("Turn recovery requires attention",{toolName:"Runtime Recovery",phase:"complete",summary:X?"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 R9($,J){let X=$.streamSession??new S2({signal:$.signal,streamingBuffer:$.streamingBuffer,getStreamingMessageId:$.getStreamingMessageId,finalizeStreamingMessage:$.sessionActions.finalizeStreamingMessage,discardStreamingMessage:$.sessionActions.discardStreamingMessage,clearThinking:()=>$.sessionActions.setCurrentThinkingContent(null)});return(Y)=>{switch(Y.kind){case"content_delta":if(!X.acceptsDeltas())break;J.contentDeltaCount++,J.contentDeltaTotalLen+=Y.delta.length,B4("loopEventHandler","onContentDelta",{callCount:J.contentDeltaCount,deltaLen:Y.delta.length,totalLen:J.contentDeltaTotalLen}),$.streamingBuffer.batchAppendContent(Y.delta);break;case"thinking_delta":if(!X.acceptsDeltas())break;if($.thinkingModeEnabled)$.streamingBuffer.batchAppendThinking(Y.delta);break;case"stream_end":{$.sessionActions.setProviderCircuit(null),$.sessionActions.setProviderRetry(null),$.sessionActions.setProviderStall(null),k2.debug("[loopEventHandler] stream_end",{contentDeltaCount:J.contentDeltaCount,contentDeltaTotalLen:J.contentDeltaTotalLen,streamFinalized:X.isFinalized,signalAborted:$.signal.aborted}),B4("loopEventHandler","onStreamEnd",{contentDeltaCallCount:J.contentDeltaCount,contentDeltaTotalLen:J.contentDeltaTotalLen,streamFinalized:X.isFinalized,signalAborted:$.signal.aborted}),X.finalize();break}case"model_fallback":$.sessionActions.setProviderAdmission(null),$.sessionActions.setProviderCircuit(null),$.sessionActions.setProviderRetry(null),$.sessionActions.setProviderStall(null),X.discard();break;case"provider_admission":{let{kind:Z,...Q}=Y;$.sessionActions.setProviderAdmission(Y.phase==="queued"?Q:null);break}case"provider_circuit":{let{kind:Z,...Q}=Y;$.sessionActions.setProviderCircuit(Y.phase==="closed"?null:Q);break}case"provider_retry":{let{kind:Z,...Q}=Y;$.sessionActions.setProviderRetry(Y.phase==="recovered"?null:Q);break}case"provider_stall":{let{kind:Z,...Q}=Y;$.sessionActions.setProviderStall(Y.phase==="detected"?Q:null);break}case"action_stationarity":{let{kind:Z,...Q}=Y;$.sessionActions.setActionStationarity(Y.phase==="recovered"?null:Q);break}case"turn_recovery":{b4($.sessionActions,Y.assessment);break}case"tool_start":{let Z=Y.toolCall;if(!("function"in Z))break;if(Z.function.name===L8)break;if(k2.debug("[loopEventHandler] tool_start",{toolName:Z.function.name,toolKind:Y.toolKind}),["TaskCreate","TaskUpdate","TaskList"].includes(Z.function.name))break;try{let Q=JSON.parse(Z.function.arguments),K=M9(Z.function.name,Q);$.sessionActions.addToolMessage(K,{toolCallId:Z.id,toolName:Z.function.name,phase:"start",summary:K,params:Q})}catch(Q){k2.error("[loopEventHandler] onToolStart error:",Q)}break}case"tool_progress":{let Z=Y.toolCall;if(!("function"in Z))break;if(Z.function.name===L8)break;let Q=Y.update.total!==void 0?` ${Math.max(0,Math.min(100,Math.round((Y.update.progress??0)/Y.update.total*100)))}%`:"",K=`${Z.function.name}${Q}: ${Y.update.message}`;$.sessionActions.addToolMessage(K,{toolCallId:Z.id,toolName:Z.function.name,phase:"progress",summary:K,...Y.update.admission?{admission:Y.update.admission}:{}});break}case"tool_result":{let Z=Y.toolCall;if(!("function"in Z))break;if(Z.function.name===L8)break;k2.debug("[loopEventHandler] tool_result",{toolName:Z.function.name,success:Y.result.success});let Q=P9(y9(Z.function.name,Y.result),b9);$.sessionActions.addToolMessage(Q.summary,{toolCallId:Z.id,toolName:Z.function.name,phase:"complete",summary:Q.summary,detail:Q.detail});break}case"structured_output":$.sessionActions.replaceLastAssistantMessage(JSON.stringify(Y.output,null,2));break;case"token_usage":$.sessionActions.updateTokenUsage(Y.usage);break;case"compaction":if($.sessionActions.setCompacting(Y.phase==="start"),Y.phase==="end"){if($.sessionActions.resetContextUsage(),Y.outcome!=="failed")J.compactionCount=(J.compactionCount??0)+1}break;case"turn_start":k2.debug("[loopEventHandler] turn_start",{turn:Y.turn,maxTurns:Y.maxTurns}),$.sessionActions.updateTokenUsage({turnCount:Y.turn}),$.sessionActions.setProviderCircuit(null),$.sessionActions.setProviderRetry(null),$.sessionActions.setProviderStall(null),X.startTurn();break;case"task_update":$.appActions.setTasks(Y.tasks);break;case"goal_frontier_updated":$.appActions.setTasks(Y.tasks);break;case"mcp_catalog_changed":{let Z=`MCP catalog r${Y.revision}: +${Y.added.length} -${Y.removed.length} ~${Y.updated.length}`;$.sessionActions.addToolMessage(Z,{toolName:"MCP Catalog",phase:"complete",summary:Z,detail:[Y.added.length>0?`Added: ${Y.added.join(", ")}`:"",Y.removed.length>0?`Removed: ${Y.removed.join(", ")}`:"",Y.updated.length>0?`Updated: ${Y.updated.join(", ")}`:""].filter(Boolean).join(`
|
|
4
4
|
`)});break}case"mcp_content_changed":{let Z=`MCP ${Y.contentKind} r${Y.revision}: +${Y.added.length} -${Y.removed.length} ~${Y.updated.length}`;$.sessionActions.addToolMessage(Z,{toolName:"MCP Content",phase:"complete",summary:Z,detail:[Y.added.length>0?`Added: ${Y.added.join(", ")}`:"",Y.removed.length>0?`Removed: ${Y.removed.join(", ")}`:"",Y.updated.length>0?`Updated: ${Y.updated.join(", ")}`:""].filter(Boolean).join(`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{se as a,te as b}from"./chunk-ssmd3rn9.js";import"./chunk-dw9wcrtp.js";import"./chunk-m7b779kd.js";export{a as globalOptions,b as cliConfig};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{S as I}from"./chunk-
|
|
1
|
+
import{S as I}from"./chunk-w9gj8etn.js";import{Ud as M}from"./chunk-863ynx9m.js";import P from"node:path";function w(s){let a=s.replace(/\s+/g," ").trim();return a.length<=72?a:`${a.slice(0,69)}...`}function W(s){let a=s.replace(/\s+/g," ").trim();return a.length<=500?a:`${a.slice(0,497)}...`}function A(s){return`task/${s.replace(/[^a-zA-Z0-9_-]/g,"-").slice(0,40)}`}class C{static async createSessionTask(s){if(!s.prompt.trim())throw Error("Task prompt must not be blank");if(!P.isAbsolute(s.sourceProjectPath))throw Error("Task source project path must be absolute");let a=P.resolve(s.sourceProjectPath),t;try{return t=s.isolation==="worktree"?await I.enter({sessionId:s.sessionId,workspaceRoot:a,name:A(s.sessionId)}):void 0,{metadata:await M.createSessionMetadata(s.sessionId,t?.workspaceRoot??a,{title:s.title?.trim()||w(s.prompt),taskPromptSummary:W(s.prompt),taskPriority:s.taskPriority,taskKind:s.taskKind,taskDueAt:s.taskDueAt,taskDispatch:s.dispatch,taskModelId:s.dispatch?.modelId,selectedModelId:s.dispatch?.modelId,permissionMode:s.dispatch?.permissionMode,reasoningEffort:s.dispatch?.reasoningEffort,serviceTier:s.dispatch?.serviceTier,responseVerbosity:s.dispatch?.responseVerbosity,communicationStyle:s.dispatch?.communicationStyle,communicationStyleDigest:s.dispatch?.communicationStyleDigest,projectInstructionsDigest:s.dispatch?.projectInstructionsDigest,taskRetriedFrom:s.retriedFrom,taskIsolation:s.isolation,taskSourceProjectPath:a,taskWorktree:t}),taskWorktree:t}}catch(k){if(t)await I.exit({sessionId:s.sessionId,action:"remove",discardChanges:!0}).catch(()=>{return});throw k}}}var $=256,V=8388608,x=30000;class i extends Error{kind;pendingItems;pendingBytes;constructor(s,a,t){super(a,t);this.kind=s;this.name="BoundedSerialEgressError",this.pendingItems=t?.pendingItems,this.pendingBytes=t?.pendingBytes}}function T(s){s.catch(()=>{return})}class K{options;pending=[];flushWaiters=[];pendingBytes=0;nextSequence=0;completedSequence=0;draining=!1;closed=!1;failure;activeWriteAbort;activeWriteStop;activeWriteTimeout;constructor(s){this.options=s;if(this.assertPositiveInteger(s.maxPendingItems,"maxPendingItems"),this.assertPositiveInteger(s.maxPendingBytes,"maxPendingBytes"),this.assertPositiveInteger(s.writeTimeoutMs,"writeTimeoutMs"),s.signal?.addEventListener("abort",this.handleAbort,{once:!0}),s.signal?.aborted)this.handleAbort()}offer(s){if(this.closed)return{accepted:!1,error:this.failure??new i("closed","Egress is already closed")};let a;try{a=this.options.sizeOf(s)}catch(h){return this.rejectAdmission(new i("invalid_size","Egress size calculation failed",{cause:h}))}if(!Number.isSafeInteger(a)||a<0)return this.rejectAdmission(new i("invalid_size","Egress size must be a non-negative safe integer"));if(a>this.options.maxPendingBytes)return this.rejectAdmission(new i("oversized",`Egress value requires ${a} bytes; limit is ${this.options.maxPendingBytes}`));if(this.pending.length>=this.options.maxPendingItems||this.pendingBytes+a>this.options.maxPendingBytes)return this.rejectAdmission(new i("overflow",`Egress pending limit exceeded (${this.pending.length} items, ${this.pendingBytes} bytes)`));let t,k,c=new Promise((h,m)=>{t=h,k=m});return T(c),this.nextSequence+=1,this.pending.push({value:s,bytes:a,sequence:this.nextSequence,resolve:t,reject:k,completion:c}),this.pendingBytes+=a,this.startDrain(),{accepted:!0,completion:c}}flush(){if(this.failure){let c=Promise.reject(this.failure);return T(c),c}let s=this.nextSequence;if(s<=this.completedSequence)return Promise.resolve();let a,t,k=new Promise((c,h)=>{a=c,t=h});return T(k),this.flushWaiters.push({targetSequence:s,resolve:a,reject:t}),k}close(s){let a=s instanceof i?s:new i("closed","Egress was closed",{cause:s});this.fail(a)}stats(){return{closed:this.closed,pendingItems:this.pending.length,pendingBytes:this.pendingBytes}}handleAbort=()=>{this.fail(new i("aborted","Egress was aborted",{cause:this.options.signal?.reason}))};rejectAdmission(s){return this.fail(s),{accepted:!1,error:s}}startDrain(){if(this.draining||this.closed)return;this.draining=!0;let s=this.drain();T(s)}async drain(){try{while(!this.closed){let s=this.pending[0];if(!s)return;try{await this.writeOne(s.value)}catch(a){this.fail(this.normalizeWriteError(a));return}if(this.closed||this.pending[0]!==s)return;this.pending.shift(),this.pendingBytes-=s.bytes,this.completedSequence=s.sequence,s.resolve(),this.settleFlushWaiters()}}finally{if(this.draining=!1,!this.closed&&this.pending.length>0)this.startDrain()}}async writeOne(s){let a=new AbortController;this.activeWriteAbort=a;let t,k,c=new Promise((S,f)=>{k=f});T(c),this.activeWriteStop=k;let h=Promise.resolve().then(()=>this.options.write(s,a.signal));T(h);let m=new Promise((S,f)=>{t=setTimeout(()=>{let D=new i("write_timeout",`Egress write timed out after ${this.options.writeTimeoutMs}ms`);a.abort(D),f(D)},this.options.writeTimeoutMs),this.activeWriteTimeout=t});T(m);try{await Promise.race([h,m,c])}finally{if(t!==void 0)clearTimeout(t);if(this.activeWriteTimeout===t)this.activeWriteTimeout=void 0;if(this.activeWriteAbort===a)this.activeWriteAbort=void 0;if(this.activeWriteStop===k)this.activeWriteStop=void 0}}normalizeWriteError(s){if(s instanceof i)return s;return new i("write_failed","Egress write failed",{cause:s})}fail(s){if(this.closed)return;if(s.pendingItems??=this.pending.length,s.pendingBytes??=this.pendingBytes,this.closed=!0,this.failure=s,this.options.signal?.removeEventListener("abort",this.handleAbort),this.activeWriteTimeout!==void 0)clearTimeout(this.activeWriteTimeout),this.activeWriteTimeout=void 0;this.activeWriteAbort?.abort(s),this.activeWriteStop?.(s),this.activeWriteAbort=void 0,this.activeWriteStop=void 0;let a=this.pending.splice(0);this.pendingBytes=0;for(let t of a)t.reject(s);for(let t of this.flushWaiters.splice(0))t.reject(s);try{this.options.onFailure?.(s)}catch{}}settleFlushWaiters(){for(let s=0;s<this.flushWaiters.length;){let a=this.flushWaiters[s];if(a.targetSequence>this.completedSequence){s+=1;continue}this.flushWaiters.splice(s,1),a.resolve()}}assertPositiveInteger(s,a){if(!Number.isSafeInteger(s)||s<=0)throw RangeError(`${a} must be a positive safe integer`)}}
|
|
2
2
|
export{C as y,$ as z,V as A,x as B,i as C,K as D};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as a,i as b,j as c,k as d,l as e}from"./chunk-y7wwx4jn.js";import"./chunk-dw9wcrtp.js";import"./chunk-m7b779kd.js";export{b as setSkipUntilVersion,d as performUpgrade,c as getUpgradeCommand,e as checkVersionOnStartup,a as checkVersion};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{m as c,n as v,o as d,p as m,q as l,r as a}from"./chunk-
|
|
1
|
+
import{m as c,n as v,o as d,p as m,q as l,r as a}from"./chunk-akcn83x5.js";import{Z as O,ea as S}from"./chunk-w9gj8etn.js";import"./chunk-dabq8kdx.js";import"./chunk-gnvepc4p.js";import"./chunk-fpjhg6ce.js";import{Hb as M,Qb as E}from"./chunk-fwmym1zk.js";import"./chunk-sca5q3tt.js";import{Gd as h,Ud as f}from"./chunk-863ynx9m.js";import"./chunk-q265drks.js";import"./chunk-7dykmcjj.js";import{se as I}from"./chunk-ssmd3rn9.js";import{ue as y,ve as R,we as g}from"./chunk-pqt9p2tb.js";import{xe as C}from"./chunk-3jqd18d8.js";import"./chunk-twdfyk78.js";import{Ue as w}from"./chunk-szw16t85.js";import"./chunk-v508x7cg.js";import"./chunk-ye4wyq1k.js";import"./chunk-kpqdfn9z.js";import"./chunk-b41den40.js";import"./chunk-8qp8v96d.js";import"./chunk-8myvrket.js";import"./chunk-e2b6d9mw.js";import"./chunk-0zzh482s.js";import"./chunk-adkpwx6c.js";import"./chunk-85bamng3.js";import"./chunk-b1rqfaea.js";import"./chunk-2t6b962t.js";import"./chunk-88krdjg8.js";import{Dh as A}from"./chunk-kz15jy62.js";import"./chunk-9fgkg1vr.js";import"./chunk-pykxe413.js";import{Th as P}from"./chunk-kzzty3v5.js";import"./chunk-9jtjq50j.js";import"./chunk-w4xqaw4h.js";import"./chunk-r6svhe3w.js";import"./chunk-a4dmw23t.js";import"./chunk-dw9wcrtp.js";import"./chunk-ncqagb27.js";import"./chunk-207s8tns.js";import"./chunk-spxb931p.js";import"./chunk-m7b779kd.js";import s from"yargs";import{hideBin as e}from"yargs/helpers";var i=new Set(Object.values(A));function t(j){if(j&&i.has(j))return j;return}function z(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 n(j){return j.command("* [message]","Print response and exit (useful for pipes)",(B)=>B.positional("message",{describe:"Message to process",type:"string"}).option("p",{alias:"print",describe:"Print response and exit (useful for pipes)",type:"boolean"}).option("output-format",{describe:'Output format: "text", "json", "stream-json"',type:"string",default:"text"}).option("include-partial-messages",{describe:"Include partial message chunks as they arrive",type:"boolean"}).option("input-format",{describe:'Input format: "text", "stream-json"',type:"string",default:"text"}).option("json-schema",{alias:["jsonSchema"],describe:"Inline JSON Schema for the structured final response",type:"string"}).option("output-schema",{alias:["outputSchema"],describe:"Path to a JSON Schema file for the structured final response",type:"string"}).option("model",{describe:"Model for the current session",type:"string"}).option("append-system-prompt",{describe:"Append a system prompt to the default system prompt",type:"string"}).option("system-prompt",{describe:"Replace the default system prompt",type:"string"}).option("max-turns",{alias:["maxTurns"],describe:"Maximum conversation turns (-1: unlimited, N>0: limit to N turns)",type:"number"}),async(B)=>{if(!B.p)return;let q=await o(B);process.exit(q)})}async function o(j,B=process){let q;try{await c();let D=j.forkSession!==!0&&(j.continue===!0||typeof j.resume==="string"&&j.resume.length>0)?await d({message:j.message,_:j._}):await v({message:j.message,_:j._,defaultMessage:"Hello"}),K=D===void 0,T=K?{mode:"agent",content:""}:await m(D);if(T.mode==="output"){if(T.content)B.stdout.write(`${T.content}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{xe as s}from"./chunk-3jqd18d8.js";import{Qe as o}from"./chunk-
|
|
1
|
+
import{xe as s}from"./chunk-3jqd18d8.js";import{Qe as o}from"./chunk-szw16t85.js";import{Bh as l,Ch as n,ah as y,bh as D,dh as N,fh as j,gh as F,ih as R,mh as E,nh as _,oh as f,ph as C,rh as S,sh as m,wh as c}from"./chunk-88krdjg8.js";import{Dh as Y}from"./chunk-kz15jy62.js";import{Fh as x,Hh as k,Kh as Z}from"./chunk-9fgkg1vr.js";import{Rh as X}from"./chunk-kzzty3v5.js";import{Vh as h,Wh as A,ai as P,bi as T,di as $,ei as U,fi as G,hi as L,ii as M,ki as O,li as I}from"./chunk-9jtjq50j.js";import{ti as d}from"./chunk-w4xqaw4h.js";import{promises as i}from"node:fs";import t from"node:path";var e=["systemPrompt","appendSystemPrompt","initialMessage","resumeSessionId","forkSession","allowedTools","disallowedTools","mcpConfigPaths","strictMcpConfig","model","addDirs","outputFormat","inputFormat","print","includePartialMessages","replayUserMessages","agentsConfig","settingSources"],v=new Set([...Object.keys(c),...e,"providerRequestConcurrency","providerGlobalConcurrency","providerOwnerConcurrency"]),W=k.Number({exclusiveMinimum:0}),z=k.String({minLength:1}),b=k.Array(k.String()),a=k.Object({currentModelId:k.Optional(k.String()),modelProviders:k.Optional(k.Record(z,k.Object({name:z,baseUrl:z,wireApi:Z(["openai-completions","anthropic-messages"]),apiKeyEnv:k.Optional(z)}))),models:k.Optional(k.Array(k.Object({id:z,displayName:k.Optional(z),provider:z,model:z,overrides:k.Optional(k.Object({baseUrl:k.Optional(k.String()),temperature:k.Optional(k.Number()),maxOutputTokens:k.Optional(W),timeout:k.Optional(W),streamIdleTimeout:k.Optional(k.Number({minimum:1000})),apiVersion:k.Optional(k.String()),customHeaders:k.Optional(k.Record(k.String(),k.String())),maxRetries:k.Optional(k.Integer({minimum:0})),enablePromptCaching:k.Optional(k.Boolean())})),fallbackModels:k.Optional(k.Array(k.Object({provider:z,model:z,configId:k.Optional(z)})))}))),temperature:k.Optional(k.Number()),maxOutputTokens:k.Optional(W),stream:k.Optional(k.Boolean()),topP:k.Optional(k.Number()),topK:k.Optional(k.Number()),timeout:k.Optional(W),bashForegroundHandoffMs:k.Optional(k.Union([k.Literal(0),k.Integer({minimum:y,maximum:D})])),providerForegroundRecoveryMs:k.Optional(k.Union([k.Literal(0),k.Integer({minimum:h,maximum:A})])),providerCircuitBreakerOpenMs:k.Optional(k.Union([k.Literal(0),k.Integer({minimum:P,maximum:T})])),providerRequestConcurrency:k.Optional(k.Integer({minimum:$,maximum:U})),providerGlobalConcurrency:k.Optional(k.Integer({minimum:$,maximum:G})),providerOwnerConcurrency:k.Optional(k.Integer({minimum:$,maximum:G})),providerRequestAdmissionMs:k.Optional(k.Union([k.Literal(0),k.Integer({minimum:L,maximum:M})])),providerRequestPendingBytes:k.Optional(k.Integer({minimum:O,maximum:I})),agentTeamsEnabled:k.Optional(k.Boolean()),codeTheme:k.Optional(k.String()),uiTheme:k.Optional(Z(["light","dark","system"])),language:k.Optional(k.String()),fontSize:k.Optional(W),autoSaveSessions:k.Optional(k.Boolean()),notifyBuild:k.Optional(k.Boolean()),notifyErrors:k.Optional(k.Boolean()),notifySounds:k.Optional(k.Boolean()),privacyTelemetry:k.Optional(k.Boolean()),privacyCrash:k.Optional(k.Boolean()),debug:k.Optional(k.Union([k.Boolean(),k.String()])),mcpEnabled:k.Optional(k.Boolean()),mcpServers:k.Optional(k.Record(k.String(),k.Record(k.String(),k.Unknown()))),lspServers:k.Optional(k.Record(z,k.Object({command:z,args:k.Optional(k.Array(k.String())),extensionToLanguage:k.Record(z,z),env:k.Optional(k.Record(k.String(),k.String())),initializationOptions:k.Optional(k.Unknown()),settings:k.Optional(k.Unknown()),enabled:k.Optional(k.Boolean()),priority:k.Optional(k.Integer()),startupTimeout:k.Optional(k.Integer({minimum:100})),shutdownTimeout:k.Optional(k.Integer({minimum:100})),requestTimeout:k.Optional(k.Integer({minimum:100})),diagnosticWaitTimeout:k.Optional(k.Integer({minimum:0})),maxRestarts:k.Optional(k.Integer({minimum:0,maximum:10}))}))),permissionMode:k.Optional(k.Enum(Y)),maxTurns:k.Optional(k.Integer({minimum:-1})),maxConcurrentTasks:k.Optional(k.Integer({minimum:E,maximum:_})),maxQueuedTasks:k.Optional(k.Integer({minimum:f,maximum:C})),maxQueuedTaskBytes:k.Optional(k.Integer({minimum:S,maximum:m})),maxResidentSessionRuntimes:k.Optional(k.Integer({minimum:N,maximum:j})),sessionRuntimeIdleMs:k.Optional(k.Integer({minimum:F,maximum:R})),systemPrompt:k.Optional(k.String()),appendSystemPrompt:k.Optional(k.String()),initialMessage:k.Optional(k.String()),resumeSessionId:k.Optional(k.String()),forkSession:k.Optional(k.Boolean()),allowedTools:k.Optional(k.Array(z)),disallowedTools:k.Optional(k.Array(z)),mcpConfigPaths:k.Optional(k.Array(z)),strictMcpConfig:k.Optional(k.Boolean()),model:k.Optional(z),addDirs:k.Optional(k.Array(z)),outputFormat:k.Optional(Z(["text","json","stream-json","jsonl"])),inputFormat:k.Optional(Z(["text","stream-json"])),print:k.Optional(k.Boolean()),includePartialMessages:k.Optional(k.Boolean()),replayUserMessages:k.Optional(k.Boolean()),agentsConfig:k.Optional(k.String()),settingSources:k.Optional(k.String()),permissions:k.Optional(k.Object({allow:k.Optional(b),ask:k.Optional(b),deny:k.Optional(b)})),env:k.Optional(k.Record(k.String(),k.String())),hooks:k.Optional(k.Record(k.String(),k.Unknown())),enabledPlugins:k.Optional(k.Record(z,k.Boolean())),pluginSourcePolicy:k.Optional(k.Object({restrictToAllowedSources:k.Optional(k.Boolean()),requireGitCommitSha:k.Optional(k.Boolean()),allowedGitHosts:k.Optional(k.Array(z)),allowedMarketplaces:k.Optional(k.Array(z)),allowedLocalRoots:k.Optional(k.Array(z))})),disableAllHooks:k.Optional(k.Boolean())}),g=[["systemPrompt","systemPrompt"],["appendSystemPrompt","appendSystemPrompt"],["initialMessage","initialMessage"],["resumeSessionId","sessionId"],["forkSession","forkSession"],["allowedTools","allowedTools"],["disallowedTools","disallowedTools"],["mcpConfigPaths","mcpConfig"],["strictMcpConfig","strictMcpConfig"],["model","model"],["addDirs","addDir"],["outputFormat","outputFormat"],["inputFormat","inputFormat"],["print","print"],["includePartialMessages","includePartialMessages"],["replayUserMessages","replayUserMessages"],["agentsConfig","agents"],["settingSources","settingSources"],["permissionMode","permissionMode"],["maxTurns","maxTurns"],["maxConcurrentTasks","maxConcurrentTasks"],["maxQueuedTasks","maxQueuedTasks"],["maxQueuedTaskBytes","maxQueuedTaskBytes"],["maxResidentSessionRuntimes","maxResidentSessionRuntimes"],["sessionRuntimeIdleMs","sessionRuntimeIdleMs"]];function V(q,B){let w;try{w=JSON.parse(q)}catch(H){let K=H instanceof Error?`: ${H.message}`:"";throw Error(`Invalid JSON provided to --settings (${B})${K}`)}if(!w||typeof w!=="object"||Array.isArray(w))throw Error("--settings must contain a JSON object");for(let H of Object.keys(w))if(!v.has(H))throw Error(`Unknown --settings field: ${H}`);let J=x(a,w);if(!J.success){let H=J.error.issues.map((K)=>`${K.path.join(".")||"settings"}: ${K.message}`).join("; ");throw Error(`Invalid --settings value: ${H}`)}return J.data}async function p(q){if(q===void 0)return;let B=q.trim();if(!B)throw Error("--settings requires a JSON object or file path");if(B.startsWith("{"))return V(B,"inline JSON");let w=t.resolve(X(),B),J;try{J=await i.readFile(w,"utf8")}catch(H){let K=H instanceof Error?`: ${H.message}`:"";throw Error(`Unable to read --settings file ${w}${K}`)}return V(J,w)}function u(q,B){if(!B)return;let w=B;for(let[J,H]of g){if(J==="permissionMode"&&q.yolo===!0)continue;if(q[H]===void 0&&w[J]!==void 0)q[H]=w[J]}}var Q=d("General"),Dk=(q)=>{if(q.yolo){if(q.permissionMode&&q.permissionMode!=="yolo")throw Error("Cannot use both --yolo and --permission-mode with different values");q.permissionMode="yolo"}if(Array.isArray(q.allowedTools))q.allowedTools=q.allowedTools.flatMap((B)=>B.split(",").map((w)=>w.trim()).filter((w)=>w.length>0));if(Array.isArray(q.disallowedTools))q.disallowedTools=q.disallowedTools.flatMap((B)=>B.split(",").map((w)=>w.trim()).filter((w)=>w.length>0));if(Array.isArray(q.allowedTools)&&Array.isArray(q.disallowedTools)){let B=q.allowedTools.filter((w)=>q.disallowedTools.includes(w));if(B.length>0)throw Error(`Tools cannot be both allowed and disallowed: ${B.join(", ")}`)}},hk=async(q)=>{let B=await p(typeof q.settings==="string"?q.settings:void 0);if(u(q,B),typeof q.agents==="string")s(q.agents);r(q);try{let J=await l.getInstance().initialize(B),H=n(J,q);if(o().config.actions.setConfig(H),q.debug)Q.info("[CLI] 配置已加载到 Store")}catch(w){Q.error("[CLI] [FAIL] 配置初始化失败",w instanceof Error?w.message:w),console.error(`
|
|
2
2
|
[FAIL] 配置初始化失败
|
|
3
3
|
`),console.error("原因:",w instanceof Error?w.message:"未知错误"),console.error(`
|
|
4
4
|
请检查:`),console.error(" 1. 配置文件格式是否正确 (~/.blade/config.json)"),console.error(" 2. 是否需要运行 blade 进行首次配置"),console.error(` 3. 配置文件权限是否正确
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Gi as a,Hi as b,Ii as c,Ji as d,Ki as e,Li as f}from"./chunk-
|
|
1
|
+
import{Gi as a,Hi as b,Ii as c,Ji as d,Ki as e,Li as f}from"./chunk-dw9wcrtp.js";import"./chunk-m7b779kd.js";export{b as getVersion,c as getPackageName,a as getPackageInfo,e as getFormattedVersion,d as getDescription,f as getCopyright};
|