cogpit 3.3.5 → 3.3.6
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/cli-runtime.js +5330 -4848
- package/dist/instance-worker.js +5550 -5196
- package/dist/web/assets/{CogpitBlock-erlqla7o.js → CogpitBlock-DTcsvTF0.js} +1 -1
- package/dist/web/assets/{CommandPaletteHost-CuOrr39_.js → CommandPaletteHost-DnjXwwFv.js} +1 -1
- package/dist/web/assets/{ConfigBrowser-C2DsAcvc.js → ConfigBrowser-C6-RV3dj.js} +1 -1
- package/dist/web/assets/{CrewPanel-DICdtFaE.js → CrewPanel-CdPeA3WX.js} +1 -1
- package/dist/web/assets/{HighlightedEditor-CP5_qp0D.js → HighlightedEditor-ptPSiZXt.js} +1 -1
- package/dist/web/assets/{KeyboardShortcutsDialog-DB1DgAfw.js → KeyboardShortcutsDialog-CNsqP3xD.js} +1 -1
- package/dist/web/assets/{MissionHome-D8vtj_X6.js → MissionHome-CJ8aY60N.js} +1 -1
- package/dist/web/assets/{MobileFileChanges-B5ADNE1K.js → MobileFileChanges-xDTu0VVe.js} +1 -1
- package/dist/web/assets/{PluginsDialog-B_69f-f3.js → PluginsDialog-U4WQVeyc.js} +1 -1
- package/dist/web/assets/{PreviewPanel-Dg9ZZMgz.js → PreviewPanel-CXZkRGUI.js} +1 -1
- package/dist/web/assets/{ProjectFilesPanel-DkSythhf.js → ProjectFilesPanel-DxTA4CcL.js} +1 -1
- package/dist/web/assets/{ProjectSwitcherModal-ztUOYaYv.js → ProjectSwitcherModal-DVRB-R0l.js} +1 -1
- package/dist/web/assets/{TerminalOutput-LYCC1x6i.js → TerminalOutput-D_7Mor6c.js} +1 -1
- package/dist/web/assets/{ThemeSelectorModal-C3Mbqa4u.js → ThemeSelectorModal-Bhkx5ikh.js} +1 -1
- package/dist/web/assets/{WorkflowsPanel-BOmbzwo_.js → WorkflowsPanel-Dexz6c1y.js} +1 -1
- package/dist/web/assets/{WorktreePanel-CdYUr34j.js → WorktreePanel-DS4svy6H.js} +1 -1
- package/dist/web/assets/{edition-ui-acJKBfUS.js → edition-ui-D6tmWJW3.js} +1 -1
- package/dist/web/assets/{index-CNaiQBmD.js → index-BKROBJD1.js} +1 -1
- package/dist/web/assets/{index-RkopwWeC.js → index-BZiOTcnb.js} +1 -1
- package/dist/web/assets/index-C6tWmbrY.css +1 -0
- package/dist/web/assets/index-COB3e1_W.js +496 -0
- package/dist/web/assets/{index-DxwM8M7d.js → index-DUyWfgZU.js} +1 -1
- package/dist/web/assets/session-parser.worker-DqoBsPjk.js +30 -0
- package/dist/web/assets/{switch-BqBbmo4j.js → switch-Bm0VDZET.js} +1 -1
- package/dist/web/assets/{vendor-ui-Cj1G8Clp.js → vendor-ui-DKYSMrjf.js} +199 -189
- package/dist/web/index.html +3 -3
- package/package.json +1 -1
- package/dist/web/assets/index-D1VvcJwM.css +0 -1
- package/dist/web/assets/index-DeMgVaXr.js +0 -493
- package/dist/web/assets/session-parser.worker-BZQCzzKl.js +0 -30
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
(function(){"use strict";const _t=["acp","codex","copilot","claude"];function Ft(t,e){if(t==="default")return e;const n=new TextEncoder().encode(e),s=btoa(Array.from(n,o=>String.fromCharCode(o)).join("")).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"");return`i-${t}__${s}`}function Ut(t){const e=/^i-([A-Za-z0-9-]+)__([A-Za-z0-9_-]+)$/.exec(t);if(!e)return{instanceId:"default",nativeId:t};try{const n=Uint8Array.from(atob(e[2].replace(/-/g,"+").replace(/_/g,"/")),s=>s.charCodeAt(0));return{instanceId:e[1],nativeId:new TextDecoder("utf-8",{fatal:!0}).decode(n)}}catch{throw new Error("Invalid instance session ID")}}function Je(t,e){return e==="default"?t:{...t,instanceId:e,sessionId:Ft(e,Ut(t.sessionId).nativeId),...t.branchedFrom?{branchedFrom:{...t.branchedFrom,sessionId:Ft(e,Ut(t.branchedFrom.sessionId).nativeId)}}:{}}}const kt="[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",Ge=new RegExp(`^${kt}$`,"i");function $t(t,e){const n=new TextEncoder().encode(e);let s="";for(const i of n)s+=String.fromCharCode(i);const o=btoa(s).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"");return`${t}${o}`}function Ot(t,e){if(!e.startsWith(t))return null;try{const n=e.slice(t.length).replace(/-/g,"+").replace(/_/g,"/"),s=atob(n),o=Uint8Array.from(s,i=>i.charCodeAt(0));return new TextDecoder().decode(o)}catch{return null}}function bt(t){return{lossy:!1,owns:e=>typeof e=="string"&&e.startsWith(t),recognizes:e=>{const n=Ot(t,e);return n!==null&&n!==""&&$t(t,n)===e},encode:e=>$t(t,e),decode:e=>Ot(t,e)}}function Z(t){const e=new RegExp(`(${kt})\\.jsonl$`,"i").exec(t);return e?e[1]:null}function it(t){return t?{rootSessionId:t.toLowerCase(),isRootTranscript:!0}:null}function Tt(t){const e=t.split("/");return e.every(s=>s!==""&&s!=="."&&s!==".."&&!s.includes("\\"))?e:null}const Ct={urlId:t=>t.replace(/\.jsonl$/,""),fileNameFromUrlId:t=>t.endsWith(".jsonl")?t:`${t}.jsonl`};function jt(t){return`'${t.replace(/'/g,"'\\''")}'`}function X(t,e){return e?[t,e]:[]}function rt(t,e){var n;return((n=e.exec(t))==null?void 0:n[1])??null}const at="[0-9a-f-]{36}",Lt="codex__",Wt="copilot__",Ke=new Set(["default","plan","acceptEdits","dontAsk","auto"]),Qe=new Set(["subagents","workflows"]);function He(t){const e=Tt(t);if(!e)return null;const[n,s]=e;if(e.length===1){const o=n.replace(/\.jsonl$/,"");return o!==n&&zt(o)?it(o):null}return e.length>2&&Qe.has(s)&&zt(n)?{rootSessionId:n.toLowerCase(),isRootTranscript:!1}:null}const Ze={kind:"claude",displayName:"Claude Code",binName:"claude",dirName:{lossy:!0,owns:t=>typeof t=="string"&&!t.startsWith(Lt)&&!t.startsWith(Wt),recognizes:t=>/^(?:(?:-|[A-Za-z]--)[A-Za-z0-9-]*|[A-Za-z]-)$/.test(t),encode:t=>(t.replace(/[\\/]+$/,"")||t).replace(/[^a-zA-Z0-9]/g,"-"),decode:t=>{const e=/^([A-Za-z])--(.*)$/.exec(t);return e?`${e[1]}:\\${e[2].replace(/-/g,"\\")}`:"/"+t.replace(/^-/,"").replace(/-/g,"/")}},projectWorktreeDir:".claude/worktrees",sessionFile:{name:t=>`${t}.jsonl`,sessionId:Z,...Ct,transcriptRoot:He},metadataFromHead:!0,resume:{command:t=>`claude --resume ${t}`,args:t=>["--resume",t]},launchArgs:{permissions:t=>t!=null&&t.mode?t.mode==="bypassPermissions"?["--dangerously-skip-permissions"]:[...Ke.has(t.mode)?["--permission-mode",t.mode]:[],...(t.allowedTools??[]).flatMap(e=>["--allowedTools",e]),...(t.disallowedTools??[]).flatMap(e=>["--disallowedTools",e])]:["--permission-mode","default"],model:t=>X("--model",t),effort:t=>X("--effort",t),fastTier:()=>[]},serviceTier:null,cli:{packageName:"@anthropic-ai/claude-code",homebrew:{name:"claude-code",cask:!1},wingetId:null,versionArgs:["--version"],selfUpdate:{args:["update"],matches:t=>t.endsWith("/.local/bin/claude")||t.endsWith("/.local/bin/claude.exe")||t.includes("/.local/share/claude/")},bundledBySdk:!0,homeDirName:".claude",homeEnvVar:null,sdkHomeEnvVar:"CLAUDE_CONFIG_DIR",installMarker:"projects",homeIsDiscoverable:!1,process:{by:"command",sessionIdFromCommand:t=>rt(t,new RegExp(`--resume(?:=|\\s+)(${at})`))??rt(t,new RegExp(`--session-id(?:=|\\s+)(${at})`))}},config:{rootDirName:".claude",instructions:[{in:"scope",path:"CLAUDE.md",scopes:["global","project"]},{in:"root",path:"CLAUDE.md",label:".claude/CLAUDE.md",scopes:["project"]},{in:"scope",path:"AGENTS.md",scopes:["project"],fallback:!0}],settings:[{in:"root",path:"settings.json",scopes:["global"]},{in:"root",path:"settings.local.json",scopes:["project"]}],skillsDir:"skills",agentsDir:"agents",commandsDir:"commands",themesDir:"themes",pluginsDir:"plugins",pluginManifestDir:".claude-plugin"},contextWindow:{defaultLimit:1e6,limits:[{match:"claude-haiku-4-5",limit:2e5},{match:"claude-haiku-4-1",limit:2e5},{match:"claude-sonnet-4-5",limit:2e5},{match:"claude-opus-4-5",limit:2e5},{match:"claude-opus-4-1",limit:2e5}],compactBuffer:33e3,extendedContext:{marker:"[1m]",limit:1e6}},capabilities:{worktrees:!0,mcp:!0,slashCommands:!0,workflows:!0,agentTeams:!0,subagentTranscripts:!0,nestedSubagents:!1,sharing:!0,goals:"transcript",undo:!0,redo:!0,nativeRewind:!1,fileCheckpoints:!0,reasoningEffort:!0,configurableContextWindow:!1,fastTier:!0,lowPriorityInTerminal:!0,imageInput:!0,midTurnSteering:!0,activeNotifications:!0,stopSession:!0,ultracode:!0,contextWindow:!0,externalProcesses:!1,accountSwitching:!0,modelFallbackNotices:!0,autoPermissionMode:"per-model",toolPermissionRules:!0,settingsApply:"live",turnLiveness:"transcript",tokenStreaming:!0,nativeFork:!1,namedSessions:!0}},qt={appServerValue:"priority",cliConfigValue:"fast"},Xe={kind:"codex",displayName:"Codex",binName:"codex",dirName:bt(Lt),projectWorktreeDir:null,sessionFile:{name:(t,e=new Date)=>{const n=String(e.getFullYear()),s=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0"),i=String(e.getHours()).padStart(2,"0"),l=String(e.getMinutes()).padStart(2,"0"),f=String(e.getSeconds()).padStart(2,"0");return`${n}/${s}/${o}/rollout-${n}-${s}-${o}T${i}-${l}-${f}-${t}.jsonl`},sessionId:Z,...Ct,transcriptRoot:t=>Tt(t)?it(Z(t)):null},metadataFromHead:!1,resume:{command:(t,e)=>e?`codex -C ${jt(e)} resume ${t}`:`codex resume ${t}`,args:t=>["resume",t]},launchArgs:{permissions:t=>{const e=(t==null?void 0:t.mode)||"default";return e==="bypassPermissions"?["--dangerously-bypass-approvals-and-sandbox"]:e==="auto"?["--approve-for-me"]:["--sandbox",e==="plan"?"read-only":"workspace-write","-c",'approval_policy="never"']},model:t=>X("-m",t),effort:t=>t?["-c",`model_reasoning_effort=${JSON.stringify(t)}`]:[],fastTier:t=>t?["-c",`service_tier=${JSON.stringify(qt.cliConfigValue)}`,"--enable","fast_mode"]:[]},serviceTier:qt,cli:{packageName:"@openai/codex",homebrew:{name:"codex",cask:!1},wingetId:null,versionArgs:["--version"],selfUpdate:null,bundledBySdk:!1,homeDirName:".codex",homeEnvVar:"CODEX_HOME",sessionIdEnvVar:"CODEX_THREAD_ID",installMarker:"",homeIsDiscoverable:!0,process:{by:"command",sessionIdFromCommand:t=>rt(t,new RegExp(`codex(?:\\s+\\S+)*\\s+exec\\s+resume\\s+(${at})`))}},config:{rootDirName:".codex",instructions:[{in:"scope",path:"AGENTS.md",scopes:["global","project"]}],settings:[{in:"root",path:"config.toml",scopes:["global","project"]}],skillsDir:"skills",agentsDir:"agents",commandsDir:"prompts",themesDir:null,pluginsDir:null,pluginManifestDir:null},contextWindow:{defaultLimit:272e3,limits:[],compactBuffer:0,extendedContext:null},capabilities:{worktrees:!0,mcp:!1,slashCommands:!1,workflows:!1,agentTeams:!1,subagentTranscripts:!0,nestedSubagents:!0,sharing:!1,goals:"thread-api",undo:!0,redo:!0,nativeRewind:!1,fileCheckpoints:!1,reasoningEffort:!0,configurableContextWindow:!0,fastTier:!0,lowPriorityInTerminal:!1,imageInput:!0,midTurnSteering:!0,activeNotifications:!0,stopSession:!1,ultracode:!1,contextWindow:!1,externalProcesses:!1,accountSwitching:!1,modelFallbackNotices:!1,autoPermissionMode:"always",toolPermissionRules:!0,settingsApply:"next-turn",turnLiveness:"runtime",tokenStreaming:!0,nativeFork:!1,namedSessions:!1}};function xt(t){const e=new RegExp(`^(${kt})/events\\.jsonl$`,"i").exec(t);return e?e[1]:null}const Y={kind:"copilot",displayName:"GitHub Copilot CLI",binName:"copilot",dirName:bt(Wt),projectWorktreeDir:null,sessionFile:{name:t=>`${t}/events.jsonl`,sessionId:xt,urlId:t=>xt(t)??t.replace(/\.jsonl$/,""),fileNameFromUrlId:t=>t.endsWith(".jsonl")?t:`${t}/events.jsonl`,transcriptRoot:t=>it(xt(t))},metadataFromHead:!0,resume:{command:(t,e)=>e?`copilot -C ${jt(e)} --resume ${t}`:`copilot --resume ${t}`,args:t=>[`--resume=${t}`]},launchArgs:{permissions:t=>(t==null?void 0:t.mode)==="bypassPermissions"||(t==null?void 0:t.mode)==="auto"?["--allow-all"]:[],model:t=>X("--model",t),effort:t=>X("--reasoning-effort",t),fastTier:()=>[]},serviceTier:null,cli:{packageName:"@github/copilot",homebrew:{name:"copilot-cli",cask:!0},wingetId:"GitHub.Copilot",versionArgs:["--version"],selfUpdate:{args:["update"],matches:t=>t.endsWith("/.local/bin/copilot")||t==="/usr/local/bin/copilot"},bundledBySdk:!1,homeDirName:".copilot",homeEnvVar:"COPILOT_HOME",installMarker:"session-state",homeIsDiscoverable:!0,process:{by:"executable",sessionIdFromCommand:t=>rt(t,new RegExp(`--resume(?:=|\\s+)(${at})`))}},config:{rootDirName:".copilot",instructions:[{in:"scope",path:"AGENTS.md",scopes:["global","project"]}],settings:[{in:"root",path:"config.json",scopes:["global"]}],skillsDir:"skills",agentsDir:null,commandsDir:null,themesDir:null,pluginsDir:null,pluginManifestDir:null},contextWindow:{defaultLimit:2e5,limits:[],compactBuffer:0,extendedContext:null},capabilities:{worktrees:!1,mcp:!1,slashCommands:!1,workflows:!1,agentTeams:!1,subagentTranscripts:!1,nestedSubagents:!1,sharing:!1,goals:!1,undo:!0,redo:!1,nativeRewind:!0,fileCheckpoints:!1,reasoningEffort:!1,configurableContextWindow:!1,fastTier:!1,lowPriorityInTerminal:!1,imageInput:!1,midTurnSteering:!0,activeNotifications:!0,stopSession:!0,ultracode:!1,contextWindow:!1,externalProcesses:!0,accountSwitching:!1,modelFallbackNotices:!1,autoPermissionMode:"always",toolPermissionRules:!0,settingsApply:"next-turn",turnLiveness:"runtime",tokenStreaming:!1,nativeFork:!0,namedSessions:!0}},Ye={...Y,kind:"acp",displayName:"ACP agent",binName:"acp",dirName:bt("acp__"),sessionFile:{name:t=>`${t}.jsonl`,sessionId:Z,...Ct,transcriptRoot:t=>{const e=Tt(t);return(e==null?void 0:e.length)===1?it(Z(t)):null}},resume:{command:()=>"Resume this session in Cogpit",args:()=>[]},launchArgs:{permissions:()=>[],model:()=>[],effort:()=>[],fastTier:()=>[]},cli:{...Y.cli,packageName:"",homebrew:null,wingetId:null,selfUpdate:null,requiresConfiguration:!0,homeDirName:".cogpit-acp",homeEnvVar:"COGPIT_ACP_HOME",homeIsDiscoverable:!0,installMarker:"projects"},config:{...Y.config,rootDirName:".cogpit-acp",instructions:[],settings:[],skillsDir:null},capabilities:{...Y.capabilities,undo:!1,redo:!1,nativeRewind:!1,nativeFork:!1,midTurnSteering:!1,activeNotifications:!1,externalProcesses:!1,autoPermissionMode:"never",toolPermissionRules:!1,namedSessions:!1}},tn=Object.freeze({claude:Ze,codex:Xe,copilot:Y,acp:Ye});function lt(t){return tn[t]}function zt(t){return Ge.test(t)}const Vt={0:"\0",b:"\b",f:"\f",n:`
|
|
2
|
-
`,r:"\r",t:" ",v:"\v"};function Jt(t,e){const n=t[e];if(n!=='"'&&n!=="'"&&n!=="`")return null;let s="",o=e+1;for(;o<t.length;){const i=t[o];if(i===n)return{endIndex:o+1,value:s};if(i!=="\\"){s+=i,o++;continue}if(o++,o>=t.length)return null;const l=t[o];if(l in Vt){s+=Vt[l],o++;continue}if(l===`
|
|
3
|
-
`){o++;continue}if(l==="\r"){o+=t[o+1]===`
|
|
4
|
-
`?2:1;continue}if(l==="x"&&/^[0-9a-fA-F]{2}$/.test(t.slice(o+1,o+3))){s+=String.fromCharCode(Number.parseInt(t.slice(o+1,o+3),16)),o+=3;continue}if(l==="u"){const f=t.slice(o+1).match(/^\{([0-9a-fA-F]+)\}/);if(f){const d=Number.parseInt(f[1],16);if(Number.isFinite(d)&&d<=1114111){s+=String.fromCodePoint(d),o+=f[0].length+1;continue}}const m=t.slice(o+1,o+5);if(/^[0-9a-fA-F]{4}$/.test(m)){s+=String.fromCharCode(Number.parseInt(m,16)),o+=5;continue}}s+=l,o++}return null}function It(t,e=0){if(!t.some(f=>f.endedAt===void 0))return null;const n=[...t].sort((f,m)=>f.launchedAt-m.launchedAt);let s=0,o=-1/0;n.forEach((f,m)=>{o<f.launchedAt&&(s=m),o=Math.max(o,f.endedAt??1/0)});const i=n.slice(s).map(({agent:f,endedAt:m})=>({...f,done:m!==void 0})),l=i.filter(f=>!f.done);return{status:"awaiting_agents",pendingQueue:e,pendingAgents:l.length,pendingAgentDescriptions:l.map(f=>f.description).filter(f=>f.length>0),backgroundAgents:i}}function At(t){return t.type==="user"}function St(t){return t.type==="assistant"}function Gt(t){return t.type==="progress"}function wt(t){return t.type==="system"}function Kt(t){return t.type==="summary"}function en(t){return t.type==="queue-operation"}function Qt(t){return t.type==="attachment"}function nn(t){return t.type==="user"&&t.isCompactSummary===!0}function Ht(t){return t.type==="system"&&t.subtype==="compact_boundary"}function Zt(t,e){let n=0;for(const s of t)e[s.name]=(e[s.name]??0)+1,s.isError&&n++;return n}function Xt(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 ct(t){return{totalInputTokens:0,totalOutputTokens:0,totalCacheCreationTokens:0,totalCacheReadTokens:0,toolCallCounts:{},errorCount:0,totalDurationMs:0,turnCount:t}}function ut(t){const e=ct(t.length);for(const n of t){n.tokenUsage&&Xt(e,n.tokenUsage),n.durationMs&&(e.totalDurationMs+=n.durationMs),e.errorCount+=Zt(n.toolCalls,e.toolCallCounts);for(const s of n.subAgentActivity)e.errorCount+=Zt(s.toolCalls,e.toolCallCounts),s.tokenUsage&&Xt(e,s.tokenUsage)}return e}function J(t,e){var s,o;if(!t)return{...e};const n=(((s=t.output_tokens_details)==null?void 0:s.thinking_tokens)??0)+(((o=e.output_tokens_details)==null?void 0:o.thinking_tokens)??0);return{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,...t.output_tokens_details||e.output_tokens_details?{output_tokens_details:{thinking_tokens:n}}:{}}}const sn=/<(agent-message|teammate-message)([^>]*)>([\s\S]*?)<\/\1>/g,on=[/\bteammate_id=(?:"([^"]*)"|'([^']*)')/,/\bfrom=(?:"([^"]*)"|'([^']*)')/];function rn(t){for(const e of on){const n=t.match(e),s=(n==null?void 0:n[1])??(n==null?void 0:n[2]);if(s)return s}return null}function Mt(t){let e=null,n=!1;const s=t.replace(sn,(o,i,l,f)=>(n=!0,e===null&&(e=rn(l)),f.trim()));return{sender:e,matched:n,body:n?s.trim():t}}function dt(t){return t&&typeof t=="object"?t:{}}function an(t,e){const n=dt(e);if(t==="Edit"||t==="Write")return n.staged===!0?{awaitingReview:!0}:{};if(t!=="Bash")return{};const s=dt(n.bashEditDiff);if(!Array.isArray(s.files))return{};const o=[];for(const l of s.files){const f=dt(l);if(typeof f.filePath!="string"||!f.filePath||!Array.isArray(f.hunks))continue;const m=[];for(const d of f.hunks){const b=dt(d),{oldStart:M,oldLines:_,newStart:g,newLines:E,lines:N}=b;[M,_,g,E].every(T=>typeof T=="number"&&Number.isInteger(T)&&T>=0)&&(!Array.isArray(N)||!N.every(T=>typeof T=="string"&&/^[ +\\-]/.test(T))||m.push({oldStart:M,oldLines:_,newStart:g,newLines:E,lines:N}))}m.length&&o.push({filePath:f.filePath,hunks:m})}const i=typeof s.moreFiles=="number"&&Number.isInteger(s.moreFiles)&&s.moreFiles>0?s.moreFiles:0;return{fileDiffs:o,...i?{additionalFileDiffs:i}:{}}}function pt(t){return typeof t=="string"?t:t.filter(e=>e.type==="text").map(e=>e.text).join(`
|
|
5
|
-
`)}function Yt(t){return t?typeof t=="string"?t:t.map(e=>e.type==="text"?e.text:"").filter(Boolean).join(`
|
|
6
|
-
`):""}function te(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}const ln=/<task-notification>[\s\S]*?<\/task-notification>/g,cn=/<[^>]*>/g;function un(t){var n;if(((n=t.origin)==null?void 0:n.kind)==="task-notification")return!0;const e=pt(t.message.content);return e.includes("<task-notification>")?e.replace(ln,"").replace(cn,"").trim()==="":!1}function dn(t){if(!Qt(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 s=typeof n=="string"?n:pt(n);if(!te(s))return null;const o=e.origin;if((o==null?void 0:o.kind)==="peer"){const l=o.name??o.from??null;if(l)return{raw:s,sender:l,body:o.body??Mt(s).body}}if((o==null?void 0:o.kind)==="human")return{raw:s,sender:null,body:s};const i=Mt(s);return{raw:s,sender:i.sender,body:i.body}}const pn=[["attributionAgent","agent"],["attributionSkill","skill"],["attributionPlugin","plugin"],["attributionMcpServer","mcpServer"],["attributionMcpTool","mcpTool"]];function fn(t,e){let n=t;for(const[s,o]of pn){const i=e[s];typeof i!="string"||!i||(n={...n,[o]:i})}return n}const mn=/^This session is being continued from a previous conversation[\s\S]*?\n\nSummary:\s*\n/,gn=/\n+(?:If you need specific details from before compaction|(?:Please c|C)ontinue the conversation from where it left off)[\s\S]*$/;function hn(t){return pt(t).trim().replace(mn,"").replace(gn,"").trim()}function yn(t){if(t)return{trigger:t.trigger,preTokens:t.preTokens,postTokens:t.postTokens}}function ft(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 _n(t){const e=[];let n=0;for(;n<t.length;){const s=t[n];if(s.kind==="tool_calls"){const o=s.toolCalls.findIndex(i=>i.name==="EnterPlanMode");if(o!==-1){const i=s.toolCalls[o],l=String(i.input.plan??""),f=s.timestamp,m=s.toolCalls.slice(0,o);m.length>0&&e.push({kind:"tool_calls",toolCalls:m,timestamp:s.timestamp});const d=[],b=s.toolCalls.slice(o+1),M=b.findIndex(_=>_.name==="ExitPlanMode");if(M!==-1){d.push(...b.slice(0,M));const _=b[M],g=_.input.path?String(_.input.path):void 0;let E="pending";_.result!==null&&(E=_.isError?"rejected":"approved"),e.push({kind:"plan_mode",plan:l,planFilePath:g,status:E,toolCalls:d,timestamp:f});const N=b.slice(M+1);N.length>0&&e.push({kind:"tool_calls",toolCalls:N,timestamp:s.timestamp}),n++;continue}else{d.push(...b);let _,g,E="pending",N=n+1;const T=[];for(;N<t.length;){const x=t[N];if(x.kind==="tool_calls"){const R=x.toolCalls.findIndex(P=>P.name==="ExitPlanMode");if(R!==-1){d.push(...x.toolCalls.slice(0,R)),_=x.toolCalls[R],g=_.input.path?String(_.input.path):void 0,_.result!==null&&(E=_.isError?"rejected":"approved");const P=x.toolCalls.slice(R+1);e.push({kind:"plan_mode",plan:l,planFilePath:g,status:E,toolCalls:d,timestamp:f}),e.push(...T),P.length>0&&e.push({kind:"tool_calls",toolCalls:P,timestamp:x.timestamp}),n=N+1;break}else d.push(...x.toolCalls),N++}else if(x.kind==="hook_event"||x.kind==="text"||x.kind==="queued_prompt"||x.kind==="agent_message")T.push(x),N++;else break}_||(e.push({kind:"plan_mode",plan:l,planFilePath:void 0,status:"pending",toolCalls:d,timestamp:f}),e.push(...T),n=N);continue}}}e.push(s),n++}return e}function kn(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,...s}=e;return s})}:t}function ee(t){var s;const e=t.map(kn),n=new Map;for(const o of e)for(const i of o.contentBlocks){if(i.kind==="agent_message"){const l=n.get(i.sender);l?l.push(i):n.set(i.sender,[i]);continue}if(i.kind==="tool_calls")for(const l of i.toolCalls){if(l.name!=="SendMessage")continue;const f=l.input.to;if(typeof f!="string"||!f)continue;const m=(s=n.get(f))==null?void 0:s.shift();if(!m)continue;const d=l.input.summary;m.reply={summary:typeof d=="string"?d:"",timestamp:l.timestamp||i.timestamp||""}}}return e}function bn(t){const e=[];let n=!1;for(let s=0;s<t.length;s++){const o=t[s];if(Kt(o)||Ht(o)){n=!1;continue}if(At(o)&&!o.isMeta){const i=o.message.content;if(n&&Array.isArray(i)&&i.some(f=>f.type==="tool_result"))continue;e.push(s),n=!0;continue}St(o)&&!n&&(e.push(s),n=!0)}return e}function ne(t){var U,S;const e=[],n=[];let s=null,o=0,i=null,l=null;function f(r){l&&(r.compactionSummary=l.summary,r.compactionMeta=l.meta,l=null)}let m=null;const d=new Map,b=new Set,M=new Map,_=new Map,g=new Set,E=new Map,N=[],T=new Map;function x(r,c){let h=T.get(r);h||(h=new Map,T.set(r,h)),h.set(c,(h.get(c)??0)+1)}function R(r,c){const h=T.get(r),p=h==null?void 0:h.get(c);return!h||!p?!1:(p===1?h.delete(c):h.set(c,p-1),!0)}function P(){for(const r of N)r.turn.contentBlocks.push(r.sender?{kind:"agent_message",sender:r.sender,body:r.body,timestamp:r.timestamp}:{kind:"queued_prompt",content:r.content,timestamp:r.timestamp});N.length=0}function j(r){if(!i)return;const c=M.get(r);if(!c||c.length===0)return;i.subAgentActivity.push(...c),M.delete(r);const h=g.has(r)?"background_agent":"sub_agent",p=_.get(r);if(p)p.messages.push(...c);else{const a={kind:h,messages:[...c]};i.contentBlocks.push(a),_.set(r,a)}}function $(){if(i){for(const r of i.toolCalls)j(r.id);for(const[r]of M)j(r);for(const r of i.contentBlocks)if(r.kind==="hook_event")for(const c of r.events){if(!(c.eventName==="PostToolUse"||c.eventName.startsWith("PostToolUse:"))||!c.toolUseId)continue;const p=i.toolCalls.find(a=>a.id===c.toolUseId);p&&(c.updatedToolOutput&&(p.outputReplacedByHook=!0),c.durationMs!==void 0&&(p.hookDurationMs=(p.hookDurationMs??0)+c.durationMs))}i.contentBlocks=_n(i.contentBlocks),e.push(i),s!==null&&n.push(s),s=null,i=null,_.clear()}}for(o=0;o<t.length;o++){const r=t[o];if(Kt(r)){$(),l={summary:r.summary};continue}if(Ht(r)){$(),l={meta:yn(r.compactMetadata)};continue}if(nn(r)){$(),s=o,i=ft(r,null),i.compactionSummary=hn(r.message.content),i.compactionMeta=l==null?void 0:l.meta,l=null;continue}if(wt(r)&&r.subtype==="away_summary"&&r.content){m={content:r.content,timestamp:r.timestamp};continue}if(wt(r)&&r.subtype==="local_command"&&r.content){i==null||i.contentBlocks.push({kind:"local_command",content:r.content,timestamp:r.timestamp});continue}if(en(r)){if(i&&r.operation==="enqueue"&&te(r.content)){const c=Mt(r.content);N.push({turn:i,content:r.content,timestamp:r.timestamp,sender:c.sender,body:c.body}),x(i,r.content)}continue}if(Qt(r)){const c=dn(r);i&&c!==null&&!R(i,c.raw)&&N.push({turn:i,content:c.raw,timestamp:((U=r.attachment)==null?void 0:U.timestamp)??r.timestamp,sender:c.sender,body:c.body});continue}if(N.length>0){const c=At(r)&&!r.isMeta?r.message.content:null;if(typeof c=="string"){const h=N.findIndex(p=>p.content===c);if(h>=0){const[p]=N.splice(h,1);R(p.turn,p.content)}}P()}if(At(r)&&!r.isMeta){const c=r.message.content;if(typeof c!="string"&&Array.isArray(c)&&c.some(p=>p.type==="tool_result")&&i){for(const a of c)if(a.type==="tool_result"){const k=d.get(a.tool_use_id);if(k){k.turn.toolCalls[k.index].result=Yt(a.content),k.turn.toolCalls[k.index].isError=a.is_error===!0;const u=k.turn.toolCalls[k.index];Object.assign(u,an(u.name,r.toolUseResult)),d.delete(a.tool_use_id)}}const p=r.toolUseResult;if(p!=null&&p.agentId){const a=((S=c.find(A=>A.type==="tool_result"))==null?void 0:S.tool_use_id)??"",k=E.get(a),u=g.has(a),C=[];if(Array.isArray(p.content))for(const A of p.content)A.type==="text"&&C.push(A.text);const y={agentId:p.agentId,parentToolUseId:a||void 0,agentName:(k==null?void 0:k.name)??null,subagentType:(k==null?void 0:k.subagentType)??null,type:"assistant",content:p.content,toolCalls:[],thinking:[],text:C,timestamp:r.timestamp??"",tokenUsage:p.usage?{input_tokens:p.usage.input_tokens??0,output_tokens:p.usage.output_tokens??0,cache_creation_input_tokens:p.usage.cache_creation_input_tokens??0,cache_read_input_tokens:p.usage.cache_read_input_tokens??0}:null,model:null,isBackground:u,prompt:p.prompt,status:p.status,durationMs:p.totalDurationMs,toolUseCount:p.totalToolUseCount};if(!_.get(a)){i.subAgentActivity.push(y);const v={kind:u?"background_agent":"sub_agent",messages:[y]};i.contentBlocks.push(v),_.set(a,v)}}continue}if(un(r)){const h={kind:"task_notification",content:pt(c),timestamp:r.timestamp};if(i){i.contentBlocks.push(h);continue}s=o,i=ft(r,null),i.contentBlocks.push(h),f(i);continue}$(),s=o,i=ft(r,r.message.content),f(i),m&&(i.contentBlocks.push({kind:"recap",content:m.content,timestamp:m.timestamp}),m=null);continue}if(St(r)){let c=function(){u.length>0&&(C.contentBlocks.push({kind:"tool_calls",toolCalls:[...u],timestamp:a}),u.length=0)},h=function(){if(k.length>0){const y=C.contentBlocks[C.contentBlocks.length-1];y&&y.kind==="thinking"?y.blocks.push(...k):C.contentBlocks.push({kind:"thinking",blocks:[...k],timestamp:a}),k.length=0}};i||(s=o,i=ft(r,null),f(i)),i.model=r.message.model,r.effort&&(i.effort=r.effort),i.attribution=fn(i.attribution,r);const p=r.message.id;b.has(p)||(b.add(p),i.tokenUsage=J(i.tokenUsage,r.message.usage));const a=r.timestamp??"",k=[],u=[],C=i;for(const y of r.message.content)if(y.type==="thinking"){c();const I=y;if(!I.thinking)continue;i.thinking.push(I),k.push(I)}else if(y.type==="text"){c(),h();const I=/<thinking>([\s\S]*?)<\/thinking>/g;let A=y.text,v;for(;(v=I.exec(y.text))!==null;){const O=v[1].trim();if(O){const B={type:"thinking",thinking:O,signature:""};i.thinking.push(B),i.contentBlocks.push({kind:"thinking",blocks:[B],timestamp:a})}A=A.replace(v[0],"")}if(A=A.trim(),A){i.assistantText.push(A);const O=i.contentBlocks[i.contentBlocks.length-1];O&&O.kind==="text"?O.text.push(A):i.contentBlocks.push({kind:"text",text:[A],timestamp:a})}}else if(y.type==="tool_use"){h();const I={id:y.id,name:y.name,input:y.input,result:null,isError:!1,timestamp:r.timestamp??""},A=i.toolCalls.length;if(i.toolCalls.push(I),u.push(I),d.set(y.id,{turn:i,index:A}),y.name==="Task"||y.name==="Agent"){const v=y.input;v.run_in_background===!0&&g.add(y.id),E.set(y.id,{name:v.name??null,subagentType:v.subagent_type??null})}}h(),c();continue}if(Gt(r)&&r.data.type==="agent_progress"){const c=r.data,h=r.parentToolUseID??"";let p=null;if(c.message.type==="assistant"){const y=c.message.message,I=y.id,A=y.usage;A&&I&&!b.has(I)&&(b.add(I),p={input_tokens:A.input_tokens??0,output_tokens:A.output_tokens??0,cache_creation_input_tokens:A.cache_creation_input_tokens??0,cache_read_input_tokens:A.cache_read_input_tokens??0})}const a=c.message.type==="assistant"?c.message.message.model??null:null,k=E.get(h),u={agentId:c.agentId,parentToolUseId:h||void 0,agentName:(k==null?void 0:k.name)??null,subagentType:(k==null?void 0:k.subagentType)??null,type:c.message.type,content:c.message.message.content,toolCalls:[],thinking:[],text:[],timestamp:c.message.timestamp??r.timestamp??"",tokenUsage:p,model:a,isBackground:g.has(h)};if(c.message.type==="assistant"){const y=c.message.message.content;if(Array.isArray(y))for(const I of y)I.type==="thinking"?u.thinking.push(I.thinking):I.type==="text"?u.text.push(I.text):I.type==="tool_use"&&u.toolCalls.push({id:I.id,name:I.name,input:I.input,result:null,isError:!1,timestamp:c.message.timestamp??r.timestamp??""})}else if(c.message.type==="user"){const y=c.message.message.content;if(Array.isArray(y)){for(const I of y)if(I.type==="tool_result"){const A=M.get(h);if(A)for(const v of A){const O=v.toolCalls.find(B=>B.id===I.tool_use_id);O&&(O.result=Yt(I.content),O.isError=I.is_error===!0)}}}}let C=M.get(h);C||(C=[],M.set(h,C)),C.push(u),i&&j(h);continue}if(Gt(r)&&r.data.type==="hook_progress"){const c=r.data,h=String(c.hook_event_name??c.hookEvent??"unknown"),p=c.hookSpecificOutput,a={eventName:h,source:c.source!==void 0?String(c.source):void 0,toolName:c.tool_name!==void 0?String(c.tool_name):void 0,toolUseId:c.tool_use_id!==void 0?String(c.tool_use_id):void 0,command:c.command!==void 0?String(c.command):void 0,output:c.output!==void 0?String(c.output):void 0,stderr:c.stderr!==void 0?String(c.stderr):void 0,exitCode:c.exit_code!==void 0?Number(c.exit_code):void 0,decision:c.decision!==void 0?String(c.decision):void 0,durationMs:c.duration_ms!==void 0?Number(c.duration_ms):void 0,updatedToolOutput:(p==null?void 0:p.updatedToolOutput)!==void 0?String(p.updatedToolOutput):void 0,sessionTitle:(p==null?void 0:p.sessionTitle)!==void 0?String(p.sessionTitle):void 0,worktreePath:(p==null?void 0:p.worktreePath)!==void 0?String(p.worktreePath):void 0,timestamp:r.timestamp??""};if(i){const k=i.contentBlocks[i.contentBlocks.length-1];k&&k.kind==="hook_event"?k.events.push(a):i.contentBlocks.push({kind:"hook_event",events:[a],timestamp:r.timestamp})}continue}if(wt(r)&&r.subtype==="turn_duration"&&i){r.durationMs!==void 0&&r.durationMs!==null&&(i.durationMs=(i.durationMs??0)+r.durationMs);continue}}return P(),$(),{turns:ee(e),turnStartIndices:n}}function se(t){return ne(t).turns}function oe(){return!0}function ie(t){const e=[];for(const n of t){const s=n.trim();if(s)try{e.push(JSON.parse(s))}catch{}}return e}function re(t){return ie(t.split(`
|
|
7
|
-
`))}function ae(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),St(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 Tn(t){return ae(ie(t))}function le(t,e){const n=re(t),s=ae(n),o=se(n),i=e!=null&&e.skipStats?ct(o.length):ut(o);return{...s,turns:o,stats:i,rawMessages:e!=null&&e.skipStats?[]:n,agentKind:"claude"}}function ce(t,e){const n=re(e);if(n.length===0)return t;const s=t.rawMessages,o=[...s,...n],i=bn(s),l=Math.max(0,t.turns.length-i.length);let f=Math.max(0,i.length-1);const m=new Set;for(const E of n)if(E.type==="progress"){const N=E.parentToolUseID;N&&m.add(N)}if(m.size>0)for(let E=f-1;E>=0;E--){const N=t.turns[l+E];if(N!=null&&N.toolCalls.some(T=>m.has(T.id))){f=E;break}}const d=i[f]??s.length,b=t.turns.slice(0,l+f),M=se(o.slice(d)),_=ee([...b,...M]),g=ut(_);return{sessionId:t.sessionId,version:t.version,gitBranch:t.gitBranch,cwd:t.cwd,slug:t.slug,name:t.name,model:t.model||_.length>0&&_[_.length-1].model||"",turns:_,stats:g,rawMessages:o,branchedFrom:t.branchedFrom,agentKind:t.agentKind}}const ue="<task-notification>",Cn=/<task-id>([^<]+)<\/task-id>/g,xn=/<tool-use-id>([^<]+)<\/tool-use-id>/g;function W(t){return typeof t=="object"&&t!==null}function In(t){const e=W(t.message)?t.message:null,n=e==null?void 0:e.content;return typeof n=="string"?[n]:Array.isArray(n)?n.filter(s=>W(s)&&typeof s.text=="string").map(s=>s.text):[]}function An(t){const e=[],n=new Map,s=new Set,o=new Set;function i(f,m){n.has(f)||n.set(f,m)}function l(f,m,d){if(f.includes(ue)){for(const b of f.matchAll(Cn))i(b[1],m),d==null||d.add(b[1]);for(const b of f.matchAll(xn))i(b[1],m),d==null||d.add(b[1])}}for(const[f,m]of t.entries()){if(m.type==="user"){const d=W(m.toolUseResult)?m.toolUseResult:null;if((d==null?void 0:d.status)==="async_launched"){const b=W(m.message)?m.message:null,_=(Array.isArray(b==null?void 0:b.content)?b.content:[]).filter(x=>W(x)&&x.type==="tool_result").map(x=>x.tool_use_id),g=[d.agentId,d.taskId,..._].filter(x=>typeof x=="string"&&x.length>0),E=[d.description,d.workflowName,d.summary].find(x=>typeof x=="string"&&x.length>0)??"",N=_.find(x=>typeof x=="string"&&x.length>0),T=typeof m.timestamp=="string"?m.timestamp:void 0;g.length>0&&e.push({ids:g,launch:{agent:{description:E,startedAt:T,toolUseId:N},launchedAt:f}})}for(const b of In(m))l(b,f,o);continue}if(m.type==="assistant"){const d=W(m.message)?m.message:null,b=Array.isArray(d==null?void 0:d.content)?d.content:[];for(const M of b){if(!W(M)||M.type!=="tool_use"||M.name!=="TaskStop")continue;const _=W(M.input)?M.input:null,g=(_==null?void 0:_.task_id)??(_==null?void 0:_.shell_id);typeof g=="string"&&i(g,f)}continue}if(m.type==="attachment"){const d=W(m.attachment)?m.attachment:null;typeof(d==null?void 0:d.prompt)=="string"&&l(d.prompt,f,o);continue}if(m.type==="queue-operation"&&typeof m.content=="string"){const d=m.operation;l(m.content,f,d==="enqueue"?s:o)}}return{launches:e.map(({ids:f,launch:m})=>{const d=f.flatMap(b=>n.get(b)??[]);return d.length>0?{...m,endedAt:Math.min(...d)}:m}),undeliveredNotifications:[...s].filter(f=>!o.has(f)).length}}function Sn(t){var l,f;let e=0,n=null,s=!1;function o(m,d){const b={status:m,pendingQueue:Math.max(0,e)};return d&&(b.toolName=d),b}function i(){return n??(n=An(t))}for(let m=t.length-1;m>=0;m--){const d=t[m];if(d.type!=="queue-operation"){if(d.type==="progress"){const b=d.data;if((b==null?void 0:b.type)==="hook_progress"&&(b.decision??((l=b.hookSpecificOutput)==null?void 0:l.permissionDecision))==="defer")return o("deferred");break}break}}for(let m=t.length-1;m>=0;m--){const d=t[m];if(d.type==="queue-operation"){if(typeof d.content=="string"&&d.content.includes(ue))continue;const b=d.operation;b==="enqueue"?e++:(b==="dequeue"||b==="remove")&&e--;continue}if(d.type==="attachment"){const b=W(d.attachment)?d.attachment:null;(b==null?void 0:b.commandMode)==="task-notification"&&(s=!0);continue}if(d.type==="assistant"){const b=d.message,M=b==null?void 0:b.stop_reason;if(M==="end_turn"){const _=i();if(s||_.undeliveredNotifications>0)return o("processing");const g=It(_.launches,Math.max(0,e));if(g)return g;let E=!1;for(let N=m-1;N>=0;N--){const T=t[N];if(T.type==="user"&&!T.isMeta){E=!0;break}}return o(E?"completed":"idle")}if(M==="tool_use"){const _=b==null?void 0:b.content,g=(f=_==null?void 0:_.findLast)==null?void 0:f.call(_,E=>E.type==="tool_use");return o("tool_use",g==null?void 0:g.name)}return o("thinking")}if(d.type==="user"){if(d.isMeta)continue;return o("processing")}if(d.type==="system"&&d.subtype==="terminal_reason"){const b=d.reason;if(b)return{status:"completed",terminalReason:b,pendingQueue:Math.max(0,e)};continue}d.type!=="summary"&&d.type==="system"&&d.subtype}return{status:"idle"}}function wn(t,e,n){const s=typeof t.sessionId=="string"?t.sessionId:"";return{record:{...t,sessionId:e,branchedFrom:{sessionId:s,turnIndex:n}},originalId:s}}function Mn(t){return ne(t).turnStartIndices}function de(t,e,n){if(!e)return;t.assistantText.push(e);const s=t.contentBlocks[t.contentBlocks.length-1];if((s==null?void 0:s.kind)==="text"){s.text.push(e);return}t.contentBlocks.push({kind:"text",text:[e],timestamp:n})}function pe(t){return t.includes("*** Begin Patch")&&t.includes("*** End Patch")}function En(t){if(!t.includes("apply_patch")||!t.includes("*** Begin Patch"))return[];const e=new Map;for(let l=0;l<t.length;l++){const f=Jt(t,l);if(f){if(pe(f.value)){const m=t.slice(0,l).match(/(?:^|[;\n])\s*(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*$/);m&&e.set(m[1],f.value)}l=f.endIndex-1}}const n=[],s=new Set,o=/\btools\s*\.\s*apply_patch\s*\(/g;let i;for(;(i=o.exec(t))!==null;){let l=i.index+i[0].length;for(;/\s/.test(t[l]??"");)l++;const f=Jt(t,l),m=f?null:t.slice(l).match(/^([A-Za-z_$][\w$]*)/),d=(f==null?void 0:f.value)??(m?e.get(m[1]):void 0);!d||!pe(d)||s.has(d)||(s.add(d),n.push(d))}return n}function fe(t,e){if(!e||t.startsWith("/")||/^[A-Za-z]:[\\/]/.test(t))return t;const n=e.replace(/[\\/]+$/,""),s=t.replace(/^\.[\\/]/,"");return/^[A-Za-z]:[\\/]/.test(e)?`${n}\\${s.replace(/\//g,"\\")}`:`${n}/${s}`}function me(t,e,n,s=""){var m,d;const o=[],i=/^\*\*\*\s+(Update File|Add File|Delete File):\s*(.+)$/gm,l=[];let f;for(;(f=i.exec(t))!==null;)l.push({action:f[1],filePath:f[2].trim(),headerIdx:f.index,startIdx:f.index+f[0].length});for(let b=0;b<l.length;b++){const M=l[b],_=b+1<l.length?l[b+1].headerIdx:t.length,g=t.slice(M.startIdx,_),E=(d=(m=g.match(/^\*\*\*\s+Move to:\s*(.+)$/m))==null?void 0:m[1])==null?void 0:d.trim(),N=fe(M.filePath,s),T=fe(E||M.filePath,s),x=g.split(/^@@.*$/m).filter($=>$.trim()),R=[],P=[];for(const $ of x)for(const U of $.split(`
|
|
8
|
-
`))U.startsWith("-")?R.push(U.slice(1)):U.startsWith("+")?P.push(U.slice(1)):U.startsWith(" ")&&(R.push(U.slice(1)),P.push(U.slice(1)));const j=l.length>1?`${e}:file-${b}`:e;M.action==="Add File"?o.push({id:j,name:"Write",input:{file_path:T,content:P.join(`
|
|
9
|
-
`)},result:null,isError:!1,timestamp:n}):M.action==="Delete File"?o.push({id:j,name:"Edit",input:{file_path:T,old_string:R.join(`
|
|
10
|
-
`),new_string:""},result:null,isError:!1,timestamp:n}):o.push({id:j,name:"Edit",input:{file_path:T,...E?{old_path:N}:{},old_string:R.join(`
|
|
11
|
-
`),new_string:P.join(`
|
|
12
|
-
`)},result:null,isError:!1,timestamp:n})}return o}function vn(t,e,n,s,o=""){return t==="apply_patch"?me(e,n,s,o):En(e).flatMap((i,l)=>me(i,`${n}:patch-${l}`,s,o))}function Nn(t,e,n){var f;if(!e||!/(?:apply[_ ]patch|invalid patch|invalid context|failed to (?:apply|find)|could not apply)/i.test(t))return new Set;const s=new Map;for(const m of n){const d=(f=m.id.match(/:patch-(\d+)(?::file-\d+)?$/))==null?void 0:f[1];if(d===void 0)continue;const b=Number(d),M=s.get(b)??[];M.push(m),s.set(b,M)}if(s.size===0)return new Set(n.map(m=>m.id));const o=t.toLowerCase().replaceAll("\\","/"),i=new Set;for(const[m,d]of s)d.some(b=>{const M=String(b.input.file_path??"").toLowerCase().replaceAll("\\","/");if(!M)return!1;const g=M.split("/").filter(Boolean).slice(-2).join("/");return o.includes(M)||g.includes("/")&&o.includes(g)})&&i.add(m);for(const m of o.matchAll(/\bpatch\s*(?:#|-)?\s*(\d+)\b/g)){const d=Number(m[1]);s.has(d)&&i.add(d)}i.size===0&&i.add(Math.max(...s.keys()));const l=Math.min(...i);for(const m of s.keys())m>=l&&i.add(m);return new Set([...i].flatMap(m=>{var d;return((d=s.get(m))==null?void 0:d.map(b=>b.id))??[]}))}function q(t){return typeof t=="object"&&t!==null}const Rn=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"]]),Pn=new Set(["exec","exec_command","write_stdin","apply_patch","update_plan","view_image","request_user_input","request_user_input_async","tool_search","list_mcp_resources","list_mcp_resource_templates","read_mcp_resource","request_plugin_install","create_goal","get_goal","update_goal","wait"]);function G(t){if(t.startsWith("mcp__"))return t;const e=t.split(/(?:__|[.:/])+/).filter(Boolean).at(-1)??t;return Rn.get(e)??(Pn.has(e)?e:t)}function Bn(t){const e=t==null?void 0:t.match(/Process exited with code (\d+)/);return e?e[1]!=="0":!1}function Dn(t){return t==="request_user_input"||t==="request_user_input_async"}function Fn(t){const n=(Array.isArray(t.questions)?t.questions:[t]).filter(s=>q(s)).map(s=>{const o=typeof s.question=="string"?s.question:typeof s.title=="string"?s.title:"",i=Array.isArray(s.options)?s.options:[];return{question:o,...typeof s.header=="string"&&s.header?{header:s.header}:{},options:i.map(l=>typeof l=="string"?{label:l}:!q(l)||typeof l.label!="string"?null:{label:l.label,...typeof l.description=="string"&&l.description?{description:l.description}:{}}).filter(l=>l!==null)}}).filter(s=>s.question);return n.length>0?{...t,questions:n}:t}function Un(t){return{todos:(Array.isArray(t.plan)?t.plan:[]).filter(s=>q(s)).map(s=>({content:typeof s.step=="string"?s.step:"",status:typeof s.status=="string"?s.status:"pending",activeForm:typeof s.step=="string"?s.step:""}))}}function $n(t){if(t.type!=="image"&&t.type!=="input_image"&&t.type!=="image_url")return null;const e=q(t.source)?t.source:t,n=e.media_type??e.mimeType;if(typeof n=="string"&&n.startsWith("image/")&&typeof e.data=="string"&&e.data)return{type:"image",source:{type:"base64",media_type:n,data:e.data}};const s=q(t.image_url)?t.image_url.url:t.image_url,o=typeof s=="string"?/^data:(image\/[^;,]+);base64,(.+)$/is.exec(s):null;return o?{type:"image",source:{type:"base64",media_type:o[1].toLowerCase(),data:o[2]}}:null}function ge(t){if(typeof t=="string")return{parts:[t],text:t,images:[]};if(!Array.isArray(t)){const s=t==null?"":JSON.stringify(t);return{parts:[s],text:s,images:[]}}const e=[],n=[];for(const s of t){if(!q(s))continue;typeof s.text=="string"&&e.push(s.text);const o=$n(s);o&&n.push(o)}return{parts:e,text:e.join(""),images:n}}const On=/^Script (?:completed|failed|running)\b/;function he(t,e){q(t)&&(t.status==="rejected"?e.push(1):t.status==="fulfilled"?he(t.value,e):typeof t.exit_code=="number"&&e.push(t.exit_code))}function jn(t){const e=t[0]??"";if(!On.test(e))return;if(e.startsWith("Script failed"))return!0;const n=[];for(const s of t.slice(1)){let o;try{o=JSON.parse(s)}catch{continue}for(const i of Array.isArray(o)?o:[o])he(i,n)}return n.length>0?n.some(s=>s!==0):void 0}function Et(t){const e=ge(t);let n=q(t)&&!Array.isArray(t)?t:null;try{const d=n??JSON.parse(e.text);q(d)&&!Array.isArray(d)&&(n=d)}catch{}const s=n&&("output"in n||"content"in n)?ge(n.output??n.content):e,o=s===e?e.images:[...e.images,...s.images],i=q(n==null?void 0:n.metadata)?n.metadata:null,l=(i==null?void 0:i.exit_code)??(n==null?void 0:n.exit_code),f=typeof(n==null?void 0:n.isError)=="boolean"?n.isError:typeof(n==null?void 0:n.is_error)=="boolean"?n.is_error:void 0,m=f===!0||(typeof l=="number"?l!==0:f??jn(e.parts)??Bn(s.text));return{text:s.text,isError:m,...o.length>0?{images:o}:{}}}const Ln=["# AGENTS.md instructions for ","<recommended_plugins>","<environment_context>","<permissions instructions>","<collaboration_mode>","<skills_instructions>"];function Wn(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 vt(t){try{return JSON.parse(t)}catch{return null}}function D(t){return typeof t=="object"&&t!==null}function qn(t){const e=D(t.source)?t.source:null,n=e&&D(e.subagent)?e.subagent:null,s=n&&D(n.thread_spawn)?n.thread_spawn:null;for(const o of[t.forked_from_id,t.parent_thread_id,s==null?void 0:s.parent_thread_id])if(typeof o=="string"&&o)return o;return null}function K(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 mt(t,e){const n=t==null?void 0:t.content;return Array.isArray(n)?n.filter(s=>D(s)&&s.type===e&&typeof s.text=="string").map(s=>s.text).join(`
|
|
13
|
-
`).trim():""}const zn=/^data:(image\/(?:png|jpeg|gif|webp));base64,(.+)$/is,Vn=/^data:(audio\/(?:wav|x-wav|mpeg|mp4|webm|ogg));base64,(.+)$/is;function ye(t){if(typeof t!="string")return null;const e=zn.exec(t);return!(e!=null&&e[1])||!e[2]?null:{type:"image",source:{type:"base64",media_type:e[1].toLowerCase(),data:e[2]}}}function _e(t){if(typeof t!="string")return null;const e=Vn.exec(t);return!(e!=null&&e[1])||!e[2]?null:{type:"audio",source:{type:"base64",media_type:e[1].toLowerCase(),data:e[2]}}}function Jn(t){return Array.isArray(t.images)?t.images.map(ye).filter(e=>e!==null):[]}function Gn(t){return Array.isArray(t.audio)?t.audio.map(_e).filter(e=>e!==null):[]}function ke(t){return Array.isArray(t.content)?t.content.filter(e=>D(e)&&e.type==="input_image").map(e=>ye(e.image_url)).filter(e=>e!==null):[]}function be(t){return Array.isArray(t.content)?t.content.filter(e=>D(e)&&e.type==="input_audio").map(e=>_e(e.audio_url)).filter(e=>e!==null):[]}function Te(t,e,n=[],s=[],o=[]){const i=[...s.map(f=>`
|
|
14
|
-
`),...o.map(f=>`
|
|
15
|
-
[audio attachment](<${f}>)`)].join(""),l=t+i;return e.length===0&&n.length===0?l:[...e,...n,...l?[{type:"text",text:l}]:[]]}function Kn(t){var l,f;const e=mt(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 o=((f=(l=e.slice(0,n.index).match(/^Message Type:\s*([^\r\n]+)/))==null?void 0:l[1])==null?void 0:f.trim().toUpperCase())??null,i=e.slice(n.index+n[0].length).trim();return{messageType:o,text:i}}function tt(t){return t.split(/[\\/]/).filter(Boolean).at(-1)??null}function Qn(t){if(typeof t!="string")return"";const e=t.trim();return/^gAAAAA[A-Za-z0-9_-]+$/.test(e)?"":e}function Nt(t){const e=t.trim();return!e||Ln.some(n=>e.startsWith(n))?"":e}function Hn(t){if(!D(t))return null;const e=typeof t.input_tokens=="number"?t.input_tokens:0,n=typeof t.output_tokens=="number"?t.output_tokens:0,s=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,o=typeof t.cached_input_tokens=="number"?Math.max(0,t.cached_input_tokens):null,i=o??(typeof t.cache_read_input_tokens=="number"?t.cache_read_input_tokens:0),l=o===null?e:Math.max(0,e-o);return l===0&&n===0&&s===0&&i===0?null:{input_tokens:l,output_tokens:n,cache_creation_input_tokens:s,cache_read_input_tokens:i}}function Zn(t,e,n){if(!e)return;const s={type:"thinking",thinking:e,signature:""};t.thinking.push(s);const o=t.contentBlocks[t.contentBlocks.length-1];if(o&&o.kind==="thinking"){o.blocks.push(s);return}t.contentBlocks.push({kind:"thinking",blocks:[s],timestamp:n})}function Q(t,e,n){t.toolCalls.push(e);const s=t.contentBlocks[t.contentBlocks.length-1];if(s&&s.kind==="tool_calls"&&s.timestamp===n){s.toolCalls.push(e);return}t.contentBlocks.push({kind:"tool_calls",toolCalls:[e],timestamp:n})}function Xn(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 o=new Date(e.timestamp).getTime(),i=new Date(n).getTime();Number.isFinite(o)&&Number.isFinite(i)&&i>=o&&(e.durationMs=i-o)}return t.push(e),null}function Ce(t){if(typeof t!="string"||!t.trim())return{};try{const e=JSON.parse(t);return D(e)?e:{value:e}}catch{return{raw:t}}}function et(t){if(typeof t=="string")return t;try{return JSON.stringify(t)}catch{return String(t??"")}}function xe(...t){return t.find(e=>typeof e=="string")}function Yn(t){return t.startsWith("exec-")}function ts(t){var o;if(!D(t))return{text:et(t),isError:!1};if("Err"in t)return{text:et(t.Err),isError:!0};const e=D(t.Ok)?t.Ok:null;if(!e)return{text:et(t),isError:!1};const n=Et({...e,content:e.content}),s=n.text||((o=n.images)!=null&&o.length?"":e.structuredContent!==void 0?et(e.structuredContent):et(e));return{...n,text:s,isError:n.isError}}function es(t,e,n){return{id:t?`${t}@${e}`:Wn("codex-turn"),userMessage:null,contentBlocks:[],thinking:[],assistantText:[],toolCalls:[],subAgentActivity:[],timestamp:e,durationMs:null,tokenUsage:null,model:n}}function Ie(t){return t.type==="event_msg"&&D(t.payload)&&t.payload.type==="user_message"&&typeof t.payload.message=="string"?Nt(t.payload.message):t.type==="response_item"&&D(t.payload)&&t.payload.type==="message"&&t.payload.role==="user"?Nt(mt(t.payload,"input_text")):""}function ns(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 Ie(t)!==""||ke(e).length>0||be(e).length>0}return!0}function Ae(t){let e="",n="",s="",o="",i="",l,f="",m="",d="",b="",M=0,_=!1,g=null,E="/root",N="";for(const T of t){if(!D(T.payload))continue;if(T.type==="session_meta"){if(e||(e=typeof T.payload.id=="string"?T.payload.id:""),n||(n=typeof T.payload.cli_version=="string"?T.payload.cli_version:""),o||(o=typeof T.payload.cwd=="string"?T.payload.cwd:""),!l&&D(T.payload.branchedFrom)){const j=typeof T.payload.branchedFrom.sessionId=="string"?T.payload.branchedFrom.sessionId:"";j&&(l={sessionId:j,turnIndex:typeof T.payload.branchedFrom.turnIndex=="number"?T.payload.branchedFrom.turnIndex:null})}const R=D(T.payload.source)?T.payload.source:null;if(R&&D(R.subagent)){_=!0;const j=D(R.subagent.thread_spawn)?R.subagent.thread_spawn:null;j&&typeof j.agent_path=="string"&&(E=j.agent_path)}g=qn(T.payload)??g;const P=D(T.payload.git)?T.payload.git:null;s||(s=P&&typeof P.branch=="string"?P.branch:"")}T.type==="turn_context"&&(i||(i=typeof T.payload.model=="string"?T.payload.model:""),o||(o=typeof T.payload.cwd=="string"?T.payload.cwd:""));const x=Ie(T);x&&x!==N&&(f||(f=x),m=x,N=x,M++,d||(d=T.timestamp??""),b=T.timestamp??b)}return b===""&&(b=d),{sessionId:e,version:n,gitBranch:s,cwd:o,model:i,slug:"",name:"",branchedFrom:l,firstUserMessage:f,lastUserMessage:m,timestamp:d,lastTimestamp:b,turnCount:M,isSubagent:_,parentSessionId:g,agentPath:E}}function ss(t){for(const e of t.split(`
|
|
16
|
-
`)){const n=e.trim();if(n)return K(vt(n))}return!1}function os(t){return K(t[0]??null)}function is(t){const e=t.map(vt).filter(K);return Ae(e)}function Se(t,e){const n=Ae(t.filter(K)),s=[],o=new Map,i=new Map,l=new Map,f=new Map,m=new Map,d=new Map,b=new Map,M=new Map;function _(h,p,a,k={}){const u=m.get(h);let C=M.get(h);if(!C){const I={agentId:h,parentToolUseId:(u==null?void 0:u.parentToolCallId)||void 0,agentName:(u==null?void 0:u.nickname)??(u!=null&&u.agentPath?tt(u.agentPath):null),subagentType:(u==null?void 0:u.agentType)??null,type:"assistant",content:null,toolCalls:[],thinking:[],text:[],timestamp:(u==null?void 0:u.timestamp)??a,tokenUsage:null,model:(u==null?void 0:u.model)??null,isBackground:!1,prompt:(u==null?void 0:u.message)||void 0,status:k.status??"running"};p.subAgentActivity.push(I);const A=p.contentBlocks[p.contentBlocks.length-1];(A==null?void 0:A.kind)==="sub_agent"?A.messages.push(I):p.contentBlocks.push({kind:"sub_agent",messages:[I],timestamp:a}),C={message:I,turn:p},M.set(h,C)}const y=C.message;if(u&&(y.parentToolUseId=u.parentToolCallId||y.parentToolUseId,y.agentName=u.nickname??(u.agentPath?tt(u.agentPath):y.agentName),y.subagentType=u.agentType,y.model=u.model,y.prompt=u.message||y.prompt),k.text&&!y.text.includes(k.text)&&(y.text.push(k.text),y.content=y.text.join(`
|
|
17
|
-
|
|
18
|
-
`)),k.status){const I=new Set(["completed","failed","interrupted"]);if(k.status==="running"&&y.status&&I.has(y.status)||(y.status=k.status),I.has(k.status)&&y.timestamp&&a){const A=new Date(y.timestamp).getTime(),v=new Date(a).getTime();Number.isFinite(A)&&Number.isFinite(v)&&v>=A&&(y.durationMs=v-A)}}return y}let g=null,E=null,N=n.model||null,T="",x=null,R=!1;const P=[];let j=0,$=null,U=null;function S(h){const p=s.length,a=Xn(s,h,T);return s.length>p&&U!==null&&P.push(U),U=null,a}function r(h,p,a){const k=es(h,p,a);return U=$??j,$=null,R||(k.isFragment=!0),x&&(k.compactionSummary=x,x=null),k}function c(h,p,a,k,u){const C=i.get(p);if(C){C.input={...C.input,...a},C.result=k,C.isError=k==="failed";return}const y={id:p,name:"WebSearch",input:a,result:k,isError:k==="failed",timestamp:u};i.set(p,y),Q(h,y,u)}for(let h=0;h<t.length;h++){const p=t[h];if(!K(p))continue;j=h;const a=D(p.payload)?p.payload:void 0,k=p.timestamp??"";if(p.type==="compacted"){g=S(g),x="Conversation compacted",T=k;continue}if(p.type!=="world_state"){if(p.type==="turn_context"){g=S(g),$=h,E=typeof(a==null?void 0:a.turn_id)=="string"?a.turn_id:null,N=typeof(a==null?void 0:a.model)=="string"?a.model:N,T=k,R=!0;continue}if(p.type==="event_msg"&&(a==null?void 0:a.type)==="user_message"&&typeof a.message=="string"){g&&(g.assistantText.length>0||g.toolCalls.length>0||g.thinking.length>0)&&(g=S(g)),R=!0,g??(g=r(E,k,N));const u=(Array.isArray(a.local_images)?a.local_images:[]).filter(y=>typeof y=="string"&&y.length>0),C=(Array.isArray(a.local_audio)?a.local_audio:[]).filter(y=>typeof y=="string"&&y.length>0);g.userMessage=Te(a.message,Jn(a),Gn(a),u,C),g.isFragment=!1,g.timestamp=g.timestamp||k,T=k;continue}if(!(!g&&!ns(p,a))){if(g??(g=r(E,k,N)),!g.model&&N&&(g.model=N),g.timestamp||(g.timestamp=k),k&&(T=k),p.type==="event_msg"&&(a==null?void 0:a.type)==="token_count"){const u=D(a.info)?a.info:null,C=u?Hn(u.last_token_usage):null;C&&(g.tokenUsage=J(g.tokenUsage,C));continue}if(p.type==="event_msg"&&(a==null?void 0:a.type)==="web_search_end"&&typeof a.call_id=="string"){const u={};typeof a.query=="string"&&a.query&&(u.query=a.query),D(a.action)&&(u.action=a.action),c(g,a.call_id,u,"completed",k);continue}if(p.type==="event_msg"&&(a==null?void 0:a.type)==="mcp_tool_call_end"&&typeof a.call_id=="string"&&D(a.invocation)){const u=a.invocation,C=typeof u.server=="string"?u.server:"mcp",y=typeof u.tool=="string"?u.tool:"tool",I=D(u.arguments)?u.arguments:{},A=ts(a.result),v=o.get(a.call_id);v?(v.result=A.text,v.isError=A.isError,A.images&&(v.resultImages=A.images),o.delete(a.call_id)):Yn(a.call_id)||Q(g,{id:a.call_id,name:`mcp__${C}__${y}`,input:I,result:A.text,isError:A.isError,...A.images?{resultImages:A.images}:{},timestamp:k},k);continue}if(p.type==="event_msg"&&(a==null?void 0:a.type)==="sub_agent_activity"&&typeof a.agent_thread_id=="string"&&typeof a.agent_path=="string"){const u=a.agent_thread_id,C=typeof a.event_id=="string"?a.event_id:"",y=typeof a.kind=="string"?a.kind:"started",I=C?f.get(C):void 0,A=d.get(a.agent_path),v=m.get(u)??(A?m.get(A):void 0);if(y!=="started"&&!v&&!I)continue;if(A&&A!==u&&!M.has(u)){const F=M.get(A);F&&(F.message.agentId=u,M.delete(A),M.set(u,F)),m.delete(A)}const O={agentId:u,nickname:(v==null?void 0:v.nickname)??tt(a.agent_path)??(I==null?void 0:I.taskName)??null,agentPath:a.agent_path,message:(v==null?void 0:v.message)??(I==null?void 0:I.message)??"",model:(v==null?void 0:v.model)??(I==null?void 0:I.model)??null,agentType:(v==null?void 0:v.agentType)??(I==null?void 0:I.agentType)??null,timestamp:(v==null?void 0:v.timestamp)??(k||(I==null?void 0:I.timestamp)||""),parentToolCallId:(v==null?void 0:v.parentToolCallId)??C};m.set(u,O),d.set(a.agent_path,u),C&&(y==="started"||I)&&b.set(C,u),_(u,g,k,{status:y==="interrupted"?"interrupted":"running"});continue}if(!(p.type!=="response_item"||!a)){if(a.type==="reasoning"){const u=Array.isArray(a.summary)?a.summary.filter(C=>typeof C=="string").join(`
|
|
19
|
-
`):"";Zn(g,u.trim(),k);continue}if(a.type==="message"&&a.role==="assistant"){de(g,mt(a,"output_text"),k);continue}if(a.type==="message"&&a.role==="user"&&g.userMessage===null){const u=Nt(mt(a,"input_text")),C=ke(a),y=be(a);(u||C.length>0||y.length>0)&&(g.userMessage=Te(u,C,y),g.isFragment=!1,R=!0);continue}if(a.type==="web_search_call"&&typeof a.id=="string"){const u={};D(a.action)&&(u.action=a.action);const C=typeof a.status=="string"?a.status:"completed";c(g,a.id,u,C,k);continue}if(a.type==="tool_search_call"){const u=xe(a.call_id,a.id)??"";if(u){const C={id:u,name:"ToolSearch",input:D(a.arguments)?a.arguments:{},result:null,isError:!1,timestamp:k};o.set(u,C),Q(g,C,k)}continue}if(a.type==="tool_search_output"&&typeof a.call_id=="string"){const u=o.get(a.call_id);if(u){const C=Array.isArray(a.tools)?a.tools:[],y=C.filter(D).map(v=>xe(v.name)??"").filter(Boolean),I=y.length>0?y.length:C.length,A=`Found ${I} tool${I===1?"":"s"}`;u.result=y.length>0?`${A}: ${y.join(", ")}`:A,u.isError=a.status==="failed",o.delete(a.call_id)}continue}if(a.type==="agent_message"&&typeof a.author=="string"){const u=a.author,C=typeof a.recipient=="string"?a.recipient:null,y=Kn(a);if(y.messageType==="NEW_TASK")continue;const I=d.get(u),A=u.startsWith(`${n.agentPath}/`)&&(C===null||C===n.agentPath);if(!I&&!A)continue;const v=I??u;I||(m.set(v,{agentId:v,nickname:tt(u),agentPath:u,message:"",model:null,agentType:null,timestamp:k,parentToolCallId:""}),d.set(u,v));let O;y.messageType==="FINAL_ANSWER"?O="completed":y.messageType==="ERROR"||y.messageType==="FAILED"?O="failed":y.messageType==="INTERRUPTED"?O="interrupted":y.messageType==="MESSAGE"&&(O="running"),_(v,g,k,{status:O,text:y.text||void 0});continue}if(a.type==="function_call"&&typeof a.call_id=="string"){const u=typeof a.name=="string"?a.name:"tool",C=G(u),y=Ce(a.arguments);let I=C,A=y;C==="exec_command"?I="Bash":C==="update_plan"?(I="TodoWrite",A=Un(y)):Dn(C)&&(I="AskUserQuestion",A=Fn(y)),C==="spawn_agent"&&f.set(a.call_id,{callId:a.call_id,message:Qn(y.message),taskName:typeof y.task_name=="string"?y.task_name:null,model:typeof y.model=="string"?y.model:null,agentType:typeof y.agent_type=="string"?y.agent_type:null,timestamp:k});const v={id:a.call_id,name:I,input:A,result:null,isError:!1,timestamp:k,...C==="request_user_input_async"?{asyncQuestion:!0}:{}};o.set(v.id,v),Q(g,v,k);continue}if(a.type==="function_call_output"&&typeof a.call_id=="string"){const u=o.get(a.call_id);if(!u)continue;const C=Et(a.output),y=C.text;if(u.result=y,u.isError=C.isError,C.images&&(u.resultImages=C.images),o.delete(a.call_id),u.name==="spawn_agent"&&y)try{const I=JSON.parse(y),A=typeof I.agent_id=="string"?I.agent_id:b.get(u.id)??"",v=typeof I.task_name=="string"?I.task_name:null,O=typeof I.nickname=="string"?I.nickname:v?tt(v):null;if(A){const B=f.get(u.id),F=m.get(A),H={agentId:A,nickname:O??(F==null?void 0:F.nickname)??(B==null?void 0:B.taskName)??null,agentPath:v??(F==null?void 0:F.agentPath)??null,message:(F==null?void 0:F.message)??(B==null?void 0:B.message)??"",model:(F==null?void 0:F.model)??(B==null?void 0:B.model)??null,agentType:(F==null?void 0:F.agentType)??(B==null?void 0:B.agentType)??null,timestamp:(F==null?void 0:F.timestamp)??(B==null?void 0:B.timestamp)??k,parentToolCallId:(F==null?void 0:F.parentToolCallId)??u.id};m.set(A,H),b.set(u.id,A),H.agentPath&&d.set(H.agentPath,A),_(A,g,k,{status:"running"})}}catch{}if(u.name==="wait_agent"&&y&&g)try{const I=JSON.parse(y),A=D(I.status)?I.status:{};for(const[v,O]of Object.entries(A)){const B=D(O)?O:{},F=typeof B.completed=="string"?B.completed:"",H=typeof B.failed=="string"?B.failed:typeof B.error=="string"?B.error:"",Ve=typeof B.interrupted=="string"?B.interrupted:"",Os=F?"completed":H?"failed":Ve?"interrupted":typeof B.status=="string"?B.status:"running";m.has(v)||m.set(v,{agentId:v,nickname:null,agentPath:null,message:"",model:null,agentType:null,timestamp:k,parentToolCallId:""}),_(v,g,k,{status:Os,text:F||H||Ve||void 0})}}catch{}continue}if(a.type==="custom_tool_call"&&typeof a.call_id=="string"){const u=G(typeof a.name=="string"?a.name:"tool"),C=typeof a.input=="string"?a.input:"",y=a.call_id,I=C?vn(u,C,y,k,n.cwd):[];if(u!=="apply_patch"){const A={id:y,name:u==="exec_command"?"Bash":u,input:Ce(C),result:null,isError:!1,timestamp:k};o.set(A.id,A),Q(g,A,k)}for(const A of I)o.set(A.id,A),Q(g,A,k);I.length>0&&l.set(y,{calls:I,direct:u==="apply_patch"});continue}if(a.type==="custom_tool_call_output"&&typeof a.call_id=="string"){const u=a.call_id,{text:C,isError:y,images:I}=Et(a.output),A=l.get(u);if(A){const O=A.direct&&y?new Set(A.calls.map(B=>B.id)):Nn(C,y,A.calls);for(const B of A.calls){const F=o.get(B.id);F&&(F.result=C,F.isError=O.has(F.id),o.delete(F.id))}l.delete(u)}const v=o.get(u);v&&(v.result=C,v.isError=y,I&&(v.resultImages=I),o.delete(u));continue}}}}}return S(g),{turnStartIndices:P,sessionId:n.sessionId,version:n.version,gitBranch:n.gitBranch,cwd:n.cwd,slug:n.slug,name:"",model:n.model,turns:s,stats:e!=null&&e.skipStats?ct(s.length):ut(s),rawMessages:e!=null&&e.skipStats?[]:t,branchedFrom:n.branchedFrom,agentKind:"codex"}}function we(t,e){const n=t.split(`
|
|
20
|
-
`).map(i=>i.trim()).filter(Boolean).map(vt).filter(K),{turnStartIndices:s,...o}=Se(n,e);return o}function rs(t,e){const n=t.rawMessages.map(s=>JSON.stringify(s)).join(`
|
|
21
|
-
`);return we(n?`${n}
|
|
22
|
-
${e}`:e)}const as=new Set(["FINAL_ANSWER","ERROR","FAILED","INTERRUPTED"]);function ls(t){const e=t.content;return Array.isArray(e)?e.filter(n=>D(n)&&n.type==="input_text"&&typeof n.text=="string").map(n=>n.text).join(`
|
|
23
|
-
`):""}function gt(t){if(typeof t!="string")return null;try{const e=JSON.parse(t);return D(e)?e:null}catch{return null}}function cs(t){var b,M;const e=new Map,n=new Set,s=new Map,o=new Map,i=new Map,l=new Set,f=new Map;function m(_,g,E,N){if(s.has(_))return;n.add(_);const T=e.get(_);T?T.description||(T.description=g):e.set(_,{launchedAt:E,description:g,startedAt:N})}function d(_,g){s.has(_)||s.set(_,g),n.delete(_)}for(const[_,g]of t.entries()){const E=D(g.payload)?g.payload:null;if(!E)continue;const N=typeof g.timestamp=="string"?g.timestamp:void 0;if(g.type==="event_msg"&&E.type==="sub_agent_activity"&&typeof E.agent_thread_id=="string"&&typeof E.agent_path=="string"){const T=E.agent_thread_id,x=typeof E.kind=="string"?E.kind:"started",R=typeof E.event_id=="string"?E.event_id:"",P=o.get(E.agent_path),j=n.has(T)||s.has(T)||P!==void 0||i.has(R);if(x!=="started"&&!j)continue;if(P&&P!==T){const $=e.get(P);e.delete(P);const U=e.get(T);$&&!U?e.set(T,$):$&&U&&!U.description&&(U.description=$.description),n.delete(P)&&m(T,"",_,N);const S=s.get(P);S!==void 0&&d(T,S)}o.set(E.agent_path,T),x==="interrupted"?d(T,_):m(T,i.get(R)??"",_,N);continue}if(g.type==="response_item"){if(E.type==="function_call"&&typeof E.call_id=="string"){const T=G(typeof E.name=="string"?E.name:"");if(T==="spawn_agent"){const x=gt(E.arguments);i.set(E.call_id,typeof(x==null?void 0:x.task_name)=="string"?x.task_name:"")}else if(T==="wait_agent")l.add(E.call_id);else if(T==="interrupt_agent"){const x=gt(E.arguments),R=[x==null?void 0:x.agent_id,...Array.isArray(x==null?void 0:x.agent_ids)?x.agent_ids:[]].filter(P=>typeof P=="string");f.set(E.call_id,R)}continue}if(E.type==="function_call_output"&&typeof E.call_id=="string"){const T=E.call_id;if(i.has(T)){const x=gt(E.output),R=typeof(x==null?void 0:x.agent_id)=="string"?x.agent_id:"";if(R){m(R,i.get(T)??"",_,N);const P=typeof(x==null?void 0:x.task_name)=="string"?x.task_name:"";P&&!o.has(P)&&o.set(P,R)}}else if(l.has(T)){const x=gt(E.output),R=D(x==null?void 0:x.status)?x.status:{};for(const[P,j]of Object.entries(R)){const $=D(j)?j:{},U=typeof $.status=="string"?$.status:"";(typeof $.completed=="string"||typeof $.failed=="string"||typeof $.error=="string"||typeof $.interrupted=="string"||U==="completed"||U==="failed"||U==="interrupted")&&d(P,_)}}else if(f.has(T))for(const x of f.get(T)??[])d(x,_);continue}if(E.type==="agent_message"&&typeof E.author=="string"){const x=((M=(b=ls(E).match(/^Message Type:\s*([^\r\n]+)/))==null?void 0:b[1])==null?void 0:M.trim().toUpperCase())??"";if(!as.has(x))continue;d(o.get(E.author)??E.author,_)}}}return[...e.entries()].map(([_,{description:g,startedAt:E,launchedAt:N}])=>({agent:{description:g,startedAt:E},launchedAt:N,endedAt:n.has(_)?void 0:s.get(_)??N}))}function us(t){for(let e=t.length-1;e>=0;e--){const n=t[e];if(n.type==="event_msg"){const s=n.payload;switch(s==null?void 0:s.type){case"task_complete":return It(cs(t))??{status:"completed"};case"task_started":return{status:"processing"};case"agent_message":return{status:"thinking"};case"token_count":continue}}if(n.type==="response_item"){const s=n.payload;if(!s)continue;if(s.type==="function_call")return{status:"tool_use",toolName:s.name?G(s.name):s.name};if(s.type==="message"){if(s.role==="assistant")return{status:"thinking"};if(s.role==="user")return{status:"processing"}}}}return{status:"idle"}}function ds(t,e,n,s){const o=D(t.payload)?{...t.payload}:{},i=typeof o.id=="string"?o.id:"";return o.id=e,o.branchedFrom={sessionId:i,turnIndex:n,at:new Date(s).toISOString()},{record:{...t,payload:o},originalId:i}}function ps(t){return Se(t,{skipStats:!0}).turnStartIndices}const fs=/^(?:assistant|auto_mode|auto_mode_switch|background_tasks|canvas|command|custom|elicitation|exit_plan_mode|extensions|external_tool|factory|hook|managed_settings|mcp|model|pending_messages|permission|sampling|session|skill|subagent|system|tool|ui|user_input)\./;function L(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Me(t){return typeof t.agentId!="string"||t.agentId.length===0}function Ee(t){return!L(t)||typeof t.type!="string"||!L(t.data)?!1:t.type==="abort"||t.type==="binary_asset"||t.type==="user.message"||fs.test(t.type)}function ve(t){try{const e=JSON.parse(t);return Ee(e)?e:null}catch{return null}}function ms(t){return t.split(`
|
|
24
|
-
`).map(e=>e.trim()).filter(Boolean).map(ve).filter(e=>e!==null)}function w(...t){return t.find(e=>typeof e=="string")??""}function z(t){return typeof t=="number"&&Number.isFinite(t)?t:0}function nt(t){return typeof t.timestamp=="string"?t.timestamp:""}function V(t,e){var n,s;return typeof t.id=="string"&&t.id?t.id:((s=(n=globalThis.crypto)==null?void 0:n.randomUUID)==null?void 0:s.call(n))??`${e}-${Math.random().toString(36).slice(2,10)}`}function Ne(t){const e=V(t,"copilot-turn"),n=w(t.data.turnId);return n?`${n}@${e}`:e}function Rt(t,e){if(!L(t))return;const n=w(t.cwd),s=w(t.branch);n&&(e.cwd=n),s&&(e.gitBranch=s)}function Re(t){const e={sessionId:"",version:"",gitBranch:"",cwd:"",model:"",slug:"",name:"",firstUserMessage:"",lastUserMessage:"",timestamp:"",lastTimestamp:"",turnCount:0,isSubagent:!1,parentSessionId:null};for(const n of t){if(!Me(n))continue;const{data:s}=n,o=nt(n);if(o&&(e.lastTimestamp=o),n.type==="session.start"){e.sessionId||(e.sessionId=w(s.sessionId)),e.version||(e.version=w(s.copilotVersion)||(typeof s.version=="number"?String(s.version):w(s.version))),Rt(s.context,e),e.model=w(s.selectedModel)||e.model;continue}if(n.type==="session.resume"){Rt(s.context,e),e.model=w(s.selectedModel)||e.model;continue}if(n.type==="session.context_changed"){Rt(s,e);continue}if(n.type==="session.auto_mode_resolved"){e.model=w(s.chosenModel)||e.model;continue}if(n.type==="session.model_change"){e.model=w(s.newModel)||e.model;continue}if(n.type==="session.title_changed"){e.name=w(s.title)||e.name;continue}if(n.type==="session.shutdown"){e.model=w(s.currentModel)||e.model;continue}if((n.type==="assistant.turn_start"||n.type==="assistant.turn_end"||n.type==="assistant.message"||n.type==="assistant.usage"||n.type==="tool.execution_start"||n.type==="tool.execution_complete")&&(e.model=w(s.model)||e.model),n.type!=="user.message")continue;e.turnCount++,e.timestamp||(e.timestamp=o);const i=w(s.content).trim();i&&(e.firstUserMessage||(e.firstUserMessage=i),e.lastUserMessage=i)}return e.lastTimestamp||(e.lastTimestamp=e.timestamp),e}function gs(t){for(const e of t.split(`
|
|
25
|
-
`)){const n=e.trim();if(n)try{const s=JSON.parse(n);if(Ee(s))return!0}catch{}}return!1}function hs(t){var e;return vs((e=t[0])==null?void 0:e.type)}function ys(t){const e=t.map(n=>ve(n.trim())).filter(n=>n!==null);return Re(e)}function Pt(t){if(typeof t=="string")return t;if(t===void 0)return"";try{return JSON.stringify(t)}catch{return String(t)}}function Pe(t){return typeof t=="string"?t:Array.isArray(t)?t.flatMap(e=>{const n=typeof e=="string"?e:L(e)?w(e.text,e.content):"";return n?[n]:[]}).join(`
|
|
26
|
-
`):""}function _s(t){const e=new Map;for(const n of t){if(n.type!=="session.binary_asset"&&n.type!=="binary_asset")continue;const s=w(n.data.assetId),o=w(n.data.data),i=w(n.data.mimeType);s&&o&&i&&e.set(s,{data:o,mimeType:i})}return e}function ks(t,e){if(!L(t))return null;const n=e.get(w(t.assetId)),s=w(t.mimeType,n==null?void 0:n.mimeType).toLowerCase(),o=w(t.data,n==null?void 0:n.data);return!s.startsWith("image/")||!o?null:{type:"image",source:{type:"base64",media_type:s,data:o}}}function Be(t,e){if(!Array.isArray(t))return[];const n=[],s=new Set;for(const o of t){const i=ks(o,e);if(!i)continue;const l=`${i.source.media_type}:${i.source.data}`;s.has(l)||(s.add(l),n.push(i))}return n}function bs(t,e){const n=w(t.content),s=Be(t.attachments,e);return s.length===0?n:[...s,...n?[{type:"text",text:n}]:[]]}function Ts(t,e){return L(t.result)?Be([...Array.isArray(t.result.contents)?t.result.contents:[],...Array.isArray(t.result.binaryResultsForLlm)?t.result.binaryResultsForLlm:[]],e):[]}function Bt(t,e=!1){const n=z(t.cacheWriteTokens),s=z(t.cacheReadTokens),o=z(t.inputTokens),i={input_tokens:e?Math.max(0,o-n-s):o,output_tokens:z(t.outputTokens),cache_creation_input_tokens:n,cache_read_input_tokens:s},l=z(t.reasoningTokens);return l&&(i.output_tokens_details={thinking_tokens:l}),i.input_tokens===0&&i.output_tokens===0&&i.cache_creation_input_tokens===0&&i.cache_read_input_tokens===0&&l===0?null:i}function Cs(t){if(!L(t.modelMetrics))return null;let e=null;for(const n of Object.values(t.modelMetrics)){if(!L(n)||!L(n.usage))continue;const s=Bt(n.usage,!0);s&&(e=J(e,s))}return e}function xs(t){if(typeof t=="string")return{label:t};if(!L(t))return null;const e=w(t.label,t.title,t.value,t.name);if(!e)return null;const n=w(t.description);return n?{label:e,description:n}:{label:e}}function Is(t){return Array.isArray(t)?t.map(xs).filter(e=>e!==null):[]}function As(t){if(!L(t))return null;const e=w(t.question,t.prompt,t.text,t.message);if(!e)return null;const n=w(t.header,t.title),s=typeof t.multiSelect=="boolean"?t.multiSelect:typeof t.multi_select=="boolean"?t.multi_select:void 0;return{question:e,...n?{header:n}:{},options:Is(t.options??t.choices),...s===void 0?{}:{multiSelect:s}}}function Ss(t){const n=(Array.isArray(t.questions)?t.questions:[t]).map(As).filter(s=>s!==null);return n.length>0?{...t,questions:n}:t}function st(t){switch(t.toLowerCase().replace(/-/g,"_")){case"ask_user":return"AskUserQuestion";case"bash":case"powershell":case"shell":return"Bash";case"create":return"Write";case"edit":return"Edit";default:return t}}function ht(t,e){const n=L(e)?e:e===void 0?{}:{value:e};return t==="AskUserQuestion"?Ss(n):t==="Edit"?{...n,file_path:w(n.file_path,n.path),old_string:w(n.old_string,n.old_str),new_string:w(n.new_string,n.new_str)}:t==="Write"?{...n,file_path:w(n.file_path,n.path),content:w(n.content,n.file_text)}:t==="Bash"&&typeof n.command!="string"&&typeof n.cmd=="string"?{...n,command:n.cmd}:n}function ws(t){const e=t.error;if(typeof e=="string")return e;if(L(e)){const s=w(e.message,e.code);if(s)return s}const n=t.result;if(typeof n=="string")return n;if(!L(n))return n===void 0?"":Pt(n);if(typeof n.detailedContent=="string")return n.detailedContent;if(typeof n.content=="string")return n.content;if(Array.isArray(n.contents)){const s=n.contents.flatMap(o=>{const i=typeof o=="string"?o:L(o)?w(o.text,o.content,o.output):"";return i?[i]:[]}).join(`
|
|
27
|
-
`);if(s)return s}return n.structuredContent!==void 0?Pt(n.structuredContent):Pt(n)}function De(t,e,n,s){if(!e||t.thinking.some(l=>l.thinking===e))return;const o={type:"thinking",thinking:e,signature:s};t.thinking.push(o);const i=t.contentBlocks[t.contentBlocks.length-1];if((i==null?void 0:i.kind)==="thinking"){i.blocks.push(o);return}t.contentBlocks.push({kind:"thinking",blocks:[o],timestamp:n})}function yt(t,e,n){t.toolCalls.push(e);const s=t.contentBlocks[t.contentBlocks.length-1];if((s==null?void 0:s.kind)==="tool_calls"){s.toolCalls.push(e);return}t.contentBlocks.push({kind:"tool_calls",toolCalls:[e],timestamp:n})}function ot(t,e,n,s){return{id:t,name:e,input:n,result:null,isError:!1,timestamp:s}}function Fe(t,e,n){if(!Array.isArray(t))return[];const s=[];for(const o of t){if(!L(o))continue;const i=w(o.toolCallId),l=w(o.name);if(!i||!l||n(i))continue;const f=st(l);s.push(ot(i,f,ht(f,o.arguments),e))}return s}function Ue(t,e,n,s){t.name=e,t.input=ht(e,n),t.timestamp=s||t.timestamp}function $e(t,e,n){t.result=ws(e);const s=Ts(e,n);s.length>0&&(t.resultImages=s),t.isError=e.success===!1||e.error!==void 0&&e.error!==null}function Oe(t,e,n,s,o,i){return{id:t,userMessage:n,contentBlocks:[],thinking:[],assistantText:[],toolCalls:[],subAgentActivity:[],timestamp:e,durationMs:null,tokenUsage:null,model:s,...o?{effort:o}:{},...i?{isFragment:!0}:{}}}function Ms(t){return t.userMessage!==null||t.assistantText.length>0||t.thinking.length>0||t.toolCalls.length>0||t.subAgentActivity.length>0}function je(t,e){const n=ms(t),s=Re(n),o=_s(n),i=[],l=new Map,f=new Map,m=new Map,d=new WeakMap,b=new WeakMap;let M=null,_=null,g,E=!1,N=!1,T=null;function x(S,r){r&&d.set(S,r)}function R(S){return M||(M=Oe(Ne(S),nt(S),null,_,g,!0)),M}function P(){M&&(Ms(M)&&i.push(M),M=null)}function j(S){var C;const r=typeof S.agentId=="string"?S.agentId:"";if(!r)return null;const c=f.get(r);if(c)return c.message;const h=S.data,p=w(h.toolCallId),a=p?((C=l.get(p))==null?void 0:C.turn)??M:M;if(!a)return null;const k=w(h.executionMode),u={agentId:r,...p?{parentToolUseId:p}:{},agentName:w(h.agentDisplayName,h.agentName)||null,subagentType:w(h.agentType,h.agentName)||null,type:"assistant",content:null,toolCalls:[],thinking:[],text:[],timestamp:nt(S),tokenUsage:null,model:w(h.model)||null,isBackground:k==="background",...w(h.description)?{prompt:w(h.description)}:{},status:"running"};return a.subAgentActivity.push(u),a.contentBlocks.push({kind:u.isBackground?"background_agent":"sub_agent",messages:[u],timestamp:u.timestamp}),f.set(r,{message:u,turn:a}),u}function $(S){if(Me(S))return!1;const r=j(S);if(!r)return!0;const{data:c}=S,h=nt(S);if(S.type==="subagent.started"||S.type==="subagent.configured")return r.parentToolUseId||(r.parentToolUseId=w(c.toolCallId)||void 0),r.agentName=w(c.agentDisplayName,c.agentName)||r.agentName,r.subagentType=w(c.agentType,c.agentName)||r.subagentType,r.model=w(c.model)||r.model,r.prompt||(r.prompt=w(c.description)||void 0),r.isBackground||(r.isBackground=w(c.executionMode)==="background"),r.status="running",!0;if(S.type==="subagent.completed"||S.type==="subagent.failed"){r.agentName=w(c.agentDisplayName,c.agentName)||r.agentName,r.subagentType=w(c.agentType,c.agentName)||r.subagentType,r.model=w(c.model)||r.model,r.durationMs=z(c.durationMs)||r.durationMs,r.toolUseCount=z(c.totalToolCalls)||r.toolUseCount,r.status=S.type==="subagent.completed"?"completed":"failed";const p=w(c.error,c.message);return p&&!r.text.includes(p)&&r.text.push(p),!0}if(S.type==="user.message")return r.prompt||(r.prompt=w(c.content)||void 0),!0;if(S.type==="assistant.reasoning"){const p=w(c.content);return p&&!r.thinking.includes(p)&&r.thinking.push(p),!0}if(S.type==="assistant.message"){r.model=w(c.model)||r.model;const p=w(c.reasoningText);p&&!r.thinking.includes(p)&&r.thinking.push(p);const a=Pe(c.content);a&&!r.text.includes(a)&&r.text.push(a);for(const k of Fe(c.toolRequests,h,u=>m.has(u)))r.toolCalls.push(k),m.set(k.id,{call:k,message:r});return!0}if(S.type==="assistant.usage"){r.model=w(c.model)||r.model;const p=Bt(c);return p&&(r.tokenUsage=J(r.tokenUsage,p)),!0}if(S.type==="tool.execution_start"){const p=w(c.toolCallId)||V(S,"copilot-agent-tool"),a=w(c.toolName)||"Tool",k=st(a),u=m.get(p);if(u)Ue(u.call,k,c.arguments,h);else{const C=ot(p,k,ht(k,c.arguments),h);r.toolCalls.push(C),m.set(p,{call:C,message:r})}return!0}if(S.type==="tool.execution_complete"){const p=w(c.toolCallId)||V(S,"copilot-agent-tool");let a=m.get(p);if(!a){const k=w(c.toolName)||"Tool",u=st(k),C=ot(p,u,{},h);r.toolCalls.push(C),a={call:C,message:r}}return $e(a.call,c,o),m.delete(p),!0}return!0}for(const S of n){if($(S))continue;const{data:r}=S,c=nt(S);if(S.type==="session.start"||S.type==="session.resume"){_=w(r.selectedModel)||_,g=w(r.reasoningEffort)||g;continue}if(S.type==="session.auto_mode_resolved"){_=w(r.chosenModel)||_,M&&(M.model=_);continue}if(S.type==="session.model_change"){_=w(r.newModel)||_;const h=r.reasoningEffort;typeof h=="string"&&(g=h),M&&(M.model=_,g&&(M.effort=g));continue}if(S.type==="session.shutdown"){_=w(r.currentModel)||_,M&&!M.model&&(M.model=_),T=Cs(r)??T;const h=z(r.totalApiDurationMs);M&&!N&&h&&b.set(M,h);continue}if(S.type==="user.message"){P(),M=Oe(Ne(S),c,bs(r,o),_,g,!1),x(M,c);continue}if(S.type==="assistant.turn_start"){_=w(r.model)||_;const h=R(S);h.model=_,g&&(h.effort=g),x(h,c);continue}if(S.type==="assistant.reasoning"){const h=R(S);De(h,w(r.content),c,w(r.reasoningId)||V(S,"copilot-thinking")),x(h,c);continue}if(S.type==="assistant.message"){_=w(r.model)||_;const h=R(S);h.model=_,g&&(h.effort=g),De(h,w(r.reasoningText),c,V(S,"copilot-thinking")),de(h,Pe(r.content),c);for(const p of Fe(r.toolRequests,c,a=>l.has(a)))yt(h,p,c),l.set(p.id,{call:p,turn:h});x(h,c);continue}if(S.type==="assistant.usage"){_=w(r.model)||_,g=w(r.reasoningEffort)||g;const h=Bt(r),p=z(r.duration);h&&(E=!0),p&&(N=!0);const a=R(S);a.model=_,g&&(a.effort=g),h&&(a.tokenUsage=J(a.tokenUsage,h)),p&&b.set(a,(b.get(a)??0)+p),x(a,c);continue}if(S.type==="tool.execution_start"){_=w(r.model)||_;const h=R(S);h.model=_;const p=w(r.toolCallId)||V(S,"copilot-tool"),a=w(r.toolName)||"Tool",k=st(a),u=l.get(p);if(u)Ue(u.call,k,r.arguments,c);else{const C=ot(p,k,ht(k,r.arguments),c);yt(h,C,c),l.set(p,{call:C,turn:h})}x(h,c);continue}if(S.type==="tool.execution_complete"){_=w(r.model)||_;const h=w(r.toolCallId)||V(S,"copilot-tool");let p=l.get(h);if(!p){const a=R(S),k=w(r.toolName)||"Tool",u=st(k),C=ot(h,u,{},c);yt(a,C,c),p={call:C,turn:a}}$e(p.call,r,o),l.delete(h),x(p.turn,c);continue}if(S.type==="session.error"){const h=R(S),a={errorType:w(r.errorType)||"unknown"};typeof r.statusCode=="number"&&(a.statusCode=r.statusCode),typeof r.errorCode=="string"&&(a.errorCode=r.errorCode),yt(h,{id:V(S,"copilot-error"),name:"Error",input:a,result:w(r.message)||"Copilot session error",isError:!0,timestamp:c},c),x(h,c);continue}(S.type==="assistant.turn_end"||S.type==="assistant.idle"||S.type==="session.idle")&&M&&x(M,c)}if(P(),!E&&T&&i.length===1&&(i[0].tokenUsage=J(i[0].tokenUsage,T)),s.model)for(const S of i)S.model||(S.model=s.model);for(const S of i){const r=d.get(S),c=Date.parse(S.timestamp),h=r?Date.parse(r):Number.NaN;if(Number.isFinite(c)&&Number.isFinite(h)&&h>=c)S.durationMs=h-c;else{const p=b.get(S)??0;p&&(S.durationMs=p)}}const U=e!=null&&e.skipStats?ct(i.length):ut(i);return!(e!=null&&e.skipStats)&&!E&&T&&i.length>1&&(U.totalInputTokens=T.input_tokens,U.totalOutputTokens=T.output_tokens,U.totalCacheCreationTokens=T.cache_creation_input_tokens??0,U.totalCacheReadTokens=T.cache_read_input_tokens??0),{sessionId:s.sessionId,version:s.version,gitBranch:s.gitBranch,cwd:s.cwd,slug:s.slug,name:s.name,model:s.model,turns:i,stats:U,rawMessages:e!=null&&e.skipStats?[]:n,agentKind:"copilot"}}function Es(t,e){const n=t.rawMessages.map(s=>JSON.stringify(s)).join(`
|
|
28
|
-
`);return je(n?`${n}
|
|
29
|
-
${e}`:e)}function vs(t){return typeof t=="string"&&(t==="abort"||t==="binary_asset"||t==="user.message"||t.startsWith("assistant.")||t.startsWith("permission.")||t.startsWith("session.")||t.startsWith("subagent.")||t.startsWith("tool.")||t.startsWith("user_input."))}function Ns(t){const e=new Map;for(const[i,l]of t.entries()){const f=typeof l.agentId=="string"?l.agentId:"";if(!f&&(l.type==="abort"||l.type==="session.shutdown"||l.type==="session.error")){e.clear();continue}if(!f||!l.type.startsWith("subagent."))continue;const m=L(l.data)?l.data:{},d=e.get(f);if(l.type==="subagent.completed"||l.type==="subagent.failed"){d&&(d.endedAt??(d.endedAt=i));continue}if(l.type==="subagent.started"||l.type==="subagent.configured"){const b=[m.agentDisplayName,m.description,m.agentName].find(M=>typeof M=="string")??"";if(!d||d.endedAt!==void 0){const M=typeof l.timestamp=="string"?l.timestamp:void 0;e.set(f,{agent:{description:b,startedAt:M},launchedAt:i})}else b&&(d.agent.description=b)}}const n=It([...e.values()]);if(n)return n;let s=!1;const o=new Set;for(let i=t.length-1;i>=0;i--){const l=t[i];if(typeof l.agentId=="string"&&l.agentId)continue;const f=L(l.data)?l.data:{};switch(l.type){case"abort":case"session.shutdown":return{status:"completed"};case"assistant.turn_end":{for(let m=i-1;m>=0;m--){const d=t[m];if(typeof d.agentId=="string"&&d.agentId)continue;if(d.type==="user.message")break;if(d.type==="abort")return{status:"completed"};if(d.type!=="assistant.message")continue;const b=L(d.data)?d.data:{};return Array.isArray(b.toolRequests)&&b.toolRequests.length>0?{status:"processing"}:{status:"completed"}}return{status:"processing"}}case"session.error":return{status:"completed",terminalReason:typeof f.message=="string"?f.message:"Copilot session error"};case"assistant.idle":case"session.idle":return{status:s?"completed":"idle"};case"permission.completed":{const m=typeof f.requestId=="string"?f.requestId:"";m&&o.add(m);continue}case"permission.requested":{const m=typeof f.requestId=="string"?f.requestId:"";if(m&&o.has(m))continue;return{status:"deferred"}}case"user_input.requested":return{status:"tool_use",toolName:"AskUserQuestion"};case"tool.execution_start":return o.size>0?{status:"thinking"}:{status:"tool_use",toolName:typeof f.toolName=="string"?G(f.toolName):typeof f.name=="string"?G(f.name):void 0};case"tool.execution_complete":return{status:"thinking"};case"assistant.turn_start":return{status:"processing"};case"assistant.message":case"assistant.message_delta":case"assistant.reasoning":case"assistant.reasoning_delta":return{status:"thinking"};case"user.message":return s=!0,{status:"processing"};case"session.start":case"session.resume":return{status:s?"processing":"idle"}}}return{status:"idle"}}function Rs(){throw new Error("Copilot sessions branch through the CLI's fork API, not by copying the transcript")}function Ps(t){const e=[];for(let n=0;n<t.length;n++){const s=t[n];if(s.type!=="user.message"||typeof s.agentId=="string")continue;const o=s.data;!o||typeof o!="object"||Array.isArray(o)||typeof s.id!="string"||!s.id||e.push(n)}return e}const Le=_t[_t.length-1],Bs={kind:"codex",descriptor:lt("codex"),detectsText:ss,detectsRecords:os,parse:we,append:rs,metadataFromLines:is,status:us,brandBranch:ds,turnBoundaries:ps},Ds={kind:"copilot",descriptor:lt("copilot"),detectsText:gs,detectsRecords:hs,parse:je,append:Es,metadataFromLines:ys,status:Ns,brandBranch:Rs,turnBoundaries:Ps},We={kind:"claude",descriptor:lt("claude"),detectsText:oe,detectsRecords:oe,parse:le,append:ce,metadataFromLines:Tn,status:Sn,brandBranch:wn,turnBoundaries:Mn},Dt=Object.freeze({acp:{...We,kind:"acp",descriptor:lt("acp"),detectsText:t=>{var e;return((e=t.split(`
|
|
30
|
-
`,1)[0])==null?void 0:e.includes('"type":"acp_session"'))??!1},detectsRecords:t=>{var e;return((e=t[0])==null?void 0:e.type)==="acp_session"},parse:(t,e)=>({...le(t,e),agentKind:"acp"}),append:(t,e)=>({...ce(t,e),agentKind:"acp"})},claude:We,codex:Bs,copilot:Ds});function qe(t){for(const e of _t)if(t(Dt[e]))return Dt[e];return Dt[Le]}function ze(t){return qe(e=>e.detectsText(t))}function Fs(t){return qe(e=>e.detectsRecords(t))}function Us(t,e){return ze(t).parse(t,e)}function $s(t,e){const n=Fs(t.rawMessages),o=(n.kind===Le?ze(e):n).append(t,e);return t.instanceId?Je(o,t.instanceId):o}self.onmessage=t=>{const e=t.data;try{let n;e.type==="parse"?n=Us(e.text):n=$s(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)})}}})();
|