bostrat-node 1.9.11 → 1.9.12
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/index.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -150,7 +150,7 @@ your turn. The operator sees the questions as an interactive card in their chat
|
|
|
150
150
|
They may instead reply in free text \u2014 treat that as the answer. Never use the block for rhetorical questions, progress updates, or
|
|
151
151
|
anything you can decide yourself; keep asking in prose for questions without
|
|
152
152
|
enumerable options.
|
|
153
|
-
`});function E1(e){return{id:e.id,kind:"prompt",groupId:e.groupId,provider:e.provider,box:e.box,agent:e.provider,questionTotal:e.questions.length,answeredVia:"chat",questions:e.questions.map((t,n)=>({index:n,header:t.header||"",question:t.question,multiSelect:!!t.multiSelect,chosen:[]})),ts:e.ts}}function Fx(e,t,n){let r=Dh(n),o=e.has(r)?r:null;if(!o&&n.number!=null)for(let[i,c]of e){if(Number(c.number)!==Number(n.number))continue;let l=!!(n.url&&c.url&&n.url===c.url),u=!c.repo&&!!n.repo||!!c.repo&&!n.repo;if(l||u&&(!c.url||!n.url||c.url===n.url)){o=i;break}}let s=n.repo||!o?r:o,a=o?e.get(o):e.get(s);if(o&&o!==s){e.delete(o);let i=t.get(o);if(t.delete(o),i?.length){let c=t.get(s)??[];t.set(s,c.concat(i))}}return e.set(s,{number:n.number,url:n.url??a?.url??null,title:n.title??a?.title??null,repo:n.repo??a?.repo??null,branch:n.branch??a?.branch??null}),s}function Mn(e){let t=[],n=new Set,r=new Set,o=new Map,s=new Map,a=new Set,i=new Map,c=new Map,l=new Set,u=new Map,d=new Map,p=(x,m)=>{d.set(x,m),t.push(m)},f=x=>{let m=d.get(x);m&&(m.retired=!0)},w=/^Agent "([\s\S]+)" finished$/,h=new Map;for(let x of e||[]){if(x.type!=="tool.called"||x.source!=="transcript")continue;let m=String(x.payload?.command||"");if(/\bbostrat-mock\s+(?:add|update)\b/.test(m))for(let v of m.matchAll(/[\w./~-]+\.(?:png|jpe?g|gif|webp|bmp|svg)\b/gi)){let P=v[0].split("/").pop().toLowerCase();h.has(P)||h.set(P,[]),h.get(P).push(x.payload?.ts??x.ts)}}let g=3*6e4,y=20*6e4,k=(x,m)=>!!(x?.name&&h.get(String(x.name).toLowerCase()))?.some(P=>P>=m-g&&P<=m+y);for(let x of e||[])if(x.type==="turn.retracted"){r.add(`${x.boxId}|${x.payload?.saidTs}`);let m=Ue(x.payload?.text);m&&(o.has(x.boxId)||o.set(x.boxId,[]),o.get(x.boxId).push(m))}else if(x.type==="turn.user"&&x.source==="orchestrator"){let m=Ue(x.payload?.text);m&&(s.has(x.boxId)||s.set(x.boxId,new Set),s.get(x.boxId).add(m))}else if(x.type==="job.stalled"&&x.payload?.id)i.set(x.payload.id,{ts:he(x),quietMs:Number(x.payload.quietMs)||null});else if(x.type==="job.started"&&x.payload?.id)a.add(x.payload.id),(x.payload.kind||"agent")==="agent"&&x.payload.name&&l.add(x.payload.name);else if(x.type==="turn.user"&&x.payload?.note?.kind==="task"){let m=x.payload.note,v={status:m.status||null,summary:m.summary||null,resultHead:m.resultHead??null,ts:he(x)};m.toolUseId&&c.set(m.toolUseId,v);let P=String(m.summary||"").match(w);P&&u.set(P[1],v)}let b=new Map,I=new Map,R=null,N=new Map,D=new Map,j=new Map,T=new Map,$=new Map,F=new Map,J=new Map,M=new Map,S=new Map,_=new Map,H=new Map,K=new Map,X=new Map,pe=new Map,Oe=new Map,Me=[],Q=x=>Me.push(x),qe=x=>{if(!Me.length)return;let m=he(x);for(let v of Me){if(v.status!=="open"||v.box&&v.box!==x.boxId||(v.ts??0)>m)continue;let P=t.indexOf(v);P>=0&&t.splice(P,1),v.ts=m,t.push(v)}},Ae=new Map,Z=new Map,me=new Map,Te=new Map,z=new Map,ge=new Map,Ge=new Map,O=new Map,Y=()=>{for(let x of O.values())x.questions.length&&t.push(x);O.clear()},Le=null,Qe=new Map,oe=6e4,ye=new Map,Fe=(x,m)=>{let v=o.get(x);if(!v?.length)return!1;let P=Ue(m),ce=s.get(x);return v.some(be=>{if(!P.startsWith(be))return!1;let Ne=Ue(P.slice(be.length));return!!Ne&&!!ce?.has(Ne)})};for(let x of e||[]){let m=x.payload||{};switch(x.type){case"turn.user":{if(x.source==="hook"||(Me.length=0,!String(m.text||"").trim()&&!m.images?.length&&!m.attachments?.length))break;{let v=Mx(m.text);if(v){if(v.kind==="shell-input"){let P={id:x.id,kind:"shell",command:v.command,stdout:null,stderr:null,done:!1,ts:he(x),box:x.boxId,agent:x.provider};t.push(P),Qe.set(x.boxId,P)}else{let P=Qe.get(x.boxId);P?(P.stdout=v.stdout||null,P.stderr=v.stderr||null,P.done=!0,Qe.delete(x.boxId)):t.push({id:x.id,kind:"shell",command:null,stdout:v.stdout||null,stderr:v.stderr||null,done:!0,ts:he(x),box:x.boxId,agent:x.provider})}break}}{let v=m.note||Ji(m.text);if(v){if(v.kind==="task"){if(v.toolUseId&&a.has(v.toolUseId))break;let P=String(v.summary||"").match(w);if(!v.toolUseId&&P&&l.has(P[1]))break}if(v.kind==="command"&&Rx(v.command))break;if(v.kind==="resume-summary"){t.push({id:x.id,kind:"resume-summary",title:v.title||"Context resumed from summary",bullets:v.bullets||[],sections:v.sections||[],rawChars:v.rawChars??null,ts:he(x),box:x.boxId,agent:x.provider});break}v.kind!=="suppress"&&t.push({id:x.id,kind:"event",type:Nx(v),name:v.name??null,command:v.command??null,summary:v.summary??null,status:v.status??null,ts:he(x),box:x.boxId,agent:x.provider});break}}if(r.has(`${x.boxId}|${he(x)}`)||x.source==="transcript"&&Fe(x.boxId,m.text))break;if(m.kind==="merge-notify"||m.kind==="ship-notify"){t.push({id:x.id,kind:"event",type:m.kind==="ship-notify"?"ship-notified":"merge-notified",text:m.text,ts:he(x),box:x.boxId,agent:x.provider});break}if(m.kind==="mock-picked"||m.kind==="ci-fix"||m.kind==="reconcile"||m.kind==="pr-go"||m.kind==="push-go"||m.kind==="spin-up-view"||m.kind==="prompt-answer"||m.kind==="followup-go"){m.kind==="prompt-answer"&&(Le=null);break}for(let v of N.values())v.status="stale";N.clear();for(let v of j.values())v.status="stale";j.clear();for(let v of X.values())v.status="stale";X.clear(),Le&&Le.box===x.boxId&&(t.push(E1(Le)),Le=null),t.push({id:x.id,kind:"message",role:"user",text:m.text,ts:he(x),box:x.boxId,agent:x.provider,boxRole:m.boxRole,...x.actor==="orchestrator"?{orchestration:m.kind||!0}:{},...m.sourceId?{sourceId:m.sourceId}:{},...m.attachments?.length?{attachments:m.attachments}:{},...m.images?.length?{images:m.images}:{}});break}case"peer.message":{let v=m.from||{};t.push({id:x.id,kind:"event",type:"peer-message",text:m.text,from:v.trackName||v.boxId||v.name||null,fromTrackId:v.trackId||null,ts:he(x),box:x.boxId,agent:x.provider});break}case"turn.agent":{if(m.model==="<synthetic>"&&/^No response requested\.$/.test(String(m.text||"").trim()))break;let v=W0(m,{codexFailedText:Fo});if(v){t.push({id:x.id,kind:"event",type:"provider-error",cls:v.cls,status:v.status??void 0,text:v.text,provider:x.provider,legacy:!0,at:he(x),ts:he(x),box:x.boxId,agent:x.provider});break}Y();let P=(m.images||[]).filter(rt=>!k(rt,he(x)));if(!String(m.text||"").trim()&&!P.length)break;if(x.provider==="cursor"){let rt=`${x.boxId}|${m.text}`;if(n.has(rt))break;n.add(rt)}(!Le||Le.box===x.boxId)&&(Le=null);let ce=x.provider==="codex"?(m.tools||[]).filter(rt=>!ph.has(rt)&&!Di.has(rt)):m.tools||[],be=m.text,Ne=null,gt=Mh(String(m.text||""));gt&&(be=gt.text,Ne={questions:gt.questions}),t.push({id:x.id,kind:"message",role:"assistant",text:be,ts:he(x),box:x.boxId,agent:x.provider,boxRole:m.boxRole,...Ne?{ask:Ne}:{},...ce.length?{tools:ce}:{},...m.model?{model:m.model}:{},...m.sourceId?{sourceId:m.sourceId}:{},...P.length?{images:P}:{}}),qe(x),Ne&&(Le={id:x.id,groupId:Ch(x.provider,m.sourceId||x.id,Ne.questions),provider:x.provider,box:x.boxId,questions:Ne.questions,ts:he(x)});break}case"job.started":{if(!m.id)break;let v=he(x),P=c.get(m.id);if(!P&&(m.kind||"agent")==="agent"&&m.name){let lt=u.get(m.name);lt&<.ts>=v&&(P=lt)}let ce=P?null:i.get(m.id)||null,be={jobId:m.id,jobKind:m.kind||"agent",name:m.name||null,detail:m.detail||null,status:P?P.status==="killed"?"stopped":P.status&&P.status!=="completed"?"failed":"done":ce?"stalled":"running",startedTs:v,finishedTs:P?.ts??ce?.ts??null,quietMs:ce?.quietMs??null,summary:P?.summary??null,resultHead:P?.resultHead??null},Ne=ye.get(x.boxId),gt=Ne?.jobs[Ne.jobs.length-1]?.startedTs;if(Ne&>!=null&&v-gt<=oe)Ne.jobs.push(be);else{let lt={id:x.id,kind:"job-dock",dockId:m.id,ts:v,box:x.boxId,agent:x.provider,jobs:[be]};ye.set(x.boxId,lt),t.push(lt)}break}case"handoff.done":t.push(mt(x,"lead-handoff"));break;case"subtask.delegated":t.push({...mt(x,"subtask-delegated"),to:x.boxId,toAgent:x.provider});break;case"subtask.merged":t.push(mt(x,"subtask-merged"));break;case"pr.state.changed":{if(!m.change)break;if(m.change==="opened"){for(let P of N.values())P.status="stale";N.clear();for(let P of j.values())P.status="stale";j.clear()}let v=mt(x,`pr-${m.change}`);if(v.box=x.boxId??null,Lx.has(m.change)&&m.number!=null){let P=Fx(b,I,m);if(b.size>=2){for(let be of I.values())for(let Ne of be)Ne.grouped=!0;v.groupPrs=[...b.values()];let ce=[v];for(let be of b.keys())I.set(be,ce)}else{let ce=I.get(P)??[];ce.push(v),I.set(P,ce)}}else if(m.change==="merged"||m.change==="closed"||m.change==="lost"){let P=Dh(m),ce=R&&!R.complete||b.size>=2;if(b.has(P))b.delete(P),I.delete(P);else if(m.number!=null)for(let be of[...b.keys()])be.endsWith(`#${m.number}`)&&(b.delete(be),I.delete(be));if(ce&&m.number!=null){(!R||R.complete)&&(R={id:x.id,kind:"event",type:"pr-group-settled",prs:[],remaining:[],complete:!1,at:he(x),ts:he(x),box:x.boxId,agent:x.provider},t.push(R)),R.prs.push({number:m.number,url:m.url??null,title:m.title??null,repo:m.repo??null,branch:m.branch??null,change:m.change,ts:he(x)}),R.remaining=[...b.values()],R.complete=b.size===0;break}}t.push(v);break}case"pr.offered":{if(!m.offerId)break;for(let P of N.values())P.status="stale";N.clear();for(let P of j.values())P.status="stale";j.clear();let v={id:x.id,kind:"pr-offer",offerId:m.offerId,excerpt:m.excerpt||null,branch:m.branch||null,base:m.base||null,offered:Array.isArray(m.offered)&&m.offered.length?m.offered:null,toPr:m.toPr&&typeof m.toPr=="object"?{number:m.toPr.number??null}:null,available:Array.isArray(m.available)?m.available:null,defaults:Array.isArray(m.defaults)?m.defaults:null,prState:m.prState||null,openPr:m.openPr&&typeof m.openPr=="object"?m.openPr:null,repos:Array.isArray(m.repos)&&m.repos.length?m.repos:null,status:"open",source:x.source==="cli"||m.via==="cli"?"cli":"transcript",ts:he(x),box:x.boxId,agent:x.provider};N.set(m.offerId,v),D.set(m.offerId,v),t.push(v),v.source==="cli"&&Q(v);break}case"pr.offer.answered":{let v=D.get(m.offerId);v&&(v.status=m.action||"dismiss",v.actions=Array.isArray(m.actions)?m.actions:null,v.notify=m.notify===!0,m.existingPr&&typeof m.existingPr=="object"&&(v.existingPr={number:m.existingPr.number??null}),N.delete(m.offerId));break}case"pr.exists.offered":{if(!m.offerId)break;for(let P of j.values())P.status="stale";j.clear();let v={id:x.id,kind:"pr-exists-offer",offerId:m.offerId,srcOfferId:m.srcOfferId??null,branch:m.branch||null,base:m.base||null,pr:m.pr&&typeof m.pr=="object"?{number:m.pr.number??null,url:m.pr.url??null,title:m.pr.title??null}:null,actions:Array.isArray(m.actions)&&m.actions.length?m.actions:null,notify:m.notify===!0,status:"open",ts:he(x),box:x.boxId,agent:x.provider};j.set(m.offerId,v),T.set(m.offerId,v),t.push(v);break}case"pr.exists.answered":{let v=T.get(m.offerId);v&&(v.status=m.choice||"dismiss",j.delete(m.offerId));break}case"box.state.changed":{let v=m.change==="model"?"model-change":m.change;if(!v)break;let P=mt(x,v);if(v==="model-change"&&(P.to=m.model),v==="node-update"&&P.latest){let ce=t.findIndex(be=>be.kind==="event"&&be.type==="node-update"&&be.latest===P.latest);if(ce>=0){let be=t[ce];t[ce]={...P,ts:be.ts,at:be.at,firstAt:be.firstAt??be.ts,updatedAt:P.ts};break}}t.push(P);break}case"track.transferred":case"track.recovered":t.push(mt(x,"track-moved"));break;case"view.state.changed":{if(m.change==="deleted"){f(`view:${m.viewId}`);break}if(m.change!=="created"||m.restarted)break;p(`view:${m.viewId}`,{id:x.id,kind:"view-card",viewId:m.viewId,name:m.name,slug:m.slug,port:m.port,origin:m.origin,ts:he(x),box:x.boxId,agent:x.provider});break}case"view.spinup.failed":{t.push({id:x.id,kind:"view-spinup-failed",name:m.name||null,reason:m.reason||"no-view",ts:he(x),box:x.boxId,agent:x.provider});break}case"mock.state.changed":{if(m.change==="picked"){t.push({id:x.id,kind:"mock-picked",mockId:m.mockId,name:m.name,group:m.group??null,version:m.version??null,siblings:m.siblings??[],ts:he(x),box:x.boxId,agent:x.provider});break}if(m.change==="deleted"){f(`mock:${m.mockId}`);break}if(m.change!=="created")break;p(`mock:${m.mockId}`,{id:x.id,kind:"mock-card",mockId:m.mockId,name:m.name,group:m.group??null,ts:he(x),box:x.boxId,agent:x.provider});break}case"flow.state.changed":{if(m.change==="deleted"){f(`flow:${m.flowId}`);break}if(m.change!=="created")break;p(`flow:${m.flowId}`,{id:x.id,kind:"flow-card",flowId:m.flowId,name:m.name,stepCount:m.stepCount??null,mockIds:m.mockIds??[],ts:he(x),box:x.boxId,agent:x.provider});break}case"runbook.state.changed":{if(m.change==="deleted"){f(`runbook:${m.runbookId}`);break}if(m.change!=="created")break;p(`runbook:${m.runbookId}`,{id:x.id,kind:"runbook-card",runbookId:m.runbookId,name:m.name,ts:he(x),box:x.boxId,agent:x.provider});break}case"ticket.linked":{t.push({id:x.id,kind:"ticket-card",provider:m.provider||"linear",key:m.key,url:m.url,title:m.title??null,linkSource:m.linkSource??null,ts:he(x),box:x.boxId,agent:x.provider});break}case"box.fullscreen.detected":{if(!m.offerId)break;for(let P of J.values())P.box===(m.box||x.boxId)&&(P.status="stale",J.delete(P.offerId));let v={id:x.id,kind:"fullscreen-offer",offerId:m.offerId,status:"open",ts:he(x),box:m.box||x.boxId,agent:m.agent||x.provider};J.set(m.offerId,v),M.set(m.offerId,v),t.push(v);break}case"box.fullscreen.answered":{let v=M.get(m.offerId);v&&(v.status=m.action==="restarted"?"restarted":m.action==="cleared"?"cleared":"dismiss",J.delete(m.offerId));break}case"ticket.move.offered":{if(!m.offerId)break;for(let P of $.values())P.key===m.key&&(P.status="stale",$.delete(P.offerId));let v={id:x.id,kind:"ticket-offer",offerId:m.offerId,provider:m.provider||"linear",key:m.key,url:m.url??null,phase:m.phase??null,from:m.from??null,to:m.to?.name??null,prNumber:m.prNumber??null,status:"open",ts:he(x),box:x.boxId,agent:x.provider};$.set(m.offerId,v),F.set(m.offerId,v),t.push(v);break}case"ticket.move.answered":{let v=F.get(m.offerId);v&&(v.status=m.action==="moved"?"moved":"dismiss",$.delete(m.offerId));break}case"ticket.state.changed":{for(let v of $.values())v.key===m.key&&v.to===m.to&&(v.status="stale",$.delete(v.offerId));if(m.mode==="offer")break;t.push(mt(x,"ticket-state"));break}case"ticket.commented":{t.push({id:x.id,kind:"ticket-comment",key:m.key,url:m.url??null,excerpt:m.excerpt??null,ts:he(x),box:x.boxId,agent:x.provider});break}case"ticket.flow.changed":t.push(mt(x,"ticket-flow"));break;case"ticket.create.offered":{if(!m.proposalId)break;for(let P of S.values())P.status="stale";S.clear();let v={id:x.id,kind:"ticket-create-offer",proposalId:m.proposalId,provider:m.provider||"linear",epic:m.epic??null,issues:Array.isArray(m.issues)?m.issues:[],team:m.team??null,needsTeam:!!m.needsTeam,linkCurrentTrack:!!m.linkCurrentTrack,status:"open",ts:he(x),box:x.boxId,agent:x.provider};S.set(m.proposalId,v),_.set(m.proposalId,v),t.push(v),Q(v);break}case"ticket.create.answered":{let v=_.get(m.proposalId);v&&(v.status=m.action==="created"?"created":"dismiss",v.createdCount=m.createdCount??null,v.failedCount=m.failedCount??null,S.delete(m.proposalId));break}case"loop.create.offered":{if(!m.proposalId)break;for(let P of H.values())P.status="stale";H.clear();let v={id:x.id,kind:"loop-create-offer",proposalId:m.proposalId,name:m.name??"",schedule:m.schedule??"",prompt:m.prompt??"",expectation:m.expectation??null,notify:m.notify??"off",assignment:m.assignment??{provider:"claude"},repo:m.repo??null,nodeId:m.nodeId??null,nodeName:m.nodeName??null,status:"open",ts:he(x),box:x.boxId,agent:x.provider};H.set(m.proposalId,v),K.set(m.proposalId,v),t.push(v),Q(v);break}case"loop.create.answered":{let v=K.get(m.proposalId);v&&(v.status=m.action==="created"?"created":"dismiss",H.delete(m.proposalId));break}case"followup.armed":{if(!m.armId)break;let v=m.replaces?Oe.get(m.replaces):null;v&&v.status==="armed"&&(v.status="replaced");let P={id:x.id,kind:"followup-armed",armId:m.armId,trigger:m.trigger??"now",label:m.label??"",prompt:m.prompt??"",why:m.why??null,status:"armed",ts:he(x),box:x.boxId,agent:x.provider};Oe.set(m.armId,P),P.trigger!=="now"&&t.push(P);break}case"followup.armed.cancelled":{let v=Oe.get(m.armId);v&&v.status==="armed"&&(v.status="cancelled");break}case"followup.offered":{if(!m.offerId)break;for(let ce of X.values())ce.trigger===m.trigger&&(ce.status="stale",X.delete(ce.offerId));let v=Array.isArray(m.rows)?m.rows:[];for(let ce of v){let be=ce.armId?Oe.get(ce.armId):null;be&&be.status==="armed"&&(be.status="offered")}let P={id:x.id,kind:"followup-offer",offerId:m.offerId,trigger:m.trigger??"now",repo:m.repo??null,context:m.context&&typeof m.context=="object"?m.context:{},rows:v.map(ce=>({followupId:ce.followupId??null,armId:ce.armId??null,label:ce.label??"",prompt:ce.prompt??null,promptPreview:ce.promptPreview??null,promptHash:ce.promptHash??null,origin:ce.origin??"operator",why:ce.why??null})),status:"open",answer:null,ts:he(x),box:x.boxId,agent:x.provider};X.set(m.offerId,P),pe.set(m.offerId,P),t.push(P),P.trigger==="now"&&Q(P);break}case"followup.answered":{let v=pe.get(m.offerId);v&&(v.status=m.action==="sent"?"sent":m.action==="removed"?"removed":"dismiss",v.answer={followupId:m.followupId??null,armId:m.armId??null,label:m.label??null,promoted:m.promoted??null,revived:m.revived===!0},X.delete(m.offerId));break}case"followup.create.offered":{if(!m.proposalId)break;for(let P of Ae.values())P.status="stale";Ae.clear();let v={id:x.id,kind:"followup-create-offer",proposalId:m.proposalId,label:m.label??"",prompt:m.prompt??"",trigger:m.trigger??"pr.merged",repo:m.repo??null,why:m.why??null,status:"open",created:null,ts:he(x),box:x.boxId,agent:x.provider};Ae.set(m.proposalId,v),Z.set(m.proposalId,v),t.push(v),Q(v);break}case"followup.create.answered":{let v=Z.get(m.proposalId);v&&(v.status=m.action==="created"?"created":"dismiss",Ae.delete(m.proposalId));break}case"followup.created":{let v=m.proposalId?Z.get(m.proposalId):null;v&&(v.created={followupId:m.followupId??null});break}case"loop.created":{let v=m.proposalId?K.get(m.proposalId):null;v&&(v.created={loopId:m.loopId??null,nextFireAt:Number.isFinite(Number(m.nextFireAt))?Number(m.nextFireAt):null}),t.push(mt(x,"loop-created"));break}case"loop.update.offered":case"loop.delete.offered":{if(!m.proposalId||!m.loopId)break;for(let ce of me.values())ce.loopId===m.loopId&&(ce.status="stale",ce.staleReason="superseded",me.delete(ce.proposalId));let v=x.type==="loop.update.offered",P={id:x.id,kind:v?"loop-update-offer":"loop-delete-offer",proposalId:m.proposalId,loopId:String(m.loopId),name:m.name??m.base?.name??"",base:m.base??null,...v?{patch:m.patch??{},changed:Array.isArray(m.changed)?m.changed:Object.keys(m.patch||{})}:{reason:m.reason??""},selfEdit:!!m.selfEdit,status:"open",staleReason:null,ts:he(x),box:x.boxId,agent:x.provider};me.set(m.proposalId,P),Te.set(m.proposalId,P),t.push(P),Q(P);break}case"loop.update.answered":{let v=Te.get(m.proposalId);v&&(m.action==="moved"?(v.status="stale",v.staleReason="moved"):v.status=m.action==="applied"?"applied":"dismiss",me.delete(m.proposalId));break}case"loop.delete.answered":{let v=Te.get(m.proposalId);v&&(m.action==="moved"?(v.status="stale",v.staleReason="moved"):v.status=m.action==="delete"?"deleted":m.action==="pause"?"paused":"keep",me.delete(m.proposalId));break}case"loop.updated":{let v=m.proposalId?Te.get(m.proposalId):null;v&&(v.applied={changed:Array.isArray(m.changed)?m.changed:[],nextFireAt:Number.isFinite(Number(m.nextFireAt))?Number(m.nextFireAt):null}),t.push(mt(x,"loop-updated"));break}case"loop.deleted":t.push(mt(x,"loop-deleted"));break;case"loop.paused":t.push(mt(x,"loop-paused"));break;case"planning.change.offered":{if(!m.proposalId||!Array.isArray(m.ops)||!m.ops.length)break;for(let P of z.values())P.status="stale",P.staleReason="superseded",z.delete(P.proposalId);let v={id:x.id,kind:"planning-offer",proposalId:m.proposalId,why:m.why??"",ops:m.ops,base:m.base??{},resolved:m.resolved??{},snapped:!!m.snapped,createsMeRow:!!m.createsMeRow,status:"open",staleReason:null,applied:null,ts:he(x),box:x.boxId,agent:x.provider};z.set(m.proposalId,v),ge.set(m.proposalId,v),t.push(v),Q(v);break}case"planning.change.answered":{let v=ge.get(m.proposalId);v&&(m.action==="moved"?(v.status="stale",v.staleReason="moved"):v.status=m.action==="applied"?"applied":"dismiss",z.delete(m.proposalId));break}case"planning.changed":{let v=m.proposalId?ge.get(m.proposalId):null;v&&(v.applied={results:Array.isArray(m.results)?m.results:[]}),t.push(mt(x,"planning-changed"));break}case"rework.cause.offered":{if(!m.sha||Ge.has(m.sha))break;let v={id:x.id,kind:"rework-cause-offer",sha:m.sha,subject:m.subject??"",linesReworked:Number(m.linesReworked)||0,origins:Array.isArray(m.origins)?m.origins:[],heuristic:m.heuristic??null,intent:m.intent??null,shas:Array.isArray(m.shas)?m.shas:null,pr:m.pr??null,retracts:0,status:"open",cause:null,ts:he(x),box:x.boxId,agent:x.provider};Ge.set(m.sha,v),t.push(v);break}case"rework.cause.answered":{let v=m.sha?Ge.get(m.sha):null;v&&(v.status="answered",v.cause=m.cause??null);break}case"rework.cause.retracted":{let v=m.sha?Ge.get(m.sha):null;v&&(v.status="open",v.cause=null,v.retracts=(v.retracts??0)+1);break}case"ticket.created":{let v={items:Array.isArray(m.items)?m.items:[],failed:Array.isArray(m.failed)?m.failed:[],team:m.team??null},P=m.proposalId?_.get(m.proposalId):null;if(P){P.created=v;break}t.push({id:x.id,kind:"ticket-created",...v,ts:he(x),box:x.boxId,agent:x.provider});break}case"error":{if(!m.kind)break;t.push(mt(x,m.kind));break}case"provider.error":t.push({...mt(x,"provider-error"),provider:x.provider,box:x.boxId,agent:x.provider});break;case"usage.cap.hit":t.push(mt(x,"usage-cap-hit"));break;case"usage.cap.warning":t.push(mt(x,"usage-cap-warning"));break;case"provider.connected":{t.push({id:x.id,kind:"event",type:"provider-connected",provider:m.provider||x.provider,ts:he(x),at:he(x),box:x.boxId,agent:x.provider});break}case"prompt.answered":{if(Le=null,m.control||!m.question)break;let v=m.groupId||m.promptId;if(!v)break;let P=O.get(v);P||(P={id:x.id,kind:"prompt",groupId:v,provider:x.provider,box:x.boxId,agent:x.provider,questionTotal:m.questionTotal??1,questions:[],ts:he(x)},O.set(v,P));let ce=m.questionIndex??0,be={index:ce,header:m.header||"",question:m.question,multiSelect:!!m.multiSelect,chosen:Array.isArray(m.chosen)?m.chosen:[]},Ne=P.questions.findIndex(rt=>rt.index===ce&&Ue(rt.question)===Ue(be.question));Ne>=0?P.questions[Ne]=be:P.questions.push(be),P.questions.sort((rt,lt)=>rt.index-lt.index),P.questionTotal=Math.max(P.questionTotal,m.questionTotal??1),P.questions.length>=P.questionTotal&&(t.push(P),O.delete(v));break}case"prompt.dismissed":{Le=null;let v=m.groupId||m.promptId;if(!v||!m.question)break;let ce=O.get(v)||{id:x.id,kind:"prompt",groupId:v,provider:x.provider,box:x.boxId,agent:x.provider,questionTotal:m.questionTotal??1,questions:[],ts:he(x)},be=m.questionIndex??0;ce.questions.some(Ne=>Ne.index===be&&Ue(Ne.question)===Ue(m.question))||(ce.questions.push({index:be,header:m.header||"",question:m.question,multiSelect:!!m.multiSelect,chosen:[]}),ce.questions.sort((Ne,gt)=>Ne.index-gt.index)),ce.answeredVia="chat",t.push(ce),O.delete(v);break}default:break}}let jt=d.size?t.filter(x=>!x.retired):t;return I1(jt.sort((x,m)=>(x.ts??0)-(m.ts??0)))}function I1(e){let t=new Map,n=[];for(let r of e){if(r.kind!=="message"||!r.box){n.push(r);continue}let o=r.role==="assistant"&&!String(r.text||"").trim()&&r.images?.length,s=t.get(r.box);if(o&&s&&(r.ts??0)-s.lastTs<=_1){s.item.images.push(...r.images),s.lastTs=r.ts??s.lastTs;continue}if(o){let a={...r,images:[...r.images]};t.set(r.box,{item:a,lastTs:r.ts??0}),n.push(a)}else t.delete(r.box),n.push(r)}return n}function Bh(e,t=null){let n=[];for(let o of e||[]){if(o.type!=="tool.called"||o.source!=="transcript")continue;let s=o.payload||{};String(s.command||"").trim()&&n.push({id:s.id??null,tool:s.tool||null,command:s.command,description:s.description||"",summary:$1(s),ts:s.ts??o.ts,n:s.n,box:o.boxId,agent:o.provider,boxRole:s.boxRole})}if(!n.length)return[];let r=(t??Mn(e)).filter(o=>o.kind==="message");return P0(n,r)}function $1(e){let t=String(e.summary||"").trim();return t&&t!==e.command&&t!==Ys(e.command)?t:Ur(e.command,e.description||"")}function mt(e,t){let{ts:n,change:r,...o}=e.payload||{};return{id:e.id,kind:"event",type:t,...o,at:he(e),ts:he(e)}}function Ux(e){let t=[...e];for(let n=0;n<t.length;n++){let r=t[n];if(r?.kind!=="event"||r.type!=="archived")continue;let o=(r.ts??0)+R1,s=n;for(;s+1<t.length;){let a=t[s+1];if((a?.ts??0)>o||a?.kind==="event"&&O1.has(a.type))break;s++}s>n&&t.splice(s,0,...t.splice(n,1)),n=s}return t}function Hx(e){let t=[...e];for(let n=0;n<t.length;n++){let r=t[n];if(r?.kind!=="event"||!C1.has(r.type)||!r.box)continue;let o=(r.ts??0)+M1,s=n;for(;s+1<t.length;){let a=t[s+1];if((a?.ts??0)>o||!(a?.kind==="message"&&a.role==="assistant"&&a.box===r.box||a?.kind==="command-batch"&&a.anchorBox===r.box))break;s++}s>n&&t.splice(s,0,...t.splice(n,1)),n=s}return t}function Ru(e){return(e||[]).filter(t=>N1.has(t?.kind)&&t.status==="open")}function Wx(e){let t=new Map,n=new Map;for(let r of e||[]){if(r.type!=="pr.state.changed")continue;let o=r.payload||{};if(Lx.has(o.change)&&o.number!=null)Fx(t,n,o);else if(o.change==="merged"||o.change==="closed"||o.change==="lost"){let s=Dh(o);if(t.has(s))t.delete(s);else if(o.number!=null)for(let a of[...t.keys()])a.endsWith(`#${o.number}`)&&t.delete(a)}}return[...t.values()]}var he,Lx,Dh,_1,R1,O1,M1,C1,N1,Ou=W(()=>{Xs();Uo();gu();Wi();$u();Ph();he=e=>e.payload?.ts??e.ts;Lx=new Set(["opened","ci-fixed","reconciled","pushed"]),Dh=e=>`${e.repo??""}#${e.number}`;_1=2*6e4;R1=12e4,O1=new Set(["archived","unarchived","opened"]);M1=2500,C1=new Set(["pr-opened","pr-merged","pr-auto-armed"]);N1=new Set(["pr-offer","pr-exists-offer","ticket-offer","ticket-create-offer","loop-create-offer","loop-update-offer","loop-delete-offer","planning-offer","fullscreen-offer","followup-create-offer"])});function L1(e){let t=null,n=null,r=null;for(let o of e??[]){let s=o?.ts??null;s&&(r=Math.max(r??0,s)),o?.type==="handoff.artifact"&&(t={ts:o.payload?.ts??s,truncated:!!o.payload?.truncated,...o.payload?.reconstructed?{reconstructed:!0}:{}}),o?.type==="code.pushed"&&(n={ts:o.payload?.ts??s,sha:o.payload?.sha??null,ref:o.payload?.ref??null,wip:!!o.payload?.wip})}return{lastArtifact:t,lastPush:n,lastEventAt:r}}function U1(e){for(let t=(e?.length??0)-1;t>=0;t--){let n=e[t];if(n?.type==="handoff.artifact"&&!n.payload?.reconstructed)return n}return null}function H1(e,t){let n=[],r=[],o=new Set,s=new Set;for(let a=(e?.length??0)-1;a>=0;a--){let i=e[a];if(i?.type!=="tool.called")continue;if(t!=null&&(i.ts??0)<=t)break;let c=i.payload||{};c.path&&!o.has(c.path)&&n.length<B1&&(o.add(c.path),n.push(c.path)),c.head&&!s.has(c.head)&&r.length<j1&&(s.add(c.head),r.push(c.head))}return{files:n,heads:r}}function Vx(e,{trackName:t="this Track",now:n=null,mode:r="failover"}={}){let o=L1(e),s=U1(e),a=s?.payload?.content??null,i=s?s.payload?.ts??s.ts??null:null,c=Mn(e??[]).filter(p=>p?.kind==="message"&&typeof p.text=="string"&&p.text.trim()).slice(-P1);if(!a&&!c.length)return null;let l=[];if(l.push(`# Reconstructed resume brief \u2014 ${t}`),l.push(""),l.push(Gx[r]??Gx.failover),l.push(""),o.lastPush?.sha){let p=Kx(n,o.lastPush.ts),f=p?` (~${p} min before the loss)`:"";l.push(`**Code state:** last pushed ref \`${o.lastPush.ref}\` @ \`${o.lastPush.sha.slice(0,12)}\`${f}`+(o.lastPush.wip?" \u2014 a bostrat WIP snapshot (full working tree incl. uncommitted edits at push time).":"."))}else r==="in-place"?l.push("**Code state:** no push recorded \u2014 the working tree in this workspace is the only copy; commit early."):l.push("**Code state:** no push was ever recorded for this Track \u2014 work since the branch's last known state stayed on the offline node.");if(l.push(""),a){let p=Kx(n,i);l.push(`## Last real checkpoint (written by the previous agent${p?`, ~${p} min before this reconstruction`:""})`),l.push(""),l.push(a.trim()),l.push("")}let u=H1(e??[],i);if((u.files.length||u.heads.length)&&(l.push(`## Work since ${a?"that checkpoint":"the start of the log"} (from the event log)`),l.push(""),u.files.length&&l.push(`Files touched (most recent first): ${u.files.map(p=>`\`${p}\``).join(", ")}`),u.heads.length&&(u.files.length&&l.push(""),l.push(`Commands run (most recent first): ${u.heads.map(p=>`\`${p}\``).join(" \xB7 ")}`)),l.push("")),c.length){l.push(`## Recent conversation (last ${c.length} message${c.length===1?"":"s"})`),l.push("");for(let p of c)l.push(`**${p.role==="user"?"operator":"agent"}:** ${F1(p.text,D1)}`),l.push("")}l.push("---"),l.push("Resume: continue the objective above from the verified repository state; ask the operator before redoing anything the log says was already done.");let d=l.join(`
|
|
153
|
+
`});function E1(e){return{id:e.id,kind:"prompt",groupId:e.groupId,provider:e.provider,box:e.box,agent:e.provider,questionTotal:e.questions.length,answeredVia:"chat",questions:e.questions.map((t,n)=>({index:n,header:t.header||"",question:t.question,multiSelect:!!t.multiSelect,chosen:[]})),ts:e.ts}}function Fx(e,t,n){let r=Dh(n),o=e.has(r)?r:null;if(!o&&n.number!=null)for(let[i,c]of e){if(Number(c.number)!==Number(n.number))continue;let l=!!(n.url&&c.url&&n.url===c.url),u=!c.repo&&!!n.repo||!!c.repo&&!n.repo;if(l||u&&(!c.url||!n.url||c.url===n.url)){o=i;break}}let s=n.repo||!o?r:o,a=o?e.get(o):e.get(s);if(o&&o!==s){e.delete(o);let i=t.get(o);if(t.delete(o),i?.length){let c=t.get(s)??[];t.set(s,c.concat(i))}}return e.set(s,{number:n.number,url:n.url??a?.url??null,title:n.title??a?.title??null,repo:n.repo??a?.repo??null,branch:n.branch??a?.branch??null}),s}function Mn(e){let t=[],n=new Set,r=new Set,o=new Map,s=new Map,a=new Set,i=new Map,c=new Map,l=new Set,u=new Map,d=new Map,p=(x,m)=>{d.set(x,m),t.push(m)},f=x=>{let m=d.get(x);m&&(m.retired=!0)},w=/^Agent "([\s\S]+)" finished$/,h=new Map;for(let x of e||[]){if(x.type!=="tool.called"||x.source!=="transcript")continue;let m=String(x.payload?.command||"");if(/\bbostrat-mock\s+(?:add|update)\b/.test(m))for(let v of m.matchAll(/[\w./~-]+\.(?:png|jpe?g|gif|webp|bmp|svg)\b/gi)){let P=v[0].split("/").pop().toLowerCase();h.has(P)||h.set(P,[]),h.get(P).push(x.payload?.ts??x.ts)}}let g=3*6e4,y=20*6e4,k=(x,m)=>!!(x?.name&&h.get(String(x.name).toLowerCase()))?.some(P=>P>=m-g&&P<=m+y);for(let x of e||[])if(x.type==="turn.retracted"){r.add(`${x.boxId}|${x.payload?.saidTs}`);let m=Ue(x.payload?.text);m&&(o.has(x.boxId)||o.set(x.boxId,[]),o.get(x.boxId).push(m))}else if(x.type==="turn.user"&&x.source==="orchestrator"){let m=Ue(x.payload?.text);m&&(s.has(x.boxId)||s.set(x.boxId,new Set),s.get(x.boxId).add(m))}else if(x.type==="job.stalled"&&x.payload?.id)i.set(x.payload.id,{ts:he(x),quietMs:Number(x.payload.quietMs)||null});else if(x.type==="job.started"&&x.payload?.id)a.add(x.payload.id),(x.payload.kind||"agent")==="agent"&&x.payload.name&&l.add(x.payload.name);else if(x.type==="turn.user"&&x.payload?.note?.kind==="task"){let m=x.payload.note,v={status:m.status||null,summary:m.summary||null,resultHead:m.resultHead??null,ts:he(x)};m.toolUseId&&c.set(m.toolUseId,v);let P=String(m.summary||"").match(w);P&&u.set(P[1],v)}let b=new Map,I=new Map,R=null,N=new Map,D=new Map,j=new Map,T=new Map,$=new Map,F=new Map,J=new Map,M=new Map,S=new Map,_=new Map,H=new Map,K=new Map,X=new Map,pe=new Map,Oe=new Map,Me=[],Q=x=>Me.push(x),qe=x=>{if(!Me.length)return;let m=he(x);for(let v of Me){if(v.status!=="open"||v.box&&v.box!==x.boxId||(v.ts??0)>m)continue;let P=t.indexOf(v);P>=0&&t.splice(P,1),v.ts=m,t.push(v)}},Ae=new Map,Z=new Map,me=new Map,Te=new Map,z=new Map,ge=new Map,Ge=new Map,O=new Map,Y=()=>{for(let x of O.values())x.questions.length&&t.push(x);O.clear()},Le=null,Qe=new Map,oe=6e4,ye=new Map,Fe=(x,m)=>{let v=o.get(x);if(!v?.length)return!1;let P=Ue(m),ce=s.get(x);return v.some(be=>{if(!P.startsWith(be))return!1;let Ne=Ue(P.slice(be.length));return!!Ne&&!!ce?.has(Ne)})};for(let x of e||[]){let m=x.payload||{};switch(x.type){case"turn.user":{if(x.source==="hook"||(Me.length=0,!String(m.text||"").trim()&&!m.images?.length&&!m.attachments?.length))break;{let v=Mx(m.text);if(v){if(v.kind==="shell-input"){let P={id:x.id,kind:"shell",command:v.command,stdout:null,stderr:null,done:!1,ts:he(x),box:x.boxId,agent:x.provider};t.push(P),Qe.set(x.boxId,P)}else{let P=Qe.get(x.boxId);P?(P.stdout=v.stdout||null,P.stderr=v.stderr||null,P.done=!0,Qe.delete(x.boxId)):t.push({id:x.id,kind:"shell",command:null,stdout:v.stdout||null,stderr:v.stderr||null,done:!0,ts:he(x),box:x.boxId,agent:x.provider})}break}}{let v=m.note||Ji(m.text);if(v){if(v.kind==="task"){if(v.toolUseId&&a.has(v.toolUseId))break;let P=String(v.summary||"").match(w);if(!v.toolUseId&&P&&l.has(P[1]))break}if(v.kind==="command"&&Rx(v.command))break;if(v.kind==="resume-summary"){t.push({id:x.id,kind:"resume-summary",title:v.title||"Context resumed from summary",bullets:v.bullets||[],sections:v.sections||[],rawChars:v.rawChars??null,ts:he(x),box:x.boxId,agent:x.provider});break}v.kind!=="suppress"&&t.push({id:x.id,kind:"event",type:Nx(v),name:v.name??null,command:v.command??null,summary:v.summary??null,status:v.status??null,ts:he(x),box:x.boxId,agent:x.provider});break}}if(r.has(`${x.boxId}|${he(x)}`)||x.source==="transcript"&&Fe(x.boxId,m.text))break;if(m.kind==="merge-notify"||m.kind==="ship-notify"){t.push({id:x.id,kind:"event",type:m.kind==="ship-notify"?"ship-notified":"merge-notified",text:m.text,ts:he(x),box:x.boxId,agent:x.provider});break}if(m.kind==="mock-picked"||m.kind==="ci-fix"||m.kind==="reconcile"||m.kind==="pr-go"||m.kind==="push-go"||m.kind==="spin-up-view"||m.kind==="prompt-answer"||m.kind==="followup-go"){m.kind==="prompt-answer"&&(Le=null);break}for(let v of N.values())v.status="stale";N.clear();for(let v of j.values())v.status="stale";j.clear();for(let v of X.values())v.status="stale";X.clear(),Le&&Le.box===x.boxId&&(t.push(E1(Le)),Le=null),t.push({id:x.id,kind:"message",role:"user",text:m.text,ts:he(x),box:x.boxId,agent:x.provider,boxRole:m.boxRole,...x.actor==="orchestrator"?{orchestration:m.kind||!0}:{},...m.sourceId?{sourceId:m.sourceId}:{},...m.attachments?.length?{attachments:m.attachments}:{},...m.images?.length?{images:m.images}:{}});break}case"peer.message":{let v=m.from||{};t.push({id:x.id,kind:"event",type:"peer-message",text:m.text,from:v.trackName||v.boxId||v.name||null,fromTrackId:v.trackId||null,ts:he(x),box:x.boxId,agent:x.provider});break}case"turn.agent":{if(m.model==="<synthetic>"&&/^No response requested\.$/.test(String(m.text||"").trim()))break;let v=W0(m,{codexFailedText:Fo});if(v){t.push({id:x.id,kind:"event",type:"provider-error",cls:v.cls,status:v.status??void 0,text:v.text,provider:x.provider,legacy:!0,at:he(x),ts:he(x),box:x.boxId,agent:x.provider});break}Y();let P=(m.images||[]).filter(rt=>!k(rt,he(x)));if(!String(m.text||"").trim()&&!P.length)break;if(x.provider==="cursor"){let rt=`${x.boxId}|${m.text}`;if(n.has(rt))break;n.add(rt)}(!Le||Le.box===x.boxId)&&(Le=null);let ce=x.provider==="codex"?(m.tools||[]).filter(rt=>!ph.has(rt)&&!Di.has(rt)):m.tools||[],be=m.text,Ne=null,gt=Mh(String(m.text||""));gt&&(be=gt.text,Ne={questions:gt.questions}),t.push({id:x.id,kind:"message",role:"assistant",text:be,ts:he(x),box:x.boxId,agent:x.provider,boxRole:m.boxRole,...Ne?{ask:Ne}:{},...ce.length?{tools:ce}:{},...m.model?{model:m.model}:{},...m.sourceId?{sourceId:m.sourceId}:{},...P.length?{images:P}:{}}),qe(x),Ne&&(Le={id:x.id,groupId:Ch(x.provider,m.sourceId||x.id,Ne.questions),provider:x.provider,box:x.boxId,questions:Ne.questions,ts:he(x)});break}case"job.started":{if(!m.id)break;let v=he(x),P=c.get(m.id);if(!P&&(m.kind||"agent")==="agent"&&m.name){let lt=u.get(m.name);lt&<.ts>=v&&(P=lt)}let ce=P?null:i.get(m.id)||null,be={jobId:m.id,jobKind:m.kind||"agent",name:m.name||null,detail:m.detail||null,status:P?P.status==="killed"?"stopped":P.status&&P.status!=="completed"?"failed":"done":ce?"stalled":"running",startedTs:v,finishedTs:P?.ts??ce?.ts??null,quietMs:ce?.quietMs??null,summary:P?.summary??null,resultHead:P?.resultHead??null},Ne=ye.get(x.boxId),gt=Ne?.jobs[Ne.jobs.length-1]?.startedTs;if(Ne&>!=null&&v-gt<=oe)Ne.jobs.push(be);else{let lt={id:x.id,kind:"job-dock",dockId:m.id,ts:v,box:x.boxId,agent:x.provider,jobs:[be]};ye.set(x.boxId,lt),t.push(lt)}break}case"handoff.done":t.push(mt(x,"lead-handoff"));break;case"subtask.delegated":t.push({...mt(x,"subtask-delegated"),to:x.boxId,toAgent:x.provider});break;case"subtask.merged":t.push(mt(x,"subtask-merged"));break;case"pr.state.changed":{if(!m.change)break;if(m.change==="opened"){for(let P of N.values())P.status="stale";N.clear();for(let P of j.values())P.status="stale";j.clear()}let v=mt(x,`pr-${m.change}`);if(v.box=x.boxId??null,Lx.has(m.change)&&m.number!=null){let P=Fx(b,I,m);if(b.size>=2){for(let be of I.values())for(let Ne of be)Ne.grouped=!0;v.groupPrs=[...b.values()];let ce=[v];for(let be of b.keys())I.set(be,ce)}else{let ce=I.get(P)??[];ce.push(v),I.set(P,ce)}}else if(m.change==="merged"||m.change==="closed"||m.change==="lost"){let P=Dh(m),ce=R&&!R.complete||b.size>=2;if(b.has(P))b.delete(P),I.delete(P);else if(m.number!=null)for(let be of[...b.keys()])be.endsWith(`#${m.number}`)&&(b.delete(be),I.delete(be));if(ce&&m.number!=null){(!R||R.complete)&&(R={id:x.id,kind:"event",type:"pr-group-settled",prs:[],remaining:[],complete:!1,at:he(x),ts:he(x),box:x.boxId,agent:x.provider},t.push(R)),R.prs.push({number:m.number,url:m.url??null,title:m.title??null,repo:m.repo??null,branch:m.branch??null,change:m.change,ts:he(x)}),R.remaining=[...b.values()],R.complete=b.size===0;break}}t.push(v);break}case"pr.offered":{if(!m.offerId)break;for(let P of N.values())P.status="stale";N.clear();for(let P of j.values())P.status="stale";j.clear();let v={id:x.id,kind:"pr-offer",offerId:m.offerId,excerpt:m.excerpt||null,branch:m.branch||null,base:m.base||null,offered:Array.isArray(m.offered)&&m.offered.length?m.offered:null,toPr:m.toPr&&typeof m.toPr=="object"?{number:m.toPr.number??null}:null,available:Array.isArray(m.available)?m.available:null,defaults:Array.isArray(m.defaults)?m.defaults:null,prState:m.prState||null,openPr:m.openPr&&typeof m.openPr=="object"?m.openPr:null,repos:Array.isArray(m.repos)&&m.repos.length?m.repos:null,status:"open",source:x.source==="cli"||m.via==="cli"?"cli":"transcript",ts:he(x),box:x.boxId,agent:x.provider};N.set(m.offerId,v),D.set(m.offerId,v),t.push(v),v.source==="cli"&&Q(v);break}case"pr.offer.answered":{let v=D.get(m.offerId);v&&(v.status=m.action||"dismiss",v.actions=Array.isArray(m.actions)?m.actions:null,v.notify=m.notify===!0,m.existingPr&&typeof m.existingPr=="object"&&(v.existingPr={number:m.existingPr.number??null}),N.delete(m.offerId));break}case"pr.exists.offered":{if(!m.offerId)break;for(let P of j.values())P.status="stale";j.clear();let v={id:x.id,kind:"pr-exists-offer",offerId:m.offerId,srcOfferId:m.srcOfferId??null,branch:m.branch||null,base:m.base||null,pr:m.pr&&typeof m.pr=="object"?{number:m.pr.number??null,url:m.pr.url??null,title:m.pr.title??null}:null,actions:Array.isArray(m.actions)&&m.actions.length?m.actions:null,notify:m.notify===!0,status:"open",ts:he(x),box:x.boxId,agent:x.provider};j.set(m.offerId,v),T.set(m.offerId,v),t.push(v);break}case"pr.exists.answered":{let v=T.get(m.offerId);v&&(v.status=m.choice||"dismiss",j.delete(m.offerId));break}case"box.state.changed":{let v=m.change==="model"?"model-change":m.change;if(!v)break;let P=mt(x,v);if(v==="model-change"&&(P.to=m.model),v==="node-update"&&P.latest){let ce=t.findIndex(be=>be.kind==="event"&&be.type==="node-update"&&be.latest===P.latest);if(ce>=0){let be=t[ce];t[ce]={...P,ts:be.ts,at:be.at,firstAt:be.firstAt??be.ts,updatedAt:P.ts};break}}t.push(P);break}case"track.transferred":case"track.recovered":t.push(mt(x,"track-moved"));break;case"view.state.changed":{if(m.change==="deleted"){f(`view:${m.viewId}`);break}if(m.change!=="created"||m.restarted)break;p(`view:${m.viewId}`,{id:x.id,kind:"view-card",viewId:m.viewId,name:m.name,slug:m.slug,port:m.port,origin:m.origin,ts:he(x),box:x.boxId,agent:x.provider});break}case"view.spinup.failed":{t.push({id:x.id,kind:"view-spinup-failed",name:m.name||null,reason:m.reason||"no-view",ts:he(x),box:x.boxId,agent:x.provider});break}case"mock.state.changed":{if(m.change==="picked"){t.push({id:x.id,kind:"mock-picked",mockId:m.mockId,name:m.name,group:m.group??null,version:m.version??null,siblings:m.siblings??[],ts:he(x),box:x.boxId,agent:x.provider});break}if(m.change==="deleted"){f(`mock:${m.mockId}`);break}if(m.change!=="created")break;p(`mock:${m.mockId}`,{id:x.id,kind:"mock-card",mockId:m.mockId,name:m.name,group:m.group??null,ts:he(x),box:x.boxId,agent:x.provider});break}case"flow.state.changed":{if(m.change==="deleted"){f(`flow:${m.flowId}`);break}if(m.change!=="created")break;p(`flow:${m.flowId}`,{id:x.id,kind:"flow-card",flowId:m.flowId,name:m.name,stepCount:m.stepCount??null,mockIds:m.mockIds??[],ts:he(x),box:x.boxId,agent:x.provider});break}case"runbook.state.changed":{if(m.change==="deleted"){f(`runbook:${m.runbookId}`);break}if(m.change!=="created")break;p(`runbook:${m.runbookId}`,{id:x.id,kind:"runbook-card",runbookId:m.runbookId,name:m.name,ts:he(x),box:x.boxId,agent:x.provider});break}case"ticket.linked":{t.push({id:x.id,kind:"ticket-card",provider:m.provider||"linear",key:m.key,url:m.url,title:m.title??null,linkSource:m.linkSource??null,ts:he(x),box:x.boxId,agent:x.provider});break}case"box.fullscreen.detected":{if(!m.offerId)break;for(let P of J.values())P.box===(m.box||x.boxId)&&(P.status="stale",J.delete(P.offerId));let v={id:x.id,kind:"fullscreen-offer",offerId:m.offerId,status:"open",ts:he(x),box:m.box||x.boxId,agent:m.agent||x.provider};J.set(m.offerId,v),M.set(m.offerId,v),t.push(v);break}case"box.fullscreen.answered":{let v=M.get(m.offerId);v&&(v.status=m.action==="restarted"?"restarted":m.action==="cleared"?"cleared":"dismiss",J.delete(m.offerId));break}case"ticket.move.offered":{if(!m.offerId)break;for(let P of $.values())P.key===m.key&&(P.status="stale",$.delete(P.offerId));let v={id:x.id,kind:"ticket-offer",offerId:m.offerId,provider:m.provider||"linear",key:m.key,url:m.url??null,phase:m.phase??null,from:m.from??null,to:m.to?.name??null,prNumber:m.prNumber??null,status:"open",ts:he(x),box:x.boxId,agent:x.provider};$.set(m.offerId,v),F.set(m.offerId,v),t.push(v);break}case"ticket.move.answered":{let v=F.get(m.offerId);v&&(v.status=m.action==="moved"?"moved":"dismiss",$.delete(m.offerId));break}case"ticket.state.changed":{for(let v of $.values())v.key===m.key&&v.to===m.to&&(v.status="stale",$.delete(v.offerId));if(m.mode==="offer")break;t.push(mt(x,"ticket-state"));break}case"ticket.commented":{t.push({id:x.id,kind:"ticket-comment",key:m.key,url:m.url??null,excerpt:m.excerpt??null,ts:he(x),box:x.boxId,agent:x.provider});break}case"ticket.flow.changed":t.push(mt(x,"ticket-flow"));break;case"ticket.create.offered":{if(!m.proposalId)break;for(let P of S.values())P.status="stale";S.clear();let v={id:x.id,kind:"ticket-create-offer",proposalId:m.proposalId,provider:m.provider||"linear",epic:m.epic??null,issues:Array.isArray(m.issues)?m.issues:[],team:m.team??null,needsTeam:!!m.needsTeam,linkCurrentTrack:!!m.linkCurrentTrack,status:"open",ts:he(x),box:x.boxId,agent:x.provider};S.set(m.proposalId,v),_.set(m.proposalId,v),t.push(v),Q(v);break}case"ticket.create.answered":{let v=_.get(m.proposalId);v&&(v.status=m.action==="created"?"created":"dismiss",v.createdCount=m.createdCount??null,v.failedCount=m.failedCount??null,S.delete(m.proposalId));break}case"loop.create.offered":{if(!m.proposalId)break;for(let P of H.values())P.status="stale";H.clear();let v={id:x.id,kind:"loop-create-offer",proposalId:m.proposalId,name:m.name??"",schedule:m.schedule??"",prompt:m.prompt??"",expectation:m.expectation??null,notify:m.notify??"off",assignment:m.assignment??{provider:"claude"},repo:m.repo??null,nodeId:m.nodeId??null,nodeName:m.nodeName??null,status:"open",ts:he(x),box:x.boxId,agent:x.provider};H.set(m.proposalId,v),K.set(m.proposalId,v),t.push(v),Q(v);break}case"loop.create.answered":{let v=K.get(m.proposalId);v&&(v.status=m.action==="created"?"created":"dismiss",H.delete(m.proposalId));break}case"followup.armed":{if(!m.armId)break;let v=m.replaces?Oe.get(m.replaces):null;v&&v.status==="armed"&&(v.status="replaced");let P={id:x.id,kind:"followup-armed",armId:m.armId,trigger:m.trigger??"now",label:m.label??"",prompt:m.prompt??"",why:m.why??null,status:"armed",ts:he(x),box:x.boxId,agent:x.provider};Oe.set(m.armId,P),P.trigger!=="now"&&t.push(P);break}case"followup.armed.cancelled":{let v=Oe.get(m.armId);v&&v.status==="armed"&&(v.status="cancelled");break}case"followup.offered":{if(!m.offerId)break;for(let ce of X.values())ce.trigger===m.trigger&&(ce.status="stale",X.delete(ce.offerId));let v=Array.isArray(m.rows)?m.rows:[];for(let ce of v){let be=ce.armId?Oe.get(ce.armId):null;be&&be.status==="armed"&&(be.status="offered")}let P={id:x.id,kind:"followup-offer",offerId:m.offerId,trigger:m.trigger??"now",repo:m.repo??null,context:m.context&&typeof m.context=="object"?m.context:{},rows:v.map(ce=>({followupId:ce.followupId??null,armId:ce.armId??null,label:ce.label??"",prompt:ce.prompt??null,promptPreview:ce.promptPreview??null,promptHash:ce.promptHash??null,origin:ce.origin??"operator",why:ce.why??null})),status:"open",answer:null,ts:he(x),box:x.boxId,agent:x.provider};X.set(m.offerId,P),pe.set(m.offerId,P),t.push(P),P.trigger==="now"&&Q(P);break}case"followup.answered":{let v=pe.get(m.offerId);v&&(v.status=m.action==="sent"?"sent":m.action==="removed"?"removed":"dismiss",v.answer={followupId:m.followupId??null,armId:m.armId??null,label:m.label??null,promoted:m.promoted??null,revived:m.revived===!0},X.delete(m.offerId));break}case"followup.create.offered":{if(!m.proposalId)break;for(let P of Ae.values())P.status="stale";Ae.clear();let v={id:x.id,kind:"followup-create-offer",proposalId:m.proposalId,label:m.label??"",prompt:m.prompt??"",trigger:m.trigger??"pr.merged",repo:m.repo??null,why:m.why??null,status:"open",created:null,ts:he(x),box:x.boxId,agent:x.provider};Ae.set(m.proposalId,v),Z.set(m.proposalId,v),t.push(v),Q(v);break}case"followup.create.answered":{let v=Z.get(m.proposalId);v&&(v.status=m.action==="created"?"created":"dismiss",Ae.delete(m.proposalId));break}case"followup.created":{let v=m.proposalId?Z.get(m.proposalId):null;v&&(v.created={followupId:m.followupId??null});break}case"loop.created":{let v=m.proposalId?K.get(m.proposalId):null;v&&(v.created={loopId:m.loopId??null,nextFireAt:Number.isFinite(Number(m.nextFireAt))?Number(m.nextFireAt):null}),t.push(mt(x,"loop-created"));break}case"loop.update.offered":case"loop.delete.offered":{if(!m.proposalId||!m.loopId)break;for(let ce of me.values())ce.loopId===m.loopId&&(ce.status="stale",ce.staleReason="superseded",me.delete(ce.proposalId));let v=x.type==="loop.update.offered",P={id:x.id,kind:v?"loop-update-offer":"loop-delete-offer",proposalId:m.proposalId,loopId:String(m.loopId),name:m.name??m.base?.name??"",base:m.base??null,...v?{patch:m.patch??{},changed:Array.isArray(m.changed)?m.changed:Object.keys(m.patch||{})}:{reason:m.reason??""},selfEdit:!!m.selfEdit,status:"open",staleReason:null,ts:he(x),box:x.boxId,agent:x.provider};me.set(m.proposalId,P),Te.set(m.proposalId,P),t.push(P),Q(P);break}case"loop.update.answered":{let v=Te.get(m.proposalId);v&&(m.action==="moved"?(v.status="stale",v.staleReason="moved"):v.status=m.action==="applied"?"applied":"dismiss",me.delete(m.proposalId));break}case"loop.delete.answered":{let v=Te.get(m.proposalId);v&&(m.action==="moved"?(v.status="stale",v.staleReason="moved"):v.status=m.action==="delete"?"deleted":m.action==="pause"?"paused":"keep",me.delete(m.proposalId));break}case"loop.updated":{let v=m.proposalId?Te.get(m.proposalId):null;v&&(v.applied={changed:Array.isArray(m.changed)?m.changed:[],nextFireAt:Number.isFinite(Number(m.nextFireAt))?Number(m.nextFireAt):null}),t.push(mt(x,"loop-updated"));break}case"loop.deleted":t.push(mt(x,"loop-deleted"));break;case"loop.paused":t.push(mt(x,"loop-paused"));break;case"planning.change.offered":{if(!m.proposalId||!Array.isArray(m.ops)||!m.ops.length)break;for(let P of z.values())P.status="stale",P.staleReason="superseded",z.delete(P.proposalId);let v={id:x.id,kind:"planning-offer",proposalId:m.proposalId,why:m.why??"",ops:m.ops,base:m.base??{},resolved:m.resolved??{},snapped:!!m.snapped,createsMeRow:!!m.createsMeRow,status:"open",staleReason:null,applied:null,ts:he(x),box:x.boxId,agent:x.provider};z.set(m.proposalId,v),ge.set(m.proposalId,v),t.push(v),Q(v);break}case"planning.change.answered":{let v=ge.get(m.proposalId);v&&(m.action==="moved"?(v.status="stale",v.staleReason="moved"):v.status=m.action==="applied"?"applied":"dismiss",z.delete(m.proposalId));break}case"planning.changed":{let v=m.proposalId?ge.get(m.proposalId):null;v&&(v.applied={results:Array.isArray(m.results)?m.results:[]}),t.push(mt(x,"planning-changed"));break}case"rework.cause.offered":{if(!m.sha||Ge.has(m.sha))break;let v={id:x.id,kind:"rework-cause-offer",sha:m.sha,subject:m.subject??"",linesReworked:Number(m.linesReworked)||0,origins:Array.isArray(m.origins)?m.origins:[],heuristic:m.heuristic??null,intent:m.intent??null,shas:Array.isArray(m.shas)?m.shas:null,pr:m.pr??null,retracts:0,status:"open",cause:null,ts:he(x),box:x.boxId,agent:x.provider};Ge.set(m.sha,v),t.push(v);break}case"rework.cause.answered":{let v=m.sha?Ge.get(m.sha):null;v&&(v.status="answered",v.cause=m.cause??null);break}case"rework.cause.retracted":{let v=m.sha?Ge.get(m.sha):null;v&&(v.status="open",v.cause=null,v.retracts=(v.retracts??0)+1);break}case"ticket.created":{let v={items:Array.isArray(m.items)?m.items:[],failed:Array.isArray(m.failed)?m.failed:[],team:m.team??null},P=m.proposalId?_.get(m.proposalId):null;if(P){P.created=v;break}t.push({id:x.id,kind:"ticket-created",...v,ts:he(x),box:x.boxId,agent:x.provider});break}case"error":{if(!m.kind)break;t.push(mt(x,m.kind));break}case"provider.error":t.push({...mt(x,"provider-error"),provider:x.provider,box:x.boxId,agent:x.provider});break;case"usage.cap.hit":t.push(mt(x,"usage-cap-hit"));break;case"usage.cap.warning":t.push(mt(x,"usage-cap-warning"));break;case"provider.connected":{t.push({id:x.id,kind:"event",type:"provider-connected",provider:m.provider||x.provider,ts:he(x),at:he(x),box:x.boxId,agent:x.provider});break}case"prompt.answered":{if(Le=null,m.control||!m.question)break;let v=m.groupId||m.promptId;if(!v)break;let P=O.get(v);P||(P={id:x.id,kind:"prompt",groupId:v,provider:x.provider,box:x.boxId,agent:x.provider,questionTotal:m.questionTotal??1,questions:[],ts:he(x)},O.set(v,P));let ce=m.questionIndex??0,be={index:ce,header:m.header||"",question:m.question,multiSelect:!!m.multiSelect,chosen:Array.isArray(m.chosen)?m.chosen:[]},Ne=P.questions.findIndex(rt=>rt.index===ce&&Ue(rt.question)===Ue(be.question));Ne>=0?P.questions[Ne]=be:P.questions.push(be),P.questions.sort((rt,lt)=>rt.index-lt.index),P.questionTotal=Math.max(P.questionTotal,m.questionTotal??1),P.questions.length>=P.questionTotal&&(t.push(P),O.delete(v));break}case"prompt.dismissed":{Le=null;let v=m.groupId||m.promptId;if(!v||!m.question)break;let ce=O.get(v)||{id:x.id,kind:"prompt",groupId:v,provider:x.provider,box:x.boxId,agent:x.provider,questionTotal:m.questionTotal??1,questions:[],ts:he(x)},be=m.questionIndex??0;ce.questions.some(Ne=>Ne.index===be&&Ue(Ne.question)===Ue(m.question))||(ce.questions.push({index:be,header:m.header||"",question:m.question,multiSelect:!!m.multiSelect,chosen:[]}),ce.questions.sort((Ne,gt)=>Ne.index-gt.index)),ce.answeredVia="chat",t.push(ce),O.delete(v);break}default:break}}let jt=d.size?t.filter(x=>!x.retired):t;return I1(jt.sort((x,m)=>(x.ts??0)-(m.ts??0)))}function I1(e){let t=new Map,n=[];for(let r of e){if(r.kind!=="message"||!r.box){n.push(r);continue}let o=r.role==="assistant"&&!String(r.text||"").trim()&&r.images?.length,s=t.get(r.box);if(o&&s&&(r.ts??0)-s.lastTs<=_1){s.item.images.push(...r.images),s.lastTs=r.ts??s.lastTs;continue}if(o){let a={...r,images:[...r.images]};t.set(r.box,{item:a,lastTs:r.ts??0}),n.push(a)}else t.delete(r.box),n.push(r)}return n}function Bh(e,t=null){let n=[];for(let o of e||[]){if(o.type!=="tool.called"||o.source!=="transcript")continue;let s=o.payload||{};String(s.command||"").trim()&&n.push({id:s.id??null,tool:s.tool||null,command:s.command,description:s.description||"",summary:$1(s),ts:s.ts??o.ts,n:s.n,box:o.boxId,agent:o.provider,boxRole:s.boxRole})}if(!n.length)return[];let r=(t??Mn(e)).filter(o=>o.kind==="message");return P0(n,r)}function $1(e){let t=String(e.summary||"").trim();return t&&t!==e.command&&t!==Ys(e.command)?t:Ur(e.command,e.description||"")}function mt(e,t){let{ts:n,change:r,kind:o,...s}=e.payload||{};return{id:e.id,kind:"event",type:t,...s,at:he(e),ts:he(e)}}function Ux(e){let t=[...e];for(let n=0;n<t.length;n++){let r=t[n];if(r?.kind!=="event"||r.type!=="archived")continue;let o=(r.ts??0)+R1,s=n;for(;s+1<t.length;){let a=t[s+1];if((a?.ts??0)>o||a?.kind==="event"&&O1.has(a.type))break;s++}s>n&&t.splice(s,0,...t.splice(n,1)),n=s}return t}function Hx(e){let t=[...e];for(let n=0;n<t.length;n++){let r=t[n];if(r?.kind!=="event"||!C1.has(r.type)||!r.box)continue;let o=(r.ts??0)+M1,s=n;for(;s+1<t.length;){let a=t[s+1];if((a?.ts??0)>o||!(a?.kind==="message"&&a.role==="assistant"&&a.box===r.box||a?.kind==="command-batch"&&a.anchorBox===r.box))break;s++}s>n&&t.splice(s,0,...t.splice(n,1)),n=s}return t}function Ru(e){return(e||[]).filter(t=>N1.has(t?.kind)&&t.status==="open")}function Wx(e){let t=new Map,n=new Map;for(let r of e||[]){if(r.type!=="pr.state.changed")continue;let o=r.payload||{};if(Lx.has(o.change)&&o.number!=null)Fx(t,n,o);else if(o.change==="merged"||o.change==="closed"||o.change==="lost"){let s=Dh(o);if(t.has(s))t.delete(s);else if(o.number!=null)for(let a of[...t.keys()])a.endsWith(`#${o.number}`)&&t.delete(a)}}return[...t.values()]}var he,Lx,Dh,_1,R1,O1,M1,C1,N1,Ou=W(()=>{Xs();Uo();gu();Wi();$u();Ph();he=e=>e.payload?.ts??e.ts;Lx=new Set(["opened","ci-fixed","reconciled","pushed"]),Dh=e=>`${e.repo??""}#${e.number}`;_1=2*6e4;R1=12e4,O1=new Set(["archived","unarchived","opened"]);M1=2500,C1=new Set(["pr-opened","pr-merged","pr-auto-armed"]);N1=new Set(["pr-offer","pr-exists-offer","ticket-offer","ticket-create-offer","loop-create-offer","loop-update-offer","loop-delete-offer","planning-offer","fullscreen-offer","followup-create-offer"])});function L1(e){let t=null,n=null,r=null;for(let o of e??[]){let s=o?.ts??null;s&&(r=Math.max(r??0,s)),o?.type==="handoff.artifact"&&(t={ts:o.payload?.ts??s,truncated:!!o.payload?.truncated,...o.payload?.reconstructed?{reconstructed:!0}:{}}),o?.type==="code.pushed"&&(n={ts:o.payload?.ts??s,sha:o.payload?.sha??null,ref:o.payload?.ref??null,wip:!!o.payload?.wip})}return{lastArtifact:t,lastPush:n,lastEventAt:r}}function U1(e){for(let t=(e?.length??0)-1;t>=0;t--){let n=e[t];if(n?.type==="handoff.artifact"&&!n.payload?.reconstructed)return n}return null}function H1(e,t){let n=[],r=[],o=new Set,s=new Set;for(let a=(e?.length??0)-1;a>=0;a--){let i=e[a];if(i?.type!=="tool.called")continue;if(t!=null&&(i.ts??0)<=t)break;let c=i.payload||{};c.path&&!o.has(c.path)&&n.length<B1&&(o.add(c.path),n.push(c.path)),c.head&&!s.has(c.head)&&r.length<j1&&(s.add(c.head),r.push(c.head))}return{files:n,heads:r}}function Vx(e,{trackName:t="this Track",now:n=null,mode:r="failover"}={}){let o=L1(e),s=U1(e),a=s?.payload?.content??null,i=s?s.payload?.ts??s.ts??null:null,c=Mn(e??[]).filter(p=>p?.kind==="message"&&typeof p.text=="string"&&p.text.trim()).slice(-P1);if(!a&&!c.length)return null;let l=[];if(l.push(`# Reconstructed resume brief \u2014 ${t}`),l.push(""),l.push(Gx[r]??Gx.failover),l.push(""),o.lastPush?.sha){let p=Kx(n,o.lastPush.ts),f=p?` (~${p} min before the loss)`:"";l.push(`**Code state:** last pushed ref \`${o.lastPush.ref}\` @ \`${o.lastPush.sha.slice(0,12)}\`${f}`+(o.lastPush.wip?" \u2014 a bostrat WIP snapshot (full working tree incl. uncommitted edits at push time).":"."))}else r==="in-place"?l.push("**Code state:** no push recorded \u2014 the working tree in this workspace is the only copy; commit early."):l.push("**Code state:** no push was ever recorded for this Track \u2014 work since the branch's last known state stayed on the offline node.");if(l.push(""),a){let p=Kx(n,i);l.push(`## Last real checkpoint (written by the previous agent${p?`, ~${p} min before this reconstruction`:""})`),l.push(""),l.push(a.trim()),l.push("")}let u=H1(e??[],i);if((u.files.length||u.heads.length)&&(l.push(`## Work since ${a?"that checkpoint":"the start of the log"} (from the event log)`),l.push(""),u.files.length&&l.push(`Files touched (most recent first): ${u.files.map(p=>`\`${p}\``).join(", ")}`),u.heads.length&&(u.files.length&&l.push(""),l.push(`Commands run (most recent first): ${u.heads.map(p=>`\`${p}\``).join(" \xB7 ")}`)),l.push("")),c.length){l.push(`## Recent conversation (last ${c.length} message${c.length===1?"":"s"})`),l.push("");for(let p of c)l.push(`**${p.role==="user"?"operator":"agent"}:** ${F1(p.text,D1)}`),l.push("")}l.push("---"),l.push("Resume: continue the objective above from the verified repository state; ask the operator before redoing anything the log says was already done.");let d=l.join(`
|
|
154
154
|
`);return d.length<=qx?d:`${d.slice(0,qx)}
|
|
155
155
|
|
|
156
156
|
[\u2026 brief truncated]`}var P1,D1,qx,B1,j1,F1,Kx,Gx,zx=W(()=>{Ou();P1=12,D1=2e3,qx=48e3,B1=30,j1=10;F1=(e,t)=>{let n=String(e??"").trim();return n.length<=t?n:`${n.slice(0,t-1)}\u2026`},Kx=(e,t)=>e&&t?Math.max(1,Math.round((e-t)/6e4)):null;Gx={failover:"**This is a reconstruction, not a checkpoint.** The node this Track lived on went offline without a clean handoff; bostrat assembled this brief from the durable event log. Treat every claim below as a lead, not a fact \u2014 **verify the repository state first** (git status, git log, the diff against the last pushed ref) before continuing work.","in-place":"**This is a reconstruction, not a checkpoint.** The previous lead ended without writing one (out of credits, capped, or unresponsive); bostrat assembled this status from the Track's event log. You are in the SAME live workspace \u2014 uncommitted work is present locally. **Run git status and git log first** and treat every claim below as a lead, not a fact.",get recover(){return this.failover},transfer:"**This Track was MOVED to a new machine while it was alive.** The previous node checkpointed and pushed its work as part of the move; this workspace was re-created from that push (uncommitted work re-applied when possible). **Run git status and git log to confirm what carried over**, then continue the objective below."}});import W1 from"node:fs";import Wr from"node:fs/promises";import qr from"node:path";function nv(e){let t=Po(String(e??"")),n=Buffer.byteLength(t,"utf8");return n<=Jx?{content:t,bytes:n,truncated:!1}:{content:`${Buffer.from(t,"utf8").subarray(0,Jx).toString("utf8").replace(/�+$/,"")}
|
package/package.json
CHANGED