cogpit 2.0.0 → 2.1.0
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/README.md +4 -4
- package/dist/cli.js +18606 -14058
- package/dist/web/assets/CommandPaletteHost-C-ParO8t.js +1 -0
- package/dist/web/assets/ConfigBrowser-Co4eu81Z.js +1 -0
- package/dist/web/assets/{HighlightedEditor-BPmH8BvC.js → HighlightedEditor-j81AHVZZ.js} +2 -2
- package/dist/web/assets/{KeyboardShortcutsDialog-CTbXz40Z.js → KeyboardShortcutsDialog-CluzMowK.js} +1 -1
- package/dist/web/assets/{MobileFileChanges-C5VoKbje.js → MobileFileChanges-DiOncgtO.js} +1 -1
- package/dist/web/assets/{PreviewPanel-DoAf1W2k.js → PreviewPanel-i4Yn68yV.js} +1 -1
- package/dist/web/assets/{ProjectFilesPanel-v_O7Awnm.js → ProjectFilesPanel-DPLFARWn.js} +3 -3
- package/dist/web/assets/ProjectSwitcherModal-BUXfKNzX.js +1 -0
- package/dist/web/assets/{TerminalOutput-SImEU6_6.js → TerminalOutput-DLRMV4_Y.js} +1 -1
- package/dist/web/assets/{ThemeSelectorModal-rjVBMgWC.js → ThemeSelectorModal-Cmx9maEq.js} +1 -1
- package/dist/web/assets/{WorkflowsPanel-JVqgKAzY.js → WorkflowsPanel-Cgm_kbHR.js} +1 -1
- package/dist/web/assets/WorktreePanel-h3DRRXek.js +1 -0
- package/dist/web/assets/{index-C5VcQtkE.js → index-Cgnw8FK8.js} +1 -1
- package/dist/web/assets/{index-S7UMnH_y.js → index-DUI5EaV5.js} +4 -4
- package/dist/web/assets/index-DocqIkvS.js +144 -0
- package/dist/web/assets/index-cjmnKg1q.js +1 -0
- package/dist/web/assets/session-parser.worker-DTq2tkdd.js +29 -0
- package/dist/web/assets/{vendor-ui-BmLOQ5Or.js → vendor-ui-CIBbYCBQ.js} +151 -146
- package/dist/web/index.html +3 -3
- package/package.json +3 -2
- package/dist/web/assets/CommandPaletteHost-ChH6w0Bx.js +0 -1
- package/dist/web/assets/ConfigBrowser-CPCH7_25.js +0 -1
- package/dist/web/assets/ProjectSwitcherModal-CSZrCd3X.js +0 -1
- package/dist/web/assets/WorktreePanel-D94-oAau.js +0 -1
- package/dist/web/assets/index-C00ZsBZl.js +0 -1
- package/dist/web/assets/index-CNV6e3p0.js +0 -138
- package/dist/web/assets/session-parser.worker-BhyaigCR.js +0 -22
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
(function(){"use strict";function L(t){return t.type==="user"}function W(t){return t.type==="assistant"}function V(t){return t.type==="progress"}function X(t){return t.type==="system"}function H(t){return t.type==="summary"}function wt(t){return t.type==="queue-operation"}function Y(t){return t.type==="attachment"}function St(t){return t.type==="user"&&t.isCompactSummary===!0}function tt(t){return t.type==="system"&&t.subtype==="compact_boundary"}const It=/<(agent-message|teammate-message)([^>]*)>([\s\S]*?)<\/\1>/g,Et=[/\bteammate_id=(?:"([^"]*)"|'([^']*)')/,/\bfrom=(?:"([^"]*)"|'([^']*)')/];function Pt(t){for(const e of Et){const n=t.match(e),o=(n==null?void 0:n[1])??(n==null?void 0:n[2]);if(o)return o}return null}function z(t){let e=null,n=!1;const o=t.replace(It,(l,p,h,k)=>(n=!0,e===null&&(e=Pt(h)),k.trim()));return{sender:e,matched:n,body:n?o.trim():t}}function et(t){return typeof t=="string"?t:t.filter(e=>e.type==="text").map(e=>e.text).join(`
|
|
2
|
-
`)}function nt(t){return t?typeof t=="string"?t:t.map(e=>e.type==="text"?e.text:"").filter(Boolean).join(`
|
|
3
|
-
`):""}function st(t){if(!(t!=null&&t.trim()))return!1;const e=t.trimStart();return e.startsWith("<")?!e.includes("<task-notification>")&&!e.startsWith("<system-reminder>")&&!e.startsWith("<local-command-"):!0}function Bt(t){if(!Y(t))return null;const e=t.attachment;if(!e||e.type!=="queued_command"||e.commandMode!=="prompt")return null;const n=e.prompt;if(n==null)return null;const o=typeof n=="string"?n:et(n);if(!st(o))return null;const l=e.origin;if((l==null?void 0:l.kind)==="peer"){const h=l.name??l.from??null;if(h)return{raw:o,sender:h,body:l.body??z(o).body}}if((l==null?void 0:l.kind)==="human")return{raw:o,sender:null,body:o};const p=z(o);return{raw:o,sender:p.sender,body:p.body}}const Ut=[["attributionAgent","agent"],["attributionSkill","skill"],["attributionPlugin","plugin"],["attributionMcpServer","mcpServer"],["attributionMcpTool","mcpTool"]];function Ft(t,e){let n=t;for(const[o,l]of Ut){const p=e[o];typeof p!="string"||!p||(n={...n,[l]:p})}return n}function Nt(t,e){return t?{input_tokens:t.input_tokens+e.input_tokens,output_tokens:t.output_tokens+e.output_tokens,cache_creation_input_tokens:(t.cache_creation_input_tokens??0)+(e.cache_creation_input_tokens??0),cache_read_input_tokens:(t.cache_read_input_tokens??0)+(e.cache_read_input_tokens??0),speed:e.speed??t.speed}:{...e}}const Rt=/^This session is being continued from a previous conversation[\s\S]*?\n\nSummary:\s*\n/,$t=/\n+(?:If you need specific details from before compaction|(?:Please c|C)ontinue the conversation from where it left off)[\s\S]*$/;function Ot(t){return et(t).trim().replace(Rt,"").replace($t,"").trim()}function Dt(t){if(t)return{trigger:t.trigger,preTokens:t.preTokens,postTokens:t.postTokens}}function q(t,e){return{id:t.uuid??crypto.randomUUID(),userMessage:e,contentBlocks:[],thinking:[],assistantText:[],toolCalls:[],subAgentActivity:[],timestamp:t.timestamp??"",durationMs:null,tokenUsage:null,model:null}}function jt(t){const e=[];let n=0;for(;n<t.length;){const o=t[n];if(o.kind==="tool_calls"){const l=o.toolCalls.findIndex(p=>p.name==="EnterPlanMode");if(l!==-1){const p=o.toolCalls[l],h=String(p.input.plan??""),k=o.timestamp,b=o.toolCalls.slice(0,l);b.length>0&&e.push({kind:"tool_calls",toolCalls:b,timestamp:o.timestamp});const T=[],A=o.toolCalls.slice(l+1),w=A.findIndex(x=>x.name==="ExitPlanMode");if(w!==-1){T.push(...A.slice(0,w));const x=A[w],P=x.input.path?String(x.input.path):void 0;let y="pending";x.result!==null&&(y=x.isError?"rejected":"approved"),e.push({kind:"plan_mode",plan:h,planFilePath:P,status:y,toolCalls:T,timestamp:k});const S=A.slice(w+1);S.length>0&&e.push({kind:"tool_calls",toolCalls:S,timestamp:o.timestamp}),n++;continue}else{T.push(...A);let x,P,y="pending",S=n+1;const C=[];for(;S<t.length;){const v=t[S];if(v.kind==="tool_calls"){const E=v.toolCalls.findIndex(B=>B.name==="ExitPlanMode");if(E!==-1){T.push(...v.toolCalls.slice(0,E)),x=v.toolCalls[E],P=x.input.path?String(x.input.path):void 0,x.result!==null&&(y=x.isError?"rejected":"approved");const B=v.toolCalls.slice(E+1);e.push({kind:"plan_mode",plan:h,planFilePath:P,status:y,toolCalls:T,timestamp:k}),e.push(...C),B.length>0&&e.push({kind:"tool_calls",toolCalls:B,timestamp:v.timestamp}),n=S+1;break}else T.push(...v.toolCalls),S++}else if(v.kind==="hook_event"||v.kind==="text"||v.kind==="queued_prompt"||v.kind==="agent_message")C.push(v),S++;else break}x||(e.push({kind:"plan_mode",plan:h,planFilePath:void 0,status:"pending",toolCalls:T,timestamp:k}),e.push(...C),n=S);continue}}}e.push(o),n++}return e}function Lt(t){return t.contentBlocks.some(e=>e.kind==="agent_message")?{...t,contentBlocks:t.contentBlocks.map(e=>{if(e.kind!=="agent_message")return e;const{reply:n,...o}=e;return o})}:t}function ot(t){var o;const e=t.map(Lt),n=new Map;for(const l of e)for(const p of l.contentBlocks){if(p.kind==="agent_message"){const h=n.get(p.sender);h?h.push(p):n.set(p.sender,[p]);continue}if(p.kind==="tool_calls")for(const h of p.toolCalls){if(h.name!=="SendMessage")continue;const k=h.input.to;if(typeof k!="string"||!k)continue;const b=(o=n.get(k))==null?void 0:o.shift();if(!b)continue;const T=h.input.summary;b.reply={summary:typeof T=="string"?T:"",timestamp:h.timestamp||p.timestamp||""}}}return e}function Wt(t){const e=[];let n=!1;for(let o=0;o<t.length;o++){const l=t[o];if(H(l)||tt(l)){n=!1;continue}if(L(l)&&!l.isMeta){const p=l.message.content;if(n&&Array.isArray(p)&&p.some(k=>k.type==="tool_result"))continue;e.push(o),n=!0;continue}W(l)&&!n&&(e.push(o),n=!0)}return e}function it(t){var B,F;const e=[];let n=null,o=null;function l(u){o&&(u.compactionSummary=o.summary,u.compactionMeta=o.meta,o=null)}let p=null;const h=new Map,k=new Set,b=new Map,T=new Map,A=new Set,w=new Map,x=[],P=new Map;function y(u,r){let s=P.get(u);s||(s=new Map,P.set(u,s)),s.set(r,(s.get(r)??0)+1)}function S(u,r){const s=P.get(u),c=s==null?void 0:s.get(r);return!s||!c?!1:(c===1?s.delete(r):s.set(r,c-1),!0)}function C(){for(const u of x)u.turn.contentBlocks.push(u.sender?{kind:"agent_message",sender:u.sender,body:u.body,timestamp:u.timestamp}:{kind:"queued_prompt",content:u.content,timestamp:u.timestamp});x.length=0}function v(u){if(!n)return;const r=b.get(u);if(!r||r.length===0)return;n.subAgentActivity.push(...r),b.delete(u);const s=A.has(u)?"background_agent":"sub_agent",c=T.get(u);if(c)c.messages.push(...r);else{const i={kind:s,messages:[...r]};n.contentBlocks.push(i),T.set(u,i)}}function E(){if(n){for(const u of n.toolCalls)v(u.id);for(const[u]of b)v(u);for(const u of n.contentBlocks)if(u.kind==="hook_event")for(const r of u.events){if(!(r.eventName==="PostToolUse"||r.eventName.startsWith("PostToolUse:"))||!r.toolUseId)continue;const c=n.toolCalls.find(i=>i.id===r.toolUseId);c&&(r.updatedToolOutput&&(c.outputReplacedByHook=!0),r.durationMs!==void 0&&(c.hookDurationMs=(c.hookDurationMs??0)+r.durationMs))}n.contentBlocks=jt(n.contentBlocks),e.push(n),n=null,T.clear()}}for(const u of t){if(H(u)){E(),o={summary:u.summary};continue}if(tt(u)){E(),o={meta:Dt(u.compactMetadata)};continue}if(St(u)){E(),n=q(u,null),n.compactionSummary=Ot(u.message.content),n.compactionMeta=o==null?void 0:o.meta,o=null;continue}if(X(u)&&u.subtype==="away_summary"&&u.content){p={content:u.content,timestamp:u.timestamp};continue}if(wt(u)){if(n&&u.operation==="enqueue"&&st(u.content)){const r=z(u.content);x.push({turn:n,content:u.content,timestamp:u.timestamp,sender:r.sender,body:r.body}),y(n,u.content)}continue}if(Y(u)){const r=Bt(u);n&&r!==null&&!S(n,r.raw)&&x.push({turn:n,content:r.raw,timestamp:((B=u.attachment)==null?void 0:B.timestamp)??u.timestamp,sender:r.sender,body:r.body});continue}if(x.length>0){const r=L(u)&&!u.isMeta?u.message.content:null;if(typeof r=="string"){const s=x.findIndex(c=>c.content===r);if(s>=0){const[c]=x.splice(s,1);S(c.turn,c.content)}}C()}if(L(u)&&!u.isMeta){const r=u.message.content;if(typeof r!="string"&&Array.isArray(r)&&r.some(c=>c.type==="tool_result")&&n){for(const i of r)if(i.type==="tool_result"){const a=h.get(i.tool_use_id);a&&(a.turn.toolCalls[a.index].result=nt(i.content),a.turn.toolCalls[a.index].isError=i.is_error===!0,h.delete(i.tool_use_id))}const c=u.toolUseResult;if(c!=null&&c.agentId){const i=((F=r.find(_=>_.type==="tool_result"))==null?void 0:F.tool_use_id)??"",a=w.get(i),m=A.has(i),d=[];if(Array.isArray(c.content))for(const _ of c.content)_.type==="text"&&d.push(_.text);const f={agentId:c.agentId,parentToolUseId:i||void 0,agentName:(a==null?void 0:a.name)??null,subagentType:(a==null?void 0:a.subagentType)??null,type:"assistant",content:c.content,toolCalls:[],thinking:[],text:d,timestamp:u.timestamp??"",tokenUsage:c.usage?{input_tokens:c.usage.input_tokens??0,output_tokens:c.usage.output_tokens??0,cache_creation_input_tokens:c.usage.cache_creation_input_tokens??0,cache_read_input_tokens:c.usage.cache_read_input_tokens??0}:null,model:null,isBackground:m,prompt:c.prompt,status:c.status,durationMs:c.totalDurationMs,toolUseCount:c.totalToolUseCount};if(!T.get(i)){n.subAgentActivity.push(f);const M={kind:m?"background_agent":"sub_agent",messages:[f]};n.contentBlocks.push(M),T.set(i,M)}}continue}E(),n=q(u,u.message.content),l(n),p&&(n.contentBlocks.push({kind:"recap",content:p.content,timestamp:p.timestamp}),p=null);continue}if(W(u)){let r=function(){m.length>0&&(d.contentBlocks.push({kind:"tool_calls",toolCalls:[...m],timestamp:i}),m.length=0)},s=function(){if(a.length>0){const f=d.contentBlocks[d.contentBlocks.length-1];f&&f.kind==="thinking"?f.blocks.push(...a):d.contentBlocks.push({kind:"thinking",blocks:[...a],timestamp:i}),a.length=0}};n||(n=q(u,null),l(n)),n.model=u.message.model,u.effort&&(n.effort=u.effort),n.attribution=Ft(n.attribution,u);const c=u.message.id;k.has(c)||(k.add(c),n.tokenUsage=Nt(n.tokenUsage,u.message.usage));const i=u.timestamp??"",a=[],m=[],d=n;for(const f of u.message.content)if(f.type==="thinking"){r();const g=f;if(!g.thinking)continue;n.thinking.push(g),a.push(g)}else if(f.type==="text"){r(),s();const g=/<thinking>([\s\S]*?)<\/thinking>/g;let _=f.text,M;for(;(M=g.exec(f.text))!==null;){const U=M[1].trim();if(U){const N={type:"thinking",thinking:U,signature:""};n.thinking.push(N),n.contentBlocks.push({kind:"thinking",blocks:[N],timestamp:i})}_=_.replace(M[0],"")}if(_=_.trim(),_){n.assistantText.push(_);const U=n.contentBlocks[n.contentBlocks.length-1];U&&U.kind==="text"?U.text.push(_):n.contentBlocks.push({kind:"text",text:[_],timestamp:i})}}else if(f.type==="tool_use"){s();const g={id:f.id,name:f.name,input:f.input,result:null,isError:!1,timestamp:u.timestamp??""},_=n.toolCalls.length;if(n.toolCalls.push(g),m.push(g),h.set(f.id,{turn:n,index:_}),f.name==="Task"||f.name==="Agent"){const M=f.input;M.run_in_background===!0&&A.add(f.id),w.set(f.id,{name:M.name??null,subagentType:M.subagent_type??null})}}s(),r();continue}if(V(u)&&u.data.type==="agent_progress"){const r=u.data,s=u.parentToolUseID??"";let c=null;if(r.message.type==="assistant"){const f=r.message.message,g=f.id,_=f.usage;_&&g&&!k.has(g)&&(k.add(g),c={input_tokens:_.input_tokens??0,output_tokens:_.output_tokens??0,cache_creation_input_tokens:_.cache_creation_input_tokens??0,cache_read_input_tokens:_.cache_read_input_tokens??0})}const i=r.message.type==="assistant"?r.message.message.model??null:null,a=w.get(s),m={agentId:r.agentId,parentToolUseId:s||void 0,agentName:(a==null?void 0:a.name)??null,subagentType:(a==null?void 0:a.subagentType)??null,type:r.message.type,content:r.message.message.content,toolCalls:[],thinking:[],text:[],timestamp:r.message.timestamp??u.timestamp??"",tokenUsage:c,model:i,isBackground:A.has(s)};if(r.message.type==="assistant"){const f=r.message.message.content;if(Array.isArray(f))for(const g of f)g.type==="thinking"?m.thinking.push(g.thinking):g.type==="text"?m.text.push(g.text):g.type==="tool_use"&&m.toolCalls.push({id:g.id,name:g.name,input:g.input,result:null,isError:!1,timestamp:r.message.timestamp??u.timestamp??""})}else if(r.message.type==="user"){const f=r.message.message.content;if(Array.isArray(f)){for(const g of f)if(g.type==="tool_result"){const _=b.get(s);if(_)for(const M of _){const U=M.toolCalls.find(N=>N.id===g.tool_use_id);U&&(U.result=nt(g.content),U.isError=g.is_error===!0)}}}}let d=b.get(s);d||(d=[],b.set(s,d)),d.push(m),n&&v(s);continue}if(V(u)&&u.data.type==="hook_progress"){const r=u.data,s=String(r.hook_event_name??r.hookEvent??"unknown"),c=r.hookSpecificOutput,i={eventName:s,source:r.source!==void 0?String(r.source):void 0,toolName:r.tool_name!==void 0?String(r.tool_name):void 0,toolUseId:r.tool_use_id!==void 0?String(r.tool_use_id):void 0,command:r.command!==void 0?String(r.command):void 0,output:r.output!==void 0?String(r.output):void 0,stderr:r.stderr!==void 0?String(r.stderr):void 0,exitCode:r.exit_code!==void 0?Number(r.exit_code):void 0,decision:r.decision!==void 0?String(r.decision):void 0,durationMs:r.duration_ms!==void 0?Number(r.duration_ms):void 0,updatedToolOutput:(c==null?void 0:c.updatedToolOutput)!==void 0?String(c.updatedToolOutput):void 0,sessionTitle:(c==null?void 0:c.sessionTitle)!==void 0?String(c.sessionTitle):void 0,worktreePath:(c==null?void 0:c.worktreePath)!==void 0?String(c.worktreePath):void 0,timestamp:u.timestamp??""};if(n){const a=n.contentBlocks[n.contentBlocks.length-1];a&&a.kind==="hook_event"?a.events.push(i):n.contentBlocks.push({kind:"hook_event",events:[i],timestamp:u.timestamp})}continue}if(X(u)&&u.subtype==="turn_duration"&&n){n.durationMs=u.durationMs??null;continue}}return C(),E(),ot(e)}function at(t,e){let n=0;for(const o of t)e[o.name]=(e[o.name]??0)+1,o.isError&&n++;return n}function rt(t,e){t.totalInputTokens+=e.input_tokens,t.totalOutputTokens+=e.output_tokens,t.totalCacheCreationTokens+=e.cache_creation_input_tokens??0,t.totalCacheReadTokens+=e.cache_read_input_tokens??0}function J(t){return{totalInputTokens:0,totalOutputTokens:0,totalCacheCreationTokens:0,totalCacheReadTokens:0,toolCallCounts:{},errorCount:0,totalDurationMs:0,turnCount:t}}function K(t){const e=J(t.length);for(const n of t){n.tokenUsage&&rt(e,n.tokenUsage),n.durationMs&&(e.totalDurationMs+=n.durationMs),e.errorCount+=at(n.toolCalls,e.toolCallCounts);for(const o of n.subAgentActivity)e.errorCount+=at(o.toolCalls,e.toolCallCounts),o.tokenUsage&&rt(e,o.tokenUsage)}return e}const lt={0:"\0",b:"\b",f:"\f",n:`
|
|
4
|
-
`,r:"\r",t:" ",v:"\v"};function ct(t,e){const n=t[e];if(n!=='"'&&n!=="'"&&n!=="`")return null;let o="",l=e+1;for(;l<t.length;){const p=t[l];if(p===n)return{endIndex:l+1,value:o};if(p!=="\\"){o+=p,l++;continue}if(l++,l>=t.length)return null;const h=t[l];if(h in lt){o+=lt[h],l++;continue}if(h===`
|
|
5
|
-
`){l++;continue}if(h==="\r"){l+=t[l+1]===`
|
|
6
|
-
`?2:1;continue}if(h==="x"&&/^[0-9a-fA-F]{2}$/.test(t.slice(l+1,l+3))){o+=String.fromCharCode(Number.parseInt(t.slice(l+1,l+3),16)),l+=3;continue}if(h==="u"){const k=t.slice(l+1).match(/^\{([0-9a-fA-F]+)\}/);if(k){const T=Number.parseInt(k[1],16);if(Number.isFinite(T)&&T<=1114111){o+=String.fromCodePoint(T),l+=k[0].length+1;continue}}const b=t.slice(l+1,l+5);if(/^[0-9a-fA-F]{4}$/.test(b)){o+=String.fromCharCode(Number.parseInt(b,16)),l+=5;continue}}o+=h,l++}return null}function ut(t){return t.includes("*** Begin Patch")&&t.includes("*** End Patch")}function zt(t){if(!t.includes("apply_patch")||!t.includes("*** Begin Patch"))return[];const e=new Map;for(let h=0;h<t.length;h++){const k=ct(t,h);if(k){if(ut(k.value)){const b=t.slice(0,h).match(/(?:^|[;\n])\s*(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*$/);b&&e.set(b[1],k.value)}h=k.endIndex-1}}const n=[],o=new Set,l=/\btools\s*\.\s*apply_patch\s*\(/g;let p;for(;(p=l.exec(t))!==null;){let h=p.index+p[0].length;for(;/\s/.test(t[h]??"");)h++;const k=ct(t,h),b=k?null:t.slice(h).match(/^([A-Za-z_$][\w$]*)/),T=(k==null?void 0:k.value)??(b?e.get(b[1]):void 0);!T||!ut(T)||o.has(T)||(o.add(T),n.push(T))}return n}function pt(t,e){if(!e||t.startsWith("/")||/^[A-Za-z]:[\\/]/.test(t))return t;const n=e.replace(/[\\/]+$/,""),o=t.replace(/^\.[\\/]/,"");return/^[A-Za-z]:[\\/]/.test(e)?`${n}\\${o.replace(/\//g,"\\")}`:`${n}/${o}`}function dt(t,e,n,o=""){var b,T;const l=[],p=/^\*\*\*\s+(Update File|Add File|Delete File):\s*(.+)$/gm,h=[];let k;for(;(k=p.exec(t))!==null;)h.push({action:k[1],filePath:k[2].trim(),headerIdx:k.index,startIdx:k.index+k[0].length});for(let A=0;A<h.length;A++){const w=h[A],x=A+1<h.length?h[A+1].headerIdx:t.length,P=t.slice(w.startIdx,x),y=(T=(b=P.match(/^\*\*\*\s+Move to:\s*(.+)$/m))==null?void 0:b[1])==null?void 0:T.trim(),S=pt(w.filePath,o),C=pt(y||w.filePath,o),v=P.split(/^@@.*$/m).filter(u=>u.trim()),E=[],B=[];for(const u of v)for(const r of u.split(`
|
|
7
|
-
`))r.startsWith("-")?E.push(r.slice(1)):r.startsWith("+")?B.push(r.slice(1)):r.startsWith(" ")&&(E.push(r.slice(1)),B.push(r.slice(1)));const F=h.length>1?`${e}:file-${A}`:e;w.action==="Add File"?l.push({id:F,name:"Write",input:{file_path:C,content:B.join(`
|
|
8
|
-
`)},result:null,isError:!1,timestamp:n}):w.action==="Delete File"?l.push({id:F,name:"Edit",input:{file_path:C,old_string:E.join(`
|
|
9
|
-
`),new_string:""},result:null,isError:!1,timestamp:n}):l.push({id:F,name:"Edit",input:{file_path:C,...y?{old_path:S}:{},old_string:E.join(`
|
|
10
|
-
`),new_string:B.join(`
|
|
11
|
-
`)},result:null,isError:!1,timestamp:n})}return l}function qt(t,e,n,o,l=""){return t==="apply_patch"?dt(e,n,o,l):zt(e).flatMap((p,h)=>dt(p,`${n}:patch-${h}`,o,l))}function Jt(t,e,n){var k;if(!e||!/(?:apply[_ ]patch|invalid patch|invalid context|failed to (?:apply|find)|could not apply)/i.test(t))return new Set;const o=new Map;for(const b of n){const T=(k=b.id.match(/:patch-(\d+)(?::file-\d+)?$/))==null?void 0:k[1];if(T===void 0)continue;const A=Number(T),w=o.get(A)??[];w.push(b),o.set(A,w)}if(o.size===0)return new Set(n.map(b=>b.id));const l=t.toLowerCase().replaceAll("\\","/"),p=new Set;for(const[b,T]of o)T.some(A=>{const w=String(A.input.file_path??"").toLowerCase().replaceAll("\\","/");if(!w)return!1;const P=w.split("/").filter(Boolean).slice(-2).join("/");return l.includes(w)||P.includes("/")&&l.includes(P)})&&p.add(b);for(const b of l.matchAll(/\bpatch\s*(?:#|-)?\s*(\d+)\b/g)){const T=Number(b[1]);o.has(T)&&p.add(T)}p.size===0&&p.add(Math.max(...o.keys()));const h=Math.min(...p);for(const b of o.keys())b>=h&&p.add(b);return new Set([...p].flatMap(b=>{var T;return((T=o.get(b))==null?void 0:T.map(A=>A.id))??[]}))}function Z(t){return typeof t=="object"&&t!==null}const Kt=new Map([["spawn_agent","spawn_agent"],["spawnAgent","spawn_agent"],["wait_agent","wait_agent"],["waitAgent","wait_agent"],["send_message","send_message"],["sendMessage","send_message"],["followup_task","followup_task"],["followupTask","followup_task"],["list_agents","list_agents"],["listAgents","list_agents"],["interrupt_agent","interrupt_agent"],["interruptAgent","interrupt_agent"]]);function Zt(t){const e=t.split(/(?:__|[.:/])+/).filter(Boolean).at(-1)??t;return Kt.get(e)??t}function G(t){if(!t)return!1;const e=t.match(/Process exited with code (\d+)/);if(e)return e[1]!=="0";const n=t.replace(/\b0\s+(?:fail(?:ed|ures?)?|errors?)\b/gi,"").replace(/\bno\s+(?:failures?|errors?)\b/gi,"");return/\b(error|failed|exception)\b/i.test(n)}function Gt(t){return{todos:(Array.isArray(t.plan)?t.plan:[]).filter(o=>Z(o)).map(o=>({content:typeof o.step=="string"?o.step:"",status:typeof o.status=="string"?o.status:"pending",activeForm:typeof o.step=="string"?o.step:""}))}}function Qt(t){return typeof t=="string"?t:Array.isArray(t)?t.filter(e=>Z(e)&&typeof e.text=="string").map(e=>e.text).join(""):""}function ft(t){const e=Qt(t);if(!e)return{text:"",isError:!1};try{const n=JSON.parse(e),o=typeof n.output=="string"?n.output:e,l=Z(n.metadata)?n.metadata:null,p=l?l.exit_code!==0&&l.exit_code!==void 0:G(o);return{text:o,isError:p}}catch{return{text:e,isError:G(e)}}}const Vt=["# AGENTS.md instructions for ","<recommended_plugins>","<environment_context>","<permissions instructions>","<collaboration_mode>","<skills_instructions>"];function Xt(t){var e,n;return((n=(e=globalThis.crypto)==null?void 0:e.randomUUID)==null?void 0:n.call(e))??`${t}-${Math.random().toString(36).slice(2,10)}`}function mt(t){try{return JSON.parse(t)}catch{return null}}function I(t){return typeof t=="object"&&t!==null}function gt(t){return!t||typeof t.type!="string"?!1:t.type==="session_meta"||t.type==="turn_context"||t.type==="event_msg"||t.type==="response_item"||t.type==="inter_agent_communication_metadata"||t.type==="compacted"||t.type==="world_state"}function D(t,e){const n=t==null?void 0:t.content;return Array.isArray(n)?n.filter(o=>I(o)&&o.type===e&&typeof o.text=="string").map(o=>o.text).join(`
|
|
12
|
-
`).trim():""}const Ht=/^data:(image\/(?:png|jpeg|gif|webp));base64,(.+)$/is,Yt=/^data:(audio\/(?:wav|x-wav|mpeg|mp4|webm|ogg));base64,(.+)$/is;function ht(t){if(typeof t!="string")return null;const e=Ht.exec(t);return!(e!=null&&e[1])||!e[2]?null:{type:"image",source:{type:"base64",media_type:e[1].toLowerCase(),data:e[2]}}}function _t(t){if(typeof t!="string")return null;const e=Yt.exec(t);return!(e!=null&&e[1])||!e[2]?null:{type:"audio",source:{type:"base64",media_type:e[1].toLowerCase(),data:e[2]}}}function te(t){return Array.isArray(t.images)?t.images.map(ht).filter(e=>e!==null):[]}function ee(t){return Array.isArray(t.audio)?t.audio.map(_t).filter(e=>e!==null):[]}function yt(t){return Array.isArray(t.content)?t.content.filter(e=>I(e)&&e.type==="input_image").map(e=>ht(e.image_url)).filter(e=>e!==null):[]}function kt(t){return Array.isArray(t.content)?t.content.filter(e=>I(e)&&e.type==="input_audio").map(e=>_t(e.audio_url)).filter(e=>e!==null):[]}function Tt(t,e,n=[],o=[],l=[]){const p=[...o.map(k=>`
|
|
13
|
-
`),...l.map(k=>`
|
|
14
|
-
[audio attachment](<${k}>)`)].join(""),h=t+p;return e.length===0&&n.length===0?h:[...e,...n,...h?[{type:"text",text:h}]:[]]}function ne(t){var h,k;const e=D(t,"input_text");if(!e)return{messageType:null,text:""};const n=e.match(/\r?\nPayload:\s*(?:\r?\n|$)/);if(!e.startsWith("Message Type:")||!n||n.index===void 0)return{messageType:null,text:e.trim()};const l=((k=(h=e.slice(0,n.index).match(/^Message Type:\s*([^\r\n]+)/))==null?void 0:h[1])==null?void 0:k.trim().toUpperCase())??null,p=e.slice(n.index+n[0].length).trim();return{messageType:l,text:p}}function $(t){return t.split(/[\\/]/).filter(Boolean).at(-1)??null}function se(t){if(typeof t!="string")return"";const e=t.trim();return/^gAAAAA[A-Za-z0-9_-]+$/.test(e)?"":e}function Q(t){const e=t.trim();return!e||Vt.some(n=>e.startsWith(n))?"":e}function oe(t,e){return t?{input_tokens:t.input_tokens+e.input_tokens,output_tokens:t.output_tokens+e.output_tokens,cache_creation_input_tokens:(t.cache_creation_input_tokens??0)+(e.cache_creation_input_tokens??0),cache_read_input_tokens:(t.cache_read_input_tokens??0)+(e.cache_read_input_tokens??0)}:{...e}}function ie(t){if(!I(t))return null;const e=typeof t.input_tokens=="number"?t.input_tokens:0,n=typeof t.output_tokens=="number"?t.output_tokens:0,o=typeof t.cache_write_input_tokens=="number"?t.cache_write_input_tokens:typeof t.cache_creation_input_tokens=="number"?t.cache_creation_input_tokens:0,l=typeof t.cached_input_tokens=="number"?Math.max(0,t.cached_input_tokens):null,p=l??(typeof t.cache_read_input_tokens=="number"?t.cache_read_input_tokens:0),h=l===null?e:Math.max(0,e-l);return h===0&&n===0&&o===0&&p===0?null:{input_tokens:h,output_tokens:n,cache_creation_input_tokens:o,cache_read_input_tokens:p}}function ae(t,e,n){if(!e)return;t.assistantText.push(e);const o=t.contentBlocks[t.contentBlocks.length-1];if(o&&o.kind==="text"){o.text.push(e);return}t.contentBlocks.push({kind:"text",text:[e],timestamp:n})}function re(t,e,n){if(!e)return;const o={type:"thinking",thinking:e,signature:""};t.thinking.push(o);const l=t.contentBlocks[t.contentBlocks.length-1];if(l&&l.kind==="thinking"){l.blocks.push(o);return}t.contentBlocks.push({kind:"thinking",blocks:[o],timestamp:n})}function R(t,e,n){t.toolCalls.push(e);const o=t.contentBlocks[t.contentBlocks.length-1];if(o&&o.kind==="tool_calls"&&o.timestamp===n){o.toolCalls.push(e);return}t.contentBlocks.push({kind:"tool_calls",toolCalls:[e],timestamp:n})}function j(t,e,n){if(!e||!(e.userMessage!==null||e.assistantText.length>0||e.toolCalls.length>0||e.thinking.length>0||e.subAgentActivity.length>0))return null;if(e.timestamp&&n){const l=new Date(e.timestamp).getTime(),p=new Date(n).getTime();Number.isFinite(l)&&Number.isFinite(p)&&p>=l&&(e.durationMs=p-l)}return t.push(e),null}function bt(t){if(typeof t!="string"||!t.trim())return{};try{const e=JSON.parse(t);return I(e)?e:{value:e}}catch{return{raw:t}}}function O(t){if(typeof t=="string")return t;try{return JSON.stringify(t)}catch{return String(t??"")}}function Ct(...t){return t.find(e=>typeof e=="string")}function le(t){return t.startsWith("exec-")}function ce(t){if(!I(t))return{text:O(t),isError:!1};if("Err"in t)return{text:O(t.Err),isError:!0};const e=I(t.Ok)?t.Ok:null;if(!e)return{text:O(t),isError:!1};const n=ft(e.content);return{text:n.text||(e.structuredContent!==void 0?O(e.structuredContent):O(e)),isError:e.isError===!0||n.isError}}function ue(t,e,n){return{id:t?`${t}@${e}`:Xt("codex-turn"),userMessage:null,contentBlocks:[],thinking:[],assistantText:[],toolCalls:[],subAgentActivity:[],timestamp:e,durationMs:null,tokenUsage:null,model:n}}function Mt(t){return t.type==="event_msg"&&I(t.payload)&&t.payload.type==="user_message"&&typeof t.payload.message=="string"?Q(t.payload.message):t.type==="response_item"&&I(t.payload)&&t.payload.type==="message"&&t.payload.role==="user"?Q(D(t.payload,"input_text")):""}function pe(t,e){if(t.type==="session_meta"||t.type==="event_msg"&&(e==null?void 0:e.type)==="task_started")return!1;if(t.type==="response_item"&&(e==null?void 0:e.type)==="message"){if(e.role==="developer"||e.role==="system")return!1;if(e.role==="user")return Mt(t)!==""||yt(e).length>0||kt(e).length>0}return!0}function de(t){let e="",n="",o="",l="",p="",h,k="",b="",T="",A="",w=0,x=!1,P=null,y="/root",S="";for(const C of t){if(!I(C.payload))continue;if(C.type==="session_meta"){if(e||(e=typeof C.payload.id=="string"?C.payload.id:""),n||(n=typeof C.payload.cli_version=="string"?C.payload.cli_version:""),l||(l=typeof C.payload.cwd=="string"?C.payload.cwd:""),!h&&I(C.payload.branchedFrom)){const F=typeof C.payload.branchedFrom.sessionId=="string"?C.payload.branchedFrom.sessionId:"";F&&(h={sessionId:F,turnIndex:typeof C.payload.branchedFrom.turnIndex=="number"?C.payload.branchedFrom.turnIndex:null})}const E=I(C.payload.source)?C.payload.source:null;if(E&&I(E.subagent)){x=!0;const F=I(E.subagent.thread_spawn)?E.subagent.thread_spawn:null;F&&typeof F.agent_path=="string"&&(y=F.agent_path)}typeof C.payload.forked_from_id=="string"&&C.payload.forked_from_id&&(P=C.payload.forked_from_id);const B=I(C.payload.git)?C.payload.git:null;o||(o=B&&typeof B.branch=="string"?B.branch:"")}C.type==="turn_context"&&(p||(p=typeof C.payload.model=="string"?C.payload.model:""),l||(l=typeof C.payload.cwd=="string"?C.payload.cwd:""));const v=Mt(C);v&&v!==S&&(k||(k=v),b=v,S=v,w++,T||(T=C.timestamp??""),A=C.timestamp??A)}return A===""&&(A=T),{sessionId:e,version:n,gitBranch:o,cwd:l,model:p,slug:"",name:"",branchedFrom:h,firstUserMessage:k,lastUserMessage:b,timestamp:T,lastTimestamp:A,turnCount:w,isSubagent:x,parentSessionId:P,agentPath:y}}function xt(t){for(const e of t.split(`
|
|
15
|
-
`)){const n=e.trim();if(n)return gt(mt(n))}return!1}function At(t,e){const n=t.split(`
|
|
16
|
-
`).map(r=>r.trim()).filter(Boolean).map(mt).filter(gt),o=de(n),l=[],p=new Map,h=new Map,k=new Map,b=new Map,T=new Map,A=new Map,w=new Map,x=new Map;function P(r,s,c,i={}){const a=T.get(r);let m=x.get(r);if(!m){const f={agentId:r,parentToolUseId:(a==null?void 0:a.parentToolCallId)||void 0,agentName:(a==null?void 0:a.nickname)??(a!=null&&a.agentPath?$(a.agentPath):null),subagentType:(a==null?void 0:a.agentType)??null,type:"assistant",content:null,toolCalls:[],thinking:[],text:[],timestamp:(a==null?void 0:a.timestamp)??c,tokenUsage:null,model:(a==null?void 0:a.model)??null,isBackground:!1,prompt:(a==null?void 0:a.message)||void 0,status:i.status??"running"};s.subAgentActivity.push(f);const g=s.contentBlocks[s.contentBlocks.length-1];(g==null?void 0:g.kind)==="sub_agent"?g.messages.push(f):s.contentBlocks.push({kind:"sub_agent",messages:[f],timestamp:c}),m={message:f,turn:s},x.set(r,m)}const d=m.message;if(a&&(d.parentToolUseId=a.parentToolCallId||d.parentToolUseId,d.agentName=a.nickname??(a.agentPath?$(a.agentPath):d.agentName),d.subagentType=a.agentType,d.model=a.model,d.prompt=a.message||d.prompt),i.text&&!d.text.includes(i.text)&&(d.text.push(i.text),d.content=d.text.join(`
|
|
17
|
-
|
|
18
|
-
`)),i.status){const f=new Set(["completed","failed","interrupted"]);if(i.status==="running"&&d.status&&f.has(d.status)||(d.status=i.status),f.has(i.status)&&d.timestamp&&c){const g=new Date(d.timestamp).getTime(),_=new Date(c).getTime();Number.isFinite(g)&&Number.isFinite(_)&&_>=g&&(d.durationMs=_-g)}}return d}let y=null,S=null,C=o.model||null,v="",E=null,B=!1;function F(r,s,c){const i=ue(r,s,c);return B||(i.isFragment=!0),E&&(i.compactionSummary=E,E=null),i}function u(r,s,c,i,a){const m=h.get(s);if(m){m.input={...m.input,...c},m.result=i,m.isError=i==="failed";return}const d={id:s,name:"WebSearch",input:c,result:i,isError:i==="failed",timestamp:a};h.set(s,d),R(r,d,a)}for(const r of n){const s=I(r.payload)?r.payload:void 0,c=r.timestamp??"";if(r.type==="compacted"){y=j(l,y,v),E="Conversation compacted",v=c;continue}if(r.type!=="world_state"){if(r.type==="turn_context"){y=j(l,y,v),S=typeof(s==null?void 0:s.turn_id)=="string"?s.turn_id:null,C=typeof(s==null?void 0:s.model)=="string"?s.model:C,v=c,B=!0;continue}if(r.type==="event_msg"&&(s==null?void 0:s.type)==="user_message"&&typeof s.message=="string"){y&&(y.assistantText.length>0||y.toolCalls.length>0||y.thinking.length>0)&&(y=j(l,y,v)),B=!0,y??(y=F(S,c,C));const i=(Array.isArray(s.local_images)?s.local_images:[]).filter(m=>typeof m=="string"&&m.length>0),a=(Array.isArray(s.local_audio)?s.local_audio:[]).filter(m=>typeof m=="string"&&m.length>0);y.userMessage=Tt(s.message,te(s),ee(s),i,a),y.isFragment=!1,y.timestamp=y.timestamp||c,v=c;continue}if(!(!y&&!pe(r,s))){if(y??(y=F(S,c,C)),!y.model&&C&&(y.model=C),y.timestamp||(y.timestamp=c),c&&(v=c),r.type==="event_msg"&&(s==null?void 0:s.type)==="token_count"){const i=I(s.info)?s.info:null,a=i?ie(i.last_token_usage):null;a&&(y.tokenUsage=oe(y.tokenUsage,a));continue}if(r.type==="event_msg"&&(s==null?void 0:s.type)==="web_search_end"&&typeof s.call_id=="string"){const i={};typeof s.query=="string"&&s.query&&(i.query=s.query),I(s.action)&&(i.action=s.action),u(y,s.call_id,i,"completed",c);continue}if(r.type==="event_msg"&&(s==null?void 0:s.type)==="mcp_tool_call_end"&&typeof s.call_id=="string"&&I(s.invocation)){const i=s.invocation,a=typeof i.server=="string"?i.server:"mcp",m=typeof i.tool=="string"?i.tool:"tool",d=I(i.arguments)?i.arguments:{},f=ce(s.result),g=p.get(s.call_id);g?(g.result=f.text,g.isError=f.isError,p.delete(s.call_id)):le(s.call_id)||R(y,{id:s.call_id,name:`mcp__${a}__${m}`,input:d,result:f.text,isError:f.isError,timestamp:c},c);continue}if(r.type==="event_msg"&&(s==null?void 0:s.type)==="sub_agent_activity"&&typeof s.agent_thread_id=="string"&&typeof s.agent_path=="string"){const i=s.agent_thread_id,a=typeof s.event_id=="string"?s.event_id:"",m=typeof s.kind=="string"?s.kind:"started",d=a?b.get(a):void 0,f=A.get(s.agent_path),g=T.get(i)??(f?T.get(f):void 0);if(m!=="started"&&!g&&!d)continue;if(f&&f!==i&&!x.has(i)){const U=x.get(f);U&&(U.message.agentId=i,x.delete(f),x.set(i,U)),T.delete(f)}const _={agentId:i,nickname:(g==null?void 0:g.nickname)??$(s.agent_path)??(d==null?void 0:d.taskName)??null,agentPath:s.agent_path,message:(g==null?void 0:g.message)??(d==null?void 0:d.message)??"",model:(g==null?void 0:g.model)??(d==null?void 0:d.model)??null,agentType:(g==null?void 0:g.agentType)??(d==null?void 0:d.agentType)??null,timestamp:(g==null?void 0:g.timestamp)??(c||(d==null?void 0:d.timestamp)||""),parentToolCallId:(g==null?void 0:g.parentToolCallId)??a};T.set(i,_),A.set(s.agent_path,i),a&&(m==="started"||d)&&w.set(a,i),P(i,y,c,{status:m==="interrupted"?"interrupted":"running"});continue}if(!(r.type!=="response_item"||!s)){if(s.type==="reasoning"){const i=Array.isArray(s.summary)?s.summary.filter(a=>typeof a=="string").join(`
|
|
19
|
-
`):"";re(y,i.trim(),c);continue}if(s.type==="message"&&s.role==="assistant"){ae(y,D(s,"output_text"),c);continue}if(s.type==="message"&&s.role==="user"&&y.userMessage===null){const i=Q(D(s,"input_text")),a=yt(s),m=kt(s);(i||a.length>0||m.length>0)&&(y.userMessage=Tt(i,a,m),y.isFragment=!1,B=!0);continue}if(s.type==="web_search_call"&&typeof s.id=="string"){const i={};I(s.action)&&(i.action=s.action);const a=typeof s.status=="string"?s.status:"completed";u(y,s.id,i,a,c);continue}if(s.type==="tool_search_call"){const i=Ct(s.call_id,s.id)??"";if(i){const a={id:i,name:"ToolSearch",input:I(s.arguments)?s.arguments:{},result:null,isError:!1,timestamp:c};p.set(i,a),R(y,a,c)}continue}if(s.type==="tool_search_output"&&typeof s.call_id=="string"){const i=p.get(s.call_id);if(i){const a=Array.isArray(s.tools)?s.tools:[],m=a.filter(I).map(g=>Ct(g.name)??"").filter(Boolean),d=m.length>0?m.length:a.length,f=`Found ${d} tool${d===1?"":"s"}`;i.result=m.length>0?`${f}: ${m.join(", ")}`:f,i.isError=s.status==="failed",p.delete(s.call_id)}continue}if(s.type==="agent_message"&&typeof s.author=="string"){const i=s.author,a=typeof s.recipient=="string"?s.recipient:null,m=ne(s);if(m.messageType==="NEW_TASK")continue;const d=A.get(i),f=i.startsWith(`${o.agentPath}/`)&&(a===null||a===o.agentPath);if(!d&&!f)continue;const g=d??i;d||(T.set(g,{agentId:g,nickname:$(i),agentPath:i,message:"",model:null,agentType:null,timestamp:c,parentToolCallId:""}),A.set(i,g));let _;m.messageType==="FINAL_ANSWER"?_="completed":m.messageType==="ERROR"||m.messageType==="FAILED"?_="failed":m.messageType==="INTERRUPTED"?_="interrupted":m.messageType==="MESSAGE"&&(_="running"),P(g,y,c,{status:_,text:m.text||void 0});continue}if(s.type==="function_call"&&typeof s.call_id=="string"){const i=typeof s.name=="string"?s.name:"tool",a=Zt(i),m=bt(s.arguments);let d=a,f=m;a==="exec_command"?d="Bash":a==="update_plan"&&(d="TodoWrite",f=Gt(m)),a==="spawn_agent"&&b.set(s.call_id,{callId:s.call_id,message:se(m.message),taskName:typeof m.task_name=="string"?m.task_name:null,model:typeof m.model=="string"?m.model:null,agentType:typeof m.agent_type=="string"?m.agent_type:null,timestamp:c});const g={id:s.call_id,name:d,input:f,result:null,isError:!1,timestamp:c};p.set(g.id,g),R(y,g,c);continue}if(s.type==="function_call_output"&&typeof s.call_id=="string"){const i=p.get(s.call_id);if(!i)continue;const a=typeof s.output=="string"?s.output:null;if(i.result=a,i.isError=G(a),p.delete(s.call_id),i.name==="spawn_agent"&&a)try{const m=JSON.parse(a),d=typeof m.agent_id=="string"?m.agent_id:w.get(i.id)??"",f=typeof m.task_name=="string"?m.task_name:null,g=typeof m.nickname=="string"?m.nickname:f?$(f):null;if(d){const _=b.get(i.id),M=T.get(d),U={agentId:d,nickname:g??(M==null?void 0:M.nickname)??(_==null?void 0:_.taskName)??null,agentPath:f??(M==null?void 0:M.agentPath)??null,message:(M==null?void 0:M.message)??(_==null?void 0:_.message)??"",model:(M==null?void 0:M.model)??(_==null?void 0:_.model)??null,agentType:(M==null?void 0:M.agentType)??(_==null?void 0:_.agentType)??null,timestamp:(M==null?void 0:M.timestamp)??(_==null?void 0:_.timestamp)??c,parentToolCallId:(M==null?void 0:M.parentToolCallId)??i.id};T.set(d,U),w.set(i.id,d),U.agentPath&&A.set(U.agentPath,d),P(d,y,c,{status:"running"})}}catch{}if(i.name==="wait_agent"&&a&&y)try{const m=JSON.parse(a),d=I(m.status)?m.status:{};for(const[f,g]of Object.entries(d)){const _=I(g)?g:{},M=typeof _.completed=="string"?_.completed:"",U=typeof _.failed=="string"?_.failed:typeof _.error=="string"?_.error:"",N=typeof _.interrupted=="string"?_.interrupted:"",ye=M?"completed":U?"failed":N?"interrupted":typeof _.status=="string"?_.status:"running";T.has(f)||T.set(f,{agentId:f,nickname:null,agentPath:null,message:"",model:null,agentType:null,timestamp:c,parentToolCallId:""}),P(f,y,c,{status:ye,text:M||U||N||void 0})}}catch{}continue}if(s.type==="custom_tool_call"&&typeof s.call_id=="string"){const i=typeof s.name=="string"?s.name:"tool",a=typeof s.input=="string"?s.input:"",m=s.call_id,d=a?qt(i,a,m,c,o.cwd):[];if(i!=="apply_patch"){const f={id:m,name:i==="exec_command"?"Bash":i,input:bt(a),result:null,isError:!1,timestamp:c};p.set(f.id,f),R(y,f,c)}for(const f of d)p.set(f.id,f),R(y,f,c);d.length>0&&k.set(m,{calls:d,direct:i==="apply_patch"});continue}if(s.type==="custom_tool_call_output"&&typeof s.call_id=="string"){const i=s.call_id,{text:a,isError:m}=ft(s.output),d=k.get(i);if(d){const g=d.direct&&m?new Set(d.calls.map(_=>_.id)):Jt(a,m,d.calls);for(const _ of d.calls){const M=p.get(_.id);M&&(M.result=a,M.isError=g.has(M.id),p.delete(M.id))}k.delete(i)}const f=p.get(i);f&&(f.result=a,f.isError=m,p.delete(i));continue}}}}}return j(l,y,v),{sessionId:o.sessionId,version:o.version,gitBranch:o.gitBranch,cwd:o.cwd,slug:o.slug,name:"",model:o.model,turns:l,stats:e!=null&&e.skipStats?J(l.length):K(l),rawMessages:e!=null&&e.skipStats?[]:n,branchedFrom:o.branchedFrom,agentKind:"codex"}}function vt(t){const e=[];for(const n of t.split(`
|
|
20
|
-
`)){const o=n.trim();if(o)try{e.push(JSON.parse(o))}catch{}}return e}function fe(t){var n;const e=(n=t[0])==null?void 0:n.type;return e==="session_meta"||e==="turn_context"||e==="event_msg"||e==="response_item"||e==="compacted"||e==="world_state"||e==="inter_agent_communication_metadata"}function me(t){return t.map(e=>JSON.stringify(e)).join(`
|
|
21
|
-
`)}function ge(t){const e={sessionId:"",version:"",gitBranch:"",cwd:"",slug:"",name:"",model:"",branchedFrom:void 0};for(const n of t)if(n.sessionId&&!e.sessionId&&(e.sessionId=n.sessionId),n.version&&!e.version&&(e.version=n.version),n.gitBranch&&!e.gitBranch&&(e.gitBranch=n.gitBranch),n.cwd&&!e.cwd&&(e.cwd=n.cwd),n.slug&&!e.slug&&(e.slug=n.slug),n.name&&!e.name&&(e.name=n.name),n.branchedFrom&&!e.branchedFrom&&(e.branchedFrom=n.branchedFrom),W(n)&&n.message.model&&!e.model&&(e.model=n.message.model),e.sessionId&&e.version&&e.gitBranch&&e.cwd&&e.model)break;return e}function he(t,e){if(xt(t))return At(t,e);const n=vt(t),o=ge(n),l=it(n),p=e!=null&&e.skipStats?J(l.length):K(l);return{...o,turns:l,stats:p,rawMessages:e!=null&&e.skipStats?[]:n,agentKind:"claude"}}function _e(t,e){if(fe(t.rawMessages)||xt(e)){const y=me(t.rawMessages);return At(y?`${y}
|
|
22
|
-
${e}`:e)}const n=vt(e);if(n.length===0)return t;const o=t.rawMessages,l=[...o,...n],p=Wt(o),h=Math.max(0,t.turns.length-p.length);let k=Math.max(0,p.length-1);const b=new Set;for(const y of n)if(y.type==="progress"){const S=y.parentToolUseID;S&&b.add(S)}if(b.size>0)for(let y=k-1;y>=0;y--){const S=t.turns[h+y];if(S!=null&&S.toolCalls.some(C=>b.has(C.id))){k=y;break}}const T=p[k]??o.length,A=t.turns.slice(0,h+k),w=it(l.slice(T)),x=ot([...A,...w]),P=K(x);return{sessionId:t.sessionId,version:t.version,gitBranch:t.gitBranch,cwd:t.cwd,slug:t.slug,name:t.name,model:t.model||x.length>0&&x[x.length-1].model||"",turns:x,stats:P,rawMessages:l,branchedFrom:t.branchedFrom,agentKind:t.agentKind}}self.onmessage=t=>{const e=t.data;try{let n;e.type==="parse"?n=he(e.text):n=_e(e.existing,e.newText),self.postMessage({type:"result",id:e.id,session:n})}catch(n){self.postMessage({type:"error",id:e.id,error:n instanceof Error?n.message:String(n)})}}})();
|