@tryarcanist/cli 0.1.398 → 0.1.399

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.
Files changed (2) hide show
  1. package/dist/index.js +2 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import { createRequire as __arcanistCreateRequire } from "node:module";
3
3
  const require = __arcanistCreateRequire(import.meta.url);
4
4
  var Pb=Object.defineProperty;var He=(e,t)=>{for(var r in t)Pb(e,r,{get:t[r],enumerable:!0})};import{Command as yP,Option as bP}from"commander";var nm=["idle","running","review_starting","waiting_for_input","finalizing","review_listening","completed","superseded","needs_you","blocked","failed","stopped","archived"];var Zt=["completed","superseded","needs_you","blocked","failed","stopped","archived"],Rb=new Set(Zt),AP=new Set(Zt.filter(e=>e!=="completed")),PP=new Set(Zt.filter(e=>e!=="stopped")),RP=Zt.filter(e=>e!=="archived"&&e!=="needs_you"&&e!=="blocked"&&e!=="stopped");function rm(e,t){return Rb.has(e)}function im(e){let t=e.createHelp().visibleGlobalOptions(e).map(am);return{...om(e),...t.length>0?{globalOptions:t}:{}}}function om(e){let t=Cb(e);return{path:Ua(e),description:e.description(),aliases:e.aliases(),arguments:e.registeredArguments.map(r=>({name:r.name(),description:r.description,required:r.required,variadic:r.variadic})),options:e.createHelp().visibleOptions(e).map(am),...t?{notes:t}:{},subcommands:e.commands.map(om)}}function am(e){return{flags:e.flags,description:e.description,required:e.mandatory,...e.defaultValue===void 0?{}:{defaultValue:e.defaultValue}}}function Ua(e){let t=[];for(let r=e;r;r=r.parent)t.unshift(r.name());return t.join(" ")}function Cb(e){let t="";return e.emit("afterHelp",{error:!1,command:e,write:r=>t+=r}),t.trim()}import{existsSync as bS,mkdirSync as SS,writeFileSync as wS}from"node:fs";import{basename as xS,join as Tm,resolve as $S}from"node:path";var Ob="en-US";function sm(e,t){let r=new Intl.DateTimeFormat(Ob,{timeZone:t,month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0,timeZoneName:"short"}).formatToParts(e),o=n=>r.find(i=>i.type===n)?.value??"";return`${o("month")} ${o("day")}, ${o("year")}, ${o("hour")}:${o("minute")} ${o("dayPeriod")} ${o("timeZoneName")}`}function Ie(e,t=""){return(e instanceof Error?e.message:String(e))||t}function Qr(e){return new Promise(t=>setTimeout(t,e))}function um(e,t){return new Promise(r=>{let o=!1,n=()=>{o||(o=!0,clearTimeout(i),t?.removeEventListener("abort",n),r())},i=setTimeout(()=>{o=!0,t?.removeEventListener("abort",n),r()},e);if(t?.aborted){clearTimeout(i),o=!0,r();return}t?.addEventListener("abort",n)})}var zb=.2,Ub=new Set([408,429,500,502,503,504]);function Lb(e){let{retry:t,baseMs:r,maxMs:o=Number.POSITIVE_INFINITY,jitter:n,random:i=Math.random}=e,a=n[0]+i()*(n[1]-n[0]);return Math.min(o,Math.max(0,Math.round(r*2**Math.max(0,t-1)*a)))}function jb(e,t){let r=t?.includeDefaults!==!1&&Ub.has(e)||t?.includeServerErrors===!0&&e>=500;return t?.remove?.includes(e)?!1:r||t?.add?.includes(e)===!0}var La=class extends Error{constructor(t="Provider retry aborted"){super(t),this.name="ProviderRetryAbortError"}};function Mb(e){if(!(!e||typeof e!="object"||!("status"in e)))return typeof e.status=="number"?e.status:void 0}function Zb(e){if(!e||typeof e!="object"||!("headers"in e))return;let t=e.headers;if(!(!t||typeof t!="object"||!("get"in t)))return typeof t.get=="function"?t:void 0}function Fb(e){if(e instanceof TypeError||e instanceof Error&&e.name==="TimeoutError")return!0;let t=Mb(e);return typeof t=="number"&&jb(t,{add:[409],includeServerErrors:!0})}function Bb(e,t=Date.now()){let r=e.get("retry-after-ms");if(r){let a=Number(r);if(Number.isFinite(a)&&a>=0)return a}let o=e.get("retry-after");if(!o)return null;let n=Number(o);if(Number.isFinite(n))return n>=0?n*1e3:null;let i=Date.parse(o);return Number.isNaN(i)?null:Math.max(0,i-t)}function Vb(e){let t=Zb(e);return t?Bb(t):null}function cm(e,t){if(!(!e||typeof e!="object"))try{Object.defineProperty(e,"__retryAttempts",{value:t,enumerable:!1,configurable:!0,writable:!0})}catch{}}function Gb(e,t){if(!t)return e;let r=AbortSignal.timeout(t);return e?AbortSignal.any([e,r]):r}async function lm(e){if(!Number.isInteger(e.maxAttempts)||e.maxAttempts<1)throw new RangeError("maxAttempts must be at least 1");let t=e.sleep??um,r=e.random??Math.random,o=e.perAttemptTimeoutMs??6e5,n=e.isTransient??Fb,i=e.getRetryAfterMs??Vb,a=e.abortErrorFactory??(()=>new La),s=e.now??Date.now,u=e.jitterFactor??zb,c=[1-u,1+u],l=0,d;for(;l<e.maxAttempts;){if(e.callerSignal?.aborted)throw a(l);if(e.deadlineMs!==void 0&&s()>=e.deadlineMs)throw d!==void 0?d:a(l);l+=1;let f=o>0&&e.deadlineMs!==void 0?Math.min(o,Math.max(1,e.deadlineMs-s())):o,m=Gb(e.callerSignal,f);try{return{value:await e.op(m??new AbortController().signal),attempts:l}}catch(g){if(e.callerSignal?.aborted)throw a(l,g);if(!n(g)||l>=e.maxAttempts)throw cm(g,l),g;let h=Math.max(i(g)??0,Lb({retry:l,baseMs:e.baseMs??250,jitter:c,random:r}));if(cm(g,l),d=g,e.deadlineMs!==void 0&&s()+h>=e.deadlineMs)throw g;try{e.onRetry?.({attempt:l+1,maxAttempts:e.maxAttempts,delayMs:h,error:g})}catch{}if(await t(h,e.callerSignal??new AbortController().signal),e.callerSignal?.aborted)throw a(l)}}throw new Error("Provider retry loop exited without a result")}function et(e){return e.replace(/\/+$/,"")}function dm(e){if(!e||typeof e!="object")return null;let t=e,r=typeof t.code=="string"&&t.code?t.code:null,o=typeof t.message=="string"&&t.message?t.message:null;if(typeof t.error=="string"&&t.error)return{code:r??t.error,message:o??t.error,raw:t.error};if(t.error&&typeof t.error=="object"){let n=t.error,i=typeof n.code=="string"&&n.code?n.code:r,a=typeof n.message=="string"&&n.message?n.message:o;return i||a?{code:i,message:a,raw:t.error}:null}return r||o?{code:r,message:o,raw:e}:null}function ja(e){try{let t=JSON.parse(e);if(!t||typeof t!="object")return null;let r=t,o={...typeof r.repository=="string"?{repository:r.repository}:{},...typeof r.environmentsUrl=="string"?{environmentsUrl:r.environmentsUrl}:{},...typeof r.billingUrl=="string"?{billingUrl:r.billingUrl}:{}},n=dm(t);return n?typeof n.raw=="string"&&n.raw?{...n.code?{serverCode:n.code}:{},rawError:n.raw,...n.message?{message:n.message}:{},...o}:n.message||n.code?{...n.message?{message:n.message}:{},...n.code?{serverCode:n.code,rawError:n.code}:{},...o}:null:null}catch{return null}}var Ee=130,Ma=5,y=class extends Error{code;exitCode;hint;requestId;data;constructor(t,r,o={}){super(r),this.name="CliError",this.code=t,this.exitCode=o.exitCode??pm(t),this.hint=o.hint,this.requestId=o.requestId,this.data=o.data}},_t=class extends y{},ze=class extends y{status;body;constructor(t,r,o,n){let i=mm(t),a=ja(r);super(i,Wb(t,r,a),{exitCode:qb(t),hint:Hb(t,n,a),requestId:o,data:a?.serverCode||a?.repository||a?.environmentsUrl||a?.billingUrl?{...a.serverCode?{serverCode:a.serverCode}:{},...a.repository?{repository:a.repository}:{},...a.environmentsUrl?{environmentsUrl:a.environmentsUrl}:{},...a.billingUrl?{billingUrl:a.billingUrl}:{}}:void 0}),this.name="ApiError",this.status=t,this.body=r}};function pm(e){switch(e){case"auth":return 2;case"not_found":return 3;case"conflict":return 4;case"server":return 10;default:return 1}}function mm(e){return e===401||e===403?"auth":e===404?"not_found":e===409?"conflict":e>=500?"server":"user"}function qb(e){return pm(mm(e))}function Wb(e,t,r=ja(t)){return r?.message?r.message:r?.serverCode?r.serverCode:t?`API error ${e}: ${t}`:`API error ${e}`}function Hb(e,t,r){if(e===401)return"Run `arcanist auth login` or set `ARCANIST_TOKEN`.";if(e===403)return"This token is not allowed to do that. `arcanist auth whoami --json` shows its tokenScope and your businessRole: a change needs a write-scope token (mint one in Settings > CLI), and a workspace-wide change also needs the admin role.";if(e===404)return t==="repo"?"Check accessible repositories with `arcanist repos list`.":t==="session"?"List sessions with `arcanist sessions list`.":void 0;if(e===409&&r?.repository){if(r.serverCode==="environment_required")return`Run \`arcanist environments prepare ${r.repository} --wait\`, then retry the review.`;if(r.serverCode==="environment_preparing"||r.serverCode==="environment_needs_attention")return`Run \`arcanist environments status ${r.repository} --wait\` for the latest setup state.`}if(e===409)return"Check the current resource state and retry the command when it is ready.";if(e>=500)return"Retry later or check the control-plane logs."}var Kb="Run `arcanist help <command>` for usage, or `arcanist help --json` for the full command tree.";function Jb(e){if(!("code"in e)||typeof e.code!="string"||!e.code.startsWith("commander."))return null;let[t="",r]=e.message.replace(/^error: /,"").split(`
5
- `);return new y("user",t,{hint:r?r.replace(/^\((.*)\)$/,"$1"):Kb})}function fm(e){if(e instanceof y)return e;if(e instanceof Error){let t=Jb(e);if(t)return t}return e instanceof Error?new y("user",e.message):new y("user",String(e))}function ei(e){return JSON.stringify({error:{code:e.code,message:e.message,...e.hint?{hint:e.hint}:{},...e.requestId?{requestId:e.requestId}:{},...e.data?{data:e.data}:{}}})}var gm={name:"@tryarcanist/cli",version:"0.1.398",description:"Command-line interface for Arcanist: inspect sessions, prepare Arcanist environments, and trigger reviews",type:"module",bin:{arcanist:"dist/index.js"},engines:{node:">=22"},files:["dist/index.js"],scripts:{build:"tsup",typecheck:"node ../../node_modules/tsrs/bin/tsrs --noEmit",prepublishOnly:"npm --prefix ../.. run guard:cli-bundle"},publishConfig:{access:"public"},repository:{type:"git",url:"git+https://github.com/tryarcanist/arcanist.git",directory:"apps/cli"},homepage:"https://www.tryarcanist.com",license:"MIT",dependencies:{commander:"^12.1.0","playwright-core":"^1.61.1"},devDependencies:{tsup:"^8.0.0",typescript:"^5.9.3"}};var ti=`${gm.version}`;var Xb=`arcanist-cli/${ti}`,Qb=3e4,eS=1e3,tS=6e5,ni="ARCANIST_HTTP_TIMEOUT_MS";function nS(e=process.env){let t=e[ni];if(!t)return Qb;if(!/^\d+$/.test(t))throw new y("user",`${ni} must be a positive integer between 1000 and 600000.`);let r=Number(t);if(r<eS||r>tS)throw new y("user",`${ni} must be between 1000 and 600000 milliseconds.`);return r}function Za(e){return e instanceof DOMException&&e.name==="AbortError"}function rS(e){let t=e instanceof Error?e.cause:null;return t&&typeof t=="object"&&"code"in t&&typeof t.code=="string"?t.code:null}function Fa(e){return new _t("server",`Network timeout after ${e}ms.`,{hint:`Increase ${ni} for slow links, or check the API connection.`})}function iS(e){let t=nS();if(!e)return{fetchInit:void 0,timeoutMs:t};let{timeoutMs:r,...o}=e;return r===void 0?{fetchInit:o,timeoutMs:t}:!Number.isFinite(r)||r<=0?{fetchInit:o,timeoutMs:1}:{fetchInit:o,timeoutMs:Math.max(1,Math.min(t,r))}}async function Ba(e,t,r,o){let{fetchInit:n,timeoutMs:i}=iS(r),a=new AbortController,s=setTimeout(()=>a.abort(),i);try{let u=new Headers(n?.headers);u.set("Content-Type","application/json"),u.set("User-Agent",Xb),e.token&&u.set("Authorization",`Bearer ${e.token}`);let c=await fetch(`${et(e.apiUrl)}${t}`,{...n,headers:u,signal:a.signal}).catch(l=>{throw Za(l)?Fa(i):new _t("server",`Network error: could not reach ${et(e.apiUrl)} (${rS(l)??Ie(l)}).`,{hint:"Check the network and `ARCANIST_API_URL` or `--api-url`, then retry."})});if(!c.ok){let l=await c.text().catch(d=>{if(Za(d))throw Fa(i);return""});throw new ze(c.status,l,c.headers.get("x-request-id")??void 0,oS(t))}return await o(c)}catch(u){throw u instanceof y?u:Za(u)?Fa(i):u instanceof TypeError?new _t("server",`The API response could not be read: ${Ie(u)}`):new y("server",`The API response could not be read: ${Ie(u)}`)}finally{clearTimeout(s)}}function oS(e){if(e.startsWith("/api/repos"))return"repo";if(e.startsWith("/api/sessions"))return"session"}async function P(e,t,r){return Ba(e,t,r,o=>o.json())}async function hm(e,t,r){return Ba(e,t,r,o=>o.text())}async function vm(e,t,r){return Ba(e,t,r,async o=>new Uint8Array(await o.arrayBuffer()))}async function Un(e,t){let{value:r}=await lm({op:()=>P(e,t),maxAttempts:3,perAttemptTimeoutMs:0,isTransient:o=>o instanceof _t,onRetry:({attempt:o,maxAttempts:n,delayMs:i})=>{process.stderr.write(`Retrying archive GET ${t} (${o}/${n}) in ${i}ms.
5
+ `);return new y("user",t,{hint:r?r.replace(/^\((.*)\)$/,"$1"):Kb})}function fm(e){if(e instanceof y)return e;if(e instanceof Error){let t=Jb(e);if(t)return t}return e instanceof Error?new y("user",e.message):new y("user",String(e))}function ei(e){return JSON.stringify({error:{code:e.code,message:e.message,...e.hint?{hint:e.hint}:{},...e.requestId?{requestId:e.requestId}:{},...e.data?{data:e.data}:{}}})}var gm={name:"@tryarcanist/cli",version:"0.1.399",description:"Command-line interface for Arcanist: inspect sessions, prepare Arcanist environments, and trigger reviews",type:"module",bin:{arcanist:"dist/index.js"},engines:{node:">=22"},files:["dist/index.js"],scripts:{build:"tsup",typecheck:"node ../../node_modules/tsrs/bin/tsrs --noEmit",prepublishOnly:"npm --prefix ../.. run guard:cli-bundle"},publishConfig:{access:"public"},repository:{type:"git",url:"git+https://github.com/tryarcanist/arcanist.git",directory:"apps/cli"},homepage:"https://www.tryarcanist.com",license:"MIT",dependencies:{commander:"^12.1.0","playwright-core":"^1.61.1"},devDependencies:{tsup:"^8.0.0",typescript:"^5.9.3"}};var ti=`${gm.version}`;var Xb=`arcanist-cli/${ti}`,Qb=3e4,eS=1e3,tS=6e5,ni="ARCANIST_HTTP_TIMEOUT_MS";function nS(e=process.env){let t=e[ni];if(!t)return Qb;if(!/^\d+$/.test(t))throw new y("user",`${ni} must be a positive integer between 1000 and 600000.`);let r=Number(t);if(r<eS||r>tS)throw new y("user",`${ni} must be between 1000 and 600000 milliseconds.`);return r}function Za(e){return e instanceof DOMException&&e.name==="AbortError"}function rS(e){let t=e instanceof Error?e.cause:null;return t&&typeof t=="object"&&"code"in t&&typeof t.code=="string"?t.code:null}function Fa(e){return new _t("server",`Network timeout after ${e}ms.`,{hint:`Increase ${ni} for slow links, or check the API connection.`})}function iS(e){let t=nS();if(!e)return{fetchInit:void 0,timeoutMs:t};let{timeoutMs:r,...o}=e;return r===void 0?{fetchInit:o,timeoutMs:t}:!Number.isFinite(r)||r<=0?{fetchInit:o,timeoutMs:1}:{fetchInit:o,timeoutMs:Math.max(1,Math.min(t,r))}}async function Ba(e,t,r,o){let{fetchInit:n,timeoutMs:i}=iS(r),a=new AbortController,s=setTimeout(()=>a.abort(),i);try{let u=new Headers(n?.headers);u.set("Content-Type","application/json"),u.set("User-Agent",Xb),e.token&&u.set("Authorization",`Bearer ${e.token}`);let c=await fetch(`${et(e.apiUrl)}${t}`,{...n,headers:u,signal:a.signal}).catch(l=>{throw Za(l)?Fa(i):new _t("server",`Network error: could not reach ${et(e.apiUrl)} (${rS(l)??Ie(l)}).`,{hint:"Check the network and `ARCANIST_API_URL` or `--api-url`, then retry."})});if(!c.ok){let l=await c.text().catch(d=>{if(Za(d))throw Fa(i);return""});throw new ze(c.status,l,c.headers.get("x-request-id")??void 0,oS(t))}return await o(c)}catch(u){throw u instanceof y?u:Za(u)?Fa(i):u instanceof TypeError?new _t("server",`The API response could not be read: ${Ie(u)}`):new y("server",`The API response could not be read: ${Ie(u)}`)}finally{clearTimeout(s)}}function oS(e){if(e.startsWith("/api/repos"))return"repo";if(e.startsWith("/api/sessions"))return"session"}async function P(e,t,r){return Ba(e,t,r,o=>o.json())}async function hm(e,t,r){return Ba(e,t,r,o=>o.text())}async function vm(e,t,r){return Ba(e,t,r,async o=>new Uint8Array(await o.arrayBuffer()))}async function Un(e,t){let{value:r}=await lm({op:()=>P(e,t),maxAttempts:3,perAttemptTimeoutMs:0,isTransient:o=>o instanceof _t,onRetry:({attempt:o,maxAttempts:n,delayMs:i})=>{process.stderr.write(`Retrying archive GET ${t} (${o}/${n}) in ${i}ms.
6
6
  `)}});return r}function A(e,t={}){return e.replace(/:([A-Za-z]+)/g,(r,o)=>{let n=t[o];if(n===void 0)throw new Error(`apiPath(${e}) is missing the ${o} parameter`);return encodeURIComponent(n)})}import{existsSync as Ln,mkdirSync as aS,readFileSync as Va,statSync as sS,writeFileSync as uS}from"node:fs";import{homedir as cS}from"node:os";import{dirname as ym,join as yt,resolve as lS}from"node:path";var bm=yt(cS(),".arcanist"),Sm=yt(bm,"config.json"),tt=".arcanist-cli.json",dS="https://app.tryarcanist.com";function wm(){try{return JSON.parse(Va(Sm,"utf-8"))}catch{return null}}function pS(e={}){let t=fS(e);if(t)return _m(t);let r=mS(),o=Ga(e,r!==null),n=wm(),i=o?.apiUrl??r?.apiUrl??n?.apiUrl,a=o?.token??r?.token??n?.token;if(!i||!a)return null;let s=_m({apiUrl:i,token:a});return r&&!o&&!e.json&&process.stderr.write(`using ${tt} -> ${s.apiUrl}
7
7
  `),s}function xm(e){let t=ri(e.apiUrl);if(t)throw new y("user",t);aS(bm,{recursive:!0,mode:448}),uS(Sm,JSON.stringify({...e,apiUrl:et(e.apiUrl)},null,2)+`
8
8
  `,{mode:384})}function G(e){let t=pS(e);if(!t)throw new y("auth","Not logged in.",{hint:"Run `arcanist auth login` or set `ARCANIST_TOKEN`."});return t}function $m(e){let t=e??process.env.ARCANIST_API_URL??wm()?.apiUrl??dS,r=ri(t);if(r)throw new y("user",r);return et(t)}function mS(e=process.cwd()){let t=gS(e);if(!t)return null;let r=e;for(;;){let o=yt(r,tt);if(Ln(o))return _S(o);if(r===t)return null;let n=ym(r);if(n===r)return null;r=n}}function ri(e){let t;try{t=new URL(e)}catch{return"Invalid URL format"}return t.username||t.password?"API URL must not include embedded credentials. Use --token or ARCANIST_TOKEN to authenticate.":t.protocol!=="https:"&&!Im(t)?"API URL must use HTTPS for non-local hosts":null}function Ga(e,t){let r=e.apiUrl??process.env.ARCANIST_API_URL,o=e.token??process.env.ARCANIST_TOKEN;if(!t)return!r&&!o?null:{apiUrl:r,token:o};if(r&&!o||!r&&o)throw new y("user",`${tt} is active; set both ARCANIST_API_URL and ARCANIST_TOKEN, pass both --api-url and --token, or set neither.`);return!r||!o?null:{apiUrl:r,token:o}}function fS(e){let t=e.apiUrl??process.env.ARCANIST_API_URL,r=e.token??process.env.ARCANIST_TOKEN;return!t||!r?null:{apiUrl:t,token:r}}function _m(e){let t=ri(e.apiUrl);if(t)throw new y("user",t);return{apiUrl:et(e.apiUrl),token:e.token}}function gS(e){let t=e;for(;;){if(hS(t))return t;let r=ym(t);if(r===t)return null;t=r}}function hS(e){let t=yt(e,".git");if(!Ln(t))return!1;try{let r=sS(t);if(r.isDirectory())return Ln(yt(t,"HEAD"))&&Ln(yt(t,"config"));if(!r.isFile())return!1;let o=vS(t);return o?Ln(yt(lS(e,o),"HEAD")):!1}catch{return!1}}function vS(e){let t=Va(e,"utf-8").split(/\r?\n/).find(o=>o.startsWith("gitdir:"));return t&&t.slice(7).trim()||null}function _S(e){let t;try{t=JSON.parse(Va(e,"utf-8"))}catch{throw new y("user",`${tt} is not valid JSON.`)}if(!t||typeof t!="object")throw new y("user",`${tt} must contain both apiUrl and token.`);let r=t;if(typeof r.apiUrl!="string"||typeof r.token!="string"||!r.apiUrl||!r.token)throw new y("user",`${tt} must contain both apiUrl and token.`);let o;try{o=new URL(r.apiUrl)}catch{throw new y("user",`${tt} apiUrl must be a valid URL.`)}if(!Im(o))throw new y("user",`${tt} apiUrl must be a loopback host.`);let n=ri(r.apiUrl);if(n)throw new y("user",n);return{apiUrl:et(r.apiUrl),token:r.token}}function Im(e){let t=e.hostname.replace(/^\[|\]$/g,"");return t==="localhost"||t==="127.0.0.1"||t==="::1"}function B(e,t={}){let o={...e?.optsWithGlobals?.(),...t};return{...o,noColor:o.noColor===!0||o.color===!1}}function ke(e,t={}){return B(e,t).json===!0}function Ue(e){process.stdout.write(`${JSON.stringify(e)}
@@ -90,7 +90,7 @@ Hint: ${n.hint??""}
90
90
  ${n}`),gT(n);let i=Date.now()+pT,a=()=>{process.exit(Ee)};process.once("SIGINT",a);try{for(;Date.now()<i;){let s;try{s=await P({apiUrl:e},A("/api/cli-login/exchange"),{method:"POST",body:JSON.stringify({verifier:r})})}catch(u){throw u instanceof ze&&(u.status===409||u.status===410)?new y("user",u.message):u}if(s.token)return{token:s.token,scope:s.scope??t};await new Promise(u=>setTimeout(u,dT))}}finally{process.off("SIGINT",a)}throw new y("user","Login timed out. Run arcanist auth login again.")}function gT(e){let[t,r]=process.platform==="darwin"?["open",[e]]:process.platform==="win32"?["rundll32",["url.dll,FileProtocolHandler",e]]:["xdg-open",[e]],o=uT(t,r,{detached:!0,stdio:"ignore"});o.on("error",()=>{}),o.unref()}async function ly(e={},t){let{config:r}=Q(t,e),o=await P(r,A("/api/repos"));R(t,e,{repos:o.repos,ssoOrgs:o.ssoOrgs},n=>{for(let i of n.repos)console.log(`${String(i.fullName??i.name??i.repo??"")} ${String(i.defaultBranch??"")}`);n.ssoOrgs.length>0&&console.log(`SSO withheld orgs: ${n.ssoOrgs.length}`)})}import{existsSync as wa,readdirSync as hT,readFileSync as vT,realpathSync as Np,renameSync as _T,rmSync as Dp}from"node:fs";import{connect as yT}from"node:net";import{join as Hr,resolve as bT}from"node:path";async function dy(e,t){if(!e.confirm)throw new y("user","Reset deletes all local app data. Pass --confirm to continue.");let r=Np(bT(e.checkout));if(!wa(Hr(r,"apps/control-plane-worker/wrangler.local.toml")))throw new y("user","--checkout must point to an Arcanist developer checkout.");if(wa(Hr(r,".cloud-zeus-launcher.lock")))throw new y("conflict","Stop the local dev stack before resetting its database.");let o=Hr(r,".worktree-ports"),n=wa(o)?vT(o,"utf8"):"",i=Number(n.match(/^API_PORT=(\d+)$/m)?.[1]??3e3);await new Promise((f,m)=>{let g=yT({host:"127.0.0.1",port:i});g.once("connect",()=>{g.destroy(),m(new y("conflict",`Stop the local API on port ${i} before resetting its database.`))}),g.once("error",h=>{g.destroy(),h.code==="ECONNREFUSED"?f():m(h)})});let a=Hr(r,"apps/control-plane-worker/.wrangler/state/v3/d1/miniflare-D1DatabaseObject");if(!wa(a)||Np(a)!==a)throw new y("user","No checkout-owned local D1 database found. Refusing a symlinked state directory.");let{DatabaseSync:s}=await import("node:sqlite"),u=hT(a).filter(f=>f.endsWith(".sqlite")&&f!=="metadata.sqlite");if(u.length!==1)throw new y("user","Expected exactly one local control-plane database.");let c=Hr(a,u[0]);if(Np(c)!==c)throw new y("user","Refusing a symlinked database.");let l=new s(c,{readOnly:!0}),d=`${c}.reset-${crypto.randomUUID()}`;try{let f=new Set(l.prepare("PRAGMA table_list").all().filter(b=>b.type==="shadow").map(b=>b.name)),m=l.prepare("SELECT type, name, tbl_name, sql FROM sqlite_master WHERE sql IS NOT NULL AND name NOT LIKE 'sqlite_%' ORDER BY CASE type WHEN 'table' THEN 0 WHEN 'index' THEN 1 WHEN 'view' THEN 2 ELSE 3 END, rowid").all().filter(b=>!f.has(b.tbl_name));if(!m.some(b=>b.name==="users")||!m.some(b=>b.name==="d1_migrations"))throw new y("user","The selected database is not a migrated control-plane database.");let g=l.prepare("SELECT * FROM d1_migrations").all(),h=new s(d);try{h.exec("BEGIN");for(let b of m)h.exec(b.sql);for(let b of g){let $=Object.keys(b),I=$.map(k=>`"${k.replaceAll('"','""')}"`).join(", ");h.prepare(`INSERT INTO d1_migrations (${I}) VALUES (${$.map(()=>"?").join(", ")})`).run(...Object.values(b))}h.exec("COMMIT")}finally{h.close()}}catch(f){throw Dp(d,{force:!0}),f}finally{l.close()}try{_T(d,c);for(let f of["-wal","-shm"])Dp(`${c}${f}`,{force:!0})}finally{Dp(d,{force:!0})}R(t,e,{reset:!0,checkout:r},()=>{console.log("Local app data reset. Schema and migration history retained; no backup created."),console.log("Start the API and UI without dev-full.sh, which would reapply developer seeds.")})}var my=["planner","scouts","verifier"];function zp(e){let t=e.stages,r=t?my.filter(o=>t[o]?.model).map(o=>`${o}=${t[o].model}`):[];return`user ${e.userId}: ${r.length>0?r.join(" "):"no stage models set"}
91
91
  `}function py(e){let t=A("/api/internal/zeus-evals/user-settings");return e.user?`${t}?userId=${encodeURIComponent(e.user)}`:t}var xa=class{static register(t){let r=t.command("review-models").description("Read or set the models your own tryarcanist/arcanist reviews run on (Arcanist members only)"),o=n=>n.option("--user <id>","Arcanist user id to read or change; defaults to the caller");o(r.command("show").description("Show the stage models set for a user")).action(async(n,i)=>{let a=G(B(i,n)),s=await P(a,py(n));R(i,n,s,()=>process.stdout.write(zp(s)))}),o(r.command("set").description("Set the stage models for a user's own internal reviews; stages left out keep their defaults").option("--planner <model>","planner model id").option("--scouts <model>","scout model id").option("--verifier <model>","verifier model id")).action(async(n,i)=>{let a={};for(let c of my)n[c]&&(a[c]={model:n[c]});if(Object.keys(a).length===0)throw new y("user","Name at least one stage: --planner, --scouts, or --verifier.");let s=G(B(i,n)),u=await P(s,A("/api/internal/zeus-evals/user-settings"),{method:"PUT",body:JSON.stringify({...n.user?{userId:n.user}:{},stages:a})});R(i,n,u,()=>process.stdout.write(zp(u)))}),o(r.command("clear").description("Remove a user's stage models; reviews run on the defaults again")).action(async(n,i)=>{let a=G(B(i,n)),s=await P(a,py(n),{method:"DELETE"});R(i,n,s,()=>process.stdout.write(zp(s)))})}};var Rn=p.string().uuid(),B0=p.union([p.literal("end"),p.string().regex(/^\d{10}$/)]),V0=1024*1024,G0=p.union([p.object({traceId:Rn,part:p.literal("end"),parts:p.number().int().nonnegative(),complete:p.boolean(),format:p.literal("observed-runtime-events-v1")}),p.object({traceId:Rn,part:p.string().regex(/^\d{10}$/),content:p.string()})]);import{open as ST}from"node:fs/promises";var Kr=class extends y{};async function $a(e,t){let r=[],o;do{let n=A("/api/internal/zeus-reviews/sessions/:sessionId/planner-traces",{sessionId:t}),i=await Un(e,n+(o?`?cursor=${encodeURIComponent(o)}`:""));r.push(...i.parts),o=i.cursor}while(o);return r}async function Ia(e,t,r,o,n){let i=n.filter(m=>m.key.startsWith(`${r}/`)).sort((m,g)=>m.key.localeCompare(g.key));if(!i.length)throw new y("not_found","Planner trace not found.");let a=await ST(o,"wx",384),s=0,u=!0,c="",l=!0,d;try{for(let m of i){let g=m.key.slice(r.length+1).replace(/\.json$/,""),{record:h}=await Un(e,A("/api/internal/zeus-reviews/sessions/:sessionId/planner-traces/:traceId/:part",{sessionId:t,traceId:r,part:g}));if(!("content"in h))d=h;else{Number(h.part)!==s&&(u=!1),s++,await a.writeFile(h.content);let b=(c+h.content).split(`
92
92
  `);c=b.pop();for(let $ of b)try{JSON.parse($)}catch{l=!1}}}}finally{await a.close()}if(c)try{JSON.parse(c)}catch{l=!1}if(!l)throw new Kr("server",`Planner trace contains invalid JSONL; saved to ${o}.`);let f=s>0&&u&&d?.complete===!0&&d.parts===s;return{traceId:r,out:o,parts:s,complete:f}}async function fy(e,t,r){let o=B(r,t),n=G(o),i=new URLSearchParams({prUrl:e,headSha:t.head}),a=await P(n,`${A("/api/internal/zeus-reviews/comparison")}?${i}`);R(r,o,a,s=>{o.quiet||console.log(me(JSON.stringify(s,null,2)))})}async function gy(e,t,r){let o=B(r,t),n=G(o),[i,a]=await Promise.all([P(n,A("/api/pr-reviews/requests/:requestId",{requestId:e})),P(n,A("/api/pr-reviews/requests/status-batch"),{method:"POST",body:JSON.stringify({requestIds:[e]})})]);R(r,o,{review:i,requestStatus:a},s=>{if(o.quiet)return;let{findings:u,...c}=s.review;console.log(me(JSON.stringify({review:c,requestStatus:s.requestStatus},null,2)));for(let d of jt(u,{withBody:!0}))console.log(d);let l=i.sessionId??a.requests[0]?.activeSessionId;if(l){let d=j(l);console.log(`Next: arcanist sessions view ${d}`),console.log(`Next: arcanist reviews stages ${d}`)}})}async function hy(e,t,r,o){let n=B(o,r),i=G(n);if(t!==void 0){let s=await P(i,A("/api/internal/zeus-reviews/sessions/:sessionId/stages/:stage",{sessionId:e,stage:t}));R(o,n,s,u=>{n.quiet||console.log(me(JSON.stringify(u,null,2)))});return}let a=await P(i,A("/api/internal/zeus-reviews/sessions/:sessionId/stages",{sessionId:e}));R(o,n,a,s=>{if(!n.quiet)for(let u of s.stages)console.log(`${j(u.stage)} ${u.size} bytes ${u.uploadedAt}`)})}async function vy(e,t,r,o){let n=B(o,r),i=G(n);if(t&&(!Rn.safeParse(t).success||!r.out))throw new y("user","Use a valid trace ID and --out <file.jsonl> to download a trace.");if(!t&&r.out)throw new y("user","A trace ID is required with --out.");let a=await $a(i,e);if(!t){R(o,n,{parts:a},c=>{if(!n.quiet)for(let l of c.parts)console.log(`${j(l.key)} ${l.size} bytes`)});return}let{parts:s,complete:u}=await Ia(i,e,t,r.out,a);if(!u)throw new y("server",`Incomplete planner trace saved to ${r.out}. Missing parts, failed capture, or no end marker.`);R(o,n,{traceId:t,out:r.out,parts:s,complete:u},c=>{n.quiet||console.log(j(`Saved ${c.parts} parts to ${c.out} (complete observed runtime stream).`))})}async function _y(e,t,r){if(t.fault&&t.clear)throw new y("user","Choose --fault or --clear, not both.");let o=B(r,t),n=G(o),i=await P(n,A("/api/internal/qa/review-requests/:requestId/recovery-probe",{requestId:e}),{method:t.clear?"DELETE":t.fault?"POST":"GET",...t.fault?{body:JSON.stringify({fault:t.fault})}:{}});R(r,o,i,a=>{o.quiet||process.stdout.write(`${me(JSON.stringify(a,null,2))}
93
- `)})}var yy=["published","publish_failed","gate_rejected"],by=["not_applicable","never_ran","all_empty","completed_empty","yielded"];var Sy=["bundle","ledger","disposition","lineage"];var wy=/^cap-[0-9a-f]{8}$/,xy=/^[A-Za-z0-9][A-Za-z0-9 ._-]{0,79}$/;var $y=/^req-[0-9a-f]{8}$/;var Iy=300,Jr=500,Lp=3,wT=6e3;var Ey=/^dl-[0-9a-f]{8}$/,xT=new Set(["localhost","localhost.localdomain","metadata","metadata.google.internal","instance-data","instance-data.ec2.internal"]);function Up(e){let t=e.split(".");if(t.length===4&&t.every(r=>/^\d{1,3}$/.test(r)&&Number(r)<=255)){let[r,o]=t.map(Number);return r===0||r===10||r===127||r===169&&o===254||r===172&&o>=16&&o<=31||r===192&&o===168||r===100&&o>=64&&o<=127||r===198&&(o===18||o===19)}if(e.includes(":")){let r=e.toLowerCase();if(r==="::"||r==="::1"||/^fe[89ab]/.test(r)||/^f[cd]/.test(r))return!0;if(r.startsWith("::ffff:")){let o=r.slice(7),n=o.match(/^([0-9a-f]{1,4}):([0-9a-f]{1,4})$/);if(n){let i=Number.parseInt(n[1],16),a=Number.parseInt(n[2],16);return Up(`${i>>8}.${i&255}.${a>>8}.${a&255}`)}return Up(o)}return!1}return!1}function $T(e){try{let t=new URL(e),r=t.hostname.toLowerCase().replace(/^\[/,"").replace(/\]$/,"");return(t.protocol==="http:"||t.protocol==="https:")&&t.username===""&&t.password===""&&!xT.has(r)&&!Up(r)}catch{return!1}}var _L=p.discriminatedUnion("kind",[p.object({kind:p.literal("search"),query:p.string().trim().min(3).max(Iy)}).strict(),p.object({kind:p.literal("fetch"),url:p.string().url().max(Jr).refine($T,{message:"url must be http(s) without credentials"}),query:p.string().trim().min(3).max(Iy).optional()}).strict()]),IT=p.object({url:p.string().max(Jr),title:p.string().max(300).nullable(),publishedDate:p.string().max(40).nullable(),text:p.string().max(wT)}).strict(),yL=p.object({results:p.array(IT).max(Lp)}).strict();var SL=10*6e4,wL=5*6e4;var xL=10*6e4,$L=5*6e4,IL=10*6e4;var ky=8;var EL=256*1024,kL=64*1024*1024;var TL=15.5*6e4;var AL=256*1024;var Ty=64*1024,PL=64*1024;var ET=30,Ea=ky*ET,Cn=p.string().trim().min(1).max(4e3),Ze=p.object({id:p.string().regex(/^[a-zA-Z0-9._:-]+$/).max(80).describe("Stable id you choose for this work item; reuse it to update the item."),changedPath:Cn.describe("Changed file path from the admitted diff."),producer:Cn.describe("Code that produces the changed value or behavior."),consumer:Cn.describe("Actual code that consumes it."),inputState:Cn.describe("Concrete input or state that reaches the consumer."),status:p.enum(["pending","settled","refuted","below_bar","external","environment","budget_exhausted"]).describe("pending while open; any other status closes the item and needs reason. below_bar: verified and non-blocking; still filed as a finding."),evidence:p.array(Cn).max(Ea).describe("Source or probe references. Required for settled, refuted, below_bar."),reason:Cn.describe("Why the item has this status. Optional only while pending."),candidateIds:p.array(p.string().min(1).max(80)).max(Ea).describe("Delivered scout candidate ids this item covers."),findingIds:p.array(p.string().min(1).max(80)).max(Ea).describe("Ids of findings this item supports.")}).strict(),kT=Ze.refine(e=>!["settled","refuted","below_bar"].includes(e.status)||e.evidence.length>0,{message:"A settled decision needs source or probe evidence."});var jp="candidate:";var NL=Ze.extend({changedPath:Ze.shape.changedPath.optional(),producer:Ze.shape.producer.optional(),consumer:Ze.shape.consumer.optional(),inputState:Ze.shape.inputState.optional(),status:Ze.shape.status.optional(),evidence:Ze.shape.evidence.optional(),candidateIds:p.array(p.string().min(1).max(jp.length+80).transform(e=>e.startsWith(jp)?e.slice(jp.length):e)).max(Ea).describe(Ze.shape.candidateIds.description).optional(),findingIds:Ze.shape.findingIds.optional(),reason:Ze.shape.reason.optional()}).superRefine((e,t)=>{e.reason===void 0&&e.status!==void 0&&e.status!=="pending"&&t.addIssue({code:"custom",path:["reason"],message:`reason is required when status is ${e.status}`})}),Ay=p.string().regex(/^q-[1-9][0-9]*$/).max(16),DL=p.object({baseSha:p.string().nullable(),headSha:p.string().nullable(),items:p.array(kT),unreadRanges:p.array(p.object({path:p.string(),start:p.number().int(),end:p.number().int()})),reconciliationUsed:p.boolean().optional(),budgetExhausted:p.boolean().optional(),pendingPaths:p.array(p.string()),omittedRangeCount:p.number().int().nonnegative(),omittedPendingPathCount:p.number().int().nonnegative()}).refine(e=>new TextEncoder().encode(JSON.stringify(e)).byteLength<=Ty,{message:"Investigation ledger exceeds the transport budget."});var PT=p.string().regex(wy),RT=p.enum(["screenshot","video"]),CT=p.object({captureId:PT,label:p.string().regex(xy),artifactId:p.string().min(1).max(80),url:p.string().url().max(2e3),kind:RT.default("screenshot"),durationMs:p.number().int().min(0).max(9e4).optional(),fullUrl:p.string().url().max(2e3).optional(),posterUrl:p.string().url().max(2e3).optional(),alt:p.string().min(1).max(200).optional()}).strict(),ZL=CT.extend({finalPath:p.string().max(500).optional()}).strict(),FL=p.object({requestId:p.string().regex($y),method:p.enum(["GET","HEAD"]),path:p.string().min(1).max(2e3),status:p.number().int().min(100).max(599).nullable(),authenticated:p.boolean(),redirected:p.object({location:p.string().max(2e3)}).strict().nullable(),contentType:p.string().max(200).nullable(),bodySha256:p.string().regex(/^[0-9a-f]{64}$/i).nullable(),bodyExcerpt:p.string().max(2e3).nullable(),promptId:p.string().min(1),bodyOmitted:p.enum(["binary","too_large","unreadable"]).optional()}).strict(),Mp=["ok","empty","rate_limited","upstream_error","invalid_input","budget_exhausted","page_unavailable","unavailable"],BL=p.object({lookupId:p.string().regex(Ey),kind:p.enum(["search","fetch"]),input:p.string().min(1).max(Jr),status:p.enum(Mp),resultUrls:p.array(p.string().max(Jr)).max(Lp),durationMs:p.number().int().nonnegative(),promptId:p.string().min(1),thread:p.enum(["primary","scout"]),investigationId:Ay.optional()}).strict();var Zp="zeus_telemetry";var Py=["succeeded","succeeded_empty","no_output","unparseable_output","failed","timed_out","aborted","hung","released_early"],Ry={state:{kind:"string_enum",values:["no_notification","turn_completed","command_running","tool_running","model_output_open","awaiting_model_output"]},lastNotificationMethod:"string",maxNotificationGapMs:"number",modelResponseCount:"number",streamRetryCount:"number",itemsInFlight:"number",oldestItemInFlight:{kind:"object",fields:{type:"string",tool:"string",msSinceStarted:"number"}},recentNotifications:"string_array"},OT={unavailable:{kind:"string_enum",values:["no_pid","unsupported_platform","no_process"]},sockets:{kind:"object_array",fields:{remote:"string",state:"string",txQueueBytes:"number",rxQueueBytes:"number"}}},rj={"zeus.verification_observed":{observedCount:"number",hasObservedCommand:"boolean",matchedNoTestsCount:"number",runnerMismatchCount:"number",runnerResolved:"boolean",resolvedPackageManager:{kind:"string_enum",values:["npm","pnpm","yarn","bun"]}},"zeus.publish_rejected":{reason:"string",checkCount:"number",findingCount:"number",verdict:"string",firstAttempt:"boolean",attemptOrdinal:"number",contractVersion:"string",schemaPath:"string",schemaIssue:"string",schemaValue:"string"},"zeus.publish_secret_value_redacted":{count:"number"},"zeus.publish_notes_unverified":{attemptOrdinal:"number",findingCount:"number",contractVersion:"string"},"zeus.publish_empty_review_unattested":{attemptOrdinal:"number",noteCount:"number",contractVersion:"string"},"zeus.publish_blocking_downgraded":{detail:{kind:"string_enum",values:["no_base_run","no_matched_pair"]},blockingCount:"number",attemptOrdinal:"number"},"zeus.scout.health":{health:{kind:"string_enum",values:by},dispatch_mode:{kind:"string_enum",values:["targeted","broad"]},unresolvedInvestigationCount:"number",publishOutcome:{kind:"string_enum",values:yy},candidateTotal:"number",expectedScoutCount:"number",observedScoutCount:"number",statuses:"string_array"},"zeus.scout.agreement":{candidateCount:"number",publishedCandidateCount:"number",examinedRejectedCount:"number",notExaminedCount:"number",notExaminedEnvironmentCount:"number",notExaminedExternalCount:"number",notExaminedNoneCount:"number",notDeliveredCount:"number",notSelectedCount:"number",verifierRefutedCount:"number",reproWithheldCount:"number",verifierReportedCount:"number",verifierReportedPublishedCount:"number"},"zeus.candidate_ledger":{conserved:"boolean",candidateCount:"number",droppedCount:"number",publishedCandidateCount:"number",rejectedCount:"number",notDeliveredCount:"number",notSelectedCount:"number",verifierRefutedCount:"number",reproWithheldCount:"number",verifierReportedCount:"number",violationStage:{kind:"string_enum",values:["none",...Sy]}},"zeus.judge.below_bar_unfiled":{count:"number"},"zeus.stage.peer_triage_completed":{reason:"string",threads:"number",stageStatus:{kind:"string_enum",values:["ok","failed","skipped"]}},"zeus.eval.settings_applied":{armId:"string",prUrl:"string",repo:"string",securityGuidance:"boolean"},"zeus.reviewer_proxy.upstream_ok":{model:"string",upstreamProvider:"string"},"zeus.review_investigation.read_evidence":{referenceKind:{kind:"string_enum",values:["inline","canonical","repaired","rejected"]}},"zeus.verifier.terminal":{verifierStatus:{kind:"string_enum",values:Py},effort:"string",stall:{kind:"object",fields:Ry},codexTcpSockets:{kind:"object",fields:OT}},"zeus.scout.terminal":{scoutStatus:{kind:"string_enum",values:Py},stall:{kind:"object",fields:Ry},investigationId:"string",effort:"string",theme:"string"},"zeus.scout.completion":{role:"string",status:"string",durationMs:"number",inputTokens:"number",outputTokens:"number",candidateCount:"number"},"zeus.scout.bundle_omitted":{omittedCandidateCount:"number",droppedExcerptCount:"number"},"zeus.scout.patch_truncated":{role:"string",sampleIndex:"number",investigationId:"string",ownedFileCount:"number",truncatedFileCount:"number",omittedFileCount:"number",withheldChars:"number"},"zeus.scout.patch_unavailable":{role:"string",sampleIndex:"number",reason:"string",ownedFileCount:"number",patchedFileCount:"number"},"zeus.doc_lookup":{kind:{kind:"string_enum",values:["search","fetch"]},status:{kind:"string_enum",values:Mp},thread:{kind:"string_enum",values:["primary","scout"]},investigationId:"string",durationMs:"number",resultCount:"number"},"zeus.review.prompt_budget_truncated":{excessChars:"number",reviewContextPacketTruncated:"boolean",droppedSectionNames:"string_array",truncatedSectionNames:"string_array",beforeChars:"number",afterChars:"number"},"zeus.review.prompt_budget_externalized":{beforeChars:"number",afterChars:"number",budgetChars:"number",externalizedSectionNames:"string_array"}};var Cy=["prompt.started","context.selected","files.inspected","tools.run","files.edited","commands.run","publish_gate.result","verification.result","git.commit","git.push","pr.open","onboarding.discovery_delivered","onboarding.discovery_tool_blocked"],Oy=["observed"],Ny=["sandbox_bridge","control_plane"],Dy=["started","completed","failed","skipped","blocked"];var NT=["session.create","sandbox.spawn","bridge.connect","bridge.event","prompt.enqueue","prompt.context","prompt.dispatch","agent.session.create","tool.call","tool.update","tool.result","text.delta","prompt.complete","git.push","pr.open","timeline","error","user_question","idle"],Fp=new Set(["step_start","step_finish","branch_changed","subagent_start","subagent_complete","subagent_text","subagent_tool_call","memory_usage","memory_recall_usage"]);function Pe(e){return typeof e=="number"&&Number.isFinite(e)}function te(e){return e===void 0||typeof e=="string"}function zy(e){return e===void 0||L(e)}function ka(e){return e==null||typeof e=="string"}function Fe(e,t){return typeof e=="string"&&t.includes(e)}function DT(e){return typeof e=="string"||L(e)&&typeof e.label=="string"&&te(e.description)}function ce(e){return L(e)?te(e.bridgeEventType)&&!Uy(e)&&zy(e.bridgeData):!1}function Uy(e){return L(e)?typeof e.bridgeEventType=="string"&&Fp.has(e.bridgeEventType):!1}function Ta(e,t){if(!L(t))return!1;switch(e){case"session.create":return ce(t)&&Fe(t.source,["ui","cli","slack","api"])&&(t.sessionKind===void 0||Fe(t.sessionKind,["repo"]));case"sandbox.spawn":return ce(t)&&Fe(t.status,["requested","started","ready","failed"])&&(t.attempt===void 0||Pe(t.attempt))&&te(t.reason);case"bridge.connect":return ce(t)&&Fe(t.status,["connected","disconnected","reconnecting"]);case"bridge.event":return typeof t.bridgeEventType=="string"&&!Uy(t)&&zy(t.bridgeData)&&(t.intermediate===void 0||typeof t.intermediate=="boolean");case"prompt.enqueue":return ce(t)&&ka(t.actorUserId)&&te(t.agent)&&ka(t.model);case"prompt.context":return ce(t);case"prompt.dispatch":return ce(t)&&ka(t.startupAttemptId);case"agent.session.create":return ce(t)&&Fe(t.status,["started","complete","failed"])&&te(t.agentSessionId)&&te(t.agent);case"tool.call":return ce(t)&&typeof t.callId=="string"&&typeof t.tool=="string"&&te(t.summary)&&(t.args===void 0||L(t.args));case"tool.result":return ce(t)&&typeof t.callId=="string"&&typeof t.tool=="string"&&typeof t.ok=="boolean"&&te(t.error);case"text.delta":return ce(t)&&Fe(t.channel,["output","reasoning"])&&typeof t.text=="string"&&te(t.partId);case"prompt.complete":return ce(t)&&typeof t.success=="boolean"&&te(t.error)&&te(t.errorCode);case"git.push":return ce(t)&&typeof t.branch=="string"&&typeof t.success=="boolean"&&te(t.error);case"pr.open":return ce(t)&&typeof t.success=="boolean"&&te(t.prUrl)&&(t.prNumber===void 0||Pe(t.prNumber))&&te(t.error);case"timeline":return ce(t)&&Fe(t.eventType,Cy)&&Fe(t.source,Oy)&&Fe(t.observer,Ny)&&typeof t.summary=="string"&&t.summary.trim().length>0&&(t.status===void 0||Fe(t.status,Dy))&&(t.metadata===void 0||L(t.metadata));case"error":return ce(t)&&typeof t.message=="string"&&te(t.code);case"user_question":return ce(t)&&typeof t.questionId=="string"&&typeof t.question=="string"&&(t.options===void 0||Array.isArray(t.options)&&t.options.every(DT));case"idle":return ce(t)&&(t.sessionEditCount===void 0||Pe(t.sessionEditCount))&&(t.sessionPromptCount===void 0||Pe(t.sessionPromptCount));case"tool.update":return!1;default:return!1}}function zT(e){return typeof e=="string"&&NT.includes(e)}function Ly(e){if(!L(e))throw new Error("Invalid ArcanistEvent");if(!zT(e.phase))throw new Error("Invalid phase");if(typeof e.timestampMs!="number"||!Number.isFinite(e.timestampMs))throw new Error("Invalid timestampMs");if(typeof e.sessionId!="string"||e.sessionId.length===0)throw new Error("Invalid sessionId");if(e.promptId!==void 0&&typeof e.promptId!="string")throw new Error("Invalid promptId");if(e.sandboxId!==void 0&&typeof e.sandboxId!="string")throw new Error("Invalid sandboxId");if(!L(e.payload))throw new Error("Invalid payload");if(e.formatVersion!==void 0&&e.formatVersion!==2)throw new Error("Invalid formatVersion");if(e.formatVersion===2&&["type","timestamp","content","messageId","bridgeData","bridgeEventType"].some(r=>r in e))throw new Error("Legacy fields in version 2 envelope");if(!(e.formatVersion===2||!("bridgeData"in e.payload||"bridgeEventType"in e.payload)?UT(e.phase,e.payload):Ta(e.phase,e.payload)))throw new Error(`Invalid payload for phase ${e.phase}`);return e}function UT(e,t){if("bridgeData"in t||"bridgeEventType"in t||["startedAt","completedAt","inputEstimatedTokens","outputEstimatedTokens","outputChars","sessionEditCount","sessionPromptCount","connectionGeneration"].some(o=>t[o]!==void 0&&!Pe(t[o])))return!1;for(let o of["exitCode","durationMs","startedAtMs"])if(t[o]!==void 0&&t[o]!==null&&!Pe(t[o]))return!1;if(!te(t.protocolStatus)||t.startObserved!==void 0&&typeof t.startObserved!="boolean")return!1;switch(e){case"bridge.event":return LT(t);case"tool.update":return typeof t.callId=="string"&&typeof t.tool=="string"&&typeof t.status=="string";case"bridge.connect":return typeof t.status=="string"&&(t.kind===void 0||t.kind==="heartbeat")&&te(t.echoNonce);case"prompt.dispatch":switch(t.kind){case void 0:return ka(t.startupAttemptId);case"prompt_accepted":return te(t.startupAttemptId);case"agent_prompt_sent":return te(t.startupAttemptId)&&te(t.agentSessionId)&&te(t.agentRuntimeBackend);case"prompt_activity":return Fe(t.activityPhase,["agent_runtime_initializing","session_creating","event_subscribing","prompt_preparing","prompt_dispatching","waiting_for_agent_event"])&&te(t.detail)&&(t.childWorkActive===void 0||t.childWorkActive===!0);case"agent_progress":return typeof t.step=="string"&&typeof t.label=="string"&&(t.terminal===void 0||typeof t.terminal=="boolean");default:return!1}case"text.delta":return Ta(e,t)&&(t.finalAnswer===void 0||t.finalAnswer===!0);case"prompt.complete":return Ta(e,t)&&(t.idleObserved===void 0||typeof t.idleObserved=="boolean")&&te(t.btSpanId);default:return Ta(e,t)}}function LT(e){switch(e.kind){case"patch":return Array.isArray(e.files)&&e.files.every(t=>typeof t=="string");case"prompt_telemetry_start":return te(e.btSpanId);case"post_execution":return typeof e.hasChanges=="boolean"&&(e.promptIntendsChange===void 0||typeof e.promptIntendsChange=="boolean");case"runtime_info":return L(e.runtime);case"sandbox_undersized":return Pe(e.oomKills);case"sandbox_enospc":return typeof e.source=="string";case"qa_memory_maintenance_codex_policy_probe":return typeof e.completed=="boolean"&&(e.codexHomeWriteStatus==="allowed"||e.codexHomeWriteStatus==="denied"||e.codexHomeWriteStatus==="missing")&&(e.checkoutWriteStatus==="allowed"||e.checkoutWriteStatus==="denied"||e.checkoutWriteStatus==="missing")&&typeof e.draftUnderDreamerDrafts=="boolean"&&typeof e.draftSubmissionMatched=="boolean";case"sandbox_resource_sample":return["memoryUsedBytes","memoryLimitBytes","memoryUsedPercent","swapUsedBytes","cpuUsedPercent","pidsCurrent","pidsLimit"].every(t=>e[t]===void 0||Pe(e[t]));case"usage":return["inputTokens","outputTokens","contextTokens"].every(t=>Pe(e[t]));case"estimated_input_composition":return L(e.components);case"retry_status":return Pe(e.attempt)&&typeof e.message=="string";case"tool_truncated":return typeof e.callId=="string"&&typeof e.tool=="string";case"compaction_start":return e.contextTokens===void 0||Pe(e.contextTokens);case"compaction_complete":return["contextTokensBefore","contextTokensAfter"].every(t=>e[t]===void 0||Pe(e[t]));case"context_fill_warning":return["fillPercent","contextTokens","contextWindow"].every(t=>Pe(e[t]));case"prompt_result":return!0;case"raw_agent_runtime":return!0;case"todo_update":return Array.isArray(e.todos)&&e.todos.every(t=>L(t)&&typeof t.id=="string"&&typeof t.content=="string"&&typeof t.status=="string");case"zeus_telemetry":return typeof e.eventName=="string";default:return!1}}function jy(e){switch(e.phase){case"bridge.event":return e.payload.kind==="raw_agent_runtime"&&e.payload.runtimeEventType==="codex_event"?"codex_event":e.payload.kind;case"bridge.connect":return e.payload.kind==="heartbeat"?"heartbeat":e.phase;case"prompt.dispatch":return e.payload.kind??"prompt_accepted";case"text.delta":return e.payload.finalAnswer?"final_answer":e.payload.channel==="reasoning"?"reasoning":"token";case"tool.call":return"tool_call";case"tool.update":return"tool_update";case"tool.result":return"tool_result";case"prompt.complete":return"execution_complete";case"user_question":return"question";case"error":return"error";case"idle":return"session_idle";case"agent.session.create":return"agent_session_created";case"timeline":return"agent_timeline";case"git.push":return e.payload.success?"push_complete":"push_error";default:return e.phase}}function Bp(e,t){if(!L(e))throw new Error("Invalid event");if(e.formatVersion!==void 0)return Ly(e);if(typeof e.phase=="string"&&L(e.payload)){let f=e,m=e.payload;if(!L(m))throw new Error("Invalid payload");if(!("bridgeData"in m||"bridgeEventType"in m))return f;let g=L(m.bridgeData)?m.bridgeData:{},{bridgeData:h,bridgeEventType:b,...$}=m;if(["session.create","sandbox.spawn","prompt.enqueue","pr.open","git.push"].includes(f.phase))return{...f,payload:{...g,...$}};let I=typeof m.bridgeEventType=="string"?m.bridgeEventType:jy(f),k=f.phase==="text.delta"&&I==="text"?"token":f.phase==="prompt.dispatch"&&I==="prompt_processing"?"prompt_accepted":I,C=Bp({...g,type:k,timestamp:f.timestampMs,sandboxId:f.sandboxId,messageId:f.promptId??g.messageId,promptId:f.promptId??g.promptId,ackId:e.ackId},f.sessionId??"");return C.phase==="bridge.connect"&&C.payload.kind==="heartbeat"&&delete $.status,$.startupAttemptId===null&&delete $.startupAttemptId,{...C,payload:{...C.payload,...$}}}if(typeof e.type!="string"||Fp.has(e.type))throw new Error("Removed or invalid bridge event");if(t===void 0)throw new Error("Missing sessionId for legacy event");let{type:r,timestamp:o,messageId:n,promptId:i,sandboxId:a,ackId:s,...u}=e,c={sessionId:t,timestampMs:typeof o=="number"?o:Number.isFinite(Date.parse(String(o)))?Date.parse(String(o)):Date.now(),...typeof i=="string"?{promptId:i}:typeof n=="string"?{promptId:n}:{},...typeof a=="string"?{sandboxId:a}:{},...typeof s=="string"?{ackId:s}:{}},l,d;switch(r){case"heartbeat":l="bridge.connect",d={...u,kind:"heartbeat"};break;case"prompt_activity":{let{phase:f,...m}=u;l="prompt.dispatch",d={...m,kind:r,activityPhase:f};break}case"prompt_accepted":case"agent_progress":case"agent_prompt_sent":l="prompt.dispatch",d={...u,kind:r};break;case"token":case"reasoning":case"final_answer":{let{content:f,...m}=u;l="text.delta",d={...m,channel:r==="reasoning"?"reasoning":"output",text:f,...r==="final_answer"?{finalAnswer:!0,partId:u.partId??`${n}:final_answer`}:{}};break}case"tool_call":{let{args:f,...m}=u;l="tool.call",d=L(f)?{...m,args:f}:m;break}case"tool_update":l="tool.update",d=u;break;case"tool_result":l="tool.result",d={...u,ok:u.error===void 0};break;case"execution_complete":l="prompt.complete",d=u;break;case"error":case"session_error":{let{error:f,errorDetails:m,...g}=u;l="error",d={...g,message:f,...m!==void 0?{details:m}:{}};break}case"question":l="user_question",d=u;break;case"session_idle":l="idle",d=u;break;case"agent_session_created":l="agent.session.create",d={...u,status:"complete"};break;case"agent_timeline":l="timeline",d=u;break;case"codex_event":l="bridge.event",d={kind:"raw_agent_runtime",runtimeEventType:r,...u};break;case"zeus_telemetry":{let{kind:f,...m}=u;l="bridge.event",d={...m,kind:r,...f!==void 0?{lookupKind:f}:{}};break}case"patch":case"prompt_telemetry_start":case"post_execution":case"runtime_info":case"sandbox_undersized":case"sandbox_enospc":case"sandbox_resource_sample":case"usage":case"estimated_input_composition":case"retry_status":case"tool_truncated":case"compaction_start":case"compaction_complete":case"context_fill_warning":case"prompt_result":case"raw_agent_runtime":case"todo_update":l="bridge.event",d={...u,kind:r};break;default:l="bridge.event",d={...u,kind:"raw_agent_runtime",runtimeEventType:r}}return{...c,phase:l,payload:d}}var My=["repo_scan_started","stack_detected","dependencies_resolved","setup_authored","runtime_profile_authored","boot_attempt_started","boot_verified","environment_saved","build_started","smoke_started","smoke_passed","smoke_failed","escalated_to_engineer","engineer_unblocked","escalated_to_customer","question_for_customer","customer_unblocked","completed","failed"],vj=My.filter(e=>e!=="runtime_profile_authored"&&e!=="boot_attempt_started"&&e!=="boot_verified"),jT=["started","succeeded","failed"],MT=200;function ZT(e){return typeof e=="string"&&My.includes(e)}function FT(e){return typeof e=="string"&&jT.includes(e)}function Zy(e){if(!L(e))return null;let t=e;if(!ZT(t.stage))return null;let r=FT(t.status)?t.status:"started",n=(typeof t.detail=="string"?t.detail.trim():"").slice(0,MT);return{stage:t.stage,status:r,...n?{detail:n}:{}}}var BT="Arcanist blocked this malformed search command before execution.",VT=/\/bin\/bash:\s+-c:\s+line\s+\d+:\s+unexpected EOF while looking for matching [`'\"][`'\"]?/i,GT=24,qT=new Set(["session.updated","session.diff","server.heartbeat","session.idle","lsp.updated","lsp.client.diagnostics"]);function Aa(e){return"phase"in e&&typeof e.phase=="string"}var Fy=new WeakMap;function Pa(e){let t=Fy.get(e);return t||(t=Bp(e),Fy.set(e,t)),t}function Ra(e){return Pa(e).payload}function WT(e){let t=Ra(e);return{...t,...t.activityPhase?{phase:t.activityPhase}:{}}}function Hy(e){return Ra(e).kind}function Ky(e){return Pa(e).promptId}function de(e,t){let r=Ky(e);return r&&t.promptId===void 0?{...t,promptId:r}:t}function HT(e,t,r){switch(t){case"tool_call":return de(e,{...r,...typeof r.callId=="string"&&r.callId.length>0&&!(typeof r.id=="string"&&r.id.length>0)?{id:r.callId}:{},...L(r.args)&&r.input===void 0?{input:r.args}:{}});case"tool_update":return de(e,{...r,...typeof r.callId=="string"&&r.callId.length>0&&!(typeof r.id=="string"&&r.id.length>0)?{id:r.callId}:{}});default:return de(e,r)}}function Yr(e){return Aa(e)?Ky(e):L(e.data)&&typeof e.data.promptId=="string"&&e.data.promptId.length>0?e.data.promptId:void 0}function On(e){if(!Aa(e))return e.type;let t=Ra(e),r=Hy(e);if(r==="prompt_activity")return"prompt_activity";if(r==="agent_progress")return"agent_progress";switch(Pa(e).phase){case"text.delta":return t.channel==="reasoning"?"reasoning":"text";case"tool.call":return"tool_call";case"tool.update":case"tool.result":return"tool_update";case"prompt.enqueue":return"prompt_enqueued";case"prompt.dispatch":return"prompt_processing";case"prompt.complete":return t.success===!1?"prompt_failed":"prompt_completed";case"user_question":return"question";case"error":return"session_error";case"bridge.event":return r??e.phase;case"timeline":return r??"agent_timeline";case"idle":return r??"session_idle";default:return r??e.phase}}function KT(e){if(Aa(e))return Number.isFinite(e.timestampMs)&&Number.isFinite(new Date(e.timestampMs).getTime())?new Date(e.timestampMs).toISOString():void 0;let t=L(e.data)?e.data.timestamp:void 0;if(typeof t=="string"&&t.length>0||typeof t=="number"){let o=new Date(t);if(Number.isFinite(o.getTime()))return o.toISOString()}let r=e.timestamp;if(typeof r=="string"&&r.length>0||typeof r=="number"){let o=new Date(r);if(Number.isFinite(o.getTime()))return o.toISOString()}}function JT(e){let t=KT(e);if(!t)return;let r=Date.parse(t);return Number.isFinite(r)?r:void 0}function Gp(e){if(!Aa(e))return L(e.data)?e.data:void 0;let t=Ra(e),r=Hy(e),o=de(e,WT(e));switch(Pa(e).phase){case"text.delta":return de(e,{...o,...typeof t.partId=="string"&&t.partId.length>0?{id:t.partId}:{},text:t.text});case"tool.call":return de(e,{...o,id:t.callId,tool:t.tool,input:L(t.args)?t.args:{},summary:typeof t.summary=="string"?t.summary:""});case"tool.update":return de(e,{...o,id:t.callId,status:t.status});case"tool.result":return de(e,{...o,id:t.callId,status:typeof o.status=="string"?o.status:t.ok?"completed":"error"});case"prompt.enqueue":return de(e,{...o,source:t.source,...t.actorUserId!==void 0?{actorUserId:t.actorUserId}:{},...typeof t.agent=="string"?{agent:t.agent}:{},...t.model!==void 0?{model:t.model}:{}});case"prompt.dispatch":return de(e,{...o,...t.startupAttemptId!==void 0?{startupAttemptId:t.startupAttemptId}:{}});case"prompt.complete":return de(e,{...o,success:t.success,...typeof t.error=="string"?{error:t.error}:{},...typeof t.errorCode=="string"?{code:t.errorCode}:{},...t.errorDetails!==void 0?{errorDetails:t.errorDetails}:{}});case"user_question":return de(e,{...o,id:t.questionId,question:t.question,...Array.isArray(t.options)?{options:t.options}:{}});case"error":return de(e,{...o,error:t.message,...typeof t.code=="string"?{code:t.code}:{},...typeof t.command=="string"?{command:t.command}:{},...t.details!==void 0?{errorDetails:t.details}:{}});case"bridge.event":return HT(e,r,o);case"timeline":return de(e,{...o,...typeof t.eventType=="string"?{eventType:t.eventType}:{},...typeof t.source=="string"?{source:t.source}:{},...typeof t.observer=="string"?{observer:t.observer}:{},...typeof t.summary=="string"?{summary:t.summary}:{},...typeof t.status=="string"?{status:t.status}:{},...L(t.metadata)?{metadata:t.metadata}:{}});case"idle":return de(e,{...o,...typeof t.sessionEditCount=="number"?{sessionEditCount:t.sessionEditCount}:{},...typeof t.sessionPromptCount=="number"?{sessionPromptCount:t.sessionPromptCount}:{}});default:return de(e,o)}}function Jy(e){let t=Gp(e);return{raw:e,type:On(e),data:t,promptId:Yr(e)}}function By(e){return e.map(t=>Jy(t))}function YT(e,t){return t?t.length<GT?!0:!e.endsWith(t):!1}function XT(){return{streamableIndexById:new Map,segmentOrdinalByStreamId:new Map,concatByStreamId:new Map,interstitialScanEndByStreamId:new Map}}function QT(e,t){return`${e}:${t}`}function Vy(e,t){return t===0?e:`${e}#${t}`}function Mt(e,t,r){return typeof e?.id=="string"?e.id:`${t}-${r}`}function eA(e){let t=e?.text;if(typeof t=="string")return t;let r=e?.content;return typeof r=="string"?r:""}function tA(e){switch(e.type){case"agent_progress":case"retry_status":case"zeus_telemetry":case"agent_timeline":return!0;default:return!1}}function nA(e,t,r,o){if(o===e.length-1)return!0;let n=Math.max(o+1,t.interstitialScanEndByStreamId.get(r)??o+1);for(let i=n;i<e.length;i++)if(!tA(e[i]))return!1;return t.interstitialScanEndByStreamId.set(r,e.length),!0}function V(e){return typeof e?.promptId=="string"?e.promptId:void 0}function rA(e,t,r,o,n,i,a){let s=QT(r,o),u=t.concatByStreamId.get(s)??"",c=t.streamableIndexById.get(s),l=YT(u,n);if(c!==void 0){let m=e[c];if(m.type===r&&l&&nA(e,t,s,c))return m.text+=n,t.concatByStreamId.set(s,u+n),!m.promptId&&i&&(m.promptId=i),m.type==="reasoning"&&a!==void 0&&(m.startedAtMs===void 0&&(m.startedAtMs=a),m.endedAtMs=a),!0;if(c===e.length-1||!l)return!1}if(u&&!l)return!1;let d=t.segmentOrdinalByStreamId.get(s),f=d===void 0?0:d+1;return t.segmentOrdinalByStreamId.set(s,f),t.streamableIndexById.set(s,e.length),t.concatByStreamId.set(s,u+n),t.interstitialScanEndByStreamId.set(s,e.length+1),r==="text"?e.push({type:"text",id:Vy(o,f),...f>0?{streamId:o}:{},text:n,...i?{promptId:i}:{}}):e.push({type:"reasoning",id:Vy(o,f),...f>0?{streamId:o}:{},text:n,...i?{promptId:i}:{},...a!==void 0?{startedAtMs:a,endedAtMs:a}:{}}),!0}function iA(e,t){return{...e,...t,tool:t.tool??e.tool,summary:t.summary??e.summary,...t.promptId===void 0&&e.promptId!==void 0?{promptId:e.promptId}:{},...t.input===void 0&&e.input!==void 0?{input:e.input}:{},...t.toolStatus===void 0&&e.toolStatus!==void 0?{toolStatus:e.toolStatus}:{},...t.truncated===void 0&&e.truncated!==void 0?{truncated:e.truncated}:{},...t.inputEstimatedTokens===void 0&&e.inputEstimatedTokens!==void 0?{inputEstimatedTokens:e.inputEstimatedTokens}:{},...t.outputEstimatedTokens===void 0&&e.outputEstimatedTokens!==void 0?{outputEstimatedTokens:e.outputEstimatedTokens}:{},...t.outputChars===void 0&&e.outputChars!==void 0?{outputChars:e.outputChars}:{},...t.failure===void 0&&e.failure!==void 0?{failure:e.failure}:{},...t.duplicateCount===void 0&&e.duplicateCount!==void 0?{duplicateCount:e.duplicateCount}:{}}}function Vp(e){return e==="running"||e==="completed"||e==="error"?e:void 0}function oA(e,t){let r=Vp(t?.status);return{...e,...r?{toolStatus:r}:{},...typeof t?.outputEstimatedTokens=="number"?{outputEstimatedTokens:t.outputEstimatedTokens}:{},...typeof t?.outputChars=="number"?{outputChars:t.outputChars}:{},...L(t?.failure)?{failure:t.failure}:{},...typeof t?.truncated=="boolean"?{truncated:t.truncated}:{}}}function aA(){return{merged:[],streams:XT(),toolCallIndexById:new Map,agentProgressIndexByKey:new Map,questionIndexById:new Map,narrationIndex:null,malformedSearchBlockedPromptIds:new Set,malformedSearchBlockedWithoutPrompt:!1}}function sA(e){return typeof e=="string"&&e.includes(BT)}function uA(e){return VT.test(e)}function cA(e){return e.malformedSearchBlockedPromptIds.size===0&&!e.malformedSearchBlockedWithoutPrompt?e.merged:e.merged.filter(t=>t.type!=="text"?!0:!((t.promptId?e.malformedSearchBlockedPromptIds.has(t.promptId):e.malformedSearchBlockedWithoutPrompt)&&uA(t.text)))}function De(e,t){t&&e.merged.push(t)}function lA(e,t){return{type:"compaction_start",id:`cs-${e?.timestamp??t}`,...V(e)?{promptId:V(e)}:{},...typeof e?.contextTokens=="number"?{contextTokens:e.contextTokens}:{}}}function dA(e,t){return{type:"compaction_complete",id:`cc-${e?.timestamp??t}`,...V(e)?{promptId:V(e)}:{},...typeof e?.contextTokensBefore=="number"?{contextTokensBefore:e.contextTokensBefore}:{},...typeof e?.contextTokensAfter=="number"?{contextTokensAfter:e.contextTokensAfter}:{}}}function pA(e,t){return{type:"context_fill_warning",id:`cfw-${e?.timestamp??t}`,...V(e)?{promptId:V(e)}:{},fillPercent:typeof e?.fillPercent=="number"?e.fillPercent:Number(e?.fillPercent??0),...typeof e?.contextTokens=="number"?{contextTokens:e.contextTokens}:{},...typeof e?.contextWindow=="number"?{contextWindow:e.contextWindow}:{}}}function mA(e,t){return{type:"tool_truncated",id:typeof e?.callId=="string"?e.callId:String(t),tool:typeof e?.tool=="string"?e.tool:"",...e?.reason==="truncation_marker"||e?.reason==="size_threshold"?{reason:e.reason}:{},...V(e)?{promptId:V(e)}:{}}}function fA(e,t){return{type:"retry_status",id:`rs-${e?.timestamp??t}`,...V(e)?{promptId:V(e)}:{},attempt:typeof e?.attempt=="number"?e.attempt:Number(e?.attempt??0),message:typeof e?.message=="string"?e.message:"Retrying...",...typeof e?.nextRetryAt=="string"?{nextRetryAt:e.nextRetryAt}:{},...typeof e?.provider=="string"?{provider:e.provider}:{},...typeof e?.errorCode=="string"?{errorCode:e.errorCode}:{},...typeof e?.scope=="string"?{scope:e.scope}:{},...typeof e?.maxAttempts=="number"?{maxAttempts:e.maxAttempts}:{},...typeof e?.reason=="string"?{reason:e.reason}:{},...typeof e?.retryAfterMs=="number"?{retryAfterMs:e.retryAfterMs}:{},...typeof e?.fallbackModel=="string"?{fallbackModel:e.fallbackModel}:{}}}function gA(e){return e==="spawn_provider_error"?{message:"Sandbox failed to start; retrying on a fresh sandbox",scope:"sandbox_spawn"}:e==="spawn_deadline_no_object"||e==="spawn_deadline_no_bridge"||e==="spawn_timeout"?{message:"Sandbox did not start in time; retrying on a fresh sandbox",scope:"sandbox_spawn"}:{message:"Sandbox dropped mid-task; retrying on a fresh sandbox",scope:"sandbox_disconnect"}}function hA(e,t){let r=typeof e?.attempt=="number"?e.attempt:Number(e?.attempt??0),o=typeof e?.cap=="number"?e.cap:void 0,n=typeof e?.retryPromptId=="string"?e.retryPromptId:V(e),i=typeof e?.reason=="string"?e.reason:void 0,{message:a,scope:s}=gA(i);return{type:"retry_status",id:`pr-retry-${n??t}`,...n?{promptId:n}:{},attempt:r,message:a,scope:s,...o!==void 0?{maxAttempts:o}:{},...i?{reason:i}:{}}}function vA(e,t){let r=typeof e?.eventName=="string"?e.eventName:Zp;return{type:Zp,id:`zeus-tel-${e?.timestamp??t}-${r}`,eventName:r,...V(e)?{promptId:V(e)}:{}}}function _A(e,t){return{type:"agent_timeline",id:`atl-${t}-${typeof e?.eventType=="string"?e.eventType:"unknown"}`,eventType:typeof e?.eventType=="string"?e.eventType:"unknown",source:typeof e?.source=="string"?e.source:"observed",observer:typeof e?.observer=="string"?e.observer:"unknown",summary:typeof e?.summary=="string"?e.summary:"Observed agent timeline event.",...typeof e?.status=="string"?{status:e.status}:{},...L(e?.metadata)?{metadata:e.metadata}:{},...V(e)?{promptId:V(e)}:{}}}function yA(e,t){let r=V(e);return{type:"agent_progress",id:Mt(e,"ap",t),step:typeof e?.step=="string"?e.step:"unknown",label:typeof e?.label=="string"?e.label:"Working",terminal:e?.terminal===!0,...r?{promptId:r}:{}}}function bA(e,t){let r=yA(e,t.merged.length),o=`${r.promptId??""}\0${r.step}`,n=t.agentProgressIndexByKey.get(o);if(n!==void 0){let i=t.merged[n];t.merged[n]=i.type==="agent_progress"?{...r,id:i.id}:r;return}t.agentProgressIndexByKey.set(o,t.merged.length),t.merged.push(r)}function SA(e,t){return{type:"session_error",id:Mt(e,"err",t),error:typeof e?.error=="string"?e.error:"Unknown error",...V(e)?{promptId:V(e)}:{},...typeof e?.code=="string"?{code:e.code}:{},...typeof e?.command=="string"?{command:e.command}:{}}}function wA(e,t){if(e?.code!=="malformed_search_command"&&!sA(e?.error))return;let r=V(e);r?t.malformedSearchBlockedPromptIds.add(r):t.malformedSearchBlockedWithoutPrompt=!0}function xA(e,t){return{type:"session_resumed_cold",id:Mt(e,"rescold",t),...typeof e?.reason=="string"?{reason:e.reason}:{},...typeof e?.lostSnapshotImageId=="string"?{lostSnapshotImageId:e.lostSnapshotImageId}:e?.lostSnapshotImageId===null?{lostSnapshotImageId:null}:{},...V(e)?{promptId:V(e)}:{}}}function $A(e,t){let r=typeof e?.partType=="string"?e.partType:void 0,o=typeof e?.eventType=="string"?e.eventType:void 0;return r==="text"||o&&qT.has(o)?null:{type:"raw_agent_runtime",id:Mt(e,"raw",t),...V(e)?{promptId:V(e)}:{},...r?{partType:r}:{},...o?{eventType:o}:{},data:e??{}}}function IA(e,t){let r=Array.isArray(e?.files)?e.files.filter(o=>typeof o=="string"):[];return r.length===0?null:{type:"patch",id:`patch-${t}`,files:r,...V(e)?{promptId:V(e)}:{}}}function Gy(e,t,r,o){rA(r.merged,r.streams,e,Mt(t,e,r.merged.length),eA(t),V(t),o)}function EA(e,t){let r=Mt(e,"tool",t.merged.length),o=t.toolCallIndexById.get(r);if(o!==void 0){let n=t.merged[o];if(n.type==="tool_call"){let i=Vp(e?.toolStatus),a=L(e?.input)?e.input:void 0,s={type:"tool_call",id:r,...typeof e?.tool=="string"?{tool:e.tool}:typeof e?.toolName=="string"?{tool:e.toolName}:{},...typeof e?.summary=="string"&&e.summary.length>0?{summary:e.summary}:{},...V(e)?{promptId:V(e)}:{},...a&&Object.keys(a).length>0?{input:a}:{},...i?{toolStatus:i}:{},...typeof e?.truncated=="boolean"?{truncated:e.truncated}:{},...typeof e?.inputEstimatedTokens=="number"?{inputEstimatedTokens:e.inputEstimatedTokens}:{},...typeof e?.outputEstimatedTokens=="number"?{outputEstimatedTokens:e.outputEstimatedTokens}:{},...typeof e?.outputChars=="number"?{outputChars:e.outputChars}:{},...L(e?.failure)?{failure:e.failure}:{}};t.merged[o]=iA(n,s)}}else{let n=Vp(e?.toolStatus),i={type:"tool_call",id:r,tool:typeof e?.tool=="string"?e.tool:typeof e?.toolName=="string"?e.toolName:"unknown",summary:typeof e?.summary=="string"?e.summary:"",...V(e)?{promptId:V(e)}:{},...L(e?.input)?{input:e.input}:{},...n?{toolStatus:n}:{},...typeof e?.truncated=="boolean"?{truncated:e.truncated}:{},...typeof e?.inputEstimatedTokens=="number"?{inputEstimatedTokens:e.inputEstimatedTokens}:{},...typeof e?.outputEstimatedTokens=="number"?{outputEstimatedTokens:e.outputEstimatedTokens}:{},...typeof e?.outputChars=="number"?{outputChars:e.outputChars}:{},...L(e?.failure)?{failure:e.failure}:{}};t.toolCallIndexById.set(r,t.merged.length),t.merged.push(i)}}function kA(e,t){let r=typeof e?.id=="string"?e.id:"",o=t.toolCallIndexById.get(r);if(o===void 0)return;let n=t.merged[o];n.type==="tool_call"&&(t.merged[o]=oA(n,e))}function TA(e,t){let r={type:"question",id:Mt(e,"question",t.merged.length),question:typeof e?.question=="string"?e.question:"",answer:e?.answer==null?null:String(e.answer),...V(e)?{promptId:V(e)}:{},...Array.isArray(e?.options)?{options:e.options}:{}};t.questionIndexById.set(r.id,t.merged.length),t.merged.push(r)}function AA(e,t){let r=typeof e?.id=="string"?e.id:void 0;if(!r)return;let o=t.questionIndexById.get(r);if(o===void 0)return;let n=t.merged[o];n?.type==="question"&&(t.merged[o]={...n,answer:e?.answer==null?null:String(e.answer)})}function PA(e,t){let r=Array.isArray(e?.todos)?e.todos:[];if(r.length!==0)for(let o=t.merged.length-1;o>=0;o--){let n=t.merged[o];if(n.type==="tool_call"&&n.tool.toLowerCase()==="todowrite"){t.merged[o]={...n,input:{...n.input,todos:r}};break}}}function RA(e,t){let r=Zy(e);if(!r)return;let o=V(e);t.merged.push({type:"onboarding_status",id:`onboarding_status:${t.merged.length}`,stage:r.stage,status:r.status,...r.detail?{detail:r.detail}:{},...o?{promptId:o}:{}})}function CA(e,t){let r=typeof e?.text=="string"?e.text.trim():"";if(!r)return;let o=V(e),n={type:"narration",id:"narration",text:r,...o?{promptId:o}:{}};t.narrationIndex===null?(t.narrationIndex=t.merged.length,t.merged.push(n)):t.merged[t.narrationIndex]=n}function Yy(e){let t=aA();for(let r of e){let o=Jy(r),{type:n}=o,i=o.data;switch(n){case"sandbox_compaction_start":De(t,lA(i,t.merged.length));break;case"sandbox_compaction_complete":De(t,dA(i,t.merged.length));break;case"sandbox_context_fill_warning":De(t,pA(i,t.merged.length));break;case"sandbox_tool_truncated":De(t,mA(i,t.merged.length));break;case"retry_status":De(t,fA(i,t.merged.length));break;case"prompt_retrying":De(t,hA(i,t.merged.length));break;case"zeus_telemetry":De(t,vA(i,t.merged.length));break;case"agent_timeline":De(t,_A(i,t.merged.length));break;case"prompt_activity":break;case"agent_progress":bA(i,t);break;case"session_error":wA(i,t),De(t,SA(i,t.merged.length));break;case"session_resumed_cold":De(t,xA(i,t.merged.length));break;case"raw_agent_runtime":De(t,$A(i,t.merged.length));break;case"reasoning":Gy("reasoning",i,t,JT(o.raw));break;case"text":Gy("text",i,t);break;case"patch":De(t,IA(i,t.merged.length));break;case"todo_update":PA(i,t);break;case"answer":AA(i,t);break;case"tool_call":EA(i,t);break;case"tool_update":kA(i,t);break;case"question":TA(i,t);break;case"narration":CA(i,t);break;case"onboarding_status":RA(i,t);break}}return cA(t)}function Xy(e,t){let r=new Set(t),o=new Map(t.map(i=>[i,[]])),n=null;for(let i of e){let a=Yr(i),s=typeof a=="string"&&r.has(a)?a:null;On(i)==="prompt_processing"&&(n=s);let u=s??n;if(u){let c=o.get(u);c&&c.push(i)}}return o}function OA(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if(r.type!=="prompt_completed"&&r.type!=="prompt_failed")continue;let o=r.data?.history;return!Array.isArray(o)||o.length===0?null:o}return null}function qy(e){let t=e.data;return[e.promptId??"",typeof t?.phase=="string"?t.phase:"",typeof t?.detail=="string"?t.detail:""].join("\0")}function Wy(e){let t=e.data;return[e.promptId??"",typeof t?.step=="string"?t.step:""].join("\0")}function Qy(e){let t=By(e),r=OA(t),o=t.filter($=>$.type==="prompt_activity"),n=t.filter($=>$.type==="agent_progress");if(!r)return{events:e,diagnostics:{embeddedHistoryPresent:!1,durablePromptActivityCount:o.length,embeddedPromptActivityCount:0,mergedDurablePromptActivityCount:0,duplicateDurablePromptActivityCount:0,durableAgentProgressCount:n.length,embeddedAgentProgressCount:0,mergedDurableAgentProgressCount:0,duplicateDurableAgentProgressCount:0}};let i=By(r),a=i.filter($=>$.type==="prompt_activity"),s=i.filter($=>$.type==="agent_progress"),u=new Set(a.map(qy)),c=new Set(s.map(Wy)),l=a.length,d=s.length,f=0,m=0,g=o.filter($=>{let I=qy($);return u.has(I)?(f+=1,!1):(u.add(I),!0)}),h=n.filter($=>{let I=Wy($);return c.has(I)?(m+=1,!1):(c.add(I),!0)}),b=[...g,...h].map($=>$.raw);return{events:b.length>0?[...b,...r]:r,diagnostics:{embeddedHistoryPresent:!0,durablePromptActivityCount:o.length,embeddedPromptActivityCount:l,mergedDurablePromptActivityCount:g.length,duplicateDurablePromptActivityCount:f,durableAgentProgressCount:n.length,embeddedAgentProgressCount:d,mergedDurableAgentProgressCount:h.length,duplicateDurableAgentProgressCount:m}}}var eb=1e3;async function tb(e,t,r,o){let n=[],i=r,a=null,s=0;do{if(s+=1,t&&s>eb)throw new y("user",`${e} exceeded ${eb} pages without reaching the end.`);let u=await o(i);n.push(...u.items),a=u.nextCursor,i=a??void 0}while(t&&a);return{items:n,nextCursor:t?null:a}}function Ca(e){return typeof e=="object"&&e!==null&&"noChanges"in e&&e.noChanges===!0}function Oa(e){switch(e){case"no_diff":return{state:"no_changes",tone:"info",title:"Completed without code changes.",detail:null};case"no_staged_files":return{state:"no_changes",tone:"info",title:"Completed without publishable code changes.",detail:null};case"prep_failed":return{state:"no_change_abnormal",tone:"error",title:"Finalization failed before changes could be prepared.",detail:null};case"post_prep_failed":return{state:"no_change_abnormal",tone:"error",title:"Finalization failed after changes were prepared.",detail:null};default:return{state:"no_change_abnormal",tone:"error",title:"Completed without code changes, but finalization did not report a clean no-op reason.",detail:null}}}var NA="## Previously declined findings on this repository (calibration)",DA="## Findings already reported by other reviewers",zA="## Graphite stack neighbours",nb=[NA,DA,zA,"## Independent review suggestions"];var UA=/<(user_content|instruction_content)\b[^>]*>[\s\S]*?<\/\1>/gi,LA=[/^IMPORTANT: The content above is /i,/^Previous Slack message\b/i,/^Current Slack message author:/i,/^Current Slack channel:/i,/^Thread context(?:\s*\([^)]*\))?\s*[.:]/i,/^Repository:\s+\S+$/i,/^Issue (?:title|body|description|metadata)\s*:/i,/^Triggering comment\s*:/i,/^Review body\s*:/i,/^Recent comments\s*:/i,/^<\/?(?:user_content|instruction_content)\b/i],jA=[/<\/?(?:user_content|instruction_content)\b/i,/^IMPORTANT: The content above is /im,/^Previous Slack message\b/im,/^Current Slack message author:/im,/^Current Slack channel:/im,/^Repository:\s+\S+$/im],MA=/^Review pull request \S+ at (?:its current head|admitted head \S+ against admitted base \S+)\./;function ZA(e){let t=e.split(/\r?\n/),r=[],o=[];if(t.forEach((a,s)=>{let u=nb.findIndex(c=>a.trim()===c);u!==-1&&(r.push(u),o.push(s))}),o.length===0||!r.every((a,s)=>s===0||a>(r[s-1]??-1)))return e.trim();let i=o[0]??0;return t.slice(0,i).join(`
93
+ `)})}var yy=["published","publish_failed","gate_rejected"],by=["not_applicable","never_ran","all_empty","completed_empty","yielded"];var Sy=["bundle","ledger","disposition","lineage"];var wy=/^cap-[0-9a-f]{8}$/,xy=/^[A-Za-z0-9][A-Za-z0-9 ._-]{0,79}$/;var $y=/^req-[0-9a-f]{8}$/;var Iy=300,Jr=500,Lp=3,wT=6e3;var Ey=/^dl-[0-9a-f]{8}$/,xT=new Set(["localhost","localhost.localdomain","metadata","metadata.google.internal","instance-data","instance-data.ec2.internal"]);function Up(e){let t=e.split(".");if(t.length===4&&t.every(r=>/^\d{1,3}$/.test(r)&&Number(r)<=255)){let[r,o]=t.map(Number);return r===0||r===10||r===127||r===169&&o===254||r===172&&o>=16&&o<=31||r===192&&o===168||r===100&&o>=64&&o<=127||r===198&&(o===18||o===19)}if(e.includes(":")){let r=e.toLowerCase();if(r==="::"||r==="::1"||/^fe[89ab]/.test(r)||/^f[cd]/.test(r))return!0;if(r.startsWith("::ffff:")){let o=r.slice(7),n=o.match(/^([0-9a-f]{1,4}):([0-9a-f]{1,4})$/);if(n){let i=Number.parseInt(n[1],16),a=Number.parseInt(n[2],16);return Up(`${i>>8}.${i&255}.${a>>8}.${a&255}`)}return Up(o)}return!1}return!1}function $T(e){try{let t=new URL(e),r=t.hostname.toLowerCase().replace(/^\[/,"").replace(/\]$/,"");return(t.protocol==="http:"||t.protocol==="https:")&&t.username===""&&t.password===""&&!xT.has(r)&&!Up(r)}catch{return!1}}var _L=p.discriminatedUnion("kind",[p.object({kind:p.literal("search"),query:p.string().trim().min(3).max(Iy)}).strict(),p.object({kind:p.literal("fetch"),url:p.string().url().max(Jr).refine($T,{message:"url must be http(s) without credentials"}),query:p.string().trim().min(3).max(Iy).optional()}).strict()]),IT=p.object({url:p.string().max(Jr),title:p.string().max(300).nullable(),publishedDate:p.string().max(40).nullable(),text:p.string().max(wT)}).strict(),yL=p.object({results:p.array(IT).max(Lp)}).strict();var SL=10*6e4,wL=5*6e4;var xL=10*6e4,$L=5*6e4,IL=10*6e4;var ky=8;var EL=256*1024,kL=64*1024*1024;var TL=15.5*6e4;var AL=256*1024;var Ty=64*1024,PL=64*1024;var ET=30,Ea=ky*ET,Cn=p.string().trim().min(1).max(4e3),Ze=p.object({id:p.string().regex(/^[a-zA-Z0-9._:-]+$/).max(80).describe("Stable id you choose for this work item; reuse it to update the item."),changedPath:Cn.describe("Changed file path from the admitted diff."),producer:Cn.describe("Code that produces the changed value or behavior."),consumer:Cn.describe("Actual code that consumes it."),inputState:Cn.describe("Concrete input or state that reaches the consumer."),status:p.enum(["pending","settled","refuted","below_bar","external","environment","budget_exhausted"]).describe("pending while open; any other status closes the item and needs reason. below_bar: verified and non-blocking; still filed as a finding."),evidence:p.array(Cn).max(Ea).describe("Source or probe references. Required for settled, refuted, below_bar."),reason:Cn.describe("Why the item has this status. Optional only while pending."),candidateIds:p.array(p.string().min(1).max(80)).max(Ea).describe("Delivered scout candidate ids this item covers."),findingIds:p.array(p.string().min(1).max(80)).max(Ea).describe("Ids of findings this item supports.")}).strict(),kT=Ze.refine(e=>!["settled","refuted","below_bar"].includes(e.status)||e.evidence.length>0,{message:"A settled decision needs source or probe evidence."});var jp="candidate:";var NL=Ze.extend({changedPath:Ze.shape.changedPath.optional(),producer:Ze.shape.producer.optional(),consumer:Ze.shape.consumer.optional(),inputState:Ze.shape.inputState.optional(),status:Ze.shape.status.optional(),evidence:Ze.shape.evidence.optional(),candidateIds:p.array(p.string().min(1).max(jp.length+80).transform(e=>e.startsWith(jp)?e.slice(jp.length):e)).max(Ea).describe(Ze.shape.candidateIds.description).optional(),findingIds:Ze.shape.findingIds.optional(),reason:Ze.shape.reason.optional()}).superRefine((e,t)=>{e.reason===void 0&&e.status!==void 0&&e.status!=="pending"&&t.addIssue({code:"custom",path:["reason"],message:`reason is required when status is ${e.status}`})}),Ay=p.string().regex(/^q-[1-9][0-9]*$/).max(16),DL=p.object({baseSha:p.string().nullable(),headSha:p.string().nullable(),items:p.array(kT),unreadRanges:p.array(p.object({path:p.string(),start:p.number().int(),end:p.number().int()})),reconciliationUsed:p.boolean().optional(),budgetExhausted:p.boolean().optional(),pendingPaths:p.array(p.string()),omittedRangeCount:p.number().int().nonnegative(),omittedPendingPathCount:p.number().int().nonnegative()}).refine(e=>new TextEncoder().encode(JSON.stringify(e)).byteLength<=Ty,{message:"Investigation ledger exceeds the transport budget."});var PT=p.string().regex(wy),RT=p.enum(["screenshot","video"]),CT=p.object({captureId:PT,label:p.string().regex(xy),artifactId:p.string().min(1).max(80),url:p.string().url().max(2e3),kind:RT.default("screenshot"),durationMs:p.number().int().min(0).max(9e4).optional(),fullUrl:p.string().url().max(2e3).optional(),posterUrl:p.string().url().max(2e3).optional(),alt:p.string().min(1).max(200).optional()}).strict(),ZL=CT.extend({finalPath:p.string().max(500).optional()}).strict(),FL=p.object({requestId:p.string().regex($y),method:p.enum(["GET","HEAD"]),path:p.string().min(1).max(2e3),status:p.number().int().min(100).max(599).nullable(),authenticated:p.boolean(),redirected:p.object({location:p.string().max(2e3)}).strict().nullable(),contentType:p.string().max(200).nullable(),bodySha256:p.string().regex(/^[0-9a-f]{64}$/i).nullable(),bodyExcerpt:p.string().max(2e3).nullable(),promptId:p.string().min(1),bodyOmitted:p.enum(["binary","too_large","unreadable"]).optional()}).strict(),Mp=["ok","empty","rate_limited","upstream_error","invalid_input","budget_exhausted","page_unavailable","unavailable"],BL=p.object({lookupId:p.string().regex(Ey),kind:p.enum(["search","fetch"]),input:p.string().min(1).max(Jr),status:p.enum(Mp),resultUrls:p.array(p.string().max(Jr)).max(Lp),durationMs:p.number().int().nonnegative(),promptId:p.string().min(1),thread:p.enum(["primary","scout"]),investigationId:Ay.optional()}).strict();var Zp="zeus_telemetry";var Py=["succeeded","succeeded_empty","no_output","unparseable_output","failed","timed_out","aborted","hung","released_early"],Ry={state:{kind:"string_enum",values:["no_notification","turn_completed","command_running","tool_running","model_output_open","awaiting_model_output"]},lastNotificationMethod:"string",maxNotificationGapMs:"number",modelResponseCount:"number",streamRetryCount:"number",itemsInFlight:"number",oldestItemInFlight:{kind:"object",fields:{type:"string",tool:"string",msSinceStarted:"number"}},recentNotifications:"string_array"},OT={unavailable:{kind:"string_enum",values:["no_pid","unsupported_platform","no_process"]},sockets:{kind:"object_array",fields:{remote:"string",state:"string",txQueueBytes:"number",rxQueueBytes:"number"}}},rj={"zeus.verification_observed":{observedCount:"number",hasObservedCommand:"boolean",matchedNoTestsCount:"number",runnerMismatchCount:"number",runnerResolved:"boolean",resolvedPackageManager:{kind:"string_enum",values:["npm","pnpm","yarn","bun"]}},"zeus.publish_rejected":{reason:"string",checkCount:"number",findingCount:"number",verdict:"string",firstAttempt:"boolean",attemptOrdinal:"number",contractVersion:"string",schemaPath:"string",schemaIssue:"string",schemaValue:"string"},"zeus.publish_secret_value_redacted":{count:"number"},"zeus.publish_notes_unverified":{attemptOrdinal:"number",findingCount:"number",contractVersion:"string"},"zeus.publish_empty_review_unattested":{attemptOrdinal:"number",noteCount:"number",contractVersion:"string"},"zeus.publish_blocking_downgraded":{detail:{kind:"string_enum",values:["no_base_run","no_matched_pair"]},blockingCount:"number",attemptOrdinal:"number"},"zeus.scout.health":{health:{kind:"string_enum",values:by},dispatch_mode:{kind:"string_enum",values:["targeted","broad"]},unresolvedInvestigationCount:"number",publishOutcome:{kind:"string_enum",values:yy},candidateTotal:"number",expectedScoutCount:"number",observedScoutCount:"number",statuses:"string_array"},"zeus.scout.agreement":{candidateCount:"number",publishedCandidateCount:"number",examinedRejectedCount:"number",notExaminedCount:"number",notExaminedEnvironmentCount:"number",notExaminedExternalCount:"number",notExaminedNoneCount:"number",notDeliveredCount:"number",notSelectedCount:"number",verifierRefutedCount:"number",reproWithheldCount:"number",verifierReportedCount:"number",verifierReportedPublishedCount:"number"},"zeus.candidate_ledger":{conserved:"boolean",candidateCount:"number",droppedCount:"number",publishedCandidateCount:"number",rejectedCount:"number",notDeliveredCount:"number",notSelectedCount:"number",verifierRefutedCount:"number",reproWithheldCount:"number",verifierReportedCount:"number",violationStage:{kind:"string_enum",values:["none",...Sy]}},"zeus.judge.below_bar_unfiled":{count:"number"},"zeus.stage.peer_triage_completed":{reason:"string",threads:"number",stageStatus:{kind:"string_enum",values:["ok","failed","skipped"]}},"zeus.review_investigation.read_evidence":{referenceKind:{kind:"string_enum",values:["inline","canonical","repaired","rejected"]}},"zeus.verifier.terminal":{verifierStatus:{kind:"string_enum",values:Py},effort:"string",stall:{kind:"object",fields:Ry},codexTcpSockets:{kind:"object",fields:OT}},"zeus.scout.terminal":{scoutStatus:{kind:"string_enum",values:Py},stall:{kind:"object",fields:Ry},investigationId:"string",effort:"string",theme:"string"},"zeus.scout.completion":{role:"string",status:"string",durationMs:"number",inputTokens:"number",outputTokens:"number",candidateCount:"number"},"zeus.scout.bundle_omitted":{omittedCandidateCount:"number",droppedExcerptCount:"number"},"zeus.scout.patch_truncated":{role:"string",sampleIndex:"number",investigationId:"string",ownedFileCount:"number",truncatedFileCount:"number",omittedFileCount:"number",withheldChars:"number"},"zeus.scout.patch_unavailable":{role:"string",sampleIndex:"number",reason:"string",ownedFileCount:"number",patchedFileCount:"number"},"zeus.doc_lookup":{kind:{kind:"string_enum",values:["search","fetch"]},status:{kind:"string_enum",values:Mp},thread:{kind:"string_enum",values:["primary","scout"]},investigationId:"string",durationMs:"number",resultCount:"number"},"zeus.review.prompt_budget_truncated":{excessChars:"number",reviewContextPacketTruncated:"boolean",droppedSectionNames:"string_array",truncatedSectionNames:"string_array",beforeChars:"number",afterChars:"number"},"zeus.review.prompt_budget_externalized":{beforeChars:"number",afterChars:"number",budgetChars:"number",externalizedSectionNames:"string_array"}};var Cy=["prompt.started","context.selected","files.inspected","tools.run","files.edited","commands.run","publish_gate.result","verification.result","git.commit","git.push","pr.open","onboarding.discovery_delivered","onboarding.discovery_tool_blocked"],Oy=["observed"],Ny=["sandbox_bridge","control_plane"],Dy=["started","completed","failed","skipped","blocked"];var NT=["session.create","sandbox.spawn","bridge.connect","bridge.event","prompt.enqueue","prompt.context","prompt.dispatch","agent.session.create","tool.call","tool.update","tool.result","text.delta","prompt.complete","git.push","pr.open","timeline","error","user_question","idle"],Fp=new Set(["step_start","step_finish","branch_changed","subagent_start","subagent_complete","subagent_text","subagent_tool_call","memory_usage","memory_recall_usage"]);function Pe(e){return typeof e=="number"&&Number.isFinite(e)}function te(e){return e===void 0||typeof e=="string"}function zy(e){return e===void 0||L(e)}function ka(e){return e==null||typeof e=="string"}function Fe(e,t){return typeof e=="string"&&t.includes(e)}function DT(e){return typeof e=="string"||L(e)&&typeof e.label=="string"&&te(e.description)}function ce(e){return L(e)?te(e.bridgeEventType)&&!Uy(e)&&zy(e.bridgeData):!1}function Uy(e){return L(e)?typeof e.bridgeEventType=="string"&&Fp.has(e.bridgeEventType):!1}function Ta(e,t){if(!L(t))return!1;switch(e){case"session.create":return ce(t)&&Fe(t.source,["ui","cli","slack","api"])&&(t.sessionKind===void 0||Fe(t.sessionKind,["repo"]));case"sandbox.spawn":return ce(t)&&Fe(t.status,["requested","started","ready","failed"])&&(t.attempt===void 0||Pe(t.attempt))&&te(t.reason);case"bridge.connect":return ce(t)&&Fe(t.status,["connected","disconnected","reconnecting"]);case"bridge.event":return typeof t.bridgeEventType=="string"&&!Uy(t)&&zy(t.bridgeData)&&(t.intermediate===void 0||typeof t.intermediate=="boolean");case"prompt.enqueue":return ce(t)&&ka(t.actorUserId)&&te(t.agent)&&ka(t.model);case"prompt.context":return ce(t);case"prompt.dispatch":return ce(t)&&ka(t.startupAttemptId);case"agent.session.create":return ce(t)&&Fe(t.status,["started","complete","failed"])&&te(t.agentSessionId)&&te(t.agent);case"tool.call":return ce(t)&&typeof t.callId=="string"&&typeof t.tool=="string"&&te(t.summary)&&(t.args===void 0||L(t.args));case"tool.result":return ce(t)&&typeof t.callId=="string"&&typeof t.tool=="string"&&typeof t.ok=="boolean"&&te(t.error);case"text.delta":return ce(t)&&Fe(t.channel,["output","reasoning"])&&typeof t.text=="string"&&te(t.partId);case"prompt.complete":return ce(t)&&typeof t.success=="boolean"&&te(t.error)&&te(t.errorCode);case"git.push":return ce(t)&&typeof t.branch=="string"&&typeof t.success=="boolean"&&te(t.error);case"pr.open":return ce(t)&&typeof t.success=="boolean"&&te(t.prUrl)&&(t.prNumber===void 0||Pe(t.prNumber))&&te(t.error);case"timeline":return ce(t)&&Fe(t.eventType,Cy)&&Fe(t.source,Oy)&&Fe(t.observer,Ny)&&typeof t.summary=="string"&&t.summary.trim().length>0&&(t.status===void 0||Fe(t.status,Dy))&&(t.metadata===void 0||L(t.metadata));case"error":return ce(t)&&typeof t.message=="string"&&te(t.code);case"user_question":return ce(t)&&typeof t.questionId=="string"&&typeof t.question=="string"&&(t.options===void 0||Array.isArray(t.options)&&t.options.every(DT));case"idle":return ce(t)&&(t.sessionEditCount===void 0||Pe(t.sessionEditCount))&&(t.sessionPromptCount===void 0||Pe(t.sessionPromptCount));case"tool.update":return!1;default:return!1}}function zT(e){return typeof e=="string"&&NT.includes(e)}function Ly(e){if(!L(e))throw new Error("Invalid ArcanistEvent");if(!zT(e.phase))throw new Error("Invalid phase");if(typeof e.timestampMs!="number"||!Number.isFinite(e.timestampMs))throw new Error("Invalid timestampMs");if(typeof e.sessionId!="string"||e.sessionId.length===0)throw new Error("Invalid sessionId");if(e.promptId!==void 0&&typeof e.promptId!="string")throw new Error("Invalid promptId");if(e.sandboxId!==void 0&&typeof e.sandboxId!="string")throw new Error("Invalid sandboxId");if(!L(e.payload))throw new Error("Invalid payload");if(e.formatVersion!==void 0&&e.formatVersion!==2)throw new Error("Invalid formatVersion");if(e.formatVersion===2&&["type","timestamp","content","messageId","bridgeData","bridgeEventType"].some(r=>r in e))throw new Error("Legacy fields in version 2 envelope");if(!(e.formatVersion===2||!("bridgeData"in e.payload||"bridgeEventType"in e.payload)?UT(e.phase,e.payload):Ta(e.phase,e.payload)))throw new Error(`Invalid payload for phase ${e.phase}`);return e}function UT(e,t){if("bridgeData"in t||"bridgeEventType"in t||["startedAt","completedAt","inputEstimatedTokens","outputEstimatedTokens","outputChars","sessionEditCount","sessionPromptCount","connectionGeneration"].some(o=>t[o]!==void 0&&!Pe(t[o])))return!1;for(let o of["exitCode","durationMs","startedAtMs"])if(t[o]!==void 0&&t[o]!==null&&!Pe(t[o]))return!1;if(!te(t.protocolStatus)||t.startObserved!==void 0&&typeof t.startObserved!="boolean")return!1;switch(e){case"bridge.event":return LT(t);case"tool.update":return typeof t.callId=="string"&&typeof t.tool=="string"&&typeof t.status=="string";case"bridge.connect":return typeof t.status=="string"&&(t.kind===void 0||t.kind==="heartbeat")&&te(t.echoNonce);case"prompt.dispatch":switch(t.kind){case void 0:return ka(t.startupAttemptId);case"prompt_accepted":return te(t.startupAttemptId);case"agent_prompt_sent":return te(t.startupAttemptId)&&te(t.agentSessionId)&&te(t.agentRuntimeBackend);case"prompt_activity":return Fe(t.activityPhase,["agent_runtime_initializing","session_creating","event_subscribing","prompt_preparing","prompt_dispatching","waiting_for_agent_event"])&&te(t.detail)&&(t.childWorkActive===void 0||t.childWorkActive===!0);case"agent_progress":return typeof t.step=="string"&&typeof t.label=="string"&&(t.terminal===void 0||typeof t.terminal=="boolean");default:return!1}case"text.delta":return Ta(e,t)&&(t.finalAnswer===void 0||t.finalAnswer===!0);case"prompt.complete":return Ta(e,t)&&(t.idleObserved===void 0||typeof t.idleObserved=="boolean")&&te(t.btSpanId);default:return Ta(e,t)}}function LT(e){switch(e.kind){case"patch":return Array.isArray(e.files)&&e.files.every(t=>typeof t=="string");case"prompt_telemetry_start":return te(e.btSpanId);case"post_execution":return typeof e.hasChanges=="boolean"&&(e.promptIntendsChange===void 0||typeof e.promptIntendsChange=="boolean");case"runtime_info":return L(e.runtime);case"sandbox_undersized":return Pe(e.oomKills);case"sandbox_enospc":return typeof e.source=="string";case"qa_memory_maintenance_codex_policy_probe":return typeof e.completed=="boolean"&&(e.codexHomeWriteStatus==="allowed"||e.codexHomeWriteStatus==="denied"||e.codexHomeWriteStatus==="missing")&&(e.checkoutWriteStatus==="allowed"||e.checkoutWriteStatus==="denied"||e.checkoutWriteStatus==="missing")&&typeof e.draftUnderDreamerDrafts=="boolean"&&typeof e.draftSubmissionMatched=="boolean";case"sandbox_resource_sample":return["memoryUsedBytes","memoryLimitBytes","memoryUsedPercent","swapUsedBytes","cpuUsedPercent","pidsCurrent","pidsLimit"].every(t=>e[t]===void 0||Pe(e[t]));case"usage":return["inputTokens","outputTokens","contextTokens"].every(t=>Pe(e[t]));case"estimated_input_composition":return L(e.components);case"retry_status":return Pe(e.attempt)&&typeof e.message=="string";case"tool_truncated":return typeof e.callId=="string"&&typeof e.tool=="string";case"compaction_start":return e.contextTokens===void 0||Pe(e.contextTokens);case"compaction_complete":return["contextTokensBefore","contextTokensAfter"].every(t=>e[t]===void 0||Pe(e[t]));case"context_fill_warning":return["fillPercent","contextTokens","contextWindow"].every(t=>Pe(e[t]));case"prompt_result":return!0;case"raw_agent_runtime":return!0;case"todo_update":return Array.isArray(e.todos)&&e.todos.every(t=>L(t)&&typeof t.id=="string"&&typeof t.content=="string"&&typeof t.status=="string");case"zeus_telemetry":return typeof e.eventName=="string";default:return!1}}function jy(e){switch(e.phase){case"bridge.event":return e.payload.kind==="raw_agent_runtime"&&e.payload.runtimeEventType==="codex_event"?"codex_event":e.payload.kind;case"bridge.connect":return e.payload.kind==="heartbeat"?"heartbeat":e.phase;case"prompt.dispatch":return e.payload.kind??"prompt_accepted";case"text.delta":return e.payload.finalAnswer?"final_answer":e.payload.channel==="reasoning"?"reasoning":"token";case"tool.call":return"tool_call";case"tool.update":return"tool_update";case"tool.result":return"tool_result";case"prompt.complete":return"execution_complete";case"user_question":return"question";case"error":return"error";case"idle":return"session_idle";case"agent.session.create":return"agent_session_created";case"timeline":return"agent_timeline";case"git.push":return e.payload.success?"push_complete":"push_error";default:return e.phase}}function Bp(e,t){if(!L(e))throw new Error("Invalid event");if(e.formatVersion!==void 0)return Ly(e);if(typeof e.phase=="string"&&L(e.payload)){let f=e,m=e.payload;if(!L(m))throw new Error("Invalid payload");if(!("bridgeData"in m||"bridgeEventType"in m))return f;let g=L(m.bridgeData)?m.bridgeData:{},{bridgeData:h,bridgeEventType:b,...$}=m;if(["session.create","sandbox.spawn","prompt.enqueue","pr.open","git.push"].includes(f.phase))return{...f,payload:{...g,...$}};let I=typeof m.bridgeEventType=="string"?m.bridgeEventType:jy(f),k=f.phase==="text.delta"&&I==="text"?"token":f.phase==="prompt.dispatch"&&I==="prompt_processing"?"prompt_accepted":I,C=Bp({...g,type:k,timestamp:f.timestampMs,sandboxId:f.sandboxId,messageId:f.promptId??g.messageId,promptId:f.promptId??g.promptId,ackId:e.ackId},f.sessionId??"");return C.phase==="bridge.connect"&&C.payload.kind==="heartbeat"&&delete $.status,$.startupAttemptId===null&&delete $.startupAttemptId,{...C,payload:{...C.payload,...$}}}if(typeof e.type!="string"||Fp.has(e.type))throw new Error("Removed or invalid bridge event");if(t===void 0)throw new Error("Missing sessionId for legacy event");let{type:r,timestamp:o,messageId:n,promptId:i,sandboxId:a,ackId:s,...u}=e,c={sessionId:t,timestampMs:typeof o=="number"?o:Number.isFinite(Date.parse(String(o)))?Date.parse(String(o)):Date.now(),...typeof i=="string"?{promptId:i}:typeof n=="string"?{promptId:n}:{},...typeof a=="string"?{sandboxId:a}:{},...typeof s=="string"?{ackId:s}:{}},l,d;switch(r){case"heartbeat":l="bridge.connect",d={...u,kind:"heartbeat"};break;case"prompt_activity":{let{phase:f,...m}=u;l="prompt.dispatch",d={...m,kind:r,activityPhase:f};break}case"prompt_accepted":case"agent_progress":case"agent_prompt_sent":l="prompt.dispatch",d={...u,kind:r};break;case"token":case"reasoning":case"final_answer":{let{content:f,...m}=u;l="text.delta",d={...m,channel:r==="reasoning"?"reasoning":"output",text:f,...r==="final_answer"?{finalAnswer:!0,partId:u.partId??`${n}:final_answer`}:{}};break}case"tool_call":{let{args:f,...m}=u;l="tool.call",d=L(f)?{...m,args:f}:m;break}case"tool_update":l="tool.update",d=u;break;case"tool_result":l="tool.result",d={...u,ok:u.error===void 0};break;case"execution_complete":l="prompt.complete",d=u;break;case"error":case"session_error":{let{error:f,errorDetails:m,...g}=u;l="error",d={...g,message:f,...m!==void 0?{details:m}:{}};break}case"question":l="user_question",d=u;break;case"session_idle":l="idle",d=u;break;case"agent_session_created":l="agent.session.create",d={...u,status:"complete"};break;case"agent_timeline":l="timeline",d=u;break;case"codex_event":l="bridge.event",d={kind:"raw_agent_runtime",runtimeEventType:r,...u};break;case"zeus_telemetry":{let{kind:f,...m}=u;l="bridge.event",d={...m,kind:r,...f!==void 0?{lookupKind:f}:{}};break}case"patch":case"prompt_telemetry_start":case"post_execution":case"runtime_info":case"sandbox_undersized":case"sandbox_enospc":case"sandbox_resource_sample":case"usage":case"estimated_input_composition":case"retry_status":case"tool_truncated":case"compaction_start":case"compaction_complete":case"context_fill_warning":case"prompt_result":case"raw_agent_runtime":case"todo_update":l="bridge.event",d={...u,kind:r};break;default:l="bridge.event",d={...u,kind:"raw_agent_runtime",runtimeEventType:r}}return{...c,phase:l,payload:d}}var My=["repo_scan_started","stack_detected","dependencies_resolved","setup_authored","runtime_profile_authored","boot_attempt_started","boot_verified","environment_saved","build_started","smoke_started","smoke_passed","smoke_failed","escalated_to_engineer","engineer_unblocked","escalated_to_customer","question_for_customer","customer_unblocked","completed","failed"],vj=My.filter(e=>e!=="runtime_profile_authored"&&e!=="boot_attempt_started"&&e!=="boot_verified"),jT=["started","succeeded","failed"],MT=200;function ZT(e){return typeof e=="string"&&My.includes(e)}function FT(e){return typeof e=="string"&&jT.includes(e)}function Zy(e){if(!L(e))return null;let t=e;if(!ZT(t.stage))return null;let r=FT(t.status)?t.status:"started",n=(typeof t.detail=="string"?t.detail.trim():"").slice(0,MT);return{stage:t.stage,status:r,...n?{detail:n}:{}}}var BT="Arcanist blocked this malformed search command before execution.",VT=/\/bin\/bash:\s+-c:\s+line\s+\d+:\s+unexpected EOF while looking for matching [`'\"][`'\"]?/i,GT=24,qT=new Set(["session.updated","session.diff","server.heartbeat","session.idle","lsp.updated","lsp.client.diagnostics"]);function Aa(e){return"phase"in e&&typeof e.phase=="string"}var Fy=new WeakMap;function Pa(e){let t=Fy.get(e);return t||(t=Bp(e),Fy.set(e,t)),t}function Ra(e){return Pa(e).payload}function WT(e){let t=Ra(e);return{...t,...t.activityPhase?{phase:t.activityPhase}:{}}}function Hy(e){return Ra(e).kind}function Ky(e){return Pa(e).promptId}function de(e,t){let r=Ky(e);return r&&t.promptId===void 0?{...t,promptId:r}:t}function HT(e,t,r){switch(t){case"tool_call":return de(e,{...r,...typeof r.callId=="string"&&r.callId.length>0&&!(typeof r.id=="string"&&r.id.length>0)?{id:r.callId}:{},...L(r.args)&&r.input===void 0?{input:r.args}:{}});case"tool_update":return de(e,{...r,...typeof r.callId=="string"&&r.callId.length>0&&!(typeof r.id=="string"&&r.id.length>0)?{id:r.callId}:{}});default:return de(e,r)}}function Yr(e){return Aa(e)?Ky(e):L(e.data)&&typeof e.data.promptId=="string"&&e.data.promptId.length>0?e.data.promptId:void 0}function On(e){if(!Aa(e))return e.type;let t=Ra(e),r=Hy(e);if(r==="prompt_activity")return"prompt_activity";if(r==="agent_progress")return"agent_progress";switch(Pa(e).phase){case"text.delta":return t.channel==="reasoning"?"reasoning":"text";case"tool.call":return"tool_call";case"tool.update":case"tool.result":return"tool_update";case"prompt.enqueue":return"prompt_enqueued";case"prompt.dispatch":return"prompt_processing";case"prompt.complete":return t.success===!1?"prompt_failed":"prompt_completed";case"user_question":return"question";case"error":return"session_error";case"bridge.event":return r??e.phase;case"timeline":return r??"agent_timeline";case"idle":return r??"session_idle";default:return r??e.phase}}function KT(e){if(Aa(e))return Number.isFinite(e.timestampMs)&&Number.isFinite(new Date(e.timestampMs).getTime())?new Date(e.timestampMs).toISOString():void 0;let t=L(e.data)?e.data.timestamp:void 0;if(typeof t=="string"&&t.length>0||typeof t=="number"){let o=new Date(t);if(Number.isFinite(o.getTime()))return o.toISOString()}let r=e.timestamp;if(typeof r=="string"&&r.length>0||typeof r=="number"){let o=new Date(r);if(Number.isFinite(o.getTime()))return o.toISOString()}}function JT(e){let t=KT(e);if(!t)return;let r=Date.parse(t);return Number.isFinite(r)?r:void 0}function Gp(e){if(!Aa(e))return L(e.data)?e.data:void 0;let t=Ra(e),r=Hy(e),o=de(e,WT(e));switch(Pa(e).phase){case"text.delta":return de(e,{...o,...typeof t.partId=="string"&&t.partId.length>0?{id:t.partId}:{},text:t.text});case"tool.call":return de(e,{...o,id:t.callId,tool:t.tool,input:L(t.args)?t.args:{},summary:typeof t.summary=="string"?t.summary:""});case"tool.update":return de(e,{...o,id:t.callId,status:t.status});case"tool.result":return de(e,{...o,id:t.callId,status:typeof o.status=="string"?o.status:t.ok?"completed":"error"});case"prompt.enqueue":return de(e,{...o,source:t.source,...t.actorUserId!==void 0?{actorUserId:t.actorUserId}:{},...typeof t.agent=="string"?{agent:t.agent}:{},...t.model!==void 0?{model:t.model}:{}});case"prompt.dispatch":return de(e,{...o,...t.startupAttemptId!==void 0?{startupAttemptId:t.startupAttemptId}:{}});case"prompt.complete":return de(e,{...o,success:t.success,...typeof t.error=="string"?{error:t.error}:{},...typeof t.errorCode=="string"?{code:t.errorCode}:{},...t.errorDetails!==void 0?{errorDetails:t.errorDetails}:{}});case"user_question":return de(e,{...o,id:t.questionId,question:t.question,...Array.isArray(t.options)?{options:t.options}:{}});case"error":return de(e,{...o,error:t.message,...typeof t.code=="string"?{code:t.code}:{},...typeof t.command=="string"?{command:t.command}:{},...t.details!==void 0?{errorDetails:t.details}:{}});case"bridge.event":return HT(e,r,o);case"timeline":return de(e,{...o,...typeof t.eventType=="string"?{eventType:t.eventType}:{},...typeof t.source=="string"?{source:t.source}:{},...typeof t.observer=="string"?{observer:t.observer}:{},...typeof t.summary=="string"?{summary:t.summary}:{},...typeof t.status=="string"?{status:t.status}:{},...L(t.metadata)?{metadata:t.metadata}:{}});case"idle":return de(e,{...o,...typeof t.sessionEditCount=="number"?{sessionEditCount:t.sessionEditCount}:{},...typeof t.sessionPromptCount=="number"?{sessionPromptCount:t.sessionPromptCount}:{}});default:return de(e,o)}}function Jy(e){let t=Gp(e);return{raw:e,type:On(e),data:t,promptId:Yr(e)}}function By(e){return e.map(t=>Jy(t))}function YT(e,t){return t?t.length<GT?!0:!e.endsWith(t):!1}function XT(){return{streamableIndexById:new Map,segmentOrdinalByStreamId:new Map,concatByStreamId:new Map,interstitialScanEndByStreamId:new Map}}function QT(e,t){return`${e}:${t}`}function Vy(e,t){return t===0?e:`${e}#${t}`}function Mt(e,t,r){return typeof e?.id=="string"?e.id:`${t}-${r}`}function eA(e){let t=e?.text;if(typeof t=="string")return t;let r=e?.content;return typeof r=="string"?r:""}function tA(e){switch(e.type){case"agent_progress":case"retry_status":case"zeus_telemetry":case"agent_timeline":return!0;default:return!1}}function nA(e,t,r,o){if(o===e.length-1)return!0;let n=Math.max(o+1,t.interstitialScanEndByStreamId.get(r)??o+1);for(let i=n;i<e.length;i++)if(!tA(e[i]))return!1;return t.interstitialScanEndByStreamId.set(r,e.length),!0}function V(e){return typeof e?.promptId=="string"?e.promptId:void 0}function rA(e,t,r,o,n,i,a){let s=QT(r,o),u=t.concatByStreamId.get(s)??"",c=t.streamableIndexById.get(s),l=YT(u,n);if(c!==void 0){let m=e[c];if(m.type===r&&l&&nA(e,t,s,c))return m.text+=n,t.concatByStreamId.set(s,u+n),!m.promptId&&i&&(m.promptId=i),m.type==="reasoning"&&a!==void 0&&(m.startedAtMs===void 0&&(m.startedAtMs=a),m.endedAtMs=a),!0;if(c===e.length-1||!l)return!1}if(u&&!l)return!1;let d=t.segmentOrdinalByStreamId.get(s),f=d===void 0?0:d+1;return t.segmentOrdinalByStreamId.set(s,f),t.streamableIndexById.set(s,e.length),t.concatByStreamId.set(s,u+n),t.interstitialScanEndByStreamId.set(s,e.length+1),r==="text"?e.push({type:"text",id:Vy(o,f),...f>0?{streamId:o}:{},text:n,...i?{promptId:i}:{}}):e.push({type:"reasoning",id:Vy(o,f),...f>0?{streamId:o}:{},text:n,...i?{promptId:i}:{},...a!==void 0?{startedAtMs:a,endedAtMs:a}:{}}),!0}function iA(e,t){return{...e,...t,tool:t.tool??e.tool,summary:t.summary??e.summary,...t.promptId===void 0&&e.promptId!==void 0?{promptId:e.promptId}:{},...t.input===void 0&&e.input!==void 0?{input:e.input}:{},...t.toolStatus===void 0&&e.toolStatus!==void 0?{toolStatus:e.toolStatus}:{},...t.truncated===void 0&&e.truncated!==void 0?{truncated:e.truncated}:{},...t.inputEstimatedTokens===void 0&&e.inputEstimatedTokens!==void 0?{inputEstimatedTokens:e.inputEstimatedTokens}:{},...t.outputEstimatedTokens===void 0&&e.outputEstimatedTokens!==void 0?{outputEstimatedTokens:e.outputEstimatedTokens}:{},...t.outputChars===void 0&&e.outputChars!==void 0?{outputChars:e.outputChars}:{},...t.failure===void 0&&e.failure!==void 0?{failure:e.failure}:{},...t.duplicateCount===void 0&&e.duplicateCount!==void 0?{duplicateCount:e.duplicateCount}:{}}}function Vp(e){return e==="running"||e==="completed"||e==="error"?e:void 0}function oA(e,t){let r=Vp(t?.status);return{...e,...r?{toolStatus:r}:{},...typeof t?.outputEstimatedTokens=="number"?{outputEstimatedTokens:t.outputEstimatedTokens}:{},...typeof t?.outputChars=="number"?{outputChars:t.outputChars}:{},...L(t?.failure)?{failure:t.failure}:{},...typeof t?.truncated=="boolean"?{truncated:t.truncated}:{}}}function aA(){return{merged:[],streams:XT(),toolCallIndexById:new Map,agentProgressIndexByKey:new Map,questionIndexById:new Map,narrationIndex:null,malformedSearchBlockedPromptIds:new Set,malformedSearchBlockedWithoutPrompt:!1}}function sA(e){return typeof e=="string"&&e.includes(BT)}function uA(e){return VT.test(e)}function cA(e){return e.malformedSearchBlockedPromptIds.size===0&&!e.malformedSearchBlockedWithoutPrompt?e.merged:e.merged.filter(t=>t.type!=="text"?!0:!((t.promptId?e.malformedSearchBlockedPromptIds.has(t.promptId):e.malformedSearchBlockedWithoutPrompt)&&uA(t.text)))}function De(e,t){t&&e.merged.push(t)}function lA(e,t){return{type:"compaction_start",id:`cs-${e?.timestamp??t}`,...V(e)?{promptId:V(e)}:{},...typeof e?.contextTokens=="number"?{contextTokens:e.contextTokens}:{}}}function dA(e,t){return{type:"compaction_complete",id:`cc-${e?.timestamp??t}`,...V(e)?{promptId:V(e)}:{},...typeof e?.contextTokensBefore=="number"?{contextTokensBefore:e.contextTokensBefore}:{},...typeof e?.contextTokensAfter=="number"?{contextTokensAfter:e.contextTokensAfter}:{}}}function pA(e,t){return{type:"context_fill_warning",id:`cfw-${e?.timestamp??t}`,...V(e)?{promptId:V(e)}:{},fillPercent:typeof e?.fillPercent=="number"?e.fillPercent:Number(e?.fillPercent??0),...typeof e?.contextTokens=="number"?{contextTokens:e.contextTokens}:{},...typeof e?.contextWindow=="number"?{contextWindow:e.contextWindow}:{}}}function mA(e,t){return{type:"tool_truncated",id:typeof e?.callId=="string"?e.callId:String(t),tool:typeof e?.tool=="string"?e.tool:"",...e?.reason==="truncation_marker"||e?.reason==="size_threshold"?{reason:e.reason}:{},...V(e)?{promptId:V(e)}:{}}}function fA(e,t){return{type:"retry_status",id:`rs-${e?.timestamp??t}`,...V(e)?{promptId:V(e)}:{},attempt:typeof e?.attempt=="number"?e.attempt:Number(e?.attempt??0),message:typeof e?.message=="string"?e.message:"Retrying...",...typeof e?.nextRetryAt=="string"?{nextRetryAt:e.nextRetryAt}:{},...typeof e?.provider=="string"?{provider:e.provider}:{},...typeof e?.errorCode=="string"?{errorCode:e.errorCode}:{},...typeof e?.scope=="string"?{scope:e.scope}:{},...typeof e?.maxAttempts=="number"?{maxAttempts:e.maxAttempts}:{},...typeof e?.reason=="string"?{reason:e.reason}:{},...typeof e?.retryAfterMs=="number"?{retryAfterMs:e.retryAfterMs}:{},...typeof e?.fallbackModel=="string"?{fallbackModel:e.fallbackModel}:{}}}function gA(e){return e==="spawn_provider_error"?{message:"Sandbox failed to start; retrying on a fresh sandbox",scope:"sandbox_spawn"}:e==="spawn_deadline_no_object"||e==="spawn_deadline_no_bridge"||e==="spawn_timeout"?{message:"Sandbox did not start in time; retrying on a fresh sandbox",scope:"sandbox_spawn"}:{message:"Sandbox dropped mid-task; retrying on a fresh sandbox",scope:"sandbox_disconnect"}}function hA(e,t){let r=typeof e?.attempt=="number"?e.attempt:Number(e?.attempt??0),o=typeof e?.cap=="number"?e.cap:void 0,n=typeof e?.retryPromptId=="string"?e.retryPromptId:V(e),i=typeof e?.reason=="string"?e.reason:void 0,{message:a,scope:s}=gA(i);return{type:"retry_status",id:`pr-retry-${n??t}`,...n?{promptId:n}:{},attempt:r,message:a,scope:s,...o!==void 0?{maxAttempts:o}:{},...i?{reason:i}:{}}}function vA(e,t){let r=typeof e?.eventName=="string"?e.eventName:Zp;return{type:Zp,id:`zeus-tel-${e?.timestamp??t}-${r}`,eventName:r,...V(e)?{promptId:V(e)}:{}}}function _A(e,t){return{type:"agent_timeline",id:`atl-${t}-${typeof e?.eventType=="string"?e.eventType:"unknown"}`,eventType:typeof e?.eventType=="string"?e.eventType:"unknown",source:typeof e?.source=="string"?e.source:"observed",observer:typeof e?.observer=="string"?e.observer:"unknown",summary:typeof e?.summary=="string"?e.summary:"Observed agent timeline event.",...typeof e?.status=="string"?{status:e.status}:{},...L(e?.metadata)?{metadata:e.metadata}:{},...V(e)?{promptId:V(e)}:{}}}function yA(e,t){let r=V(e);return{type:"agent_progress",id:Mt(e,"ap",t),step:typeof e?.step=="string"?e.step:"unknown",label:typeof e?.label=="string"?e.label:"Working",terminal:e?.terminal===!0,...r?{promptId:r}:{}}}function bA(e,t){let r=yA(e,t.merged.length),o=`${r.promptId??""}\0${r.step}`,n=t.agentProgressIndexByKey.get(o);if(n!==void 0){let i=t.merged[n];t.merged[n]=i.type==="agent_progress"?{...r,id:i.id}:r;return}t.agentProgressIndexByKey.set(o,t.merged.length),t.merged.push(r)}function SA(e,t){return{type:"session_error",id:Mt(e,"err",t),error:typeof e?.error=="string"?e.error:"Unknown error",...V(e)?{promptId:V(e)}:{},...typeof e?.code=="string"?{code:e.code}:{},...typeof e?.command=="string"?{command:e.command}:{}}}function wA(e,t){if(e?.code!=="malformed_search_command"&&!sA(e?.error))return;let r=V(e);r?t.malformedSearchBlockedPromptIds.add(r):t.malformedSearchBlockedWithoutPrompt=!0}function xA(e,t){return{type:"session_resumed_cold",id:Mt(e,"rescold",t),...typeof e?.reason=="string"?{reason:e.reason}:{},...typeof e?.lostSnapshotImageId=="string"?{lostSnapshotImageId:e.lostSnapshotImageId}:e?.lostSnapshotImageId===null?{lostSnapshotImageId:null}:{},...V(e)?{promptId:V(e)}:{}}}function $A(e,t){let r=typeof e?.partType=="string"?e.partType:void 0,o=typeof e?.eventType=="string"?e.eventType:void 0;return r==="text"||o&&qT.has(o)?null:{type:"raw_agent_runtime",id:Mt(e,"raw",t),...V(e)?{promptId:V(e)}:{},...r?{partType:r}:{},...o?{eventType:o}:{},data:e??{}}}function IA(e,t){let r=Array.isArray(e?.files)?e.files.filter(o=>typeof o=="string"):[];return r.length===0?null:{type:"patch",id:`patch-${t}`,files:r,...V(e)?{promptId:V(e)}:{}}}function Gy(e,t,r,o){rA(r.merged,r.streams,e,Mt(t,e,r.merged.length),eA(t),V(t),o)}function EA(e,t){let r=Mt(e,"tool",t.merged.length),o=t.toolCallIndexById.get(r);if(o!==void 0){let n=t.merged[o];if(n.type==="tool_call"){let i=Vp(e?.toolStatus),a=L(e?.input)?e.input:void 0,s={type:"tool_call",id:r,...typeof e?.tool=="string"?{tool:e.tool}:typeof e?.toolName=="string"?{tool:e.toolName}:{},...typeof e?.summary=="string"&&e.summary.length>0?{summary:e.summary}:{},...V(e)?{promptId:V(e)}:{},...a&&Object.keys(a).length>0?{input:a}:{},...i?{toolStatus:i}:{},...typeof e?.truncated=="boolean"?{truncated:e.truncated}:{},...typeof e?.inputEstimatedTokens=="number"?{inputEstimatedTokens:e.inputEstimatedTokens}:{},...typeof e?.outputEstimatedTokens=="number"?{outputEstimatedTokens:e.outputEstimatedTokens}:{},...typeof e?.outputChars=="number"?{outputChars:e.outputChars}:{},...L(e?.failure)?{failure:e.failure}:{}};t.merged[o]=iA(n,s)}}else{let n=Vp(e?.toolStatus),i={type:"tool_call",id:r,tool:typeof e?.tool=="string"?e.tool:typeof e?.toolName=="string"?e.toolName:"unknown",summary:typeof e?.summary=="string"?e.summary:"",...V(e)?{promptId:V(e)}:{},...L(e?.input)?{input:e.input}:{},...n?{toolStatus:n}:{},...typeof e?.truncated=="boolean"?{truncated:e.truncated}:{},...typeof e?.inputEstimatedTokens=="number"?{inputEstimatedTokens:e.inputEstimatedTokens}:{},...typeof e?.outputEstimatedTokens=="number"?{outputEstimatedTokens:e.outputEstimatedTokens}:{},...typeof e?.outputChars=="number"?{outputChars:e.outputChars}:{},...L(e?.failure)?{failure:e.failure}:{}};t.toolCallIndexById.set(r,t.merged.length),t.merged.push(i)}}function kA(e,t){let r=typeof e?.id=="string"?e.id:"",o=t.toolCallIndexById.get(r);if(o===void 0)return;let n=t.merged[o];n.type==="tool_call"&&(t.merged[o]=oA(n,e))}function TA(e,t){let r={type:"question",id:Mt(e,"question",t.merged.length),question:typeof e?.question=="string"?e.question:"",answer:e?.answer==null?null:String(e.answer),...V(e)?{promptId:V(e)}:{},...Array.isArray(e?.options)?{options:e.options}:{}};t.questionIndexById.set(r.id,t.merged.length),t.merged.push(r)}function AA(e,t){let r=typeof e?.id=="string"?e.id:void 0;if(!r)return;let o=t.questionIndexById.get(r);if(o===void 0)return;let n=t.merged[o];n?.type==="question"&&(t.merged[o]={...n,answer:e?.answer==null?null:String(e.answer)})}function PA(e,t){let r=Array.isArray(e?.todos)?e.todos:[];if(r.length!==0)for(let o=t.merged.length-1;o>=0;o--){let n=t.merged[o];if(n.type==="tool_call"&&n.tool.toLowerCase()==="todowrite"){t.merged[o]={...n,input:{...n.input,todos:r}};break}}}function RA(e,t){let r=Zy(e);if(!r)return;let o=V(e);t.merged.push({type:"onboarding_status",id:`onboarding_status:${t.merged.length}`,stage:r.stage,status:r.status,...r.detail?{detail:r.detail}:{},...o?{promptId:o}:{}})}function CA(e,t){let r=typeof e?.text=="string"?e.text.trim():"";if(!r)return;let o=V(e),n={type:"narration",id:"narration",text:r,...o?{promptId:o}:{}};t.narrationIndex===null?(t.narrationIndex=t.merged.length,t.merged.push(n)):t.merged[t.narrationIndex]=n}function Yy(e){let t=aA();for(let r of e){let o=Jy(r),{type:n}=o,i=o.data;switch(n){case"sandbox_compaction_start":De(t,lA(i,t.merged.length));break;case"sandbox_compaction_complete":De(t,dA(i,t.merged.length));break;case"sandbox_context_fill_warning":De(t,pA(i,t.merged.length));break;case"sandbox_tool_truncated":De(t,mA(i,t.merged.length));break;case"retry_status":De(t,fA(i,t.merged.length));break;case"prompt_retrying":De(t,hA(i,t.merged.length));break;case"zeus_telemetry":De(t,vA(i,t.merged.length));break;case"agent_timeline":De(t,_A(i,t.merged.length));break;case"prompt_activity":break;case"agent_progress":bA(i,t);break;case"session_error":wA(i,t),De(t,SA(i,t.merged.length));break;case"session_resumed_cold":De(t,xA(i,t.merged.length));break;case"raw_agent_runtime":De(t,$A(i,t.merged.length));break;case"reasoning":Gy("reasoning",i,t,JT(o.raw));break;case"text":Gy("text",i,t);break;case"patch":De(t,IA(i,t.merged.length));break;case"todo_update":PA(i,t);break;case"answer":AA(i,t);break;case"tool_call":EA(i,t);break;case"tool_update":kA(i,t);break;case"question":TA(i,t);break;case"narration":CA(i,t);break;case"onboarding_status":RA(i,t);break}}return cA(t)}function Xy(e,t){let r=new Set(t),o=new Map(t.map(i=>[i,[]])),n=null;for(let i of e){let a=Yr(i),s=typeof a=="string"&&r.has(a)?a:null;On(i)==="prompt_processing"&&(n=s);let u=s??n;if(u){let c=o.get(u);c&&c.push(i)}}return o}function OA(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if(r.type!=="prompt_completed"&&r.type!=="prompt_failed")continue;let o=r.data?.history;return!Array.isArray(o)||o.length===0?null:o}return null}function qy(e){let t=e.data;return[e.promptId??"",typeof t?.phase=="string"?t.phase:"",typeof t?.detail=="string"?t.detail:""].join("\0")}function Wy(e){let t=e.data;return[e.promptId??"",typeof t?.step=="string"?t.step:""].join("\0")}function Qy(e){let t=By(e),r=OA(t),o=t.filter($=>$.type==="prompt_activity"),n=t.filter($=>$.type==="agent_progress");if(!r)return{events:e,diagnostics:{embeddedHistoryPresent:!1,durablePromptActivityCount:o.length,embeddedPromptActivityCount:0,mergedDurablePromptActivityCount:0,duplicateDurablePromptActivityCount:0,durableAgentProgressCount:n.length,embeddedAgentProgressCount:0,mergedDurableAgentProgressCount:0,duplicateDurableAgentProgressCount:0}};let i=By(r),a=i.filter($=>$.type==="prompt_activity"),s=i.filter($=>$.type==="agent_progress"),u=new Set(a.map(qy)),c=new Set(s.map(Wy)),l=a.length,d=s.length,f=0,m=0,g=o.filter($=>{let I=qy($);return u.has(I)?(f+=1,!1):(u.add(I),!0)}),h=n.filter($=>{let I=Wy($);return c.has(I)?(m+=1,!1):(c.add(I),!0)}),b=[...g,...h].map($=>$.raw);return{events:b.length>0?[...b,...r]:r,diagnostics:{embeddedHistoryPresent:!0,durablePromptActivityCount:o.length,embeddedPromptActivityCount:l,mergedDurablePromptActivityCount:g.length,duplicateDurablePromptActivityCount:f,durableAgentProgressCount:n.length,embeddedAgentProgressCount:d,mergedDurableAgentProgressCount:h.length,duplicateDurableAgentProgressCount:m}}}var eb=1e3;async function tb(e,t,r,o){let n=[],i=r,a=null,s=0;do{if(s+=1,t&&s>eb)throw new y("user",`${e} exceeded ${eb} pages without reaching the end.`);let u=await o(i);n.push(...u.items),a=u.nextCursor,i=a??void 0}while(t&&a);return{items:n,nextCursor:t?null:a}}function Ca(e){return typeof e=="object"&&e!==null&&"noChanges"in e&&e.noChanges===!0}function Oa(e){switch(e){case"no_diff":return{state:"no_changes",tone:"info",title:"Completed without code changes.",detail:null};case"no_staged_files":return{state:"no_changes",tone:"info",title:"Completed without publishable code changes.",detail:null};case"prep_failed":return{state:"no_change_abnormal",tone:"error",title:"Finalization failed before changes could be prepared.",detail:null};case"post_prep_failed":return{state:"no_change_abnormal",tone:"error",title:"Finalization failed after changes were prepared.",detail:null};default:return{state:"no_change_abnormal",tone:"error",title:"Completed without code changes, but finalization did not report a clean no-op reason.",detail:null}}}var NA="## Previously declined findings on this repository (calibration)",DA="## Findings already reported by other reviewers",zA="## Graphite stack neighbours",nb=[NA,DA,zA,"## Independent review suggestions"];var UA=/<(user_content|instruction_content)\b[^>]*>[\s\S]*?<\/\1>/gi,LA=[/^IMPORTANT: The content above is /i,/^Previous Slack message\b/i,/^Current Slack message author:/i,/^Current Slack channel:/i,/^Thread context(?:\s*\([^)]*\))?\s*[.:]/i,/^Repository:\s+\S+$/i,/^Issue (?:title|body|description|metadata)\s*:/i,/^Triggering comment\s*:/i,/^Review body\s*:/i,/^Recent comments\s*:/i,/^<\/?(?:user_content|instruction_content)\b/i],jA=[/<\/?(?:user_content|instruction_content)\b/i,/^IMPORTANT: The content above is /im,/^Previous Slack message\b/im,/^Current Slack message author:/im,/^Current Slack channel:/im,/^Repository:\s+\S+$/im],MA=/^Review pull request \S+ at (?:its current head|admitted head \S+ against admitted base \S+)\./;function ZA(e){let t=e.split(/\r?\n/),r=[],o=[];if(t.forEach((a,s)=>{let u=nb.findIndex(c=>a.trim()===c);u!==-1&&(r.push(u),o.push(s))}),o.length===0||!r.every((a,s)=>s===0||a>(r[s-1]??-1)))return e.trim();let i=o[0]??0;return t.slice(0,i).join(`
94
94
  `).trim()}function rb(e){return jA.some(t=>t.test(e))}function FA(e){return e.replace(UA,"").split(/\r?\n/).filter(o=>!LA.some(n=>n.test(o.trim()))).join(`
95
95
  `).replace(/\n{3,}/g,`
96
96
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tryarcanist/cli",
3
- "version": "0.1.398",
3
+ "version": "0.1.399",
4
4
  "description": "Command-line interface for Arcanist: inspect sessions, prepare Arcanist environments, and trigger reviews",
5
5
  "type": "module",
6
6
  "bin": {