@quantiya/codevibe-claude-plugin 2.0.21 → 2.0.22
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/.claude-plugin/plugin.json +1 -1
- package/node_modules/@quantiya/codevibe-core/dist/index.js +2 -2
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/cli.js +17 -11
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/reducer.d.ts +4 -5
- package/node_modules/@quantiya/codevibe-core/package.json +1 -1
- package/node_modules/fs-ext/build/Makefile +1 -1
- package/node_modules/fs-ext/build/Release/fs_ext.node +0 -0
- package/node_modules/fs-ext/build/config.gypi +0 -2
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codevibe-claude",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.22",
|
|
4
4
|
"description": "Sync Claude Code sessions with iOS mobile app via AWS backend. Control Claude Code from your phone with real-time bidirectional synchronization.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodeVibe Team"
|
|
@@ -3741,8 +3741,8 @@ ${d.map(h=>`- ${h}`).join(`
|
|
|
3741
3741
|
`)}`),u.push("No code was changed.");let p=kt(u.join(`
|
|
3742
3742
|
|
|
3743
3743
|
`)).trim();if(p.length>tr)throw new Error("local Gemma brainstorm summary exceeded the size limit");return p}var zf={};_t(zf,{FrontmatterMalformed:()=>Pn,PacketAuditEmitError:()=>Do,PacketFidelityError:()=>Oo,PacketHashMismatch:()=>ii,PacketIoError:()=>Li,PacketNotFound:()=>An,PacketPermissionsLoose:()=>si,PacketUnverified:()=>oi,SchemaInvalid:()=>Tn,buildContinuationPacket:()=>Md,collectRepoStates:()=>va,computePacketHash:()=>Bi,createContinuationPacketReader:()=>Sa,createContinuationPacketWriter:()=>Oh,createDirtyStateCollector:()=>Fv,defaultGitExec:()=>Th,getPacketFilePath:()=>_n,getTaskDirectoryPath:()=>Fi,renderPacketMarkdown:()=>Ld,splitFrontmatter:()=>ba,validatePacketSchema:()=>ka});wa();ai();Fd();xh();var rT=E(require("react")),Np=E(require("path")),nw=E(require("os")),Mp=require("node:fs/promises"),nT=require("node:async_hooks"),iw=require("uuid");Ft();Ot();J();function Cr(t){return t+1}function St(t,e){return e<=0?"":t.length<=e?t:e===1?"\u2026":t.slice(0,e-1)+"\u2026"}function P0(t,e,r){let n=t??"";if(e&&(n===e||n.startsWith(e+"/"))&&(n="~"+n.slice(e.length)),n.length>r){if(r<=0)return"";if(r===1)return"\u2026";n="\u2026"+n.slice(n.length-(r-1))}return n}function aE(t,e){return t==="local_gemma_qat"?{text:`${(e??"").trim()||"local model"} \xB7 local`}:t==="local_unavailable"?{text:`\u26A0 ${(e??"").trim()||"local model"} offline \u2014 NL disabled`,color:"yellow"}:null}function cE(t){let{tier:e,homedir:r,columns:n,badge:i}=t,o=" \xB7 ",s=i?St(i.text,Math.max(0,n-o.length-e.length-2)):"",a=s?s.length+1:0,c=Math.max(0,n-a-o.length-e.length),d=P0(t.cwd,r,c),l=d?`${d}${o}${e}`:e;return{leftText:St(l,Math.max(0,n-a)),badgeText:s}}var Rs=null,mu=null;async function T0(t){return await new Function("m","return import(m)")(t)}var x0=T0;async function Zi(t){return x0(t)}async function dE(){return Rs||mu||(mu=(async()=>{let[t,e,r,n,i]=await Promise.all([Zi("ink"),Zi("ink-text-input"),Zi("ink-spinner"),Zi("ink-select-input"),Zi("gradient-string")]);return Rs={ink:t,inkTextInput:e,inkSpinner:r,inkSelectInput:n,gradientString:i},Rs})(),mu)}function se(){if(!Rs)throw new Error("ink-runtime not initialized \u2014 call `await initInkRuntime()` from the entrypoint before mounting any TUI component");return Rs}function lE(t){let e=null,r=null,n=null,i=()=>{if(!e){let s,a;e=new Promise((c,d)=>{s=c,a=d});try{Promise.resolve(t.start()).then(s,a)}catch(c){a(c)}}return e},o=async(s,a)=>{let c;try{if(await Promise.race([i().then(()=>"settled"),new Promise(l=>{c=setTimeout(()=>l("timeout"),a),c.unref?.()})])==="timeout"){t.onTimeout?.(s,a);let l=t.timeoutError?.(s,a);if(l)throw l}}finally{c&&clearTimeout(c)}};return{wait:(s="normal")=>s==="signal"?(n??=o("signal",t.signalTimeoutMs),n):(r??=o("normal",t.normalTimeoutMs),r)}}J();var Jf=2e3;function fu(t){return t instanceof Error?t:new Error(String(t))}function gu(t,e){try{t?.(e)}catch{}}function uE(t){let e=u=>{if(!u)return Promise.resolve();try{return Promise.resolve(u())}catch(p){return Promise.reject(p)}},r=(u,p)=>{if(!p)return Promise.resolve();let h=Date.now(),y=!1,g=setTimeout(()=>{y||m.warn("[workspace-shutdown] teardown phase still pending",{phase:u,waitedMs:Jf})},Jf);return g.unref?.(),e(p).finally(()=>{y=!0,clearTimeout(g);let f=Date.now()-h;f>=Jf&&m.warn("[workspace-shutdown] slow teardown phase settled",{phase:u,elapsedMs:f})})},n=r("flushPlannerCache",t.flushPlannerCache),i=r("disposeQuorumWorkspaces",t.disposeQuorumWorkspaces),o=r("drainLocalWorkspaces",t.drainLocalWorkspaces);try{t.clearPlannerSession?.()}catch{}let s=n.catch(u=>{gu(t.onPlannerFlushFailure,fu(u))}),a=Promise.allSettled([i,o]).then(async u=>{let p=[];for(let h of u){if(h.status==="fulfilled")continue;let y=fu(h.reason);p.push(y),gu(t.onWorkspaceFailure,y)}for(let[h,y]of[["drainShellSubmissions",t.drainShellSubmissions],["disposeAdvisoryAttachmentAuthority",t.disposeAdvisoryAttachmentAuthority],["disposeLocalDurableSessionResources",t.disposeLocalDurableSessionResources]])try{await r(h,y)}catch(g){let f=fu(g);p.push(f),gu(t.onWorkspaceFailure,f)}return p}),c=a.then(u=>{if(u.length>0)throw Object.assign(new Error("session teardown retained one or more workspace resources"),{causes:u})});c.catch(()=>{});let d=a.then(async u=>{let p=[...u];for(let[h,y]of[["finalizeContextItemPublications",t.finalizeContextItemPublications],["retireHostedSession",t.retireHostedSession]])try{await r(h,y)}catch(g){let f=fu(g);p.push(f),gu(t.onWorkspaceFailure,f)}if(p.length>0)throw Object.assign(new Error("session teardown retained one or more workspace resources"),{causes:p})});return{completion:Promise.all([s,d]).then(()=>{}),resourceRetirement:c}}function pE(t){let e=!1,r=()=>{};return{completion:new Promise(i=>{r=i}),start:()=>{e||(e=!0,Promise.resolve().then(t.runTeardown).catch(()=>{}).finally(()=>{try{t.unmount()}catch{}finally{r()}}))}}}var yr=require("ulid");function nt(t){if(!t)return"";let e="",r=0,n=t.length;for(;r<n;){let i=t[r],o=t.charCodeAt(r);if(i==="\x1B"){let s=t[r+1];if(s==="["){for(r+=2;r<n;){let a=t.charCodeAt(r);if(r++,a>=64&&a<=126)break}continue}if(s==="]"){for(r+=2;r<n;){if(t.charCodeAt(r)===7){r++;break}if(t[r]==="\x1B"&&t[r+1]==="\\"){r+=2;break}r++}continue}if(s==="P"||s==="X"||s==="^"||s==="_"){for(r+=2;r<n;){if(t.charCodeAt(r)===7){r++;break}if(t[r]==="\x1B"&&t[r+1]==="\\"){r+=2;break}r++}continue}r+=s===void 0?1:2;continue}if(o===155||o===157||o===144||o===152||o===158||o===159){r++;continue}if(i===`
|
|
3744
|
-
`||i===" "||i===" "){e+=i,r++;continue}if(o<=31||o===127||o>=128&&o<=159){r++;continue}e+=i,r++}return e}function pn(t){let e=Math.max(0,Math.floor(t/1e3)),r=Math.floor(e/3600),n=Math.floor(e%3600/60),i=e%60;return r>0?`${r}:${String(n).padStart(2,"0")}:${String(i).padStart(2,"0")}`:`${n}:${String(i).padStart(2,"0")}`}function yu(t){let e=Math.max(0,Math.floor(Number.isFinite(t)?t:0));if(e>=999500)return`${(e/1e6).toFixed(1)}M`;if(e>=1e3){let r=e/1e3;return`${r>=10?r.toFixed(0):r.toFixed(1)}k`}return String(e)}function wc(t){switch(t.phase){case"preparing_workspace":return"Preparing an isolated workspace copy \u2014 this can take a while on a large folder";case"shadow_created":return"Workspace copy ready \u2014 starting implementor";case"implementor_running":{let e=typeof t.filesChanged=="number"?`, ${t.filesChanged} ${t.filesChanged===1?"file":"files"} changed`:"";return`Implementor working in shadow \u2014 round ${t.round}${e}`}case"diff_captured":{let e=[];t.created>0&&e.push(`+${t.created}`),t.modified>0&&e.push(`~${t.modified}`),t.deleted>0&&e.push(`-${t.deleted}`);let r=e.length>0?` (${e.join("/")})`:"";return`Diff captured: ${t.files} ${t.files===1?"file":"files"}${r}`}case"submitting_diff":return`Submitting changes for review \u2014 round ${t.round}`;case"reviewers_dispatched":return`Reviewers dispatched \u2014 ${t.seats} ${t.seats===1?"seat":"seats"}`;case"seat_update":return t.state==="running"?`Reviewer ${t.seatLabel} running`:`Reviewer ${t.seatLabel} submitted its verdict`;case"verdicts_progress":return`Verdicts ${t.received}/${t.expected} received`;case"revise_round":{let e=t.feedbackSummary?` \u2014 ${t.feedbackSummary}`:"";return`Revise round ${t.round} \u2014 re-running implementor${e}`}case"round_failed":return`Implementor round ${t.round} failed \u2014 ${t.reason}`;case"continuation_offered":return`Implementor halted (${t.reason}) \u2014 choose a continuation agent`;case"declared_tests_skipped":return`\u26A0 declared test(s) not run (absent): ${t.paths.join(", ")} \u2014 reviewers will assess`;case"promoting":return`Applying approved changes \u2014 ${t.files} ${t.files===1?"file":"files"}`;case"promoted":return`Applied ${t.files} ${t.files===1?"file":"files"} to your workspace`;case"discarding":return"Discarding workspace copy";case"discarded":return"Workspace copy discarded \u2014 your tree is unchanged";case"not_applied":return"Not applied \u2014 your tree is unchanged";case"waiting_user":return"Waiting for your decision";case"planner_classifying":return"Thinking\u2026";case"familiarizing":return"Reading the codebase to get familiar\u2026";case"agent_advisory":return"Waiting for agent replies\u2026";case"progress_cleared":return"";case"halt_notice":return t.message;default:{let e=t;return""}}}function Yf(t){if(t.phase==="declared_tests_skipped"){let e=t.paths.length;return`\u26A0 ${e} declared test${e===1?"":"s"} not run`}return wc(t)}var hE=500;function Zf(t,e){switch(e.type){case"USER_INPUT":return Qf(t,e.text,e.attachments,e.imagePaths);case"PLANNER_DECISION":return F0(t,e.decision,e.taskId,e.brainstorm);case"EVENT_RECEIVED":return $0(t,e.event,e.role??"implementor");case"REVIEWER_STATE_CHANGED":return H0(t,e.nodeId,e.seatId,e.newState);case"GATE_STATE_CHANGED":return U0(t,e.nodeId,e.gate);case"PLANNER_HEALTH_CHANGED":return{...t,plannerHealth:e.newState};case"SLASH_OUTPUT":return q0(t,e.command,e.output);case"CLARIFICATION_ANSWERED":return K0(t,e.answer);case"TASK_QUEUED":return{...t,queuedTasks:[...t.queuedTasks,e.queuedTask]};case"TASK_DEQUEUED":return{...t,queuedTasks:t.queuedTasks.filter(r=>r.queuedTaskId!==e.queuedTaskId)};case"TASK_LIFECYCLE":return j0(t,e.task);case"CLEAR_PENDING_CLARIFICATION":return{...t,pendingClarification:null};case"PLANNER_OFFER_PRESENTED":return G0(t,e.offer);case"CLEAR_PENDING_PLANNER_OFFER":return{...t,pendingPlannerOffer:null};case"STRUCTURAL_SUMMARY_GENERATED":return{...t,structuralSummary:e.summary,structuralSummaryError:null};case"STRUCTURAL_SUMMARY_FAILED":return{...t,structuralSummary:null,structuralSummaryError:e.error};case"GATE_PROMPT_RECEIVED":return z0(t,e.envelope);case"GATE_PROMPT_NOTES_REQUESTED":return Q0(t,e.promptEntryId,e.decisionDraft);case"GATE_PROMPT_SUBMIT_STARTED":return Z0(t,e.promptEntryId);case"GATE_PROMPT_DECISION_FENCED":return J0(t,e.promptEntryId,e.gateId,e.decisionAttemptId,e.canonicalRequestHash,e.decisionClaimId);case"GATE_PROMPT_RESOLVED":return eL(t,e.promptEntryId,e.gateId,e.postAction);case"GATE_PROMPT_SUBMIT_FAILED":return rL(t,e.promptEntryId,e.gateId);case"GATE_PROMPT_RESOLVED_EXTERNALLY":return tL(t,e.promptEntryId,e.gateId,e.serverDecision);case"GATE_RESOLUTION_RECEIVED":return Y0(t,e.resolution);case"GATE_PROMPT_ACTION_FENCED":return X0(t,e.gateId,e.decisionClaimId);case"GATE_ACTION_RECOVERY_CHANGED":return t.gateActionRecoveryBlocked===e.blocked?t:{...t,gateActionRecoveryBlocked:e.blocked};case"GATE_PROMPT_NOTES_CANCELLED":return nL(t,e.promptEntryId);case"GATE_SUMMARY_LOADED":return iL(t,e.gateId,e.panelModel);case"TEAM_STARTED":return oL(t,e.taskGroupId);case"TEAM_TRACK_ASSIGNED":return sL(t,e.trackIndex,e.state,e.taskId,e.agent);case"TEAM_MERGE_GATE":return aL(t,e.status,e.startedAt,e.endedAt);case"TEAM_HALTED":return cL(t,e.haltReason);case"TEAM_TRACK_TERMINAL":return Xf(t,e.trackIndex,e.state);case"TEAM_TRACK_REVISING":return Xf(t,e.trackIndex,"Revising");case"TEAM_TRACK_AWAITING_DECISION":return Xf(t,e.trackIndex,"AwaitingDecision");case"TEAM_GROUP_RESOLVED":return dL(t,e.outcome);case"TASK_PROGRESS":return B0(L0(O0(t,e.event),e.event),e.event);case"SHELL_ADVISORY":return rr(t,{kind:"advisory",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,source:e.source,text:e.text,...e.localOnly?{localOnly:!0}:{},...e.handoffExcluded?{handoffExcluded:!0}:{}});case"AUDIT_FLAG_INDEX_RETAINED":return lL(t,e.index);case"AUDIT_FLAG_RECORDED":return uL(t,e.entryId);case"REVIEWER_WIZARD_OPEN":return{...t,reviewerWizard:e.wizard};case"REVIEWER_WIZARD_CLOSE":return{...t,reviewerWizard:null};case"EXIT":return t;default:{let r=e;return t}}}function rr(t,e){let r=[...t.conversation,e],n=r.length>hE?r.slice(r.length-hE):r;return{...t,conversation:n}}var _0=new Set(["diff_captured","submitting_diff","reviewers_dispatched","seat_update","verdicts_progress","declared_tests_skipped","halt_notice"]),fE=new Set(["waiting_user","continuation_offered","round_failed","promoted","discarded","not_applied","progress_cleared"]),mE=new Set(["preparing_workspace","shadow_created","implementor_running","diff_captured","submitting_diff","reviewers_dispatched","seat_update","verdicts_progress","revise_round","declared_tests_skipped"]),C0=new Set(["shadow_created","diff_captured","submitting_diff","reviewers_dispatched","seat_update","verdicts_progress","revise_round","round_failed","continuation_offered","declared_tests_skipped","promoted","discarded","not_applied","halt_notice"]);function O0(t,e){let r=e.phase==="promoted"?"completed":e.phase==="discarded"||e.phase==="not_applied"?"cancelled":e.phase==="round_failed"?"failed":null;if(r===null)return t;let n="taskId"in e?e.taskId:void 0;if(!n)return t;let i=t.sessionTasks.get(n),o=new Map(t.sessionTasks);if(i){if(i.origin!=="single"||i.status!=="running")return t;o.set(n,{...i,status:r})}else o.set(n,{taskId:n,origin:"single",status:r,startedAt:new Date().toISOString()});return{...t,sessionTasks:o}}var D0=new Set(["reviewers_dispatched","seat_update","verdicts_progress"]),N0=new Set([...fE,"shadow_created","implementor_running","revise_round"]);function vu(t){for(let e of t.sessionTasks.values())if(e.origin==="single"&&(e.status==="running"||e.status==="cancelling"))return!0;return!1}function M0(t){return t.team!==null&&!t.team.groupResolved&&t.team.haltReason===null||vu(t)}function L0(t,e){return D0.has(e.phase)?M0(t)?{...t,lastReviewerProgress:{text:wc(e),at:new Date().toISOString()}}:t:N0.has(e.phase)&&t.lastReviewerProgress!==null?{...t,lastReviewerProgress:null}:t}function B0(t,e){let r=t;if(C0.has(e.phase)){let c={kind:"advisory",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,source:"shell",text:wc(e),...e.phase==="halt_notice"?{localOnly:!0}:{}};r=rr(r,c)}if(t.team!==null&&!t.team.groupResolved)return r;let n=t.progress;if(n!==null&&n.epoch!==void 0&&e.epoch!==void 0&&e.epoch<n.epoch)return r;let i=new Date().toISOString();if(fE.has(e.phase))return e.phase==="waiting_user"||n===null||n.epoch===void 0||e.epoch===n.epoch?{...r,progress:null}:r;if(_0.has(e.phase))return n!==null&&mE.has(n.phase)&&mE.has(e.phase)&&e.epoch===n.epoch?{...r,progress:{phase:e.phase,text:Yf(e),updatedAt:i,startedAt:n.startedAt,epoch:n.epoch,tokens:Math.max(n.tokens??0,e.tokens??0)||void 0}}:r;let o=n!==null&&e.epoch!==void 0&&e.epoch===n.epoch,s=o?n.startedAt:i,a=o?Math.max(n.tokens??0,e.tokens??0)||void 0:e.tokens||void 0;return{...r,progress:{phase:e.phase,text:Yf(e),updatedAt:i,startedAt:s,epoch:e.epoch,tokens:a}}}function Qf(t,e,r,n){let i={kind:"user-message",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,text:e,...r&&r.length?{attachments:r}:{},...n&&n.length?{imagePaths:n}:{}},o=rr(t,i),s={...o,inputHistory:[...o.inputHistory,e]};if(t.pendingClarification===null)return s;let a=t.pendingClarification.rounds,c=a.length-1;if(c<0||a[c].answer!==void 0)return s;let d=a.map((l,u)=>u===c?{question:l.question,answer:e}:l);return{...s,pendingClarification:{...t.pendingClarification,rounds:d,...r&&r.length?{attachments:r}:{},...n&&n.length?{attachmentPaths:[...t.pendingClarification.attachmentPaths??[],...n]}:{}}}}function F0(t,e,r,n){let i={kind:"planner-decision",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,action:e.action,rationale:e.rationale,taskId:r,...n?{brainstorm:n}:{}},o=rr(t,i);if(e.action==="ask_user"&&e.clarifying_question){let c={kind:"advisory",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,source:"planner",text:e.clarifying_question},d=rr(o,c),l=t.pendingClarification;if(l===null){let u=[...d.conversation].reverse().find(h=>h.kind==="user-message"),p=u?.text??"";return{...d,pendingClarification:{originalPrompt:p,rounds:[{question:e.clarifying_question}],conversationEntryId:c.id,...u?.attachments&&u.attachments.length?{attachments:u.attachments}:{},...u?.imagePaths&&u.imagePaths.length?{attachmentPaths:u.imagePaths}:{}}}}else return{...d,pendingClarification:{originalPrompt:l.originalPrompt,rounds:[...l.rounds,{question:e.clarifying_question}],conversationEntryId:c.id,...l.attachments&&l.attachments.length?{attachments:l.attachments}:{},...l.attachmentPaths&&l.attachmentPaths.length?{attachmentPaths:l.attachmentPaths}:{}}}}let a=(typeof e.advisory_summary=="string"?e.advisory_summary.trim():"").length>0?e.advisory_summary:e.action==="advisory_response"?(e.rationale??"").trim():"";if(a.length>0){let c={kind:"advisory",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,source:"planner",text:nt(a)},d=rr(o,c);return t.pendingClarification!==null?{...d,pendingClarification:null}:d}return t.pendingClarification!==null?{...o,pendingClarification:null}:o}function G0(t,e){let r=e.kind==="team_decomposition"?"This looks like it can run as a parallel agent team. How would you like to proceed?":"It sounds like you want to start building. How would you like to proceed?",n=e.options.map((c,d)=>` ${d+1}. ${c.label} \u2014 ${c.description}`),i=nt((e.rationale??"").trim()),o=[r,...i.length>0?["",i]:[],"",...n,"",`Reply with a number 1-${e.options.length}, or type anything else to continue.`].join(`
|
|
3745
|
-
`),s={kind:"advisory",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,source:"shell",text:o,localOnly:!0};return{...rr(t,s),pendingPlannerOffer:{...e,conversationEntryId:s.id},pendingClarification:null}}function $0(t,e,r){if(t.conversation.some(o=>o.kind==="subagent-event"&&o.event.eventId===e.eventId))return t;let n=e.parentTaskId??"",i={kind:"subagent-event",id:(0,yr.ulid)(),timestamp:e.timestamp||new Date().toISOString(),final:!0,parentTaskId:n,role:r,event:e};return rr(t,i)}function H0(t,e,r,n){let i=t.conversation.findIndex(p=>p.kind==="reviewer-status-node"&&p.id===e);if(i===-1){let p=new Map(t.activeReviewerSeats);return p.set(r,n),{...t,activeReviewerSeats:p}}let o=t.conversation[i];if(o.kind!=="reviewer-status-node"||o.final)return t;let s=o.seats.map(p=>p.seatId===r?n:p),a=W0(s),d={...o,seats:s,quorumStatus:a,final:a==="PASS"||a==="REVISE"||a==="BLOCK"},l=[...t.conversation.slice(0,i),d,...t.conversation.slice(i+1)],u=new Map(t.activeReviewerSeats);return u.set(r,n),{...t,conversation:l,activeReviewerSeats:u}}function W0(t){return t.length===0?"queued":t.some(e=>e.status==="BLOCK")?"BLOCK":t.some(e=>e.status==="queued")?"queued":t.some(e=>e.status==="running")?"running":t.some(e=>e.status==="REVISE")?"REVISE":"PASS"}function U0(t,e,r){let n=t.conversation.findIndex(c=>c.kind==="gate-status-node"&&c.id===e);if(n===-1)return{...t,currentGate:r};let i=t.conversation[n];if(i.kind!=="gate-status-node"||i.final)return t;let o=r.status==="PASS"||r.status==="REVISE"||r.status==="BLOCK"||r.status==="merge_gate_pending",s={...i,gate:r,final:o},a=[...t.conversation.slice(0,n),s,...t.conversation.slice(n+1)];return{...t,conversation:a,currentGate:r}}function q0(t,e,r){let n={kind:"slash-output",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,command:e,output:r};return rr(t,n)}function K0(t,e){if(t.pendingClarification===null)return Qf(t,e);let r=t.pendingClarification.rounds.map((i,o,s)=>o===s.length-1&&i.answer===void 0?{question:i.question,answer:e}:i);return{...Qf(t,e),pendingClarification:{...t.pendingClarification,rounds:r}}}function j0(t,e){let r=new Map(t.runningTasks);e.status==="completed"||e.status==="cancelled"||e.status==="failed"?r.delete(e.taskId):r.set(e.taskId,e);let n=new Map(t.sessionTasks),i=t.sessionTasks.get(e.taskId),o=i?.origin==="single"&&(i.status==="completed"||i.status==="cancelled"||i.status==="failed"),s=e.status==="completed"||e.status==="cancelled"||e.status==="failed";return n.set(e.taskId,{taskId:e.taskId,agentKind:e.agentKind,origin:"single",status:o&&!s?i.status:e.status,startedAt:e.startedAt}),{...t,runningTasks:r,sessionTasks:n}}function V0(t,e){for(let r=0;r<t.conversation.length;r++){let n=t.conversation[r];if(n.kind==="gate-prompt"&&n.envelope.taskId===e&&n.final===!1)return r}return-1}function gE(t){return{kind:"gate-panel",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,panel:{variant:"prompt",envelope:t}}}function yE(t){return{kind:"gate-panel",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,panel:{variant:"summary",reviewSummary:t}}}function eg(t,e,r){let[n,...i]=r.queue,o={...r.queuedReviewSummaries??{}},s=o[n.gateId];delete o[n.gateId];let a=Object.keys(o).length>0?o:void 0,c=t.gateResolutions.get(n.gateId),d=t.gateActionClaims.has(n.gateId),l={...r,envelope:n,queue:i,uiState:c?{phase:"resolved",resolvedBy:"durable",resolution:c}:d?{phase:"claimed",decisionClaimId:t.gateActionClaims.get(n.gateId)??null}:{phase:"awaiting-number"},final:c!==void 0,reviewSummary:s,queuedReviewSummaries:a},u=[...t.conversation.slice(0,e),l,...t.conversation.slice(e+1)],p=rr({...t,conversation:u},gE(n));return s!==void 0&&s.rounds.length>0&&(p=rr(p,yE(s))),p}function z0(t,e){if(t.conversation.some(c=>c.kind==="gate-prompt"&&(c.envelope.gateId===e.gateId||c.queue.some(d=>d.gateId===e.gateId))))return t;let n=V0(t,e.taskId);if(n!==-1){let c=t.conversation[n];if(c.kind!=="gate-prompt")return t;let d={...c,queue:[...c.queue,e]},l=[...t.conversation.slice(0,n),d,...t.conversation.slice(n+1)];return{...t,conversation:l}}let i=t.gateResolutions.get(e.gateId),o=t.gateActionClaims.has(e.gateId),s={kind:"gate-prompt",id:(0,yr.ulid)(),timestamp:e.receivedAt||new Date().toISOString(),final:!!i,envelope:e,queue:[],uiState:i?{phase:"resolved",resolvedBy:"durable",resolution:i}:o?{phase:"claimed",decisionClaimId:t.gateActionClaims.get(e.gateId)??null}:{phase:"awaiting-number"}},a=rr(t,s);return rr(a,gE(e))}function J0(t,e,r,n,i,o){let s=t.conversation.findIndex(d=>d.kind==="gate-prompt"&&d.id===e);if(s===-1)return t;let a=t.conversation[s];if(a.kind!=="gate-prompt"||a.envelope.gateId!==r||a.uiState.phase==="resolved")return t;let c={...a,final:!1,uiState:{phase:"confirming",decisionAttemptId:n,canonicalRequestHash:i,decisionClaimId:o}};return{...t,conversation:[...t.conversation.slice(0,s),c,...t.conversation.slice(s+1)]}}function Y0(t,e){let r=t.gateResolutions.get(e.promptId);if(r)return r.eventId===e.eventId,t;let n=new Map(t.gateResolutions);n.set(e.promptId,e);let i=t.conversation.findIndex(a=>a.kind==="gate-prompt"&&a.envelope.gateId===e.promptId);if(i===-1)return{...t,gateResolutions:n};let o=t.conversation[i];if(o.kind!=="gate-prompt")return{...t,gateResolutions:n};if(o.queue.length>0)return{...eg(t,i,o),gateResolutions:n};let s={...o,final:!0,uiState:{phase:"resolved",resolvedBy:"durable",resolution:e}};return{...t,gateResolutions:n,conversation:[...t.conversation.slice(0,i),s,...t.conversation.slice(i+1)]}}function X0(t,e,r){let n=t.gateActionClaims.get(e);if(t.gateActionClaims.has(e)&&n!==r)return t;let i=new Map(t.gateActionClaims);i.set(e,r);let o=t.conversation.findIndex(c=>c.kind==="gate-prompt"&&c.envelope.gateId===e);if(o===-1)return{...t,gateActionClaims:i};let s=t.conversation[o];if(s.kind!=="gate-prompt"||s.uiState.phase==="resolved")return{...t,gateActionClaims:i};let a={...s,final:!1,uiState:{phase:"claimed",decisionClaimId:r}};return{...t,gateActionClaims:i,conversation:[...t.conversation.slice(0,o),a,...t.conversation.slice(o+1)]}}function Q0(t,e,r){let n=t.conversation.findIndex(a=>a.kind==="gate-prompt"&&a.id===e);if(n===-1)return t;let i=t.conversation[n];if(i.kind!=="gate-prompt"||i.uiState.phase!=="awaiting-number")return t;let o={...i,uiState:{phase:"awaiting-notes",decisionDraft:r}},s=[...t.conversation.slice(0,n),o,...t.conversation.slice(n+1)];return{...t,conversation:s}}function Z0(t,e){let r=t.conversation.findIndex(s=>s.kind==="gate-prompt"&&s.id===e);if(r===-1)return t;let n=t.conversation[r];if(n.kind!=="gate-prompt"||n.uiState.phase!=="awaiting-number"&&n.uiState.phase!=="awaiting-notes")return t;let i={...n,uiState:{phase:"submitting"}},o=[...t.conversation.slice(0,r),i,...t.conversation.slice(r+1)];return{...t,conversation:o}}function eL(t,e,r,n){let i=t.conversation.findIndex(c=>c.kind==="gate-prompt"&&c.id===e);if(i===-1)return t;let o=t.conversation[i];if(o.kind!=="gate-prompt"||o.envelope.gateId!==r)return t;if(o.queue.length>0)return eg(t,i,o);let s={...o,uiState:{phase:"resolved",postAction:n,resolvedBy:"self"},final:!0},a=[...t.conversation.slice(0,i),s,...t.conversation.slice(i+1)];return{...t,conversation:a}}function tL(t,e,r,n){let i=t.conversation.findIndex(c=>c.kind==="gate-prompt"&&c.id===e);if(i===-1)return t;let o=t.conversation[i];if(o.kind!=="gate-prompt"||o.envelope.gateId!==r||o.uiState.phase==="resolved")return t;if(o.queue.length>0)return eg(t,i,o);let s={...o,uiState:{phase:"resolved",resolvedBy:"server",serverDecision:n},final:!0},a=[...t.conversation.slice(0,i),s,...t.conversation.slice(i+1)];return{...t,conversation:a}}function rL(t,e,r){let n=t.conversation.findIndex(a=>a.kind==="gate-prompt"&&a.id===e);if(n===-1)return t;let i=t.conversation[n];if(i.kind!=="gate-prompt"||i.envelope.gateId!==r||i.uiState.phase!=="submitting"&&i.uiState.phase!=="confirming")return t;let o={...i,uiState:{phase:"awaiting-number"}},s=[...t.conversation.slice(0,n),o,...t.conversation.slice(n+1)];return{...t,conversation:s}}function nL(t,e){let r=t.conversation.findIndex(s=>s.kind==="gate-prompt"&&s.id===e);if(r===-1)return t;let n=t.conversation[r];if(n.kind!=="gate-prompt"||n.uiState.phase!=="awaiting-notes")return t;let i={...n,uiState:{phase:"awaiting-number"}},o=[...t.conversation.slice(0,r),i,...t.conversation.slice(r+1)];return{...t,conversation:o}}function iL(t,e,r){let n=t.conversation.findIndex(d=>d.kind==="gate-prompt"&&d.final===!1&&d.envelope.gateId===e);if(n===-1){let d=t.conversation.findIndex(h=>h.kind==="gate-prompt"&&h.final===!1&&h.queue.some(y=>y.gateId===e));if(d===-1)return t;let l=t.conversation[d];if(l.kind!=="gate-prompt")return t;let u={...l,queuedReviewSummaries:{...l.queuedReviewSummaries??{},[e]:r}},p=[...t.conversation.slice(0,d),u,...t.conversation.slice(d+1)];return{...t,conversation:p}}let i=t.conversation[n];if(i.kind!=="gate-prompt")return t;let o=i.reviewSummary===void 0,s={...i,reviewSummary:r},a=[...t.conversation.slice(0,n),s,...t.conversation.slice(n+1)],c={...t,conversation:a};return o&&r.rounds.length>0?rr(c,yE(r)):c}function oL(t,e){if(t.team){if(t.team.taskGroupId===e)return t;if(t.team.taskGroupId==="")return{...t,team:{...t.team,taskGroupId:e}}}return{...t,team:{taskGroupId:e,tracks:new Map,mergeGate:"none",haltReason:null,groupResolved:!1}}}function sL(t,e,r,n,i){let o=t.team??{taskGroupId:"",tracks:new Map,mergeGate:"none",haltReason:null,groupResolved:!1},s=new Map(o.tracks),a=s.get(e),c={state:r,taskId:n??a?.taskId,agent:i??a?.agent};s.set(e,c);let d=t.sessionTasks;if(c.taskId){let l=t.sessionTasks.get(c.taskId);d=new Map(t.sessionTasks),d.set(c.taskId,{taskId:c.taskId,agentKind:c.agent??l?.agentKind,origin:"team",status:r,startedAt:l?.startedAt??new Date().toISOString()})}return{...t,team:{...o,tracks:s},sessionTasks:d}}function wu(t,e){if(t==null||e==null)return;let r=Date.parse(t),n=Date.parse(e);if(!(isNaN(r)||isNaN(n)))return Math.max(0,n-r)}function aL(t,e,r,n){if(!t.team)return t;let i=t.team;if(e==="pending"){if(n!=null){if(i.mergeGateStartedAt==null||i.mergeGateElapsedMs!=null)return t;let c=wu(i.mergeGateStartedAt,n);return c==null?t:{...t,team:{...i,mergeGateElapsedMs:c}}}if(i.mergeGate==="pass"||i.mergeGate==="fail"||i.groupResolved||i.haltReason!=null)return t;let s=i.mergeGateStartedAt!=null?Date.parse(i.mergeGateStartedAt):NaN,a=r!=null?Date.parse(r):NaN;return i.mergeGateStartedAt==null||isNaN(s)||!isNaN(a)&&a>s?{...t,team:{...i,mergeGate:"pending",mergeGateStartedAt:r,mergeGateElapsedMs:void 0}}:t}let o=i.mergeGateElapsedMs??wu(i.mergeGateStartedAt,n);return{...t,team:{...i,mergeGate:e,mergeGateElapsedMs:o}}}function cL(t,e){if(!t.team)return t;let r=t.team,n=r.mergeGateStartedAt!=null&&r.mergeGateElapsedMs==null?wu(r.mergeGateStartedAt,new Date().toISOString()):r.mergeGateElapsedMs;return{...t,team:{...r,haltReason:e,mergeGateElapsedMs:n},lastReviewerProgress:null}}function Xf(t,e,r){if(!t.team)return t;let n=t.team.tracks.get(e);if(!n||n.state===r)return t;let i=new Map(t.team.tracks);i.set(e,{...n,state:r});let o=t.sessionTasks,s=n.taskId?t.sessionTasks.get(n.taskId):void 0;return n.taskId&&s&&(o=new Map(t.sessionTasks),o.set(n.taskId,{...s,status:r})),{...t,team:{...t.team,tracks:i},sessionTasks:o}}function dL(t,e){if(!t.team||t.team.groupResolved&&t.team.outcome===e)return t;let r=t.team,n=r.mergeGateStartedAt!=null&&r.mergeGateElapsedMs==null?wu(r.mergeGateStartedAt,new Date().toISOString()):r.mergeGateElapsedMs;return{...t,team:{...r,groupResolved:!0,outcome:e,mergeGateElapsedMs:n},lastReviewerProgress:null}}function lL(t,e){let r=t.auditFlagIndex,n=r?new Set([...r.flagged,...e.flagged]):e.flagged;return{...t,auditFlagIndex:{...e,flagged:n}}}function uL(t,e){let r=t.auditFlagIndex;if(!r||r.flagged.has(e))return t;let n=new Set(r.flagged);return n.add(e),{...t,auditFlagIndex:{...r,flagged:n}}}function pL(t){return{...{session:t.session,plannerHealth:"Available",conversation:[],runningTasks:new Map,sessionTasks:new Map,lastReviewerProgress:null,queuedTasks:[],activeReviewerSeats:new Map,currentGate:null,pendingClarification:null,pendingPlannerOffer:null,inputHistory:[],structuralSummary:null,structuralSummaryError:null,team:null,progress:null,reviewerWizard:null,auditFlagIndex:null,gateResolutions:new Map,gateActionClaims:new Map,gateActionRecoveryBlocked:!1},...t.initial??{}}}function tg(t){let e=pL(t),r=new Set;function n(){return e}function i(s){e=Zf(e,s);for(let a of r)a(e)}function o(s){return r.add(s),()=>{r.delete(s)}}return{getState:n,dispatch:i,subscribe:o}}var Se=E(require("react"));var eo=E(require("react"));var hL="#C026D3",wE="multi-agent orchestration";function mL(){return process.env.NO_COLOR==="1"||process.env.TERM==="dumb"||process.env.CODEVIBE_NO_TUI==="1"}function vE(){let{ink:t}=se(),{Box:e,Text:r}=t;return mL()?eo.createElement(e,{flexDirection:"column",marginBottom:1},eo.createElement(r,null,"CodeVibe"),eo.createElement(r,null,wE)):eo.createElement(e,{flexDirection:"column",marginBottom:1},eo.createElement(r,{color:hL,bold:!0},"CodeVibe"),eo.createElement(r,{dimColor:!0},wE))}var Dr=E(require("react"));var bu=E(require("react"));function bE(t){let{ink:e}=se(),{Box:r,Text:n}=e;return bu.createElement(r,{flexDirection:"row"},bu.createElement(n,{color:"cyan"},"> "),bu.createElement(n,null,t.entry.text))}var Is=E(require("react"));function kE(t){let{ink:e}=se(),{Box:r,Text:n}=e;return Is.createElement(r,{flexDirection:"column"},Is.createElement(n,null,Is.createElement(n,{color:"magenta"},"\u25CF "),`Planner classified: ${t.entry.action}`),Is.createElement(r,{marginLeft:2},Is.createElement(n,{dimColor:!0},`rationale: ${JSON.stringify(t.entry.rationale)}`)))}var Un=E(require("react"));function fL(t){if(t.kind==="NOTIFICATION"&&"payload"in t&&t.payload&&typeof t.payload=="object"&&typeof t.payload.message=="string")return t.payload.message;switch(t.kind){case"EXECUTOR_REFUSAL":return`refusal ${t.payload.refusalCategory}: ${t.payload.refusalDetail}`;case"TASK_BYPASS":return`bypass: ${t.payload.bypassReason}`;case"USER_PROMPT":case"ASSISTANT_RESPONSE":case"INTERACTIVE_PROMPT":case"NOTIFICATION":return t.kind.toLowerCase();case"PROCESS_SPAWNED":return"process spawned";case"FILE_CHANGE":return"file change";case"TOOL_USE":return"tool use";case"VERIFICATION_RUN":return"verification run";case"PROCESS_EXITED":return"process exited";default:{let e=t;return"event"}}}function EE(t){return!t||typeof t!="object"||Array.isArray(t)?null:t}function gL(t,e){let r=EE(t);if(!r)return null;let n=r.number,i=r.text,o=r.label,s=typeof n=="string"&&n.length>0?n:String(e+1),a=typeof i=="string"&&i.length>0?i:typeof o=="string"&&o.length>0?o:null;if(!a)return null;let c=r.description;return{number:s,text:a,...typeof c=="string"&&c.length>0?{description:c}:{}}}function SE(t){return Array.isArray(t)?t.map((e,r)=>gL(e,r)).filter(e=>e!==null):[]}function yL(t){let e=t.questions;if(Array.isArray(e)&&e.length>0)return e.map(i=>{let o=EE(i);if(!o||typeof o.question!="string"||o.question.length===0)return null;let s=SE(o.options);return s.length===0?null:{question:o.question,...typeof o.header=="string"&&o.header.length>0?{header:o.header}:{},options:s,...typeof o.instructions=="string"&&o.instructions.length>0?{instructions:o.instructions}:{}}}).filter(i=>i!==null);let r=SE(t.options);return r.length===0?[]:[{question:typeof t.question=="string"&&t.question.length>0?t.question:typeof t.content=="string"&&t.content.length>0?t.content:"Interactive prompt",options:r,...typeof t.instructions=="string"&&t.instructions.length>0?{instructions:t.instructions}:{}}]}function RE(t){let{ink:e}=se(),{Box:r,Text:n}=e,i=t.entry.event;if(i.kind==="INTERACTIVE_PROMPT"&&"payload"in i&&i.payload&&typeof i.payload=="object"){let s=yL(i.payload);if(s.length>0)return Un.createElement(r,{marginLeft:2,flexDirection:"column"},Un.createElement(n,{dimColor:!0},"\u23BF interactive prompt"),...s.flatMap((a,c)=>[Un.createElement(n,{key:`q-${c}`,bold:!0},`${a.header?`${a.header}: `:""}${a.question}`),...a.options.map(d=>Un.createElement(n,{key:`q-${c}-opt-${d.number}`},` ${d.number}. ${d.text}${d.description?` \u2014 ${d.description}`:""}`)),...a.instructions?[Un.createElement(n,{key:`q-${c}-instructions`,dimColor:!0},` ${a.instructions}`)]:[]]))}let o=fL(t.entry.event);return Un.createElement(r,{marginLeft:2},Un.createElement(n,{dimColor:!0},"\u23BF "),Un.createElement(n,null,o))}var qn=E(require("react"));var wL={queued:"\u25CC",running:"\u25D0",PASS:"\u2713",REVISE:"\u270E",BLOCK:"\u2717"},vL={queued:"gray",running:"yellow",PASS:"green",REVISE:"yellow",BLOCK:"red"};function IE(t){let{ink:e}=se(),{Box:r,Text:n}=e,i=t.entry.seats.length,o=t.entry.seats.filter(s=>s.status==="PASS"||s.status==="REVISE"||s.status==="BLOCK").length;return qn.createElement(r,{flexDirection:"column"},qn.createElement(n,null,qn.createElement(n,{color:"magenta"},"\u25CF "),`Reviewer quorum (${o}/${i} done): ${t.entry.quorumStatus}`),...t.entry.seats.map(s=>qn.createElement(r,{key:s.seatId,marginLeft:2},qn.createElement(n,{dimColor:!0},"\u23BF "),qn.createElement(n,null,`${s.seatId} ${s.reviewerKind.padEnd(7)} `),qn.createElement(n,{color:vL[s.status]},wL[s.status]),qn.createElement(n,null,` ${s.status}`))))}var ku=E(require("react"));function AE(t){let{ink:e}=se(),{Text:r}=e,n=t.entry.gate;return ku.createElement(r,null,ku.createElement(r,{color:"magenta"},"\u25CF "),ku.createElement(r,null,`Gate: ${n.gateKind} Status: ${n.status} Auto-revise: ${n.autoReviseRound}/${n.autoReviseCap}`))}var vc=E(require("react"));function PE(t){let{ink:e}=se(),{Box:r,Text:n}=e;return vc.createElement(r,{flexDirection:"column"},vc.createElement(n,{color:"cyan"},t.entry.command),vc.createElement(r,{marginLeft:2},vc.createElement(n,null,t.entry.output)))}var Su=E(require("react"));function TE(t){let{ink:e}=se(),{Text:r}=e,n=t.entry.source==="planner"?"magenta":"yellow";return Su.createElement(r,null,Su.createElement(r,{color:n},"\u25CF "),Su.createElement(r,{italic:!0},t.entry.text))}var Et=E(require("react"));var Or="orchestration_escalated_gate",to="orchestration_final_approval",nr="continuation_offer_handoff";var bL=["CLAUDE","CODEX","ANTIGRAVITY"],kL=["CLAUDE","CODEX","GEMINI","ANTIGRAVITY"];function OE(t,e){return t?.id==="CONTINUE_WITH"&&t.targetAgent===e}function DE(t){return t?.id==="CANCEL"&&!t.targetAgent}function xE(t){return t.length!==4?!1:bL.every((e,r)=>OE(t[r],e))&&DE(t[3])}function SL(t){return t.length!==5?!1:kL.every((e,r)=>OE(t[r],e))&&DE(t[4])}function EL(t){if(xE(t))return[...t];if(!SL(t))return null;let e=t.filter(r=>r.targetAgent!=="GEMINI");return xE(e)?e:null}function NE(t){if(t.type!=="INTERACTIVE_PROMPT")return null;let e=t.metadata,r=null;if(e&&typeof e=="object")r=e;else if(typeof e=="string")try{let ee=JSON.parse(e);ee&&typeof ee=="object"&&!Array.isArray(ee)&&(r=ee)}catch{return null}if(!r)return null;let n=r.prompt_kind;if(n!==Or&&n!==to&&n!==nr)return null;let i=n,o=r.payload;if(!o||typeof o!="object"||Array.isArray(o))return null;let s=o,a=s.taskId,c=s.gateId;if(typeof a!="string"||a.length===0||typeof c!="string"||c.length===0)return null;let d=s.decisionProtocolVersion;if(d!==void 0&&d!==1&&d!==2)return null;let l=d??1,u=s.outcome;if(!u||typeof u!="object"||Array.isArray(u))return null;let p=u,h=p.round;if(typeof h!="number"||!Number.isFinite(h))return null;let y=s.options;if(!Array.isArray(y))return null;if(i===nr){if(y.length!==4&&y.length!==5)return null}else{let ee=i===Or?5:2;if(y.length!==ee)return null}let g=[];for(let ee of y){if(!ee||typeof ee!="object"||Array.isArray(ee))return null;let H=ee,W=H.id,ve=H.label,Q=H.description;if(typeof W!="string"||W.length===0||typeof ve!="string"||typeof Q!="string")return null;let D=H.targetAgent,Z=typeof D=="string"?D:void 0;g.push({id:W,label:ve,description:Q,...Z!==void 0?{targetAgent:Z}:{}})}if(i===nr){let ee=EL(g);if(!ee)return null;g=ee}let f=p.reason,w=typeof f=="string"?f:void 0,v=r.summary,b=typeof v=="string"?v:void 0,S=IL(r.timeline),R=AL(r.roundHistory),x=PL(r.verdictDetailsUnavailable),P=r.offerId,O=typeof P=="string"?P:void 0,C=r.sourceAgent,T=typeof C=="string"?C:void 0,V=r.packetHash,X=typeof V=="string"?V:void 0,L=s.taskGroupId,Re=s.groupGeneration,Ne;if(L!==void 0||Re!==void 0){if(i!==Or||typeof L!="string"||L.length===0||typeof Re!="number"||!Number.isSafeInteger(Re)||Re<1)return null;Ne={taskGroupId:L,groupGeneration:Re,protocolVersion:2}}let $=typeof t.timestamp=="string"?t.timestamp:"";return{promptKind:i,decisionProtocolVersion:l,taskId:a,gateId:c,currentRound:h,options:g,reason:w,summary:b,receivedAt:$,...S?{timeline:S}:{},...R?{roundHistory:R}:{},...x?{verdictDetails:x}:{},...O!==void 0?{offerId:O}:{},...T!==void 0?{sourceAgent:T}:{},...X!==void 0?{packetHash:X}:{},...Ne?{groupEscalation:Ne}:{}}}var RL=[{id:"ACCEPT",label:"Accept",description:"Keep every applied track as-is."},{id:"ACCEPT_WITH_NOTES",label:"Accept with notes",description:"Keep the applied tracks and attach a note."},{id:"REJECT_WITH_NOTES",label:"Reject with notes",description:"Revert every applied track and attach a note."},{id:"REJECT_RESTART",label:"Reject and restart",description:"Revert every applied track and re-run the whole team."},{id:"ABORT_TASK",label:"Abort",description:"Revert every applied track and stop."}];function ME(t){return{promptKind:Or,taskId:`group:${t.taskGroupId}`,gateId:`group-escalation:${t.taskGroupId}`,currentRound:0,options:RL,...t.haltReason?{reason:t.haltReason}:{},receivedAt:t.receivedAt??"",groupEscalation:{taskGroupId:t.taskGroupId,protocolVersion:1}}}function IL(t){if(!Array.isArray(t))return;let e=[];for(let r of t){if(!r||typeof r!="object"||Array.isArray(r))continue;let n=r,i=n.at,o=n.kind;typeof i!="string"||typeof o!="string"||e.push({at:i,kind:o})}return e.length>0?e:void 0}function AL(t){if(!Array.isArray(t))return;let e=[];for(let r of t){if(!r||typeof r!="object"||Array.isArray(r))continue;let n=r,i=n.round,o=n.kind,s=n.reason;typeof i!="number"||!Number.isFinite(i)||typeof o!="string"||typeof s!="string"||e.push({round:i,kind:o,reason:s})}return e.length>0?e:void 0}function PL(t){if(!(typeof t!="string"||t.length===0))return t==="size"?{status:"unavailable",reason:"size"}:t==="encryption_error"?{status:"unavailable",reason:"encryption_error"}:{status:"unavailable",reason:"unavailable_other"}}function LE(t,e){if(typeof e!="number"||!Number.isInteger(e)||e<1||e>t.options.length)return null;let r=t.options[e-1];if(!r||typeof r.id!="string"||r.id.length===0)return null;let n=r.id.toLowerCase(),i=n.endsWith("_with_notes");return n==="continue_with"?{kind:n,needsNotes:!1,targetAgent:r.targetAgent}:{kind:n,needsNotes:i}}var TL={consensus_reject:{label:"Reviewers rejected",explanation:"The review panel agreed to reject this implementation."},consensus_disagreement:{label:"Reviewers disagreed",explanation:"The reviewers couldn't reach consensus and escalated the decision to you."},reviewer_requested_escalation:{label:"Reviewer escalated",explanation:"A reviewer explicitly asked for your decision on this change."},rounds_exhausted:{label:"Revision limit reached",explanation:"The automatic revision limit was reached without consensus."},tier_disallows_auto_revise:{label:"Auto-revise unavailable",explanation:"Your plan doesn't include automatic revision rounds, so this is escalated to you."},reviewer_error:{label:"Reviewer error",explanation:"A reviewer failed to complete, so the gate was escalated for your decision."},blocked_by_review:{label:"Blocked by review",explanation:"Review found blocking issues that need your decision."},auto_revise_cap_exhausted:{label:"Revision limit reached",explanation:"The automatic revision budget was exhausted."},insufficient_quorum:{label:"Not enough reviewers",explanation:"Too few reviewers responded to decide automatically."},policy_resolution_failed:{label:"Policy check failed",explanation:"The orchestration policy couldn't resolve this gate automatically."},policy_no_progress:{label:"No progress detected",explanation:"Successive revision rounds stopped making progress."},policy_repeated_finding:{label:"Repeated issue",explanation:"The same issue recurred across rounds."},policy_reviewer_conflict:{label:"Reviewer conflict",explanation:"Reviewers produced conflicting verdicts policy couldn't reconcile."},policy_risk_stopped:{label:"Stopped for safety",explanation:"A potentially risky action was detected and stopped for your review."},parser_uncertain:{label:"Couldn't parse proposal",explanation:"The agent's output couldn't be confidently parsed as a proposal."},final_approval:{label:"Final approval",explanation:"The work is complete and awaiting your final approval."}},ng={APPROVE:"Approved",REJECT:"Rejected",REVISE:"Requested changes",ESCALATE:"Escalated"};function As(t){if(!t)return null;let e=TL[t];return e?{label:e.label,explanation:e.explanation}:{label:t,explanation:null}}function rg(t){return ng[t]??t}function xL(t){if(!t||typeof t!="object"||Array.isArray(t))return{status:"unavailable",reason:"decrypt_failed"};let e=t,r=e.reviewers;if(!Array.isArray(r))return{status:"unavailable",reason:"decrypt_failed"};let n=[];for(let o of r){if(!o||typeof o!="object"||Array.isArray(o))continue;let s=o,a=s.seatId;if(typeof a!="number"||!Number.isInteger(a))continue;let c=s.role;if(typeof c!="string"||c.length===0)continue;let d=s.reviewerAgent;if(typeof d!="string")continue;let l=s.decision;if(typeof l!="string")continue;let u=s.findings,p=Array.isArray(u)?u.filter(g=>typeof g=="string"):[],h=s.findingsTruncated===!0,y=typeof s.truncatedFindingCount=="number"&&Number.isFinite(s.truncatedFindingCount)?s.truncatedFindingCount:0;n.push({seatId:a,role:c,reviewerAgent:d,decision:l,findings:p,findingsTruncated:h,truncatedFindingCount:y})}if(n.length===0)return{status:"unavailable",reason:"decrypt_failed"};let i=e.findingsOmittedForSize===!0;return{status:"available",reviewers:n,findingsOmittedForSize:i}}function BE(t,e,r){let n=t.verdictDetails;if(!n||typeof n!="object"||Array.isArray(n))return;let i=n.encrypted;if(typeof i!="string"||i.length===0)return;let o;try{o=r(i,e)}catch{return{status:"unavailable",reason:"decrypt_failed"}}return xL(o)}function FE(t){let e=t.verdictDetails;if(!e||typeof e!="object"||Array.isArray(e))return!1;let r=e.encrypted;return typeof r=="string"&&r.length>0}var _E="Full review in the audit browser",_L="Reviewer details unavailable",CE="full review in the audit browser";function CL(t,e){return e>0?`(${e} more \u2014 ${CE})`:t?`(more \u2014 ${CE})`:null}function GE(t){let e=t.summary??null,r=As(t.reason),n=r?.label??null,i=r?.explanation??null,o=`Round ${t.currentRound}`,s=(t.timeline??[]).map(g=>({kind:g.kind,at:g.at})),a=OL(t.timeline),c=t.roundHistory??[],d=c.length>1?c.map(g=>({round:g.round,reasonLabel:As(g.reason)?.label??g.reason})):[],l=c.length>1&&c.some(g=>g.omittedEarlier===!0),u=[],p=null,h=null,y=t.verdictDetails;return y&&(y.status==="available"?(u=y.reviewers.map(g=>{let f=CL(g.findingsTruncated,g.truncatedFindingCount);return{seatId:g.seatId,role:g.role,reviewerAgent:g.reviewerAgent,header:`Reviewer ${g.seatId} (${g.role}, ${g.reviewerAgent}): ${rg(g.decision)}`,findings:g.findings,truncationHint:f}}),y.findingsOmittedForSize&&(p=_E)):(h=_L,y.reason==="size"&&(p=_E))),{headline:e,reasonLabel:n,reasonExplanation:i,roundLabel:o,timeline:s,elapsedSeconds:a,cascade:d,cascadeOmittedEarlier:l,reviewers:u,panelTruncationHint:p,reviewerUnavailableLine:h}}function $E(t){if(!t||typeof t!="object")return null;let e=l=>typeof l=="number"&&Number.isFinite(l)?l:null,r=l=>Array.isArray(l)?l.filter(u=>typeof u=="string"):[],n=null;if(e(t.schemaVersion)===2&&t.requirements&&t.reviewQuorum&&t.mergeGate&&t.durations&&t.tokenUsage){let l=Array.isArray(t.reviewQuorum.seats)?t.reviewQuorum.seats:[],u=Array.isArray(t.implementors)?t.implementors:[],p=Array.isArray(t.tokenUsage.invocations)?t.tokenUsage.invocations:[];n={schemaVersion:2,requirements:{problem:typeof t.requirements.problem=="string"?t.requirements.problem:"",expectedOutputs:r(t.requirements.expectedOutputs)},implementors:u.filter(h=>!!h&&typeof h=="object").map(h=>({agent:typeof h.agent=="string"?h.agent:"unknown",trackIndex:e(h.trackIndex),taskId:typeof h.taskId=="string"?h.taskId:""})),reviewQuorum:{seats:l.filter(h=>!!h&&typeof h=="object").map(h=>({seatId:e(h.seatId)??-1,role:typeof h.role=="string"?h.role:"",agent:typeof h.agent=="string"?h.agent:""})),roundCount:e(t.reviewQuorum.roundCount)??0,revisionCount:e(t.reviewQuorum.revisionCount)??0},mergeGate:{applicable:t.mergeGate.applicable===!0,outcome:typeof t.mergeGate.outcome=="string"?t.mergeGate.outcome:"unavailable",resolution:typeof t.mergeGate.resolution=="string"?t.mergeGate.resolution:null},durations:{taskElapsedMs:e(t.durations.taskElapsedMs),reviewerElapsedMs:e(t.durations.reviewerElapsedMs),availability:typeof t.durations.availability=="string"?t.durations.availability:"unavailable"},tokenUsage:{knownTotal:e(t.tokenUsage.knownTotal),knownInput:e(t.tokenUsage.knownInput),knownOutput:e(t.tokenUsage.knownOutput),knownCachedInput:e(t.tokenUsage.knownCachedInput),availability:typeof t.tokenUsage.availability=="string"?t.tokenUsage.availability:"unavailable",unavailableRoles:r(t.tokenUsage.unavailableRoles),invocations:p.filter(h=>!!h&&typeof h=="object").map(h=>({role:typeof h.role=="string"?h.role:"unknown",agent:typeof h.agent=="string"?h.agent:"unknown",taskId:typeof h.taskId=="string"?h.taskId:null,trackIndex:e(h.trackIndex),round:e(h.round),gateId:typeof h.gateId=="string"?h.gateId:null,seatId:e(h.seatId),reviewerRole:typeof h.reviewerRole=="string"?h.reviewerRole:null,inputTokens:e(h.inputTokens),outputTokens:e(h.outputTokens),cachedInputTokens:e(h.cachedInputTokens),totalTokens:e(h.totalTokens),elapsedMs:e(h.elapsedMs),availability:typeof h.availability=="string"?h.availability:"unavailable",unavailableReason:typeof h.unavailableReason=="string"?h.unavailableReason:null}))},residualRisks:r(t.residualRisks)}}let i=Array.isArray(t.rounds)?t.rounds:[],o=[];for(let l of i){if(!l||typeof l!="object")continue;let u=typeof l.round=="number"&&Number.isFinite(l.round)?l.round:o.length,p=typeof l.proposal=="string"?l.proposal:"",h=typeof l.outcome=="string"?l.outcome:"",y=typeof l.reviseNotes=="string"&&l.reviseNotes.length>0?l.reviseNotes:null,g=[],f=Array.isArray(l.reviewers)?l.reviewers:[];for(let w of f){if(!w||typeof w!="object")continue;let v=typeof w.seatId=="number"&&Number.isInteger(w.seatId)?w.seatId:-1,b=typeof w.role=="string"?w.role:"",S=typeof w.agent=="string"?w.agent:"",R=typeof w.decision=="string"?w.decision:"",x=typeof w.reasoning=="string"?w.reasoning:"",P=Array.isArray(w.suggestedChanges)?w.suggestedChanges.filter(O=>typeof O=="string"):[];g.push({seatId:v,role:b,agent:S,header:`Reviewer ${v} (${b}, ${S}): ${rg(R)}`,decisionLabel:rg(R),reasoning:x,suggestedChanges:P})}o.push({round:u,roundLabel:`Round ${u}`,proposal:p,reviewers:g,outcome:h,reviseNotes:y})}if(o.length===0&&n===null)return null;let s=typeof t.finalOutcome=="string"?t.finalOutcome:"",a=typeof t.omittedRounds=="number"&&Number.isFinite(t.omittedRounds)?t.omittedRounds:0,c=t.truncatedForSize===!0,d=null;if(c||a>0){let l=[];a>0&&l.push(`${a} earlier round${a===1?"":"s"} omitted`),c&&l.push("some content truncated"),d=`Summary shortened to fit (${l.join("; ")} \u2014 full review in the audit browser)`}return{terminal:n,rounds:o,finalOutcome:s,truncationNotice:d}}function OL(t){if(!t||t.length===0)return null;let e=t.find(s=>s.kind==="gate_opened"),r=t.find(s=>s.kind==="gate_resolved");if(!e||!r)return null;let n=Date.parse(e.at),i=Date.parse(r.at);if(Number.isNaN(n)||Number.isNaN(i))return null;let o=i-n;return o<0?null:Math.round(o/1e3)}function DL(t){return As(t)?.label??null}function NL(t){return t===Or?"Escalated review":t===to?"Final approval":t===nr?"Continue with which agent?":t}function ML(t){switch(t.phase){case"awaiting-number":return{text:"awaiting your response",color:"cyan"};case"awaiting-notes":return{text:"Notes mode: type your notes + Enter",color:"cyan"};case"submitting":return{text:"submitting\u2026",color:"yellow"};case"confirming":return{text:"Confirming decision\u2026",color:"yellow"};case"claimed":return{text:"Decision accepted; awaiting result",color:"yellow"};case"resolved":return t.resolvedBy==="server"?{text:t.serverDecision?`Already resolved on server \u2014 ${t.serverDecision}`:"Already resolved on server",color:"yellow"}:t.resolvedBy==="durable"?{text:`Resolved \u2014 ${t.resolution.label}`,color:"green"}:{text:`Resolved \u2014 ${t.postAction.kind}`,color:"green"};default:{let e=t;return{text:"",color:"white"}}}}function HE(t,e){return e<=0?"":t.length<=e?t:e===1?"\u2026":`${t.slice(0,e-1)}\u2026`}var LL=6;function WE(t){let{ink:e}=se(),{Box:r,Text:n}=e,{entry:i,trackLabel:o}=t,{envelope:s,uiState:a,queue:c}=i,d=e.useStdout().stdout,l=d&&typeof d.columns=="number"&&d.columns||80,p=s.promptKind===Or?DL(s.reason):null,h=NL(s.promptKind),y=t.gateActionRecoveryBlocked&&a.phase!=="claimed"&&a.phase!=="resolved"?{text:"Gate actions unavailable while history reconnects",color:"yellow"}:ML(a),g=a.phase==="resolved",f=t.gateActionRecoveryBlocked===!0||a.phase==="claimed"||g,w=[Et.createElement(n,{key:"badge",color:"magenta",bold:!0},"[GATE] "),Et.createElement(n,{key:"kind",bold:!0},h)];if(o&&w.push(Et.createElement(n,{key:"track",dimColor:!0},` \xB7 ${o}`)),p){let b=7+h.length+(o?` \xB7 ${o}`.length:0)+3,S=HE(p,l-4-b);S.length>0&&w.push(Et.createElement(n,{key:"reason",color:"red"},` \u2014 ${S}`))}let v=[];return v.push(Et.createElement(r,{key:"header",flexDirection:"row"},...w)),v.push(Et.createElement(r,{key:"status",marginLeft:2,marginTop:0},Et.createElement(n,{color:y.color},y.text))),f||s.options.forEach((b,S)=>{let R=S+1,x=`${R}. ${b.label} \u2014 `.length,P=HE(b.description,l-LL-x),O=[Et.createElement(n,{key:"num",color:"cyan",bold:!0},`${R}. `),Et.createElement(n,{key:"label",bold:!0},b.label)];P.length>0&&O.push(Et.createElement(n,{key:"desc",dimColor:!0},` \u2014 ${P}`)),v.push(Et.createElement(r,{key:`opt-${S}`,marginLeft:2,flexDirection:"row"},...O))}),c.length>0&&v.push(Et.createElement(r,{key:"queue",marginLeft:2},Et.createElement(n,{dimColor:!0},`(+${c.length} more queued)`))),a.phase==="awaiting-number"&&!t.gateActionRecoveryBlocked&&v.push(Et.createElement(r,{key:"reply-hint",marginLeft:2},Et.createElement(n,{dimColor:!0},"Reply with a number \xB7 \u2191 review details above"))),Et.createElement(r,{flexDirection:"column",borderStyle:"round",borderColor:g?"green":"yellow",paddingX:1},...v)}var wr=E(require("react"));var N=E(require("react"));function UE(t){if(t===null)return"Unavailable";let e=Math.max(0,Math.round(t/1e3));if(e<60)return`${e}s`;let r=Math.floor(e/60),n=e%60;return n===0?`${r}m`:`${r}m ${n}s`}function BL(t){switch(t){case"gate_opened":return"Gate opened";case"verdicts_collected":return"Verdicts collected";case"gate_resolved":return"Gate resolved";default:return t}}function qE(t){let{ink:e}=se(),{Box:r,Text:n}=e,i=GE(t.envelope);if(!(i.headline!==null||i.reasonLabel!==null||i.timeline.length>0||i.cascade.length>0||i.reviewers.length>0||i.reviewerUnavailableLine!==null))return null;let s=[];if(i.headline&&s.push(N.createElement(r,{key:"headline",flexDirection:"row"},N.createElement(n,{color:"cyan",bold:!0},"\u256D "),N.createElement(n,{bold:!0},i.headline))),i.reasonLabel){let a=[N.createElement(n,{key:"reason-label",color:"yellow"},i.reasonLabel)];a.push(N.createElement(n,{key:"round",dimColor:!0},` \xB7 ${i.roundLabel}`)),s.push(N.createElement(r,{key:"reason",marginLeft:2,flexDirection:"row"},...a))}else s.push(N.createElement(r,{key:"round-only",marginLeft:2},N.createElement(n,{dimColor:!0},i.roundLabel)));if(i.reasonExplanation&&s.push(N.createElement(r,{key:"reason-explanation",marginLeft:2},N.createElement(n,{dimColor:!0,italic:!0},i.reasonExplanation))),i.timeline.length>0){let c=i.timeline.map(d=>BL(d.kind)).join(" \u2192 ");i.elapsedSeconds!==null&&(c+=` (${i.elapsedSeconds}s)`),s.push(N.createElement(r,{key:"timeline",marginLeft:2},N.createElement(n,{dimColor:!0},c)))}return i.cascade.length>0&&(s.push(N.createElement(r,{key:"cascade-header",marginLeft:2},N.createElement(n,{dimColor:!0,bold:!0},"Prior rounds:"))),i.cascadeOmittedEarlier&&s.push(N.createElement(r,{key:"cascade-omitted",marginLeft:4},N.createElement(n,{dimColor:!0,italic:!0},"\u2026 earlier rounds omitted"))),i.cascade.forEach((a,c)=>{s.push(N.createElement(r,{key:`cascade-${c}`,marginLeft:4},N.createElement(n,{dimColor:!0},`Round ${a.round}: ${a.reasonLabel}`)))})),i.reviewers.length>0&&(s.push(N.createElement(r,{key:"reviewers-header",marginLeft:2},N.createElement(n,{bold:!0,color:"magenta"},"Reviewers:"))),i.reviewers.forEach((a,c)=>{s.push(N.createElement(r,{key:`reviewer-${c}`,marginLeft:4},N.createElement(n,{bold:!0},a.header))),a.findings.forEach((d,l)=>{s.push(N.createElement(r,{key:`reviewer-${c}-finding-${l}`,marginLeft:6,flexDirection:"row"},N.createElement(n,{dimColor:!0},"\u2022 "),N.createElement(n,{dimColor:!0},d)))}),a.truncationHint&&s.push(N.createElement(r,{key:`reviewer-${c}-trunc`,marginLeft:6},N.createElement(n,{dimColor:!0,italic:!0},a.truncationHint)))})),i.panelTruncationHint&&s.push(N.createElement(r,{key:"panel-trunc",marginLeft:2},N.createElement(n,{dimColor:!0,italic:!0},i.panelTruncationHint))),i.reviewerUnavailableLine&&s.push(N.createElement(r,{key:"reviewer-unavailable",marginLeft:2},N.createElement(n,{dimColor:!0,italic:!0},i.reviewerUnavailableLine))),N.createElement(r,{flexDirection:"column"},...s)}function KE(t){let{ink:e}=se(),{Box:r,Text:n}=e;if(t.rounds.length===0&&t.terminal===null)return null;let i=[];i.push(N.createElement(r,{key:"review-summary-header",marginLeft:2,marginTop:1},N.createElement(n,{bold:!0,color:"cyan"},"Review summary")));{let o=t.terminal;if(o){i.push(N.createElement(r,{key:"rs-requirements",marginLeft:2,marginTop:1},N.createElement(n,{bold:!0},"Requirements"))),o.requirements.problem&&i.push(N.createElement(r,{key:"rs-requirements-problem",marginLeft:4},N.createElement(n,{dimColor:!0},o.requirements.problem))),o.requirements.expectedOutputs.forEach((d,l)=>{i.push(N.createElement(r,{key:`rs-output-${l}`,marginLeft:4},N.createElement(n,{dimColor:!0},`\u2022 ${d}`)))}),i.push(N.createElement(r,{key:"rs-implementors",marginLeft:2,marginTop:1},N.createElement(n,{bold:!0},"Implementors"))),o.implementors.forEach((d,l)=>{let u=d.trackIndex===null?"":` \xB7 Track ${Cr(d.trackIndex)}`;i.push(N.createElement(r,{key:`rs-implementor-${l}`,marginLeft:4},N.createElement(n,{dimColor:!0},`${d.agent}${u}`)))}),o.implementors.length===0&&i.push(N.createElement(r,{key:"rs-implementors-empty",marginLeft:4},N.createElement(n,{dimColor:!0},"Unavailable")));let s=o.reviewQuorum.seats.map(d=>`${d.agent} (${d.role})`).join(", ");i.push(N.createElement(r,{key:"rs-quorum",marginLeft:2,marginTop:1},N.createElement(n,{bold:!0},"Review quorum")),N.createElement(r,{key:"rs-quorum-detail",marginLeft:4},N.createElement(n,{dimColor:!0},`${s||"Unavailable"} \xB7 ${o.reviewQuorum.roundCount} round${o.reviewQuorum.roundCount===1?"":"s"} \xB7 ${o.reviewQuorum.revisionCount} revision${o.reviewQuorum.revisionCount===1?"":"s"}`))),i.push(N.createElement(r,{key:"rs-merge",marginLeft:2,marginTop:1},N.createElement(n,{bold:!0},"Merge gate")),N.createElement(r,{key:"rs-merge-detail",marginLeft:4},N.createElement(n,{dimColor:!0},o.mergeGate.applicable?`${o.mergeGate.outcome}${o.mergeGate.resolution?` \xB7 ${o.mergeGate.resolution}`:""}`:"Not applicable"))),i.push(N.createElement(r,{key:"rs-duration",marginLeft:2,marginTop:1},N.createElement(n,{bold:!0},"Duration")),N.createElement(r,{key:"rs-duration-detail",marginLeft:4},N.createElement(n,{dimColor:!0},`Task ${UE(o.durations.taskElapsedMs)} \xB7 Reviewers ${UE(o.durations.reviewerElapsedMs)} \xB7 ${o.durations.availability}`)));let a=o.tokenUsage.unavailableRoles.length?` \xB7 unavailable: ${o.tokenUsage.unavailableRoles.join(", ")}`:"",c=[o.tokenUsage.knownInput!==null?`${o.tokenUsage.knownInput.toLocaleString()} input`:null,o.tokenUsage.knownOutput!==null?`${o.tokenUsage.knownOutput.toLocaleString()} output`:null,o.tokenUsage.knownCachedInput!==null?`${o.tokenUsage.knownCachedInput.toLocaleString()} cached`:null].filter(d=>d!==null).join(" \xB7 ");i.push(N.createElement(r,{key:"rs-tokens",marginLeft:2,marginTop:1},N.createElement(n,{bold:!0},"Token usage")),N.createElement(r,{key:"rs-tokens-detail",marginLeft:4},N.createElement(n,{dimColor:!0},`${o.tokenUsage.knownTotal?.toLocaleString()??"Unavailable"} known \xB7 ${o.tokenUsage.availability}${c?` \xB7 ${c}`:""}${a}`)));for(let[d,l]of o.tokenUsage.invocations.entries()){let u=l.role==="reviewer"?`r${l.round??"?"} seat ${l.seatId??"?"}`:l.round!==null?`r${l.round}`:l.role,p=[l.inputTokens!==null?`${l.inputTokens.toLocaleString()} input`:null,l.outputTokens!==null?`${l.outputTokens.toLocaleString()} output`:null,l.cachedInputTokens!==null?`cached ${l.cachedInputTokens.toLocaleString()}`:null].filter(y=>y!==null).join(" \xB7 "),h=l.totalTokens!==null?`${l.totalTokens.toLocaleString()} tokens${p?` \xB7 ${p}`:""}`:p?`partial \xB7 ${p}`:"unavailable tokens";i.push(N.createElement(r,{key:`rs-tokens-row-${d}`,marginLeft:4},N.createElement(n,{dimColor:!0},`${u}: ${l.agent} ${l.role} \xB7 ${h} \xB7 ${l.availability}`)))}i.push(N.createElement(r,{key:"rs-risks",marginLeft:2,marginTop:1},N.createElement(n,{bold:!0},"Residual risks"))),o.residualRisks.length===0?i.push(N.createElement(r,{key:"rs-risks-none",marginLeft:4},N.createElement(n,{dimColor:!0},"None reported"))):o.residualRisks.forEach((d,l)=>{i.push(N.createElement(r,{key:`rs-risk-${l}`,marginLeft:4},N.createElement(n,{dimColor:!0},`\u2022 ${d}`)))})}t.truncationNotice&&i.push(N.createElement(r,{key:"review-summary-trunc",marginLeft:2},N.createElement(n,{dimColor:!0,italic:!0},t.truncationNotice))),t.rounds.forEach((s,a)=>{i.push(N.createElement(r,{key:`rs-round-${a}`,marginLeft:2,marginTop:a>0?1:0},N.createElement(n,{bold:!0},`${s.roundLabel}${s.outcome?` \u2014 ${s.outcome}`:""}`))),s.proposal&&i.push(N.createElement(r,{key:`rs-round-${a}-proposal`,marginLeft:4},N.createElement(n,{dimColor:!0},s.proposal))),s.reviewers.forEach((c,d)=>{i.push(N.createElement(r,{key:`rs-round-${a}-seat-${d}`,marginLeft:4},N.createElement(n,{bold:!0},c.header))),c.reasoning&&i.push(N.createElement(r,{key:`rs-round-${a}-seat-${d}-reasoning`,marginLeft:6},N.createElement(n,{dimColor:!0},c.reasoning))),c.suggestedChanges.forEach((l,u)=>{i.push(N.createElement(r,{key:`rs-round-${a}-seat-${d}-change-${u}`,marginLeft:6,flexDirection:"row"},N.createElement(n,{dimColor:!0},"\u2022 "),N.createElement(n,{dimColor:!0},l)))})}),s.reviseNotes&&i.push(N.createElement(r,{key:`rs-round-${a}-revise`,marginLeft:4},N.createElement(n,{color:"yellow"},`Revise notes: ${s.reviseNotes}`)))})}return N.createElement(r,{flexDirection:"column"},...i)}function FL(t){return As(t)?.label??null}function GL(t){return t===Or?"Escalated review":t===to?"Final approval":t===nr?"Continue with which agent?":t}function $L(t){let{ink:e}=se(),{Box:r,Text:n}=e,o=t.promptKind===Or?FL(t.reason):null,s=GL(t.promptKind),a=[],c=qE({envelope:t});c&&a.push(wr.createElement(r,{key:"gate-details-panel",flexDirection:"column",marginBottom:0},c));let d=[wr.createElement(n,{key:"badge",color:"magenta",bold:!0},"[GATE] "),wr.createElement(n,{key:"kind"},s)];if(o&&d.push(wr.createElement(n,{key:"reason",color:"red"},` \u2014 ${o}`)),a.push(wr.createElement(r,{key:"header",flexDirection:"row"},...d)),t.promptKind===nr){let l=t.reason??"halted",u=t.sourceAgent?` \u2014 source: ${t.sourceAgent}`:"";a.push(wr.createElement(r,{key:"continuation-context",marginLeft:2},wr.createElement(n,{dimColor:!0},`Implementor halted (${l})${u}`))),t.packetHash&&a.push(wr.createElement(r,{key:"continuation-packet",marginLeft:2},wr.createElement(n,{dimColor:!0},`Packet ${t.packetHash.slice(0,8)}\u2026`)))}return t.summary&&a.push(wr.createElement(r,{key:"summary",marginLeft:2},wr.createElement(n,{dimColor:!0,italic:!0},t.summary))),wr.createElement(r,{flexDirection:"column"},...a)}function jE(t){let{panel:e}=t.entry;return e.variant==="prompt"?$L(e.envelope):KE(e.reviewSummary)}function ig(t,e,r){switch(t.kind){case"user-message":return Dr.createElement(bE,{entry:t});case"planner-decision":return Dr.createElement(kE,{entry:t});case"subagent-event":return Dr.createElement(RE,{entry:t});case"reviewer-status-node":return Dr.createElement(IE,{entry:t});case"gate-status-node":return Dr.createElement(AE,{entry:t});case"slash-output":return Dr.createElement(PE,{entry:t});case"advisory":return Dr.createElement(TE,{entry:t});case"gate-prompt":return Dr.createElement(WE,{entry:t,trackLabel:e?.get(t.envelope.taskId),gateActionRecoveryBlocked:r});case"gate-panel":return Dr.createElement(jE,{entry:t});default:{let n=t;throw new Error("Unknown conversation entry kind")}}}function VE(t){let{ink:e}=se(),{Box:r}=e;return Dr.createElement(r,{flexDirection:"column"},...t.entries.map(n=>Dr.createElement(r,{key:n.id,flexDirection:"column",marginBottom:0},ig(n,t.trackLabelByTaskId,t.gateActionRecoveryBlocked))))}var zE=E(require("os")),bc=E(require("react"));var HL=zE.homedir();function JE(t){let{ink:e}=se(),{Box:r,Text:n}=e,i=e.useStdout().stdout?.columns,o=t.columns??i??80,s=aE(t.plannerRuntimeKind,t.plannerLabel),{leftText:a,badgeText:c}=cE({cwd:t.cwd,tier:t.tier,homedir:HL,columns:o,badge:s});return bc.createElement(r,{flexDirection:"row",justifyContent:"space-between"},bc.createElement(n,{dimColor:!0},a),s&&c?bc.createElement(n,s.color?{color:s.color}:{dimColor:!0},c):bc.createElement(n,null,""))}var XE=["CLAUDE","CODEX","ANTIGRAVITY"],WL={CLAUDE:{name:"@claude",blurb:"ask Claude"},CODEX:{name:"@codex",blurb:"ask Codex"},ANTIGRAVITY:{name:"@agy",blurb:"ask Antigravity"}};function UL(t){let e=t.trim().toUpperCase();return XE.includes(e)?e:null}function QE(t=[]){let e=new Set(t.map(UL).filter(n=>n!==null)),r=XE.filter(n=>e.has(n)).map(n=>WL[n]);return[{name:"@all",blurb:r.length>0?"ask all available local agents":"ask all local agents"},...r]}function YE(t){return/\s/.test(t)}function ZE(t,e){return Math.max(0,Math.min(t,e.length))}function eR(t,e=t.length){let r=ZE(e,t),n=r;for(;n>0&&!YE(t[n-1]??"");)n-=1;let i=r;for(;i<t.length&&!YE(t[i]??"");)i+=1;let o=t.slice(n,r);return o.startsWith("@")?{start:n,end:i,prefix:o}:null}function og(t,e,r=t.length){let n=eR(t,r);if(!n)return[];let i=n.prefix.toLowerCase();return e.filter(o=>o.name.toLowerCase().startsWith(i))}function tR(t,e,r){let n=eR(t,e),i=`${r} `;if(!n){let c=ZE(e,t);return{value:t.slice(0,c)+i+t.slice(c),cursor:c+i.length}}let o=t.slice(n.end),s=o.startsWith(" ")?o.slice(1):o;return{value:t.slice(0,n.start)+i+s,cursor:n.start+i.length}}var nR=E(require("path")),rR={FREE:0,PRO:1,MAX:2};function qL(t,e){return!e||!t?!0:rR[t]>=rR[e]}function Ge(t,e,r){return{command:t,output:e,sideEffect:r}}var Eu=[{name:"/status",blurb:"Show the current task, who is working on it, and any pending approvals.",handler:()=>Ge("/status","PENDING \u2014 entrypoint pulls from store status")},{name:"/audit",blurb:"Review the full step-by-step history of a task (Max only).",minTier:"MAX",handler:()=>Ge("/audit","PENDING \u2014 entrypoint runs audit browser")},{name:"/flag",blurb:"Flag a bad quorum approval from the last /audit listing (Max only).",minTier:"MAX",handler:t=>t.length===0?Ge("/flag","Usage: /flag <entry-id> [note]. Flags a consensus-approve resolution from the most recent /audit listing as a bad approval. Run /audit <task-id> to list entry ids."):Ge("/flag","PENDING \u2014 entrypoint records bad-approval flag")},{name:"/continue",blurb:"Hand the current task to another agent, or accept a handoff.",handler:t=>{let e=t[0]??"help";return e==="request"||e==="accept"||e==="switch"?Ge("/continue","PENDING \u2014 entrypoint pulls from continuation reader"):Ge("/continue",["Usage: /continue <subcommand> [args]","","Subcommands:"," request [<target>] Hand off the active task to another agent."," accept <target> Resolve an active handoff prompt."].join(`
|
|
3744
|
+
`||i===" "||i===" "){e+=i,r++;continue}if(o<=31||o===127||o>=128&&o<=159){r++;continue}e+=i,r++}return e}function pn(t){let e=Math.max(0,Math.floor(t/1e3)),r=Math.floor(e/3600),n=Math.floor(e%3600/60),i=e%60;return r>0?`${r}:${String(n).padStart(2,"0")}:${String(i).padStart(2,"0")}`:`${n}:${String(i).padStart(2,"0")}`}function yu(t){let e=Math.max(0,Math.floor(Number.isFinite(t)?t:0));if(e>=999500)return`${(e/1e6).toFixed(1)}M`;if(e>=1e3){let r=e/1e3;return`${r>=10?r.toFixed(0):r.toFixed(1)}k`}return String(e)}function wc(t){switch(t.phase){case"preparing_workspace":return"Preparing an isolated workspace copy \u2014 this can take a while on a large folder";case"shadow_created":return"Workspace copy ready \u2014 starting implementor";case"implementor_running":{let e=typeof t.filesChanged=="number"?`, ${t.filesChanged} ${t.filesChanged===1?"file":"files"} changed`:"";return`Implementor working in shadow \u2014 round ${t.round}${e}`}case"diff_captured":{let e=[];t.created>0&&e.push(`+${t.created}`),t.modified>0&&e.push(`~${t.modified}`),t.deleted>0&&e.push(`-${t.deleted}`);let r=e.length>0?` (${e.join("/")})`:"";return`Diff captured: ${t.files} ${t.files===1?"file":"files"}${r}`}case"submitting_diff":return`Submitting changes for review \u2014 round ${t.round}`;case"reviewers_dispatched":return`Reviewers dispatched \u2014 ${t.seats} ${t.seats===1?"seat":"seats"}`;case"seat_update":return t.state==="running"?`Reviewer ${t.seatLabel} running`:`Reviewer ${t.seatLabel} submitted its verdict`;case"verdicts_progress":return`Verdicts ${t.received}/${t.expected} received`;case"revise_round":{let e=t.feedbackSummary?` \u2014 ${t.feedbackSummary}`:"";return`Revise round ${t.round} \u2014 re-running implementor${e}`}case"round_failed":return`Implementor round ${t.round} failed \u2014 ${t.reason}`;case"continuation_offered":return`Implementor halted (${t.reason}) \u2014 choose a continuation agent`;case"declared_tests_skipped":return`\u26A0 declared test(s) not run (absent): ${t.paths.join(", ")} \u2014 reviewers will assess`;case"promoting":return`Applying approved changes \u2014 ${t.files} ${t.files===1?"file":"files"}`;case"promoted":return`Applied ${t.files} ${t.files===1?"file":"files"} to your workspace`;case"discarding":return"Discarding workspace copy";case"discarded":return"Workspace copy discarded \u2014 your tree is unchanged";case"not_applied":return"Not applied \u2014 your tree is unchanged";case"waiting_user":return"Waiting for your decision";case"planner_classifying":return"Thinking\u2026";case"familiarizing":return"Reading the codebase to get familiar\u2026";case"agent_advisory":return"Waiting for agent replies\u2026";case"progress_cleared":return"";case"halt_notice":return t.message;default:{let e=t;return""}}}function Yf(t){if(t.phase==="declared_tests_skipped"){let e=t.paths.length;return`\u26A0 ${e} declared test${e===1?"":"s"} not run`}return wc(t)}var hE=500;function Zf(t,e){switch(e.type){case"USER_INPUT":return Qf(t,e.text,e.attachments,e.imagePaths);case"PLANNER_DECISION":return F0(t,e.decision,e.taskId,e.brainstorm);case"EVENT_RECEIVED":return $0(t,e.event,e.role??"implementor");case"REVIEWER_STATE_CHANGED":return H0(t,e.nodeId,e.seatId,e.newState);case"GATE_STATE_CHANGED":return U0(t,e.nodeId,e.gate);case"PLANNER_HEALTH_CHANGED":return{...t,plannerHealth:e.newState};case"SLASH_OUTPUT":return q0(t,e.command,e.output);case"CLARIFICATION_ANSWERED":return K0(t,e.answer);case"TASK_QUEUED":return{...t,queuedTasks:[...t.queuedTasks,e.queuedTask]};case"TASK_DEQUEUED":return{...t,queuedTasks:t.queuedTasks.filter(r=>r.queuedTaskId!==e.queuedTaskId)};case"TASK_LIFECYCLE":return j0(t,e.task);case"CLEAR_PENDING_CLARIFICATION":return{...t,pendingClarification:null};case"PLANNER_OFFER_PRESENTED":return G0(t,e.offer);case"CLEAR_PENDING_PLANNER_OFFER":return{...t,pendingPlannerOffer:null};case"STRUCTURAL_SUMMARY_GENERATED":return{...t,structuralSummary:e.summary,structuralSummaryError:null};case"STRUCTURAL_SUMMARY_FAILED":return{...t,structuralSummary:null,structuralSummaryError:e.error};case"GATE_PROMPT_RECEIVED":return z0(t,e.envelope);case"GATE_PROMPT_NOTES_REQUESTED":return Q0(t,e.promptEntryId,e.decisionDraft);case"GATE_PROMPT_SUBMIT_STARTED":return Z0(t,e.promptEntryId);case"GATE_PROMPT_DECISION_FENCED":return J0(t,e.promptEntryId,e.gateId,e.decisionAttemptId,e.canonicalRequestHash,e.decisionClaimId);case"GATE_PROMPT_RESOLVED":return eL(t,e.promptEntryId,e.gateId,e.postAction);case"GATE_PROMPT_SUBMIT_FAILED":return rL(t,e.promptEntryId,e.gateId);case"GATE_PROMPT_RESOLVED_EXTERNALLY":return tL(t,e.promptEntryId,e.gateId,e.serverDecision);case"GATE_RESOLUTION_RECEIVED":return Y0(t,e.resolution);case"GATE_PROMPT_ACTION_FENCED":return X0(t,e.gateId,e.decisionClaimId);case"GATE_ACTION_RECOVERY_CHANGED":return t.gateActionRecoveryBlocked===e.blocked?t:{...t,gateActionRecoveryBlocked:e.blocked};case"GATE_PROMPT_NOTES_CANCELLED":return nL(t,e.promptEntryId);case"GATE_SUMMARY_LOADED":return iL(t,e.gateId,e.panelModel);case"TEAM_STARTED":return oL(t,e.taskGroupId);case"TEAM_TRACK_ASSIGNED":return sL(t,e.trackIndex,e.state,e.taskId,e.agent);case"TEAM_MERGE_GATE":return aL(t,e.status,e.startedAt,e.endedAt);case"TEAM_HALTED":return cL(t,e.haltReason);case"TEAM_TRACK_TERMINAL":return Xf(t,e.trackIndex,e.state);case"TEAM_TRACK_REVISING":return Xf(t,e.trackIndex,"Revising");case"TEAM_TRACK_AWAITING_DECISION":return Xf(t,e.trackIndex,"AwaitingDecision");case"TEAM_GROUP_RESOLVED":return dL(t,e.outcome);case"TASK_PROGRESS":return B0(L0(O0(t,e.event),e.event),e.event);case"SHELL_ADVISORY":return rr(t,{kind:"advisory",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,source:e.source,text:e.text,...e.localOnly?{localOnly:!0}:{},...e.handoffExcluded?{handoffExcluded:!0}:{}});case"AUDIT_FLAG_INDEX_RETAINED":return lL(t,e.index);case"AUDIT_FLAG_RECORDED":return uL(t,e.entryId);case"REVIEWER_WIZARD_OPEN":return{...t,reviewerWizard:e.wizard};case"REVIEWER_WIZARD_CLOSE":return{...t,reviewerWizard:null};case"EXIT":return t;default:{let r=e;return t}}}function rr(t,e){let r=[...t.conversation,e],n=r.length>hE?r.slice(r.length-hE):r;return{...t,conversation:n}}var _0=new Set(["diff_captured","submitting_diff","reviewers_dispatched","seat_update","verdicts_progress","declared_tests_skipped","halt_notice"]),fE=new Set(["waiting_user","continuation_offered","round_failed","promoted","discarded","not_applied","progress_cleared"]),mE=new Set(["preparing_workspace","shadow_created","implementor_running","diff_captured","submitting_diff","reviewers_dispatched","seat_update","verdicts_progress","revise_round","declared_tests_skipped"]),C0=new Set(["shadow_created","diff_captured","submitting_diff","reviewers_dispatched","seat_update","verdicts_progress","revise_round","round_failed","continuation_offered","declared_tests_skipped","promoted","discarded","not_applied","halt_notice"]);function O0(t,e){let r=e.phase==="promoted"?"completed":e.phase==="discarded"||e.phase==="not_applied"?"cancelled":e.phase==="round_failed"?"failed":null;if(r===null)return t;let n="taskId"in e?e.taskId:void 0;if(!n)return t;let i=new Map(t.runningTasks),o=i.delete(n),s=t.sessionTasks.get(n),a=new Map(t.sessionTasks);if(s){if(s.origin!=="single"||s.status!=="running")return o?{...t,runningTasks:i}:t;a.set(n,{...s,status:r})}else a.set(n,{taskId:n,origin:"single",status:r,startedAt:new Date().toISOString()});return{...t,runningTasks:i,sessionTasks:a}}var D0=new Set(["reviewers_dispatched","seat_update","verdicts_progress"]),N0=new Set([...fE,"shadow_created","implementor_running","revise_round"]);function vu(t){for(let e of t.sessionTasks.values())if(e.origin==="single"&&(e.status==="running"||e.status==="cancelling"))return!0;return!1}function M0(t){return t.team!==null&&!t.team.groupResolved&&t.team.haltReason===null||vu(t)}function L0(t,e){return D0.has(e.phase)?M0(t)?{...t,lastReviewerProgress:{text:wc(e),at:new Date().toISOString()}}:t:N0.has(e.phase)&&t.lastReviewerProgress!==null?{...t,lastReviewerProgress:null}:t}function B0(t,e){let r=t;if(C0.has(e.phase)){let c={kind:"advisory",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,source:"shell",text:wc(e),...e.phase==="halt_notice"?{localOnly:!0}:{}};r=rr(r,c)}if(t.team!==null&&!t.team.groupResolved)return r;let n=t.progress;if(n!==null&&n.epoch!==void 0&&e.epoch!==void 0&&e.epoch<n.epoch)return r;let i=new Date().toISOString();if(fE.has(e.phase))return e.phase==="waiting_user"||n===null||n.epoch===void 0||e.epoch===n.epoch?{...r,progress:null}:r;if(_0.has(e.phase))return n!==null&&mE.has(n.phase)&&mE.has(e.phase)&&e.epoch===n.epoch?{...r,progress:{phase:e.phase,text:Yf(e),updatedAt:i,startedAt:n.startedAt,epoch:n.epoch,tokens:Math.max(n.tokens??0,e.tokens??0)||void 0}}:r;let o=n!==null&&e.epoch!==void 0&&e.epoch===n.epoch,s=o?n.startedAt:i,a=o?Math.max(n.tokens??0,e.tokens??0)||void 0:e.tokens||void 0;return{...r,progress:{phase:e.phase,text:Yf(e),updatedAt:i,startedAt:s,epoch:e.epoch,tokens:a}}}function Qf(t,e,r,n){let i={kind:"user-message",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,text:e,...r&&r.length?{attachments:r}:{},...n&&n.length?{imagePaths:n}:{}},o=rr(t,i),s={...o,inputHistory:[...o.inputHistory,e]};if(t.pendingClarification===null)return s;let a=t.pendingClarification.rounds,c=a.length-1;if(c<0||a[c].answer!==void 0)return s;let d=a.map((l,u)=>u===c?{question:l.question,answer:e}:l);return{...s,pendingClarification:{...t.pendingClarification,rounds:d,...r&&r.length?{attachments:r}:{},...n&&n.length?{attachmentPaths:[...t.pendingClarification.attachmentPaths??[],...n]}:{}}}}function F0(t,e,r,n){let i={kind:"planner-decision",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,action:e.action,rationale:e.rationale,taskId:r,...n?{brainstorm:n}:{}},o=rr(t,i);if(e.action==="ask_user"&&e.clarifying_question){let c={kind:"advisory",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,source:"planner",text:e.clarifying_question},d=rr(o,c),l=t.pendingClarification;if(l===null){let u=[...d.conversation].reverse().find(h=>h.kind==="user-message"),p=u?.text??"";return{...d,pendingClarification:{originalPrompt:p,rounds:[{question:e.clarifying_question}],conversationEntryId:c.id,...u?.attachments&&u.attachments.length?{attachments:u.attachments}:{},...u?.imagePaths&&u.imagePaths.length?{attachmentPaths:u.imagePaths}:{}}}}else return{...d,pendingClarification:{originalPrompt:l.originalPrompt,rounds:[...l.rounds,{question:e.clarifying_question}],conversationEntryId:c.id,...l.attachments&&l.attachments.length?{attachments:l.attachments}:{},...l.attachmentPaths&&l.attachmentPaths.length?{attachmentPaths:l.attachmentPaths}:{}}}}let a=(typeof e.advisory_summary=="string"?e.advisory_summary.trim():"").length>0?e.advisory_summary:e.action==="advisory_response"?(e.rationale??"").trim():"";if(a.length>0){let c={kind:"advisory",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,source:"planner",text:nt(a)},d=rr(o,c);return t.pendingClarification!==null?{...d,pendingClarification:null}:d}return t.pendingClarification!==null?{...o,pendingClarification:null}:o}function G0(t,e){let r=e.kind==="team_decomposition"?"This looks like it can run as a parallel agent team. How would you like to proceed?":"It sounds like you want to start building. How would you like to proceed?",n=e.options.map((c,d)=>` ${d+1}. ${c.label} \u2014 ${c.description}`),i=nt((e.rationale??"").trim()),o=[r,...i.length>0?["",i]:[],"",...n,"",`Reply with a number 1-${e.options.length}, or type anything else to continue.`].join(`
|
|
3745
|
+
`),s={kind:"advisory",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,source:"shell",text:o,localOnly:!0};return{...rr(t,s),pendingPlannerOffer:{...e,conversationEntryId:s.id},pendingClarification:null}}function $0(t,e,r){if(t.conversation.some(o=>o.kind==="subagent-event"&&o.event.eventId===e.eventId))return t;let n=e.parentTaskId??"",i={kind:"subagent-event",id:(0,yr.ulid)(),timestamp:e.timestamp||new Date().toISOString(),final:!0,parentTaskId:n,role:r,event:e};return rr(t,i)}function H0(t,e,r,n){let i=t.conversation.findIndex(p=>p.kind==="reviewer-status-node"&&p.id===e);if(i===-1){let p=new Map(t.activeReviewerSeats);return p.set(r,n),{...t,activeReviewerSeats:p}}let o=t.conversation[i];if(o.kind!=="reviewer-status-node"||o.final)return t;let s=o.seats.map(p=>p.seatId===r?n:p),a=W0(s),d={...o,seats:s,quorumStatus:a,final:a==="PASS"||a==="REVISE"||a==="BLOCK"},l=[...t.conversation.slice(0,i),d,...t.conversation.slice(i+1)],u=new Map(t.activeReviewerSeats);return u.set(r,n),{...t,conversation:l,activeReviewerSeats:u}}function W0(t){return t.length===0?"queued":t.some(e=>e.status==="BLOCK")?"BLOCK":t.some(e=>e.status==="queued")?"queued":t.some(e=>e.status==="running")?"running":t.some(e=>e.status==="REVISE")?"REVISE":"PASS"}function U0(t,e,r){let n=t.conversation.findIndex(c=>c.kind==="gate-status-node"&&c.id===e);if(n===-1)return{...t,currentGate:r};let i=t.conversation[n];if(i.kind!=="gate-status-node"||i.final)return t;let o=r.status==="PASS"||r.status==="REVISE"||r.status==="BLOCK"||r.status==="merge_gate_pending",s={...i,gate:r,final:o},a=[...t.conversation.slice(0,n),s,...t.conversation.slice(n+1)];return{...t,conversation:a,currentGate:r}}function q0(t,e,r){let n={kind:"slash-output",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,command:e,output:r};return rr(t,n)}function K0(t,e){if(t.pendingClarification===null)return Qf(t,e);let r=t.pendingClarification.rounds.map((i,o,s)=>o===s.length-1&&i.answer===void 0?{question:i.question,answer:e}:i);return{...Qf(t,e),pendingClarification:{...t.pendingClarification,rounds:r}}}function j0(t,e){let r=t.sessionTasks.get(e.taskId),n=r?.origin==="single"&&(r.status==="completed"||r.status==="cancelled"||r.status==="failed"),i=e.status==="completed"||e.status==="cancelled"||e.status==="failed",o=new Map(t.runningTasks);i||n&&!i?o.delete(e.taskId):o.set(e.taskId,e);let s=new Map(t.sessionTasks);return s.set(e.taskId,{taskId:e.taskId,agentKind:e.agentKind,origin:"single",status:n&&!i?r.status:e.status,startedAt:e.startedAt}),{...t,runningTasks:o,sessionTasks:s}}function V0(t,e){for(let r=0;r<t.conversation.length;r++){let n=t.conversation[r];if(n.kind==="gate-prompt"&&n.envelope.taskId===e&&n.final===!1)return r}return-1}function gE(t){return{kind:"gate-panel",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,panel:{variant:"prompt",envelope:t}}}function yE(t){return{kind:"gate-panel",id:(0,yr.ulid)(),timestamp:new Date().toISOString(),final:!0,panel:{variant:"summary",reviewSummary:t}}}function eg(t,e,r){let[n,...i]=r.queue,o={...r.queuedReviewSummaries??{}},s=o[n.gateId];delete o[n.gateId];let a=Object.keys(o).length>0?o:void 0,c=t.gateResolutions.get(n.gateId),d=t.gateActionClaims.has(n.gateId),l={...r,envelope:n,queue:i,uiState:c?{phase:"resolved",resolvedBy:"durable",resolution:c}:d?{phase:"claimed",decisionClaimId:t.gateActionClaims.get(n.gateId)??null}:{phase:"awaiting-number"},final:c!==void 0,reviewSummary:s,queuedReviewSummaries:a},u=[...t.conversation.slice(0,e),l,...t.conversation.slice(e+1)],p=rr({...t,conversation:u},gE(n));return s!==void 0&&s.rounds.length>0&&(p=rr(p,yE(s))),p}function z0(t,e){if(t.conversation.some(c=>c.kind==="gate-prompt"&&(c.envelope.gateId===e.gateId||c.queue.some(d=>d.gateId===e.gateId))))return t;let n=V0(t,e.taskId);if(n!==-1){let c=t.conversation[n];if(c.kind!=="gate-prompt")return t;let d={...c,queue:[...c.queue,e]},l=[...t.conversation.slice(0,n),d,...t.conversation.slice(n+1)];return{...t,conversation:l}}let i=t.gateResolutions.get(e.gateId),o=t.gateActionClaims.has(e.gateId),s={kind:"gate-prompt",id:(0,yr.ulid)(),timestamp:e.receivedAt||new Date().toISOString(),final:!!i,envelope:e,queue:[],uiState:i?{phase:"resolved",resolvedBy:"durable",resolution:i}:o?{phase:"claimed",decisionClaimId:t.gateActionClaims.get(e.gateId)??null}:{phase:"awaiting-number"}},a=rr(t,s);return rr(a,gE(e))}function J0(t,e,r,n,i,o){let s=t.conversation.findIndex(d=>d.kind==="gate-prompt"&&d.id===e);if(s===-1)return t;let a=t.conversation[s];if(a.kind!=="gate-prompt"||a.envelope.gateId!==r||a.uiState.phase==="resolved")return t;let c={...a,final:!1,uiState:{phase:"confirming",decisionAttemptId:n,canonicalRequestHash:i,decisionClaimId:o}};return{...t,conversation:[...t.conversation.slice(0,s),c,...t.conversation.slice(s+1)]}}function Y0(t,e){let r=t.gateResolutions.get(e.promptId);if(r)return r.eventId===e.eventId,t;let n=new Map(t.gateResolutions);n.set(e.promptId,e);let i=t.conversation.findIndex(a=>a.kind==="gate-prompt"&&a.envelope.gateId===e.promptId);if(i===-1)return{...t,gateResolutions:n};let o=t.conversation[i];if(o.kind!=="gate-prompt")return{...t,gateResolutions:n};if(o.queue.length>0)return{...eg(t,i,o),gateResolutions:n};let s={...o,final:!0,uiState:{phase:"resolved",resolvedBy:"durable",resolution:e}};return{...t,gateResolutions:n,conversation:[...t.conversation.slice(0,i),s,...t.conversation.slice(i+1)]}}function X0(t,e,r){let n=t.gateActionClaims.get(e);if(t.gateActionClaims.has(e)&&n!==r)return t;let i=new Map(t.gateActionClaims);i.set(e,r);let o=t.conversation.findIndex(c=>c.kind==="gate-prompt"&&c.envelope.gateId===e);if(o===-1)return{...t,gateActionClaims:i};let s=t.conversation[o];if(s.kind!=="gate-prompt"||s.uiState.phase==="resolved")return{...t,gateActionClaims:i};let a={...s,final:!1,uiState:{phase:"claimed",decisionClaimId:r}};return{...t,gateActionClaims:i,conversation:[...t.conversation.slice(0,o),a,...t.conversation.slice(o+1)]}}function Q0(t,e,r){let n=t.conversation.findIndex(a=>a.kind==="gate-prompt"&&a.id===e);if(n===-1)return t;let i=t.conversation[n];if(i.kind!=="gate-prompt"||i.uiState.phase!=="awaiting-number")return t;let o={...i,uiState:{phase:"awaiting-notes",decisionDraft:r}},s=[...t.conversation.slice(0,n),o,...t.conversation.slice(n+1)];return{...t,conversation:s}}function Z0(t,e){let r=t.conversation.findIndex(s=>s.kind==="gate-prompt"&&s.id===e);if(r===-1)return t;let n=t.conversation[r];if(n.kind!=="gate-prompt"||n.uiState.phase!=="awaiting-number"&&n.uiState.phase!=="awaiting-notes")return t;let i={...n,uiState:{phase:"submitting"}},o=[...t.conversation.slice(0,r),i,...t.conversation.slice(r+1)];return{...t,conversation:o}}function eL(t,e,r,n){let i=t.conversation.findIndex(c=>c.kind==="gate-prompt"&&c.id===e);if(i===-1)return t;let o=t.conversation[i];if(o.kind!=="gate-prompt"||o.envelope.gateId!==r)return t;if(o.queue.length>0)return eg(t,i,o);let s={...o,uiState:{phase:"resolved",postAction:n,resolvedBy:"self"},final:!0},a=[...t.conversation.slice(0,i),s,...t.conversation.slice(i+1)];return{...t,conversation:a}}function tL(t,e,r,n){let i=t.conversation.findIndex(c=>c.kind==="gate-prompt"&&c.id===e);if(i===-1)return t;let o=t.conversation[i];if(o.kind!=="gate-prompt"||o.envelope.gateId!==r||o.uiState.phase==="resolved")return t;if(o.queue.length>0)return eg(t,i,o);let s={...o,uiState:{phase:"resolved",resolvedBy:"server",serverDecision:n},final:!0},a=[...t.conversation.slice(0,i),s,...t.conversation.slice(i+1)];return{...t,conversation:a}}function rL(t,e,r){let n=t.conversation.findIndex(a=>a.kind==="gate-prompt"&&a.id===e);if(n===-1)return t;let i=t.conversation[n];if(i.kind!=="gate-prompt"||i.envelope.gateId!==r||i.uiState.phase!=="submitting"&&i.uiState.phase!=="confirming")return t;let o={...i,uiState:{phase:"awaiting-number"}},s=[...t.conversation.slice(0,n),o,...t.conversation.slice(n+1)];return{...t,conversation:s}}function nL(t,e){let r=t.conversation.findIndex(s=>s.kind==="gate-prompt"&&s.id===e);if(r===-1)return t;let n=t.conversation[r];if(n.kind!=="gate-prompt"||n.uiState.phase!=="awaiting-notes")return t;let i={...n,uiState:{phase:"awaiting-number"}},o=[...t.conversation.slice(0,r),i,...t.conversation.slice(r+1)];return{...t,conversation:o}}function iL(t,e,r){let n=t.conversation.findIndex(d=>d.kind==="gate-prompt"&&d.final===!1&&d.envelope.gateId===e);if(n===-1){let d=t.conversation.findIndex(h=>h.kind==="gate-prompt"&&h.final===!1&&h.queue.some(y=>y.gateId===e));if(d===-1)return t;let l=t.conversation[d];if(l.kind!=="gate-prompt")return t;let u={...l,queuedReviewSummaries:{...l.queuedReviewSummaries??{},[e]:r}},p=[...t.conversation.slice(0,d),u,...t.conversation.slice(d+1)];return{...t,conversation:p}}let i=t.conversation[n];if(i.kind!=="gate-prompt")return t;let o=i.reviewSummary===void 0,s={...i,reviewSummary:r},a=[...t.conversation.slice(0,n),s,...t.conversation.slice(n+1)],c={...t,conversation:a};return o&&r.rounds.length>0?rr(c,yE(r)):c}function oL(t,e){if(t.team){if(t.team.taskGroupId===e)return t;if(t.team.taskGroupId==="")return{...t,team:{...t.team,taskGroupId:e}}}return{...t,team:{taskGroupId:e,tracks:new Map,mergeGate:"none",haltReason:null,groupResolved:!1}}}function sL(t,e,r,n,i){let o=t.team??{taskGroupId:"",tracks:new Map,mergeGate:"none",haltReason:null,groupResolved:!1},s=new Map(o.tracks),a=s.get(e),c={state:r,taskId:n??a?.taskId,agent:i??a?.agent};s.set(e,c);let d=t.sessionTasks;if(c.taskId){let l=t.sessionTasks.get(c.taskId);d=new Map(t.sessionTasks),d.set(c.taskId,{taskId:c.taskId,agentKind:c.agent??l?.agentKind,origin:"team",status:r,startedAt:l?.startedAt??new Date().toISOString()})}return{...t,team:{...o,tracks:s},sessionTasks:d}}function wu(t,e){if(t==null||e==null)return;let r=Date.parse(t),n=Date.parse(e);if(!(isNaN(r)||isNaN(n)))return Math.max(0,n-r)}function aL(t,e,r,n){if(!t.team)return t;let i=t.team;if(e==="pending"){if(n!=null){if(i.mergeGateStartedAt==null||i.mergeGateElapsedMs!=null)return t;let c=wu(i.mergeGateStartedAt,n);return c==null?t:{...t,team:{...i,mergeGateElapsedMs:c}}}if(i.mergeGate==="pass"||i.mergeGate==="fail"||i.groupResolved||i.haltReason!=null)return t;let s=i.mergeGateStartedAt!=null?Date.parse(i.mergeGateStartedAt):NaN,a=r!=null?Date.parse(r):NaN;return i.mergeGateStartedAt==null||isNaN(s)||!isNaN(a)&&a>s?{...t,team:{...i,mergeGate:"pending",mergeGateStartedAt:r,mergeGateElapsedMs:void 0}}:t}let o=i.mergeGateElapsedMs??wu(i.mergeGateStartedAt,n);return{...t,team:{...i,mergeGate:e,mergeGateElapsedMs:o}}}function cL(t,e){if(!t.team)return t;let r=t.team,n=r.mergeGateStartedAt!=null&&r.mergeGateElapsedMs==null?wu(r.mergeGateStartedAt,new Date().toISOString()):r.mergeGateElapsedMs;return{...t,team:{...r,haltReason:e,mergeGateElapsedMs:n},lastReviewerProgress:null}}function Xf(t,e,r){if(!t.team)return t;let n=t.team.tracks.get(e);if(!n||n.state===r)return t;let i=new Map(t.team.tracks);i.set(e,{...n,state:r});let o=t.sessionTasks,s=n.taskId?t.sessionTasks.get(n.taskId):void 0;return n.taskId&&s&&(o=new Map(t.sessionTasks),o.set(n.taskId,{...s,status:r})),{...t,team:{...t.team,tracks:i},sessionTasks:o}}function dL(t,e){if(!t.team||t.team.groupResolved&&t.team.outcome===e)return t;let r=t.team,n=r.mergeGateStartedAt!=null&&r.mergeGateElapsedMs==null?wu(r.mergeGateStartedAt,new Date().toISOString()):r.mergeGateElapsedMs;return{...t,team:{...r,groupResolved:!0,outcome:e,mergeGateElapsedMs:n},lastReviewerProgress:null}}function lL(t,e){let r=t.auditFlagIndex,n=r?new Set([...r.flagged,...e.flagged]):e.flagged;return{...t,auditFlagIndex:{...e,flagged:n}}}function uL(t,e){let r=t.auditFlagIndex;if(!r||r.flagged.has(e))return t;let n=new Set(r.flagged);return n.add(e),{...t,auditFlagIndex:{...r,flagged:n}}}function pL(t){return{...{session:t.session,plannerHealth:"Available",conversation:[],runningTasks:new Map,sessionTasks:new Map,lastReviewerProgress:null,queuedTasks:[],activeReviewerSeats:new Map,currentGate:null,pendingClarification:null,pendingPlannerOffer:null,inputHistory:[],structuralSummary:null,structuralSummaryError:null,team:null,progress:null,reviewerWizard:null,auditFlagIndex:null,gateResolutions:new Map,gateActionClaims:new Map,gateActionRecoveryBlocked:!1},...t.initial??{}}}function tg(t){let e=pL(t),r=new Set;function n(){return e}function i(s){e=Zf(e,s);for(let a of r)a(e)}function o(s){return r.add(s),()=>{r.delete(s)}}return{getState:n,dispatch:i,subscribe:o}}var Se=E(require("react"));var eo=E(require("react"));var hL="#C026D3",wE="multi-agent orchestration";function mL(){return process.env.NO_COLOR==="1"||process.env.TERM==="dumb"||process.env.CODEVIBE_NO_TUI==="1"}function vE(){let{ink:t}=se(),{Box:e,Text:r}=t;return mL()?eo.createElement(e,{flexDirection:"column",marginBottom:1},eo.createElement(r,null,"CodeVibe"),eo.createElement(r,null,wE)):eo.createElement(e,{flexDirection:"column",marginBottom:1},eo.createElement(r,{color:hL,bold:!0},"CodeVibe"),eo.createElement(r,{dimColor:!0},wE))}var Dr=E(require("react"));var bu=E(require("react"));function bE(t){let{ink:e}=se(),{Box:r,Text:n}=e;return bu.createElement(r,{flexDirection:"row"},bu.createElement(n,{color:"cyan"},"> "),bu.createElement(n,null,t.entry.text))}var Is=E(require("react"));function kE(t){let{ink:e}=se(),{Box:r,Text:n}=e;return Is.createElement(r,{flexDirection:"column"},Is.createElement(n,null,Is.createElement(n,{color:"magenta"},"\u25CF "),`Planner classified: ${t.entry.action}`),Is.createElement(r,{marginLeft:2},Is.createElement(n,{dimColor:!0},`rationale: ${JSON.stringify(t.entry.rationale)}`)))}var Un=E(require("react"));function fL(t){if(t.kind==="NOTIFICATION"&&"payload"in t&&t.payload&&typeof t.payload=="object"&&typeof t.payload.message=="string")return t.payload.message;switch(t.kind){case"EXECUTOR_REFUSAL":return`refusal ${t.payload.refusalCategory}: ${t.payload.refusalDetail}`;case"TASK_BYPASS":return`bypass: ${t.payload.bypassReason}`;case"USER_PROMPT":case"ASSISTANT_RESPONSE":case"INTERACTIVE_PROMPT":case"NOTIFICATION":return t.kind.toLowerCase();case"PROCESS_SPAWNED":return"process spawned";case"FILE_CHANGE":return"file change";case"TOOL_USE":return"tool use";case"VERIFICATION_RUN":return"verification run";case"PROCESS_EXITED":return"process exited";default:{let e=t;return"event"}}}function EE(t){return!t||typeof t!="object"||Array.isArray(t)?null:t}function gL(t,e){let r=EE(t);if(!r)return null;let n=r.number,i=r.text,o=r.label,s=typeof n=="string"&&n.length>0?n:String(e+1),a=typeof i=="string"&&i.length>0?i:typeof o=="string"&&o.length>0?o:null;if(!a)return null;let c=r.description;return{number:s,text:a,...typeof c=="string"&&c.length>0?{description:c}:{}}}function SE(t){return Array.isArray(t)?t.map((e,r)=>gL(e,r)).filter(e=>e!==null):[]}function yL(t){let e=t.questions;if(Array.isArray(e)&&e.length>0)return e.map(i=>{let o=EE(i);if(!o||typeof o.question!="string"||o.question.length===0)return null;let s=SE(o.options);return s.length===0?null:{question:o.question,...typeof o.header=="string"&&o.header.length>0?{header:o.header}:{},options:s,...typeof o.instructions=="string"&&o.instructions.length>0?{instructions:o.instructions}:{}}}).filter(i=>i!==null);let r=SE(t.options);return r.length===0?[]:[{question:typeof t.question=="string"&&t.question.length>0?t.question:typeof t.content=="string"&&t.content.length>0?t.content:"Interactive prompt",options:r,...typeof t.instructions=="string"&&t.instructions.length>0?{instructions:t.instructions}:{}}]}function RE(t){let{ink:e}=se(),{Box:r,Text:n}=e,i=t.entry.event;if(i.kind==="INTERACTIVE_PROMPT"&&"payload"in i&&i.payload&&typeof i.payload=="object"){let s=yL(i.payload);if(s.length>0)return Un.createElement(r,{marginLeft:2,flexDirection:"column"},Un.createElement(n,{dimColor:!0},"\u23BF interactive prompt"),...s.flatMap((a,c)=>[Un.createElement(n,{key:`q-${c}`,bold:!0},`${a.header?`${a.header}: `:""}${a.question}`),...a.options.map(d=>Un.createElement(n,{key:`q-${c}-opt-${d.number}`},` ${d.number}. ${d.text}${d.description?` \u2014 ${d.description}`:""}`)),...a.instructions?[Un.createElement(n,{key:`q-${c}-instructions`,dimColor:!0},` ${a.instructions}`)]:[]]))}let o=fL(t.entry.event);return Un.createElement(r,{marginLeft:2},Un.createElement(n,{dimColor:!0},"\u23BF "),Un.createElement(n,null,o))}var qn=E(require("react"));var wL={queued:"\u25CC",running:"\u25D0",PASS:"\u2713",REVISE:"\u270E",BLOCK:"\u2717"},vL={queued:"gray",running:"yellow",PASS:"green",REVISE:"yellow",BLOCK:"red"};function IE(t){let{ink:e}=se(),{Box:r,Text:n}=e,i=t.entry.seats.length,o=t.entry.seats.filter(s=>s.status==="PASS"||s.status==="REVISE"||s.status==="BLOCK").length;return qn.createElement(r,{flexDirection:"column"},qn.createElement(n,null,qn.createElement(n,{color:"magenta"},"\u25CF "),`Reviewer quorum (${o}/${i} done): ${t.entry.quorumStatus}`),...t.entry.seats.map(s=>qn.createElement(r,{key:s.seatId,marginLeft:2},qn.createElement(n,{dimColor:!0},"\u23BF "),qn.createElement(n,null,`${s.seatId} ${s.reviewerKind.padEnd(7)} `),qn.createElement(n,{color:vL[s.status]},wL[s.status]),qn.createElement(n,null,` ${s.status}`))))}var ku=E(require("react"));function AE(t){let{ink:e}=se(),{Text:r}=e,n=t.entry.gate;return ku.createElement(r,null,ku.createElement(r,{color:"magenta"},"\u25CF "),ku.createElement(r,null,`Gate: ${n.gateKind} Status: ${n.status} Auto-revise: ${n.autoReviseRound}/${n.autoReviseCap}`))}var vc=E(require("react"));function PE(t){let{ink:e}=se(),{Box:r,Text:n}=e;return vc.createElement(r,{flexDirection:"column"},vc.createElement(n,{color:"cyan"},t.entry.command),vc.createElement(r,{marginLeft:2},vc.createElement(n,null,t.entry.output)))}var Su=E(require("react"));function TE(t){let{ink:e}=se(),{Text:r}=e,n=t.entry.source==="planner"?"magenta":"yellow";return Su.createElement(r,null,Su.createElement(r,{color:n},"\u25CF "),Su.createElement(r,{italic:!0},t.entry.text))}var Et=E(require("react"));var Or="orchestration_escalated_gate",to="orchestration_final_approval",nr="continuation_offer_handoff";var bL=["CLAUDE","CODEX","ANTIGRAVITY"],kL=["CLAUDE","CODEX","GEMINI","ANTIGRAVITY"];function OE(t,e){return t?.id==="CONTINUE_WITH"&&t.targetAgent===e}function DE(t){return t?.id==="CANCEL"&&!t.targetAgent}function xE(t){return t.length!==4?!1:bL.every((e,r)=>OE(t[r],e))&&DE(t[3])}function SL(t){return t.length!==5?!1:kL.every((e,r)=>OE(t[r],e))&&DE(t[4])}function EL(t){if(xE(t))return[...t];if(!SL(t))return null;let e=t.filter(r=>r.targetAgent!=="GEMINI");return xE(e)?e:null}function NE(t){if(t.type!=="INTERACTIVE_PROMPT")return null;let e=t.metadata,r=null;if(e&&typeof e=="object")r=e;else if(typeof e=="string")try{let ee=JSON.parse(e);ee&&typeof ee=="object"&&!Array.isArray(ee)&&(r=ee)}catch{return null}if(!r)return null;let n=r.prompt_kind;if(n!==Or&&n!==to&&n!==nr)return null;let i=n,o=r.payload;if(!o||typeof o!="object"||Array.isArray(o))return null;let s=o,a=s.taskId,c=s.gateId;if(typeof a!="string"||a.length===0||typeof c!="string"||c.length===0)return null;let d=s.decisionProtocolVersion;if(d!==void 0&&d!==1&&d!==2)return null;let l=d??1,u=s.outcome;if(!u||typeof u!="object"||Array.isArray(u))return null;let p=u,h=p.round;if(typeof h!="number"||!Number.isFinite(h))return null;let y=s.options;if(!Array.isArray(y))return null;if(i===nr){if(y.length!==4&&y.length!==5)return null}else{let ee=i===Or?5:2;if(y.length!==ee)return null}let g=[];for(let ee of y){if(!ee||typeof ee!="object"||Array.isArray(ee))return null;let H=ee,W=H.id,ve=H.label,Q=H.description;if(typeof W!="string"||W.length===0||typeof ve!="string"||typeof Q!="string")return null;let D=H.targetAgent,Z=typeof D=="string"?D:void 0;g.push({id:W,label:ve,description:Q,...Z!==void 0?{targetAgent:Z}:{}})}if(i===nr){let ee=EL(g);if(!ee)return null;g=ee}let f=p.reason,w=typeof f=="string"?f:void 0,v=r.summary,b=typeof v=="string"?v:void 0,S=IL(r.timeline),R=AL(r.roundHistory),x=PL(r.verdictDetailsUnavailable),P=r.offerId,O=typeof P=="string"?P:void 0,C=r.sourceAgent,T=typeof C=="string"?C:void 0,V=r.packetHash,X=typeof V=="string"?V:void 0,L=s.taskGroupId,Re=s.groupGeneration,Ne;if(L!==void 0||Re!==void 0){if(i!==Or||typeof L!="string"||L.length===0||typeof Re!="number"||!Number.isSafeInteger(Re)||Re<1)return null;Ne={taskGroupId:L,groupGeneration:Re,protocolVersion:2}}let $=typeof t.timestamp=="string"?t.timestamp:"";return{promptKind:i,decisionProtocolVersion:l,taskId:a,gateId:c,currentRound:h,options:g,reason:w,summary:b,receivedAt:$,...S?{timeline:S}:{},...R?{roundHistory:R}:{},...x?{verdictDetails:x}:{},...O!==void 0?{offerId:O}:{},...T!==void 0?{sourceAgent:T}:{},...X!==void 0?{packetHash:X}:{},...Ne?{groupEscalation:Ne}:{}}}var RL=[{id:"ACCEPT",label:"Accept",description:"Keep every applied track as-is."},{id:"ACCEPT_WITH_NOTES",label:"Accept with notes",description:"Keep the applied tracks and attach a note."},{id:"REJECT_WITH_NOTES",label:"Reject with notes",description:"Revert every applied track and attach a note."},{id:"REJECT_RESTART",label:"Reject and restart",description:"Revert every applied track and re-run the whole team."},{id:"ABORT_TASK",label:"Abort",description:"Revert every applied track and stop."}];function ME(t){return{promptKind:Or,taskId:`group:${t.taskGroupId}`,gateId:`group-escalation:${t.taskGroupId}`,currentRound:0,options:RL,...t.haltReason?{reason:t.haltReason}:{},receivedAt:t.receivedAt??"",groupEscalation:{taskGroupId:t.taskGroupId,protocolVersion:1}}}function IL(t){if(!Array.isArray(t))return;let e=[];for(let r of t){if(!r||typeof r!="object"||Array.isArray(r))continue;let n=r,i=n.at,o=n.kind;typeof i!="string"||typeof o!="string"||e.push({at:i,kind:o})}return e.length>0?e:void 0}function AL(t){if(!Array.isArray(t))return;let e=[];for(let r of t){if(!r||typeof r!="object"||Array.isArray(r))continue;let n=r,i=n.round,o=n.kind,s=n.reason;typeof i!="number"||!Number.isFinite(i)||typeof o!="string"||typeof s!="string"||e.push({round:i,kind:o,reason:s})}return e.length>0?e:void 0}function PL(t){if(!(typeof t!="string"||t.length===0))return t==="size"?{status:"unavailable",reason:"size"}:t==="encryption_error"?{status:"unavailable",reason:"encryption_error"}:{status:"unavailable",reason:"unavailable_other"}}function LE(t,e){if(typeof e!="number"||!Number.isInteger(e)||e<1||e>t.options.length)return null;let r=t.options[e-1];if(!r||typeof r.id!="string"||r.id.length===0)return null;let n=r.id.toLowerCase(),i=n.endsWith("_with_notes");return n==="continue_with"?{kind:n,needsNotes:!1,targetAgent:r.targetAgent}:{kind:n,needsNotes:i}}var TL={consensus_reject:{label:"Reviewers rejected",explanation:"The review panel agreed to reject this implementation."},consensus_disagreement:{label:"Reviewers disagreed",explanation:"The reviewers couldn't reach consensus and escalated the decision to you."},reviewer_requested_escalation:{label:"Reviewer escalated",explanation:"A reviewer explicitly asked for your decision on this change."},rounds_exhausted:{label:"Revision limit reached",explanation:"The automatic revision limit was reached without consensus."},tier_disallows_auto_revise:{label:"Auto-revise unavailable",explanation:"Your plan doesn't include automatic revision rounds, so this is escalated to you."},reviewer_error:{label:"Reviewer error",explanation:"A reviewer failed to complete, so the gate was escalated for your decision."},blocked_by_review:{label:"Blocked by review",explanation:"Review found blocking issues that need your decision."},auto_revise_cap_exhausted:{label:"Revision limit reached",explanation:"The automatic revision budget was exhausted."},insufficient_quorum:{label:"Not enough reviewers",explanation:"Too few reviewers responded to decide automatically."},policy_resolution_failed:{label:"Policy check failed",explanation:"The orchestration policy couldn't resolve this gate automatically."},policy_no_progress:{label:"No progress detected",explanation:"Successive revision rounds stopped making progress."},policy_repeated_finding:{label:"Repeated issue",explanation:"The same issue recurred across rounds."},policy_reviewer_conflict:{label:"Reviewer conflict",explanation:"Reviewers produced conflicting verdicts policy couldn't reconcile."},policy_risk_stopped:{label:"Stopped for safety",explanation:"A potentially risky action was detected and stopped for your review."},parser_uncertain:{label:"Couldn't parse proposal",explanation:"The agent's output couldn't be confidently parsed as a proposal."},final_approval:{label:"Final approval",explanation:"The work is complete and awaiting your final approval."}},ng={APPROVE:"Approved",REJECT:"Rejected",REVISE:"Requested changes",ESCALATE:"Escalated"};function As(t){if(!t)return null;let e=TL[t];return e?{label:e.label,explanation:e.explanation}:{label:t,explanation:null}}function rg(t){return ng[t]??t}function xL(t){if(!t||typeof t!="object"||Array.isArray(t))return{status:"unavailable",reason:"decrypt_failed"};let e=t,r=e.reviewers;if(!Array.isArray(r))return{status:"unavailable",reason:"decrypt_failed"};let n=[];for(let o of r){if(!o||typeof o!="object"||Array.isArray(o))continue;let s=o,a=s.seatId;if(typeof a!="number"||!Number.isInteger(a))continue;let c=s.role;if(typeof c!="string"||c.length===0)continue;let d=s.reviewerAgent;if(typeof d!="string")continue;let l=s.decision;if(typeof l!="string")continue;let u=s.findings,p=Array.isArray(u)?u.filter(g=>typeof g=="string"):[],h=s.findingsTruncated===!0,y=typeof s.truncatedFindingCount=="number"&&Number.isFinite(s.truncatedFindingCount)?s.truncatedFindingCount:0;n.push({seatId:a,role:c,reviewerAgent:d,decision:l,findings:p,findingsTruncated:h,truncatedFindingCount:y})}if(n.length===0)return{status:"unavailable",reason:"decrypt_failed"};let i=e.findingsOmittedForSize===!0;return{status:"available",reviewers:n,findingsOmittedForSize:i}}function BE(t,e,r){let n=t.verdictDetails;if(!n||typeof n!="object"||Array.isArray(n))return;let i=n.encrypted;if(typeof i!="string"||i.length===0)return;let o;try{o=r(i,e)}catch{return{status:"unavailable",reason:"decrypt_failed"}}return xL(o)}function FE(t){let e=t.verdictDetails;if(!e||typeof e!="object"||Array.isArray(e))return!1;let r=e.encrypted;return typeof r=="string"&&r.length>0}var _E="Full review in the audit browser",_L="Reviewer details unavailable",CE="full review in the audit browser";function CL(t,e){return e>0?`(${e} more \u2014 ${CE})`:t?`(more \u2014 ${CE})`:null}function GE(t){let e=t.summary??null,r=As(t.reason),n=r?.label??null,i=r?.explanation??null,o=`Round ${t.currentRound}`,s=(t.timeline??[]).map(g=>({kind:g.kind,at:g.at})),a=OL(t.timeline),c=t.roundHistory??[],d=c.length>1?c.map(g=>({round:g.round,reasonLabel:As(g.reason)?.label??g.reason})):[],l=c.length>1&&c.some(g=>g.omittedEarlier===!0),u=[],p=null,h=null,y=t.verdictDetails;return y&&(y.status==="available"?(u=y.reviewers.map(g=>{let f=CL(g.findingsTruncated,g.truncatedFindingCount);return{seatId:g.seatId,role:g.role,reviewerAgent:g.reviewerAgent,header:`Reviewer ${g.seatId} (${g.role}, ${g.reviewerAgent}): ${rg(g.decision)}`,findings:g.findings,truncationHint:f}}),y.findingsOmittedForSize&&(p=_E)):(h=_L,y.reason==="size"&&(p=_E))),{headline:e,reasonLabel:n,reasonExplanation:i,roundLabel:o,timeline:s,elapsedSeconds:a,cascade:d,cascadeOmittedEarlier:l,reviewers:u,panelTruncationHint:p,reviewerUnavailableLine:h}}function $E(t){if(!t||typeof t!="object")return null;let e=l=>typeof l=="number"&&Number.isFinite(l)?l:null,r=l=>Array.isArray(l)?l.filter(u=>typeof u=="string"):[],n=null;if(e(t.schemaVersion)===2&&t.requirements&&t.reviewQuorum&&t.mergeGate&&t.durations&&t.tokenUsage){let l=Array.isArray(t.reviewQuorum.seats)?t.reviewQuorum.seats:[],u=Array.isArray(t.implementors)?t.implementors:[],p=Array.isArray(t.tokenUsage.invocations)?t.tokenUsage.invocations:[];n={schemaVersion:2,requirements:{problem:typeof t.requirements.problem=="string"?t.requirements.problem:"",expectedOutputs:r(t.requirements.expectedOutputs)},implementors:u.filter(h=>!!h&&typeof h=="object").map(h=>({agent:typeof h.agent=="string"?h.agent:"unknown",trackIndex:e(h.trackIndex),taskId:typeof h.taskId=="string"?h.taskId:""})),reviewQuorum:{seats:l.filter(h=>!!h&&typeof h=="object").map(h=>({seatId:e(h.seatId)??-1,role:typeof h.role=="string"?h.role:"",agent:typeof h.agent=="string"?h.agent:""})),roundCount:e(t.reviewQuorum.roundCount)??0,revisionCount:e(t.reviewQuorum.revisionCount)??0},mergeGate:{applicable:t.mergeGate.applicable===!0,outcome:typeof t.mergeGate.outcome=="string"?t.mergeGate.outcome:"unavailable",resolution:typeof t.mergeGate.resolution=="string"?t.mergeGate.resolution:null},durations:{taskElapsedMs:e(t.durations.taskElapsedMs),reviewerElapsedMs:e(t.durations.reviewerElapsedMs),availability:typeof t.durations.availability=="string"?t.durations.availability:"unavailable"},tokenUsage:{knownTotal:e(t.tokenUsage.knownTotal),knownInput:e(t.tokenUsage.knownInput),knownOutput:e(t.tokenUsage.knownOutput),knownCachedInput:e(t.tokenUsage.knownCachedInput),availability:typeof t.tokenUsage.availability=="string"?t.tokenUsage.availability:"unavailable",unavailableRoles:r(t.tokenUsage.unavailableRoles),invocations:p.filter(h=>!!h&&typeof h=="object").map(h=>({role:typeof h.role=="string"?h.role:"unknown",agent:typeof h.agent=="string"?h.agent:"unknown",taskId:typeof h.taskId=="string"?h.taskId:null,trackIndex:e(h.trackIndex),round:e(h.round),gateId:typeof h.gateId=="string"?h.gateId:null,seatId:e(h.seatId),reviewerRole:typeof h.reviewerRole=="string"?h.reviewerRole:null,inputTokens:e(h.inputTokens),outputTokens:e(h.outputTokens),cachedInputTokens:e(h.cachedInputTokens),totalTokens:e(h.totalTokens),elapsedMs:e(h.elapsedMs),availability:typeof h.availability=="string"?h.availability:"unavailable",unavailableReason:typeof h.unavailableReason=="string"?h.unavailableReason:null}))},residualRisks:r(t.residualRisks)}}let i=Array.isArray(t.rounds)?t.rounds:[],o=[];for(let l of i){if(!l||typeof l!="object")continue;let u=typeof l.round=="number"&&Number.isFinite(l.round)?l.round:o.length,p=typeof l.proposal=="string"?l.proposal:"",h=typeof l.outcome=="string"?l.outcome:"",y=typeof l.reviseNotes=="string"&&l.reviseNotes.length>0?l.reviseNotes:null,g=[],f=Array.isArray(l.reviewers)?l.reviewers:[];for(let w of f){if(!w||typeof w!="object")continue;let v=typeof w.seatId=="number"&&Number.isInteger(w.seatId)?w.seatId:-1,b=typeof w.role=="string"?w.role:"",S=typeof w.agent=="string"?w.agent:"",R=typeof w.decision=="string"?w.decision:"",x=typeof w.reasoning=="string"?w.reasoning:"",P=Array.isArray(w.suggestedChanges)?w.suggestedChanges.filter(O=>typeof O=="string"):[];g.push({seatId:v,role:b,agent:S,header:`Reviewer ${v} (${b}, ${S}): ${rg(R)}`,decisionLabel:rg(R),reasoning:x,suggestedChanges:P})}o.push({round:u,roundLabel:`Round ${u}`,proposal:p,reviewers:g,outcome:h,reviseNotes:y})}if(o.length===0&&n===null)return null;let s=typeof t.finalOutcome=="string"?t.finalOutcome:"",a=typeof t.omittedRounds=="number"&&Number.isFinite(t.omittedRounds)?t.omittedRounds:0,c=t.truncatedForSize===!0,d=null;if(c||a>0){let l=[];a>0&&l.push(`${a} earlier round${a===1?"":"s"} omitted`),c&&l.push("some content truncated"),d=`Summary shortened to fit (${l.join("; ")} \u2014 full review in the audit browser)`}return{terminal:n,rounds:o,finalOutcome:s,truncationNotice:d}}function OL(t){if(!t||t.length===0)return null;let e=t.find(s=>s.kind==="gate_opened"),r=t.find(s=>s.kind==="gate_resolved");if(!e||!r)return null;let n=Date.parse(e.at),i=Date.parse(r.at);if(Number.isNaN(n)||Number.isNaN(i))return null;let o=i-n;return o<0?null:Math.round(o/1e3)}function DL(t){return As(t)?.label??null}function NL(t){return t===Or?"Escalated review":t===to?"Final approval":t===nr?"Continue with which agent?":t}function ML(t){switch(t.phase){case"awaiting-number":return{text:"awaiting your response",color:"cyan"};case"awaiting-notes":return{text:"Notes mode: type your notes + Enter",color:"cyan"};case"submitting":return{text:"submitting\u2026",color:"yellow"};case"confirming":return{text:"Confirming decision\u2026",color:"yellow"};case"claimed":return{text:"Decision accepted; awaiting result",color:"yellow"};case"resolved":return t.resolvedBy==="server"?{text:t.serverDecision?`Already resolved on server \u2014 ${t.serverDecision}`:"Already resolved on server",color:"yellow"}:t.resolvedBy==="durable"?{text:`Resolved \u2014 ${t.resolution.label}`,color:"green"}:{text:`Resolved \u2014 ${t.postAction.kind}`,color:"green"};default:{let e=t;return{text:"",color:"white"}}}}function HE(t,e){return e<=0?"":t.length<=e?t:e===1?"\u2026":`${t.slice(0,e-1)}\u2026`}var LL=6;function WE(t){let{ink:e}=se(),{Box:r,Text:n}=e,{entry:i,trackLabel:o}=t,{envelope:s,uiState:a,queue:c}=i,d=e.useStdout().stdout,l=d&&typeof d.columns=="number"&&d.columns||80,p=s.promptKind===Or?DL(s.reason):null,h=NL(s.promptKind),y=t.gateActionRecoveryBlocked&&a.phase!=="claimed"&&a.phase!=="resolved"?{text:"Gate actions unavailable while history reconnects",color:"yellow"}:ML(a),g=a.phase==="resolved",f=t.gateActionRecoveryBlocked===!0||a.phase==="claimed"||g,w=[Et.createElement(n,{key:"badge",color:"magenta",bold:!0},"[GATE] "),Et.createElement(n,{key:"kind",bold:!0},h)];if(o&&w.push(Et.createElement(n,{key:"track",dimColor:!0},` \xB7 ${o}`)),p){let b=7+h.length+(o?` \xB7 ${o}`.length:0)+3,S=HE(p,l-4-b);S.length>0&&w.push(Et.createElement(n,{key:"reason",color:"red"},` \u2014 ${S}`))}let v=[];return v.push(Et.createElement(r,{key:"header",flexDirection:"row"},...w)),v.push(Et.createElement(r,{key:"status",marginLeft:2,marginTop:0},Et.createElement(n,{color:y.color},y.text))),f||s.options.forEach((b,S)=>{let R=S+1,x=`${R}. ${b.label} \u2014 `.length,P=HE(b.description,l-LL-x),O=[Et.createElement(n,{key:"num",color:"cyan",bold:!0},`${R}. `),Et.createElement(n,{key:"label",bold:!0},b.label)];P.length>0&&O.push(Et.createElement(n,{key:"desc",dimColor:!0},` \u2014 ${P}`)),v.push(Et.createElement(r,{key:`opt-${S}`,marginLeft:2,flexDirection:"row"},...O))}),c.length>0&&v.push(Et.createElement(r,{key:"queue",marginLeft:2},Et.createElement(n,{dimColor:!0},`(+${c.length} more queued)`))),a.phase==="awaiting-number"&&!t.gateActionRecoveryBlocked&&v.push(Et.createElement(r,{key:"reply-hint",marginLeft:2},Et.createElement(n,{dimColor:!0},"Reply with a number \xB7 \u2191 review details above"))),Et.createElement(r,{flexDirection:"column",borderStyle:"round",borderColor:g?"green":"yellow",paddingX:1},...v)}var wr=E(require("react"));var N=E(require("react"));function UE(t){if(t===null)return"Unavailable";let e=Math.max(0,Math.round(t/1e3));if(e<60)return`${e}s`;let r=Math.floor(e/60),n=e%60;return n===0?`${r}m`:`${r}m ${n}s`}function BL(t){switch(t){case"gate_opened":return"Gate opened";case"verdicts_collected":return"Verdicts collected";case"gate_resolved":return"Gate resolved";default:return t}}function qE(t){let{ink:e}=se(),{Box:r,Text:n}=e,i=GE(t.envelope);if(!(i.headline!==null||i.reasonLabel!==null||i.timeline.length>0||i.cascade.length>0||i.reviewers.length>0||i.reviewerUnavailableLine!==null))return null;let s=[];if(i.headline&&s.push(N.createElement(r,{key:"headline",flexDirection:"row"},N.createElement(n,{color:"cyan",bold:!0},"\u256D "),N.createElement(n,{bold:!0},i.headline))),i.reasonLabel){let a=[N.createElement(n,{key:"reason-label",color:"yellow"},i.reasonLabel)];a.push(N.createElement(n,{key:"round",dimColor:!0},` \xB7 ${i.roundLabel}`)),s.push(N.createElement(r,{key:"reason",marginLeft:2,flexDirection:"row"},...a))}else s.push(N.createElement(r,{key:"round-only",marginLeft:2},N.createElement(n,{dimColor:!0},i.roundLabel)));if(i.reasonExplanation&&s.push(N.createElement(r,{key:"reason-explanation",marginLeft:2},N.createElement(n,{dimColor:!0,italic:!0},i.reasonExplanation))),i.timeline.length>0){let c=i.timeline.map(d=>BL(d.kind)).join(" \u2192 ");i.elapsedSeconds!==null&&(c+=` (${i.elapsedSeconds}s)`),s.push(N.createElement(r,{key:"timeline",marginLeft:2},N.createElement(n,{dimColor:!0},c)))}return i.cascade.length>0&&(s.push(N.createElement(r,{key:"cascade-header",marginLeft:2},N.createElement(n,{dimColor:!0,bold:!0},"Prior rounds:"))),i.cascadeOmittedEarlier&&s.push(N.createElement(r,{key:"cascade-omitted",marginLeft:4},N.createElement(n,{dimColor:!0,italic:!0},"\u2026 earlier rounds omitted"))),i.cascade.forEach((a,c)=>{s.push(N.createElement(r,{key:`cascade-${c}`,marginLeft:4},N.createElement(n,{dimColor:!0},`Round ${a.round}: ${a.reasonLabel}`)))})),i.reviewers.length>0&&(s.push(N.createElement(r,{key:"reviewers-header",marginLeft:2},N.createElement(n,{bold:!0,color:"magenta"},"Reviewers:"))),i.reviewers.forEach((a,c)=>{s.push(N.createElement(r,{key:`reviewer-${c}`,marginLeft:4},N.createElement(n,{bold:!0},a.header))),a.findings.forEach((d,l)=>{s.push(N.createElement(r,{key:`reviewer-${c}-finding-${l}`,marginLeft:6,flexDirection:"row"},N.createElement(n,{dimColor:!0},"\u2022 "),N.createElement(n,{dimColor:!0},d)))}),a.truncationHint&&s.push(N.createElement(r,{key:`reviewer-${c}-trunc`,marginLeft:6},N.createElement(n,{dimColor:!0,italic:!0},a.truncationHint)))})),i.panelTruncationHint&&s.push(N.createElement(r,{key:"panel-trunc",marginLeft:2},N.createElement(n,{dimColor:!0,italic:!0},i.panelTruncationHint))),i.reviewerUnavailableLine&&s.push(N.createElement(r,{key:"reviewer-unavailable",marginLeft:2},N.createElement(n,{dimColor:!0,italic:!0},i.reviewerUnavailableLine))),N.createElement(r,{flexDirection:"column"},...s)}function KE(t){let{ink:e}=se(),{Box:r,Text:n}=e;if(t.rounds.length===0&&t.terminal===null)return null;let i=[];i.push(N.createElement(r,{key:"review-summary-header",marginLeft:2,marginTop:1},N.createElement(n,{bold:!0,color:"cyan"},"Review summary")));{let o=t.terminal;if(o){i.push(N.createElement(r,{key:"rs-requirements",marginLeft:2,marginTop:1},N.createElement(n,{bold:!0},"Requirements"))),o.requirements.problem&&i.push(N.createElement(r,{key:"rs-requirements-problem",marginLeft:4},N.createElement(n,{dimColor:!0},o.requirements.problem))),o.requirements.expectedOutputs.forEach((d,l)=>{i.push(N.createElement(r,{key:`rs-output-${l}`,marginLeft:4},N.createElement(n,{dimColor:!0},`\u2022 ${d}`)))}),i.push(N.createElement(r,{key:"rs-implementors",marginLeft:2,marginTop:1},N.createElement(n,{bold:!0},"Implementors"))),o.implementors.forEach((d,l)=>{let u=d.trackIndex===null?"":` \xB7 Track ${Cr(d.trackIndex)}`;i.push(N.createElement(r,{key:`rs-implementor-${l}`,marginLeft:4},N.createElement(n,{dimColor:!0},`${d.agent}${u}`)))}),o.implementors.length===0&&i.push(N.createElement(r,{key:"rs-implementors-empty",marginLeft:4},N.createElement(n,{dimColor:!0},"Unavailable")));let s=o.reviewQuorum.seats.map(d=>`${d.agent} (${d.role})`).join(", ");i.push(N.createElement(r,{key:"rs-quorum",marginLeft:2,marginTop:1},N.createElement(n,{bold:!0},"Review quorum")),N.createElement(r,{key:"rs-quorum-detail",marginLeft:4},N.createElement(n,{dimColor:!0},`${s||"Unavailable"} \xB7 ${o.reviewQuorum.roundCount} round${o.reviewQuorum.roundCount===1?"":"s"} \xB7 ${o.reviewQuorum.revisionCount} revision${o.reviewQuorum.revisionCount===1?"":"s"}`))),i.push(N.createElement(r,{key:"rs-merge",marginLeft:2,marginTop:1},N.createElement(n,{bold:!0},"Merge gate")),N.createElement(r,{key:"rs-merge-detail",marginLeft:4},N.createElement(n,{dimColor:!0},o.mergeGate.applicable?`${o.mergeGate.outcome}${o.mergeGate.resolution?` \xB7 ${o.mergeGate.resolution}`:""}`:"Not applicable"))),i.push(N.createElement(r,{key:"rs-duration",marginLeft:2,marginTop:1},N.createElement(n,{bold:!0},"Duration")),N.createElement(r,{key:"rs-duration-detail",marginLeft:4},N.createElement(n,{dimColor:!0},`Task ${UE(o.durations.taskElapsedMs)} \xB7 Reviewers ${UE(o.durations.reviewerElapsedMs)} \xB7 ${o.durations.availability}`)));let a=o.tokenUsage.unavailableRoles.length?` \xB7 unavailable: ${o.tokenUsage.unavailableRoles.join(", ")}`:"",c=[o.tokenUsage.knownInput!==null?`${o.tokenUsage.knownInput.toLocaleString()} input`:null,o.tokenUsage.knownOutput!==null?`${o.tokenUsage.knownOutput.toLocaleString()} output`:null,o.tokenUsage.knownCachedInput!==null?`${o.tokenUsage.knownCachedInput.toLocaleString()} cached`:null].filter(d=>d!==null).join(" \xB7 ");i.push(N.createElement(r,{key:"rs-tokens",marginLeft:2,marginTop:1},N.createElement(n,{bold:!0},"Token usage")),N.createElement(r,{key:"rs-tokens-detail",marginLeft:4},N.createElement(n,{dimColor:!0},`${o.tokenUsage.knownTotal?.toLocaleString()??"Unavailable"} known \xB7 ${o.tokenUsage.availability}${c?` \xB7 ${c}`:""}${a}`)));for(let[d,l]of o.tokenUsage.invocations.entries()){let u=l.role==="reviewer"?`r${l.round??"?"} seat ${l.seatId??"?"}`:l.round!==null?`r${l.round}`:l.role,p=[l.inputTokens!==null?`${l.inputTokens.toLocaleString()} input`:null,l.outputTokens!==null?`${l.outputTokens.toLocaleString()} output`:null,l.cachedInputTokens!==null?`cached ${l.cachedInputTokens.toLocaleString()}`:null].filter(y=>y!==null).join(" \xB7 "),h=l.totalTokens!==null?`${l.totalTokens.toLocaleString()} tokens${p?` \xB7 ${p}`:""}`:p?`partial \xB7 ${p}`:"unavailable tokens";i.push(N.createElement(r,{key:`rs-tokens-row-${d}`,marginLeft:4},N.createElement(n,{dimColor:!0},`${u}: ${l.agent} ${l.role} \xB7 ${h} \xB7 ${l.availability}`)))}i.push(N.createElement(r,{key:"rs-risks",marginLeft:2,marginTop:1},N.createElement(n,{bold:!0},"Residual risks"))),o.residualRisks.length===0?i.push(N.createElement(r,{key:"rs-risks-none",marginLeft:4},N.createElement(n,{dimColor:!0},"None reported"))):o.residualRisks.forEach((d,l)=>{i.push(N.createElement(r,{key:`rs-risk-${l}`,marginLeft:4},N.createElement(n,{dimColor:!0},`\u2022 ${d}`)))})}t.truncationNotice&&i.push(N.createElement(r,{key:"review-summary-trunc",marginLeft:2},N.createElement(n,{dimColor:!0,italic:!0},t.truncationNotice))),t.rounds.forEach((s,a)=>{i.push(N.createElement(r,{key:`rs-round-${a}`,marginLeft:2,marginTop:a>0?1:0},N.createElement(n,{bold:!0},`${s.roundLabel}${s.outcome?` \u2014 ${s.outcome}`:""}`))),s.proposal&&i.push(N.createElement(r,{key:`rs-round-${a}-proposal`,marginLeft:4},N.createElement(n,{dimColor:!0},s.proposal))),s.reviewers.forEach((c,d)=>{i.push(N.createElement(r,{key:`rs-round-${a}-seat-${d}`,marginLeft:4},N.createElement(n,{bold:!0},c.header))),c.reasoning&&i.push(N.createElement(r,{key:`rs-round-${a}-seat-${d}-reasoning`,marginLeft:6},N.createElement(n,{dimColor:!0},c.reasoning))),c.suggestedChanges.forEach((l,u)=>{i.push(N.createElement(r,{key:`rs-round-${a}-seat-${d}-change-${u}`,marginLeft:6,flexDirection:"row"},N.createElement(n,{dimColor:!0},"\u2022 "),N.createElement(n,{dimColor:!0},l)))})}),s.reviseNotes&&i.push(N.createElement(r,{key:`rs-round-${a}-revise`,marginLeft:4},N.createElement(n,{color:"yellow"},`Revise notes: ${s.reviseNotes}`)))})}return N.createElement(r,{flexDirection:"column"},...i)}function FL(t){return As(t)?.label??null}function GL(t){return t===Or?"Escalated review":t===to?"Final approval":t===nr?"Continue with which agent?":t}function $L(t){let{ink:e}=se(),{Box:r,Text:n}=e,o=t.promptKind===Or?FL(t.reason):null,s=GL(t.promptKind),a=[],c=qE({envelope:t});c&&a.push(wr.createElement(r,{key:"gate-details-panel",flexDirection:"column",marginBottom:0},c));let d=[wr.createElement(n,{key:"badge",color:"magenta",bold:!0},"[GATE] "),wr.createElement(n,{key:"kind"},s)];if(o&&d.push(wr.createElement(n,{key:"reason",color:"red"},` \u2014 ${o}`)),a.push(wr.createElement(r,{key:"header",flexDirection:"row"},...d)),t.promptKind===nr){let l=t.reason??"halted",u=t.sourceAgent?` \u2014 source: ${t.sourceAgent}`:"";a.push(wr.createElement(r,{key:"continuation-context",marginLeft:2},wr.createElement(n,{dimColor:!0},`Implementor halted (${l})${u}`))),t.packetHash&&a.push(wr.createElement(r,{key:"continuation-packet",marginLeft:2},wr.createElement(n,{dimColor:!0},`Packet ${t.packetHash.slice(0,8)}\u2026`)))}return t.summary&&a.push(wr.createElement(r,{key:"summary",marginLeft:2},wr.createElement(n,{dimColor:!0,italic:!0},t.summary))),wr.createElement(r,{flexDirection:"column"},...a)}function jE(t){let{panel:e}=t.entry;return e.variant==="prompt"?$L(e.envelope):KE(e.reviewSummary)}function ig(t,e,r){switch(t.kind){case"user-message":return Dr.createElement(bE,{entry:t});case"planner-decision":return Dr.createElement(kE,{entry:t});case"subagent-event":return Dr.createElement(RE,{entry:t});case"reviewer-status-node":return Dr.createElement(IE,{entry:t});case"gate-status-node":return Dr.createElement(AE,{entry:t});case"slash-output":return Dr.createElement(PE,{entry:t});case"advisory":return Dr.createElement(TE,{entry:t});case"gate-prompt":return Dr.createElement(WE,{entry:t,trackLabel:e?.get(t.envelope.taskId),gateActionRecoveryBlocked:r});case"gate-panel":return Dr.createElement(jE,{entry:t});default:{let n=t;throw new Error("Unknown conversation entry kind")}}}function VE(t){let{ink:e}=se(),{Box:r}=e;return Dr.createElement(r,{flexDirection:"column"},...t.entries.map(n=>Dr.createElement(r,{key:n.id,flexDirection:"column",marginBottom:0},ig(n,t.trackLabelByTaskId,t.gateActionRecoveryBlocked))))}var zE=E(require("os")),bc=E(require("react"));var HL=zE.homedir();function JE(t){let{ink:e}=se(),{Box:r,Text:n}=e,i=e.useStdout().stdout?.columns,o=t.columns??i??80,s=aE(t.plannerRuntimeKind,t.plannerLabel),{leftText:a,badgeText:c}=cE({cwd:t.cwd,tier:t.tier,homedir:HL,columns:o,badge:s});return bc.createElement(r,{flexDirection:"row",justifyContent:"space-between"},bc.createElement(n,{dimColor:!0},a),s&&c?bc.createElement(n,s.color?{color:s.color}:{dimColor:!0},c):bc.createElement(n,null,""))}var XE=["CLAUDE","CODEX","ANTIGRAVITY"],WL={CLAUDE:{name:"@claude",blurb:"ask Claude"},CODEX:{name:"@codex",blurb:"ask Codex"},ANTIGRAVITY:{name:"@agy",blurb:"ask Antigravity"}};function UL(t){let e=t.trim().toUpperCase();return XE.includes(e)?e:null}function QE(t=[]){let e=new Set(t.map(UL).filter(n=>n!==null)),r=XE.filter(n=>e.has(n)).map(n=>WL[n]);return[{name:"@all",blurb:r.length>0?"ask all available local agents":"ask all local agents"},...r]}function YE(t){return/\s/.test(t)}function ZE(t,e){return Math.max(0,Math.min(t,e.length))}function eR(t,e=t.length){let r=ZE(e,t),n=r;for(;n>0&&!YE(t[n-1]??"");)n-=1;let i=r;for(;i<t.length&&!YE(t[i]??"");)i+=1;let o=t.slice(n,r);return o.startsWith("@")?{start:n,end:i,prefix:o}:null}function og(t,e,r=t.length){let n=eR(t,r);if(!n)return[];let i=n.prefix.toLowerCase();return e.filter(o=>o.name.toLowerCase().startsWith(i))}function tR(t,e,r){let n=eR(t,e),i=`${r} `;if(!n){let c=ZE(e,t);return{value:t.slice(0,c)+i+t.slice(c),cursor:c+i.length}}let o=t.slice(n.end),s=o.startsWith(" ")?o.slice(1):o;return{value:t.slice(0,n.start)+i+s,cursor:n.start+i.length}}var nR=E(require("path")),rR={FREE:0,PRO:1,MAX:2};function qL(t,e){return!e||!t?!0:rR[t]>=rR[e]}function Ge(t,e,r){return{command:t,output:e,sideEffect:r}}var Eu=[{name:"/status",blurb:"Show the current task, who is working on it, and any pending approvals.",handler:()=>Ge("/status","PENDING \u2014 entrypoint pulls from store status")},{name:"/audit",blurb:"Review the full step-by-step history of a task (Max only).",minTier:"MAX",handler:()=>Ge("/audit","PENDING \u2014 entrypoint runs audit browser")},{name:"/flag",blurb:"Flag a bad quorum approval from the last /audit listing (Max only).",minTier:"MAX",handler:t=>t.length===0?Ge("/flag","Usage: /flag <entry-id> [note]. Flags a consensus-approve resolution from the most recent /audit listing as a bad approval. Run /audit <task-id> to list entry ids."):Ge("/flag","PENDING \u2014 entrypoint records bad-approval flag")},{name:"/continue",blurb:"Hand the current task to another agent, or accept a handoff.",handler:t=>{let e=t[0]??"help";return e==="request"||e==="accept"||e==="switch"?Ge("/continue","PENDING \u2014 entrypoint pulls from continuation reader"):Ge("/continue",["Usage: /continue <subcommand> [args]","","Subcommands:"," request [<target>] Hand off the active task to another agent."," accept <target> Resolve an active handoff prompt."].join(`
|
|
3746
3746
|
`))}},{name:"/reviewers",blurb:"Show your reviewer panel \u2014 who reviews your code, and how.",minTier:"PRO",handler:()=>Ge("/reviewers","PENDING \u2014 entrypoint renders reviewer panel")},{name:"/reviewer-setup",blurb:"Set up your reviewer panel \u2014 choose who reviews your code.",minTier:"PRO",handler:()=>Ge("/reviewer-setup","PENDING \u2014 entrypoint opens reviewer wizard")},{name:"/help",blurb:"Show this help text.",handler:()=>{let t=["Available commands:"];for(let e of Eu)t.push(` ${e.name.padEnd(22)} ${e.blurb}`);return Ge("/help",t.join(`
|
|
3747
3747
|
`))}},{name:"/cache-clear",blurb:"Clear CodeVibe\u2019s cached planning results for your account.",handler:()=>Ge("/cache-clear","PENDING \u2014 entrypoint flushes planner cache")},{name:"/continuation",blurb:"Manage task handoffs \u2014 check status, request one, or accept one.",handler:t=>{let e=t[0]??"help";return e==="help"?Ge("/continuation",["Usage: /continuation <subcommand> [args]","","Subcommands:"," status [task-id] List continuation packets (or show one)."," show <task-id> Render the full continuation packet."," verify <task-id> --hash <hex> Read packet + assert hash matches."," request [<target>] Hand off the active task to another agent."," accept <target> Resolve an active handoff prompt."," switch <target> Alias for accept."," help Show this help text."].join(`
|
|
3748
3748
|
`)):e==="status"||e==="show"||e==="verify"||e==="request"||e==="accept"||e==="switch"?Ge("/continuation","PENDING \u2014 entrypoint pulls from continuation reader"):Ge("/continuation",`Unknown subcommand: ${e}. Type "/continuation help" for available subcommands.`)}},{name:"/structural-summary",blurb:"Show or rebuild the codebase summary CodeVibe uses for context.",handler:t=>{if(t.includes("--regenerate"))return{command:"/structural-summary",output:"Regenerating structural summary...",sideEffect:{kind:"REGENERATE_STRUCTURAL_SUMMARY"}};if(t.includes("--include-bodies")){let e=t.indexOf("--include-bodies")+1,r=t[e];return r?nR.isAbsolute(r)?{command:"/structural-summary",output:`Opting into body inclusion for ${r}...`,sideEffect:{kind:"OPT_IN_BODY_PATH",path:r}}:Ge("/structural-summary",`Path must be absolute (got: ${r}). Example: /structural-summary --include-bodies /Users/me/Workspace/myrepo/src`):Ge("/structural-summary","Usage: /structural-summary --include-bodies <absolute-path>")}return Ge("/structural-summary","PENDING \u2014 entrypoint pulls from store.structuralSummary")}},{name:"/review-reset",blurb:"Start a fresh comprehensive baseline on the next review round (Pro/Max).",minTier:"PRO",handler:()=>Ge("/review-reset","PENDING \u2014 entrypoint arms comprehensive review")},{name:"/task",blurb:"Run an implementation request directly, skipping planning (Pro/Max).",minTier:"PRO",handler:t=>t.length===0?Ge("/task","Usage: /task [--agent codex|claude] <implementation-request>. Pro/Max only; runs without planner classification."):Ge("/task","PENDING \u2014 entrypoint drives startTask")},{name:"/team",blurb:"Run multiple independent tasks in parallel as an agent team (Max only).",minTier:"MAX",handler:t=>t.length===0?Ge("/team","Usage: /team <json-work-items>. Starts an Agent Teams group (\u22652 disjoint tracks). Max-tier orchestration sessions only."):Ge("/team","PENDING \u2014 entrypoint runs createTaskGroup")},{name:"/quit",blurb:"Exit CodeVibe shell.",handler:()=>Ge("/quit","Exiting CodeVibe.",{kind:"EXIT"})},{name:"/exit",blurb:"Exit the CodeVibe shell (same as quit).",handler:()=>Ge("/exit","Exiting CodeVibe.",{kind:"EXIT"})}],KL=new Set(["/quit","/exit"]);function Ru(t){return KL.has(t)}function sg(t){let e=t.trim();if(!e.startsWith("/"))throw new Error(`routeSlashCommand called with non-slash input: ${t}`);let[r,...n]=e.split(/\s+/);if(r==="/"){let o=Eu.find(s=>s.name==="/help");if(o)return o.handler([])}let i=Eu.find(o=>o.name===r);return i?i.handler(n):Ge(r,`Unknown command: ${r}. Type /help for available commands.`)}function iR(t){return Eu.filter(e=>qL(t,e.minTier)).map(e=>({name:e.name,blurb:e.blurb})).sort((e,r)=>e.name.localeCompare(r.name))}function ag(t){return{storeAction:{type:"SLASH_OUTPUT",command:t.command,output:t.output},exit:t.sideEffect?.kind==="EXIT"}}var gt=E(require("react"));function oR(t){return t==="abort_task"||t==="restart_proposal"}var Iu={none:"\u2014",pending:"MergeGatePending",pass:"Pass",fail:"Fail"};var jL=4,VL=450,zL={Pending:"gray",InFlight:"cyan",Passed:"green",Failed:"red",Revising:"yellow",AwaitingDecision:"magenta"},JL={none:"gray",pending:"yellow",pass:"green",fail:"red"};function sR(t){let{ink:e}=se(),{Box:r,Text:n}=e,{team:i}=t,o=e.useStdout()?.stdout,s=t.columns??o?.columns??80,a=i.mergeGate==="pending"&&i.mergeGateStartedAt!=null&&i.mergeGateElapsedMs==null&&!i.groupResolved&&i.haltReason==null,[,c]=gt.useState(0);gt.useEffect(()=>{if(!a)return;let S=setInterval(()=>c(R=>R+1&65535),VL);return()=>clearInterval(S)},[a]);let d=null;if(a){let S=Date.parse(i.mergeGateStartedAt);isNaN(S)||(d=pn(Date.now()-S))}else i.mergeGateElapsedMs!=null&&(d=pn(i.mergeGateElapsedMs));let l=[...i.tracks.keys()].sort((S,R)=>S-R),u=l.map(S=>{let R=i.tracks.get(S),x=[R.agent,R.taskId?St(R.taskId,12):null].filter(O=>O!=null),P=x.length>0?` (${x.join(", ")})`:"";return gt.createElement(r,{key:`track-${S}`,flexDirection:"row"},gt.createElement(n,{bold:!0},` Track ${Cr(S)} `),gt.createElement(n,{color:zL[R.state]},R.state),gt.createElement(n,{dimColor:!0},P))}),p=Math.max(0,s-jL),h=Iu[i.mergeGate],y=" MergeGate: ",g=d?` \xB7 ${d}`:"",f=`Agent Teams (${l.length} track${l.length===1?"":"s"})`,w=p-(y.length+h.length+g.length),v;w>0?v=gt.createElement(n,{key:"__header__"},gt.createElement(n,{bold:!0},St(f,w)),gt.createElement(n,{dimColor:!0},y),gt.createElement(n,{color:JL[i.mergeGate]},h),g?gt.createElement(n,{dimColor:!0},g):null):v=gt.createElement(n,{key:"__header__",dimColor:!0},St(`${y.trimStart()}${h}${g}`,p));let b=[v,...u];if(i.haltReason&&b.push(gt.createElement(n,{key:"__halt__",color:"red"},` Halted: ${i.haltReason}`)),i.groupResolved){let S=i.outcome==="complete";b.push(gt.createElement(n,{key:"__resolved__",color:S?"green":"red"},S?" Team complete":` Team halted \u2014 ${i.outcome??"unknown"}`))}return gt.createElement(r,{flexDirection:"column",borderStyle:"round",paddingX:1},...b)}var wi=E(require("react"));var YL=450,XL=2;function aR(t){let{ink:e}=se(),{Text:r}=e,n=t.progress!==null,[i,o]=wi.useState(!0);wi.useEffect(()=>{if(!n)return;o(!0);let S=setInterval(()=>o(R=>!R),YL);return()=>clearInterval(S)},[n]);let s=e.useStdout()?.stdout,a=t.columns??s?.columns??80;if(!t.progress)return null;let c=t.progress.startedAt,d=c?Date.parse(c):NaN,l=isNaN(d)?null:pn(Date.now()-d),u=t.progress.text,p=" \xB7 ",h=t.progress.tokens,y=h&&h>0?`\u2193 ${yu(h)}`:null,g=[l,y].filter(S=>S!==null),f=g.map(S=>`${p}${S}`).join(""),w=Math.max(0,a-XL),v,b=w-f.length;return b>0?v=`${St(u,b)}${f}`:v=St(g.join(p),w),wi.createElement(r,null,wi.createElement(r,i?{color:"cyan"}:{dimColor:!0},"\u25CF "),wi.createElement(r,{dimColor:!0},v))}var j=E(require("react")),PR=E(require("node:os"));var Rt=E(require("node:fs")),Kn=E(require("node:path")),dR=require("node:url"),kc=require("node:crypto");var ro=10*1024*1024,cg=8,ZL=[{mime:"image/png",ext:"png",test:t=>t.length>=8&&t[0]===137&&t[1]===80&&t[2]===78&&t[3]===71&&t[4]===13&&t[5]===10&&t[6]===26&&t[7]===10},{mime:"image/jpeg",ext:"jpg",test:t=>t.length>=3&&t[0]===255&&t[1]===216&&t[2]===255},{mime:"image/gif",ext:"gif",test:t=>t.length>=6&&t[0]===71&&t[1]===73&&t[2]===70&&t[3]===56&&(t[4]===55||t[4]===57)&&t[5]===97},{mime:"image/webp",ext:"webp",test:t=>t.length>=12&&t[0]===82&&t[1]===73&&t[2]===70&&t[3]===70&&t[8]===87&&t[9]===69&&t[10]===66&&t[11]===80},{mime:"image/bmp",ext:"bmp",test:t=>t.length>=2&&t[0]===66&&t[1]===77}];function lR(t){for(let e of ZL)if(e.test(t))return{mime:e.mime,ext:e.ext};return null}var eB=/\.(png|jpe?g|gif|webp|bmp)$/i;function tB(t,e){let r=t.trim(),n=!1;if((r.startsWith("'")&&r.endsWith("'")||r.startsWith('"')&&r.endsWith('"'))&&(r=r.slice(1,-1),n=!0),r.startsWith("file://"))try{return(0,dR.fileURLToPath)(r)}catch{}return n||(r=r.replace(/\\(.)/g,"$1")),rB(r,e)}function rB(t,e){return t==="~"?e:t.startsWith("~/")?Kn.join(e,t.slice(2)):t}function nB(t){let e=[],r=/'[^']*\.(?:png|jpe?g|gif|webp|bmp)'|"[^"]*\.(?:png|jpe?g|gif|webp|bmp)"/gi,n,i=t.split("");for(;(n=r.exec(t))!==null;){e.push({rawToken:n[0],index:n.index,len:n[0].length});for(let u=n.index;u<n.index+n[0].length;u++)i[u]=" "}let o=i.join(""),s=u=>u===" "||u===" "||u===`
|
|
@@ -8410,9 +8410,10 @@ function reduceSessionTaskTerminal(state, event) {
|
|
|
8410
8410
|
if (terminal === null) return state;
|
|
8411
8411
|
let taskId = "taskId" in event ? event.taskId : void 0;
|
|
8412
8412
|
if (!taskId) return state;
|
|
8413
|
-
let existing = state.sessionTasks.get(taskId), sessionTasks = new Map(state.sessionTasks);
|
|
8413
|
+
let runningTasks = new Map(state.runningTasks), evictedRunningTask = runningTasks.delete(taskId), existing = state.sessionTasks.get(taskId), sessionTasks = new Map(state.sessionTasks);
|
|
8414
8414
|
if (existing) {
|
|
8415
|
-
if (existing.origin !== "single" || existing.status !== "running")
|
|
8415
|
+
if (existing.origin !== "single" || existing.status !== "running")
|
|
8416
|
+
return evictedRunningTask ? { ...state, runningTasks } : state;
|
|
8416
8417
|
sessionTasks.set(taskId, { ...existing, status: terminal });
|
|
8417
8418
|
} else
|
|
8418
8419
|
sessionTasks.set(taskId, {
|
|
@@ -8421,7 +8422,7 @@ function reduceSessionTaskTerminal(state, event) {
|
|
|
8421
8422
|
status: terminal,
|
|
8422
8423
|
startedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
8423
8424
|
});
|
|
8424
|
-
return { ...state, sessionTasks };
|
|
8425
|
+
return { ...state, runningTasks, sessionTasks };
|
|
8425
8426
|
}
|
|
8426
8427
|
var REVIEWER_STATUS_PHASES = /* @__PURE__ */ new Set([
|
|
8427
8428
|
"reviewers_dispatched",
|
|
@@ -8724,9 +8725,9 @@ function reduceClarificationAnswered(state, answer) {
|
|
|
8724
8725
|
};
|
|
8725
8726
|
}
|
|
8726
8727
|
function reduceTaskLifecycle(state, task) {
|
|
8727
|
-
let next = new Map(state.runningTasks);
|
|
8728
|
-
|
|
8729
|
-
let history = new Map(state.sessionTasks)
|
|
8728
|
+
let existing = state.sessionTasks.get(task.taskId), existingIsTerminal = existing?.origin === "single" && (existing.status === "completed" || existing.status === "cancelled" || existing.status === "failed"), incomingIsTerminal = task.status === "completed" || task.status === "cancelled" || task.status === "failed", next = new Map(state.runningTasks);
|
|
8729
|
+
incomingIsTerminal || existingIsTerminal && !incomingIsTerminal ? next.delete(task.taskId) : next.set(task.taskId, task);
|
|
8730
|
+
let history = new Map(state.sessionTasks);
|
|
8730
8731
|
return history.set(task.taskId, {
|
|
8731
8732
|
taskId: task.taskId,
|
|
8732
8733
|
agentKind: task.agentKind,
|
|
@@ -53393,12 +53394,17 @@ var QuorumLoop = class _QuorumLoop {
|
|
|
53393
53394
|
err: err.message
|
|
53394
53395
|
});
|
|
53395
53396
|
let reason = classifyImplementorRoundFailure(err);
|
|
53396
|
-
this.surfaceHalt(`The task could not proceed \u2014 ${reason}.`)
|
|
53397
|
-
{ phase: "round_failed", round: args.roundNumber, reason, taskId: args.taskId },
|
|
53398
|
-
originEpoch
|
|
53399
|
-
);
|
|
53397
|
+
this.surfaceHalt(`The task could not proceed \u2014 ${reason}.`);
|
|
53400
53398
|
let reviseFeedbackId = args.reviseFeedbackId, preserveResetForRetry = submissionStarted && args.reviewScopeReset === !0 && reviseFeedbackId !== void 0 && this.reviewScopeResetTasks.has(args.taskId);
|
|
53401
|
-
|
|
53399
|
+
this.emitProgress(
|
|
53400
|
+
{
|
|
53401
|
+
phase: "round_failed",
|
|
53402
|
+
round: args.roundNumber,
|
|
53403
|
+
reason,
|
|
53404
|
+
...preserveResetForRetry ? {} : { taskId: args.taskId }
|
|
53405
|
+
},
|
|
53406
|
+
originEpoch
|
|
53407
|
+
), preserveResetForRetry && this.seenReviseFeedbackIds.delete(reviseFeedbackId), await this.discardShadow(args.taskId, void 0, {
|
|
53402
53408
|
preserveReviseContext: preserveResetForRetry
|
|
53403
53409
|
});
|
|
53404
53410
|
} finally {
|
|
@@ -8,10 +8,9 @@ export declare const CONVERSATION_BUFFER_MAX = 500;
|
|
|
8
8
|
export declare function reducer(state: OrchestrationState, action: OrchestrationAction): OrchestrationState;
|
|
9
9
|
/**
|
|
10
10
|
* P10 E3 r6/r8 — "is a single-implementor task actually running?" from the
|
|
11
|
-
* TRUTHFUL `sessionTasks` lifecycle
|
|
12
|
-
* `
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* SET guard below.
|
|
11
|
+
* TRUTHFUL `sessionTasks` lifecycle. Shared by the `/status` running line,
|
|
12
|
+
* `deriveCurrentTaskState` (the planner packet), and the reviewer-line SET
|
|
13
|
+
* guard below. `runningTasks` is terminalized in parallel for its independent
|
|
14
|
+
* task-start size heuristic.
|
|
16
15
|
*/
|
|
17
16
|
export declare function hasRunningSingleTask(state: OrchestrationState): boolean;
|
|
@@ -332,7 +332,7 @@ endif
|
|
|
332
332
|
|
|
333
333
|
quiet_cmd_regen_makefile = ACTION Regenerating $@
|
|
334
334
|
cmd_regen_makefile = cd $(srcdir); /opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py -fmake --ignore-environment "-Dlibrary=shared_library" "-Dvisibility=default" "-Dnode_root_dir=/Users/hendryyeh/Library/Caches/node-gyp/24.4.0" "-Dnode_gyp_dir=/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp" "-Dnode_lib_file=/Users/hendryyeh/Library/Caches/node-gyp/24.4.0/<(target_arch)/node.lib" "-Dmodule_root_dir=/Users/hendryyeh/Workspace/CodeVibe/codevibe-claude-plugin/node_modules/fs-ext" "-Dnode_engine=v8" "--depth=." "-Goutput_dir=." "--generator-output=build" -I/Users/hendryyeh/Workspace/CodeVibe/codevibe-claude-plugin/node_modules/fs-ext/build/config.gypi -I/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/addon.gypi -I/Users/hendryyeh/Library/Caches/node-gyp/24.4.0/include/node/common.gypi "--toplevel-dir=." binding.gyp
|
|
335
|
-
Makefile: $(srcdir)
|
|
335
|
+
Makefile: $(srcdir)/../../../../../Library/Caches/node-gyp/24.4.0/include/node/common.gypi $(srcdir)/../../../../../../../opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/addon.gypi $(srcdir)/build/config.gypi $(srcdir)/binding.gyp
|
|
336
336
|
$(call do_cmd,regen_makefile)
|
|
337
337
|
|
|
338
338
|
# "all" is a concatenation of the "all" targets from all the included
|
|
Binary file
|
|
@@ -489,7 +489,6 @@
|
|
|
489
489
|
"nodedir": "/Users/hendryyeh/Library/Caches/node-gyp/24.4.0",
|
|
490
490
|
"python": "/opt/homebrew/opt/python@3.14/bin/python3.14",
|
|
491
491
|
"standalone_static_library": 1,
|
|
492
|
-
"audit": "",
|
|
493
492
|
"global_prefix": "/opt/homebrew",
|
|
494
493
|
"local_prefix": "/Users/hendryyeh/Workspace/CodeVibe/codevibe-claude-plugin",
|
|
495
494
|
"globalconfig": "/opt/homebrew/etc/npmrc",
|
|
@@ -498,7 +497,6 @@
|
|
|
498
497
|
"npm_version": "11.4.2",
|
|
499
498
|
"node_gyp": "/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",
|
|
500
499
|
"cache": "/Users/hendryyeh/.npm",
|
|
501
|
-
"fund": "",
|
|
502
500
|
"user_agent": "npm/11.4.2 node/v24.4.0 darwin arm64 workspaces/false",
|
|
503
501
|
"prefix": "/opt/homebrew"
|
|
504
502
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quantiya/codevibe-claude-plugin",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.22",
|
|
4
4
|
"description": "Control Claude Code from your iPhone and Android — real-time sync, approve file edits, send prompts by voice. Part of CodeVibe.",
|
|
5
5
|
"main": "dist/server.js",
|
|
6
6
|
"codevibe": {
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"node": ">=22.0.0"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@quantiya/codevibe-core": "2.0.
|
|
51
|
+
"@quantiya/codevibe-core": "2.0.18",
|
|
52
52
|
"@quantiya/quorum-core": "^1.0.1",
|
|
53
53
|
"dotenv": "^16.6.1",
|
|
54
54
|
"express": "^5.1.0",
|