blade-code 0.10.96 → 0.10.98
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-c9zd429t.js → chunk-0bsn86gg.js} +1 -1
- package/dist/{chunk-yjh47zv6.js → chunk-17ck16tq.js} +1 -1
- package/dist/{chunk-ax8tta9d.js → chunk-1j3mmdbt.js} +1 -1
- package/dist/{chunk-kpxz0hbg.js → chunk-3wjb3bhw.js} +2 -2
- package/dist/{chunk-z6xfknxe.js → chunk-4004spc1.js} +1 -1
- package/dist/{chunk-xzzrtwjx.js → chunk-4crf8nvz.js} +2 -2
- package/dist/chunk-4n7zxjk0.js +1 -0
- package/dist/{chunk-t48zm299.js → chunk-4ytvrkks.js} +1 -1
- package/dist/{chunk-h4j0nve8.js → chunk-54syvhtz.js} +2 -2
- package/dist/{chunk-n4gtzx4x.js → chunk-63wahkkf.js} +1 -1
- package/dist/chunk-6b232wd7.js +1 -0
- package/dist/chunk-78bmtbzh.js +1 -0
- package/dist/chunk-7k38nj7a.js +23 -0
- package/dist/{chunk-q74xmdkf.js → chunk-7kbtqzy0.js} +3 -3
- package/dist/{chunk-4n4a3vm2.js → chunk-7wgtj7w4.js} +2 -2
- package/dist/{chunk-5vg1dwh1.js → chunk-7yn3d4cf.js} +1 -1
- package/dist/{chunk-gbsxnvgg.js → chunk-8dtggj9c.js} +1 -1
- package/dist/{chunk-ya5p7mx7.js → chunk-8hprmrd5.js} +1 -1
- package/dist/{chunk-hrfh7wck.js → chunk-8jtwm19d.js} +1 -1
- package/dist/{chunk-va1exak5.js → chunk-8v8frtnd.js} +1 -1
- package/dist/{chunk-am66822r.js → chunk-9qqhkwbw.js} +1 -1
- package/dist/chunk-a7hz8scf.js +8 -0
- package/dist/{chunk-0eqk29xr.js → chunk-a9ek5zt1.js} +2 -2
- package/dist/{chunk-50em9ww2.js → chunk-azcca8bk.js} +1 -1
- package/dist/{chunk-wbfa6xce.js → chunk-b4ahgdtn.js} +2 -2
- package/dist/chunk-d1je4wzc.js +2 -0
- package/dist/{chunk-nh45xp7r.js → chunk-d2f41jxt.js} +1 -1
- package/dist/chunk-d3z12cgn.js +1 -0
- package/dist/chunk-d62jkv36.js +1 -0
- package/dist/chunk-dc3k9999.js +1 -0
- package/dist/{chunk-gnffwz1c.js → chunk-dp9xbrjy.js} +2 -2
- package/dist/{chunk-721g4w9f.js → chunk-drqezf1p.js} +1 -1
- package/dist/{chunk-7k5v52ct.js → chunk-e6wgta3m.js} +1 -1
- package/dist/{chunk-9vp2qgt2.js → chunk-e99cqtmv.js} +2 -2
- package/dist/{chunk-zj4kfyer.js → chunk-ef5b0ysc.js} +1 -1
- package/dist/{chunk-rzja9zza.js → chunk-fra0nwzj.js} +2 -2
- package/dist/{chunk-rsh4rw9k.js → chunk-gaj6kkb6.js} +1 -1
- package/dist/{chunk-bss2kc28.js → chunk-gcy8nczq.js} +1 -1
- package/dist/{chunk-74yge4ka.js → chunk-h1wvtdh4.js} +1 -1
- package/dist/{chunk-epmxrw4f.js → chunk-hdhxzmw7.js} +1 -1
- package/dist/chunk-hdrap16m.js +1 -0
- package/dist/chunk-hmgxkjbx.js +118 -0
- package/dist/{chunk-b12wtvac.js → chunk-hphdt9ph.js} +3 -3
- package/dist/chunk-hvz0wk1j.js +1 -0
- package/dist/{chunk-1t097t5f.js → chunk-hy9tkb5x.js} +248 -248
- package/dist/{chunk-qa4efys0.js → chunk-j0ndrqv6.js} +1 -1
- package/dist/{chunk-dd99sgf8.js → chunk-j9cnp8ms.js} +1 -1
- package/dist/{chunk-w63dfcx5.js → chunk-krhr8xbg.js} +2 -2
- package/dist/{chunk-g9m309s9.js → chunk-ks3f9h9n.js} +2 -2
- package/dist/chunk-kv6w817v.js +10 -0
- package/dist/chunk-m4bg4jp9.js +1 -0
- package/dist/{chunk-9318pj5k.js → chunk-mf2s05b7.js} +1 -1
- package/dist/chunk-mpm2kdf6.js +1 -0
- package/dist/{chunk-srqfz4rw.js → chunk-my7nr1sx.js} +2 -2
- package/dist/{chunk-7dqh8bqm.js → chunk-nvypaz88.js} +1 -1
- package/dist/{chunk-ggf76jxn.js → chunk-p47hbq3a.js} +2 -2
- package/dist/{chunk-ztp2ff01.js → chunk-ps9vc0m3.js} +2 -2
- package/dist/{chunk-z5rtzcm4.js → chunk-q74f1pj9.js} +2 -2
- package/dist/chunk-qb1wev32.js +2 -0
- package/dist/{chunk-wj403wry.js → chunk-qdf2a3vf.js} +2 -2
- package/dist/{chunk-36tgee8v.js → chunk-rmkw6dpm.js} +1 -1
- package/dist/{chunk-4cvmfne8.js → chunk-rzcm8hw3.js} +1 -1
- package/dist/chunk-rztsp1jj.js +1 -0
- package/dist/{chunk-na1cney5.js → chunk-s6n0cgg5.js} +2 -2
- package/dist/{chunk-bfxj0w4r.js → chunk-szccdrah.js} +1 -1
- package/dist/{chunk-5j0b62sr.js → chunk-tae9c030.js} +2 -2
- package/dist/{chunk-qstdm5xh.js → chunk-v2p30pe1.js} +1 -1
- package/dist/{chunk-dwttn5xg.js → chunk-vw2j0avq.js} +1 -1
- package/dist/{chunk-0vkk338p.js → chunk-wkfhpjkf.js} +1 -1
- package/dist/chunk-wq8zryfj.js +1 -0
- package/dist/{chunk-rxbxvq67.js → chunk-wzgdm617.js} +2 -2
- package/dist/{chunk-4jbpvete.js → chunk-wzx5s1dm.js} +2 -2
- package/dist/chunk-ysckkpw0.js +1 -0
- package/dist/chunk-zppdqh51.js +1 -0
- package/dist/web/assets/{ChatView-EtPiVi9S.js → ChatView-DRfyX8iK.js} +5 -5
- package/dist/web/assets/{CodeBlockHighlighter-CJJQKiYA.js → CodeBlockHighlighter-DAFduwex.js} +1 -1
- package/dist/web/assets/{FilePreview-p9GkBrrr.js → FilePreview-DP5FG_5E.js} +1 -1
- package/dist/web/assets/{KanbanBoard-B3HgXU0l.js → KanbanBoard-CWMPGJNx.js} +1 -1
- package/dist/web/assets/{MarkdownRenderer-DQd1r_NH.js → MarkdownRenderer-Dp8ahj7G.js} +3 -3
- package/dist/web/assets/{SettingsModal-CJ8604CG.js → SettingsModal-BR_98FMD.js} +1 -1
- package/dist/web/assets/{TaskSwitcher-zfuhsPf1.js → TaskSwitcher-D5WijUhR.js} +1 -1
- package/dist/web/assets/{TerminalPanel-BF6GORqQ.js → TerminalPanel-CE33pxwb.js} +1 -1
- package/dist/web/assets/{arrow-left-BSNY0aTj.js → arrow-left-Cv-KDeEq.js} +1 -1
- package/dist/web/assets/{calendar-clock-BizCOffP.js → calendar-clock-Cv_w0wjo.js} +1 -1
- package/dist/web/assets/{chevrons-up-down-CN8I3dkY.js → chevrons-up-down-BAdiQ6sx.js} +1 -1
- package/dist/web/assets/{clock-3-D5q6Flxt.js → clock-3-wrrODhWr.js} +1 -1
- package/dist/web/assets/{external-link-Dw5epjDt.js → external-link-CBEu1rS8.js} +1 -1
- package/dist/web/assets/{folder-Dcq3CYVD.js → folder-aphP4iXp.js} +1 -1
- package/dist/web/assets/index-rQ1P5u3I.js +271 -0
- package/dist/web/assets/{pause-DhspNLAg.js → pause-Bp8TFDGG.js} +1 -1
- package/dist/web/assets/{play-B4wnlOAa.js → play-CuOkQMyB.js} +1 -1
- package/dist/web/assets/{session-events-Ci1823tS.js → session-events-C95VE6d2.js} +10 -10
- package/dist/web/assets/{teamService-DelV4FvL.js → teamService-BXTinwSE.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/chunk-0r4bnnr4.js +0 -23
- package/dist/chunk-46shzdny.js +0 -1
- package/dist/chunk-4p6q87bp.js +0 -1
- package/dist/chunk-4pamygxp.js +0 -1
- package/dist/chunk-54qgtz5s.js +0 -1
- package/dist/chunk-729bsa9b.js +0 -1
- package/dist/chunk-7jg5d0bz.js +0 -1
- package/dist/chunk-8eh0vp98.js +0 -2
- package/dist/chunk-brs43rma.js +0 -10
- package/dist/chunk-d45gd36e.js +0 -1
- package/dist/chunk-d83bfr0b.js +0 -2
- package/dist/chunk-gf2vdsx3.js +0 -1
- package/dist/chunk-jrjaente.js +0 -1
- package/dist/chunk-jzc7ez35.js +0 -1
- package/dist/chunk-p3nqvg65.js +0 -1
- package/dist/chunk-qrj0d6a5.js +0 -8
- package/dist/chunk-tw63vfgh.js +0 -118
- package/dist/chunk-vdfwj5fy.js +0 -1
- package/dist/chunk-vy4dz3yz.js +0 -1
- package/dist/chunk-x9t8340h.js +0 -1
- package/dist/web/assets/index-CpHES-wJ.js +0 -271
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
var Re=Object.defineProperty;var Me=(e,t,n)=>t in e?Re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var K=(e,t,n)=>Me(e,typeof t!="symbol"?t+"":t,n);import{R as D}from"./vendor-react-DofNRwfy.js";const ue=e=>{let t;const n=new Set,r=(d,c)=>{const l=typeof d=="function"?d(t):d;if(!Object.is(l,t)){const g=t;t=c??(typeof l!="object"||l===null)?l:Object.assign({},t,l),n.forEach(f=>f(t,g))}},s=()=>t,o={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d))},u=t=e(r,s,o);return o},xe=e=>e?ue(e):ue,
|
|
1
|
+
var Re=Object.defineProperty;var Me=(e,t,n)=>t in e?Re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var K=(e,t,n)=>Me(e,typeof t!="symbol"?t+"":t,n);import{R as D}from"./vendor-react-DofNRwfy.js";const ue=e=>{let t;const n=new Set,r=(d,c)=>{const l=typeof d=="function"?d(t):d;if(!Object.is(l,t)){const g=t;t=c??(typeof l!="object"||l===null)?l:Object.assign({},t,l),n.forEach(f=>f(t,g))}},s=()=>t,o={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d))},u=t=e(r,s,o);return o},xe=e=>e?ue(e):ue,_e=e=>e;function je(e,t=_e){const n=D.useSyncExternalStore(e.subscribe,D.useCallback(()=>t(e.getState()),[e,t]),D.useCallback(()=>t(e.getInitialState()),[e,t]));return D.useDebugValue(n),n}const de=e=>{const t=xe(e),n=r=>je(t,r);return Object.assign(n,t),n},fe=e=>e?de(e):de;function $(){return{timeline:[],textBefore:"",toolCalls:[],textAfter:"",thinkingContent:"",tasks:[],subagent:null,subagents:[],confirmation:null,question:null,elicitation:null}}function P(e){return e?e.subagents&&e.subagents.length>0?e.subagents:e.subagent?[e.subagent]:[]:[]}function W(e,t,n){const r=(n?t.find(s=>s.id===n||s.sessionId===n):void 0)??t[t.length-1]??null;return{...e,subagents:t,subagent:r}}function Ie(e,t){const n=[...P(e)];let r=n.findIndex(i=>i.id===t.id||!!(i.sessionId&&t.sessionId&&i.sessionId===t.sessionId));if(r===-1&&t.sessionId&&(r=n.findIndex(i=>!i.sessionId&&i.status==="running"&&i.type===t.type&&i.description===t.description)),r===-1)return n.push(t),W(e,n,t.id);const s=n[r],a={...s,...t,id:s.id};return n[r]=a,W(e,n,a.id)}function G(e,t){return`${t}-${e.length}`}function De(e,t){if(!t)return e;const n=[...p(e)],r=n[n.length-1];return(r==null?void 0:r.type)==="text"?n[n.length-1]={...r,content:r.content+t}:n.push({id:G(n,"text"),type:"text",content:t}),{...e,timeline:n}}function Oe(e,t){if(!t)return e;const n=[...p(e)],r=n[n.length-1];return(r==null?void 0:r.type)==="thinking"?n[n.length-1]={...r,content:r.content+t}:n.push({id:G(n,"thinking"),type:"thinking",content:t}),{...e,timeline:n}}function le(e,t){const n=e.toolCalls.some(i=>i.toolCallId===t.toolCallId),r=n?e.toolCalls:[...e.toolCalls,t];if(n)return{...e,toolCalls:r};const s=[...p(e)],a=s[s.length-1];return(a==null?void 0:a.type)==="tool_group"?s[s.length-1]={...a,toolCallIds:[...a.toolCallIds,t.toolCallId]}:s.push({id:G(s,"tool_group"),type:"tool_group",toolCallIds:[t.toolCallId]}),{...e,timeline:s,toolCalls:r}}function p(e){if(e.timeline&&e.timeline.length>0)return e.timeline;const t=[];return e.thinkingContent&&t.push({id:"legacy-thinking",type:"thinking",content:e.thinkingContent}),e.textBefore&&t.push({id:"legacy-text-before",type:"text",content:e.textBefore}),e.toolCalls.length>0&&t.push({id:"legacy-tool-group",type:"tool_group",toolCallIds:e.toolCalls.map(n=>n.toolCallId)}),e.textAfter&&t.push({id:"legacy-text-after",type:"text",content:e.textAfter}),t}function pe(e){return p(e).filter(t=>t.type==="text").map(t=>t.content).filter(Boolean).join(`
|
|
2
2
|
|
|
3
|
-
`)}const
|
|
4
|
-
`)}function U(e){if(!e.agentContent)return e;let t=e.agentContent;for(const n of Be(e.id,e.metadata))t=Ie(t,n);return{...e,agentContent:t}}function Ve(e){var r,s,a;const t=[];let n=null;for(const i of e)if(i.role!=="system"){if(i.role==="user")n&&(t.push(U(n)),n=null),t.push({id:i.id,role:i.role,content:i.content,timestamp:i.timestamp||Date.now(),metadata:i.metadata});else if(i.role==="assistant"){n&&t.push(U(n));const o=i.metadata;let u=$();i.thinkingContent&&(u=Oe(u,i.thinkingContent),u.thinkingContent=i.thinkingContent);const d=x(i.content);if(d&&(u=De(u,d),u.textBefore=d),i.tool_calls&&Array.isArray(i.tool_calls))for(const c of i.tool_calls){const l=((r=c.function)==null?void 0:r.name)||"Unknown",g=he((s=c.function)==null?void 0:s.arguments);if(l==="Task"){let m={};try{m=JSON.parse(g)}catch{}const S=typeof m.subagent_type=="string"?m.subagent_type:"subagent",y=typeof m.description=="string"?m.description:S;u=Ie(u,{id:p({explicitId:c.id,sessionId:typeof m.subagent_session_id=="string"?m.subagent_session_id:void 0,messageId:i.id,agentType:S,description:y}),type:S,description:y,status:"running",startTime:Date.now(),sessionId:typeof m.subagent_session_id=="string"?m.subagent_session_id:void 0,resumedFrom:typeof m.resume_from=="string"?m.resume_from:typeof m.resume=="string"?m.resume:void 0});continue}const f={toolCallId:H({explicitId:c.id,messageId:i.id,toolName:l,argumentsValue:(a=c.function)==null?void 0:a.arguments}),toolName:l,arguments:g,status:"running",startTime:Date.now()};u=le(u,f)}n={id:i.id,role:"assistant",content:x(i.content),timestamp:i.timestamp||Date.now(),metadata:o,agentContent:u}}else if(i.role==="tool"&&n&&n.agentContent){const o=i,u=i.metadata,d=o.tool_call_id||(u==null?void 0:u.toolCallId),c=o.name||(u==null?void 0:u.toolName)||"Tool",l=u!=null&&u.metadata&&typeof u.metadata=="object"&&!Array.isArray(u.metadata)?u.metadata:u,g=u!=null&&u.independentVerification&&typeof u.independentVerification=="object"&&!Array.isArray(u.independentVerification)?u.independentVerification:void 0,f=(u==null?void 0:u.status)==="failed"||(u==null?void 0:u.status)==="error"||typeof(u==null?void 0:u.error)=="string"&&u.error.length>0,m=P(n.agentContent),S=m.findIndex(h=>h.id===d);if(S>=0){const h=m[S],I=typeof(l==null?void 0:l.subagentStatus)=="string"?Q(l.subagentStatus):f?"failed":"completed";m[S]={...h,sessionId:typeof(l==null?void 0:l.subagentSessionId)=="string"?l.subagentSessionId:h.sessionId,type:typeof(l==null?void 0:l.subagentType)=="string"?l.subagentType:h.type,status:I,resumedFrom:typeof(l==null?void 0:l.subagentResumedFrom)=="string"?l.subagentResumedFrom:h.resumedFrom,rootAgentId:typeof(l==null?void 0:l.subagentRootId)=="string"?l.subagentRootId:h.rootAgentId,resumeDepth:typeof(l==null?void 0:l.subagentResumeDepth)=="number"?l.subagentResumeDepth:h.resumeDepth,verificationVerdict:(l==null?void 0:l.verificationVerdict)==="pass"||(l==null?void 0:l.verificationVerdict)==="fail"||(l==null?void 0:l.verificationVerdict)==="partial"?l.verificationVerdict:(g==null?void 0:g.verificationVerdict)==="pass"||(g==null?void 0:g.verificationVerdict)==="fail"||(g==null?void 0:g.verificationVerdict)==="partial"?g.verificationVerdict:h.verificationVerdict,output:typeof(l==null?void 0:l.subagentSummary)=="string"?l.subagentSummary:x(i.content)||h.output},n.agentContent=W(n.agentContent,m,h.id);continue}const y=n.agentContent.toolCalls.find(h=>h.toolCallId===d);y?(y.output=x(i.content),y.status=f?"error":"success",y.metadata=l,y.summary=typeof(l==null?void 0:l.summary)=="string"?l.summary:y.summary,(!y.toolName||y.toolName==="Unknown")&&(y.toolName=c)):n.agentContent=le(n.agentContent,{toolCallId:H({explicitId:d,messageId:n.id,toolName:c,output:x(i.content)}),toolName:c,output:x(i.content),status:f?"error":"success",startTime:Date.now(),metadata:l,summary:typeof(l==null?void 0:l.summary)=="string"?l.summary:void 0})}}return n&&t.push(U(n)),t}const ye={authentication:"task.failure.authentication",permission:"task.failure.permission",rate_limit:"task.failure.rateLimit",timeout:"task.failure.timeout",network:"task.failure.network",model_unavailable:"task.failure.modelUnavailable",context_limit:"task.failure.contextLimit",unsupported_input:"task.failure.unsupportedInput",capacity:"task.failure.capacity",runtime:"task.failure.runtime"},Ke={authentication:!1,permission:!1,rate_limit:!0,timeout:!0,network:!0,model_unavailable:!0,context_limit:!1,unsupported_input:!1,capacity:!0,runtime:!0};function Ue(e){if(typeof e=="string"&&Object.keys(ye).includes(e))return e}function bn(e){return ye[e]}function Cn(e){return Ke[e]}const be="blade.sidebar.view",Ce="blade.preview.width",J=640,Je=360,We=960,Le=()=>{if(typeof localStorage>"u")return"project";const e=localStorage.getItem(be);return e==="status"||e==="project"?e:"project"},ve=e=>Math.min(We,Math.max(Je,Math.round(e))),He=()=>{if(typeof localStorage>"u")return J;const e=localStorage.getItem(Ce);if(!e)return J;const t=Number(e);return Number.isFinite(t)?ve(t):J},Ge=fe(e=>({mainView:"workspace",setMainView:t=>e(n=>({mainView:t,isFilePreviewOpen:t==="board"?!1:n.isFilePreviewOpen})),boardProjectPath:null,setBoardProjectPath:t=>e({boardProjectPath:t}),isSidebarOpen:!0,toggleSidebar:()=>e(t=>({isSidebarOpen:!t.isSidebarOpen})),setSidebarOpen:t=>e({isSidebarOpen:t}),sidebarView:Le(),setSidebarView:t=>{typeof localStorage<"u"&&localStorage.setItem(be,t),e({sidebarView:t})},isFilePreviewOpen:!1,toggleFilePreview:()=>e(t=>({isFilePreviewOpen:!t.isFilePreviewOpen})),setFilePreviewOpen:t=>e({isFilePreviewOpen:t}),previewWidth:He(),setPreviewWidth:t=>{const n=ve(t);typeof localStorage<"u"&&localStorage.setItem(Ce,String(n)),e({previewWidth:n})},previewTab:"diff",setPreviewTab:t=>e({previewTab:t}),previewTargetPath:null,previewRequestId:0,openFilePreview:t=>e(n=>({isFilePreviewOpen:!0,previewTab:(t==null?void 0:t.tab)??n.previewTab,previewTargetPath:(t==null?void 0:t.targetPath)??null,previewRequestId:n.previewRequestId+1})),isSettingsOpen:!1,settingsSection:"general",toggleSettings:()=>e(t=>({isSettingsOpen:!t.isSettingsOpen,...t.isSettingsOpen?{}:{settingsSection:"general"}})),openSettings:(t="general")=>e({isSettingsOpen:!0,settingsSection:t}),isTerminalOpen:!1,toggleTerminal:()=>e(t=>({isTerminalOpen:!t.isTerminalOpen})),isTaskSwitcherOpen:!1,taskSwitcherMode:"tasks",setTaskSwitcherOpen:(t,n)=>e(r=>({isTaskSwitcherOpen:t,taskSwitcherMode:n??r.taskSwitcherMode})),setTaskSwitcherMode:t=>e({taskSwitcherMode:t})})),Qe=new Set(["BrowserNavigate","BrowserSnapshot","BrowserInteract","BrowserWait","BrowserInspect","BrowserPage"]),Ye=new Set(["click","hover","fill","type","press","select","check","uncheck","scroll"]);function ce(e,t){return(e==null?void 0:e.sessionId)===t.sessionId&&e.projectPath===t.projectPath}function N(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function Ae(e){return typeof e=="string"&&Ye.has(e)?e:void 0}function ze(e){const t=N(e),n=Ae(t==null?void 0:t.action);if(!t||!n)return;const r=N(t.viewport),s=N(t.targetBox),a=i=>typeof i=="number"&&Number.isFinite(i);return{action:n,...typeof t.ref=="string"?{ref:t.ref}:{},...r&&a(r.width)&&a(r.height)?{viewport:{width:r.width,height:r.height}}:{},...s&&a(s.x)&&a(s.y)&&a(s.width)&&a(s.height)?{targetBox:{x:s.x,y:s.y,width:s.width,height:s.height}}:{}}}function Xe(e){if(typeof e!="string")return N(e);try{return N(JSON.parse(e))}catch{return}}function Ze(e){return typeof e=="string"&&Qe.has(e)}const et=fe(e=>({agentActivity:null,beginAgentActivity:(t,n)=>e(r=>{var o,u;const s=ce((o=r.agentActivity)==null?void 0:o.sessionRef,t)?r.agentActivity:null,a=Xe(n.argumentsValue),i=n.toolName==="BrowserInteract"?Ae((u=N(a==null?void 0:a.action))==null?void 0:u.kind):void 0;return{agentActivity:{sessionRef:t,toolCallId:n.toolCallId,toolName:n.toolName,phase:"running",revision:((s==null?void 0:s.revision)??0)+1,frameRevision:(s==null?void 0:s.frameRevision)??0,pointerRevision:(s==null?void 0:s.pointerRevision)??0,...s!=null&&s.pageId?{pageId:s.pageId}:{},...s!=null&&s.origin?{origin:s.origin}:{},...s!=null&&s.url?{url:s.url}:{},...s!=null&&s.title?{title:s.title}:{},...i?{pendingAction:{action:i,...typeof(a==null?void 0:a.ref)=="string"?{ref:a.ref}:{}}}:{},...n.toolName!=="BrowserNavigate"&&(s!=null&&s.interaction)?{interaction:s.interaction}:{}}}}),completeAgentActivity:(t,n)=>e(r=>{var c,l;const s=ce((c=r.agentActivity)==null?void 0:c.sessionRef,t)?r.agentActivity:null,a=N((l=N(n.metadata))==null?void 0:l.browser),i=ze(a==null?void 0:a.interaction),o=typeof(a==null?void 0:a.pageId)=="string"?a.pageId:s==null?void 0:s.pageId,u=typeof(a==null?void 0:a.origin)=="string"?a.origin:s==null?void 0:s.origin,d=n.toolName!=="BrowserNavigate"&&n.toolName!=="BrowserPage";return{agentActivity:{sessionRef:t,toolCallId:n.toolCallId,toolName:n.toolName,phase:n.success?"ready":"error",revision:((s==null?void 0:s.revision)??0)+1,frameRevision:o&&u?((s==null?void 0:s.frameRevision)??0)+1:(s==null?void 0:s.frameRevision)??0,pointerRevision:i!=null&&i.targetBox?((s==null?void 0:s.pointerRevision)??0)+1:(s==null?void 0:s.pointerRevision)??0,...o?{pageId:o}:{},...u?{origin:u}:{},...typeof(a==null?void 0:a.url)=="string"?{url:a.url}:s!=null&&s.url?{url:s.url}:{},...typeof(a==null?void 0:a.title)=="string"?{title:a.title}:s!=null&&s.title?{title:s.title}:{},...typeof(a==null?void 0:a.errorCode)=="string"?{errorCode:a.errorCode}:{},...i?{interaction:i}:d&&(s!=null&&s.interaction)?{interaction:s.interaction}:{}}}}),clearAgentActivity:()=>e({agentActivity:null})})),tt={flushTimeout:80};class nt{constructor(t){K(this,"config");K(this,"channels",new Map);this.config={...tt,...t}}append(t,n,r){let s=this.channels.get(t);s||(s={buffer:"",timer:null,flushFn:null},this.channels.set(t,s)),s.buffer+=n,s.flushFn=r,s.timer||(s.timer=setTimeout(()=>{this.flushChannel(t)},this.config.flushTimeout))}flushChannel(t){const n=this.channels.get(t);if(!n||!n.buffer)return;const r=n.buffer,s=n.flushFn;n.buffer="",n.timer&&(clearTimeout(n.timer),n.timer=null),s==null||s(r)}drainAll(){for(const[t]of this.channels)this.flushChannel(t);this.channels.clear()}drainAllExcept(t){for(const[n]of this.channels)n!==t&&this.flushChannel(n);for(const[n,r]of this.channels)n!==t&&!r.buffer&&this.channels.delete(n)}reset(){for(const[,t]of this.channels)t.timer&&clearTimeout(t.timer);this.channels.clear()}}const w=new nt,st=100,C=(e,t,n)=>{if(t)for(const r of e){const s=P(r.agentContent).find(a=>a.id===t||a.sessionId===t);if(s)return{messageId:r.id,subagent:s}}if(n){const r=e.find(i=>i.id===n),s=P(r==null?void 0:r.agentContent),a=s.find(i=>i.status==="running")??s[s.length-1];if(a)return{messageId:n,subagent:a}}for(const r of[...e].reverse()){const s=P(r.agentContent),a=s.find(i=>i.status==="running")??s[s.length-1];if(a)return{messageId:r.id,subagent:a}}};function it(e,t,n){n(r=>{const s={...r.pendingSubagentCompletions??{}};if(s[e]===void 0&&Object.keys(s).length>=st){const a=Object.keys(s)[0];a&&delete s[a]}return s[e]={...t},{pendingSubagentCompletions:s}})}function Y(e,t,n){var a;if(!e)return;const r=(a=t().pendingSubagentCompletions)==null?void 0:a[e];!r||!C(t().messages,e,t().currentAssistantMessageId)||(X({...r,subagentSessionId:e,success:r.status==="completed"},t),n(i=>{const o={...i.pendingSubagentCompletions??{}};return delete o[e],{pendingSubagentCompletions:o}}))}const v=(e,t,n,r=!1)=>{const{currentAssistantMessageId:s,messages:a,addMessage:i,startAgentResponse:o}=e();if(n&&r){const l=a.find(f=>f.id===n&&f.role==="assistant");if(l)return o(l.id),l.id;const g={id:n,role:"assistant",content:"",timestamp:Date.now(),agentContent:$()};return i(g),o(n),n}if(s&&!s.startsWith("call_")&&a.some(l=>l.id===s&&l.role==="assistant"))return s;if(n){const l=a.find(g=>g.id===n&&g.role==="assistant");if(l)return o(l.id),l.id}const u=a[a.length-1];if((u==null?void 0:u.role)==="assistant")return u.id;const d=n||`assistant-${Date.now()}`,c={id:d,role:"assistant",content:"",timestamp:Date.now(),agentContent:$()};return i(c),o(d),t(l=>({messages:l.messages.map(g=>g.id===d?{...g,agentContent:{...g.agentContent||$()}}:g)})),d},ot=(e,t,n)=>{const{currentSessionId:r,addMessage:s,startAgentResponse:a,messages:i,updateMessage:o}=t();if(e.sessionId!==r)return;const u=e.messageId,d=e.role||"assistant",c=i.find(g=>g.id===u),l={id:u,role:d,content:e.content||"",timestamp:Date.now(),agentContent:d==="assistant"?$():void 0};c?o(u,{role:d,content:l.content,agentContent:d==="assistant"?{...c.agentContent||$()}:void 0}):s(l),d==="assistant"&&a(u)},at=(e,t,n)=>{const{currentSessionId:r,appendDelta:s,currentAssistantMessageId:a,hasToolCalls:i,addMessage:o,startAgentResponse:u}=t();if(e.sessionId!==r)return;const d=e.messageId,c=e.delta;if(!a){const g={id:d,role:"assistant",content:"",timestamp:Date.now(),agentContent:$()};o(g),u(d),t().appendDelta(d,c,"before");return}s(a,c,i?"after":"before")},rt=(e,t)=>{const{currentSessionId:n,updateMessage:r,messages:s}=t();if(e.sessionId!==n)return;const a=e.messageId,i=s.find(o=>o.id===a);i!=null&&i.agentContent&&r(a,{content:Fe(i.agentContent)})},ut=(e,t,n)=>{var u;const{currentSessionId:r}=t();if(e.sessionId!==r)return;const s=e.output;if(!s||typeof s!="object"||Array.isArray(s))return;const a=v(t,n,e.messageId);if(!a)return;const i=t().messages.find(d=>d.id===a);if(!i)return;const o=JSON.stringify(s,null,2);t().updateMessage(a,{content:o,metadata:{...i.metadata,structuredOutput:{output:s,schemaDigest:e.schemaDigest}},agentContent:i.agentContent?{...i.agentContent,textBefore:"",textAfter:"",timeline:(u=i.agentContent.timeline)==null?void 0:u.filter(d=>d.type!=="text")}:void 0})},dt=(e,t,n)=>{const{currentSessionId:r,appendThinking:s}=t();if(e.sessionId!==r)return;const a=v(t,n,e.messageId);a&&s(a,e.delta)},lt=()=>{},Te=(e,t,n)=>{const{currentSessionId:r,appendToolCall:s,setHasToolCalls:a,setSubagent:i}=t();if(e.sessionId!==r)return;const o=v(t,n,e.messageId||e.toolCallId,typeof e.messageId=="string");if(!o)return;a(!0);const u=e.toolName||"Unknown",d=e.arguments;let c,l="",g,f;if(u==="Task")try{const S=JSON.parse(d);c=S.subagent_type,l=S.description||S.query||c||"",g=S.subagent_session_id,f=S.resume_from||S.resume}catch{}if(c){i(o,{id:p({explicitId:e.toolCallId,sessionId:g,messageId:o,agentType:c,description:l}),type:c,description:l,status:"running",startTime:Date.now(),sessionId:g,resumedFrom:f,output:"",thinking:""}),Y(g,t,n);return}const m={toolCallId:H({explicitId:e.toolCallId,messageId:o,toolName:u,argumentsValue:d,toolKind:e.toolKind}),toolName:u,arguments:d,toolKind:e.toolKind,status:"running",startTime:Date.now()};s(o,m)};function ke(e){if(!e||typeof e!="object"||Array.isArray(e))return;const t=e;if(!(t.kind!=="readonly"&&t.kind!=="write"&&t.kind!=="execute")&&!(t.scope!=="global"&&t.scope!=="session")&&!(!Number.isSafeInteger(t.queuePosition)||t.queuePosition<=0||!Number.isSafeInteger(t.inFlight)||t.inFlight<0||!Number.isSafeInteger(t.limit)||t.limit<=0))return{kind:t.kind,scope:t.scope,queuePosition:t.queuePosition,inFlight:t.inFlight,limit:t.limit}}const we=(e,t)=>{const{currentSessionId:n,updateToolCall:r,messages:s}=t();if(e.sessionId!==n)return;const a=e.toolCallId;if(!a)return;const i=s.find(o=>{var u;return(u=o.agentContent)==null?void 0:u.toolCalls.some(d=>d.toolCallId===a)});i&&r(i.id,a,{summary:e.message,progress:typeof e.progress=="number"?e.progress:void 0,progressTotal:typeof e.total=="number"?e.total:void 0,progressMessage:e.message,admission:ke(e.admission)})},Pe=(e,t,n)=>{var ae;const{currentSessionId:r,appendToolCall:s,setHasToolCalls:a,updateToolCall:i,updateSubagent:o,messages:u}=t();if(e.sessionId!==r)return;const d=e.toolCallId;if(!d)return;const c=u.find(A=>{var k;return(k=A.agentContent)==null?void 0:k.toolCalls.some(M=>M.toolCallId===d)}),l=u.find(A=>P(A.agentContent).some(k=>k.id===d)),g=(c==null?void 0:c.id)||(l==null?void 0:l.id)||v(t,n,e.messageId,!0);if(!g)return;const f=typeof e.output=="string"?e.output:"",m=e.success===!0||e.status==="completed",S=e.summary||(f&&f.trim()?f.trim().split(`
|
|
5
|
-
`)[0].slice(0,120):m?"执行成功":"执行失败"),y=(ae=c==null?void 0:c.agentContent)==null?void 0:ae.toolCalls.find(A=>A.toolCallId===d),h=typeof e.toolName=="string"?e.toolName:(y==null?void 0:y.toolName)??"Unknown",I=e.metadata;c?i(g,d,{status:m?"success":"error",summary:S,output:f,metadata:I}):l||(a(!0),s(g,{toolCallId:d,toolName:h,status:m?"success":"error",summary:S,output:f,startTime:Date.now(),metadata:I}));const E=t().messages.find(A=>A.id===g),
|
|
3
|
+
`)}const Fe=2166136261,Ee=16777619;function L(e){return e==null?"":typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):Array.isArray(e)?`[${e.map(t=>L(t)).join(",")}]`:typeof e=="object"?`{${Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>`${JSON.stringify(n)}:${L(r)}`).join(",")}}`:JSON.stringify(e)}function Se(e){let t=Fe>>>0;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,Ee);return(t>>>0).toString(16)}function he(e){return typeof e=="string"?e:L(e??{})}function Q(e){return e==="completed"?"completed":e==="failed"||e==="cancelled"?"failed":"running"}function H({explicitId:e,messageId:t,toolName:n,argumentsValue:r,toolKind:s,output:a}){if(e)return e;const i=[t||"unknown-message",n||"Unknown",he(r),s||"",a||""].join("|");return`tool-${Se(i)}`}function F({explicitId:e,sessionId:t,messageId:n,agentType:r,description:s,summary:a}){if(e)return e;if(t)return t;const i=[n||"unknown-message",r||"subagent",s||"",a||""].join("|");return`subagent-${Se(i)}`}const qe=(e,t)=>{if(!t||typeof t!="object")return null;const n=Q(t.status),r=typeof t.summary=="string"?t.summary:void 0;return{id:F({explicitId:typeof t.subagentId=="string"?t.subagentId:void 0,sessionId:t.childSessionId,messageId:e,agentType:t.agentType,description:t.description,summary:t.summary}),type:t.agentType||"subagent",description:t.description||t.summary||"",status:n,startTime:Date.now(),sessionId:t.childSessionId,resumedFrom:t.resumedFrom,rootAgentId:t.rootAgentId,resumeDepth:typeof t.resumeDepth=="number"?t.resumeDepth:void 0,verificationVerdict:t.verificationVerdict==="pass"||t.verificationVerdict==="fail"||t.verificationVerdict==="partial"?t.verificationVerdict:void 0,output:n==="running"?void 0:r}},Be=(e,t)=>!t||typeof t!="object"?[]:(Array.isArray(t.subtaskRefs)?t.subtaskRefs:t.subtaskRef&&typeof t.subtaskRef=="object"?[t.subtaskRef]:[]).map(r=>qe(e,r)).filter(r=>r!==null);function x(e){return typeof e=="string"?e:e.filter(t=>t.type==="text").map(t=>t.text).join(`
|
|
4
|
+
`)}function U(e){if(!e.agentContent)return e;let t=e.agentContent;for(const n of Be(e.id,e.metadata))t=Ie(t,n);return{...e,agentContent:t}}function Ve(e){var r,s,a;const t=[];let n=null;for(const i of e)if(i.role!=="system"){if(i.role==="user")n&&(t.push(U(n)),n=null),t.push({id:i.id,role:i.role,content:i.content,timestamp:i.timestamp||Date.now(),metadata:i.metadata});else if(i.role==="assistant"){n&&t.push(U(n));const o=i.metadata;let u=$();i.thinkingContent&&(u=Oe(u,i.thinkingContent),u.thinkingContent=i.thinkingContent);const d=x(i.content);if(d&&(u=De(u,d),u.textBefore=d),i.tool_calls&&Array.isArray(i.tool_calls))for(const c of i.tool_calls){const l=((r=c.function)==null?void 0:r.name)||"Unknown",g=he((s=c.function)==null?void 0:s.arguments);if(l==="Task"){let m={};try{m=JSON.parse(g)}catch{}const S=typeof m.subagent_type=="string"?m.subagent_type:"subagent",y=typeof m.description=="string"?m.description:S;u=Ie(u,{id:F({explicitId:c.id,sessionId:typeof m.subagent_session_id=="string"?m.subagent_session_id:void 0,messageId:i.id,agentType:S,description:y}),type:S,description:y,status:"running",startTime:Date.now(),sessionId:typeof m.subagent_session_id=="string"?m.subagent_session_id:void 0,resumedFrom:typeof m.resume_from=="string"?m.resume_from:typeof m.resume=="string"?m.resume:void 0});continue}const f={toolCallId:H({explicitId:c.id,messageId:i.id,toolName:l,argumentsValue:(a=c.function)==null?void 0:a.arguments}),toolName:l,arguments:g,status:"running",startTime:Date.now()};u=le(u,f)}n={id:i.id,role:"assistant",content:x(i.content),timestamp:i.timestamp||Date.now(),metadata:o,agentContent:u}}else if(i.role==="tool"&&n&&n.agentContent){const o=i,u=i.metadata,d=o.tool_call_id||(u==null?void 0:u.toolCallId),c=o.name||(u==null?void 0:u.toolName)||"Tool",l=u!=null&&u.metadata&&typeof u.metadata=="object"&&!Array.isArray(u.metadata)?u.metadata:u,g=u!=null&&u.independentVerification&&typeof u.independentVerification=="object"&&!Array.isArray(u.independentVerification)?u.independentVerification:void 0,f=(u==null?void 0:u.status)==="failed"||(u==null?void 0:u.status)==="error"||typeof(u==null?void 0:u.error)=="string"&&u.error.length>0,m=P(n.agentContent),S=m.findIndex(h=>h.id===d);if(S>=0){const h=m[S],I=typeof(l==null?void 0:l.subagentStatus)=="string"?Q(l.subagentStatus):f?"failed":"completed";m[S]={...h,sessionId:typeof(l==null?void 0:l.subagentSessionId)=="string"?l.subagentSessionId:h.sessionId,type:typeof(l==null?void 0:l.subagentType)=="string"?l.subagentType:h.type,status:I,resumedFrom:typeof(l==null?void 0:l.subagentResumedFrom)=="string"?l.subagentResumedFrom:h.resumedFrom,rootAgentId:typeof(l==null?void 0:l.subagentRootId)=="string"?l.subagentRootId:h.rootAgentId,resumeDepth:typeof(l==null?void 0:l.subagentResumeDepth)=="number"?l.subagentResumeDepth:h.resumeDepth,verificationVerdict:(l==null?void 0:l.verificationVerdict)==="pass"||(l==null?void 0:l.verificationVerdict)==="fail"||(l==null?void 0:l.verificationVerdict)==="partial"?l.verificationVerdict:(g==null?void 0:g.verificationVerdict)==="pass"||(g==null?void 0:g.verificationVerdict)==="fail"||(g==null?void 0:g.verificationVerdict)==="partial"?g.verificationVerdict:h.verificationVerdict,output:typeof(l==null?void 0:l.subagentSummary)=="string"?l.subagentSummary:x(i.content)||h.output},n.agentContent=W(n.agentContent,m,h.id);continue}const y=n.agentContent.toolCalls.find(h=>h.toolCallId===d);y?(y.output=x(i.content),y.status=f?"error":"success",y.metadata=l,y.summary=typeof(l==null?void 0:l.summary)=="string"?l.summary:y.summary,(!y.toolName||y.toolName==="Unknown")&&(y.toolName=c)):n.agentContent=le(n.agentContent,{toolCallId:H({explicitId:d,messageId:n.id,toolName:c,output:x(i.content)}),toolName:c,output:x(i.content),status:f?"error":"success",startTime:Date.now(),metadata:l,summary:typeof(l==null?void 0:l.summary)=="string"?l.summary:void 0})}}return n&&t.push(U(n)),t}const ye={authentication:"task.failure.authentication",permission:"task.failure.permission",rate_limit:"task.failure.rateLimit",timeout:"task.failure.timeout",network:"task.failure.network",model_unavailable:"task.failure.modelUnavailable",context_limit:"task.failure.contextLimit",unsupported_input:"task.failure.unsupportedInput",workspace_unavailable:"task.failure.workspaceUnavailable",capacity:"task.failure.capacity",runtime:"task.failure.runtime"},Ke={authentication:!1,permission:!1,rate_limit:!0,timeout:!0,network:!0,model_unavailable:!0,context_limit:!1,unsupported_input:!1,workspace_unavailable:!1,capacity:!0,runtime:!0};function Ue(e){if(typeof e=="string"&&Object.keys(ye).includes(e))return e}function bn(e){return ye[e]}function Cn(e){return Ke[e]}const be="blade.sidebar.view",Ce="blade.preview.width",J=640,Je=360,We=960,Le=()=>{if(typeof localStorage>"u")return"project";const e=localStorage.getItem(be);return e==="status"||e==="project"?e:"project"},ve=e=>Math.min(We,Math.max(Je,Math.round(e))),He=()=>{if(typeof localStorage>"u")return J;const e=localStorage.getItem(Ce);if(!e)return J;const t=Number(e);return Number.isFinite(t)?ve(t):J},Ge=fe(e=>({mainView:"workspace",setMainView:t=>e(n=>({mainView:t,isFilePreviewOpen:t==="board"?!1:n.isFilePreviewOpen})),boardProjectPath:null,setBoardProjectPath:t=>e({boardProjectPath:t}),isSidebarOpen:!0,toggleSidebar:()=>e(t=>({isSidebarOpen:!t.isSidebarOpen})),setSidebarOpen:t=>e({isSidebarOpen:t}),sidebarView:Le(),setSidebarView:t=>{typeof localStorage<"u"&&localStorage.setItem(be,t),e({sidebarView:t})},isFilePreviewOpen:!1,toggleFilePreview:()=>e(t=>({isFilePreviewOpen:!t.isFilePreviewOpen})),setFilePreviewOpen:t=>e({isFilePreviewOpen:t}),previewWidth:He(),setPreviewWidth:t=>{const n=ve(t);typeof localStorage<"u"&&localStorage.setItem(Ce,String(n)),e({previewWidth:n})},previewTab:"diff",setPreviewTab:t=>e({previewTab:t}),previewTargetPath:null,previewRequestId:0,openFilePreview:t=>e(n=>({isFilePreviewOpen:!0,previewTab:(t==null?void 0:t.tab)??n.previewTab,previewTargetPath:(t==null?void 0:t.targetPath)??null,previewRequestId:n.previewRequestId+1})),isSettingsOpen:!1,settingsSection:"general",toggleSettings:()=>e(t=>({isSettingsOpen:!t.isSettingsOpen,...t.isSettingsOpen?{}:{settingsSection:"general"}})),openSettings:(t="general")=>e({isSettingsOpen:!0,settingsSection:t}),isTerminalOpen:!1,toggleTerminal:()=>e(t=>({isTerminalOpen:!t.isTerminalOpen})),isTaskSwitcherOpen:!1,taskSwitcherMode:"tasks",setTaskSwitcherOpen:(t,n)=>e(r=>({isTaskSwitcherOpen:t,taskSwitcherMode:n??r.taskSwitcherMode})),setTaskSwitcherMode:t=>e({taskSwitcherMode:t})})),Qe=new Set(["BrowserNavigate","BrowserSnapshot","BrowserInteract","BrowserWait","BrowserInspect","BrowserPage"]),Ye=new Set(["click","hover","fill","type","press","select","check","uncheck","scroll"]);function ce(e,t){return(e==null?void 0:e.sessionId)===t.sessionId&&e.projectPath===t.projectPath}function N(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function Ae(e){return typeof e=="string"&&Ye.has(e)?e:void 0}function ze(e){const t=N(e),n=Ae(t==null?void 0:t.action);if(!t||!n)return;const r=N(t.viewport),s=N(t.targetBox),a=i=>typeof i=="number"&&Number.isFinite(i);return{action:n,...typeof t.ref=="string"?{ref:t.ref}:{},...r&&a(r.width)&&a(r.height)?{viewport:{width:r.width,height:r.height}}:{},...s&&a(s.x)&&a(s.y)&&a(s.width)&&a(s.height)?{targetBox:{x:s.x,y:s.y,width:s.width,height:s.height}}:{}}}function Xe(e){if(typeof e!="string")return N(e);try{return N(JSON.parse(e))}catch{return}}function Ze(e){return typeof e=="string"&&Qe.has(e)}const et=fe(e=>({agentActivity:null,beginAgentActivity:(t,n)=>e(r=>{var o,u;const s=ce((o=r.agentActivity)==null?void 0:o.sessionRef,t)?r.agentActivity:null,a=Xe(n.argumentsValue),i=n.toolName==="BrowserInteract"?Ae((u=N(a==null?void 0:a.action))==null?void 0:u.kind):void 0;return{agentActivity:{sessionRef:t,toolCallId:n.toolCallId,toolName:n.toolName,phase:"running",revision:((s==null?void 0:s.revision)??0)+1,frameRevision:(s==null?void 0:s.frameRevision)??0,pointerRevision:(s==null?void 0:s.pointerRevision)??0,...s!=null&&s.pageId?{pageId:s.pageId}:{},...s!=null&&s.origin?{origin:s.origin}:{},...s!=null&&s.url?{url:s.url}:{},...s!=null&&s.title?{title:s.title}:{},...i?{pendingAction:{action:i,...typeof(a==null?void 0:a.ref)=="string"?{ref:a.ref}:{}}}:{},...n.toolName!=="BrowserNavigate"&&(s!=null&&s.interaction)?{interaction:s.interaction}:{}}}}),completeAgentActivity:(t,n)=>e(r=>{var c,l;const s=ce((c=r.agentActivity)==null?void 0:c.sessionRef,t)?r.agentActivity:null,a=N((l=N(n.metadata))==null?void 0:l.browser),i=ze(a==null?void 0:a.interaction),o=typeof(a==null?void 0:a.pageId)=="string"?a.pageId:s==null?void 0:s.pageId,u=typeof(a==null?void 0:a.origin)=="string"?a.origin:s==null?void 0:s.origin,d=n.toolName!=="BrowserNavigate"&&n.toolName!=="BrowserPage";return{agentActivity:{sessionRef:t,toolCallId:n.toolCallId,toolName:n.toolName,phase:n.success?"ready":"error",revision:((s==null?void 0:s.revision)??0)+1,frameRevision:o&&u?((s==null?void 0:s.frameRevision)??0)+1:(s==null?void 0:s.frameRevision)??0,pointerRevision:i!=null&&i.targetBox?((s==null?void 0:s.pointerRevision)??0)+1:(s==null?void 0:s.pointerRevision)??0,...o?{pageId:o}:{},...u?{origin:u}:{},...typeof(a==null?void 0:a.url)=="string"?{url:a.url}:s!=null&&s.url?{url:s.url}:{},...typeof(a==null?void 0:a.title)=="string"?{title:a.title}:s!=null&&s.title?{title:s.title}:{},...typeof(a==null?void 0:a.errorCode)=="string"?{errorCode:a.errorCode}:{},...i?{interaction:i}:d&&(s!=null&&s.interaction)?{interaction:s.interaction}:{}}}}),clearAgentActivity:()=>e({agentActivity:null})})),tt={flushTimeout:80};class nt{constructor(t){K(this,"config");K(this,"channels",new Map);this.config={...tt,...t}}append(t,n,r){let s=this.channels.get(t);s||(s={buffer:"",timer:null,flushFn:null},this.channels.set(t,s)),s.buffer+=n,s.flushFn=r,s.timer||(s.timer=setTimeout(()=>{this.flushChannel(t)},this.config.flushTimeout))}flushChannel(t){const n=this.channels.get(t);if(!n||!n.buffer)return;const r=n.buffer,s=n.flushFn;n.buffer="",n.timer&&(clearTimeout(n.timer),n.timer=null),s==null||s(r)}drainAll(){for(const[t]of this.channels)this.flushChannel(t);this.channels.clear()}drainAllExcept(t){for(const[n]of this.channels)n!==t&&this.flushChannel(n);for(const[n,r]of this.channels)n!==t&&!r.buffer&&this.channels.delete(n)}reset(){for(const[,t]of this.channels)t.timer&&clearTimeout(t.timer);this.channels.clear()}}const w=new nt,st=100,C=(e,t,n)=>{if(t)for(const r of e){const s=P(r.agentContent).find(a=>a.id===t||a.sessionId===t);if(s)return{messageId:r.id,subagent:s}}if(n){const r=e.find(i=>i.id===n),s=P(r==null?void 0:r.agentContent),a=s.find(i=>i.status==="running")??s[s.length-1];if(a)return{messageId:n,subagent:a}}for(const r of[...e].reverse()){const s=P(r.agentContent),a=s.find(i=>i.status==="running")??s[s.length-1];if(a)return{messageId:r.id,subagent:a}}};function it(e,t,n){n(r=>{const s={...r.pendingSubagentCompletions??{}};if(s[e]===void 0&&Object.keys(s).length>=st){const a=Object.keys(s)[0];a&&delete s[a]}return s[e]={...t},{pendingSubagentCompletions:s}})}function Y(e,t,n){var a;if(!e)return;const r=(a=t().pendingSubagentCompletions)==null?void 0:a[e];!r||!C(t().messages,e,t().currentAssistantMessageId)||(X({...r,subagentSessionId:e,success:r.status==="completed"},t),n(i=>{const o={...i.pendingSubagentCompletions??{}};return delete o[e],{pendingSubagentCompletions:o}}))}const v=(e,t,n,r=!1)=>{const{currentAssistantMessageId:s,messages:a,addMessage:i,startAgentResponse:o}=e();if(n&&r){const l=a.find(f=>f.id===n&&f.role==="assistant");if(l)return o(l.id),l.id;const g={id:n,role:"assistant",content:"",timestamp:Date.now(),agentContent:$()};return i(g),o(n),n}if(s&&!s.startsWith("call_")&&a.some(l=>l.id===s&&l.role==="assistant"))return s;if(n){const l=a.find(g=>g.id===n&&g.role==="assistant");if(l)return o(l.id),l.id}const u=a[a.length-1];if((u==null?void 0:u.role)==="assistant")return u.id;const d=n||`assistant-${Date.now()}`,c={id:d,role:"assistant",content:"",timestamp:Date.now(),agentContent:$()};return i(c),o(d),t(l=>({messages:l.messages.map(g=>g.id===d?{...g,agentContent:{...g.agentContent||$()}}:g)})),d},ot=(e,t,n)=>{const{currentSessionId:r,addMessage:s,startAgentResponse:a,messages:i,updateMessage:o}=t();if(e.sessionId!==r)return;const u=e.messageId,d=e.role||"assistant",c=i.find(g=>g.id===u),l={id:u,role:d,content:e.content||"",timestamp:Date.now(),agentContent:d==="assistant"?$():void 0};c?o(u,{role:d,content:l.content,agentContent:d==="assistant"?{...c.agentContent||$()}:void 0}):s(l),d==="assistant"&&a(u)},at=(e,t,n)=>{const{currentSessionId:r,appendDelta:s,currentAssistantMessageId:a,hasToolCalls:i,addMessage:o,startAgentResponse:u}=t();if(e.sessionId!==r)return;const d=e.messageId,c=e.delta;if(!a){const g={id:d,role:"assistant",content:"",timestamp:Date.now(),agentContent:$()};o(g),u(d),t().appendDelta(d,c,"before");return}s(a,c,i?"after":"before")},rt=(e,t)=>{const{currentSessionId:n,updateMessage:r,messages:s}=t();if(e.sessionId!==n)return;const a=e.messageId,i=s.find(o=>o.id===a);i!=null&&i.agentContent&&r(a,{content:pe(i.agentContent)})},ut=(e,t,n)=>{var u;const{currentSessionId:r}=t();if(e.sessionId!==r)return;const s=e.output;if(!s||typeof s!="object"||Array.isArray(s))return;const a=v(t,n,e.messageId);if(!a)return;const i=t().messages.find(d=>d.id===a);if(!i)return;const o=JSON.stringify(s,null,2);t().updateMessage(a,{content:o,metadata:{...i.metadata,structuredOutput:{output:s,schemaDigest:e.schemaDigest}},agentContent:i.agentContent?{...i.agentContent,textBefore:"",textAfter:"",timeline:(u=i.agentContent.timeline)==null?void 0:u.filter(d=>d.type!=="text")}:void 0})},dt=(e,t,n)=>{const{currentSessionId:r,appendThinking:s}=t();if(e.sessionId!==r)return;const a=v(t,n,e.messageId);a&&s(a,e.delta)},lt=()=>{},ke=(e,t,n)=>{const{currentSessionId:r,appendToolCall:s,setHasToolCalls:a,setSubagent:i}=t();if(e.sessionId!==r)return;const o=v(t,n,e.messageId||e.toolCallId,typeof e.messageId=="string");if(!o)return;a(!0);const u=e.toolName||"Unknown",d=e.arguments;let c,l="",g,f;if(u==="Task")try{const S=JSON.parse(d);c=S.subagent_type,l=S.description||S.query||c||"",g=S.subagent_session_id,f=S.resume_from||S.resume}catch{}if(c){i(o,{id:F({explicitId:e.toolCallId,sessionId:g,messageId:o,agentType:c,description:l}),type:c,description:l,status:"running",startTime:Date.now(),sessionId:g,resumedFrom:f,output:"",thinking:""}),Y(g,t,n);return}const m={toolCallId:H({explicitId:e.toolCallId,messageId:o,toolName:u,argumentsValue:d,toolKind:e.toolKind}),toolName:u,arguments:d,toolKind:e.toolKind,status:"running",startTime:Date.now()};s(o,m)};function Te(e){if(!e||typeof e!="object"||Array.isArray(e))return;const t=e;if(!(t.kind!=="readonly"&&t.kind!=="write"&&t.kind!=="execute")&&!(t.scope!=="global"&&t.scope!=="session")&&!(!Number.isSafeInteger(t.queuePosition)||t.queuePosition<=0||!Number.isSafeInteger(t.inFlight)||t.inFlight<0||!Number.isSafeInteger(t.limit)||t.limit<=0))return{kind:t.kind,scope:t.scope,queuePosition:t.queuePosition,inFlight:t.inFlight,limit:t.limit}}const we=(e,t)=>{const{currentSessionId:n,updateToolCall:r,messages:s}=t();if(e.sessionId!==n)return;const a=e.toolCallId;if(!a)return;const i=s.find(o=>{var u;return(u=o.agentContent)==null?void 0:u.toolCalls.some(d=>d.toolCallId===a)});i&&r(i.id,a,{summary:e.message,progress:typeof e.progress=="number"?e.progress:void 0,progressTotal:typeof e.total=="number"?e.total:void 0,progressMessage:e.message,admission:Te(e.admission)})},Pe=(e,t,n)=>{var ae;const{currentSessionId:r,appendToolCall:s,setHasToolCalls:a,updateToolCall:i,updateSubagent:o,messages:u}=t();if(e.sessionId!==r)return;const d=e.toolCallId;if(!d)return;const c=u.find(A=>{var T;return(T=A.agentContent)==null?void 0:T.toolCalls.some(M=>M.toolCallId===d)}),l=u.find(A=>P(A.agentContent).some(T=>T.id===d)),g=(c==null?void 0:c.id)||(l==null?void 0:l.id)||v(t,n,e.messageId,!0);if(!g)return;const f=typeof e.output=="string"?e.output:"",m=e.success===!0||e.status==="completed",S=e.summary||(f&&f.trim()?f.trim().split(`
|
|
5
|
+
`)[0].slice(0,120):m?"执行成功":"执行失败"),y=(ae=c==null?void 0:c.agentContent)==null?void 0:ae.toolCalls.find(A=>A.toolCallId===d),h=typeof e.toolName=="string"?e.toolName:(y==null?void 0:y.toolName)??"Unknown",I=e.metadata;c?i(g,d,{status:m?"success":"error",summary:S,output:f,metadata:I}):l||(a(!0),s(g,{toolCallId:d,toolName:h,status:m?"success":"error",summary:S,output:f,startTime:Date.now(),metadata:I}));const E=t().messages.find(A=>A.id===g),k=P(E==null?void 0:E.agentContent).find(A=>A.id===d),R=I&&typeof I.subagentSessionId=="string"?I.subagentSessionId:void 0,_=I&&typeof I.subagentStatus=="string"?I.subagentStatus:void 0,ee=I&&typeof I.subagentType=="string"?I.subagentType:void 0,te=I&&typeof I.subagentSummary=="string"?I.subagentSummary:void 0,ne=I&&typeof I.subagentResumedFrom=="string"?I.subagentResumedFrom:void 0,se=I&&typeof I.subagentRootId=="string"?I.subagentRootId:void 0,ie=I&&typeof I.subagentResumeDepth=="number"?I.subagentResumeDepth:void 0,oe=(I==null?void 0:I.verificationVerdict)==="pass"||(I==null?void 0:I.verificationVerdict)==="fail"||(I==null?void 0:I.verificationVerdict)==="partial"?I.verificationVerdict:void 0;if(k){const A=_?Q(_):e.success?"completed":"failed",T=k.status!=="running"&&A==="running";o(g,k.id,{sessionId:k.sessionId||R,type:ee||k.type,status:T?k.status:A,resumedFrom:ne||k.resumedFrom,rootAgentId:se||k.rootAgentId,resumeDepth:ie??k.resumeDepth,verificationVerdict:oe??k.verificationVerdict,output:T?k.output:te||k.output})}R&&_&&n(A=>({messages:A.messages.map(T=>{if(T.id!==g)return T;const M=T.metadata??{},q=Array.isArray(M.subtaskRefs)?M.subtaskRefs:[],j=q.findIndex(re=>re.childSessionId===R||re.subagentId===d),b=j>=0?q[j]:M.subtaskRef??{},B={...b,subagentId:d,childSessionId:R,agentType:ee||(typeof(b==null?void 0:b.agentType)=="string"?b.agentType:"subagent"),status:_,summary:te||(typeof(b==null?void 0:b.summary)=="string"?b.summary:""),resumedFrom:ne||(typeof(b==null?void 0:b.resumedFrom)=="string"?b.resumedFrom:void 0),rootAgentId:se||(typeof(b==null?void 0:b.rootAgentId)=="string"?b.rootAgentId:R),resumeDepth:ie??(typeof(b==null?void 0:b.resumeDepth)=="number"?b.resumeDepth:0),verificationVerdict:oe||(typeof(b==null?void 0:b.verificationVerdict)=="string"?b.verificationVerdict:void 0)},V=[...q];return j>=0?V[j]=B:V.push(B),{...T,metadata:{...M,subtaskRef:B,subtaskRefs:V}}})})),Y(R,t,n)},ct=(e,t,n)=>{const{currentSessionId:r,appendToolCall:s}=t();if(e.sessionId!==r)return;const a=v(t,n,e.messageId||`mcp-catalog-${String(e.revision)}`);if(!a)return;const i=Array.isArray(e.added)?e.added.map(String):[],o=Array.isArray(e.removed)?e.removed.map(String):[],u=Array.isArray(e.updated)?e.updated.map(String):[],d=`MCP catalog r${String(e.revision)}: +${i.length} -${o.length} ~${u.length}`;s(a,{toolCallId:`mcp-catalog:${String(e.revision)}`,toolName:"MCP Catalog",arguments:JSON.stringify({serverName:e.serverName,added:i,removed:o,updated:u}),toolKind:"readonly",status:"success",startTime:Date.now(),summary:d,output:[i.length>0?`Added: ${i.join(", ")}`:"",o.length>0?`Removed: ${o.join(", ")}`:"",u.length>0?`Updated: ${u.join(", ")}`:""].filter(Boolean).join(`
|
|
6
6
|
`)})},gt=(e,t,n)=>{const{currentSessionId:r,appendToolCall:s}=t();if(e.sessionId!==r)return;const a=v(t,n,e.messageId||`mcp-content-${String(e.revision)}`);if(!a)return;const i=Array.isArray(e.added)?e.added.map(String):[],o=Array.isArray(e.removed)?e.removed.map(String):[],u=Array.isArray(e.updated)?e.updated.map(String):[],d=`MCP ${String(e.contentKind)} r${String(e.revision)}: +${i.length} -${o.length} ~${u.length}`;s(a,{toolCallId:`mcp-content:${String(e.revision)}`,toolName:"MCP Content",arguments:JSON.stringify({serverName:e.serverName,contentKind:e.contentKind,added:i,removed:o,updated:u}),toolKind:"readonly",status:"success",startTime:Date.now(),summary:d,output:[i.length>0?`Added: ${i.join(", ")}`:"",o.length>0?`Removed: ${o.join(", ")}`:"",u.length>0?`Updated: ${u.join(", ")}`:""].filter(Boolean).join(`
|
|
7
7
|
`)})},mt=(e,t,n)=>{const{currentSessionId:r,appendToolCall:s}=t();if(e.sessionId!==r)return;const a=v(t,n,e.messageId||`mcp-resource-${String(e.revision)}`);a&&s(a,{toolCallId:`mcp-resource:${String(e.revision)}`,toolName:"MCP Resource",arguments:JSON.stringify({serverName:e.serverName,uri:e.uri}),toolKind:"readonly",status:"success",startTime:Date.now(),summary:`MCP resource updated: ${String(e.uri)}`,output:`${String(e.serverName)} · revision ${String(e.revision)}`})},ft=(e,t,n)=>{const{currentSessionId:r,appendToolCall:s}=t();if(e.sessionId!==r)return;const a=v(t,n,e.messageId||`mcp-connection-${String(e.revision)}`);if(!a)return;const i=String(e.phase),o=`MCP ${String(e.serverName)} ${i}`+(i==="reconnecting"?` (${String(e.attempt)}/${String(e.maxAttempts)})`:"");s(a,{toolCallId:`mcp-connection:${String(e.revision)}`,toolName:"MCP Connection",arguments:JSON.stringify({serverName:e.serverName,phase:i,reason:e.reason,attempt:e.attempt,maxAttempts:e.maxAttempts}),toolKind:"readonly",status:i==="failed"?"error":"success",startTime:Date.now(),summary:o,output:[`Reason: ${String(e.reason)}`,e.error?`Error: ${String(e.error)}`:""].filter(Boolean).join(`
|
|
8
8
|
`)})},It=(e,t,n)=>{const{currentSessionId:r,appendToolCall:s}=t();if(e.sessionId!==r)return;const a=v(t,n,e.messageId||`mcp-log-${String(e.revision)}`);if(!a)return;const i=String(e.level),o=typeof e.logger=="string"?e.logger:void 0,u=`MCP ${i} · ${String(e.serverName)}`+(o?` · ${o}`:"");s(a,{toolCallId:`mcp-log:${String(e.revision)}`,toolName:"MCP Log",arguments:JSON.stringify({serverName:e.serverName,level:i,logger:o}),toolKind:"readonly",status:"success",startTime:Date.now(),summary:u,output:[String(e.message),`SHA-256: ${String(e.dataSha256)}`,e.truncated===!0?"Truncated":"",e.detailsOmitted===!0?"Details omitted by runtime policy":""].filter(Boolean).join(`
|
|
@@ -13,10 +13,10 @@ var Re=Object.defineProperty;var Me=(e,t,n)=>t in e?Re(e,t,{enumerable:!0,config
|
|
|
13
13
|
${u}`,metadata:{...i.metadata,userShellExecution:{...o,output:u,streamTruncated:e.streamTruncated===!0}}})},vt=(e,t,n)=>{const{currentSessionId:r,messages:s,addMessage:a,updateMessage:i}=t();if(e.sessionId!==r||typeof e.executionId!="string"||!e.record||typeof e.record!="object"||Array.isArray(e.record))return;const o=e.record,u=typeof o.command=="string"?o.command:"",d=typeof o.stdout=="string"?o.stdout:"",c=typeof o.stderr=="string"?o.stderr:"",l=[d,c?`stderr:
|
|
14
14
|
${c}`:""].filter(Boolean).join(`
|
|
15
15
|
`),g=z(e.executionId),f={role:"user",content:[`! ${u}`,l||"(no output)"].join(`
|
|
16
|
-
`),metadata:{userShellCommand:o}};s.some(m=>m.id===g)?i(g,f):a({id:g,...f,timestamp:Date.now()}),e.auxiliary!==!0&&n({isStreaming:!1,isStopping:!1,agentPhase:"idle"}),(e.delivery==="current_turn"||e.delivery==="next_turn")&&n({pendingSteeringCount:typeof e.queued=="number"?Math.max(0,e.queued):0,pendingInputDelivery:e.delivery==="current_turn"?"current_turn":"next_turn"})},At=(e,t)=>{const{currentSessionId:n,updateTokenUsage:r,setMaxContextTokens:s}=t();e.sessionId===n&&(r({inputTokens:e.inputTokens,outputTokens:e.outputTokens,totalTokens:e.totalTokens,cacheReadTokens:e.cacheReadTokens??0,cacheWriteTokens:e.cacheWriteTokens??0,...e.cacheBreak?{cacheBreak:e.cacheBreak}:{},costUsd:e.costUsd}),e.maxContextTokens&&s(e.maxContextTokens,!1))},
|
|
17
|
-
`)[0].slice(0,120):l?"执行成功":"执行失败");a(d.messageId,d.subagent.id,m=>({sessionId:m.sessionId||u,currentTool:m.currentTool===o?void 0:m.currentTool,toolCalls:(m.toolCalls||[]).map(S=>S.toolCallId===i?{...S,status:g,summary:f,output:c,metadata:e.metadata}:S)}))},Mt=(e,t)=>{const{currentSessionId:n,currentAssistantMessageId:r,messages:s,updateSubagent:a}=t();if(e.sessionId!==n)return;const i=e.toolCallId;if(!i)return;const o=C(s,e.subagentSessionId,r);o&&a(o.messageId,o.subagent.id,u=>({toolCalls:(u.toolCalls||[]).map(d=>d.toolCallId===i?{...d,summary:e.message,progress:typeof e.progress=="number"?e.progress:void 0,progressTotal:typeof e.total=="number"?e.total:void 0,progressMessage:e.message,admission:
|
|
18
|
-
`)}]}))},
|
|
19
|
-
`)}]}))},
|
|
20
|
-
`)}]}))},
|
|
16
|
+
`),metadata:{userShellCommand:o}};s.some(m=>m.id===g)?i(g,f):a({id:g,...f,timestamp:Date.now()}),e.auxiliary!==!0&&n({isStreaming:!1,isStopping:!1,agentPhase:"idle"}),(e.delivery==="current_turn"||e.delivery==="next_turn")&&n({pendingSteeringCount:typeof e.queued=="number"?Math.max(0,e.queued):0,pendingInputDelivery:e.delivery==="current_turn"?"current_turn":"next_turn"})},At=(e,t)=>{const{currentSessionId:n,updateTokenUsage:r,setMaxContextTokens:s}=t();e.sessionId===n&&(r({inputTokens:e.inputTokens,outputTokens:e.outputTokens,totalTokens:e.totalTokens,cacheReadTokens:e.cacheReadTokens??0,cacheWriteTokens:e.cacheWriteTokens??0,...e.cacheBreak?{cacheBreak:e.cacheBreak}:{},costUsd:e.costUsd}),e.maxContextTokens&&s(e.maxContextTokens,!1))},kt=(e,t)=>{const{currentSessionId:n,setTasks:r,currentAssistantMessageId:s}=t();if(e.sessionId!==n||!s)return;const a=e.tasks||[];r(s,a)},Tt=(e,t,n)=>{const{currentSessionId:r,setSubagent:s,currentAssistantMessageId:a}=t();if(e.sessionId!==r||!a)return;const i={id:F({explicitId:e.subagentId,sessionId:e.subagentSessionId,messageId:a,agentType:e.type,description:e.description}),type:e.type||"unknown",description:e.description||"",status:"running",startTime:Date.now(),sessionId:e.subagentSessionId,resumedFrom:e.resumedFrom,rootAgentId:e.rootAgentId,resumeDepth:typeof e.resumeDepth=="number"?e.resumeDepth:void 0};s(a,i),Y(i.sessionId,t,n)},wt=(e,t)=>{const{currentSessionId:n,currentAssistantMessageId:r,messages:s,updateSubagent:a}=t();if(e.sessionId!==n)return;const i=e.subagentSessionId,o=C(s,i,r);o&&a(o.messageId,o.subagent.id,{sessionId:o.subagent.sessionId||i,currentTool:e.toolName})},Pt=(e,t)=>{const{currentSessionId:n,currentAssistantMessageId:r,messages:s,updateSubagent:a}=t();if(e.sessionId!==n)return;const i=e.delta;if(!i)return;const o=e.subagentSessionId,u=C(s,o,r);u&&a(u.messageId,u.subagent.id,d=>({sessionId:d.sessionId||o,output:(d.output||"")+i}))},Nt=(e,t)=>{const{currentSessionId:n,currentAssistantMessageId:r,messages:s,updateSubagent:a}=t();if(e.sessionId!==n)return;const i=e.delta;if(!i)return;const o=e.subagentSessionId,u=C(s,o,r);u&&a(u.messageId,u.subagent.id,d=>({sessionId:d.sessionId||o,thinking:(d.thinking||"")+i}))},X=(e,t)=>{const{currentSessionId:n,currentAssistantMessageId:r,messages:s,updateSubagent:a}=t();if(e.sessionId!==n)return;const i=e.subagentSessionId,o=C(s,i,r);if(!o)return;const u=e.status==="completed"?"completed":e.status==="failed"||e.status==="cancelled"?"failed":e.success?"completed":"failed";a(o.messageId,o.subagent.id,{sessionId:o.subagent.sessionId||i,type:typeof e.type=="string"?e.type:o.subagent.type,description:typeof e.description=="string"?e.description:o.subagent.description,status:u,currentTool:void 0,output:typeof e.summary=="string"?e.summary:o.subagent.output,resumedFrom:typeof e.resumedFrom=="string"?e.resumedFrom:o.subagent.resumedFrom,rootAgentId:typeof e.rootAgentId=="string"?e.rootAgentId:o.subagent.rootAgentId,resumeDepth:typeof e.resumeDepth=="number"?e.resumeDepth:o.subagent.resumeDepth,verificationVerdict:e.verificationVerdict==="pass"||e.verificationVerdict==="fail"||e.verificationVerdict==="partial"?e.verificationVerdict:o.subagent.verificationVerdict})},$t=(e,t)=>{const{currentSessionId:n,currentAssistantMessageId:r,messages:s,updateSubagent:a}=t();if(e.sessionId!==n)return;const i=e.toolCallId,o=e.toolName;if(!i||!o)return;const u=e.subagentSessionId,d=C(s,u,r);if(!d)return;const c={toolCallId:i,toolName:o,arguments:e.arguments,toolKind:e.toolKind,status:"running",startTime:Date.now()};a(d.messageId,d.subagent.id,l=>{const g=l.toolCalls||[];return{sessionId:l.sessionId||u,currentTool:o,toolCalls:g.some(f=>f.toolCallId===i)?g:[...g,c]}})},Rt=(e,t)=>{const{currentSessionId:n,currentAssistantMessageId:r,messages:s,updateSubagent:a}=t();if(e.sessionId!==n)return;const i=e.toolCallId;if(!i)return;const o=e.toolName,u=e.subagentSessionId,d=C(s,u,r);if(!d)return;const c=e.output,l=e.success===!0,g=l?"success":"error",f=e.summary||(c&&c.trim()?c.trim().split(`
|
|
17
|
+
`)[0].slice(0,120):l?"执行成功":"执行失败");a(d.messageId,d.subagent.id,m=>({sessionId:m.sessionId||u,currentTool:m.currentTool===o?void 0:m.currentTool,toolCalls:(m.toolCalls||[]).map(S=>S.toolCallId===i?{...S,status:g,summary:f,output:c,metadata:e.metadata}:S)}))},Mt=(e,t)=>{const{currentSessionId:n,currentAssistantMessageId:r,messages:s,updateSubagent:a}=t();if(e.sessionId!==n)return;const i=e.toolCallId;if(!i)return;const o=C(s,e.subagentSessionId,r);o&&a(o.messageId,o.subagent.id,u=>({toolCalls:(u.toolCalls||[]).map(d=>d.toolCallId===i?{...d,summary:e.message,progress:typeof e.progress=="number"?e.progress:void 0,progressTotal:typeof e.total=="number"?e.total:void 0,progressMessage:e.message,admission:Te(e.admission)}:d)}))},xt=(e,t)=>{const{currentSessionId:n,currentAssistantMessageId:r,messages:s,updateSubagent:a}=t();if(e.sessionId!==n)return;const i=C(s,e.subagentSessionId,r);if(!i)return;const o=Array.isArray(e.added)?e.added.map(String):[],u=Array.isArray(e.removed)?e.removed.map(String):[],d=Array.isArray(e.updated)?e.updated.map(String):[],c=`mcp-catalog:${String(e.revision)}`;a(i.messageId,i.subagent.id,l=>({toolCalls:[...(l.toolCalls||[]).filter(g=>g.toolCallId!==c),{toolCallId:c,toolName:"MCP Catalog",arguments:JSON.stringify({serverName:e.serverName,added:o,removed:u,updated:d}),toolKind:"readonly",status:"success",startTime:Date.now(),summary:`MCP catalog r${String(e.revision)}: +${o.length} -${u.length} ~${d.length}`,output:[o.length>0?`Added: ${o.join(", ")}`:"",u.length>0?`Removed: ${u.join(", ")}`:"",d.length>0?`Updated: ${d.join(", ")}`:""].filter(Boolean).join(`
|
|
18
|
+
`)}]}))},_t=(e,t)=>{const{currentSessionId:n,currentAssistantMessageId:r,messages:s,updateSubagent:a}=t();if(e.sessionId!==n)return;const i=C(s,e.subagentSessionId,r);if(!i)return;const o=Array.isArray(e.added)?e.added.map(String):[],u=Array.isArray(e.removed)?e.removed.map(String):[],d=Array.isArray(e.updated)?e.updated.map(String):[],c=`mcp-content:${String(e.revision)}`;a(i.messageId,i.subagent.id,l=>({toolCalls:[...(l.toolCalls||[]).filter(g=>g.toolCallId!==c),{toolCallId:c,toolName:"MCP Content",arguments:JSON.stringify({serverName:e.serverName,contentKind:e.contentKind,added:o,removed:u,updated:d}),toolKind:"readonly",status:"success",startTime:Date.now(),summary:`MCP ${String(e.contentKind)} r${String(e.revision)}: +${o.length} -${u.length} ~${d.length}`}]}))},jt=(e,t)=>{const{currentSessionId:n,currentAssistantMessageId:r,messages:s,updateSubagent:a}=t();if(e.sessionId!==n)return;const i=C(s,e.subagentSessionId,r);if(!i)return;const o=`mcp-resource:${String(e.revision)}`;a(i.messageId,i.subagent.id,u=>({toolCalls:[...(u.toolCalls||[]).filter(d=>d.toolCallId!==o),{toolCallId:o,toolName:"MCP Resource",arguments:JSON.stringify({serverName:e.serverName,uri:e.uri}),toolKind:"readonly",status:"success",startTime:Date.now(),summary:`MCP resource updated: ${String(e.uri)}`}]}))},Dt=(e,t)=>{const{currentSessionId:n,currentAssistantMessageId:r,messages:s,updateSubagent:a}=t();if(e.sessionId!==n)return;const i=C(s,e.subagentSessionId,r);if(!i)return;const o=String(e.phase),u=`mcp-connection:${String(e.revision)}`;a(i.messageId,i.subagent.id,d=>({toolCalls:[...(d.toolCalls||[]).filter(c=>c.toolCallId!==u),{toolCallId:u,toolName:"MCP Connection",arguments:JSON.stringify({serverName:e.serverName,phase:o,reason:e.reason,attempt:e.attempt,maxAttempts:e.maxAttempts}),toolKind:"readonly",status:o==="failed"?"error":"success",startTime:Date.now(),summary:`MCP ${String(e.serverName)} ${o}`+(o==="reconnecting"?` (${String(e.attempt)}/${String(e.maxAttempts)})`:""),output:e.error?`Error: ${String(e.error)}`:void 0}]}))},Ot=(e,t)=>{const{currentSessionId:n,currentAssistantMessageId:r,messages:s,updateSubagent:a}=t();if(e.sessionId!==n)return;const i=C(s,e.subagentSessionId,r);if(!i)return;const o=String(e.level),u=typeof e.logger=="string"?e.logger:void 0,d=`mcp-log:${String(e.revision)}`;a(i.messageId,i.subagent.id,c=>({toolCalls:[...(c.toolCalls||[]).filter(l=>l.toolCallId!==d),{toolCallId:d,toolName:"MCP Log",arguments:JSON.stringify({serverName:e.serverName,level:o,logger:u}),toolKind:"readonly",status:"success",startTime:Date.now(),summary:`MCP ${o} · ${String(e.serverName)}`+(u?` · ${u}`:""),output:[String(e.message),`SHA-256: ${String(e.dataSha256)}`,e.truncated===!0?"Truncated":"",e.detailsOmitted===!0?"Details omitted by runtime policy":""].filter(Boolean).join(`
|
|
19
|
+
`)}]}))},pt=(e,t)=>{const{currentSessionId:n,currentAssistantMessageId:r,messages:s,updateSubagent:a}=t();if(e.sessionId!==n)return;const i=C(s,e.subagentSessionId,r);if(!i)return;const o=String(e.serverName),u=String(e.action),d=`mcp-instructions:${String(e.revision)}:${o}:${u}`;a(i.messageId,i.subagent.id,c=>({toolCalls:[...(c.toolCalls||[]).filter(l=>l.toolCallId!==d),{toolCallId:d,toolName:"MCP Instructions",arguments:JSON.stringify({serverName:o,action:u,reason:e.reason}),toolKind:"readonly",status:"success",startTime:Date.now(),summary:`MCP instructions ${u}: ${o}`+(e.truncated===!0?" (truncated)":""),output:[typeof e.text=="string"?e.text:"",e.sha256?`SHA-256: ${String(e.sha256)}`:"",e.detailsOmitted===!0?"Details omitted by runtime policy":""].filter(Boolean).join(`
|
|
20
|
+
`)}]}))},Ft=(e,t)=>{const{currentSessionId:n,currentAssistantMessageId:r,messages:s,updateSubagent:a}=t();if(e.sessionId!==n)return;const i=C(s,e.subagentSessionId,r);if(!i)return;const o=String(e.taskId),u=String(e.status),d=`mcp-task:${o}`;a(i.messageId,i.subagent.id,c=>({toolCalls:[...(c.toolCalls||[]).filter(l=>l.toolCallId!==d),{toolCallId:d,toolName:"MCP Task",arguments:JSON.stringify({taskId:o,serverName:e.serverName,toolName:e.toolName}),toolKind:"readonly",status:u==="failed"||u==="cancelled"?"error":u==="completed"?"success":"running",startTime:Number(e.createdAt)||Date.now(),summary:`MCP task ${u}: ${o} · ${String(e.serverName)}/${String(e.toolName)}`,output:[typeof e.statusMessage=="string"?e.statusMessage:"",e.hasResult===!0?"Result available via TaskOutput":"",typeof e.error=="string"?`Error: ${e.error}`:""].filter(Boolean).join(`
|
|
21
21
|
`)}]}))},Et=(e,t)=>{const{currentSessionId:n,currentAssistantMessageId:r,messages:s,updateSubagent:a}=t();if(e.sessionId!==n)return;const i=C(s,e.subagentSessionId,r);if(!i)return;const o=Array.isArray(e.files)?e.files.filter(d=>!!d&&typeof d=="object"&&!Array.isArray(d)):[],u=`project-rules:${o.map(d=>String(d.id)).join(",")}`;a(i.messageId,i.subagent.id,d=>({toolCalls:[...(d.toolCalls||[]).filter(c=>c.toolCallId!==u),{toolCallId:u,toolName:"Project Rules",arguments:JSON.stringify({triggerPaths:e.triggerPaths,blockedWrite:e.blockedWrite}),toolKind:"readonly",status:"success",startTime:Date.now(),summary:`Project rules loaded: ${o.length}`,output:o.map(c=>`${String(c.relativePath)} ${String(c.source)} SHA-256: ${String(c.contentSha256)}`).join(`
|
|
22
|
-
`)}]}))},qt=(e,t,n)=>{const{currentSessionId:r,setConfirmation:s}=t();if(e.sessionId!==r)return;const a=e.requestId||"",i=v(t,n,a?`assistant-permission-${a}`:void 0);if(!i)return;const o=e.details,u=e.toolName||(o==null?void 0:o.toolName)||"Tool";s(i,{toolCallId:a,toolName:u,description:e.description,diff:(o==null?void 0:o.details)||(o==null?void 0:o.diff)||"",allowRemember:(o==null?void 0:o.type)!=="mcpSampling",status:"pending"}),n(d=>({agentPhase:"waiting_permission",isStreaming:!0,sessions:d.sessions.map(c=>c.sessionId===e.sessionId&&c.projectPath===e.projectPath?{...c,pendingInteraction:{type:"permission",requestId:a}}:c)}))},Bt=(e,t,n)=>{var f,m;const{currentSessionId:r,currentSessionRef:s,messages:a,setConfirmation:i,setElicitation:o}=t();if(e.sessionId!==r)return;const u=e.requestId,d=a.find(S=>{var y,h;return((h=(y=S.agentContent)==null?void 0:y.confirmation)==null?void 0:h.toolCallId)===u}),c=(f=d==null?void 0:d.agentContent)==null?void 0:f.confirmation;d&&(c==null?void 0:c.status)==="pending"&&i(d.id,{...c,status:"denied"});const l=a.find(S=>{var y,h;return((h=(y=S.agentContent)==null?void 0:y.elicitation)==null?void 0:h.toolCallId)===u}),g=(m=l==null?void 0:l.agentContent)==null?void 0:m.elicitation;l&&(g==null?void 0:g.status)==="pending"&&o(l.id,{...g,status:"cancelled"}),n({agentPhase:"running",error:"Permission request timed out",errorContext:{kind:"interaction",...s?{sessionRef:s}:{}}})},ge=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({agentPhase:"running",isStreaming:!0})},Vt=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({agentPhase:e.reason==="context_limit"?"recovering_context":"compacting"})},Kt=(e,t,n)=>{e.sessionId===t().currentSessionId&&(t().resetContextUsage(),n({agentPhase:"running"}))},Ut=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({agentPhase:"switching_model",providerAdmission:null,providerCircuit:null,providerRetry:null,providerStall:null,actionStationarity:null})},Jt=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({agentPhase:"running",providerAdmission:e.phase==="queued"?e:null})},Wt=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({agentPhase:"running",providerCircuit:e.phase==="closed"?null:e})},Lt=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({agentPhase:"running",providerRetry:e.phase==="recovered"?null:e})},Ht=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({agentPhase:"running",providerStall:e.phase==="detected"?e:null})},Gt=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({agentPhase:"running",actionStationarity:e.phase==="recovered"?null:e})},Qt=(e,t,n)=>{const{currentSessionId:r,setQuestion:s}=t();if(e.sessionId!==r)return;const a=e.requestId||e.toolCallId||"",i=v(t,n,a?`assistant-question-${a}`:void 0);i&&(s(i,{toolCallId:a,questions:e.questions,status:"pending"}),n(o=>({agentPhase:"waiting_permission",isStreaming:!0,sessions:o.sessions.map(u=>u.sessionId===e.sessionId&&u.projectPath===e.projectPath?{...u,pendingInteraction:{type:"question",requestId:a}}:u)})))},Yt=(e,t,n)=>{const{currentSessionId:r,setElicitation:s}=t();if(e.sessionId!==r)return;const a=e.requestId||e.toolCallId||"",i=v(t,n,a?`assistant-elicitation-${a}`:void 0),o=e.elicitation;!i||!o||(s(i,{toolCallId:a,details:o,status:"pending"}),n(u=>({agentPhase:"waiting_permission",isStreaming:!0,sessions:u.sessions.map(d=>d.sessionId===e.sessionId&&d.projectPath===e.projectPath?{...d,pendingInteraction:{type:"elicitation",requestId:a}}:d)})))},zt=(e,t,n)=>{const{currentSessionId:r}=t();if(e.sessionId!==r)return;const s=e.requestId;n(a=>({agentPhase:"running",sessions:a.sessions.map(i=>{var o;return i.sessionId===e.sessionId&&i.projectPath===e.projectPath&&((o=i.pendingInteraction)==null?void 0:o.requestId)===s?{...i,pendingInteraction:void 0}:i})}))},Z=(e,t)=>{const n=t().currentSessionRef;n&&e.sessionId===n.sessionId&&e.projectPath===n.projectPath&&t().resyncSessionMessages(n)},Xt=(e,t)=>{const{currentSessionId:n,currentSessionRef:r,endAgentResponse:s}=t();e.sessionId!==n||!r||e.projectPath!==r.projectPath||(s(),Z(e,t))},me=(e,t)=>{const n=t().currentSessionRef;!n||e.sessionId!==n.sessionId||e.projectPath!==n.projectPath||t().endAgentResponse()},Zt=(e,t,n)=>{const{currentSessionId:r,currentSessionRef:s,endAgentResponse:a}=t();if(e.sessionId!==r)return;const i=e.taskFailure&&typeof e.taskFailure=="object"&&!Array.isArray(e.taskFailure)?e.taskFailure:void 0,o=Ue(i==null?void 0:i.code);n({agentPhase:"error",error:e.error||"An error occurred",errorContext:{kind:"execution",...s?{sessionRef:s}:{},...o?{failureCode:o}:{}}}),a(),Z(e,t)},en=(e,t,n)=>{const{currentSessionId:r}=t();if(e.sessionId===r)if(e.status==="idle")n({isStreaming:!1,isStopping:!1,agentPhase:"idle",providerAdmission:null,providerCircuit:null,providerRetry:null,providerStall:null,actionStationarity:null,currentRunId:null,pendingSteeringCount:0,pendingInputDelivery:null,recoveredSteeringCount:0}),Z(e,t);else if(e.status==="queued"||e.status==="running"||e.status==="waiting_permission"){const s=typeof e.queued=="number"?Math.max(0,e.queued):0;n({isStreaming:!0,agentPhase:e.status==="waiting_permission"?"waiting_permission":"running",currentRunId:typeof e.runId=="string"?e.runId:t().currentRunId,pendingSteeringCount:s,pendingInputDelivery:s>0&&(e.pendingInputDelivery==="current_turn"||e.pendingInputDelivery==="next_turn")?e.pendingInputDelivery:null,recoveredSteeringCount:typeof e.recovered=="number"?Math.max(0,e.recovered):t().recoveredSteeringCount})}else e.status==="error"&&n({isStreaming:!1,isStopping:!1,agentPhase:"error",providerAdmission:null,providerCircuit:null,providerRetry:null,providerStall:null,actionStationarity:null,currentRunId:null,pendingSteeringCount:0,pendingInputDelivery:null})},tn=(e,t,n)=>{const{currentSessionId:r,endAgentResponse:s,messages:a,updateSubagent:i}=t();if(e.sessionId===r){n(o=>({isStreaming:!1,agentPhase:"idle",messages:o.messages.map(u=>{var c;const d=(c=u.agentContent)==null?void 0:c.elicitation;return(d==null?void 0:d.status)!=="pending"||!u.agentContent?u:{...u,agentContent:{...u.agentContent,elicitation:{...d,status:"cancelled"}}}})}));for(const o of a)for(const u of P(o.agentContent))u.status==="running"&&i(o.id,u.id,{status:"failed"});s()}},Ne=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({pendingSteeringCount:typeof e.queued=="number"?Math.max(0,e.queued):1,pendingInputDelivery:"current_turn"})},$e=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({pendingSteeringCount:typeof e.queued=="number"?Math.max(0,e.queued):1,pendingInputDelivery:"next_turn"})},nn=(e,t,n)=>{if(typeof e.childSessionId=="string"){const r={...e,subagentSessionId:e.childSessionId,success:e.status==="completed"};C(t().messages,e.childSessionId,t().currentAssistantMessageId)?X(r,t):it(e.childSessionId,r,n)}e.delivery==="current_turn"?Ne(e,t,n):$e(e,t,n)},sn=(e,t,n)=>{if(e.sessionId!==t().currentSessionId)return;const r=typeof e.queued=="number"?Math.max(0,e.queued):0;n({pendingSteeringCount:r,pendingInputDelivery:r>0?t().pendingInputDelivery:null,recoveredSteeringCount:typeof e.recovered=="number"?Math.max(0,e.recovered):t().recoveredSteeringCount})},on=(e,t,n)=>{if(e.sessionId!==t().currentSessionId)return;const r=typeof e.queued=="number"?Math.max(0,e.queued):0;n({agentPhase:"running",pendingSteeringCount:r,pendingInputDelivery:r>0?"current_turn":null,recoveredSteeringCount:typeof e.recovered=="number"?Math.max(0,e.recovered):t().recoveredSteeringCount})},an=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({goal:e.goal??null})},rn=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({goal:null})},un=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({goal:e.goal??t().goal,isStreaming:!0,agentPhase:"running"})},dn=(e,t,n)=>{if(e.sessionId!==t().currentSessionId||!Array.isArray(e.messages))return;const r=Date.now(),s=e.messages.flatMap((a,i)=>{if(typeof a!="object"||a===null)return[];const o=a;return!["user","assistant","system","tool"].includes(String(o.role))||!Array.isArray(o.content)&&typeof o.content!="string"?[]:[{id:`rewind-${i}-${r}`,role:o.role,content:o.content,timestamp:r+i,metadata:typeof o.metadata=="object"&&o.metadata!==null?o.metadata:void 0,thinkingContent:typeof o.thinkingContent=="string"?o.thinkingContent:typeof o.reasoningContent=="string"?o.reasoningContent:void 0,tool_call_id:typeof o.tool_call_id=="string"?o.tool_call_id:void 0,name:typeof o.name=="string"?o.name:void 0,tool_calls:o.tool_calls}]});n({messages:Ve(s),isStreaming:!1,isStopping:!1,agentPhase:"idle",providerAdmission:null,providerCircuit:null,providerRetry:null,providerStall:null,actionStationarity:null,currentRunId:null,pendingSteeringCount:0,pendingInputDelivery:null,recoveredSteeringCount:0,currentAssistantMessageId:null,hasToolCalls:!1})},ln=(e,t,n)=>{const r=t().currentSessionRef;if(!r||e.sessionId!==r.sessionId||e.projectPath!==r.projectPath)return;const s=e.status,a=s==="completed"||s==="stale"?"completed":s==="aborted"?"cancelled":s==="interrupted"?"interrupted":"failed";n(i=>({sessions:i.sessions.map(o=>o.sessionId===r.sessionId&&o.projectPath===r.projectPath?{...o,taskStatus:a,taskStatusReason:void 0,taskFailure:void 0,taskCompletedAt:new Date().toISOString()}:o)})),t().selectSession(r)},cn=(e,t,n)=>{Te({...e,messageId:`review-${String(e.reviewId??"active")}`,arguments:"{}"},t,n)},gn=(e,t,n)=>{we(e,t)},mn=(e,t,n)=>{Pe(e,t,n)},fn=(e,t)=>{const n=t().currentSessionRef;n&&queueMicrotask(()=>void t().loadTeams(n))},O={"message.created":ot,"message.delta":at,"message.complete":rt,"structured.output":ut,"thinking.delta":dt,"thinking.completed":lt,"tool.start":Te,"tool.progress":we,"tool.result":Pe,"mcp.catalog.changed":ct,"mcp.content.changed":gt,"mcp.resource.updated":mt,"mcp.connection.changed":ft,"mcp.log":It,"mcp.instructions.changed":St,"mcp.task.changed":ht,"project.rules.loaded":yt,"user.shell.started":bt,"user.shell.output":Ct,"user.shell.completed":vt,"token.usage":At,"task.updated":Tt,"subagent.start":kt,"subagent.update":wt,"subagent.delta":Pt,"subagent.thinking.delta":Nt,"subagent.tool.start":$t,"subagent.tool.progress":Mt,"subagent.tool.result":Rt,"subagent.mcp.catalog.changed":xt,"subagent.mcp.content.changed":jt,"subagent.mcp.resource.updated":_t,"subagent.mcp.connection.changed":Dt,"subagent.mcp.log":Ot,"subagent.mcp.instructions.changed":Ft,"subagent.mcp.task.changed":pt,"subagent.project.rules.loaded":Et,"subagent.complete":X,"subagent.completion.queued":nn,"permission.asked":qt,"permission.timeout":Bt,"turn.started":ge,"committed.turn_started":ge,"committed.turn_completed":me,"committed.turn_aborted":me,"provider.admission":Jt,"provider.circuit":Wt,"provider.retry":Lt,"provider.stall":Ht,"action.stationarity":Gt,"compaction.started":Vt,"compaction.completed":Kt,"model.fallback":Ut,"question.required":Qt,"elicitation.required":Yt,"interaction.resolved":zt,"session.completed":Xt,"session.error":Zt,"session.status":en,"run.cancelled":tn,"steering.queued":Ne,"follow_up.queued":$e,"follow_up.started":on,"steering.applied":sn,"goal.updated":an,"goal.cleared":rn,"goal.continuation.started":un,"session.rewound":dn,"review.tool.started":cn,"review.tool.progress":gn,"review.tool.completed":mn,"review.completed":ln},In=new Set(["message.complete","thinking.completed","session.completed","session.error","run.cancelled","committed.turn_completed","committed.turn_aborted"]);function Sn(e,t){if(e.seq!==void 0||e.type!=="tool.start"&&e.type!=="tool.result")return;const n=t().currentSessionRef,r=e.properties.toolName,s=e.properties.toolCallId;if(!n||!Ze(r)||typeof s!="string")return;const a=et.getState();e.type==="tool.start"?a.beginAgentActivity(n,{toolCallId:s,toolName:r,argumentsValue:e.properties.arguments}):a.completeAgentActivity(n,{toolCallId:s,toolName:r,success:e.properties.success===!0||e.properties.status==="completed",metadata:e.properties.metadata}),Ge.getState().openFilePreview({tab:"browser"})}const vn=(e,t)=>n=>{const r=e().currentSessionRef,s=n.properties;if(!r||s.sessionId!==r.sessionId||s.projectPath!==r.projectPath)return;if(Sn(n,e),n.type.startsWith("team.")){fn(s,e);return}if(In.has(n.type)){w.drainAll();const i=O[n.type];i&&i(n.properties,e,t);return}if(n.type==="tool.start"&&w.drainAll(),n.type==="message.delta"){const{currentSessionId:i,currentAssistantMessageId:o,hasToolCalls:u}=e();if(s.sessionId!==i)return;const d=s.messageId||o,c=s.delta;if(!o){const f=O["message.delta"];f&&f(s,e,t);return}const l=u?"after":"before",g=`content:${d}:${l}`;w.drainAllExcept(g),w.append(g,c,f=>{const{appendDelta:m}=e();d&&m(d,f,l)});return}if(n.type==="thinking.delta"){const{currentSessionId:i,currentAssistantMessageId:o}=e();if(s.sessionId!==i)return;if(!o){const l=O["thinking.delta"];l&&l(s,e,t);return}const u=s.delta,d=s.messageId||o,c=`thinking:${d}`;w.drainAllExcept(c),w.append(c,u,l=>{const{appendThinking:g}=e();d&&g(d,l)});return}if(n.type==="subagent.delta"){const{currentSessionId:i}=e();if(s.sessionId!==i)return;const o=s.delta;if(!o)return;const u=s.subagentSessionId||"",d=`subagent:${u}`,{currentAssistantMessageId:c,messages:l}=e(),g=C(l,u||void 0,c);w.append(d,o,f=>{const{currentAssistantMessageId:m,messages:S,updateSubagent:y}=e(),h=g||C(S,u||void 0,m);h&&y(h.messageId,h.subagent.id,I=>({sessionId:I.sessionId||u,output:(I.output||"")+f}))});return}if(n.type==="subagent.thinking.delta"){const{currentSessionId:i}=e();if(s.sessionId!==i)return;const o=s.delta;if(!o)return;const u=s.subagentSessionId||"",d=`subagent-thinking:${u}`,{currentAssistantMessageId:c,messages:l}=e(),g=C(l,u||void 0,c);w.append(d,o,f=>{const{currentAssistantMessageId:m,messages:S,updateSubagent:y}=e(),h=g||C(S,u||void 0,m);h&&y(h.messageId,h.subagent.id,I=>({sessionId:I.sessionId||u,thinking:(I.thinking||"")+f}))});return}const a=O[n.type];a&&a(n.properties,e,t)};export{Oe as a,le as b,$ as c,De as d,fe as e,Ve as f,P as g,vn as h,w as i,Ue as j,Cn as k,Ge as l,Fe as m,F as n,et as o,bn as t,Ie as u,W as w};
|
|
22
|
+
`)}]}))},qt=(e,t,n)=>{const{currentSessionId:r,setConfirmation:s}=t();if(e.sessionId!==r)return;const a=e.requestId||"",i=v(t,n,a?`assistant-permission-${a}`:void 0);if(!i)return;const o=e.details,u=e.toolName||(o==null?void 0:o.toolName)||"Tool";s(i,{toolCallId:a,toolName:u,description:e.description,diff:(o==null?void 0:o.details)||(o==null?void 0:o.diff)||"",allowRemember:(o==null?void 0:o.type)!=="mcpSampling",status:"pending"}),n(d=>({agentPhase:"waiting_permission",isStreaming:!0,sessions:d.sessions.map(c=>c.sessionId===e.sessionId&&c.projectPath===e.projectPath?{...c,pendingInteraction:{type:"permission",requestId:a}}:c)}))},Bt=(e,t,n)=>{var f,m;const{currentSessionId:r,currentSessionRef:s,messages:a,setConfirmation:i,setElicitation:o}=t();if(e.sessionId!==r)return;const u=e.requestId,d=a.find(S=>{var y,h;return((h=(y=S.agentContent)==null?void 0:y.confirmation)==null?void 0:h.toolCallId)===u}),c=(f=d==null?void 0:d.agentContent)==null?void 0:f.confirmation;d&&(c==null?void 0:c.status)==="pending"&&i(d.id,{...c,status:"denied"});const l=a.find(S=>{var y,h;return((h=(y=S.agentContent)==null?void 0:y.elicitation)==null?void 0:h.toolCallId)===u}),g=(m=l==null?void 0:l.agentContent)==null?void 0:m.elicitation;l&&(g==null?void 0:g.status)==="pending"&&o(l.id,{...g,status:"cancelled"}),n({agentPhase:"running",error:"Permission request timed out",errorContext:{kind:"interaction",...s?{sessionRef:s}:{}}})},ge=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({agentPhase:"running",isStreaming:!0})},Vt=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({agentPhase:e.reason==="context_limit"?"recovering_context":"compacting"})},Kt=(e,t,n)=>{e.sessionId===t().currentSessionId&&(t().resetContextUsage(),n({agentPhase:"running"}))},Ut=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({agentPhase:"switching_model",providerAdmission:null,providerCircuit:null,providerRetry:null,providerStall:null,actionStationarity:null})},Jt=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({agentPhase:"running",providerAdmission:e.phase==="queued"?e:null})},Wt=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({agentPhase:"running",providerCircuit:e.phase==="closed"?null:e})},Lt=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({agentPhase:"running",providerRetry:e.phase==="recovered"?null:e})},Ht=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({agentPhase:"running",providerStall:e.phase==="detected"?e:null})},Gt=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({agentPhase:"running",actionStationarity:e.phase==="recovered"?null:e})},Qt=(e,t,n)=>{const{currentSessionId:r,setQuestion:s}=t();if(e.sessionId!==r)return;const a=e.requestId||e.toolCallId||"",i=v(t,n,a?`assistant-question-${a}`:void 0);i&&(s(i,{toolCallId:a,questions:e.questions,status:"pending"}),n(o=>({agentPhase:"waiting_permission",isStreaming:!0,sessions:o.sessions.map(u=>u.sessionId===e.sessionId&&u.projectPath===e.projectPath?{...u,pendingInteraction:{type:"question",requestId:a}}:u)})))},Yt=(e,t,n)=>{const{currentSessionId:r,setElicitation:s}=t();if(e.sessionId!==r)return;const a=e.requestId||e.toolCallId||"",i=v(t,n,a?`assistant-elicitation-${a}`:void 0),o=e.elicitation;!i||!o||(s(i,{toolCallId:a,details:o,status:"pending"}),n(u=>({agentPhase:"waiting_permission",isStreaming:!0,sessions:u.sessions.map(d=>d.sessionId===e.sessionId&&d.projectPath===e.projectPath?{...d,pendingInteraction:{type:"elicitation",requestId:a}}:d)})))},zt=(e,t,n)=>{const{currentSessionId:r}=t();if(e.sessionId!==r)return;const s=e.requestId;n(a=>({agentPhase:"running",sessions:a.sessions.map(i=>{var o;return i.sessionId===e.sessionId&&i.projectPath===e.projectPath&&((o=i.pendingInteraction)==null?void 0:o.requestId)===s?{...i,pendingInteraction:void 0}:i})}))},Z=(e,t)=>{const n=t().currentSessionRef;n&&e.sessionId===n.sessionId&&e.projectPath===n.projectPath&&t().resyncSessionMessages(n)},Xt=(e,t)=>{const{currentSessionId:n,currentSessionRef:r,endAgentResponse:s}=t();e.sessionId!==n||!r||e.projectPath!==r.projectPath||(s(),Z(e,t))},me=(e,t)=>{const n=t().currentSessionRef;!n||e.sessionId!==n.sessionId||e.projectPath!==n.projectPath||t().endAgentResponse()},Zt=(e,t,n)=>{const{currentSessionId:r,currentSessionRef:s,endAgentResponse:a}=t();if(e.sessionId!==r)return;const i=e.taskFailure&&typeof e.taskFailure=="object"&&!Array.isArray(e.taskFailure)?e.taskFailure:void 0,o=Ue(i==null?void 0:i.code);n({agentPhase:"error",error:e.error||"An error occurred",errorContext:{kind:"execution",...s?{sessionRef:s}:{},...o?{failureCode:o}:{}}}),a(),Z(e,t)},en=(e,t,n)=>{const{currentSessionId:r}=t();if(e.sessionId===r)if(e.status==="idle")n({isStreaming:!1,isStopping:!1,agentPhase:"idle",providerAdmission:null,providerCircuit:null,providerRetry:null,providerStall:null,actionStationarity:null,currentRunId:null,pendingSteeringCount:0,pendingInputDelivery:null,recoveredSteeringCount:0}),Z(e,t);else if(e.status==="queued"||e.status==="running"||e.status==="waiting_permission"){const s=typeof e.queued=="number"?Math.max(0,e.queued):0;n({isStreaming:!0,agentPhase:e.status==="waiting_permission"?"waiting_permission":"running",currentRunId:typeof e.runId=="string"?e.runId:t().currentRunId,pendingSteeringCount:s,pendingInputDelivery:s>0&&(e.pendingInputDelivery==="current_turn"||e.pendingInputDelivery==="next_turn")?e.pendingInputDelivery:null,recoveredSteeringCount:typeof e.recovered=="number"?Math.max(0,e.recovered):t().recoveredSteeringCount})}else e.status==="error"&&n({isStreaming:!1,isStopping:!1,agentPhase:"error",providerAdmission:null,providerCircuit:null,providerRetry:null,providerStall:null,actionStationarity:null,currentRunId:null,pendingSteeringCount:0,pendingInputDelivery:null})},tn=(e,t,n)=>{const{currentSessionId:r,endAgentResponse:s,messages:a,updateSubagent:i}=t();if(e.sessionId===r){n(o=>({isStreaming:!1,agentPhase:"idle",messages:o.messages.map(u=>{var c;const d=(c=u.agentContent)==null?void 0:c.elicitation;return(d==null?void 0:d.status)!=="pending"||!u.agentContent?u:{...u,agentContent:{...u.agentContent,elicitation:{...d,status:"cancelled"}}}})}));for(const o of a)for(const u of P(o.agentContent))u.status==="running"&&i(o.id,u.id,{status:"failed"});s()}},Ne=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({pendingSteeringCount:typeof e.queued=="number"?Math.max(0,e.queued):1,pendingInputDelivery:"current_turn"})},$e=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({pendingSteeringCount:typeof e.queued=="number"?Math.max(0,e.queued):1,pendingInputDelivery:"next_turn"})},nn=(e,t,n)=>{if(typeof e.childSessionId=="string"){const r={...e,subagentSessionId:e.childSessionId,success:e.status==="completed"};C(t().messages,e.childSessionId,t().currentAssistantMessageId)?X(r,t):it(e.childSessionId,r,n)}e.delivery==="current_turn"?Ne(e,t,n):$e(e,t,n)},sn=(e,t,n)=>{if(e.sessionId!==t().currentSessionId)return;const r=typeof e.queued=="number"?Math.max(0,e.queued):0;n({pendingSteeringCount:r,pendingInputDelivery:r>0?t().pendingInputDelivery:null,recoveredSteeringCount:typeof e.recovered=="number"?Math.max(0,e.recovered):t().recoveredSteeringCount})},on=(e,t,n)=>{if(e.sessionId!==t().currentSessionId)return;const r=typeof e.queued=="number"?Math.max(0,e.queued):0;n({agentPhase:"running",pendingSteeringCount:r,pendingInputDelivery:r>0?"current_turn":null,recoveredSteeringCount:typeof e.recovered=="number"?Math.max(0,e.recovered):t().recoveredSteeringCount})},an=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({goal:e.goal??null})},rn=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({goal:null})},un=(e,t,n)=>{e.sessionId===t().currentSessionId&&n({goal:e.goal??t().goal,isStreaming:!0,agentPhase:"running"})},dn=(e,t,n)=>{if(e.sessionId!==t().currentSessionId||!Array.isArray(e.messages))return;const r=Date.now(),s=e.messages.flatMap((a,i)=>{if(typeof a!="object"||a===null)return[];const o=a;return!["user","assistant","system","tool"].includes(String(o.role))||!Array.isArray(o.content)&&typeof o.content!="string"?[]:[{id:`rewind-${i}-${r}`,role:o.role,content:o.content,timestamp:r+i,metadata:typeof o.metadata=="object"&&o.metadata!==null?o.metadata:void 0,thinkingContent:typeof o.thinkingContent=="string"?o.thinkingContent:typeof o.reasoningContent=="string"?o.reasoningContent:void 0,tool_call_id:typeof o.tool_call_id=="string"?o.tool_call_id:void 0,name:typeof o.name=="string"?o.name:void 0,tool_calls:o.tool_calls}]});n({messages:Ve(s),isStreaming:!1,isStopping:!1,agentPhase:"idle",providerAdmission:null,providerCircuit:null,providerRetry:null,providerStall:null,actionStationarity:null,currentRunId:null,pendingSteeringCount:0,pendingInputDelivery:null,recoveredSteeringCount:0,currentAssistantMessageId:null,hasToolCalls:!1})},ln=(e,t,n)=>{const r=t().currentSessionRef;if(!r||e.sessionId!==r.sessionId||e.projectPath!==r.projectPath)return;const s=e.status,a=s==="completed"||s==="stale"?"completed":s==="aborted"?"cancelled":s==="interrupted"?"interrupted":"failed";n(i=>({sessions:i.sessions.map(o=>o.sessionId===r.sessionId&&o.projectPath===r.projectPath?{...o,taskStatus:a,taskStatusReason:void 0,taskFailure:void 0,taskCompletedAt:new Date().toISOString()}:o)})),t().selectSession(r)},cn=(e,t,n)=>{ke({...e,messageId:`review-${String(e.reviewId??"active")}`,arguments:"{}"},t,n)},gn=(e,t,n)=>{we(e,t)},mn=(e,t,n)=>{Pe(e,t,n)},fn=(e,t)=>{const n=t().currentSessionRef;n&&queueMicrotask(()=>void t().loadTeams(n))},O={"message.created":ot,"message.delta":at,"message.complete":rt,"structured.output":ut,"thinking.delta":dt,"thinking.completed":lt,"tool.start":ke,"tool.progress":we,"tool.result":Pe,"mcp.catalog.changed":ct,"mcp.content.changed":gt,"mcp.resource.updated":mt,"mcp.connection.changed":ft,"mcp.log":It,"mcp.instructions.changed":St,"mcp.task.changed":ht,"project.rules.loaded":yt,"user.shell.started":bt,"user.shell.output":Ct,"user.shell.completed":vt,"token.usage":At,"task.updated":kt,"subagent.start":Tt,"subagent.update":wt,"subagent.delta":Pt,"subagent.thinking.delta":Nt,"subagent.tool.start":$t,"subagent.tool.progress":Mt,"subagent.tool.result":Rt,"subagent.mcp.catalog.changed":xt,"subagent.mcp.content.changed":_t,"subagent.mcp.resource.updated":jt,"subagent.mcp.connection.changed":Dt,"subagent.mcp.log":Ot,"subagent.mcp.instructions.changed":pt,"subagent.mcp.task.changed":Ft,"subagent.project.rules.loaded":Et,"subagent.complete":X,"subagent.completion.queued":nn,"permission.asked":qt,"permission.timeout":Bt,"turn.started":ge,"committed.turn_started":ge,"committed.turn_completed":me,"committed.turn_aborted":me,"provider.admission":Jt,"provider.circuit":Wt,"provider.retry":Lt,"provider.stall":Ht,"action.stationarity":Gt,"compaction.started":Vt,"compaction.completed":Kt,"model.fallback":Ut,"question.required":Qt,"elicitation.required":Yt,"interaction.resolved":zt,"session.completed":Xt,"session.error":Zt,"session.status":en,"run.cancelled":tn,"steering.queued":Ne,"follow_up.queued":$e,"follow_up.started":on,"steering.applied":sn,"goal.updated":an,"goal.cleared":rn,"goal.continuation.started":un,"session.rewound":dn,"review.tool.started":cn,"review.tool.progress":gn,"review.tool.completed":mn,"review.completed":ln},In=new Set(["message.complete","thinking.completed","session.completed","session.error","run.cancelled","committed.turn_completed","committed.turn_aborted"]);function Sn(e,t){if(e.seq!==void 0||e.type!=="tool.start"&&e.type!=="tool.result")return;const n=t().currentSessionRef,r=e.properties.toolName,s=e.properties.toolCallId;if(!n||!Ze(r)||typeof s!="string")return;const a=et.getState();e.type==="tool.start"?a.beginAgentActivity(n,{toolCallId:s,toolName:r,argumentsValue:e.properties.arguments}):a.completeAgentActivity(n,{toolCallId:s,toolName:r,success:e.properties.success===!0||e.properties.status==="completed",metadata:e.properties.metadata}),Ge.getState().openFilePreview({tab:"browser"})}const vn=(e,t)=>n=>{const r=e().currentSessionRef,s=n.properties;if(!r||s.sessionId!==r.sessionId||s.projectPath!==r.projectPath)return;if(Sn(n,e),n.type.startsWith("team.")){fn(s,e);return}if(In.has(n.type)){w.drainAll();const i=O[n.type];i&&i(n.properties,e,t);return}if(n.type==="tool.start"&&w.drainAll(),n.type==="message.delta"){const{currentSessionId:i,currentAssistantMessageId:o,hasToolCalls:u}=e();if(s.sessionId!==i)return;const d=s.messageId||o,c=s.delta;if(!o){const f=O["message.delta"];f&&f(s,e,t);return}const l=u?"after":"before",g=`content:${d}:${l}`;w.drainAllExcept(g),w.append(g,c,f=>{const{appendDelta:m}=e();d&&m(d,f,l)});return}if(n.type==="thinking.delta"){const{currentSessionId:i,currentAssistantMessageId:o}=e();if(s.sessionId!==i)return;if(!o){const l=O["thinking.delta"];l&&l(s,e,t);return}const u=s.delta,d=s.messageId||o,c=`thinking:${d}`;w.drainAllExcept(c),w.append(c,u,l=>{const{appendThinking:g}=e();d&&g(d,l)});return}if(n.type==="subagent.delta"){const{currentSessionId:i}=e();if(s.sessionId!==i)return;const o=s.delta;if(!o)return;const u=s.subagentSessionId||"",d=`subagent:${u}`,{currentAssistantMessageId:c,messages:l}=e(),g=C(l,u||void 0,c);w.append(d,o,f=>{const{currentAssistantMessageId:m,messages:S,updateSubagent:y}=e(),h=g||C(S,u||void 0,m);h&&y(h.messageId,h.subagent.id,I=>({sessionId:I.sessionId||u,output:(I.output||"")+f}))});return}if(n.type==="subagent.thinking.delta"){const{currentSessionId:i}=e();if(s.sessionId!==i)return;const o=s.delta;if(!o)return;const u=s.subagentSessionId||"",d=`subagent-thinking:${u}`,{currentAssistantMessageId:c,messages:l}=e(),g=C(l,u||void 0,c);w.append(d,o,f=>{const{currentAssistantMessageId:m,messages:S,updateSubagent:y}=e(),h=g||C(S,u||void 0,m);h&&y(h.messageId,h.subagent.id,I=>({sessionId:I.sessionId||u,thinking:(I.thinking||"")+f}))});return}const a=O[n.type];a&&a(n.properties,e,t)};export{Oe as a,le as b,$ as c,De as d,fe as e,Ve as f,P as g,vn as h,w as i,Ue as j,Cn as k,Ge as l,pe as m,p as n,et as o,bn as t,Ie as u,W as w};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ar as e,as as t,at as a,a3 as s,au as m}from"./index-
|
|
1
|
+
import{ar as e,as as t,at as a,a3 as s,au as m}from"./index-rQ1P5u3I.js";import"./vendor-react-DofNRwfy.js";import"./vendor-radix-Bc1_Q9tz.js";import"./session-events-C95VE6d2.js";const p=e(t.Object({id:t.String(),name:t.String(),subagentType:t.String(),description:t.String(),agentId:t.Optional(t.String()),status:a(["leader","running","completed","failed","cancelled","unknown"]),result:t.Optional(t.Unknown()),stats:t.Optional(t.Unknown()),worktreePath:t.Optional(t.String())})),d=e(t.Object({id:t.String(),subject:t.String(),description:t.String(),status:a(["pending","blocked","running","completed"]),owner:t.Optional(t.String()),priority:a(["high","medium","low"]),dependsOn:t.Array(t.String()),blocks:t.Array(t.String()),result:t.Optional(t.String()),createdAt:t.String(),startedAt:t.Optional(t.String()),completedAt:t.Optional(t.String())})),o=e(t.Object({name:t.String(),description:t.Optional(t.String()),status:a(["idle","running","completed","failed","deleted"]),leadAgentId:t.String(),leadSessionId:t.Optional(t.String()),workspaceRoot:t.Optional(t.String()),peerMessagingEnabled:t.Boolean(),createdAt:t.Number(),updatedAt:t.Number(),deletedAt:t.Optional(t.Number()),members:t.Array(p),tasks:t.Array(d)}));e(t.Object({sessionId:t.String({minLength:1}),projectPath:t.String({minLength:1}),name:t.String({minLength:1}),description:t.Optional(t.String()),leadAgentType:t.Optional(t.String()),peerMessagingEnabled:t.Optional(t.Boolean()),members:t.Array(t.Object({name:t.String({minLength:1}),subagentType:t.String({minLength:1}),description:t.Optional(t.String()),prompt:t.String({minLength:10,maxLength:32*1024})}),{maxItems:32}),tasks:t.Optional(t.Array(t.Object({subject:t.String({minLength:1}),description:t.String({minLength:1}),dependsOn:t.Optional(t.Array(t.String())),assignedTo:t.Optional(t.String()),priority:t.Optional(a(["high","medium","low"]))}),{maxItems:256}))}));e(t.Object({sessionId:t.String({minLength:1}),projectPath:t.String({minLength:1}),to:t.String({minLength:1}),message:t.String({minLength:1,maxLength:32*1024})}));e(t.Object({sessionId:t.String({minLength:1}),projectPath:t.String({minLength:1}),memberId:t.String({minLength:1})}));const S=t.Array(o),u={list:async n=>{const i=new URLSearchParams({sessionId:n.sessionId,projectPath:n.projectPath});return m(S,await s(`/teams?${i.toString()}`))},sendMessage:async(n,i,r,g)=>{await s(`/teams/${encodeURIComponent(i)}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:n.sessionId,projectPath:n.projectPath,to:r,message:g})})},delete:async(n,i)=>{const r=new URLSearchParams({sessionId:n.sessionId,projectPath:n.projectPath});return o.parse(await s(`/teams/${encodeURIComponent(i)}?${r.toString()}`,{method:"DELETE"}))}};export{u as teamService};
|
package/dist/web/index.html
CHANGED
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>BladeCode</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-rQ1P5u3I.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/vendor-react-DofNRwfy.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/vendor-radix-Bc1_Q9tz.js">
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/session-events-
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/assets/session-events-C95VE6d2.js">
|
|
12
12
|
<link rel="stylesheet" crossorigin href="/assets/index-zY4JU9fd.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
package/package.json
CHANGED
package/dist/chunk-0r4bnnr4.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import{s as hz,t as Sz}from"./chunk-bss2kc28.js";import{u as b}from"./chunk-c9zd429t.js";import{A as Gz,v as yz,w as Xz,x as Dz,y as Lz,z as Bz}from"./chunk-ax8tta9d.js";import{$ as jz,G as N,O as $z,P as Qz,T as Wz,W as Yz,X as Hz,pa as Fz,qa as Uz,ra as Vz,sa as wz}from"./chunk-1t097t5f.js";import"./chunk-z5rtzcm4.js";import{Ga as Tz}from"./chunk-wj403wry.js";import{Ia as Zz}from"./chunk-8eh0vp98.js";import{Cb as zz,Lb as Jz,qb as e}from"./chunk-b12wtvac.js";import{Wb as I}from"./chunk-ya5p7mx7.js";import{Ad as s,Cd as x,Fd as t,Kd as q,Nd as U,_c as l,id as i,jd as r,od as a,rd as o,td as n,zd as C}from"./chunk-tw63vfgh.js";import"./chunk-gbsxnvgg.js";import"./chunk-4jbpvete.js";import{qe as Mz}from"./chunk-4n4a3vm2.js";import"./chunk-ztp2ff01.js";import{Le as Nz,Me as Ez}from"./chunk-ggf76jxn.js";import"./chunk-v508x7cg.js";import{Xe as f}from"./chunk-zj4kfyer.js";import{af as v}from"./chunk-0eqk29xr.js";import"./chunk-rxbxvq67.js";import{lf as xz}from"./chunk-z6xfknxe.js";import"./chunk-gnffwz1c.js";import"./chunk-kpxz0hbg.js";import"./chunk-yjh47zv6.js";import{bg as bz}from"./chunk-rsh4rw9k.js";import"./chunk-4cvmfne8.js";import"./chunk-q74xmdkf.js";import"./chunk-74yge4ka.js";import{Vg as qz,Yg as Pz}from"./chunk-xzzrtwjx.js";import"./chunk-t48zm299.js";import"./chunk-7dqh8bqm.js";import{Ah as S,Bh as d,Dh as M,Eh as k}from"./chunk-d83bfr0b.js";import{Ih as Oz}from"./chunk-qa4efys0.js";import"./chunk-hrfh7wck.js";import{ii as T}from"./chunk-h4j0nve8.js";import"./chunk-w63dfcx5.js";import{pi as Az,si as Rz}from"./chunk-n4gtzx4x.js";import"./chunk-5j0b62sr.js";import"./chunk-rzja9zza.js";import"./chunk-dd99sgf8.js";import{Oi as m}from"./chunk-na1cney5.js";import"./chunk-nh45xp7r.js";import{Readable as vz,Writable as lz}from"node:stream";import*as y from"@agentclientprotocol/sdk";import _z from"node:path";import{PROTOCOL_VERSION as mz,RequestError as dz}from"@agentclientprotocol/sdk";import{RequestError as Cz}from"@agentclientprotocol/sdk";import{nanoid as h}from"nanoid";var G=T("Agent");function p(z){if(!z)return{};return Object.fromEntries(z.map((Z)=>[Z.name,Z.value]))}function fz(z){if("command"in z)return{type:"stdio",command:z.command,args:z.args,env:p(z.env)};if("url"in z)return{type:z.type,url:z.url,headers:p("headers"in z?z.headers:void 0)};return null}function uz(z){let Z={};for(let J of z){let Y=fz(J);if(Y)Z[J.name]=Y}return Z}function Kz(z){if(typeof z==="string")return z?[{type:"text",text:z}]:[];return z.flatMap((Z)=>{if(Z.type==="text")return Z.text?[{type:"text",text:Z.text}]:[];let J=Z.image_url.url,Y=/^data:([^;,]+);base64,(.+)$/s.exec(J);if(!Y)return[{type:"text",text:"[Image]"}];return[{type:"image",mimeType:Y[1]??"image/png",data:Y[2]??""}]})}function gz(z){let Z=s(z.metadata);return Z?[{type:"text",text:C(Z)}]:Kz(z.content)}function cz(z){return[`Status: ${z.status}`,`Exit code: ${z.exitCode??"null"}`,`Duration: ${(z.durationMs/1000).toFixed(3)} seconds`].join(`
|
|
2
|
-
`)}function pz(z){if(!v(z)||z.reason!=="queue_full"||z.resource!=="pending_count"&&z.resource!=="pending_bytes")return;return{...i("capacity"),resource:z.resource}}class E{id;cwd;connection;clientCapabilities;options;agent=null;runtime=null;pendingPrompt=null;pendingPromptCompletion=null;pendingUserShell=null;pendingUserShellCompletion=null;pendingSideConversation=null;pendingSideConversationCompletion=null;pendingResumeRequested=!1;availableCommandsTimer=null;taskStatusUnsubscribe;destroyed=!1;destroyFinished=!1;destroyPromise;messages;contextMessages;mode;updateEgress;constructor(z,Z,J,Y,H={}){this.id=z;this.cwd=Z;this.connection=J;this.clientCapabilities=Y;this.options=H;this.messages=[...H.initialMessages??[]],this.contextMessages=[...this.messages],this.mode=this.mapPermissionModeToMode(H.permissionMode),this.updateEgress=new Gz({maxPendingItems:Xz,maxPendingBytes:Dz,writeTimeoutMs:Lz,signal:J.signal,sizeOf:(W)=>Buffer.byteLength(JSON.stringify(W)),write:async(W)=>{await J.sessionUpdate(W)},onFailure:(W)=>this.handleUpdateEgressFailure(W)})}async refreshPersistedMessages(){let[z,Z]=await Promise.all([U.loadSession(this.id,this.cwd),U.loadSessionModelContext(this.id,this.cwd)]);if(z.length>0)this.messages=z;if(Z.length>0)this.contextMessages=Z}async loadModelContextOr(z){let Z=await U.loadSessionModelContext(this.id,this.cwd);return Z.length>0?Z:[...z]}mapPermissionModeToMode(z){switch(z){case"yolo":return"yolo";case"autoEdit":return"auto-edit";case"plan":return"plan";case"default":default:return"default"}}createAgent(){if(!this.runtime)throw Error("Session runtime is unavailable");return jz.createWithRuntime(this.runtime,{sessionId:this.id,...this.options.taskWorktree?{toolBlacklist:["EnterWorktree","ExitWorktree"]}:{}})}async initialize(){if(G.debug(`[AcpSession ${this.id}] Initializing...`),await U.setSessionPermissionMode(this.id,this.cwd,this.mapModeToPermissionMode()??"default"),N.initializeSession(this.connection,this.id,this.clientCapabilities,this.cwd,async(W)=>{await this.sendUpdateAndWait(W)}),G.debug(`[AcpSession ${this.id}] ACP service context initialized`),await Jz.resolvePendingWithHandler(this.cwd,this.id,{requestConfirmation:(W)=>this.requestPermission(W)}))await this.refreshPersistedMessages();else if((this.options.initialMessages?.length??0)>0)this.contextMessages=await this.loadModelContextOr(this.options.initialMessages??[]);let Z=this.options.mcpServers?uz(this.options.mcpServers):void 0,J=N.getInstance().getTerminalService(this.id);if(this.runtime=await Wz.create({sessionId:this.id,workspaceRoot:this.cwd,permissionMode:this.mapModeToPermissionMode(),...Z?{mcpServers:Z}:{},...this.options.taskWorktree?{taskWorktree:this.options.taskWorktree}:{},...this.options.taskIsolation?{taskIsolation:this.options.taskIsolation}:{},userShellExecutor:{execute:async(W,Q)=>{let j=await J.execute(W,{cwd:Q.cwd,env:Q.env,timeout:Q.timeoutMs,signal:Q.signal,allowLocalFallback:!1,onOutput:(D)=>Q.onOutput?.("stdout",D)});return{exitCode:j.exitCode,stdout:j.stdout,stderr:j.stderr,...j.error?{error:j.error}:{},timedOut:j.failureKind==="timeout",aborted:j.failureKind==="aborted"}}},...(this.options.initialMessages?.length??0)>0?{sessionStart:{isResume:!0,resumeSessionId:this.id}}:{}}),await b.recoverInterrupted(this.cwd,this.id,this.runtime))await this.refreshPersistedMessages();this.agent=await this.createAgent(),await Uz(this.cwd),G.debug(`[AcpSession ${this.id}] Agent created successfully`),this.taskStatusUnsubscribe?.(),this.taskStatusUnsubscribe=e.subscribe((W)=>{if(W.sessionId!==this.id||W.projectPath!==this.cwd)return;if(W.type==="subagent.completion.queued"){this.sendUpdate({sessionUpdate:"session_info_update",updatedAt:new Date().toISOString(),_meta:{"blade/backgroundSubagentCompletion":W.properties}}),this.schedulePendingResume();return}if(W.type==="task.delivery"){if(!W.properties.taskDelivery||typeof W.properties.taskDelivery!=="object")return;this.sendUpdate({sessionUpdate:"session_info_update",updatedAt:typeof W.properties.updatedAt==="string"?W.properties.updatedAt:new Date().toISOString(),_meta:{"blade/taskDelivery":W.properties.taskDelivery,...W.properties.taskWorktreeRemoved===!0?{"blade/taskWorktreeRemoved":!0}:{}}});return}if(W.type.startsWith("team.")){let{teamName:Q,messageId:j,content:D}=W.properties,X=W.properties.metadata;if(W.type==="team.message.received"&&typeof Q==="string"&&typeof j==="string"&&typeof D==="string"&&Qz(X,{messageId:j,teamName:Q}))(async()=>{let L=await this.runtime?.enqueueSteering(D,{allowBeforeTurn:!0,messageId:j,origin:"team_message",metadata:X});if(!L?.accepted)return;if(await new $z(Q,m()).markDelivered([j]),L.delivery==="next_turn")this.schedulePendingResume()})().catch((L)=>{G.warn(`[AcpSession ${this.id}] Failed to deliver teammate message`,L)});this.sendUpdate({sessionUpdate:"session_info_update",updatedAt:new Date().toISOString(),_meta:{"blade/teamEvent":{type:W.type,...W.properties}}});return}if(W.type!=="task.status")return;this.sendUpdate({sessionUpdate:"session_info_update",updatedAt:typeof W.properties.updatedAt==="string"?W.properties.updatedAt:new Date().toISOString(),_meta:{"blade/taskStatus":W.properties.taskStatus,...typeof W.properties.taskStatusReason==="string"?{"blade/taskStatusReason":W.properties.taskStatusReason}:{},...W.properties.taskFailure&&typeof W.properties.taskFailure==="object"?{"blade/taskFailure":W.properties.taskFailure}:{},...typeof W.properties.taskStartedAt==="string"?{"blade/taskStartedAt":W.properties.taskStartedAt}:{},...typeof W.properties.taskCompletedAt==="string"?{"blade/taskCompletedAt":W.properties.taskCompletedAt}:{},...W.properties.taskDiffStat&&typeof W.properties.taskDiffStat==="object"?{"blade/taskDiffStat":W.properties.taskDiffStat}:{},...typeof W.properties.taskQueuePosition==="number"?{"blade/taskQueuePosition":W.properties.taskQueuePosition}:{},...typeof W.properties.taskQueueDepth==="number"?{"blade/taskQueueDepth":W.properties.taskQueueDepth}:{},...typeof W.properties.taskConcurrencyLimit==="number"?{"blade/taskConcurrencyLimit":W.properties.taskConcurrencyLimit}:{},...typeof W.properties.taskInFlight==="number"?{"blade/taskInFlight":W.properties.taskInFlight}:{}}})});let H=await this.runtime.getGoal();if(this.runtime.getPendingSteeringCount()>0||H?.status==="active"||H?.status==="verifying")if(this.options.initialMessages===void 0)this.schedulePendingResume();else this.pendingResumeRequested=!0}async replayHistory(){for(let Z of this.messages){if(!this.canSendUpdates())return;if(!n(Z))continue;let J=Z.role==="user"?"user_message_chunk":Z.role==="assistant"?"agent_message_chunk":void 0;if(!J)continue;for(let Y of gz(Z)){if(!this.canSendUpdates())return;if(!await this.sendUpdateAndWait({sessionUpdate:J,content:Y}))return}}let z=await this.runtime?.getGoal();if(z&&!await this.sendUpdateAndWait(this.goalSessionUpdate(z)))return;if(this.pendingResumeRequested)this.schedulePendingResume()}sendAvailableCommandsDelayed(){if(this.destroyed||this.connection.signal.aborted)return;if(this.availableCommandsTimer!==null)clearTimeout(this.availableCommandsTimer);G.debug(`[AcpSession ${this.id}] Scheduling available commands update (500ms delay)`),this.availableCommandsTimer=setTimeout(()=>{if(this.availableCommandsTimer=null,this.destroyed||this.connection.signal.aborted)return;this.sendAvailableCommands()},500)}async handleSlashCommand(z,Z){try{G.debug(`[AcpSession ${this.id}] Executing slash command: ${z}`);let J={cwd:this.cwd,surface:"acp",workspaceRoot:this.cwd,sessionId:this.id,messages:[...this.contextMessages],rewind:{listCheckpoints:async()=>{if(!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.listRewindCheckpoints()},execute:async(Q)=>{if(!this.runtime)throw Error("Session runtime is unavailable");let j=await this.runtime.rewindSession(Q);return this.messages=[...j.messages],this.contextMessages=await this.loadModelContextOr(j.messages),await this.agent?.destroy(),this.agent=await this.createAgent(),j}},reasoning:{get:async()=>{if(!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.getReasoningConfiguration()},set:async(Q)=>{if(await this.setReasoningEffort(Q),!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.getReasoningConfiguration()}},serviceTier:{get:async()=>{if(!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.getServiceTierConfiguration()},set:async(Q)=>{if(await this.setServiceTier(Q),!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.getServiceTierConfiguration()}},responseVerbosity:{get:async()=>{if(!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.getResponseVerbosityConfiguration()},set:async(Q)=>{if(await this.setResponseVerbosity(Q),!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.getResponseVerbosityConfiguration()}},communicationStyle:{get:async()=>{if(!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.getCommunicationStyleConfiguration()},set:async(Q)=>{if(await this.setCommunicationStyle(Q),!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.getCommunicationStyleConfiguration()}},subagents:{list:async()=>{if(!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.listSubagents()},resume:async(Q,j)=>{if(!this.runtime)throw Error("Session runtime is unavailable");let D=!1,X,L=(B)=>{this.sendUpdate({sessionUpdate:"tool_call_update",toolCallId:B.id,status:B.status==="completed"?"completed":"failed",content:[{type:"content",content:{type:"text",text:B.result?.message||B.result?.error||`Subagent ${B.status}`}}]})},F=this.runtime.resumeSubagent({agentId:Q,prompt:j,onCompleted:(B)=>{if(D)L(B);else X=B}});if(this.sendUpdate({sessionUpdate:"tool_call",toolCallId:F.session.id,status:"in_progress",title:`Resuming ${F.session.subagentType} subagent`,content:[{type:"content",content:{type:"text",text:`Resumed from ${F.source.id} at depth ${F.session.resumeDepth}`}}],kind:this.mapToolKind("readonly")}),D=!0,X)L(X);return F}},mcp:{getCatalog:async()=>{if(!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.getMcpContentCatalog()},refresh:async(Q)=>{if(!this.runtime)throw Error("Session runtime is unavailable");await this.runtime.refreshMcpContentCatalogs(Q)},getPrompt:async(Q,j,D)=>{if(!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.getMcpPrompt(Q,j,D)},complete:async(Q,j,D)=>{if(!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.completeMcpArgument(Q,j,D)},listTasks:async(Q)=>{if(!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.listMcpTasks(Q)},getTask:async(Q)=>{if(!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.getMcpTask(Q)},cancelTask:async(Q,j)=>{if(!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.cancelMcpTask(Q,j)},getLogs:async(Q,j)=>{if(!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.getMcpLogs(Q,j)},setLoggingLevel:async(Q,j)=>{if(!this.runtime)throw Error("Session runtime is unavailable");await this.runtime.setMcpLoggingLevel(Q,j)},getInstructions:async()=>{if(!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.getMcpInstructions()}},sideConversation:{ask:async(Q,j)=>{if(!this.runtime)throw Error("Session runtime is unavailable");return this.runtime.askSideQuestion(Q,{signal:j})}},codeReview:{run:async(Q,j)=>{if(!this.runtime)throw Error("Session runtime is unavailable");let D=await b.start({sessionId:this.id,projectPath:this.cwd,runtime:this.runtime,request:Q,signal:j,onEvent:(F)=>{if(F.kind==="tool_start")this.sendUpdate({sessionUpdate:"tool_call",toolCallId:F.toolCall.id,status:"in_progress",title:`Review: ${F.toolCall.function.name}`,content:[],kind:this.mapToolKind(F.toolKind)});else if(F.kind==="tool_result")this.sendUpdate({sessionUpdate:"tool_call_update",toolCallId:F.toolCall.id,status:F.result.success?"completed":"failed",content:[]})}}),X=await D.completion,L=(await b.list(this.cwd,this.id)).find((F)=>F.start.reviewId===D.reviewId);if(!L)throw Error(`Review not found: ${D.reviewId}`);return await this.refreshPersistedMessages(),{reviewId:D.reviewId,status:X.status,findings:X.findings.length,content:l(L.start,X)}}},signal:Z,acp:{sendMessage:(Q)=>{this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:Q}})},sendToolStart:(Q,j,D)=>{let X=`tool_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,L=this.mapToolKind(D);this.sendUpdate({sessionUpdate:"tool_call",toolCallId:X,status:"in_progress",title:`${Q}`,content:[{type:"content",content:{type:"text",text:JSON.stringify(j,null,2)}}],kind:L})},sendToolResult:(Q,j)=>{if(j.summary)this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:j.summary}})}}},Y=await Vz(z,J),H=Y.data?.action;if(H==="start_goal"||H==="resume_goal")this.schedulePendingResume();if(H==="rewind_session"&&Array.isArray(Y.data?.messages))this.messages=[...Y.data.messages],this.contextMessages=await this.loadModelContextOr(Y.data.messages);if((Y.message==="compact_completed"||Y.message==="compact_fallback")&&Y.data?.compactedMessages){this.contextMessages=[...Y.data.compactedMessages];let Q=await U.loadSession(this.id,this.cwd);if(Q.length>0)this.messages=Q}let W=Y.content||Y.message;if(W)this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:W}});if(Y.error)this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:`[FAIL] ${Y.error}`}});return await this.flushUpdates(),{stopReason:Y.success?"end_turn":"cancelled"}}catch(J){if(Z.aborted||J instanceof Error&&J.name==="AbortError")return{stopReason:"cancelled"};return G.error(`[AcpSession ${this.id}] Slash command error:`,J),this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:`[FAIL] 命令执行失败: ${J instanceof Error?J.message:"未知错误"}`}}),{stopReason:"cancelled"}}}async handleSideConversationCommand(z){if(this.pendingSideConversation)throw Error("A side conversation is already running");let Z=new AbortController,J,Y=new Promise((H)=>{J=H});this.pendingSideConversation=Z,this.pendingSideConversationCompletion=Y;try{return await this.handleSlashCommand(z,Z.signal)}catch(H){if(Z.signal.aborted||H instanceof Error&&H.name==="AbortError")return{stopReason:"cancelled"};throw H}finally{if(J(),this.pendingSideConversationCompletion===Y)this.pendingSideConversationCompletion=null;if(this.pendingSideConversation===Z)this.pendingSideConversation=null}}async sendAvailableCommands(){try{let z=wz(this.cwd,this.runtime?.getAgentResources()),Z=["model","permissions","theme","config","exit","ide"],Y=z.filter((H)=>!Z.includes(H.name)&&(H.name!=="team"||this.runtime?.getConfig().agentTeamsEnabled===!0)).map((H)=>{let W;if(H.usage){let Q=H.usage.replace(/^\/\w+\s*/,"").trim();if(Q)W=Q}if(H.aliases?.length){let Q=`Aliases: ${H.aliases.join(", ")}`;W=W?`${W} | ${Q}`:Q}return{name:H.name,description:H.description,input:W?{hint:W}:void 0}});G.info(`[AcpSession ${this.id}] Sending available commands: ${JSON.stringify(Y.map((H)=>H.name))}`),this.sendUpdate({sessionUpdate:"available_commands_update",availableCommands:Y}),G.info(`[AcpSession ${this.id}] Sent ${Y.length} available commands`)}catch(z){G.error(`[AcpSession ${this.id}] Failed to send available commands:`,z)}}async prompt(z,Z={}){if(N.setCurrentSession(this.id),!this.agent||!this.runtime)throw Error("Session not initialized");let J=this.resolvePrompt(z.prompt),Y=J.content,H=J.displayText,W=z._meta?.outputSchema??(Z.pendingInputOnly?this.runtime.getPendingSteeringMessages().find((B)=>B.outputSchema)?.outputSchema:void 0),Q;if(W!==void 0)Q=t(W).schema;if(H.trimStart().startsWith("!")){if(Q)throw Error("Output schemas cannot be combined with user shell commands");return this.handleUserShellCommand(H)}let j=Zz(H);if(j){if(Q)throw Error("Output schemas cannot be combined with slash commands");if(Array.isArray(Y)&&Y.some((B)=>B.type==="image_url"))throw Error("Side conversations do not accept image attachments");return this.handleSideConversationCommand(j.question?`/btw ${j.question}`:"/btw")}if(this.pendingPrompt){if(Q)throw Error("Wait for the active turn to finish before setting an output schema");if(/^\/goal(?:\s|$)/i.test(H.trim()))return this.handleSlashCommand(H,this.pendingPrompt.signal);let B=await this.runtime.enqueueSteering(Y,{allowBeforeTurn:!0});if(!B.accepted)throw Error(B.reason==="queue_full"?"Active turn steering queue is full":"Active turn is no longer steerable");if(G.debug(`[AcpSession ${this.id}] Queued steering for active turn (${B.queued})`),B.delivery==="next_turn")this.schedulePendingResume();return{stopReason:"end_turn"}}let D=new AbortController,X=!1,L,F=new Promise((B)=>{L=B});this.pendingPrompt=D,this.pendingPromptCompletion=F;try{if(G.debug(`[AcpSession ${this.id}] Received prompt: ${H.slice(0,100)}...`),Fz(H)){if(Q)throw Error("Output schemas cannot be combined with slash commands");return await this.handleSlashCommand(H,D.signal)}let B={sessionId:this.id,userId:"acp-user",workspaceRoot:this.cwd,messages:[...this.contextMessages],signal:D.signal,permissionMode:this.mapModeToPermissionMode(),onPermissionModeChange:async($)=>{this.mode=this.mapPermissionModeToMode($),this.sendUpdate({sessionUpdate:"current_mode_update",currentModeId:this.mode})},...this.options.taskWorktree?{worktreeActive:!0}:{},confirmationHandler:{requestConfirmation:async($)=>{return this.requestPermission($)}}},A=await zz(this.agent.chatStream(Y,B,{pendingInputOnly:Z.pendingInputOnly,goalContinuationOnly:Z.goalContinuationOnly,outputSchema:Q}),async($)=>{switch($.kind){case"content_delta":if(Q)break;this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:$.delta}});break;case"thinking_delta":this.sendUpdate({sessionUpdate:"agent_thought_chunk",content:{type:"text",text:$.delta}});break;case"tool_start":{let V=$.toolCall,O=V.function.name;if(O===x)break;let R=this.mapToolKind($.toolKind),w=`Executing ${O}`;if(O==="Task"&&"function"in V)try{let P=JSON.parse(V.function.arguments),K=P.resume_from??P.resume;if(typeof K==="string")w=`Resuming ${String(P.subagent_type||"subagent")} from ${K}`}catch{}this.sendUpdate({sessionUpdate:"tool_call",toolCallId:V.id,status:"in_progress",title:w,content:[],kind:R});break}case"tool_progress":{let V=$.toolCall;if(V.function.name===x)break;this.sendUpdate({sessionUpdate:"tool_call_update",toolCallId:V.id,status:"in_progress",content:[{type:"content",content:{type:"text",text:$.update.message}}]});break}case"tool_result":{let V=$.toolCall;if(V.function.name===x)break;let O=$.result,R=[],w=O.metadata;if(w?.kind==="patch"&&Array.isArray(w.changes))for(let K of w.changes){if(!K||typeof K!=="object"||!("path"in K)||typeof K.path!=="string")continue;R.push({type:"diff",path:K.path,oldText:"oldContent"in K&&typeof K.oldContent==="string"?K.oldContent:null,newText:"newContent"in K&&typeof K.newContent==="string"?K.newContent:null})}else if(w?.kind==="edit"&&typeof w.file_path==="string"&&typeof w.oldContent==="string"&&(typeof w.newContent==="string"||w.newContent===void 0))R.push({type:"diff",path:w.file_path,oldText:w.oldContent,newText:w.newContent??null});else{let K=V.function.name,kz=Hz(o(Yz(K,O),a));R.push({type:"content",content:{type:"text",text:kz}})}if(V.function.name==="Task"&&(w?.verificationVerdict==="pass"||w?.verificationVerdict==="fail"||w?.verificationVerdict==="partial"))R.unshift({type:"content",content:{type:"text",text:`Verification result: ${w.verificationVerdict.toUpperCase()}`}});let P=O.success?"completed":"failed";this.sendUpdate({sessionUpdate:"tool_call_update",toolCallId:V.id,status:P,content:R});break}case"structured_output":this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:JSON.stringify($.output)}});break;case"mcp_catalog_changed":this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:`MCP catalog r${$.revision} (${$.serverName}): +${$.added.length} -${$.removed.length} ~${$.updated.length}
|
|
3
|
-
`}});break;case"mcp_content_changed":this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:`MCP ${$.contentKind} r${$.revision} (${$.serverName}): +${$.added.length} -${$.removed.length} ~${$.updated.length}
|
|
4
|
-
`}});break;case"mcp_resource_updated":this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:`MCP resource updated r${$.revision} (${$.serverName}): ${$.uri}
|
|
5
|
-
`}});break;case"mcp_connection_changed":this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:`MCP connection r${$.revision} (${$.serverName}): ${$.phase} ${$.attempt}/${$.maxAttempts}
|
|
6
|
-
`}});break;case"mcp_log":this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:`MCP log r${$.revision} (${$.serverName}) ${$.level}${$.logger?` logger=${$.logger}`:""}: ${$.message}
|
|
7
|
-
`}});break;case"mcp_instructions_changed":this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:`MCP instructions r${$.revision} (${$.serverName}): ${$.action}${$.detailsOmitted?" details-omitted":""}
|
|
8
|
-
`}});break;case"mcp_task_changed":this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:`MCP task r${$.revision} ${$.taskId} (${$.serverName}/${$.toolName}): ${$.status}${$.hasResult?" result-available":""}
|
|
9
|
-
`}});break;case"project_rules_loaded":this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:`Project rules loaded: ${$.files.length}${$.blockedWrite?" (write retry required)":""}
|
|
10
|
-
`}});break;case"provider_admission":X=$.phase!=="admitted",this.sendUpdate({sessionUpdate:"session_info_update",updatedAt:new Date().toISOString(),_meta:{"blade/providerAdmission":$.phase!=="admitted"?{phase:$.phase,requestClass:$.requestClass,resource:$.resource,scope:$.scope,...$.reason!==void 0?{reason:$.reason}:{},queuePosition:$.queuePosition,queueDepth:$.queueDepth,inFlight:$.inFlight,limit:$.limit,waitMs:$.waitMs,maxWaitMs:$.maxWaitMs,...$.recoveryRemainingMs!==void 0?{recoveryRemainingMs:$.recoveryRemainingMs}:{}}:null}});break;case"provider_circuit":this.sendUpdate({sessionUpdate:"session_info_update",updatedAt:new Date().toISOString(),_meta:{"blade/providerCircuit":{phase:$.phase,reason:$.reason,...$.statusCode!==void 0?{statusCode:$.statusCode}:{},...$.retryAfterMs!==void 0?{retryAfterMs:$.retryAfterMs}:{},...$.nextProbeAt!==void 0?{nextProbeAt:$.nextProbeAt}:{},openDurationMs:$.openDurationMs,...$.sampleCount!==void 0?{sampleCount:$.sampleCount}:{},...$.failureCount!==void 0?{failureCount:$.failureCount}:{},...$.recoveryRemainingMs!==void 0?{recoveryRemainingMs:$.recoveryRemainingMs}:{}}}});break;case"provider_retry":this.sendUpdate({sessionUpdate:"session_info_update",updatedAt:new Date().toISOString(),_meta:{"blade/providerRetry":{phase:$.phase,attempt:$.attempt,maxRetries:$.maxRetries,reason:$.reason,...$.statusCode!==void 0?{statusCode:$.statusCode}:{},...$.delayMs!==void 0?{delayMs:$.delayMs}:{},...$.nextRetryAt!==void 0?{nextRetryAt:$.nextRetryAt}:{},...$.mode!==void 0?{mode:$.mode}:{},...$.recoveryBudgetMs!==void 0?{recoveryBudgetMs:$.recoveryBudgetMs}:{},...$.recoveryElapsedMs!==void 0?{recoveryElapsedMs:$.recoveryElapsedMs}:{},...$.recoveryRemainingMs!==void 0?{recoveryRemainingMs:$.recoveryRemainingMs}:{},...$.exhaustedBy!==void 0?{exhaustedBy:$.exhaustedBy}:{}}}});break;case"provider_stall":this.sendUpdate({sessionUpdate:"session_info_update",updatedAt:new Date().toISOString(),_meta:{"blade/providerStall":{phase:$.phase,stallCount:$.stallCount,durationMs:$.durationMs,warningAfterMs:$.warningAfterMs,timeoutMs:$.timeoutMs,outputStarted:$.outputStarted}}});break;case"action_stationarity":this.sendUpdate({sessionUpdate:"session_info_update",updatedAt:new Date().toISOString(),_meta:{"blade/actionStationarity":{phase:$.phase,toolName:$.toolName,runLength:$.runLength,nudgeThreshold:$.nudgeThreshold,haltThreshold:$.haltThreshold,progressAware:$.progressAware}}});break;case"task_update":this.sendPlanUpdate($.tasks);break;case"steering_applied":break;case"follow_up_started":for(let V of $.messages){if(!V.recovered||V.persisted)continue;for(let O of Kz(V.content))this.sendUpdate({sessionUpdate:"user_message_chunk",content:O})}if($.recovered>0)this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:`[Resuming ${$.recovered} queued instruction${$.recovered===1?"":"s"} recovered after restart]
|
|
11
|
-
`}});break;case"goal_updated":if($.goal)this.sendUpdate(this.goalSessionUpdate($.goal));if($.goal&&$.goal.status!=="active")this.sendUpdate({sessionUpdate:"agent_message_chunk",content:{type:"text",text:`[Goal ${$.goal.status}: ${$.goal.objective}]
|
|
12
|
-
`}});break;case"goal_continuation_started":this.sendUpdate({sessionUpdate:"session_info_update",updatedAt:new Date().toISOString(),_meta:{"blade/goalContinuation":{goalId:$.goal.goalId,continuation:$.continuation,...$.prematureStopPattern?{prematureStopPattern:$.prematureStopPattern}:{},...$.prematureStopCount!==void 0?{prematureStopCount:$.prematureStopCount}:{}}}});break;case"compaction":this.sendUpdate({sessionUpdate:"session_info_update",updatedAt:new Date().toISOString(),_meta:{"blade/compaction":{phase:$.phase,...$.reason?{reason:$.reason}:{},...$.strategy?{strategy:$.strategy}:{},...$.outcome?{outcome:$.outcome}:{},...$.preTokens!==void 0?{preTokens:$.preTokens}:{},...$.preTokenSource?{preTokenSource:$.preTokenSource}:{},...$.estimatedPendingTokens!==void 0?{estimatedPendingTokens:$.estimatedPendingTokens}:{},...$.postTokens!==void 0?{postTokens:$.postTokens}:{},...$.sampleAttempts!==void 0?{sampleAttempts:$.sampleAttempts}:{},...$.inputReductions!==void 0?{inputReductions:$.inputReductions}:{},...$.messagesOmitted!==void 0?{messagesOmitted:$.messagesOmitted}:{},...$.filesOmitted!==void 0?{filesOmitted:$.filesOmitted}:{},...$.imagesOmitted!==void 0?{imagesOmitted:$.imagesOmitted}:{},...$.fallbackTargetTokens!==void 0?{fallbackTargetTokens:$.fallbackTargetTokens}:{},...$.fallbackMessagesOmitted!==void 0?{fallbackMessagesOmitted:$.fallbackMessagesOmitted}:{},...$.fallbackMessagesTruncated!==void 0?{fallbackMessagesTruncated:$.fallbackMessagesTruncated}:{},...$.failureReason?{failureReason:$.failureReason}:{}}}});break;default:break}if(!await this.flushUpdates())D.abort("acp-egress-failed")});if(!await this.flushUpdates())D.abort("acp-egress-failed");this.contextMessages=[...B.messages];let g=await U.loadSession(this.id,this.cwd);if(this.messages=g.length>0?g:[...B.messages],!A.success){let $=A.error?.type??"unknown",V=A.error?.details??A.error?.message??"Agent execution failed",O=pz(V)??r(V);throw Cz.internalError({failureType:$,taskFailure:{code:O.code,retryable:O.retryable,...O.resource?{resource:O.resource}:{}}},`Agent turn failed (${$})`)}if(D.signal.aborted)return{stopReason:"cancelled"};let c={...A.metadata?.structuredOutput?{structuredOutput:A.metadata.structuredOutput,outputSchemaDigest:A.metadata.structuredOutputSchemaDigest}:{},...A.metadata?.goalCompletionVerified?{goalCompletion:{verified:!0,verdict:A.metadata.goalVerificationVerdict,...A.metadata.goalVerifierSessionId?{verifierSessionId:A.metadata.goalVerifierSessionId}:{},...A.metadata.goalVerificationEvidenceSha256?{evidenceSha256:A.metadata.goalVerificationEvidenceSha256}:{}}}:{}};return{stopReason:"end_turn",...Object.keys(c).length>0?{_meta:c}:{}}}catch(B){if(D.signal.aborted||B instanceof Error&&B.name==="AbortError")return{stopReason:"cancelled"};throw G.error(`[AcpSession ${this.id}] Prompt error:`,B),B}finally{if(X&&!this.destroyed)this.sendUpdate({sessionUpdate:"session_info_update",updatedAt:new Date().toISOString(),_meta:{"blade/providerAdmission":null}}),await this.flushUpdates();if(L(),this.pendingPromptCompletion===F)this.pendingPromptCompletion=null;if(this.pendingPrompt===D){if(this.pendingPrompt=null,!this.destroyed&&this.pendingResumeRequested)this.schedulePendingResume()}}}async handleUserShellCommand(z){if(!this.runtime)throw Error("Session runtime is unavailable");if(this.pendingUserShell)throw Error("A user shell command is already running");let Z=z.trimStart().slice(1).trim();if(!Z)throw Error("User shell command cannot be empty");let J=new AbortController,Y,H=new Promise((j)=>{Y=j});this.pendingUserShell=J,this.pendingUserShellCompletion=H;let W,Q="";try{let j=await this.runtime.executeUserShellCommand(Z,{signal:J.signal,onEvent:async(X)=>{if(W=X.executionId,X.type==="started"){this.sendUpdate({sessionUpdate:"tool_call",toolCallId:X.executionId,status:"in_progress",title:`! ${X.command}`,content:[],kind:"execute"});return}if(X.type==="output"){Q+=X.chunk,this.sendUpdate({sessionUpdate:"tool_call_update",toolCallId:X.executionId,status:"in_progress",content:[{type:"content",content:{type:"text",text:X.chunk}}]});return}let L=C(X.record);this.sendUpdate({sessionUpdate:"tool_call_update",toolCallId:X.executionId,status:X.record.status==="completed"?"completed":"failed",content:[{type:"content",content:{type:"text",text:Q?cz(X.record):L}}]})}}),D={role:"user",content:j.modelContent,metadata:{userShellCommand:JSON.parse(JSON.stringify(j.record))}};if(this.messages.push(D),this.contextMessages.push(D),j.delivery==="next_turn")this.schedulePendingResume();if(!await this.flushUpdates())return J.abort("acp-egress-failed"),{stopReason:"cancelled"};return{stopReason:j.record.status==="aborted"?"cancelled":"end_turn"}}catch(j){if(W)this.sendUpdate({sessionUpdate:"tool_call_update",toolCallId:W,status:"failed",content:[{type:"content",content:{type:"text",text:j instanceof Error?j.message:String(j)}}]});if(J.signal.aborted)return{stopReason:"cancelled"};throw j}finally{if(Y(),this.pendingUserShellCompletion===H)this.pendingUserShellCompletion=null;if(this.pendingUserShell===J)this.pendingUserShell=null}}schedulePendingResume(){if(this.destroyed||this.connection.signal.aborted)return;this.pendingResumeRequested=!0,queueMicrotask(()=>{this.resumePendingIfIdle()})}async resumePendingIfIdle(){if(this.destroyed||this.connection.signal.aborted)return;if(this.pendingPrompt||this.pendingUserShell||!this.runtime||!this.agent)return;let z=this.runtime.getPendingSteeringCount()>0,Z=z?null:await this.runtime.getGoal(),J=Z?.status==="active"||Z?.status==="verifying";if(!z&&!J){this.pendingResumeRequested=!1;return}this.pendingResumeRequested=!1,await this.prompt({sessionId:this.id,prompt:[]},{pendingInputOnly:z,goalContinuationOnly:J}).catch((Y)=>{G.error(`[AcpSession ${this.id}] Failed to resume pending input:`,Y)})}cancel(){G.info(`[AcpSession ${this.id}] Cancel requested`),this.pendingResumeRequested=!1;let z=!1;if(this.pendingPrompt)this.pendingPrompt.abort(),this.pendingPrompt=null,z=!0;if(this.pendingUserShell)this.pendingUserShell.abort(),this.pendingUserShell=null,z=!0;if(this.pendingSideConversation)this.pendingSideConversation.abort(),this.pendingSideConversation=null,z=!0;if(!z)G.warn(`[AcpSession ${this.id}] No pending prompt to cancel`)}async setMode(z){let J=["default","auto-edit","yolo","plan"].includes(z)?z:"default",Y=this.mapModeIdToPermissionMode(J);await U.setSessionPermissionMode(this.id,this.cwd,Y),this.mode=J,G.info(`[AcpSession ${this.id}] Mode set to: ${this.mode}`),this.sendUpdate({sessionUpdate:"current_mode_update",currentModeId:this.mode})}mapModeToPermissionMode(){return this.mapModeIdToPermissionMode(this.mode)}mapModeIdToPermissionMode(z){switch(z){case"yolo":return"yolo";case"auto-edit":return"autoEdit";case"plan":return"plan";case"default":default:return"default"}}shouldAutoApprove(z){switch(this.mode){case"yolo":return!0;case"auto-edit":return z==="readonly"||z==="write";case"plan":return z==="readonly";case"default":default:return!1}}async setModel(z){if(G.info(`[AcpSession ${this.id}] Model set to: ${z}`),this.pendingPrompt)throw Error("Cannot switch models while a prompt is active");if(!this.agent)throw Error("Session not initialized");if(!this.runtime)throw Error("Session runtime is unavailable");let Z=this.runtime.getCurrentModelId();await this.agent.switchModel(z);try{try{await U.updateSessionMetadata(this.id,this.cwd,{selectedModelId:z})}catch(J){if(!(J instanceof q)&&J.code!=="ENOENT")throw J;await U.createSessionMetadata(this.id,this.cwd,{taskStatus:"completed",selectedModelId:z})}}catch(J){if(Z&&Z!==z)await this.agent.switchModel(Z).catch((Y)=>{G.error(`[AcpSession ${this.id}] Failed to roll back a non-durable model switch:`,Y)});throw J}}getCurrentModelId(){return this.runtime?.getCurrentModelId()}async setReasoningEffort(z){if(this.pendingPrompt)throw Error("Cannot switch reasoning effort while a prompt is active");if(!this.runtime)throw Error("Session runtime is unavailable");let Z=this.runtime.getReasoningConfiguration();try{this.runtime.resolveReasoningConfiguration(z)}catch(J){throw Error(J instanceof Error?J.message:"Invalid reasoning effort")}if(Z.selection===z)return;await this.runtime.refresh({reasoningEffort:z});try{try{await U.updateSessionMetadata(this.id,this.cwd,{reasoningEffort:z})}catch(J){if(!(J instanceof q)&&J.code!=="ENOENT")throw J;await U.createSessionMetadata(this.id,this.cwd,{taskStatus:"completed",selectedModelId:this.runtime.getCurrentModelId(),reasoningEffort:z})}}catch(J){throw await this.runtime.refresh({reasoningEffort:Z.selection}),J}}async setServiceTier(z){if(this.pendingPrompt)throw Error("Cannot switch service tier while a prompt is active");if(!this.runtime)throw Error("Session runtime is unavailable");let Z=this.runtime.getServiceTierConfiguration();try{this.runtime.resolveServiceTierConfiguration(z)}catch(J){throw Error(J instanceof Error?J.message:"Invalid service tier")}if(Z.selection===z)return;await this.runtime.refresh({serviceTier:z});try{try{await U.updateSessionMetadata(this.id,this.cwd,{serviceTier:z})}catch(J){if(!(J instanceof q)&&J.code!=="ENOENT")throw J;await U.createSessionMetadata(this.id,this.cwd,{taskStatus:"completed",selectedModelId:this.runtime.getCurrentModelId(),serviceTier:z})}}catch(J){throw await this.runtime.refresh({serviceTier:Z.selection}),J}}async setResponseVerbosity(z){if(this.pendingPrompt)throw Error("Cannot switch response verbosity while a prompt is active");if(!this.runtime)throw Error("Session runtime is unavailable");let Z=this.runtime.getResponseVerbosityConfiguration();try{this.runtime.resolveResponseVerbosityConfiguration(z)}catch(J){throw Error(J instanceof Error?J.message:"Invalid response verbosity")}if(Z.selection===z)return;await this.runtime.refresh({responseVerbosity:z});try{try{await U.updateSessionMetadata(this.id,this.cwd,{responseVerbosity:z})}catch(J){if(!(J instanceof q)&&J.code!=="ENOENT")throw J;await U.createSessionMetadata(this.id,this.cwd,{taskStatus:"completed",selectedModelId:this.runtime.getCurrentModelId(),responseVerbosity:z})}}catch(J){throw await this.runtime.refresh({responseVerbosity:Z.selection}),J}}async setCommunicationStyle(z){if(this.pendingPrompt)throw Error("Cannot switch communication style while a prompt is active");if(!this.runtime)throw Error("Session runtime is unavailable");let Z=this.runtime.getCommunicationStyleConfiguration(),J=this.runtime.resolveCommunicationStyleConfiguration(z);if(J.source!=="built-in"&&!J.contentSha256)throw Error("Custom communication style has no provenance");if(Z.selection===z)return;await this.runtime.refresh({communicationStyle:z});try{try{await U.updateSessionMetadata(this.id,this.cwd,{communicationStyle:z,communicationStyleDigest:J.source==="built-in"?null:J.contentSha256})}catch(Y){if(!(Y instanceof q)&&Y.code!=="ENOENT")throw Y;await U.createSessionMetadata(this.id,this.cwd,{taskStatus:"completed",selectedModelId:this.runtime.getCurrentModelId(),communicationStyle:z,...J.source!=="built-in"&&J.contentSha256?{communicationStyleDigest:J.contentSha256}:{}})}}catch(Y){throw await this.runtime.refresh({communicationStyle:Z.selection}),Y}}getModelConfiguration(){if(!this.runtime)return;let z=this.runtime.getConfig();return{currentModelId:this.runtime.getCurrentModelId()??z.currentModelId,models:z.models.map((Z)=>structuredClone(Z)),modelProviders:structuredClone(z.modelProviders),reasoning:this.runtime.getReasoningConfiguration(),serviceTier:this.runtime.getServiceTierConfiguration(),responseVerbosity:this.runtime.getResponseVerbosityConfiguration(),communicationStyle:this.runtime.getCommunicationStyleConfiguration()}}getMode(){return this.mode}isIdleForResidency(){return!this.destroyed&&this.pendingPrompt===null&&this.pendingUserShell===null&&this.pendingSideConversation===null&&(this.runtime?.isIdleForResidency()??!1)}destroy(z={}){if(this.destroyPromise)return this.destroyFinished?Promise.resolve():this.destroyPromise;return this.destroyPromise=this.destroyOwnedResources(z.discardPendingInput===!0).finally(()=>{this.destroyFinished=!0}),this.destroyPromise}async destroyOwnedResources(z){if(this.destroyed=!0,this.updateEgress.close(new Bz("closed","ACP Session was destroyed")),this.availableCommandsTimer!==null)clearTimeout(this.availableCommandsTimer),this.availableCommandsTimer=null;this.taskStatusUnsubscribe?.(),this.taskStatusUnsubscribe=void 0;let Z=this.agent,J=this.runtime,Y=this.pendingPromptCompletion,H=this.pendingUserShellCompletion,W=this.pendingSideConversationCompletion;this.agent=null,this.runtime=null;let Q,j=async(D)=>{try{await D()}catch(X){Q??=X}};if(await j(()=>this.cancel()),Y)await j(()=>Y);if(H)await j(()=>H);if(W)await j(()=>W);if(z&&Y&&J)await j(()=>J.discardPendingInput());if(Z)await j(()=>Z.destroy());if(J)await j(()=>J.dispose());if(await j(()=>N.destroySession(this.id)),G.debug(`[AcpSession ${this.id}] Destroyed`),Q!==void 0)throw Q}resolvePrompt(z){let Z=[],J=[],Y=0,H=0,W=0,Q=(X)=>{if(J.length>0)J.push({type:"text",text:`
|
|
13
|
-
`}),W+=1;if(J.push(X),X.type==="text")W+=X.text.length};for(let X of z)if(X.type==="text")Z.push(X.text),Q({type:"text",text:X.text});else if(X.type==="image"){let L=`data:${X.mimeType};base64,${X.data}`;Y+=1,H+=L.length,Z.push(`[Image: ${X.mimeType}]`),Q({type:"image_url",image_url:{url:L}})}else if(X.type==="resource"){let L=X.resource;if("text"in L){let F=`<file path="${L.uri}">
|
|
14
|
-
${L.text}
|
|
15
|
-
</file>`;Z.push(F),Q({type:"text",text:F})}}else if(X.type==="resource_link"){let L=`[Resource: ${X.uri}]`;Z.push(L),Q({type:"text",text:L})}if(Y>S)throw Error(`ACP prompt contains more than ${S} images`);if(H>d)throw Error("ACP prompt images exceed the 5 MiB limit");if(W>M)throw Error(`ACP prompt text exceeds ${M} characters`);if(Buffer.byteLength(Z.join(`
|
|
16
|
-
`),"utf8")>k)throw Error(`ACP prompt text exceeds ${k} bytes`);let D=Z.join(`
|
|
17
|
-
`);return{content:Y>0?J:D,displayText:D}}canSendUpdates(){return!this.destroyed&&!this.connection.signal.aborted&&!this.updateEgress.stats().closed}async sendUpdateAndWait(z){if(!this.canSendUpdates())return!1;let Z=this.updateEgress.offer({sessionId:this.id,update:z});if(!Z.accepted)return!1;try{return await Z.completion,this.canSendUpdates()}catch{return!1}}goalSessionUpdate(z){return{sessionUpdate:"session_info_update",updatedAt:z.updatedAt,_meta:{"blade/goal":{goalId:z.goalId,status:z.status,verificationAttempt:z.completionVerification?.attempt,verificationStatus:z.completionVerification?.status,verifierSessionId:z.completionVerification?.verifierSessionId,verificationEvidenceSha256:z.completionVerification?.evidenceSha256,verificationSummary:z.completionVerification?.summary,verificationStallCount:z.verificationStall?.consecutiveCount}}}}sendUpdate(z){if(!this.canSendUpdates())return;this.updateEgress.offer({sessionId:this.id,update:z})}async flushUpdates(){if(!this.canSendUpdates())return!1;try{return await this.updateEgress.flush(),this.canSendUpdates()}catch{return!1}}handleUpdateEgressFailure(z){if(this.destroyed)return;G.warn(`[AcpSession ${this.id}] Update egress closed: kind=${z.kind}`),this.pendingPrompt?.abort("acp-egress-failed"),this.pendingUserShell?.abort("acp-egress-failed"),this.pendingSideConversation?.abort("acp-egress-failed")}sendPlanUpdate(z){let Z=z.map((J)=>({content:J.subject,priority:J.priority,status:J.status}));G.debug(`[AcpSession ${this.id}] Sending plan update with ${Z.length} entries`),this.sendUpdate({sessionUpdate:"plan",entries:Z})}async requestPermission(z){let Z=this.pendingPrompt?.signal;if(z.type==="askUserQuestion")return this.requestUserQuestions(z,Z);if(z.type==="mcpElicitation")return this.requestMcpElicitation(z,Z);let J=z.kind?.toLowerCase()||"execute";if(z.type!=="mcpSampling"&&this.shouldAutoApprove(J))return G.debug(`[AcpSession ${this.id}] Auto-approving ${J} in mode: ${this.mode}`),{approved:!0};if(this.mode==="plan"&&(J==="write"||J==="execute"))return G.debug(`[AcpSession ${this.id}] Rejecting ${J} in plan mode`),{approved:!1,reason:"Write and execute operations are not allowed in Plan mode"};try{let Y=h(),H=[];if(z.message)H.push({type:"content",content:{type:"text",text:z.message}});if(z.details)H.push({type:"content",content:{type:"text",text:z.details}});if(z.risks&&z.risks.length>0)H.push({type:"content",content:{type:"text",text:`Risks:
|
|
18
|
-
- ${z.risks.join(`
|
|
19
|
-
- `)}`}});let W=this.mapToolKind(J),Q={sessionId:this.id,options:z.type==="mcpSampling"?[{optionId:"allow_once",name:"Allow this sampling request",kind:"allow_once"},{optionId:"reject_once",name:"Deny",kind:"reject_once"}]:[{optionId:"allow_once",name:"Allow once",kind:"allow_once"},{optionId:"allow_always",name:"Always allow",kind:"allow_always"},{optionId:"reject_once",name:"Deny once",kind:"reject_once"},{optionId:"reject_always",name:"Always deny",kind:"reject_always"}],toolCall:{toolCallId:Y,status:"pending",title:z.title||"Permission Required",content:H,kind:W}},j=await this.waitForClientInteraction(this.connection.requestPermission(Q),Z);if(!j)return{approved:!1,reason:I};let D=j.outcome;if(D.outcome==="cancelled")return{approved:!1,reason:"User cancelled the permission request"};let X=D.optionId;if(X==="allow_always")return{approved:!0,scope:"project"};if(X==="reject_always")return{approved:!1,scope:"project",reason:"User permanently denied the permission request"};let L=X==="allow_once";return{approved:L,scope:"once",reason:L?void 0:"User denied the operation"}}catch(Y){return G.warn(`[AcpSession ${this.id}] Permission request failed:`,Y),{approved:!1,reason:"Permission request failed"}}}async requestUserQuestions(z,Z){let J=z.questions??[];if(J.length===0)return{approved:!1,reason:"No structured questions were provided"};if(J.some((H)=>H.multiSelect))return{approved:!1,reason:"ACP does not support multi-select question responses"};let Y={};try{for(let[H,W]of J.entries()){let Q=W.options.map((L,F)=>`answer:${H}:${F}`),j=`answer:${H}:cancel`,D=await this.waitForClientInteraction(this.connection.requestPermission({sessionId:this.id,options:[...W.options.map((L,F)=>({optionId:Q[F],name:L.label,kind:"allow_once"})),{optionId:j,name:"Cancel",kind:"reject_once"}],toolCall:{toolCallId:h(),status:"pending",title:W.header,kind:"think",content:[{type:"content",content:{type:"text",text:[W.question,...W.options.map((L)=>`${L.label}: ${L.description}`)].join(`
|
|
20
|
-
`)}}]}}),Z);if(!D)return{approved:!1,reason:I};if(D.outcome.outcome!=="selected")return{approved:!1,reason:"User cancelled the question prompt"};let X=Q.indexOf(D.outcome.optionId);if(X<0)return{approved:!1,reason:"User cancelled the question prompt"};Y[W.header]=W.options[X].label}return{approved:!0,answers:Y}}catch(H){return G.warn(`[AcpSession ${this.id}] Question request failed:`,H),{approved:!1,reason:"Question request failed"}}}async requestMcpElicitation(z,Z){let J=z.mcpElicitation;if(!J)return{approved:!1,reason:"MCP elicitation details are missing",elicitation:{action:"cancel"}};try{if(J.mode==="url"){let H=await this.requestElicitationChoice("MCP external authorization",[J.message,`Server: ${J.serverName}`,`Domain: ${J.domain??"unknown"}`,`URL: ${J.url??""}`,"Open this URL yourself only if you trust the MCP server."].join(`
|
|
21
|
-
`),[{id:"accept",label:"I will open this URL"},{id:"decline",label:"Decline"}],Z);if(H==="accept")return{approved:!0,elicitation:{action:"accept"}};return{approved:!1,reason:H==="decline"?"User declined URL":"User cancelled",elicitation:{action:H==="decline"?"decline":"cancel"}}}let Y=Object.create(null);for(let H of J.fields??[]){let W=await this.collectAcpElicitationField(H,Z);if(W.cancelled)return{approved:!1,reason:W.reason,elicitation:{action:"cancel"}};if(W.value!==void 0)Y[H.name]=W.value}return{approved:!0,elicitation:{action:"accept",content:Y}}}catch(Y){return G.warn(`[AcpSession ${this.id}] MCP elicitation failed:`,Y),{approved:!1,reason:"MCP elicitation failed",elicitation:{action:"cancel"}}}}async collectAcpElicitationField(z,Z){if(z.type==="select"||z.type==="boolean"){let J=z.type==="boolean"?[{id:"true",label:"Yes",value:!0},{id:"false",label:"No",value:!1}]:(z.options??[]).map((W,Q)=>({id:`option:${Q}`,label:W.label,value:W.value})),Y=await this.requestElicitationChoice(z.title,[z.description,z.required?"Required":"Optional"].filter(Boolean).join(`
|
|
22
|
-
`),[...J.map((W)=>({id:W.id,label:W.label})),...!z.required?[{id:"skip",label:"Skip"}]:[]],Z);if(Y==="skip")return{cancelled:!1};let H=J.find((W)=>W.id===Y);if(!H)return{cancelled:!0,reason:"User cancelled MCP elicitation"};return{cancelled:!1,value:H.value}}if(z.defaultValue!==void 0){let J=await this.requestElicitationChoice(z.title,[z.description,`ACP cannot collect ${z.type} input. Use the server default: ${String(z.defaultValue)}?`].filter(Boolean).join(`
|
|
23
|
-
`),[{id:"default",label:"Use default"},...!z.required?[{id:"skip",label:"Skip"}]:[]],Z);if(J==="default")return{cancelled:!1,value:z.defaultValue};if(J==="skip")return{cancelled:!1};return{cancelled:!0,reason:"User cancelled MCP elicitation"}}if(!z.required)return{cancelled:!1};return{cancelled:!0,reason:`ACP cannot collect required ${z.type} field "${z.name}"`}}async requestElicitationChoice(z,Z,J,Y){let H=await this.waitForClientInteraction(this.connection.requestPermission({sessionId:this.id,options:[...J.map((W)=>({optionId:W.id,name:W.label,kind:"allow_once"})),{optionId:"cancel",name:"Cancel",kind:"reject_once"}],toolCall:{toolCallId:h(),status:"pending",title:z,kind:"think",content:[{type:"content",content:{type:"text",text:Z}}]}}),Y);return H?.outcome.outcome==="selected"?H.outcome.optionId:void 0}async waitForClientInteraction(z,Z){if(!Z)return z;if(Z.aborted)return;return new Promise((J,Y)=>{let H=!1,W=(j)=>{if(H)return;H=!0,Z.removeEventListener("abort",Q),j()},Q=()=>W(()=>J(void 0));if(Z.addEventListener("abort",Q,{once:!0}),Z.aborted)Q();z.then((j)=>W(()=>J(j)),(j)=>W(()=>Y(j)))})}mapToolKind(z){return{readonly:"read",write:"edit",execute:"execute",read:"read",edit:"edit",delete:"delete",move:"move",search:"search",think:"think",fetch:"fetch"}[z||""]||"other"}}var _=T("Agent");class u{connection;sessions=new Map;sessionLoadQueues=new Map;runtimeResidencyValue;clientCapabilities;destroyed=!1;destroyPromise;constructor(z){this.connection=z}get runtimeResidency(){if(!this.runtimeResidencyValue){let z=Nz();this.runtimeResidencyValue=new Sz({maxResident:z?.maxResidentSessionRuntimes??qz,idleMs:z?.sessionRuntimeIdleMs??Pz})}return this.runtimeResidencyValue}async reserveSessionRuntime(z){try{return await this.runtimeResidency.reserve(z,{surface:"acp",allowEviction:!1})}catch(Z){if(Z instanceof hz)throw dz.internalError({resource:Z.resource,limit:Z.limit,retryable:Z.retryable},Z.message);throw Z}}async initialize(z){return _.info("[BladeAgent] Initializing ACP connection"),_.debug(`[BladeAgent] Client capabilities: ${JSON.stringify(z.clientCapabilities)}`),this.clientCapabilities=z.clientCapabilities,await Ez(),{protocolVersion:mz,agentCapabilities:{loadSession:!0,sessionCapabilities:{list:{},fork:{},close:{}},promptCapabilities:{image:!0,audio:!1,embeddedContext:!0},mcpCapabilities:{http:!0,sse:!0}}}}async authenticate(z){return}async newSession(z){this.assertNotDestroyed();let Z=f("acp"),J=await this.reserveSessionRuntime(Z),Y=z.cwd||Oz(),H=z._meta?.["blade/taskIsolation"],W=H==="local"||H==="worktree"?H:void 0,Q=z._meta?.["blade/taskPrompt"],j;try{let D=W?await yz.createSessionTask({sessionId:Z,prompt:typeof Q==="string"&&Q.trim()?Q:"ACP task session",sourceProjectPath:Y,isolation:W}):void 0,X=D?.metadata.projectPath??Y;return _.info(`[BladeAgent] Creating new session: ${Z}`),_.debug(`[BladeAgent] Session cwd: ${X}`),j=new E(Z,X,this.connection,this.clientCapabilities,{mcpServers:z.mcpServers,...D?.taskWorktree?{taskWorktree:D.taskWorktree}:{},...D?.metadata.taskIsolation?{taskIsolation:D.metadata.taskIsolation}:{}}),await j.initialize(),this.assertNotDestroyed(),this.commitSession(Z,j,J),_.info(`[BladeAgent] Session ${Z} created, scheduling available commands update`),j.sendAvailableCommandsDelayed(),this.buildChildSessionResponse(Z,D?.metadata,j.getModelConfiguration())}catch(D){throw J.cancel(),await j?.destroy().catch(()=>{return}),D}}async listSessions(z){if(z.cwd!=null&&!_z.isAbsolute(z.cwd))throw Error("ACP session list cwd must be absolute");let Z=await U.listSessionPage({cwd:z.cwd??void 0,cursor:z.cursor??void 0,limit:50,includeSubagents:!1});return{sessions:Z.sessions.map((J)=>({sessionId:J.sessionId,cwd:J.projectPath,title:J.title??null,updatedAt:J.lastMessageTime,_meta:{"blade/taskStatus":J.taskStatus,...J.taskStatusReason?{"blade/taskStatusReason":J.taskStatusReason}:{},...J.taskFailure?{"blade/taskFailure":J.taskFailure}:{},...J.taskStartedAt?{"blade/taskStartedAt":J.taskStartedAt}:{},...J.taskCompletedAt?{"blade/taskCompletedAt":J.taskCompletedAt}:{},...J.taskModelId?{"blade/taskModelId":J.taskModelId}:{},...J.taskRetryAvailable?{"blade/taskRetryAvailable":!0}:{},...J.taskRetriedFrom?{"blade/taskRetriedFrom":J.taskRetriedFrom}:{},...J.taskDelivery?{"blade/taskDelivery":J.taskDelivery}:{},...J.taskIsolation?{"blade/taskIsolation":J.taskIsolation}:{},...J.taskSourceProjectPath?{"blade/taskSourceProjectPath":J.taskSourceProjectPath}:{},...J.taskWorktreeBranch?{"blade/taskWorktreeBranch":J.taskWorktreeBranch}:{},...J.taskBaseCommit?{"blade/taskBaseCommit":J.taskBaseCommit}:{},...J.taskDiffStat?{"blade/taskDiffStat":J.taskDiffStat}:{},...J.taskQueuePosition?{"blade/taskQueuePosition":J.taskQueuePosition}:{},...J.taskQueueDepth!==void 0?{"blade/taskQueueDepth":J.taskQueueDepth}:{},...J.taskConcurrencyLimit!==void 0?{"blade/taskConcurrencyLimit":J.taskConcurrencyLimit}:{}}})),nextCursor:Z.nextCursor}}async unstable_forkSession(z){if(this.assertNotDestroyed(),!_z.isAbsolute(z.cwd))throw Error("ACP session fork cwd must be absolute");let Z=f("fork"),J=await this.reserveSessionRuntime(Z),Y;try{let H=await U.forkSession(z.sessionId,{sourceProjectPath:z.cwd,targetProjectPath:z.cwd,newSessionId:Z});return this.assertNotDestroyed(),Y=new E(H.sessionId,z.cwd,this.connection,this.clientCapabilities,{initialMessages:H.messages,permissionMode:H.metadata.permissionMode,mcpServers:z.mcpServers}),await Y.initialize(),this.assertNotDestroyed(),this.commitSession(H.sessionId,Y,J),Y.sendAvailableCommandsDelayed(),this.buildChildSessionResponse(H.sessionId,H.metadata,Y.getModelConfiguration())}catch(H){throw J.cancel(),await Y?.destroy().catch(()=>{return}),H}}async loadSession(z){this.assertNotDestroyed(),_.info(`[BladeAgent] Loading session: ${z.sessionId}`);let J=(this.sessionLoadQueues.get(z.sessionId)??Promise.resolve()).then(()=>this.replaceSession(z)),Y=J.then(()=>{return},()=>{return});this.sessionLoadQueues.set(z.sessionId,Y);try{return await J}finally{if(this.sessionLoadQueues.get(z.sessionId)===Y)this.sessionLoadQueues.delete(z.sessionId)}}async replaceSession(z){this.assertNotDestroyed(),await U.assertSessionWritable(z.sessionId,z.cwd),await this.closeResidentSession(z.sessionId);let Z=await this.reserveSessionRuntime(z.sessionId),J;try{let[Y,H]=await Promise.all([U.loadSession(z.sessionId,z.cwd),U.findSessionMetadata(z.sessionId,z.cwd)]);if(!H)throw Error(`Session not found: ${z.sessionId}`);return J=new E(z.sessionId,z.cwd,this.connection,this.clientCapabilities,{initialMessages:Y,permissionMode:H.permissionMode,mcpServers:z.mcpServers}),await J.initialize(),await J.replayHistory(),this.assertNotDestroyed(),this.commitSession(z.sessionId,J,Z),J.sendAvailableCommandsDelayed(),this.buildSessionSetup(J.getModelConfiguration(),J.getMode())}catch(Y){throw Z.cancel(),await J?.destroy().catch(()=>{return}),Y}}commitSession(z,Z,J){let Y=J.commit({key:z,surface:"acp",value:Z,canEvict:()=>Z.isIdleForResidency(),dispose:async()=>{if(this.sessions.get(z)===Z)this.sessions.delete(z);await Z.destroy()}});this.sessions.set(z,Z),Y.release()}async closeResidentSession(z,Z={}){let J=this.sessions.get(z);if(!J)return;let Y=this.runtimeResidency.owns(z,J),H;try{await J.destroy(Z)}catch(Q){H=Q}let W=await this.runtimeResidency.forget(z,J);if(this.sessions.get(z)===J)this.sessions.delete(z);if(Y&&!W&&H===void 0)throw Error(`ACP Session is still active: ${z}`);if(H!==void 0)throw H}buildChildSessionResponse(z,Z,J){return{sessionId:z,...this.buildSessionSetup(J,Z?.permissionMode==="autoEdit"?"auto-edit":Z?.permissionMode),...Z?{_meta:{"blade/taskIsolation":Z.taskIsolation,"blade/taskSourceProjectPath":Z.taskSourceProjectPath,"blade/taskProjectPath":Z.projectPath,...Z.taskModelId?{"blade/taskModelId":Z.taskModelId}:{},...Z.taskRetryAvailable?{"blade/taskRetryAvailable":!0}:{},...Z.taskRetriedFrom?{"blade/taskRetriedFrom":Z.taskRetriedFrom}:{},...Z.taskDelivery?{"blade/taskDelivery":Z.taskDelivery}:{},...Z.taskWorktreeBranch?{"blade/taskWorktreeBranch":Z.taskWorktreeBranch}:{},...Z.taskBaseCommit?{"blade/taskBaseCommit":Z.taskBaseCommit}:{}}}:{}}}assertNotDestroyed(){if(this.destroyed)throw Error("BladeAgent is destroyed")}getRuntimeResidencyStats(){return this.runtimeResidency.getStats()}buildSessionSetup(z,Z="default"){let J=z?.models??[],Y=(z?.currentModelId&&J.some((Q)=>Q.id===z.currentModelId)?z.currentModelId:void 0)??J[0]?.id,H=[{id:"default",name:"Default",description:"Ask for confirmation before all file edits and commands"},{id:"auto-edit",name:"Auto Edit",description:"Auto-approve file edits, ask for shell commands"},{id:"yolo",name:"Full Auto",description:"Auto-approve everything without confirmation"},{id:"plan",name:"Plan Only",description:"Read-only mode, no file changes or commands"}],W=[];if(J.length>0)W.push({type:"select",id:"model",name:"Model",description:"Active language model",category:"model",currentValue:Y,options:J.map((Q)=>({value:Q.id,name:Q.displayName??Q.model,description:`${z?.modelProviders[Q.provider]?.name??Q.provider} · ${Q.model}`}))});if(z?.reasoning)W.push({type:"select",id:"reasoning_effort",name:"Reasoning effort",description:"Session-owned model reasoning intensity",category:"model",currentValue:z.reasoning.selection,options:[{value:"auto",name:"Auto",description:`Resolve near high for this model (currently ${z.reasoning.effective})`},...z.reasoning.supported.map((Q)=>({value:Q,name:Q[0].toUpperCase()+Q.slice(1),description:Q==="off"?"Disable model reasoning":`Use ${Q} reasoning effort`}))]});if(z?.serviceTier)W.push({type:"select",id:"service_tier",name:"Service tier",description:"Session-owned provider latency and pricing tier",category:"model",currentValue:z.serviceTier.selection,options:[{value:"auto",name:"Auto",description:"Use the provider or model default tier"},...z.serviceTier.supported.map((Q)=>({value:Q,name:Q[0].toUpperCase()+Q.slice(1),description:Q==="fast"?"Use the provider priority tier":Q==="flex"?"Use the lower-cost flexible tier":"Use the standard provider tier"}))]});if(z?.responseVerbosity)W.push({type:"select",id:"response_verbosity",name:"Response verbosity",description:"Session-owned model response detail",category:"model",currentValue:z.responseVerbosity.selection,options:[{value:"auto",name:"Auto",description:"Use the provider or model default verbosity"},...z.responseVerbosity.supported.map((Q)=>({value:Q,name:Q[0].toUpperCase()+Q.slice(1),description:`Use ${Q} response verbosity`}))]});if(z?.communicationStyle)W.push({type:"select",id:"communication_style",name:"Communication style",description:"Session-owned tone and explanatory framing",category:"model",currentValue:z.communicationStyle.selection,options:z.communicationStyle.supported.map((Q)=>({value:Q.id,name:Q.name,description:`${Q.description} · ${Q.source}`}))});return{modes:{availableModes:H,currentModeId:Z},configOptions:W.length>0?W:void 0}}async closeSession(z){this.assertNotDestroyed();let J=(this.sessionLoadQueues.get(z.sessionId)??Promise.resolve()).then(()=>this.closeResidentSession(z.sessionId,{discardPendingInput:!0})),Y=J.then(()=>{return},()=>{return});this.sessionLoadQueues.set(z.sessionId,Y);try{await J}finally{if(this.sessionLoadQueues.get(z.sessionId)===Y)this.sessionLoadQueues.delete(z.sessionId)}}async prompt(z){let Z=this.runtimeResidency.acquire(z.sessionId);if(!Z)throw Error(`Session not found: ${z.sessionId}`);try{return await Z.value.prompt(z)}finally{Z.release()}}async cancel(z){_.info(`[BladeAgent] Cancel notification received for session: ${z.sessionId}`);let Z=this.runtimeResidency.acquire(z.sessionId);if(Z){_.info("[BladeAgent] Found session, calling session.cancel()");try{Z.value.cancel()}finally{Z.release()}}else _.warn(`[BladeAgent] Session not found for cancel: ${z.sessionId}`)}async setSessionMode(z){_.info(`[BladeAgent] Setting session mode: ${z.modeId}`);let Z=this.runtimeResidency.acquire(z.sessionId);if(Z)try{await Z.value.setMode(z.modeId)}finally{Z.release()}return{}}async setSessionConfigOption(z){let Z=this.runtimeResidency.acquire(z.sessionId);if(!Z)throw Error(`Session not found: ${z.sessionId}`);try{let J=Z.value;if(z.configId==="model"&&"value"in z&&typeof z.value==="string")_.info(`[BladeAgent] Setting session model: ${z.value}`),await J.setModel(z.value);else if(z.configId==="reasoning_effort"&&"value"in z&&xz(z.value))_.info(`[BladeAgent] Setting reasoning effort: ${z.value}`),await J.setReasoningEffort(z.value);else if(z.configId==="service_tier"&&"value"in z&&Rz(z.value))_.info(`[BladeAgent] Setting service tier: ${z.value}`),await J.setServiceTier(z.value);else if(z.configId==="response_verbosity"&&"value"in z&&Az(z.value))_.info(`[BladeAgent] Setting response verbosity: ${z.value}`),await J.setResponseVerbosity(z.value);else if(z.configId==="communication_style"&&"value"in z&&bz(z.value))_.info(`[BladeAgent] Setting communication style: ${z.value}`),await J.setCommunicationStyle(z.value);else throw Error(`Invalid session config option: ${z.configId}`);return{configOptions:this.buildSessionSetup(J.getModelConfiguration(),J.getMode()).configOptions??[]}}finally{Z.release()}}destroy(){if(this.destroyPromise)return this.destroyPromise;return this.destroyPromise=this.destroyOwnedResources(),this.destroyPromise}async destroyOwnedResources(){this.destroyed=!0,await Promise.all([...this.sessionLoadQueues.values()]),this.sessionLoadQueues.clear();let z;for(let Z of[...this.sessions.keys()])try{await this.closeResidentSession(Z)}catch(J){z??=J}try{await this.runtimeResidency.disposeAll()}catch(Z){z??=Z}this.sessions.clear();try{await Tz.getInstance().disconnectAll()}catch(Z){z??=Z}if(z!==void 0)throw z}}async function cJ(){let z=lz.toWeb(process.stdout),Z=vz.toWeb(process.stdin),J=y.ndJsonStream(z,Z),Y,H=new y.AgentSideConnection((Q)=>{return Y=new u(Q),Y},J),W=Mz(async()=>{await Y?.destroy()});try{await H.closed}finally{W(),await Y?.destroy()}}export{cJ as runAcpIntegration};
|
package/dist/chunk-46shzdny.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{le as a,me as b,ne as c}from"./chunk-9vp2qgt2.js";import"./chunk-wbfa6xce.js";import"./chunk-ggf76jxn.js";import"./chunk-v508x7cg.js";import"./chunk-zj4kfyer.js";import"./chunk-4cvmfne8.js";import"./chunk-xzzrtwjx.js";import"./chunk-t48zm299.js";import"./chunk-7dqh8bqm.js";import"./chunk-d83bfr0b.js";import"./chunk-qa4efys0.js";import"./chunk-hrfh7wck.js";import"./chunk-h4j0nve8.js";import"./chunk-w63dfcx5.js";import"./chunk-n4gtzx4x.js";import"./chunk-5j0b62sr.js";import"./chunk-rzja9zza.js";import"./chunk-dd99sgf8.js";import"./chunk-na1cney5.js";import"./chunk-nh45xp7r.js";export{a as validatePermissions,c as validateOutput,b as loadConfiguration};
|
package/dist/chunk-4p6q87bp.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ab as d,Bb as e,Cb as f,Db as g,Eb as h,Fb as i,Gb as j,Hb as k,Ob as l,Pb as m,Qb as n,Rb as o,Tb as p,Ub as q,Vb as r,tb as a,ub as b,wb as c}from"./chunk-b12wtvac.js";import"./chunk-ya5p7mx7.js";import"./chunk-tw63vfgh.js";import"./chunk-gbsxnvgg.js";import"./chunk-4jbpvete.js";import"./chunk-zj4kfyer.js";import"./chunk-0eqk29xr.js";import"./chunk-z6xfknxe.js";import"./chunk-yjh47zv6.js";import"./chunk-rsh4rw9k.js";import"./chunk-q74xmdkf.js";import"./chunk-74yge4ka.js";import"./chunk-t48zm299.js";import"./chunk-7dqh8bqm.js";import"./chunk-d83bfr0b.js";import"./chunk-qa4efys0.js";import"./chunk-hrfh7wck.js";import"./chunk-h4j0nve8.js";import"./chunk-w63dfcx5.js";import"./chunk-n4gtzx4x.js";import"./chunk-5j0b62sr.js";import"./chunk-dd99sgf8.js";import"./chunk-na1cney5.js";import"./chunk-nh45xp7r.js";export{g as saveUserMessage,i as saveToolUse,j as saveToolResult,k as saveCompaction,h as saveAssistantMessage,d as isRootSystemPrompt,m as handleTaskListUpdate,n as handleSkillActivation,o as extractModelSwitch,r as executeLoopGenerator,f as drainLoop,c as checkStopHook,a as checkOutputRecovery,b as checkIncompleteIntent,q as checkAndCompactInLoop,p as applyToolDomainEffects,l as StreamingToolExecutor,e as ConversationState};
|
package/dist/chunk-4pamygxp.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{nf as a,of as b,pf as c}from"./chunk-gnffwz1c.js";import"./chunk-xzzrtwjx.js";import"./chunk-t48zm299.js";import"./chunk-7dqh8bqm.js";import"./chunk-d83bfr0b.js";import"./chunk-qa4efys0.js";import"./chunk-hrfh7wck.js";import"./chunk-h4j0nve8.js";import"./chunk-w63dfcx5.js";import"./chunk-n4gtzx4x.js";import"./chunk-5j0b62sr.js";import"./chunk-rzja9zza.js";import"./chunk-dd99sgf8.js";import"./chunk-na1cney5.js";import"./chunk-nh45xp7r.js";export{c as snapshotWorkspaceModelResources,b as resolveWorkspaceModelResources,a as cloneWorkspaceModelConfig};
|
package/dist/chunk-54qgtz5s.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{if as a,jf as b,kf as c}from"./chunk-rxbxvq67.js";import"./chunk-z6xfknxe.js";import"./chunk-w63dfcx5.js";import"./chunk-n4gtzx4x.js";import"./chunk-na1cney5.js";import"./chunk-nh45xp7r.js";export{b as resolveModelConfig,c as getModelDisplayName,a as getModelApiKeyEnvironmentVariable};
|
package/dist/chunk-729bsa9b.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ai as f,vi as a,wi as b,xi as c,yi as d,zi as e}from"./chunk-5j0b62sr.js";import"./chunk-nh45xp7r.js";export{b as getVersion,c as getPackageName,a as getPackageInfo,e as getFormattedVersion,d as getDescription,f as getCopyright};
|
package/dist/chunk-7jg5d0bz.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a,b as i,c as l,d as m}from"./chunk-qrj0d6a5.js";import"./chunk-7k5v52ct.js";import"./chunk-9318pj5k.js";import"./chunk-bss2kc28.js";import"./chunk-c9zd429t.js";import"./chunk-ax8tta9d.js";import"./chunk-1t097t5f.js";import"./chunk-z5rtzcm4.js";import"./chunk-wj403wry.js";import"./chunk-8eh0vp98.js";import"./chunk-b12wtvac.js";import"./chunk-ya5p7mx7.js";import"./chunk-tw63vfgh.js";import"./chunk-gbsxnvgg.js";import"./chunk-4jbpvete.js";import{qe as n}from"./chunk-4n4a3vm2.js";import"./chunk-ztp2ff01.js";import{Me as s}from"./chunk-ggf76jxn.js";import"./chunk-v508x7cg.js";import"./chunk-zj4kfyer.js";import"./chunk-0eqk29xr.js";import"./chunk-rxbxvq67.js";import"./chunk-z6xfknxe.js";import"./chunk-gnffwz1c.js";import"./chunk-kpxz0hbg.js";import"./chunk-yjh47zv6.js";import"./chunk-rsh4rw9k.js";import"./chunk-4cvmfne8.js";import"./chunk-q74xmdkf.js";import"./chunk-74yge4ka.js";import"./chunk-xzzrtwjx.js";import"./chunk-t48zm299.js";import"./chunk-7dqh8bqm.js";import"./chunk-d83bfr0b.js";import"./chunk-qa4efys0.js";import"./chunk-hrfh7wck.js";import"./chunk-h4j0nve8.js";import"./chunk-w63dfcx5.js";import"./chunk-n4gtzx4x.js";import"./chunk-5j0b62sr.js";import"./chunk-rzja9zza.js";import"./chunk-dd99sgf8.js";import"./chunk-na1cney5.js";import"./chunk-nh45xp7r.js";import v from"chalk";var C={command:"serve",describe:"Start a headless Blade server (no browser)",builder:a,handler:async(p)=>{let r=i(p);if(await s(),!process.env.BLADE_SERVER_PASSWORD)console.log(v.yellow("Warning: BLADE_SERVER_PASSWORD is not set; server is unsecured."));let e=await m.listenAsync(r);if(console.log(`Blade server listening on http://${e.hostname}:${e.port}`),r.hostname==="0.0.0.0"){let o=l();for(let g of o)console.log(` Network: http://${g}:${e.port}`)}let t,c=new Promise((o)=>{t=o}),d=n(async()=>{await e.stop(),t()});try{await c}finally{d(),await e.stop()}}};export{C as serveCommand};
|