@linzumi/cli 1.0.98 → 1.0.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -551,12 +551,12 @@ ${n}
551
551
  `).reduce((t,r)=>{let o=Tie(r);if(o!==void 0)return{changes:x$(t.changes,t.current),current:{path:o.path,kind:o.kind,movePath:"",diffLines:[]}};if(r.startsWith("*** Move to: ")){let i=r.slice(13).trim();return{...t,current:t.current===void 0?void 0:{...t.current,movePath:i}}}return r==="*** Begin Patch"||r==="*** End Patch"||r.startsWith("*** ")?t:{...t,current:t.current===void 0?void 0:{...t.current,diffLines:[...t.current.diffLines,r]}}},{changes:[],current:void 0});return x$(n.changes,n.current).map(t=>({path:t.path,diff:Pie(t.diffLines),kind:t.kind,move_path:t.movePath}))}function Tie(e){let n="*** Update File: ",t="*** Add File: ",r="*** Delete File: ";if(e.startsWith(n))return{path:e.slice(n.length).trim(),kind:"update"};if(e.startsWith(t))return{path:e.slice(t.length).trim(),kind:"add"};if(e.startsWith(r))return{path:e.slice(r.length).trim(),kind:"delete"}}function x$(e,n){return n===void 0||n.path.trim()===""?[...e]:[...e,n]}function Pie(e){let n=e.findIndex(o=>o.trim()!=="");if(n<0)return"";let t=[...e].reverse().findIndex(o=>o.trim()!==""),r=t<0?e.length:e.length-t;return e.slice(n,r).join(`
552
552
  `)}function Iie(e){let n=h(e.type);return n==="fileChange"||n==="file_change"}function Ig(e){let n=Ze(e);if(n!==void 0){let r=Fa(n);return Ze(r?.patch)??Ze(r?.input)??Ze(r?.text)??n}let t=A(e);return Ze(t?.patch)??Ze(t?.input)??Ze(t?.text)}function Rie(e){let n=A(e.action),t=[h(e.query),h(n?.query),...mp(e.queries),...mp(n?.queries)];return Qv(t)}function Eie(e){return Qv(e).slice(0,die)}function Qv(e){return e.reduce((n,t)=>t===void 0||t.trim()===""||n.includes(t)?n:[...n,t],[])}function O$(e){return e.filter(Q).map(n=>({path:h(n.path)??"",diff:Ze(n.diff)??"",kind:Die(n.kind),move_path:h(n.move_path)??h(n.movePath)??Mie(n.kind)??""}))}function Ze(e){return typeof e=="string"&&e.trim()!==""?e:void 0}function Die(e){return Q(e)?h(e.type)??"":h(e)??""}function Mie(e){if(Q(e))return h(e.move_path)??h(e.movePath)}var die,Tg,Nv,uie,cie,lie,Cp=F(()=>{"use strict";Mn();Kn();die=6,Tg=48e3,Nv=48e3,uie=512,cie="phoenix_insert_body_limit",lie="phoenix_insert_body_limit"});import{readdirSync as Aie,readFileSync as Oie}from"node:fs";import{homedir as $ie}from"node:os";import{join as Tp}from"node:path";function L$(e){let n=Lie(e.codexThreadId,e.codexHome);if(n===void 0)return[];let t=Oie(n,"utf8");return Fie(t,e.turnId)}function Lie(e,n){let t=n??process.env.CODEX_HOME??Tp($ie(),".codex"),r=Tp(t,"sessions"),o=jie(r);for(let i of o){let s=j$(i,e);if(s!==void 0)return s}}function j$(e,n){let t;try{t=Aie(e,{withFileTypes:!0})}catch{return}let r=t.filter(i=>i.isFile()).map(i=>i.name).filter(i=>i.endsWith(".jsonl")&&i.includes(n)).sort().at(-1);if(r!==void 0)return Tp(e,r);let o=t.filter(i=>i.isDirectory()).map(i=>i.name).sort().reverse();for(let i of o){let s=j$(Tp(e,i),n);if(s!==void 0)return s}}function jie(e){let n=new Date,t=$$(e,n),r=$$(e,new Date(n.getTime()-1440*60*1e3));return t===r?[t]:[t,r]}function $$(e,n){let t=String(n.getFullYear()),r=String(n.getMonth()+1).padStart(2,"0"),o=String(n.getDate()).padStart(2,"0");return Tp(e,t,r,o)}function Fie(e,n){let t,r=[];for(let o of e.split(`
553
553
  `)){if(o.trim()==="")continue;let i=qie(o);if(i===void 0)continue;let s=zie(i),a=h(i.type),d=h(s?.type),u=a==="turn_context"?h(s?.turn_id):d==="task_started"?h(s?.turn_id):void 0;u!==void 0&&(t=u),a==="response_item"&&t===n&&s!==void 0&&r.push(s),d==="task_complete"&&h(s?.turn_id)===n&&(t=void 0)}return r}function qie(e){try{let n=JSON.parse(e);return Q(n)?n:void 0}catch{return}}function zie(e){let n=e.payload;return Q(n)?n:void 0}var F$=F(()=>{"use strict";Cp();Mn();Kn()});function yo(e){return typeof e=="string"&&Uie.has(e)}function Jie(e){return Bie.has(e)}function Kie(e){return q$[e]}function Uu(e){if(e===void 0)return{};let n=Kie(e);return Jie(n)?{fate:n,retryable:!0}:{fate:n}}function z$(e){return e===429?"rate_limited":e===402||e===408||e===425||e>=500&&e<=599?"transient_upstream":"deterministic"}var Nie,Uie,Bie,q$,MBe,Bu=F(()=>{"use strict";Nie=["deterministic","transient_upstream","transient_local","rate_limited","needs_approval","needs_decision"],Uie=new Set(Nie);Bie=new Set(["transient_upstream","transient_local"]);q$={runner_updating:"transient_local",stillborn_worker:"transient_local",infra_turn_kill:"transient_local",resume_transient:"transient_local",start_stage_transient:"transient_local",resume_torn_tail:"transient_local",resurrection_interrupted:"transient_local",dead_letter_exhausted:"transient_local",dead_letter_withheld:"needs_decision",dead_letter_permanent:"deterministic",resume_cwd_not_allowed:"deterministic",cwd_stillbirth_circuit_open:"deterministic",engine_unavailable:"deterministic",provider_binding_rejected:"deterministic",project_untrusted:"deterministic",attachment_download_failed:"transient_local",claude_input_queue_closed:"transient_local",claude_dispatch_wedged:"transient_local"};MBe=Object.keys(q$)});import{readFile as Vie}from"node:fs/promises";async function N$(e){let n;try{n=await Vie(e,"utf8")}catch(t){return{type:"error",error:{type:"file_read_failed",path:e,message:t instanceof Error?t.message:String(t)}}}return Qie(e,n)}function Qie(e,n){let t=[],r=n.split(/\r?\n/u);for(let o=0;o<r.length;o+=1){let i=r[o],s=o+1;if(i===void 0||i.trim()==="")continue;let a;try{a=JSON.parse(i)}catch(c){return{type:"error",error:{type:"invalid_json",path:e,line:s,message:c instanceof Error?c.message:String(c)}}}let d=Xie(e,s,a);if(d.type==="error")return d;let u=Xv(d.record);if(u!==void 0)return{type:"error",error:{type:"credential_not_redacted",path:e,line:s,keyPath:u}};t.push(d.record)}return{type:"ok",fixture:{path:e,records:t}}}function U$(e){return JSON.stringify(e)}function Xie(e,n,t){let r=A(t);if(r===void 0)return Ju(e,n,"record must be a JSON object");let o=X(r.schemaVersion);if(o!==1)return Ju(e,n,"schemaVersion must be 1");let i=h(r.provider);if(i===void 0||!Wie.has(i))return Ju(e,n,"provider is not supported");let s=h(r.captureKind);if(s===void 0||!Hie.has(s))return Ju(e,n,"captureKind is not supported");let a=X(r.ordinal);if(a===void 0||a<0)return Ju(e,n,"ordinal must be a non-negative integer");let d=X(r.offsetMs);if(d===void 0||d<0)return Ju(e,n,"offsetMs must be a non-negative integer");let u=h(r.rawText),c=A(r.captureMetadata),l=Array.isArray(r.transforms)?r.transforms.filter(Q):void 0;return{type:"ok",record:{schemaVersion:o,provider:i,captureKind:s,ordinal:a,offsetMs:d,...u===void 0?{}:{rawText:u},...r.rawValue===void 0?{}:{rawValue:r.rawValue},...c===void 0?{}:{captureMetadata:c},...l===void 0?{}:{transforms:l}}}}function Ju(e,n,t){return{type:"error",error:{type:"invalid_record",path:e,line:n,message:t}}}function Xv(e,n="$"){if(Array.isArray(e)){for(let t=0;t<e.length;t+=1){let r=Xv(e[t]??null,`${n}[${t}]`);if(r!==void 0)return r}return}if(Q(e))for(let[t,r]of Object.entries(e)){let o=`${n}.${t}`;if(Gie.test(t)&&!Yv(r))return o;if(r!==void 0){let i=Xv(r,o);if(i!==void 0)return i}}}function Yv(e){return e==null?!0:typeof e=="string"?Zie.has(e):Array.isArray(e)?e.every(n=>Yv(n)):Q(e)?Object.values(e).every(n=>Yv(n)):!1}var Wie,Hie,Gie,Zie,eS=F(()=>{"use strict";Mn();Kn();Wie=new Set(["codex-app-server","claude-code-sdk"]),Hie=new Set(["incoming","outgoing","notification","request","response","sdk-message","commander-push","session-marker"]),Gie=/(^|[_-])(token|secret|api[_-]?key|authorization|cookie|private[_-]?key|login[_-]?url)([_-]|$)/iu,Zie=new Set(["[REDACTED]","<REDACTED>","$REDACTED"])});import{mkdirSync as Yie,appendFileSync as ese}from"node:fs";import{dirname as nse}from"node:path";function ts(e){let n=rse();if(n===void 0)return;let t=ose(n),r=ise(e),o={schemaVersion:1,provider:e.provider,captureKind:e.captureKind,ordinal:t.nextOrdinal,offsetMs:Math.max(0,Date.now()-t.startedAtMs),...r.rawText===void 0?{}:{rawText:r.rawText},...r.rawValue===void 0?{}:{rawValue:r.rawValue},...e.captureMetadata===void 0?{}:{captureMetadata:Ip(e.captureMetadata)},...r.transforms.length===0?e.transforms===void 0?{}:{transforms:e.transforms}:{transforms:[...e.transforms??[],...r.transforms]}};t.nextOrdinal+=1,ese(n,`${U$(o)}
554
- `,"utf8")}function rse(){let e=process.env.LINZUMI_AGENT_REPLAY_RECORD_FILE?.trim();return e===void 0||e===""?void 0:e}function ose(e){return Pp!==void 0&&Pp.path===e||(Yie(nse(e),{recursive:!0}),Pp={path:e,startedAtMs:Date.now(),nextOrdinal:0}),Pp}function ise(e){if(process.env.LINZUMI_AGENT_REPLAY_EXACT_RAW==="1")return{rawText:e.rawText,rawValue:e.rawValue,transforms:[]};let n=[],t=e.rawValue===void 0?void 0:Ip(e.rawValue,"$.rawValue",n);return{rawText:sse(e.rawText,n),rawValue:t,transforms:n}}function sse(e,n){if(e!==void 0)try{let t=JSON.parse(e);return JSON.stringify(Ip(t,"$.rawText",n))}catch{return e}}function Ip(e,n="$",t=[]){if(Array.isArray(e))return e.map((o,i)=>Ip(o,`${n}[${i}]`,t));if(!Q(e))return e;let r=Object.entries(e).map(([o,i])=>{let s=`${n}.${o}`;return tse.test(o)?(t.push({type:"credential_redaction",path:s}),[o,"[REDACTED]"]):[o,i===void 0?void 0:Ip(i,s,t)]});return Object.fromEntries(r)}var Pp,tse,Mg=F(()=>{"use strict";eS();Mn();tse=/(^|[_-])(token|secret|api[_-]?key|authorization|cookie|private[_-]?key|login[_-]?url)([_-]|$)/iu});import{Buffer as ase}from"node:buffer";function H$(e){return e instanceof _i||e instanceof Error&&e.name===W$&&"phase"in e&&"reason"in e}function G$(e){return H$(e)?e.phase==="wait_for_connection"?!0:e.reason!=="timeout":!1}function Z$(e){return H$(e)&&e.phase==="wait_for_connection"}function mse(e){let n;try{n=JSON.stringify(Q(e)?yi(e):e)??"undefined"}catch{return"<unserializable payload>"}return n.length<=B$?n:`${n.slice(0,B$)}\u2026`}function hse(e){let n=new URL(e);switch(n.protocol){case"http:":n.protocol="ws:";break;case"https:":n.protocol="wss:";break}return n.pathname=n.pathname.replace(/\/$/,"")+"/socket/websocket",n.searchParams.set("vsn","2.0.0"),n.toString()}function gse(e){return[`${fse}${ase.from(e,"utf8").toString("base64url")}`,"phoenix"]}async function Og(e,n,t=(o,i)=>new WebSocket(o,i===void 0?void 0:[...i]),r={}){let o=typeof n=="string"?n:void 0,i=()=>{if(typeof n=="string")return n;try{let N=n();if(typeof N=="string"&&N.trim()!=="")return o=N,N}catch{}if(o!==void 0)return o;throw new Error("phoenix token provider returned no usable token")},s=r.onOperatorNotice??(N=>{console.error(N)}),a=new Map,d=new Map,u=new Map,c=new Map,l=new Map,p=new Map,m=new Map,f=new Map,y=new Set,_=1,w=new Set,S=new Set,v=new Set,b=new Set,k={nextRef:1,websocket:void 0,closed:!1,connected:!1,hasEverConnected:!1,connectionGeneration:0,ready:Promise.resolve(),resolveReady:void 0,rejectReady:void 0,reconnectTimer:void 0,reconnectAttempts:0,backoffResetTimer:void 0,heartbeatTimer:void 0,connectedAt:void 0},R=r.pushTimeoutMs??dse,P=r.controlCursorStore,L=r.controlEpochStore,D=N=>{a.forEach(ne=>{clearTimeout(ne.timer),ne.reject(N)}),a.clear()},j=()=>{k.resolveReady===void 0&&(k.ready=new Promise((N,ne)=>{k.resolveReady=N,k.rejectReady=ne}),k.ready.catch(()=>{}))},q=()=>{k.resolveReady?.(),k.resolveReady=void 0,k.rejectReady=void 0},E=N=>{k.rejectReady?.(N),k.resolveReady=void 0,k.rejectReady=void 0},B=N=>{k.closed=!0,k.reconnectTimer!==void 0&&(clearTimeout(k.reconnectTimer),k.reconnectTimer=void 0),mn(),Be(),k.websocket?.close(),E(N),D(Go.clientClosed("reply"))},z=(N,ne)=>{let re=V$(ne);if(re===void 0)return!0;let ue=c.get(N);if(ue!==void 0&&re<=ue)return!1;let xe=l.get(N);return xe!==void 0&&xe.has(re)?!1:(W(N,re),!0)},W=(N,ne)=>{let re=c.get(N);if(re===void 0){c.set(N,ne);return}if(ne===re+1){re+=1;let xe=l.get(N);if(xe!==void 0)for(;xe.has(re+1);)re+=1,xe.delete(re);c.set(N,re);return}let ue=l.get(N);ue===void 0&&(ue=new Set,l.set(N,ue)),ue.add(ne)},Z=N=>c.get(N),fe=(N,ne)=>{if(!N.startsWith("local_runner:"))return;let re=ne.control_high_water;if(typeof re!="number"||!Number.isInteger(re))return;let ue=c.get(N);if(!(ue===void 0||re>=ue)&&(ke(N),P?.reset!==void 0))try{P.reset(N,0)}catch{}},De=N=>f.get(N)??0,ke=N=>{c.delete(N),l.delete(N),p.delete(N),m.delete(N),f.set(N,De(N)+1)},ge=(N,ne)=>{if(L===void 0||!N.startsWith("local_runner:"))return!1;let re=ne.control_epoch;if(typeof re!="string"||re==="")return!1;let ue=!1;try{ue=L.adopt(N,re)}catch{return!1}return ue&&ke(N),ue},Re=(N,ne)=>{if(P!==void 0)try{P.onAdvance(N,ne)}catch{}},Ee=(N,ne,re)=>{if(re!==De(N))return;let ue=p.get(N);ue?.delete(ne);let xe=m.get(N);(xe===void 0||ne>xe)&&m.set(N,ne);let Te=ue===void 0||ue.size===0?m.get(N):Math.min(...ue)-1;if(Te===void 0)return;let on=Z(N),et=on===void 0?Te:Math.min(Te,on);Re(N,et)},I=N=>{let ne=c.get(N);if(ne!==void 0)return ne;if(P===void 0)return;let re=Tse(P,N);return re===void 0?0:(c.set(N,re),re)},$=new Set,K=(N,ne,re,ue)=>{try{ie(N,ne,re,ue)}catch(xe){let Te=xe instanceof Error?xe.message:String(xe);try{me("phoenix.pushed_frame_dispatch_failed",{topic:N,frame:ne,message:Te,stack:xe instanceof Error?xe.stack??null:null,payloadSnippet:mse(ue),dropped:!0})}catch{}if(!$.has(ne)){$.add(ne);try{s(`linzumi: dropped a pushed "${ne}" frame on ${N} whose dispatch failed (${Te}); see the CLI audit log for the payload snippet.`)}catch{}}}},ie=(N,ne,re,ue)=>{if(N.startsWith("local_runner:")&&ne==="control"&&Cse(ue)){if(!z(N,ue))return;let xe=V$(ue);if(xe!==void 0){let et=p.get(N);et===void 0&&(et=new Set,p.set(N,et)),et.add(xe)}let Te=De(N),on=xe===void 0?()=>{}:()=>Ee(N,xe,Te);w.forEach(et=>et(ue,on))}re===null&&ne!=="phx_reply"&&ne!=="phx_error"&&S.forEach(xe=>xe(N,ne,ue))},pe=(N,ne)=>{let re=c.get(N),ue=re===void 0?ne:Math.max(re,ne),xe=l.get(N);if(xe!==void 0){for(let Te of xe)Te<=ue&&xe.delete(Te);for(;xe.has(ue+1);)ue+=1,xe.delete(ue)}c.set(N,ue)},Y=N=>{let ne=Z(N);if(ne===void 0)return;let re=p.get(N),ue=re!==void 0&&re.size>0?Math.min(...re)-1:void 0;Re(N,ue===void 0?ne:Math.min(ue,ne))},oe=(N,ne)=>{if(N.startsWith("chat:")){let re=ne.events;if(re==null)return;if(!Array.isArray(re))throw new Error(`phoenix rejoin returned invalid events for ${N}`);re.forEach(ue=>{S.forEach(xe=>xe(N,"event",ue))});return}if(N.startsWith("local_runner:")){let re=ne.controls;if(re==null)return;if(!Array.isArray(re))throw new Error(`phoenix rejoin returned invalid controls for ${N}`);re.forEach(Te=>{if(!Rse(Te))return;let on={...Te.payload,replayed:!0,...Te.control_seq===void 0?{}:{control_seq:Te.control_seq}};K(N,Te.event,null,on)});let ue=ne.controls_advance_to,xe=ne.control_high_water;typeof ue=="number"&&Number.isInteger(ue)&&(typeof xe!="number"||ue<=xe)&&pe(N,ue),Y(N)}},Fe=N=>{let ne=yse(String(N.data)),[,re,ue,xe,Te]=ne;if(re!==null&&(xe==="phx_reply"||xe==="phx_error")){let on=a.get(re);if(on!==void 0)if(a.delete(re),clearTimeout(on.timer),xe==="phx_error")on.reject(new Error("phoenix push failed"));else if(kse(Te)&&on.event!=="phx_join")on.reject(new Error(`phoenix push failed: ${Q$(Te)}`));else{if(on.event==="phx_join"&&d.has(ue)&&Ag(Te)){let et=ge(ue,Te.response);fe(ue,Te.response);try{et||oe(ue,Te.response)}catch(At){on.reject(At instanceof Error?At:new Error(String(At)));return}ue.startsWith("local_runner:")&&(Te.response.controls_truncated===!0||et)&&Jn(ue)}on.resolve(Te)}}K(ue,xe,re,Te)},ae=(N,ne,re,ue=R,xe)=>{let Te=k.websocket;if(Te===void 0||Te.readyState!==WebSocket.OPEN)return Promise.reject(Go.socketNotOpen());let on=String(k.nextRef);k.nextRef+=1,ne==="phx_join"&&u.set(N,on);let At=[ne==="phx_join"?on:u.get(N)??null,on,N,ne,re],Gt=Math.max(0,Math.ceil(ue));return new Promise((at,Cr)=>{let Nt=setTimeout(()=>{a.delete(on)&&Cr(Go.replyTimeout(Gt,ne))},Gt);a.set(on,{event:ne,timer:Nt,resolve:at,reject:Cr}),ts({provider:Ise(re),captureKind:"commander-push",rawText:JSON.stringify(At),rawValue:{topic:N,event:ne,payload:re}}),Te.send(JSON.stringify(At)),xe?.()})},Ce=(N,ne)=>{let re={};for(let ue of ne)for(let[xe,Te]of Object.entries(ue)){if(Te===void 0)continue;let on=re[xe];xe==="last_seq"&&typeof Te=="number"&&typeof on=="number"?re[xe]=Math.min(on,Te):on===void 0&&(re[xe]=Te)}if(N.startsWith("local_runner:")){let ue=I(N);ue!==void 0&&(re.last_control_seq=ue);let xe=Pse(L,N);xe!==void 0&&(re.last_control_epoch=xe)}return re},Yn=async N=>{let ne=0,re=0;for(;;){let ue=d.get(N);if(ue===void 0)return;let xe=I(N),Te=await ae(N,"phx_join",Ce(N,[...ue.values()].map(Cr=>Cr.payload())));if(ne+=1,!Ag(Te))return;let on=Array.isArray(Te.response.controls)?Te.response.controls.length:0;re+=on;let et=Te.response.controls_truncated===!0,At=I(N),Gt=Te.response.control_high_water,at=et?typeof Gt=="number"&&Number.isInteger(Gt)&&At!==void 0?Math.max(0,Gt-At):null:0;if(me("phoenix.control_backlog_fetch_progress",{topic:N,fetches:ne,fetched:re,remaining_estimate:at,truncated:et}),!et)return;if(At===xe){s(`phoenix.control_backlog_fetch_stalled topic=${N} fetches=${ne} fetched=${re} cursor=${String(At)}; a truncated reply made no cursor progress - stopping this fetch loop (a server paging bug; the next reconnect resumes from the watermark)`);return}ne%pse===0&&s(`phoenix.control_backlog_cap_exceeded topic=${N} fetches=${ne} fetched=${re} remaining_estimate=${at??"unknown"}; continuing the paginated backlog fetch (a healthy connection never reconnects, so nothing is deferred)`),await new Promise(Cr=>{setImmediate(Cr)})}},Jn=N=>{y.has(N)||(y.add(N),Yn(N).catch(()=>{}).finally(()=>y.delete(N)))},Dt=new Map,V=async()=>{Dt.clear();for(let[N,ne]of d){let re=await ae(N,"phx_join",Ce(N,[...ne.values()].map(ue=>ue.payload())));if(!Ag(re))throw new Error(`phoenix rejoin failed for ${N}`);Q(re.response)&&Dt.set(N,re.response)}},ce=()=>{if(k.closed||k.reconnectTimer!==void 0)return;j();let N=Math.min(cse,use*2**k.reconnectAttempts);k.reconnectAttempts+=1,k.reconnectTimer=setTimeout(()=>{k.reconnectTimer=void 0,$r()},Math.random()*N)},$e=(N,ne)=>{let re=k.connected,ue=k.connectedAt;k.connectedAt=void 0,k.connected=!1;let xe=k.websocket;if(k.websocket=void 0,mn(),Be(),xe!==void 0&&(xe.readyState===WebSocket.CONNECTING||xe.readyState===WebSocket.OPEN))try{xe.close()}catch{}if(D(N),ce(),re){let Te={closeCode:ne?.code,closeReason:typeof ne?.reason=="string"&&ne.reason!==""?ne.reason:void 0,previousSessionDurationMs:ue===void 0?void 0:Math.max(0,Date.now()-ue),reconnectCount:k.reconnectAttempts};b.forEach(on=>{try{on(Te)}catch{}})}},_n=3e4,mn=()=>{k.heartbeatTimer!==void 0&&(clearInterval(k.heartbeatTimer),k.heartbeatTimer=void 0)},Be=()=>{k.backoffResetTimer!==void 0&&(clearTimeout(k.backoffResetTimer),k.backoffResetTimer=void 0)},Xe=()=>{Be(),k.backoffResetTimer=setTimeout(()=>{k.backoffResetTimer=void 0,k.connected&&(k.reconnectAttempts=0)},lse),k.backoffResetTimer?.unref?.()},Mt=()=>{mn(),k.heartbeatTimer=setInterval(()=>{let N=k.websocket;if(N===void 0||N.readyState!==WebSocket.OPEN)return;let ne=String(k.nextRef);k.nextRef+=1;try{N.send(JSON.stringify([null,ne,"phoenix","heartbeat",{}]))}catch{}},_n)},$r=async()=>{if(k.closed)return;let N;try{N=t(hse(e),gse(i()));let ne=N;if(k.websocket=N,N.addEventListener("message",re=>{k.websocket===ne&&Fe(re)}),N.addEventListener("close",re=>{k.websocket===N&&$e(Go.socketClosed(),{code:typeof re.code=="number"?re.code:void 0,reason:typeof re.reason=="string"?re.reason:void 0})},{once:!0}),N.addEventListener("error",()=>{k.websocket===N&&$e(Go.socketClosed())},{once:!0}),await Ese(N,R),k.closed||k.websocket!==N||(k.connectionGeneration+=1,await V(),k.closed||k.websocket!==N))return;if(k.connected=!0,k.connectedAt=Date.now(),k.hasEverConnected=!0,Xe(),Mt(),q(),k.connectionGeneration>1){let re=new Map(Dt);v.forEach(ue=>{Promise.resolve(ue(re)).catch(()=>{})})}}catch(ne){if(k.closed||N!==void 0&&k.websocket!==void 0&&k.websocket!==N)return;if(!k.hasEverConnected){B(ne instanceof Error?ne:new Error(String(ne)));return}$e(Go.reconnectFailed())}};j(),$r(),await k.ready;let Bo=(N,ne)=>new Promise((re,ue)=>{let xe=setTimeout(()=>{ue(Go.connectionWaitTimeout(R,N))},Math.max(0,ne-Date.now()));k.ready.then(()=>{clearTimeout(xe),re()},Te=>{clearTimeout(xe),ue(Te instanceof Error?Te:new Error(String(Te)))})}),Jo=async(N,ne,re,ue)=>{let xe=Date.now()+R;return await Bo(ne,xe),ae(N,ne,re,xe-Date.now(),ue)};return{join:async(N,ne,re)=>{let ue=re?.registrationId??`join-registration-${_++}`,xe=[...d.get(N)?.values()??[]].map(on=>on.payload()),Te=await Jo(N,"phx_join",Ce(N,[...xe,ne]));if(Ag(Te)){let on=d.get(N)??new Map,et=on.size===0;if(on.set(ue,{payload:re?.rejoinPayload??(()=>ne)}),d.set(N,on),et&&N.startsWith("local_runner:")){let At=ge(N,Te.response);fe(N,Te.response),At||oe(N,Te.response),(Te.response.controls_truncated===!0||At)&&Jn(N)}return Te.response}throw new Error(`phoenix join failed: ${Sse(Te)}`)},unregisterJoin:(N,ne)=>{let re=d.get(N);re!==void 0&&(re.delete(ne),re.size===0&&(d.delete(N),u.delete(N)))},push:Jo,pushIfConnected:async(N,ne,re)=>{if(!k.connected)throw Go.notConnected();return await ae(N,ne,re)},onControl:N=>{w.add(N)},onEvent:N=>{S.add(N)},onReconnect:N=>{v.add(N)},onDisconnect:N=>{b.add(N)},forceReconnect:N=>k.closed||!k.connected?!1:($e(Go.socketClosed(),{reason:N??"forced_stale_reconnect"}),!0),hardReset:N=>k.closed?!1:($e(Go.socketClosed(),{reason:N??"hard_reset"}),k.reconnectTimer!==void 0&&(clearTimeout(k.reconnectTimer),k.reconnectTimer=void 0),$r(),!0),close:()=>{B(Go.clientClosed("wait_for_connection"))}}}function yse(e){let n=JSON.parse(e);if(Array.isArray(n)&&n.length===5&&(n[0]===null||typeof n[0]=="string")&&(n[1]===null||typeof n[1]=="string")&&typeof n[2]=="string"&&typeof n[3]=="string")return n;throw new Error("invalid Phoenix frame")}function Ag(e){return Q(e)&&e.status==="ok"&&Q(e.response)}function wse(e){return typeof e=="string"&&e.length<=100&&_se.test(e)?e:xse}function vse(e){return typeof e=="string"&&e.length<=64&&bse.test(e)?`@linzumi/cli ${e} or newer`:"a newer @linzumi/cli"}function Sse(e){if(Q(e)){let n=e.response;if(Q(n)&&n.error==="commander_version_too_old"){let t=vse(n.min_version),r=wse(n.upgrade_command);return`commander_version_too_old: this Linzumi server requires ${t}. Update with: ${r}`}}return Q$(e)}function Q$(e){if(!Q(e))return"invalid reply";let n=e.response;return Q(n)&&typeof n.error=="string"?n.error:Q(n)&&typeof n.reason=="string"?n.reason:Q(n)&&typeof n.message=="string"?n.message:typeof e.error=="string"?e.error:"unknown"}function kse(e){return Q(e)&&e.status!=="ok"}function Cse(e){return Q(e)&&typeof e.type=="string"}function Tse(e,n){try{let t=e.initial(n);return typeof t=="number"&&Number.isInteger(t)&&t>=0?t:void 0}catch{return}}function Pse(e,n){if(e!==void 0)try{let t=e.current(n);return typeof t=="string"&&t!==""?t:void 0}catch{return}}function Ise(e){if(K$(e,"agent_provider")==="claude-code")return"claude-code-sdk";let t=J$(e,"metadata"),r=J$(t,"local_codex_runner");return K$(r,"agent_provider")==="claude-code"?"claude-code-sdk":"codex-app-server"}function J$(e,n){let t=e?.[n];return Q(t)?t:void 0}function K$(e,n){let t=e?.[n];return typeof t=="string"?t:void 0}function V$(e){if(!Q(e))return;let n=e.control_seq;return typeof n=="number"&&Number.isInteger(n)?n:void 0}function Rse(e){return Q(e)&&typeof e.event=="string"&&Q(e.payload)&&(e.control_seq===void 0||typeof e.control_seq=="number"&&Number.isInteger(e.control_seq))}function Ese(e,n){return new Promise((t,r)=>{let o,i=s=>{o!==void 0&&(clearTimeout(o),o=void 0),s()};e.addEventListener("open",()=>i(t),{once:!0}),e.addEventListener("error",()=>i(()=>r(new Error("websocket open failed"))),{once:!0}),e.addEventListener("close",()=>i(()=>r(new Error("websocket closed before open"))),{once:!0}),n!==void 0&&(o=setTimeout(()=>{o=void 0,i(()=>r(new Error(`websocket open timed out after ${n}ms`)))},n))})}var W$,_i,Go,dse,use,cse,lse,pse,fse,B$,xse,_se,bse,$g=F(()=>{"use strict";Mg();Ut();Mn();W$="PhoenixPushError",_i=class extends Error{phase;reason;constructor(n,t,r){super(r),this.name=W$,this.phase=n,this.reason=t}},Go={socketClosed:()=>new _i("reply","socket_closed","phoenix websocket closed"),reconnectFailed:()=>new _i("reply","socket_closed","phoenix websocket reconnect failed"),socketNotOpen:()=>new _i("wait_for_connection","socket_not_open","phoenix websocket is not open"),clientClosed:e=>new _i(e,"client_closed","phoenix client closed"),notConnected:()=>new _i("wait_for_connection","not_connected","phoenix client is not connected"),connectionWaitTimeout:(e,n)=>new _i("wait_for_connection","timeout",`phoenix push timed out after ${e}ms waiting for connection: ${n}`),replyTimeout:(e,n)=>new _i("reply","timeout",`phoenix push timed out after ${e}ms: ${n}`)};dse=3e4,use=250,cse=1e4,lse=3e4,pse=20,fse="base64url.bearer.phx.",B$=400;xse="npm install -g @linzumi/cli@latest",_se=/^npm install -g @linzumi\/cli(@[0-9A-Za-z^~.-]{1,32})?$/,bse=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]{1,32})?$/});function X$(e){let n=e.itemId??`index:${e.itemIndex}`;return`${e.turnId}:${e.streamKind}:${n}`}var It,nS=F(()=>{"use strict";It={postStreamedRow:"pipeline.post_streamed_row",streamSnapshot:"pipeline.stream_snapshot",finalizeRow:"pipeline.finalize_row",postCompletedRow:"pipeline.post_completed_row",messageState:"pipeline.message_state"}});import{mkdirSync as Y$,readFileSync as Dse}from"node:fs";import{appendFile as eL,rename as nL,writeFile as Mse}from"node:fs/promises";import{createHash as Ase}from"node:crypto";import{dirname as tL,join as Ose}from"node:path";function Ku(e,n){let t=n.replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^[-.]+|[-.]+$/g,"").slice(0,80),r=Ase("sha256").update(n).digest("hex").slice(0,8);return Ose(e,`${t===""?"thread":t}.${r}.outbox.jsonl`)}function Lg(e,n){let t={pendingEntries:[],kv:new Map,counters:{totalEnqueued:0,totalAcked:0,totalDroppedBestEffort:0,totalPermanentFailures:0,totalExpiredOnRecovery:0,lastEntrySeq:0}},r;try{r=Dse(e,"utf8")}catch(a){return iL(a,"ENOENT")||n("outbox_journal_read_failed",{path:e,error:rS(a)}),t}let o=new Map,i=r.split(`
554
+ `,"utf8")}function rse(){let e=process.env.LINZUMI_AGENT_REPLAY_RECORD_FILE?.trim();return e===void 0||e===""?void 0:e}function ose(e){return Pp!==void 0&&Pp.path===e||(Yie(nse(e),{recursive:!0}),Pp={path:e,startedAtMs:Date.now(),nextOrdinal:0}),Pp}function ise(e){if(process.env.LINZUMI_AGENT_REPLAY_EXACT_RAW==="1")return{rawText:e.rawText,rawValue:e.rawValue,transforms:[]};let n=[],t=e.rawValue===void 0?void 0:Ip(e.rawValue,"$.rawValue",n);return{rawText:sse(e.rawText,n),rawValue:t,transforms:n}}function sse(e,n){if(e!==void 0)try{let t=JSON.parse(e);return JSON.stringify(Ip(t,"$.rawText",n))}catch{return e}}function Ip(e,n="$",t=[]){if(Array.isArray(e))return e.map((o,i)=>Ip(o,`${n}[${i}]`,t));if(!Q(e))return e;let r=Object.entries(e).map(([o,i])=>{let s=`${n}.${o}`;return tse.test(o)?(t.push({type:"credential_redaction",path:s}),[o,"[REDACTED]"]):[o,i===void 0?void 0:Ip(i,s,t)]});return Object.fromEntries(r)}var Pp,tse,Mg=F(()=>{"use strict";eS();Mn();tse=/(^|[_-])(token|secret|api[_-]?key|authorization|cookie|private[_-]?key|login[_-]?url)([_-]|$)/iu});import{Buffer as ase}from"node:buffer";function H$(e){return e instanceof _i||e instanceof Error&&e.name===W$&&"phase"in e&&"reason"in e}function G$(e){return H$(e)?e.phase==="wait_for_connection"?!0:e.reason!=="timeout":!1}function Z$(e){return H$(e)&&e.phase==="wait_for_connection"}function mse(e){let n;try{n=JSON.stringify(Q(e)?yi(e):e)??"undefined"}catch{return"<unserializable payload>"}return n.length<=B$?n:`${n.slice(0,B$)}\u2026`}function hse(e){let n=new URL(e);switch(n.protocol){case"http:":n.protocol="ws:";break;case"https:":n.protocol="wss:";break}return n.pathname=n.pathname.replace(/\/$/,"")+"/socket/websocket",n.searchParams.set("vsn","2.0.0"),n.toString()}function gse(e){return[`${fse}${ase.from(e,"utf8").toString("base64url")}`,"phoenix"]}async function Og(e,n,t=(o,i)=>new WebSocket(o,i===void 0?void 0:[...i]),r={}){let o=typeof n=="string"?n:void 0,i=()=>{if(typeof n=="string")return n;try{let N=n();if(typeof N=="string"&&N.trim()!=="")return o=N,N}catch{}if(o!==void 0)return o;throw new Error("phoenix token provider returned no usable token")},s=r.onOperatorNotice??(N=>{console.error(N)}),a=new Map,d=new Map,u=new Map,c=new Map,l=new Map,p=new Map,m=new Map,f=new Map,y=new Set,_=1,w=new Set,S=new Set,v=new Set,b=new Set,k={nextRef:1,websocket:void 0,closed:!1,connected:!1,hasEverConnected:!1,connectionGeneration:0,ready:Promise.resolve(),resolveReady:void 0,rejectReady:void 0,reconnectTimer:void 0,reconnectAttempts:0,backoffResetTimer:void 0,heartbeatTimer:void 0,connectedAt:void 0},R=r.pushTimeoutMs??dse,P=r.controlCursorStore,L=r.controlEpochStore,D=N=>{a.forEach(ne=>{clearTimeout(ne.timer),ne.reject(N)}),a.clear()},j=()=>{k.resolveReady===void 0&&(k.ready=new Promise((N,ne)=>{k.resolveReady=N,k.rejectReady=ne}),k.ready.catch(()=>{}))},q=()=>{k.resolveReady?.(),k.resolveReady=void 0,k.rejectReady=void 0},E=N=>{k.rejectReady?.(N),k.resolveReady=void 0,k.rejectReady=void 0},B=N=>{k.closed=!0,k.reconnectTimer!==void 0&&(clearTimeout(k.reconnectTimer),k.reconnectTimer=void 0),mn(),Be(),k.websocket?.close(),E(N),D(Go.clientClosed("reply"))},z=(N,ne)=>{let oe=V$(ne);if(oe===void 0)return!0;let ue=c.get(N);if(ue!==void 0&&oe<=ue)return!1;let ye=l.get(N);return ye!==void 0&&ye.has(oe)?!1:(W(N,oe),!0)},W=(N,ne)=>{let oe=c.get(N);if(oe===void 0){c.set(N,ne);return}if(ne===oe+1){oe+=1;let ye=l.get(N);if(ye!==void 0)for(;ye.has(oe+1);)oe+=1,ye.delete(oe);c.set(N,oe);return}let ue=l.get(N);ue===void 0&&(ue=new Set,l.set(N,ue)),ue.add(ne)},Z=N=>c.get(N),fe=(N,ne)=>{if(!N.startsWith("local_runner:"))return;let oe=ne.control_high_water;if(typeof oe!="number"||!Number.isInteger(oe))return;let ue=c.get(N);if(!(ue===void 0||oe>=ue)&&(_e(N),P?.reset!==void 0))try{P.reset(N,0)}catch{}},Ee=N=>f.get(N)??0,_e=N=>{c.delete(N),l.delete(N),p.delete(N),m.delete(N),f.set(N,Ee(N)+1)},be=(N,ne)=>{if(L===void 0||!N.startsWith("local_runner:"))return!1;let oe=ne.control_epoch;if(typeof oe!="string"||oe==="")return!1;let ue=!1;try{ue=L.adopt(N,oe)}catch{return!1}return ue&&_e(N),ue},Re=(N,ne)=>{if(P!==void 0)try{P.onAdvance(N,ne)}catch{}},Ae=(N,ne,oe)=>{if(oe!==Ee(N))return;let ue=p.get(N);ue?.delete(ne);let ye=m.get(N);(ye===void 0||ne>ye)&&m.set(N,ne);let Te=ue===void 0||ue.size===0?m.get(N):Math.min(...ue)-1;if(Te===void 0)return;let on=Z(N),et=on===void 0?Te:Math.min(Te,on);Re(N,et)},I=N=>{let ne=c.get(N);if(ne!==void 0)return ne;if(P===void 0)return;let oe=Tse(P,N);return oe===void 0?0:(c.set(N,oe),oe)},$=new Set,K=(N,ne,oe,ue)=>{try{re(N,ne,oe,ue)}catch(ye){let Te=ye instanceof Error?ye.message:String(ye);try{me("phoenix.pushed_frame_dispatch_failed",{topic:N,frame:ne,message:Te,stack:ye instanceof Error?ye.stack??null:null,payloadSnippet:mse(ue),dropped:!0})}catch{}if(!$.has(ne)){$.add(ne);try{s(`linzumi: dropped a pushed "${ne}" frame on ${N} whose dispatch failed (${Te}); see the CLI audit log for the payload snippet.`)}catch{}}}},re=(N,ne,oe,ue)=>{if(N.startsWith("local_runner:")&&ne==="control"&&Cse(ue)){if(!z(N,ue))return;let ye=V$(ue);if(ye!==void 0){let et=p.get(N);et===void 0&&(et=new Set,p.set(N,et)),et.add(ye)}let Te=Ee(N),on=ye===void 0?()=>{}:()=>Ae(N,ye,Te);w.forEach(et=>et(ue,on))}oe===null&&ne!=="phx_reply"&&ne!=="phx_error"&&S.forEach(ye=>ye(N,ne,ue))},pe=(N,ne)=>{let oe=c.get(N),ue=oe===void 0?ne:Math.max(oe,ne),ye=l.get(N);if(ye!==void 0){for(let Te of ye)Te<=ue&&ye.delete(Te);for(;ye.has(ue+1);)ue+=1,ye.delete(ue)}c.set(N,ue)},Y=N=>{let ne=Z(N);if(ne===void 0)return;let oe=p.get(N),ue=oe!==void 0&&oe.size>0?Math.min(...oe)-1:void 0;Re(N,ue===void 0?ne:Math.min(ue,ne))},ie=(N,ne)=>{if(N.startsWith("chat:")){let oe=ne.events;if(oe==null)return;if(!Array.isArray(oe))throw new Error(`phoenix rejoin returned invalid events for ${N}`);oe.forEach(ue=>{S.forEach(ye=>ye(N,"event",ue))});return}if(N.startsWith("local_runner:")){let oe=ne.controls;if(oe==null)return;if(!Array.isArray(oe))throw new Error(`phoenix rejoin returned invalid controls for ${N}`);oe.forEach(Te=>{if(!Rse(Te))return;let on={...Te.payload,replayed:!0,...Te.control_seq===void 0?{}:{control_seq:Te.control_seq}};K(N,Te.event,null,on)});let ue=ne.controls_advance_to,ye=ne.control_high_water;typeof ue=="number"&&Number.isInteger(ue)&&(typeof ye!="number"||ue<=ye)&&pe(N,ue),Y(N)}},Fe=N=>{let ne=yse(String(N.data)),[,oe,ue,ye,Te]=ne;if(oe!==null&&(ye==="phx_reply"||ye==="phx_error")){let on=a.get(oe);if(on!==void 0)if(a.delete(oe),clearTimeout(on.timer),ye==="phx_error")on.reject(new Error("phoenix push failed"));else if(kse(Te)&&on.event!=="phx_join")on.reject(new Error(`phoenix push failed: ${Q$(Te)}`));else{if(on.event==="phx_join"&&d.has(ue)&&Ag(Te)){let et=be(ue,Te.response);fe(ue,Te.response);try{et||ie(ue,Te.response)}catch(At){on.reject(At instanceof Error?At:new Error(String(At)));return}ue.startsWith("local_runner:")&&(Te.response.controls_truncated===!0||et)&&Jn(ue)}on.resolve(Te)}}K(ue,ye,oe,Te)},ae=(N,ne,oe,ue=R,ye)=>{let Te=k.websocket;if(Te===void 0||Te.readyState!==WebSocket.OPEN)return Promise.reject(Go.socketNotOpen());let on=String(k.nextRef);k.nextRef+=1,ne==="phx_join"&&u.set(N,on);let At=[ne==="phx_join"?on:u.get(N)??null,on,N,ne,oe],Gt=Math.max(0,Math.ceil(ue));return new Promise((at,Cr)=>{let Nt=setTimeout(()=>{a.delete(on)&&Cr(Go.replyTimeout(Gt,ne))},Gt);a.set(on,{event:ne,timer:Nt,resolve:at,reject:Cr}),ts({provider:Ise(oe),captureKind:"commander-push",rawText:JSON.stringify(At),rawValue:{topic:N,event:ne,payload:oe}}),Te.send(JSON.stringify(At)),ye?.()})},Ce=(N,ne)=>{let oe={};for(let ue of ne)for(let[ye,Te]of Object.entries(ue)){if(Te===void 0)continue;let on=oe[ye];ye==="last_seq"&&typeof Te=="number"&&typeof on=="number"?oe[ye]=Math.min(on,Te):on===void 0&&(oe[ye]=Te)}if(N.startsWith("local_runner:")){let ue=I(N);ue!==void 0&&(oe.last_control_seq=ue);let ye=Pse(L,N);ye!==void 0&&(oe.last_control_epoch=ye)}return oe},Yn=async N=>{let ne=0,oe=0;for(;;){let ue=d.get(N);if(ue===void 0)return;let ye=I(N),Te=await ae(N,"phx_join",Ce(N,[...ue.values()].map(Cr=>Cr.payload())));if(ne+=1,!Ag(Te))return;let on=Array.isArray(Te.response.controls)?Te.response.controls.length:0;oe+=on;let et=Te.response.controls_truncated===!0,At=I(N),Gt=Te.response.control_high_water,at=et?typeof Gt=="number"&&Number.isInteger(Gt)&&At!==void 0?Math.max(0,Gt-At):null:0;if(me("phoenix.control_backlog_fetch_progress",{topic:N,fetches:ne,fetched:oe,remaining_estimate:at,truncated:et}),!et)return;if(At===ye){s(`phoenix.control_backlog_fetch_stalled topic=${N} fetches=${ne} fetched=${oe} cursor=${String(At)}; a truncated reply made no cursor progress - stopping this fetch loop (a server paging bug; the next reconnect resumes from the watermark)`);return}ne%pse===0&&s(`phoenix.control_backlog_cap_exceeded topic=${N} fetches=${ne} fetched=${oe} remaining_estimate=${at??"unknown"}; continuing the paginated backlog fetch (a healthy connection never reconnects, so nothing is deferred)`),await new Promise(Cr=>{setImmediate(Cr)})}},Jn=N=>{y.has(N)||(y.add(N),Yn(N).catch(()=>{}).finally(()=>y.delete(N)))},Dt=new Map,V=async()=>{Dt.clear();for(let[N,ne]of d){let oe=await ae(N,"phx_join",Ce(N,[...ne.values()].map(ue=>ue.payload())));if(!Ag(oe))throw new Error(`phoenix rejoin failed for ${N}`);Q(oe.response)&&Dt.set(N,oe.response)}},ce=()=>{if(k.closed||k.reconnectTimer!==void 0)return;j();let N=Math.min(cse,use*2**k.reconnectAttempts);k.reconnectAttempts+=1,k.reconnectTimer=setTimeout(()=>{k.reconnectTimer=void 0,$r()},Math.random()*N)},$e=(N,ne)=>{let oe=k.connected,ue=k.connectedAt;k.connectedAt=void 0,k.connected=!1;let ye=k.websocket;if(k.websocket=void 0,mn(),Be(),ye!==void 0&&(ye.readyState===WebSocket.CONNECTING||ye.readyState===WebSocket.OPEN))try{ye.close()}catch{}if(D(N),ce(),oe){let Te={closeCode:ne?.code,closeReason:typeof ne?.reason=="string"&&ne.reason!==""?ne.reason:void 0,previousSessionDurationMs:ue===void 0?void 0:Math.max(0,Date.now()-ue),reconnectCount:k.reconnectAttempts};b.forEach(on=>{try{on(Te)}catch{}})}},_n=3e4,mn=()=>{k.heartbeatTimer!==void 0&&(clearInterval(k.heartbeatTimer),k.heartbeatTimer=void 0)},Be=()=>{k.backoffResetTimer!==void 0&&(clearTimeout(k.backoffResetTimer),k.backoffResetTimer=void 0)},Xe=()=>{Be(),k.backoffResetTimer=setTimeout(()=>{k.backoffResetTimer=void 0,k.connected&&(k.reconnectAttempts=0)},lse),k.backoffResetTimer?.unref?.()},Mt=()=>{mn(),k.heartbeatTimer=setInterval(()=>{let N=k.websocket;if(N===void 0||N.readyState!==WebSocket.OPEN)return;let ne=String(k.nextRef);k.nextRef+=1;try{N.send(JSON.stringify([null,ne,"phoenix","heartbeat",{}]))}catch{}},_n)},$r=async()=>{if(k.closed)return;let N;try{N=t(hse(e),gse(i()));let ne=N;if(k.websocket=N,N.addEventListener("message",oe=>{k.websocket===ne&&Fe(oe)}),N.addEventListener("close",oe=>{k.websocket===N&&$e(Go.socketClosed(),{code:typeof oe.code=="number"?oe.code:void 0,reason:typeof oe.reason=="string"?oe.reason:void 0})},{once:!0}),N.addEventListener("error",()=>{k.websocket===N&&$e(Go.socketClosed())},{once:!0}),await Ese(N,R),k.closed||k.websocket!==N||(k.connectionGeneration+=1,await V(),k.closed||k.websocket!==N))return;if(k.connected=!0,k.connectedAt=Date.now(),k.hasEverConnected=!0,Xe(),Mt(),q(),k.connectionGeneration>1){let oe=new Map(Dt);v.forEach(ue=>{Promise.resolve(ue(oe)).catch(()=>{})})}}catch(ne){if(k.closed||N!==void 0&&k.websocket!==void 0&&k.websocket!==N)return;if(!k.hasEverConnected){B(ne instanceof Error?ne:new Error(String(ne)));return}$e(Go.reconnectFailed())}};j(),$r(),await k.ready;let Bo=(N,ne)=>new Promise((oe,ue)=>{let ye=setTimeout(()=>{ue(Go.connectionWaitTimeout(R,N))},Math.max(0,ne-Date.now()));k.ready.then(()=>{clearTimeout(ye),oe()},Te=>{clearTimeout(ye),ue(Te instanceof Error?Te:new Error(String(Te)))})}),Jo=async(N,ne,oe,ue)=>{let ye=Date.now()+R;return await Bo(ne,ye),ae(N,ne,oe,ye-Date.now(),ue)};return{join:async(N,ne,oe)=>{let ue=oe?.registrationId??`join-registration-${_++}`,ye=[...d.get(N)?.values()??[]].map(on=>on.payload()),Te=await Jo(N,"phx_join",Ce(N,[...ye,ne]));if(Ag(Te)){let on=d.get(N)??new Map,et=on.size===0;if(on.set(ue,{payload:oe?.rejoinPayload??(()=>ne)}),d.set(N,on),et&&N.startsWith("local_runner:")){let At=be(N,Te.response);fe(N,Te.response),At||ie(N,Te.response),(Te.response.controls_truncated===!0||At)&&Jn(N)}return Te.response}throw new Error(`phoenix join failed: ${Sse(Te)}`)},unregisterJoin:(N,ne)=>{let oe=d.get(N);oe!==void 0&&(oe.delete(ne),oe.size===0&&(d.delete(N),u.delete(N)))},push:Jo,pushIfConnected:async(N,ne,oe)=>{if(!k.connected)throw Go.notConnected();return await ae(N,ne,oe)},onControl:N=>{w.add(N)},onEvent:N=>{S.add(N)},onReconnect:N=>{v.add(N)},onDisconnect:N=>{b.add(N)},forceReconnect:N=>k.closed||!k.connected?!1:($e(Go.socketClosed(),{reason:N??"forced_stale_reconnect"}),!0),hardReset:N=>k.closed?!1:($e(Go.socketClosed(),{reason:N??"hard_reset"}),k.reconnectTimer!==void 0&&(clearTimeout(k.reconnectTimer),k.reconnectTimer=void 0),$r(),!0),close:()=>{B(Go.clientClosed("wait_for_connection"))}}}function yse(e){let n=JSON.parse(e);if(Array.isArray(n)&&n.length===5&&(n[0]===null||typeof n[0]=="string")&&(n[1]===null||typeof n[1]=="string")&&typeof n[2]=="string"&&typeof n[3]=="string")return n;throw new Error("invalid Phoenix frame")}function Ag(e){return Q(e)&&e.status==="ok"&&Q(e.response)}function wse(e){return typeof e=="string"&&e.length<=100&&_se.test(e)?e:xse}function vse(e){return typeof e=="string"&&e.length<=64&&bse.test(e)?`@linzumi/cli ${e} or newer`:"a newer @linzumi/cli"}function Sse(e){if(Q(e)){let n=e.response;if(Q(n)&&n.error==="commander_version_too_old"){let t=vse(n.min_version),r=wse(n.upgrade_command);return`commander_version_too_old: this Linzumi server requires ${t}. Update with: ${r}`}}return Q$(e)}function Q$(e){if(!Q(e))return"invalid reply";let n=e.response;return Q(n)&&typeof n.error=="string"?n.error:Q(n)&&typeof n.reason=="string"?n.reason:Q(n)&&typeof n.message=="string"?n.message:typeof e.error=="string"?e.error:"unknown"}function kse(e){return Q(e)&&e.status!=="ok"}function Cse(e){return Q(e)&&typeof e.type=="string"}function Tse(e,n){try{let t=e.initial(n);return typeof t=="number"&&Number.isInteger(t)&&t>=0?t:void 0}catch{return}}function Pse(e,n){if(e!==void 0)try{let t=e.current(n);return typeof t=="string"&&t!==""?t:void 0}catch{return}}function Ise(e){if(K$(e,"agent_provider")==="claude-code")return"claude-code-sdk";let t=J$(e,"metadata"),r=J$(t,"local_codex_runner");return K$(r,"agent_provider")==="claude-code"?"claude-code-sdk":"codex-app-server"}function J$(e,n){let t=e?.[n];return Q(t)?t:void 0}function K$(e,n){let t=e?.[n];return typeof t=="string"?t:void 0}function V$(e){if(!Q(e))return;let n=e.control_seq;return typeof n=="number"&&Number.isInteger(n)?n:void 0}function Rse(e){return Q(e)&&typeof e.event=="string"&&Q(e.payload)&&(e.control_seq===void 0||typeof e.control_seq=="number"&&Number.isInteger(e.control_seq))}function Ese(e,n){return new Promise((t,r)=>{let o,i=s=>{o!==void 0&&(clearTimeout(o),o=void 0),s()};e.addEventListener("open",()=>i(t),{once:!0}),e.addEventListener("error",()=>i(()=>r(new Error("websocket open failed"))),{once:!0}),e.addEventListener("close",()=>i(()=>r(new Error("websocket closed before open"))),{once:!0}),n!==void 0&&(o=setTimeout(()=>{o=void 0,i(()=>r(new Error(`websocket open timed out after ${n}ms`)))},n))})}var W$,_i,Go,dse,use,cse,lse,pse,fse,B$,xse,_se,bse,$g=F(()=>{"use strict";Mg();Ut();Mn();W$="PhoenixPushError",_i=class extends Error{phase;reason;constructor(n,t,r){super(r),this.name=W$,this.phase=n,this.reason=t}},Go={socketClosed:()=>new _i("reply","socket_closed","phoenix websocket closed"),reconnectFailed:()=>new _i("reply","socket_closed","phoenix websocket reconnect failed"),socketNotOpen:()=>new _i("wait_for_connection","socket_not_open","phoenix websocket is not open"),clientClosed:e=>new _i(e,"client_closed","phoenix client closed"),notConnected:()=>new _i("wait_for_connection","not_connected","phoenix client is not connected"),connectionWaitTimeout:(e,n)=>new _i("wait_for_connection","timeout",`phoenix push timed out after ${e}ms waiting for connection: ${n}`),replyTimeout:(e,n)=>new _i("reply","timeout",`phoenix push timed out after ${e}ms: ${n}`)};dse=3e4,use=250,cse=1e4,lse=3e4,pse=20,fse="base64url.bearer.phx.",B$=400;xse="npm install -g @linzumi/cli@latest",_se=/^npm install -g @linzumi\/cli(@[0-9A-Za-z^~.-]{1,32})?$/,bse=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]{1,32})?$/});function X$(e){let n=e.itemId??`index:${e.itemIndex}`;return`${e.turnId}:${e.streamKind}:${n}`}var It,nS=F(()=>{"use strict";It={postStreamedRow:"pipeline.post_streamed_row",streamSnapshot:"pipeline.stream_snapshot",finalizeRow:"pipeline.finalize_row",postCompletedRow:"pipeline.post_completed_row",messageState:"pipeline.message_state"}});import{mkdirSync as Y$,readFileSync as Dse}from"node:fs";import{appendFile as eL,rename as nL,writeFile as Mse}from"node:fs/promises";import{createHash as Ase}from"node:crypto";import{dirname as tL,join as Ose}from"node:path";function Ku(e,n){let t=n.replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^[-.]+|[-.]+$/g,"").slice(0,80),r=Ase("sha256").update(n).digest("hex").slice(0,8);return Ose(e,`${t===""?"thread":t}.${r}.outbox.jsonl`)}function Lg(e,n){let t={pendingEntries:[],kv:new Map,counters:{totalEnqueued:0,totalAcked:0,totalDroppedBestEffort:0,totalPermanentFailures:0,totalExpiredOnRecovery:0,lastEntrySeq:0}},r;try{r=Dse(e,"utf8")}catch(a){return iL(a,"ENOENT")||n("outbox_journal_read_failed",{path:e,error:rS(a)}),t}let o=new Map,i=r.split(`
555
555
  `),s=-1;for(let a=0;a<i.length;a+=1){let d=i[a];d!==void 0&&d.trim()!==""&&(s=a)}for(let a=0;a<=s;a+=1){let d=i[a];if(d===void 0||d.trim()==="")continue;let u=qse(d);if(u===void 0){n("outbox_journal_line_discarded",{path:e,line:a+1,trailing:a===s});continue}jse(u,o,t,n,e)}return t.pendingEntries=[...o.values()],t}function oL(e){let{log:n}=e,t=e.path,r=e.compactionThreshold??$se,o=e.degradedThreshold??Lse;Y$(tL(t),{recursive:!0});let i=[],s=Promise.resolve(),a=!1,d=0,u=!1,c=0,l=0,p=!1,m=v=>{if(l+=1,c+=1,n("outbox_journal_write_failed",{path:t,error:rS(v)}),!p&&c>=o&&(p=!0,n("outbox_journal_degraded",{level:"error",path:t,consecutiveWriteFailures:c,totalWriteFailures:l})),p&&i.length>0){let b=i.reduce((k,R)=>k+R.split(`
556
556
  `).length-1,0);i=[],n("outbox_journal_buffered_records_dropped",{level:"error",path:t,droppedRecords:b,consecutiveWriteFailures:c,totalWriteFailures:l})}},f=()=>{c=0,p&&(p=!1,n("outbox_journal_recovered",{level:"warn",path:t,totalWriteFailures:l}))},y=async()=>{if(a=!1,i.length>0){let v=i.join("");i=[];try{await eL(t,v,"utf8")}catch(b){throw i.unshift(v),b}}d>=r&&await _()},_=async()=>{d=0;let v=e.snapshot(),b=i;i=[];let k=[bi({t:"counters",enqueued:v.counters.totalEnqueued,acked:v.counters.totalAcked,dropped:v.counters.totalDroppedBestEffort,failed:v.counters.totalPermanentFailures,expired:v.counters.totalExpiredOnRecovery,lastSeq:v.counters.lastEntrySeq}),bi({t:"context",kv:Object.fromEntries(v.kv)}),...v.pendingEntries.map(P=>rL("pending",P))],R=`${t}.tmp`;try{await Mse(R,k.join(""),"utf8"),await nL(R,t)}catch(P){throw i=[...b,...i],d=r,P}n("outbox_journal_compacted",{path:t,pendingEntries:v.pendingEntries.length})},w=()=>{a||(a=!0,s=s.then(()=>y().then(f,v=>{m(v)}),v=>{m(v)}))},S=(v,b)=>{if(u){n("outbox_journal_append_after_close",{path:t});return}i.push(v),b&&(d+=1),w()};return{appendEnqueue:v=>{S(rL("enqueue",v),!1)},appendCoalesce:(v,b)=>{S(bi({t:"coalesce",seq:v,data:b}),!1)},appendAck:v=>{S(bi({t:"ack",seq:v}),!0)},appendSkip:(v,b)=>{S(bi({t:"skip",seq:v,reason:b}),!0)},appendDrop:v=>{S(bi({t:"drop",seq:v}),!0)},appendFail:v=>{S(bi({t:"fail",seq:v}),!0)},appendExpired:v=>{S(bi({t:"expired",seq:v}),!0)},appendKv:(v,b)=>{S(bi({t:"kv",key:v,value:b}),!1)},settled:()=>s.then(()=>{}),status:()=>({totalWriteFailures:l,degraded:p}),rekey:v=>{if(u){n("outbox_journal_rekey_after_close",{path:v});return}s=s.then(async()=>{if(v===t)return;let b=t;try{Y$(tL(v),{recursive:!0}),await nL(b,v)}catch(k){if(!iL(k,"ENOENT")){n("outbox_journal_rekey_failed",{level:"error",from:b,to:v,error:rS(k)});return}}t=v,n("outbox_journal_rekeyed",{from:b,to:v})})},close:async()=>{if(u=!0,await s.then(()=>{}),i.length>0){let v=i.join("");try{await eL(t,v,"utf8"),i=[],f()}catch(b){m(b)}}}}}function jse(e,n,t,r,o){let i=t.counters,s=a=>{a>i.lastEntrySeq&&(i.lastEntrySeq=a)};switch(e.t){case"enqueue":case"pending":{let a=Fse(e);if(a===void 0){r("outbox_journal_line_discarded",{path:o,recordType:e.t});return}n.set(a.entrySeq,a),s(a.entrySeq),e.t==="enqueue"&&(i.totalEnqueued+=1);return}case"coalesce":{let a=X(e.seq),d=A(e.data);if(i.totalEnqueued+=1,a===void 0||d===void 0)return;let u=n.get(a);u!==void 0&&(u.data=d),s(a);return}case"ack":case"skip":case"drop":case"fail":case"expired":{let a=X(e.seq);if(a===void 0)return;n.delete(a),s(a),e.t==="ack"?i.totalAcked+=1:e.t==="drop"?i.totalDroppedBestEffort+=1:e.t==="fail"?i.totalPermanentFailures+=1:e.t==="expired"&&(i.totalExpiredOnRecovery+=1);return}case"item_seq":return;case"kv":{let a=tS(e.key);a!==void 0&&e.value!==void 0&&t.kv.set(a,e.value);return}case"context":{t.kv=new Map;let a=A(e.kv);for(let[d,u]of Object.entries(a??{}))u!==void 0&&t.kv.set(d,u);return}case"counters":{i.totalEnqueued=X(e.enqueued)??0,i.totalAcked=X(e.acked)??0,i.totalDroppedBestEffort=X(e.dropped)??0,i.totalPermanentFailures=X(e.failed)??0,i.totalExpiredOnRecovery=X(e.expired)??0,s(X(e.lastSeq)??0);return}default:{r("outbox_journal_unknown_record",{path:o,recordType:e.t??null});return}}}function Fse(e){let n=X(e.seq),t=tS(e.kind),r=A(e.data),o=e.resolution==="must_ack"||e.resolution==="best_effort"?e.resolution:void 0,i=tS(e.coalesceKey),s=typeof e.atMs=="number"&&Number.isFinite(e.atMs)?e.atMs:0;if(!(n===void 0||t===void 0||r===void 0||o===void 0))return{entrySeq:n,kind:t,data:r,...i===void 0?{}:{coalesceKey:i},resolution:o,attempts:0,enqueuedAtMs:s}}function rL(e,n){return bi({t:e,seq:n.entrySeq,kind:n.kind,data:n.data,...n.coalesceKey===void 0?{}:{coalesceKey:n.coalesceKey},resolution:n.resolution,atMs:n.enqueuedAtMs})}function bi(e){return`${JSON.stringify(e)}
557
- `}function qse(e){try{let n=JSON.parse(e);return Q(n)?n:void 0}catch{return}}function tS(e){return typeof e=="string"?e:void 0}function iL(e,n){return typeof e=="object"&&e!==null&&e.code===n}function rS(e){return e instanceof Error?e.message:String(e)}var $se,Lse,oS=F(()=>{"use strict";Mn();Kn();$se=256,Lse=3});function uL(e){let{builders:n,log:t,onPermanentFailure:r}=e,o=e.threadKey,i=e.now??(()=>Date.now()),s=e.retryDelaysMs??[...iS],a=[],d=0,u=new Map,c=new Map,l=[],p=1,m=0,f=0,y=0,_=0,w=0,S=0,v=[],b=0,k=!1,R=!0,P=!1,L,D,j=Math.max(1,Math.floor(e.maxInFlightPushes??1)),q=0,E=[],B=Promise.resolve(),z=()=>a[d],W=()=>a.length-d,Z=()=>({totalEnqueued:m,totalAcked:f,totalDroppedBestEffort:_,totalPermanentFailures:w,totalExpiredOnRecovery:S,lastEntrySeq:p-1});if(e.persistDir!==void 0){let V=Ku(e.persistDir,o),ce=Lg(V,t),$e=e.journalRecoveryMaxAgeMs??zse,_n=i(),mn=[];for(let Be of ce.pendingEntries){if(_n-Be.enqueuedAtMs>$e){mn.push(Be);continue}let Xe={entry:Be,state:"queued"};a.push(Xe),Be.coalesceKey!==void 0&&u.set(jg(Be.kind,Be.coalesceKey),Xe)}if(c=ce.kv,m=ce.counters.totalEnqueued,f=ce.counters.totalAcked,_=ce.counters.totalDroppedBestEffort,w=ce.counters.totalPermanentFailures,S=ce.counters.totalExpiredOnRecovery+mn.length,p=ce.counters.lastEntrySeq+1,D=oL({path:V,log:t,compactionThreshold:e.journalCompactionThreshold,snapshot:()=>({pendingEntries:a.slice(d).map(Be=>Be.entry),kv:c,counters:Z()})}),mn.length>0){for(let Xe of mn)D.appendExpired(Xe.entrySeq);let Be=mn.map(Xe=>Math.max(0,_n-Xe.enqueuedAtMs));t("outbox_recovery_expired",{level:"warn",threadKey:o,expiredEntries:mn.length,survivingEntries:W(),maxAgeMs:$e,oldestAgeMs:Math.max(...Be),newestAgeMs:Math.min(...Be),kinds:[...new Set(mn.map(Xe=>Xe.kind))]})}W()>0&&t("outbox_recovered",{threadKey:o,pendingEntries:W(),nextEntrySeq:p})}let fe={remember:(V,ce)=>{c.set(V,ce),D?.appendKv(V,ce)},recall:V=>c.get(V)},De=()=>{d+=1,d>=64&&d*2>=a.length&&(a=a.slice(d),d=0)},ke=()=>{let V=z();for(let ce=l.length-1;ce>=0;ce-=1){let $e=l[ce];$e!==void 0&&(V===void 0||V.entry.entrySeq>$e.upToSeq)&&(l.splice(ce,1),$e.timer!==void 0&&clearTimeout($e.timer),$e.resolve())}},ge=V=>{if(V.entry.coalesceKey===void 0)return;let ce=jg(V.entry.kind,V.entry.coalesceKey);u.get(ce)===V&&u.delete(ce)},Re=(V,ce)=>{let $e=V.entry;switch(ce.kind){case"ack":{let _n=n[$e.kind];try{_n?.onReply?.($e.data,ce.reply,fe)}catch(mn){t("outbox_on_reply_failed",{threadKey:o,entrySeq:$e.entrySeq,kind:$e.kind,error:Rp(mn)})}D?.appendAck($e.entrySeq);break}case"skip":{t("outbox_entry_skipped",{threadKey:o,entrySeq:$e.entrySeq,kind:$e.kind,reason:ce.reason}),D?.appendSkip($e.entrySeq,ce.reason);break}case"fail":{if($e.resolution==="must_ack"){D?.appendFail($e.entrySeq);try{r($e,ce.failure)}catch(_n){t("outbox_permanent_failure_callback_failed",{threadKey:o,entrySeq:$e.entrySeq,error:Rp(_n)})}}else D?.appendDrop($e.entrySeq);break}}ge(V),De(),ke()},Ee=()=>{for(;;){let V=z();if(V===void 0||V.outcome===void 0)return;Re(V,V.outcome)}},I=(V,ce)=>{let $e=V.entry;ce.kind==="fail"&&($e.resolution==="must_ack"?(w+=1,t("outbox_permanent_failure",{threadKey:o,entrySeq:$e.entrySeq,kind:$e.kind,attempts:$e.attempts,error:ce.failure.message})):(_+=1,t("outbox_dropped_best_effort",{threadKey:o,entrySeq:$e.entrySeq,kind:$e.kind,attempts:$e.attempts,error:ce.failure.message}))),V.outcome=ce,V.state="queued"},$=V=>{v.length<sL?v.push(V):v[b]=V,b=(b+1)%sL},K=V=>{V.retryTimer!==void 0&&(clearTimeout(V.retryTimer),V.retryTimer=void 0)},ie=()=>{if(q>0)return;let V=E;E=[];for(let ce of V)ce()},pe=()=>{let V=z();return V!==void 0&&V.outcome===void 0&&V.state==="queued"&&V.retryTimer!==void 0},Y=(V,ce)=>{K(V),V.retryTimer=setTimeout(()=>{V.retryTimer=void 0,!(P||k||V.outcome!==void 0)&&ae()},ce),V.retryTimer?.unref?.()},oe=async V=>{let ce=V.entry,$e=B,_n=()=>{};B=new Promise(Xe=>{_n=Xe});let mn=!1,Be=()=>{mn||(mn=!0,_n())};V.state="pushing",q+=1;try{if(await $e,P||k||V.outcome!==void 0){V.state="queued",Be();return}let Xe=n[ce.kind];if(Xe===void 0){Be(),I(V,{kind:"fail",failure:new Error(`no outbox builder registered for kind ${ce.kind}`)});return}let Mt;try{Mt=Xe.build(ce.data,fe)}catch($r){Be(),I(V,{kind:"fail",failure:dL($r)});return}if("skip"in Mt){Be(),I(V,{kind:"skip",reason:Mt.reason});return}ce.attempts+=1,await Fe(V,Mt,Be)}finally{q-=1}},Fe=async(V,ce,$e)=>{let _n=V.entry,mn=i();try{let Be=await e.push(ce.event,ce.payload,ce.timeoutMs,$e);$e(),$(Math.max(0,i()-mn)),f+=1,I(V,{kind:"ack",reply:Be})}catch(Be){$e(),V.state="queued";let Xe=dL(Be);if(e.isRetryBudgetExempt?.(Xe)===!0)_n.attempts-=1,y+=1,t("outbox_push_connection_wait",{threadKey:o,entrySeq:_n.entrySeq,kind:_n.kind,error:Xe.message}),!P&&!k&&Y(V,Bse);else{let Mt=s[_n.attempts-1];Mt===void 0?I(V,{kind:"fail",failure:Xe}):(y+=1,t("outbox_push_retry",{threadKey:o,entrySeq:_n.entrySeq,kind:_n.kind,attempt:_n.attempts,delayMs:Mt,error:Xe.message}),!P&&!k&&Y(V,Mt))}}},ae=()=>{if(Ee(),P||k){ie();return}if(pe()){ie();return}for(let V=d;V<a.length&&q<j;V+=1){let ce=a[V];ce===void 0||ce.outcome!==void 0||ce.state==="pushing"||ce.retryTimer!==void 0||oe(ce).then(()=>ae(),$e=>{t("outbox_drain_loop_error",{threadKey:o,error:Rp($e)}),ae()})}ie()},Ce=()=>{k||P||z()!==void 0&&Promise.resolve().then(()=>{!P&&!k&&ae()})},Yn=V=>{let ce=p-1,$e=z();return $e===void 0||$e.entry.entrySeq>ce?Promise.resolve():new Promise((_n,mn)=>{let Be={upToSeq:ce,resolve:_n,reject:mn,timer:void 0};V!==void 0&&(Be.timer=setTimeout(()=>{let Xe=l.indexOf(Be);Xe!==-1&&l.splice(Xe,1),mn(new Error(`outbox flush for ${o} timed out after ${V}ms with ${W()} entries pending`))},V)),l.push(Be)})},Jn=async V=>{R=!1;try{await Yn(V)}catch(ce){t("outbox_close_flush_timeout",{threadKey:o,depth:W(),error:Rp(ce)})}P=!0;for(let ce=d;ce<a.length;ce+=1)K(a[ce]);q>0&&await Promise.race([new Promise(ce=>{E.push(ce)}),Vse(Use)]);for(let ce of l.splice(0))ce.timer!==void 0&&clearTimeout(ce.timer),ce.reject(new Error(`outbox for ${o} closed`));await D?.close()},Dt={enqueue:V=>{if(!R)throw new Error(`outbox for ${o} is closed`);if(m+=1,V.coalesceKey!==void 0){let mn=jg(V.kind,V.coalesceKey),Be=u.get(mn);if(Be!==void 0&&Be.state==="queued"&&Be.outcome===void 0)return Be.entry.data=Jse(n[V.kind],Be.entry,V.data,o,t),D?.appendCoalesce(Be.entry.entrySeq,Be.entry.data),Be.entry.entrySeq}let ce=p;p+=1;let $e={entrySeq:ce,kind:V.kind,data:V.data,...V.coalesceKey===void 0?{}:{coalesceKey:V.coalesceKey},resolution:V.resolution,attempts:0,enqueuedAtMs:i()},_n={entry:$e,state:"queued"};return a.push(_n),V.coalesceKey!==void 0&&u.set(jg(V.kind,V.coalesceKey),_n),D?.appendEnqueue($e),Ce(),ce},flush:Yn,pause:()=>{k=!0},resume:()=>{if(k){k=!1;for(let V=d;V<a.length;V+=1){let ce=a[V];ce!==void 0&&(ce.entry.attempts=0,K(ce))}Ce()}},metrics:()=>{let V=z(),ce=D?.status();return{depth:W(),oldestEntryAgeMs:V===void 0?void 0:Math.max(0,i()-V.entry.enqueuedAtMs),totalEnqueued:m,totalAcked:f,totalRetried:y,totalDroppedBestEffort:_,totalPermanentFailures:w,totalExpiredOnRecovery:S,totalJournalWriteFailures:ce?.totalWriteFailures??0,journalDegraded:ce?.degraded??!1,paused:k,pushLatency:Kse(v)}},close:V=>(L===void 0&&(L=Jn(V??Nse)),L),journalSettled:()=>D===void 0?Promise.resolve():D.settled(),rekeyJournal:V=>{V!==o&&(o=V,e.persistDir!==void 0&&D?.rekey(Ku(e.persistDir,V)))}};return Ce(),Dt}function Jse(e,n,t,r,o){if(e?.coalesce===void 0)return t;try{return e.coalesce(n.data,t)}catch(i){return o("outbox_coalesce_failed",{threadKey:r,entrySeq:n.entrySeq,kind:n.kind,error:Rp(i)}),t}}function jg(e,n){return`${e}\0${n}`}function Kse(e){if(e.length===0)return;let n=[...e].sort((t,r)=>t-r);return{p50Ms:aL(n,.5),p95Ms:aL(n,.95),maxMs:n[n.length-1]??0,ackedInWindow:n.length}}function aL(e,n){let t=Math.max(1,Math.ceil(n*e.length));return e[t-1]??0}function Vse(e){return new Promise(n=>{setTimeout(n,e)})}function dL(e){return e instanceof Error?e:new Error(String(e))}function Rp(e){return e instanceof Error?e.message:String(e)}var iS,zse,Nse,Use,Bse,sL,sS=F(()=>{"use strict";oS();iS=[500,1e3,2500,5e3,1e4,3e4],zse=1440*60*1e3,Nse=3e4,Use=1e3,Bse=1e3,sL=256});function cL(e){let n=e.now??(()=>Date.now()),t=e.intervalMs??Wse,r=e.turnStalledThresholdMs??Hse,o=Zse,i=new Set,s=new Set,a=!1,d=()=>{if(a)return;let l,p,m;try{l=e.outboxMetrics(),p=e.loopMetrics(),m=e.turnWaitStates?.()??[]}catch(_){e.log("pipeline.stats_sample_failed",{thread_key:e.threadKey,message:_ instanceof Error?_.message:String(_)});return}let f=n();if(u(Qse(p),l,m,f),!Yse(l,p,o))return;let y=eae(p.activeTurns);e.log("pipeline.stats",{thread_key:e.threadKey,outbox_depth:l.depth,oldest_entry_age_ms:l.oldestEntryAgeMs??null,total_enqueued:l.totalEnqueued,total_acked:l.totalAcked,total_retried:l.totalRetried,total_dropped_best_effort:l.totalDroppedBestEffort,total_permanent_failures:l.totalPermanentFailures,total_expired_on_recovery:l.totalExpiredOnRecovery,total_journal_write_failures:l.totalJournalWriteFailures,journal_degraded:l.journalDegraded,push_latency_p50_ms:l.pushLatency?.p50Ms??null,push_latency_p95_ms:l.pushLatency?.p95Ms??null,push_latency_max_ms:l.pushLatency?.maxMs??null,push_latency_window_acked:l.pushLatency?.ackedInWindow??0,paused:l.paused,loop_queue_depth:p.queueDepth,loop_phase:p.phase,active_turn_count:p.activeTurns.length,buffered_turn_count:p.bufferedTurns.length,active_turn_id:y?.turnId??null,active_turn_source_seq:y?.sourceSeq??null,active_turn_age_ms:y===void 0?null:Math.max(0,f-y.startedAtMs)}),o={totalEnqueued:l.totalEnqueued,totalAcked:l.totalAcked,totalRetried:l.totalRetried,totalDroppedBestEffort:l.totalDroppedBestEffort,totalPermanentFailures:l.totalPermanentFailures,totalExpiredOnRecovery:l.totalExpiredOnRecovery,totalJournalWriteFailures:l.totalJournalWriteFailures,journalDegraded:l.journalDegraded}},u=(l,p,m,f)=>{let y=new Set(l.map(_=>_.turnId));for(let _ of[...i])y.has(_)||i.delete(_);for(let _ of[...s])y.has(_)||s.delete(_);for(let _ of l){let w=Math.max(0,f-_.sinceMs),S=Math.max(_.sinceMs,_.lastActivityAtMs??_.sinceMs),v=Math.max(0,f-S),b=[...new Set(m.filter(P=>P.turnId===_.turnId).map(P=>P.kind))].sort();if(b.length===0)s.delete(_.turnId);else{v>=r&&!s.has(_.turnId)&&(s.add(_.turnId),e.log("pipeline.turn_waiting_on_user",{thread_key:e.threadKey,turn_id:_.turnId,source_seq:_.sourceSeq??null,buffered:_.buffered,turn_age_ms:w,quiet_ms:v,last_activity_kind:_.lastActivityKind??null,last_activity_age_ms:_.lastActivityAtMs===void 0?null:Math.max(0,f-_.lastActivityAtMs),threshold_ms:r,wait_kinds:b,open_item_count:_.openItems.length,open_item_kinds:[...new Set(_.openItems.map(P=>P.kind))].sort()}));continue}let k=_.openItems.length>0?r*Gse:r;if(v<k||i.has(_.turnId))continue;let R=Xse(_.openItems);i.add(_.turnId),e.log("pipeline.turn_stalled",{level:"warn",thread_key:e.threadKey,turn_id:_.turnId,source_seq:_.sourceSeq??null,buffered:_.buffered,turn_age_ms:w,quiet_ms:v,last_activity_kind:_.lastActivityKind??null,last_activity_age_ms:_.lastActivityAtMs===void 0?null:Math.max(0,f-_.lastActivityAtMs),threshold_ms:r,effective_threshold_ms:k,open_item_count:_.openItems.length,open_item_kinds:[...new Set(_.openItems.map(P=>P.kind))].sort(),open_item_oldest_age_ms:R===void 0?null:Math.max(0,f-R),outbox_depth:p.depth,oldest_entry_age_ms:p.oldestEntryAgeMs??null,paused:p.paused})}},c=t>0?setInterval(d,t):void 0;return c?.unref?.(),{sample:d,stop:()=>{a=!0,c!==void 0&&clearInterval(c)}}}function Qse(e){return[...e.activeTurns.map(n=>({turnId:n.turnId,sourceSeq:n.sourceSeq,sinceMs:n.startedAtMs,buffered:!1,lastActivityAtMs:n.lastActivityAtMs,lastActivityKind:n.lastActivityKind,openItems:n.openItems??[]})),...e.bufferedTurns.map(n=>({turnId:n.turnId,sourceSeq:void 0,sinceMs:n.firstBufferedAtMs,buffered:!0,lastActivityAtMs:n.lastActivityAtMs,lastActivityKind:n.lastActivityKind,openItems:n.openItems??[]}))]}function Xse(e){let n;for(let t of e)(n===void 0||t.startedAtMs<n)&&(n=t.startedAtMs);return n}function Yse(e,n,t){return e.depth>0||e.paused||n.queueDepth>0||n.activeTurns.length>0||n.bufferedTurns.length>0||e.totalEnqueued!==t.totalEnqueued||e.totalAcked!==t.totalAcked||e.totalRetried!==t.totalRetried||e.totalDroppedBestEffort!==t.totalDroppedBestEffort||e.totalPermanentFailures!==t.totalPermanentFailures||e.totalExpiredOnRecovery!==t.totalExpiredOnRecovery||e.totalJournalWriteFailures!==t.totalJournalWriteFailures||e.journalDegraded!==t.journalDegraded}function eae(e){let n;for(let t of e)(n===void 0||t.startedAtMs<n.startedAtMs)&&(n=t);return n}var Wse,Hse,Gse,Zse,lL=F(()=>{"use strict";Wse=3e4,Hse=10*6e4,Gse=2,Zse={totalEnqueued:0,totalAcked:0,totalRetried:0,totalDroppedBestEffort:0,totalPermanentFailures:0,totalExpiredOnRecovery:0,totalJournalWriteFailures:0,journalDegraded:!1}});import{createHash as pL}from"node:crypto";function Ka(e=""){return e===""?{parts:[],cached:"",joinedCount:0}:{parts:[e],cached:e,joinedCount:1}}function fL(e,n){return n!==""&&e.parts.push(n),e}function aS(e){if(e.joinedCount===e.parts.length)return e.cached;let n=e.cached;for(let t=e.joinedCount;t<e.parts.length;t+=1)n+=e.parts[t];return e.cached=n,e.joinedCount=e.parts.length,n}function Fg(e){return h(e.itemId)??h(e.item_id)??h(A(e.item)?.id)}function mL(e,n){let t=Fg(n);switch(e){case"item/agentMessage/delta":{let r=b$(n);return r===void 0?void 0:{streamKind:"assistant",itemId:t,text:r.delta}}case"item/reasoning/textDelta":{let r=S$(n);return r===void 0?void 0:{streamKind:"reasoning",itemId:t,text:r.delta}}case"item/commandExecution/outputDelta":case"command/exec/outputDelta":{let r=C$(n);return r===void 0?void 0:{streamKind:"commandOutput",itemId:t,processId:r.processId,command:r.command,stream:r.stream,text:r.delta}}case"item/fileChange/outputDelta":{let r=P$(n);return r===void 0?void 0:{streamKind:"fileChange",itemId:t,patchText:r.patchText}}case"item/commandExecution/terminalInteraction":{let r=R$(n);return r===void 0?void 0:{streamKind:"terminalInput",itemId:t,processId:r.processId,inputText:r.inputText}}case"item/started":{let r=Hv(n);return r===void 0?void 0:{streamKind:"webSearch",itemId:t,queries:r.queries}}default:return}}function hL(e){switch(e){case"assistant":return{streamKind:"assistant",text:Ka()};case"reasoning":return{streamKind:"reasoning",text:Ka()};case"commandOutput":return{streamKind:"commandOutput",command:"",processId:void 0,chunks:[]};case"fileChange":return{streamKind:"fileChange",patchText:Ka(),status:"started"};case"terminalInput":return{streamKind:"terminalInput",processId:void 0,inputText:""};case"webSearch":return{streamKind:"webSearch",queries:[]};case"agentStatus":return{streamKind:"agentStatus",title:"Agent status",severity:"info"};case"agentTaskUpdate":return{streamKind:"agentTaskUpdate",title:"Agent task",state:"unknown"}}}function gL(e,n){if(e.streamKind!==n.streamKind)return e;switch(n.streamKind){case"assistant":case"reasoning":return e.streamKind===n.streamKind&&fL(e.text,n.text),e;case"commandOutput":return e.streamKind==="commandOutput"?{streamKind:"commandOutput",command:n.command!==void 0&&n.command.trim()!==""?n.command:e.command,processId:n.processId??e.processId,chunks:[...e.chunks,{stream:n.stream,text:n.text}]}:e;case"fileChange":return e.streamKind==="fileChange"&&fL(e.patchText,n.patchText),e;case"terminalInput":return e.streamKind==="terminalInput"?{streamKind:"terminalInput",processId:n.processId??e.processId,inputText:n.inputText}:e;case"webSearch":return e.streamKind==="webSearch"?{streamKind:"webSearch",queries:nae(e.queries,n.queries)}:e}}function nae(e,n){return n.reduce((t,r)=>t.includes(r)?t:[...t,r],[...e])}function tae(e){return e.map(n=>n.text).join("")}function yL(e){let n=Hv(e);if(n!==void 0)return{streamKind:"webSearch",itemId:Fg(e),content:{streamKind:"webSearch",queries:n.queries}};let t=A(e.item)??e,r=Eg(e);if(r!==void 0)return{streamKind:"fileChange",itemId:h(t.call_id)??h(t.id),content:{streamKind:"fileChange",patchText:Ka(r.patchText),status:"completed"}};let o=xL(t);if(o===void 0)return;let i=Nu(t,0)[0];if(i===void 0)return;let s=h(t.id);switch(o){case"assistant":return{streamKind:o,itemId:s,content:{streamKind:"assistant",text:Ka(h(i.structured.content)??i.body)}};case"reasoning":return{streamKind:o,itemId:s,content:{streamKind:"reasoning",text:Ka(h(i.structured.content)??i.body)}};case"commandOutput":return{streamKind:o,itemId:s,content:{streamKind:"commandOutput",command:h(i.structured.command)??"",processId:h(i.structured.process_id),chunks:[{stream:"",text:typeof i.structured.output=="string"?i.structured.output:""}]}};case"terminalInput":return{streamKind:o,itemId:s,content:{streamKind:"terminalInput",processId:h(i.structured.process_id),inputText:h(i.structured.input_text)??i.body}};case"fileChange":return{streamKind:o,itemId:s,content:{streamKind:"fileChange",patchText:Ka(h(i.structured.patch_text)??i.body),status:"completed"}};case"webSearch":return;case"agentStatus":return{streamKind:o,itemId:s,content:{streamKind:"agentStatus",title:h(i.structured.title)??i.body,body:h(i.structured.body),severity:Vv(i.structured.severity),provider:h(i.structured.agent_provider),occurredAtMs:X(i.structured.occurred_at_ms),rawProviderMetadata:A(i.structured.raw_provider_metadata)}};case"agentTaskUpdate":return{streamKind:o,itemId:s,content:{streamKind:"agentTaskUpdate",title:h(i.structured.title)??i.body,body:h(i.structured.body),state:Wv(i.structured.state),progressLabel:h(i.structured.progress_label),provider:h(i.structured.agent_provider),occurredAtMs:X(i.structured.occurred_at_ms),rawProviderMetadata:A(i.structured.raw_provider_metadata)}}}}function Vu(e,n,t){switch(n.streamKind){case"assistant":{let r=aS(n.text);return{body:r,structured:v$(e,r,t)}}case"reasoning":{let r=aS(n.text);return{body:r,structured:k$(e,r,t)}}case"commandOutput":{let r=n.chunks[n.chunks.length-1],o=Rg(e,{command:n.command,output:tae(n.chunks),processId:n.processId,stream:r?.stream??""},t);return{body:rae(o),structured:o}}case"fileChange":{let r=aS(n.patchText);return{body:r,structured:I$(e,r,t,t==="completed"?"completed":n.status)}}case"terminalInput":return{body:n.inputText,structured:{kind:"codex_terminal_input",item_id:e,transcript_unit_id:`codex_terminal_input:${e}`,stream_state:t,process_id:n.processId??"",input_text:n.inputText}};case"webSearch":return{body:Gv(n.queries),structured:E$(e,n.queries,t)};case"agentStatus":{let r=Bv(e,{...n,body:zu(n.body)},t);return{body:Sp(n.title,zu(n.body)),structured:r}}case"agentTaskUpdate":{let r=zu(n.body),o=Jv(e,{...n,body:r},t);return{body:Sp(n.title,r??n.progressLabel),structured:o}}}}function rae(e){let n=h(e.command)??"",t=typeof e.output=="string"?e.output:"";return[`$ ${n}`,t].filter(r=>r.trim()!=="").join(`
557
+ `}function qse(e){try{let n=JSON.parse(e);return Q(n)?n:void 0}catch{return}}function tS(e){return typeof e=="string"?e:void 0}function iL(e,n){return typeof e=="object"&&e!==null&&e.code===n}function rS(e){return e instanceof Error?e.message:String(e)}var $se,Lse,oS=F(()=>{"use strict";Mn();Kn();$se=256,Lse=3});function uL(e){let{builders:n,log:t,onPermanentFailure:r}=e,o=e.threadKey,i=e.now??(()=>Date.now()),s=e.retryDelaysMs??[...iS],a=[],d=0,u=new Map,c=new Map,l=[],p=1,m=0,f=0,y=0,_=0,w=0,S=0,v=[],b=0,k=!1,R=!0,P=!1,L,D,j=Math.max(1,Math.floor(e.maxInFlightPushes??1)),q=0,E=[],B=Promise.resolve(),z=()=>a[d],W=()=>a.length-d,Z=()=>({totalEnqueued:m,totalAcked:f,totalDroppedBestEffort:_,totalPermanentFailures:w,totalExpiredOnRecovery:S,lastEntrySeq:p-1});if(e.persistDir!==void 0){let V=Ku(e.persistDir,o),ce=Lg(V,t),$e=e.journalRecoveryMaxAgeMs??zse,_n=i(),mn=[];for(let Be of ce.pendingEntries){if(_n-Be.enqueuedAtMs>$e){mn.push(Be);continue}let Xe={entry:Be,state:"queued"};a.push(Xe),Be.coalesceKey!==void 0&&u.set(jg(Be.kind,Be.coalesceKey),Xe)}if(c=ce.kv,m=ce.counters.totalEnqueued,f=ce.counters.totalAcked,_=ce.counters.totalDroppedBestEffort,w=ce.counters.totalPermanentFailures,S=ce.counters.totalExpiredOnRecovery+mn.length,p=ce.counters.lastEntrySeq+1,D=oL({path:V,log:t,compactionThreshold:e.journalCompactionThreshold,snapshot:()=>({pendingEntries:a.slice(d).map(Be=>Be.entry),kv:c,counters:Z()})}),mn.length>0){for(let Xe of mn)D.appendExpired(Xe.entrySeq);let Be=mn.map(Xe=>Math.max(0,_n-Xe.enqueuedAtMs));t("outbox_recovery_expired",{level:"warn",threadKey:o,expiredEntries:mn.length,survivingEntries:W(),maxAgeMs:$e,oldestAgeMs:Math.max(...Be),newestAgeMs:Math.min(...Be),kinds:[...new Set(mn.map(Xe=>Xe.kind))]})}W()>0&&t("outbox_recovered",{threadKey:o,pendingEntries:W(),nextEntrySeq:p})}let fe={remember:(V,ce)=>{c.set(V,ce),D?.appendKv(V,ce)},recall:V=>c.get(V)},Ee=()=>{d+=1,d>=64&&d*2>=a.length&&(a=a.slice(d),d=0)},_e=()=>{let V=z();for(let ce=l.length-1;ce>=0;ce-=1){let $e=l[ce];$e!==void 0&&(V===void 0||V.entry.entrySeq>$e.upToSeq)&&(l.splice(ce,1),$e.timer!==void 0&&clearTimeout($e.timer),$e.resolve())}},be=V=>{if(V.entry.coalesceKey===void 0)return;let ce=jg(V.entry.kind,V.entry.coalesceKey);u.get(ce)===V&&u.delete(ce)},Re=(V,ce)=>{let $e=V.entry;switch(ce.kind){case"ack":{let _n=n[$e.kind];try{_n?.onReply?.($e.data,ce.reply,fe)}catch(mn){t("outbox_on_reply_failed",{threadKey:o,entrySeq:$e.entrySeq,kind:$e.kind,error:Rp(mn)})}D?.appendAck($e.entrySeq);break}case"skip":{t("outbox_entry_skipped",{threadKey:o,entrySeq:$e.entrySeq,kind:$e.kind,reason:ce.reason}),D?.appendSkip($e.entrySeq,ce.reason);break}case"fail":{if($e.resolution==="must_ack"){D?.appendFail($e.entrySeq);try{r($e,ce.failure)}catch(_n){t("outbox_permanent_failure_callback_failed",{threadKey:o,entrySeq:$e.entrySeq,error:Rp(_n)})}}else D?.appendDrop($e.entrySeq);break}}be(V),Ee(),_e()},Ae=()=>{for(;;){let V=z();if(V===void 0||V.outcome===void 0)return;Re(V,V.outcome)}},I=(V,ce)=>{let $e=V.entry;ce.kind==="fail"&&($e.resolution==="must_ack"?(w+=1,t("outbox_permanent_failure",{threadKey:o,entrySeq:$e.entrySeq,kind:$e.kind,attempts:$e.attempts,error:ce.failure.message})):(_+=1,t("outbox_dropped_best_effort",{threadKey:o,entrySeq:$e.entrySeq,kind:$e.kind,attempts:$e.attempts,error:ce.failure.message}))),V.outcome=ce,V.state="queued"},$=V=>{v.length<sL?v.push(V):v[b]=V,b=(b+1)%sL},K=V=>{V.retryTimer!==void 0&&(clearTimeout(V.retryTimer),V.retryTimer=void 0)},re=()=>{if(q>0)return;let V=E;E=[];for(let ce of V)ce()},pe=()=>{let V=z();return V!==void 0&&V.outcome===void 0&&V.state==="queued"&&V.retryTimer!==void 0},Y=(V,ce)=>{K(V),V.retryTimer=setTimeout(()=>{V.retryTimer=void 0,!(P||k||V.outcome!==void 0)&&ae()},ce),V.retryTimer?.unref?.()},ie=async V=>{let ce=V.entry,$e=B,_n=()=>{};B=new Promise(Xe=>{_n=Xe});let mn=!1,Be=()=>{mn||(mn=!0,_n())};V.state="pushing",q+=1;try{if(await $e,P||k||V.outcome!==void 0){V.state="queued",Be();return}let Xe=n[ce.kind];if(Xe===void 0){Be(),I(V,{kind:"fail",failure:new Error(`no outbox builder registered for kind ${ce.kind}`)});return}let Mt;try{Mt=Xe.build(ce.data,fe)}catch($r){Be(),I(V,{kind:"fail",failure:dL($r)});return}if("skip"in Mt){Be(),I(V,{kind:"skip",reason:Mt.reason});return}ce.attempts+=1,await Fe(V,Mt,Be)}finally{q-=1}},Fe=async(V,ce,$e)=>{let _n=V.entry,mn=i();try{let Be=await e.push(ce.event,ce.payload,ce.timeoutMs,$e);$e(),$(Math.max(0,i()-mn)),f+=1,I(V,{kind:"ack",reply:Be})}catch(Be){$e(),V.state="queued";let Xe=dL(Be);if(e.isRetryBudgetExempt?.(Xe)===!0)_n.attempts-=1,y+=1,t("outbox_push_connection_wait",{threadKey:o,entrySeq:_n.entrySeq,kind:_n.kind,error:Xe.message}),!P&&!k&&Y(V,Bse);else{let Mt=s[_n.attempts-1];Mt===void 0?I(V,{kind:"fail",failure:Xe}):(y+=1,t("outbox_push_retry",{threadKey:o,entrySeq:_n.entrySeq,kind:_n.kind,attempt:_n.attempts,delayMs:Mt,error:Xe.message}),!P&&!k&&Y(V,Mt))}}},ae=()=>{if(Ae(),P||k){re();return}if(pe()){re();return}for(let V=d;V<a.length&&q<j;V+=1){let ce=a[V];ce===void 0||ce.outcome!==void 0||ce.state==="pushing"||ce.retryTimer!==void 0||ie(ce).then(()=>ae(),$e=>{t("outbox_drain_loop_error",{threadKey:o,error:Rp($e)}),ae()})}re()},Ce=()=>{k||P||z()!==void 0&&Promise.resolve().then(()=>{!P&&!k&&ae()})},Yn=V=>{let ce=p-1,$e=z();return $e===void 0||$e.entry.entrySeq>ce?Promise.resolve():new Promise((_n,mn)=>{let Be={upToSeq:ce,resolve:_n,reject:mn,timer:void 0};V!==void 0&&(Be.timer=setTimeout(()=>{let Xe=l.indexOf(Be);Xe!==-1&&l.splice(Xe,1),mn(new Error(`outbox flush for ${o} timed out after ${V}ms with ${W()} entries pending`))},V)),l.push(Be)})},Jn=async V=>{R=!1;try{await Yn(V)}catch(ce){t("outbox_close_flush_timeout",{threadKey:o,depth:W(),error:Rp(ce)})}P=!0;for(let ce=d;ce<a.length;ce+=1)K(a[ce]);q>0&&await Promise.race([new Promise(ce=>{E.push(ce)}),Vse(Use)]);for(let ce of l.splice(0))ce.timer!==void 0&&clearTimeout(ce.timer),ce.reject(new Error(`outbox for ${o} closed`));await D?.close()},Dt={enqueue:V=>{if(!R)throw new Error(`outbox for ${o} is closed`);if(m+=1,V.coalesceKey!==void 0){let mn=jg(V.kind,V.coalesceKey),Be=u.get(mn);if(Be!==void 0&&Be.state==="queued"&&Be.outcome===void 0)return Be.entry.data=Jse(n[V.kind],Be.entry,V.data,o,t),D?.appendCoalesce(Be.entry.entrySeq,Be.entry.data),Be.entry.entrySeq}let ce=p;p+=1;let $e={entrySeq:ce,kind:V.kind,data:V.data,...V.coalesceKey===void 0?{}:{coalesceKey:V.coalesceKey},resolution:V.resolution,attempts:0,enqueuedAtMs:i()},_n={entry:$e,state:"queued"};return a.push(_n),V.coalesceKey!==void 0&&u.set(jg(V.kind,V.coalesceKey),_n),D?.appendEnqueue($e),Ce(),ce},flush:Yn,pause:()=>{k=!0},resume:()=>{if(k){k=!1;for(let V=d;V<a.length;V+=1){let ce=a[V];ce!==void 0&&(ce.entry.attempts=0,K(ce))}Ce()}},metrics:()=>{let V=z(),ce=D?.status();return{depth:W(),oldestEntryAgeMs:V===void 0?void 0:Math.max(0,i()-V.entry.enqueuedAtMs),totalEnqueued:m,totalAcked:f,totalRetried:y,totalDroppedBestEffort:_,totalPermanentFailures:w,totalExpiredOnRecovery:S,totalJournalWriteFailures:ce?.totalWriteFailures??0,journalDegraded:ce?.degraded??!1,paused:k,pushLatency:Kse(v)}},close:V=>(L===void 0&&(L=Jn(V??Nse)),L),journalSettled:()=>D===void 0?Promise.resolve():D.settled(),rekeyJournal:V=>{V!==o&&(o=V,e.persistDir!==void 0&&D?.rekey(Ku(e.persistDir,V)))}};return Ce(),Dt}function Jse(e,n,t,r,o){if(e?.coalesce===void 0)return t;try{return e.coalesce(n.data,t)}catch(i){return o("outbox_coalesce_failed",{threadKey:r,entrySeq:n.entrySeq,kind:n.kind,error:Rp(i)}),t}}function jg(e,n){return`${e}\0${n}`}function Kse(e){if(e.length===0)return;let n=[...e].sort((t,r)=>t-r);return{p50Ms:aL(n,.5),p95Ms:aL(n,.95),maxMs:n[n.length-1]??0,ackedInWindow:n.length}}function aL(e,n){let t=Math.max(1,Math.ceil(n*e.length));return e[t-1]??0}function Vse(e){return new Promise(n=>{setTimeout(n,e)})}function dL(e){return e instanceof Error?e:new Error(String(e))}function Rp(e){return e instanceof Error?e.message:String(e)}var iS,zse,Nse,Use,Bse,sL,sS=F(()=>{"use strict";oS();iS=[500,1e3,2500,5e3,1e4,3e4],zse=1440*60*1e3,Nse=3e4,Use=1e3,Bse=1e3,sL=256});function cL(e){let n=e.now??(()=>Date.now()),t=e.intervalMs??Wse,r=e.turnStalledThresholdMs??Hse,o=Zse,i=new Set,s=new Set,a=!1,d=()=>{if(a)return;let l,p,m;try{l=e.outboxMetrics(),p=e.loopMetrics(),m=e.turnWaitStates?.()??[]}catch(_){e.log("pipeline.stats_sample_failed",{thread_key:e.threadKey,message:_ instanceof Error?_.message:String(_)});return}let f=n();if(u(Qse(p),l,m,f),!Yse(l,p,o))return;let y=eae(p.activeTurns);e.log("pipeline.stats",{thread_key:e.threadKey,outbox_depth:l.depth,oldest_entry_age_ms:l.oldestEntryAgeMs??null,total_enqueued:l.totalEnqueued,total_acked:l.totalAcked,total_retried:l.totalRetried,total_dropped_best_effort:l.totalDroppedBestEffort,total_permanent_failures:l.totalPermanentFailures,total_expired_on_recovery:l.totalExpiredOnRecovery,total_journal_write_failures:l.totalJournalWriteFailures,journal_degraded:l.journalDegraded,push_latency_p50_ms:l.pushLatency?.p50Ms??null,push_latency_p95_ms:l.pushLatency?.p95Ms??null,push_latency_max_ms:l.pushLatency?.maxMs??null,push_latency_window_acked:l.pushLatency?.ackedInWindow??0,paused:l.paused,loop_queue_depth:p.queueDepth,loop_phase:p.phase,active_turn_count:p.activeTurns.length,buffered_turn_count:p.bufferedTurns.length,active_turn_id:y?.turnId??null,active_turn_source_seq:y?.sourceSeq??null,active_turn_age_ms:y===void 0?null:Math.max(0,f-y.startedAtMs)}),o={totalEnqueued:l.totalEnqueued,totalAcked:l.totalAcked,totalRetried:l.totalRetried,totalDroppedBestEffort:l.totalDroppedBestEffort,totalPermanentFailures:l.totalPermanentFailures,totalExpiredOnRecovery:l.totalExpiredOnRecovery,totalJournalWriteFailures:l.totalJournalWriteFailures,journalDegraded:l.journalDegraded}},u=(l,p,m,f)=>{let y=new Set(l.map(_=>_.turnId));for(let _ of[...i])y.has(_)||i.delete(_);for(let _ of[...s])y.has(_)||s.delete(_);for(let _ of l){let w=Math.max(0,f-_.sinceMs),S=Math.max(_.sinceMs,_.lastActivityAtMs??_.sinceMs),v=Math.max(0,f-S),b=[...new Set(m.filter(P=>P.turnId===_.turnId).map(P=>P.kind))].sort();if(b.length===0)s.delete(_.turnId);else{v>=r&&!s.has(_.turnId)&&(s.add(_.turnId),e.log("pipeline.turn_waiting_on_user",{thread_key:e.threadKey,turn_id:_.turnId,source_seq:_.sourceSeq??null,buffered:_.buffered,turn_age_ms:w,quiet_ms:v,last_activity_kind:_.lastActivityKind??null,last_activity_age_ms:_.lastActivityAtMs===void 0?null:Math.max(0,f-_.lastActivityAtMs),threshold_ms:r,wait_kinds:b,open_item_count:_.openItems.length,open_item_kinds:[...new Set(_.openItems.map(P=>P.kind))].sort()}));continue}let k=_.openItems.length>0?r*Gse:r;if(v<k||i.has(_.turnId))continue;let R=Xse(_.openItems);i.add(_.turnId),e.log("pipeline.turn_stalled",{level:"warn",thread_key:e.threadKey,turn_id:_.turnId,source_seq:_.sourceSeq??null,buffered:_.buffered,turn_age_ms:w,quiet_ms:v,last_activity_kind:_.lastActivityKind??null,last_activity_age_ms:_.lastActivityAtMs===void 0?null:Math.max(0,f-_.lastActivityAtMs),threshold_ms:r,effective_threshold_ms:k,open_item_count:_.openItems.length,open_item_kinds:[...new Set(_.openItems.map(P=>P.kind))].sort(),open_item_oldest_age_ms:R===void 0?null:Math.max(0,f-R),outbox_depth:p.depth,oldest_entry_age_ms:p.oldestEntryAgeMs??null,paused:p.paused})}},c=t>0?setInterval(d,t):void 0;return c?.unref?.(),{sample:d,stop:()=>{a=!0,c!==void 0&&clearInterval(c)}}}function Qse(e){return[...e.activeTurns.map(n=>({turnId:n.turnId,sourceSeq:n.sourceSeq,sinceMs:n.startedAtMs,buffered:!1,lastActivityAtMs:n.lastActivityAtMs,lastActivityKind:n.lastActivityKind,openItems:n.openItems??[]})),...e.bufferedTurns.map(n=>({turnId:n.turnId,sourceSeq:void 0,sinceMs:n.firstBufferedAtMs,buffered:!0,lastActivityAtMs:n.lastActivityAtMs,lastActivityKind:n.lastActivityKind,openItems:n.openItems??[]}))]}function Xse(e){let n;for(let t of e)(n===void 0||t.startedAtMs<n)&&(n=t.startedAtMs);return n}function Yse(e,n,t){return e.depth>0||e.paused||n.queueDepth>0||n.activeTurns.length>0||n.bufferedTurns.length>0||e.totalEnqueued!==t.totalEnqueued||e.totalAcked!==t.totalAcked||e.totalRetried!==t.totalRetried||e.totalDroppedBestEffort!==t.totalDroppedBestEffort||e.totalPermanentFailures!==t.totalPermanentFailures||e.totalExpiredOnRecovery!==t.totalExpiredOnRecovery||e.totalJournalWriteFailures!==t.totalJournalWriteFailures||e.journalDegraded!==t.journalDegraded}function eae(e){let n;for(let t of e)(n===void 0||t.startedAtMs<n.startedAtMs)&&(n=t);return n}var Wse,Hse,Gse,Zse,lL=F(()=>{"use strict";Wse=3e4,Hse=10*6e4,Gse=2,Zse={totalEnqueued:0,totalAcked:0,totalRetried:0,totalDroppedBestEffort:0,totalPermanentFailures:0,totalExpiredOnRecovery:0,totalJournalWriteFailures:0,journalDegraded:!1}});import{createHash as pL}from"node:crypto";function Ka(e=""){return e===""?{parts:[],cached:"",joinedCount:0}:{parts:[e],cached:e,joinedCount:1}}function fL(e,n){return n!==""&&e.parts.push(n),e}function aS(e){if(e.joinedCount===e.parts.length)return e.cached;let n=e.cached;for(let t=e.joinedCount;t<e.parts.length;t+=1)n+=e.parts[t];return e.cached=n,e.joinedCount=e.parts.length,n}function Fg(e){return h(e.itemId)??h(e.item_id)??h(A(e.item)?.id)}function mL(e,n){let t=Fg(n);switch(e){case"item/agentMessage/delta":{let r=b$(n);return r===void 0?void 0:{streamKind:"assistant",itemId:t,text:r.delta}}case"item/reasoning/textDelta":{let r=S$(n);return r===void 0?void 0:{streamKind:"reasoning",itemId:t,text:r.delta}}case"item/commandExecution/outputDelta":case"command/exec/outputDelta":{let r=C$(n);return r===void 0?void 0:{streamKind:"commandOutput",itemId:t,processId:r.processId,command:r.command,stream:r.stream,text:r.delta}}case"item/fileChange/outputDelta":{let r=P$(n);return r===void 0?void 0:{streamKind:"fileChange",itemId:t,patchText:r.patchText}}case"item/commandExecution/terminalInteraction":{let r=R$(n);return r===void 0?void 0:{streamKind:"terminalInput",itemId:t,processId:r.processId,inputText:r.inputText}}case"item/started":{let r=Hv(n);return r===void 0?void 0:{streamKind:"webSearch",itemId:t,queries:r.queries}}default:return}}function hL(e){switch(e){case"assistant":return{streamKind:"assistant",text:Ka()};case"reasoning":return{streamKind:"reasoning",text:Ka()};case"commandOutput":return{streamKind:"commandOutput",command:"",processId:void 0,chunks:[]};case"fileChange":return{streamKind:"fileChange",patchText:Ka(),status:"started"};case"terminalInput":return{streamKind:"terminalInput",processId:void 0,inputText:""};case"webSearch":return{streamKind:"webSearch",queries:[]};case"agentStatus":return{streamKind:"agentStatus",title:"Agent status",severity:"info"};case"agentTaskUpdate":return{streamKind:"agentTaskUpdate",title:"Agent task",state:"unknown"}}}function gL(e,n){if(e.streamKind!==n.streamKind)return e;switch(n.streamKind){case"assistant":case"reasoning":return e.streamKind===n.streamKind&&fL(e.text,n.text),e;case"commandOutput":return e.streamKind==="commandOutput"?{streamKind:"commandOutput",command:n.command!==void 0&&n.command.trim()!==""?n.command:e.command,processId:n.processId??e.processId,chunks:[...e.chunks,{stream:n.stream,text:n.text}]}:e;case"fileChange":return e.streamKind==="fileChange"&&fL(e.patchText,n.patchText),e;case"terminalInput":return e.streamKind==="terminalInput"?{streamKind:"terminalInput",processId:n.processId??e.processId,inputText:n.inputText}:e;case"webSearch":return e.streamKind==="webSearch"?{streamKind:"webSearch",queries:nae(e.queries,n.queries)}:e}}function nae(e,n){return n.reduce((t,r)=>t.includes(r)?t:[...t,r],[...e])}function tae(e){return e.map(n=>n.text).join("")}function yL(e){let n=Hv(e);if(n!==void 0)return{streamKind:"webSearch",itemId:Fg(e),content:{streamKind:"webSearch",queries:n.queries}};let t=A(e.item)??e,r=Eg(e);if(r!==void 0)return{streamKind:"fileChange",itemId:h(t.call_id)??h(t.id),content:{streamKind:"fileChange",patchText:Ka(r.patchText),status:"completed"}};let o=xL(t);if(o===void 0)return;let i=Nu(t,0)[0];if(i===void 0)return;let s=h(t.id);switch(o){case"assistant":return{streamKind:o,itemId:s,content:{streamKind:"assistant",text:Ka(h(i.structured.content)??i.body)}};case"reasoning":return{streamKind:o,itemId:s,content:{streamKind:"reasoning",text:Ka(h(i.structured.content)??i.body)}};case"commandOutput":return{streamKind:o,itemId:s,content:{streamKind:"commandOutput",command:h(i.structured.command)??"",processId:h(i.structured.process_id),chunks:[{stream:"",text:typeof i.structured.output=="string"?i.structured.output:""}]}};case"terminalInput":return{streamKind:o,itemId:s,content:{streamKind:"terminalInput",processId:h(i.structured.process_id),inputText:h(i.structured.input_text)??i.body}};case"fileChange":return{streamKind:o,itemId:s,content:{streamKind:"fileChange",patchText:Ka(h(i.structured.patch_text)??i.body),status:"completed"}};case"webSearch":return;case"agentStatus":return{streamKind:o,itemId:s,content:{streamKind:"agentStatus",title:h(i.structured.title)??i.body,body:h(i.structured.body),severity:Vv(i.structured.severity),provider:h(i.structured.agent_provider),occurredAtMs:X(i.structured.occurred_at_ms),rawProviderMetadata:A(i.structured.raw_provider_metadata)}};case"agentTaskUpdate":return{streamKind:o,itemId:s,content:{streamKind:"agentTaskUpdate",title:h(i.structured.title)??i.body,body:h(i.structured.body),state:Wv(i.structured.state),progressLabel:h(i.structured.progress_label),provider:h(i.structured.agent_provider),occurredAtMs:X(i.structured.occurred_at_ms),rawProviderMetadata:A(i.structured.raw_provider_metadata)}}}}function Vu(e,n,t){switch(n.streamKind){case"assistant":{let r=aS(n.text);return{body:r,structured:v$(e,r,t)}}case"reasoning":{let r=aS(n.text);return{body:r,structured:k$(e,r,t)}}case"commandOutput":{let r=n.chunks[n.chunks.length-1],o=Rg(e,{command:n.command,output:tae(n.chunks),processId:n.processId,stream:r?.stream??""},t);return{body:rae(o),structured:o}}case"fileChange":{let r=aS(n.patchText);return{body:r,structured:I$(e,r,t,t==="completed"?"completed":n.status)}}case"terminalInput":return{body:n.inputText,structured:{kind:"codex_terminal_input",item_id:e,transcript_unit_id:`codex_terminal_input:${e}`,stream_state:t,process_id:n.processId??"",input_text:n.inputText}};case"webSearch":return{body:Gv(n.queries),structured:E$(e,n.queries,t)};case"agentStatus":{let r=Bv(e,{...n,body:zu(n.body)},t);return{body:Sp(n.title,zu(n.body)),structured:r}}case"agentTaskUpdate":{let r=zu(n.body),o=Jv(e,{...n,body:r},t);return{body:Sp(n.title,r??n.progressLabel),structured:o}}}}function rae(e){let n=h(e.command)??"",t=typeof e.output=="string"?e.output:"";return[`$ ${n}`,t].filter(r=>r.trim()!=="").join(`
558
558
 
559
- `)}function xL(e){switch(h(e.type)){case"reasoning":return"reasoning";case"agentMessage":return"assistant";case"message":return h(e.role)==="assistant"?"assistant":void 0;case"commandExecution":return"commandOutput";case"terminalInput":return"terminalInput";case"fileChange":case"file_change":return"fileChange";case"web_search_call":case"webSearchCall":case"webSearch":return"webSearch";case"agentStatus":return"agentStatus";case"agentTaskUpdate":return"agentTaskUpdate";default:return}}function _L(e){return e.flatMap((n,t)=>{if(!Q(n))return[];let r=xL(n);return r===void 0||r==="webSearch"?[]:Nu(n,t).filter(o=>o.body.trim()!=="").map(o=>({snapshotIndex:t,itemId:h(n.id),streamKind:r,body:o.body,structured:o.structured}))})}function dS(e,n){let t=h(e.kind)??"codex_output";return{...e,item_id:n,transcript_unit_id:`${t}:${n}`}}function uS(e,n,t,r){if(t==="webSearch")return`local-codex-search-${pL("sha256").update(`${e}:${n}:web-search`).digest("hex").slice(0,32)}`;let o={assistant:"",reasoning:"reasoning:",commandOutput:"command:",fileChange:"file-change:",terminalInput:"terminal:",agentStatus:"agent-status:",agentTaskUpdate:"agent-task:"};return`local-codex-stream-${pL("sha256").update(`${e}:${n}:${o[t]}${r}`).digest("hex").slice(0,32)}`}function Ep(e){let n=A(e.turn),t=A(e.item),r=A(t?.turn);return h(n?.id)??h(e.turnId)??h(e.turn_id)??h(t?.turnId)??h(t?.turn_id)??h(r?.id)}var cS=F(()=>{"use strict";Cp();Kn();Mn()});function PL(e){return e!==void 0&&oae.has(e)}function uae(e){if(e===void 0)return;let n=h(e.type);if(n!=="mcpToolCall"&&n!=="dynamicToolCall"&&n!=="collabAgentToolCall"||h(e.status)!=="completed"||e.error!==void 0&&e.error!==null||e.success===!1)return;let t=h(e.tool)??"";return(t.split("__").pop()??t)===sae?"reply":"action"}function IL(e,n){let t=uae(n);t==="reply"?e.agentReplyToolCallSeen=!0:t==="action"&&(e.agentActionToolCallSeen=!0)}function lae(e){return`The model appears stuck in a loop - stopped after ${e} reasoning steps with no output or tool call (retry to try again).`}function pae(e){return e!=="reasoning"}function fae(e){return e!==void 0&&e.startsWith(RL)}function mae(e){for(let n of e){let t=EL(A(n));if(t!==void 0)return t}}function EL(e){if(e===void 0)return;let n=h(e.codex_protocol_failure_reason)??h(e.protocolFailureReason);if(n!==void 0)return n;let t=h(e.type);if(t!=="function_call_output"&&t!=="custom_tool_call_output")return;let r=h(e.output)??h(e.result)??h(e.text)??h(e.content),o=hae(r);return o===void 0?void 0:`${RL}: ${o}`}function hae(e){let n="unsupported call:";if(e===void 0)return;let t=e.trim();if(!t.toLowerCase().startsWith(n))return;let r=t.slice(n.length).trim();return r===""?"unknown":r}function DL(){return{phase:"running",turns:new Map,terminalTurnIds:new Set,bufferedTurns:new Map,consecutiveEmptyTurns:0,lastEmptyTurnCause:void 0,lastUpstreamErrorSummary:void 0,consecutiveIsolatedRejections:0,costCap402Seen:!1}}function ML(e,n,t){let r=[];return e.phase==="running"&&$ae(e,t,r),AL(e,n,t,r),r}function AL(e,n,t,r){if(n.source==="lifecycle"){wae(e,n.kind,n.reason,t,r);return}if(e.phase==="dead"){r.push(gn("pipeline.loop.event_after_death",{source:n.source}));return}if(e.phase==="closing"){r.push(gn("pipeline.loop.event_after_close",{source:n.source}));return}if(n.source==="snapshot"){let o=e.bufferedTurns.get(n.turnId);if(o!==void 0){o.push(n);return}Aae(e,n.turnId,n.snapshot,t,r);return}bae(e,n,t,r)}function _ae(e){return xae.has(e)}function bae(e,n,t,r){let o=n.notification.method,i=n.notification.params??{};if(o===Mp)return;if(o===Gu){Eae(e,i,t,r);return}if(!yae.has(o))return;let a=Ep(i)??Ug(e);if(a===void 0){r.push(gn("pipeline.loop.notification_without_turn",{method:o}));return}if(e.terminalTurnIds.has(a)){r.push(gn("pipeline.loop.notification_for_terminal_turn",{method:o,turn_id:a}));return}let d=e.turns.get(a);if(d===void 0){let l=t.sourceSeqForTurn(a);if(l===void 0){Oae(e,a,n,r);return}d=vae(e,a,l)}if(d.notificationCount+=1,_ae(o)&&(d.modelInteractionSeen=!0),o==="turn/started")return;if(o==="turn/completed"){Sae(d,r);return}let u=gae.get(o);if(u!==void 0){let l=Rae(o,i,d,{costCap402Seen:e.costCap402Seen,midStreamResumeAttemptAtMs:t.midStreamResumeAttemptAtMsForSeq?.(d.sourceSeq)});l.autoResumeMidStreamStall?r.push(gn("codex.mid_stream_stall_auto_resume_flagged",{thread_key:t.threadKey,turn_id:d.turnId,source_seq:d.sourceSeq,reason:Wu(i)})):l.midStreamResumeRateLimitSuppressed?r.push(gn("codex.mid_stream_stall_resume_suppressed_rate_limit",{thread_key:t.threadKey,turn_id:d.turnId,source_seq:d.sourceSeq,reason:Wu(i)})):l.midStreamResumeAttemptBurnedAtMs!==void 0&&r.push(gn("codex.mid_stream_stall_second_stall_after_resume",{thread_key:t.threadKey,turn_id:d.turnId,source_seq:d.sourceSeq,resume_attempt_at_ms:l.midStreamResumeAttemptBurnedAtMs,reason:Wu(i)})),l.autoRetryPreFirstByteStall?r.push(gn("codex.pre_first_byte_stall_auto_retry_flagged",{thread_key:t.threadKey,turn_id:d.turnId,source_seq:d.sourceSeq,reason:Wu(i),evidence_class:lS(d)})):l.costCapAutoRetrySuppressed&&r.push(gn("codex.pre_first_byte_stall_retry_suppressed_cost_cap",{thread_key:t.threadKey,turn_id:d.turnId,source_seq:d.sourceSeq,reason:Wu(i),flavor:i.midStreamResumableStall===!0?"mid_stream_resume":"pre_first_byte_retry"})),qg(e,d,u,Wu(i),r,t,u,l);return}if(o==="error"){d.errorNotificationCount+=1;let l=sde(i);l!==void 0&&(d.toolFatalSeen=!0,d.toolFatalDetail===void 0&&l!==""&&(d.toolFatalDetail=l),r.push(gn("codex.tool_fatal_captured",{turn_id:d.turnId,detail:l===""?null:l})));let p=Hae(i);p!==void 0&&(d.upstreamRejectedSeen=!0,d.upstreamRejectedDetail===void 0&&p!==""&&(d.upstreamRejectedDetail=p),r.push(gn("codex.upstream_rejection_captured",{turn_id:d.turnId,detail:p===""?null:p})));let m=Yae(i);m!==void 0&&(d.providerOutageFlaggedSeen=!0,d.providerOutageDetail===void 0&&m!==""&&(d.providerOutageDetail=m),r.push(gn("codex.provider_outage_flagged_captured",{turn_id:d.turnId,detail:m===""?null:m})));let f=Bg(i),y=jae(i);y!==void 0&&(d.edgeBlockEvidence=y),f!==void 0&&(d.lastUpstreamErrorHttpStatus===void 0||f>d.lastUpstreamErrorHttpStatus)&&(d.lastUpstreamErrorHttpStatus=f),f===402&&!e.costCap402Seen&&(e.costCap402Seen=!0,r.push(gn("codex.cost_cap_402_seen",{turn_id:d.turnId})));let _=Lae(i),w=!1;if(_!==void 0)d.lastUpstreamErrorReason=_,r.push(gn("codex.upstream_error_captured",{turn_id:d.turnId,reason:_}));else{let v=Ap(i);v!==void 0&&(d.lastErrorDiagnosticText=v,w=!0,r.push(gn("codex.error_without_http_status_captured",{turn_id:d.turnId,diagnostic_text:v})))}l===void 0&&p===void 0&&m===void 0&&f===void 0&&_===void 0&&!w&&(d.unattributedErrorNotificationCount+=1);let S=Vae(i);S!==void 0&&(d.lastUpstreamErrorSummary=S,e.lastUpstreamErrorSummary=S,r.push(gn("codex.upstream_turn_error_captured",{turn_id:d.turnId,upstream_error:S})));return}if(o==="item/completed"||o==="response_item"){Dae(d,i,t,r);return}let c=mL(o,i);if(c!==void 0){if(d.phase==="active"){if(pae(c.streamKind))d.reasoningStepsWithoutProgress=0;else if(d.reasoningStepsWithoutProgress+=1,d.reasoningStepsWithoutProgress>SL){let l=lae(d.reasoningStepsWithoutProgress);r.push(gn("codex.reasoning_loop_breaker_tripped",{thread_key:t.threadKey,turn_id:d.turnId,source_seq:d.sourceSeq,reasoning_steps_without_progress:d.reasoningStepsWithoutProgress,max_reasoning_steps_without_progress:SL})),qg(e,d,"failed",l,r,t,"interrupted");return}}FL(d,c,t,r)}}function wae(e,n,t,r,o){if(n==="codexDied"){if(e.phase==="dead")return;for(let i of[...e.turns.values()])qg(e,i,"failed",t,o,r,"interrupted");for(let[i,s]of e.bufferedTurns)o.push(gn("pipeline.loop.buffered_turn_dropped",{turn_id:i,buffered_event_count:s.length,reason:t})),o.push({type:"turnTerminal",turnId:i,outcome:"failed",reason:t}),Ng(e,i);e.bufferedTurns.clear(),e.phase="dead",o.push(gn("pipeline.loop.codex_died",{reason:t}));return}e.phase==="running"&&(e.phase="closing",o.push(gn("pipeline.loop.closing",{kind:n,reason:t})))}function vae(e,n,t){let r={turnId:n,sourceSeq:t,phase:"active",protocolFailureReason:void 0,lastUpstreamErrorReason:void 0,edgeBlockEvidence:void 0,lastErrorDiagnosticText:void 0,toolFatalSeen:!1,toolFatalDetail:void 0,upstreamRejectedSeen:!1,upstreamRejectedDetail:void 0,providerOutageFlaggedSeen:!1,providerOutageDetail:void 0,lastUpstreamErrorHttpStatus:void 0,lastUpstreamErrorSummary:void 0,errorNotificationCount:0,unattributedErrorNotificationCount:0,notificationCount:0,modelInteractionSeen:!1,reasoningStepsWithoutProgress:0,agentReplyToolCallSeen:!1,agentActionToolCallSeen:!1,items:[]};return e.turns.set(n,r),r}function Sae(e,n){if(e.phase==="completing"){n.push(gn("pipeline.loop.duplicate_turn_completed",{turn_id:e.turnId}));return}e.phase="completing",n.push({type:"requestSnapshot",turnId:e.turnId})}function OL(e){return e===429||e>=500&&e<=599?"transient":"deterministic"}function Cae(e){let n=$L.exec(e);return n!==null?OL(Number(n[1])):kae.test(e)?"transient":"deterministic"}function lS(e){let n=!1,t=e.upstreamRejectedSeen||e.providerOutageFlaggedSeen||e.toolFatalSeen||e.modelInteractionSeen||e.unattributedErrorNotificationCount>0,r=0;e.lastUpstreamErrorHttpStatus!==void 0&&(r+=1,OL(e.lastUpstreamErrorHttpStatus)==="transient"?n=!0:t=!0);for(let o of[e.lastUpstreamErrorReason,e.lastErrorDiagnosticText])o!==void 0&&(r+=1,Cae(o)==="transient"?n=!0:t=!0);return e.errorNotificationCount>r+e.unattributedErrorNotificationCount&&!e.upstreamRejectedSeen&&!e.providerOutageFlaggedSeen&&!e.toolFatalSeen&&(t=!0),t?"deterministic":n?"transient":"none"}function kL(e){if(e.lastUpstreamErrorHttpStatus===429)return!0;for(let n of[e.lastUpstreamErrorReason,e.lastErrorDiagnosticText]){if(n===void 0)continue;let t=$L.exec(n);if(t!==null&&Number(t[1])===429)return!0}return!1}function Pae(e){return` (An automatic resume was attempted at ${new Date(e).toISOString()} and the stream stalled again, so it will not be retried automatically.)`}function Iae(e){return` (An automatic resume was attempted at ${new Date(e).toISOString()} after the stream stalled; it did not complete.)`}function Rae(e,n,t,r={costCap402Seen:!1}){let o=e==="turn/failed"&&h(A(n.error)?.code)==="idle_stream_timeout",i=e==="turn/failed"&&n.retryable===!0,s=e==="turn/failed"&&yo(n.fate)?n.fate:void 0;if(!o)return{autoRetryPreFirstByteStall:!1,messageStateRetryable:i,costCapAutoRetrySuppressed:!1,messageStateFate:s,autoResumeMidStreamStall:!1,midStreamResumeRateLimitSuppressed:!1};let a=r.midStreamResumeAttemptAtMs,d=a!==void 0,u=lS(t)!=="deterministic",c=n.preFirstByteStall===!0&&u,l=n.midStreamResumableStall===!0,p=l&&kL(t),m=lS({...t,modelInteractionSeen:!1})!=="deterministic",f=l&&!d&&!p&&m,y=(c&&!d||f)&&r.costCap402Seen,_=c&&!d&&!y,w=f&&!y,S=l&&!d&&p;return{autoRetryPreFirstByteStall:_,messageStateRetryable:c||i,costCapAutoRetrySuppressed:y,messageStateFate:s??(kL(t)?"rate_limited":"transient_upstream"),autoResumeMidStreamStall:w,midStreamResumeRateLimitSuppressed:S,...d?{midStreamResumeAttemptBurnedAtMs:a}:{}}}function jL(e){return e>0?` (${e} automatic ${e===1?"retry":"retries"} did not help.)`:""}function qg(e,n,t,r,o,i,s=t,a={autoRetryPreFirstByteStall:!1,messageStateRetryable:!1,costCapAutoRetrySuppressed:!1,messageStateFate:void 0,autoResumeMidStreamStall:!1,midStreamResumeRateLimitSuppressed:!1}){let d=a.autoRetryPreFirstByteStall||a.costCapAutoRetrySuppressed?`${r}${jL(i.autoRetryAttemptsForSeq?.(n.sourceSeq)??0)}${a.costCapAutoRetrySuppressed?LL:""}`:r;if(a.midStreamResumeRateLimitSuppressed&&(d+=Tae),t==="failed")if(a.midStreamResumeAttemptBurnedAtMs!==void 0)d+=Pae(a.midStreamResumeAttemptBurnedAtMs);else{let u=i.midStreamResumeAttemptAtMsForSeq?.(n.sourceSeq);u!==void 0&&(d+=Iae(u))}for(let u of n.items){if(!u.posted||PL(u.emittedStreamState))continue;let c=Vu(u.wireItemKey,u.content,s);o.push({type:"enqueue",kind:It.finalizeRow,data:{...zg(i,n,u,c),stream_snapshot_index:Dp(u),terminal_outcome:t,reason:r},resolution:"must_ack"}),u.emittedStreamState=s,u.lastEmittedBody=c.body}o.push({type:"enqueue",kind:It.messageState,data:{thread_key:i.threadKey,turn_id:n.turnId,seq:n.sourceSeq,status:"failed",reason:d,...a.messageStateRetryable?{retryable:!0}:{},...a.messageStateFate===void 0?{}:{fate:a.messageStateFate},...(()=>{let u=a.messageStateFate===void 0?void 0:i.ladderHistoryForSeq?.(n.sourceSeq,a.messageStateFate);return u===void 0?{}:{ladder:u}})(),...(()=>{let u=n.lastUpstreamErrorSummary??e.lastUpstreamErrorSummary;return u===void 0?{}:{upstream_error:u}})()},resolution:"must_ack"}),o.push({type:"turnTerminal",turnId:n.turnId,outcome:t,reason:d,...a.autoRetryPreFirstByteStall?{retryableEmptyTurn:!0}:{},...a.autoResumeMidStreamStall?{autoResumeMidStreamStall:!0}:{},...a.messageStateFate===void 0?{}:{fate:a.messageStateFate}}),e.turns.delete(n.turnId),Ng(e,n.turnId)}function Eae(e,n,t,r){let o=h(n.turnId),i=h(n.reason)??"turn source-seq mapping failed";if(o===void 0||e.terminalTurnIds.has(o))return;let s=e.turns.get(o);if(s!==void 0){qg(e,s,"failed",i,r,t);return}let a=e.bufferedTurns.get(o);e.bufferedTurns.delete(o),r.push(gn("pipeline.loop.buffered_turn_failed",{level:"warn",turn_id:o,buffered_event_count:a?.length??0,reason:i})),r.push({type:"turnTerminal",turnId:o,outcome:"failed",reason:i}),Ng(e,o)}function FL(e,n,t,r){if(e.phase!=="active"){r.push(gn("pipeline.loop.delta_for_completing_turn",{turn_id:e.turnId,stream_kind:n.streamKind}));return}let o=zL(e,n.streamKind,n.itemId,t);if(o.completed){r.push(gn("pipeline.loop.delta_for_completed_item",{turn_id:e.turnId,item_key:o.itemKey}));return}o.content=gL(o.content,n);let i=o.nextDeltaIndex;o.nextDeltaIndex+=1;let s=n.streamKind==="terminalInput"?"completed":"streaming";qL(e,o,i,s,t,r)}function Dae(e,n,t,r){let o=A(n.item);o!==void 0&&(e.protocolFailureReason??=EL(o)),IL(e,o??n);let i=yL(n);if(i===void 0)return;if(i.streamKind==="webSearch"){FL(e,{streamKind:"webSearch",itemId:i.itemId,queries:i.content.streamKind==="webSearch"?i.content.queries:[]},t,r);return}if(e.phase!=="active"){r.push(gn("pipeline.loop.item_completed_for_completing_turn",{turn_id:e.turnId,stream_kind:i.streamKind}));return}let s=zL(e,i.streamKind,i.itemId,t,{adoptOpenIdLess:!0});if(s.completed&&!Mae(s,i))return;s.content=i.content,s.completed=!0;let a=Vu(s.wireItemKey,s.content,"streaming");s.posted&&a.body===s.lastEmittedBody||qL(e,s,Math.max(s.nextDeltaIndex-1,0),"streaming",t,r)}function Mae(e,n){return e.identity.streamKind!==n.streamKind?!1:n.streamKind==="agentStatus"||n.streamKind==="agentTaskUpdate"}function qL(e,n,t,r,o,i){let s=Vu(n.wireItemKey,n.content,r);if(!n.posted){if(s.body.trim()==="")return;i.push({type:"enqueue",kind:It.postStreamedRow,data:{...zg(o,e,n,s),delta_index:t,stream_snapshot_index:Dp(n)},resolution:"must_ack"}),n.posted=!0,n.emittedStreamState=r,n.lastEmittedBody=s.body,r==="completed"&&(n.completed=!0);return}i.push({type:"enqueue",kind:It.streamSnapshot,data:{...zg(o,e,n,s),delta_index:t,stream_snapshot_index:Dp(n)},coalesceKey:n.itemKey,resolution:"must_ack"}),n.emittedStreamState=r,n.lastEmittedBody=s.body}function zL(e,n,t,r,o={adoptOpenIdLess:!1}){if(n==="webSearch")return e.items.find(s=>s.identity.streamKind==="webSearch")??CL(e,"webSearch",`web-search:${e.turnId}`,r);if(t!==void 0){let s=e.items.find(a=>a.identity.streamKind===n&&a.identity.itemId===t);if(s!==void 0)return s}let i=e.items.find(s=>s.identity.streamKind===n&&s.identity.itemId===void 0&&!s.completed);return t===void 0&&i!==void 0||t!==void 0&&o.adoptOpenIdLess&&i!==void 0?i:CL(e,n,t,r)}function CL(e,n,t,r){let o={turnId:e.turnId,itemId:t,itemIndex:e.items.length,streamKind:n},i=X$(o),s=t??i,a={identity:o,itemKey:i,wireItemKey:s,clientMessageId:uS(r.instanceId,e.turnId,n,s),content:hL(n),posted:!1,completed:!1,emittedStreamState:void 0,lastEmittedBody:void 0,nextDeltaIndex:0,nextStreamSnapshotIndex:1};return e.items.push(a),a}function Aae(e,n,t,r,o){if(e.terminalTurnIds.has(n)){o.push(gn("pipeline.loop.duplicate_snapshot",{turn_id:n}));return}let i=e.turns.get(n);if(i===void 0){o.push(gn("pipeline.loop.snapshot_for_unknown_turn",{turn_id:n}));return}if(i.phase!=="completing"){o.push(gn("pipeline.loop.snapshot_for_active_turn",{turn_id:n}));return}let s=Array.isArray(t.items)?t.items:[];i.protocolFailureReason??=mae(s);for(let Y of s)IL(i,A(Y));let a=_L(s),d=new Set,u=new Map;a.forEach((Y,oe)=>{if(Y.itemId===void 0)return;let Fe=i.items.find(ae=>ae.posted&&!d.has(ae.itemKey)&&ae.identity.streamKind===Y.streamKind&&ae.identity.itemId===Y.itemId);Fe!==void 0&&(d.add(Fe.itemKey),u.set(oe,Fe))});let c=new Map;for(let Y of i.items)Y.posted&&!d.has(Y.itemKey)&&Y.identity.itemId===void 0&&c.set(Y.identity.streamKind,(c.get(Y.identity.streamKind)??0)+1);let l=new Map;a.forEach((Y,oe)=>{u.has(oe)||l.set(Y.streamKind,(l.get(Y.streamKind)??0)+1)});let p=(Y,oe)=>{let Fe=Vu(Y.wireItemKey,Y.content,"completed").body.trim(),ae=oe.body.trim();return ae.startsWith(Fe)||Fe.startsWith(ae)};a.forEach((Y,oe)=>{if(u.has(oe))return;let Fe=l.get(Y.streamKind)===c.get(Y.streamKind);if(Y.itemId!==void 0&&!Fe)return;let ae=i.items.find(Ce=>Ce.posted&&!d.has(Ce.itemKey)&&Ce.identity.streamKind===Y.streamKind&&Ce.identity.itemId===void 0);ae!==void 0&&(Y.itemId!==void 0&&!p(ae,Y)||(d.add(ae.itemKey),u.set(oe,ae)))});for(let Y of i.items){let oe=[...u.entries()].find(([,ae])=>ae.itemKey===Y.itemKey);if(oe!==void 0){let ae=a[oe[0]];if(ae===void 0)continue;o.push({type:"enqueue",kind:It.finalizeRow,data:{thread_key:r.threadKey,turn_id:i.turnId,item_key:Y.itemKey,item_id:Y.wireItemKey,stream_kind:Y.identity.streamKind,item_index:Y.identity.itemIndex,source_seq:i.sourceSeq,client_message_id:Y.clientMessageId,body:ae.body,structured:dS(ae.structured,Y.wireItemKey),stream_snapshot_index:Dp(Y),terminal_outcome:"completed"},resolution:"must_ack"}),Y.emittedStreamState="completed",Y.lastEmittedBody=ae.body;continue}if(!Y.posted||PL(Y.emittedStreamState))continue;let Fe=Vu(Y.wireItemKey,Y.content,"completed");o.push({type:"enqueue",kind:It.finalizeRow,data:{...zg(r,i,Y,Fe),stream_snapshot_index:Dp(Y),terminal_outcome:"completed"},resolution:"must_ack"}),Y.emittedStreamState="completed",Y.lastEmittedBody=Fe.body}a.forEach((Y,oe)=>{if(u.has(oe))return;let Fe=Y.itemId??`${i.turnId}:${Y.streamKind}:snapshot:${Y.snapshotIndex}`;o.push({type:"enqueue",kind:It.postCompletedRow,data:{thread_key:r.threadKey,turn_id:i.turnId,item_key:`${i.turnId}:${Y.streamKind}:${Y.itemId??`snapshot:${Y.snapshotIndex}`}`,item_id:Fe,stream_kind:Y.streamKind,snapshot_index:Y.snapshotIndex,source_seq:i.sourceSeq,client_message_id:uS(r.instanceId,i.turnId,Y.streamKind,Fe),body:Y.body,structured:dS(Y.structured,Fe),stream_snapshot_index:1},resolution:"must_ack"})});let m=i.items.some(Y=>Y.identity.streamKind==="assistant"&&Y.posted)||a.some(Y=>Y.streamKind==="assistant"),f=i.agentActionToolCallSeen||i.items.some(Y=>Y.posted&&wL.has(Y.identity.streamKind))||a.some(Y=>wL.has(Y.streamKind)),y=r.linzumiAgentSession===!0&&m&&!i.agentReplyToolCallSeen&&!f,_=m&&!y,w=i.protocolFailureReason,S=w!==void 0&&fae(w)&&_,v=S?void 0:w,b=!_&&w===void 0&&i.lastUpstreamErrorReason===void 0?y?{cause:dae}:ade(i,a.length,i.lastUpstreamErrorSummary??e.lastUpstreamErrorSummary):void 0,k=!_&&v===void 0&&i.upstreamRejectedSeen,R=!_&&v===void 0&&i.providerOutageFlaggedSeen,P=qae(i.lastUpstreamErrorHttpStatus),L=!_&&v===void 0&&i.edgeBlockEvidence!==void 0,D=k&&!R&&!P,j=R||D?tde({providerOutageFlagged:R,priorConsecutiveIsolatedRejections:e.consecutiveIsolatedRejections,stormDetail:i.providerOutageDetail,rejectionDetail:i.upstreamRejectedDetail}):void 0,q=j?.kind==="isolated_retry";D?e.consecutiveIsolatedRejections+=1:e.consecutiveIsolatedRejections=0;let E=!_&&v===void 0&&i.lastUpstreamErrorReason===void 0&&i.lastErrorDiagnosticText===void 0&&!k&&Fae(i.lastUpstreamErrorHttpStatus),B=!_&&v===void 0&&i.lastUpstreamErrorReason===void 0&&P,z=!_&&v===void 0&&i.lastUpstreamErrorReason===void 0&&!k&&!E&&!B&&i.toolFatalSeen,W=j!==void 0?j.reason:B?zae(i.lastUpstreamErrorHttpStatus,i.upstreamRejectedDetail??i.lastErrorDiagnosticText):E?Nae(i.lastUpstreamErrorHttpStatus):z?Uae(i.toolFatalDetail):i.lastUpstreamErrorReason??(y?aae:b===void 0?bL:`${bL} [${b.cause}]`),Z=b!==void 0&&v===void 0&&i.modelInteractionSeen&&i.lastErrorDiagnosticText===void 0&&!k&&!E&&!B&&!z;Z?(e.consecutiveEmptyTurns+=1,e.lastEmptyTurnCause=b?.cause):(e.consecutiveEmptyTurns=0,e.lastEmptyTurnCause=void 0);let fe=Z&&e.consecutiveEmptyTurns>vL,De=Z&&!fe||q,ke=r.autoRetryAttemptsForSeq?.(i.sourceSeq)??0,ge=De&&e.costCap402Seen&&ke<xo,Re=De&&!ge;L&&o.push(gn("codex.edge_blocked_captured",{thread_key:r.threadKey,turn_id:i.turnId,source_seq:i.sourceSeq,http_status:i.edgeBlockEvidence?.status,signature:i.edgeBlockEvidence?.signature}));let Ee=fe?`${cae} (${e.consecutiveEmptyTurns} in a row${b===void 0?"":`: ${b.cause}`}).`:void 0,I=v??(_?void 0:Ee??W),K=I===void 0?void 0:`${I}${jL(Z&&!fe?ke:0)}${ge?LL:""}`,ie=b!==void 0&&!fe&&!k&&!E&&!B&&!z||q||L,pe=ie||R?"transient_upstream":E?i.lastUpstreamErrorHttpStatus===void 0?"transient_upstream":z$(i.lastUpstreamErrorHttpStatus):"deterministic";ge&&o.push(gn("codex.empty_turn_auto_retry_suppressed_cost_cap",{thread_key:r.threadKey,turn_id:i.turnId,source_seq:i.sourceSeq,reason:I??null,isolated_rejection_retry_suppressed:q})),fe&&o.push(gn("codex.empty_turn_loop_guard_tripped",{thread_key:r.threadKey,turn_id:i.turnId,source_seq:i.sourceSeq,consecutive_empty_turns:e.consecutiveEmptyTurns,max_consecutive_empty_turns:vL,cause:b?.cause??null,last_upstream_error:i.lastUpstreamErrorSummary??e.lastUpstreamErrorSummary??null})),S?o.push(gn("codex.turn_completed_with_unsupported_tool_call_ignored",{thread_key:r.threadKey,turn_id:i.turnId,source_seq:i.sourceSeq,reason:w})):w!==void 0&&o.push(gn("codex.turn_completed_with_protocol_failure",{thread_key:r.threadKey,turn_id:i.turnId,source_seq:i.sourceSeq,reason:w})),y&&o.push(gn("codex.agent_turn_narration_only_no_reply",{thread_key:r.threadKey,turn_id:i.turnId,source_seq:i.sourceSeq,streamed_item_count:i.items.length,snapshot_item_count:a.length,agent_reply_tool_call_seen:i.agentReplyToolCallSeen,agent_action_tool_call_seen:i.agentActionToolCallSeen,retryable_empty_turn:ie,empty_turn_loop_guard_tripped:fe})),m||o.push(gn("codex.turn_completed_without_assistant_output",{thread_key:r.threadKey,turn_id:i.turnId,source_seq:i.sourceSeq,streamed_item_count:i.items.length,snapshot_item_count:a.length,notification_count:i.notificationCount,error_notification_count:i.errorNotificationCount,model_interaction_seen:i.modelInteractionSeen,last_error_diagnostic_text:i.lastErrorDiagnosticText??null,last_upstream_error_reason:i.lastUpstreamErrorReason??null,last_upstream_error_summary:i.lastUpstreamErrorSummary??null,empty_turn_cause:b?.cause??null,tool_fatal_seen:z,tool_fatal_detail:i.toolFatalDetail??null,upstream_rejected_seen:k,upstream_rejected_detail:i.upstreamRejectedDetail??null,upstream_terminal_4xx:B,last_upstream_error_http_status:i.lastUpstreamErrorHttpStatus??null,provider_outage_flagged:R,isolated_rejection_retry_granted:q,rejection_disposition:j?.kind??null,consecutive_isolated_rejections:e.consecutiveIsolatedRejections,retryable_empty_turn:ie,empty_turn_loop_guard_tripped:fe,cost_cap_auto_retry_suppressed:ge})),o.push({type:"enqueue",kind:It.messageState,data:{thread_key:r.threadKey,turn_id:i.turnId,seq:i.sourceSeq,...K===void 0?{status:"processed"}:{status:"failed",reason:K,...ie?{retryable:!0}:{},fate:pe,...(()=>{let Y=r.ladderHistoryForSeq?.(i.sourceSeq,pe);return Y===void 0?{}:{ladder:Y}})(),...L?{failure_class:"edge_blocked"}:{},...(()=>{let Y=i.lastUpstreamErrorSummary??e.lastUpstreamErrorSummary;return Y===void 0?{}:{upstream_error:Y}})()}},resolution:"must_ack"}),K===void 0&&(e.lastUpstreamErrorSummary=void 0),o.push(K===void 0?{type:"turnTerminal",turnId:i.turnId,outcome:"completed"}:{type:"turnTerminal",turnId:i.turnId,outcome:"failed",reason:K,...Re?{retryableEmptyTurn:!0}:{},fate:pe}),e.turns.delete(i.turnId),Ng(e,i.turnId)}function Oae(e,n,t,r){let o=e.bufferedTurns.get(n);if(o===void 0){e.bufferedTurns.set(n,[t]),r.push(gn("pipeline.loop.turn_events_buffered",{turn_id:n}));return}o.push(t)}function $ae(e,n,t){for(let r of[...e.bufferedTurns.keys()]){if(n.sourceSeqForTurn(r)===void 0)continue;let o=e.bufferedTurns.get(r)??[];e.bufferedTurns.delete(r),t.push(gn("pipeline.loop.buffered_turn_drained",{turn_id:r,buffered_event_count:o.length}));for(let i of o)AL(e,i,n,t)}}function Ng(e,n){for(e.terminalTurnIds.delete(n),e.terminalTurnIds.add(n);e.terminalTurnIds.size>iae;){let t=e.terminalTurnIds.values().next().value;if(t===void 0)return;e.terminalTurnIds.delete(t)}}function Ug(e){let n=[...e.turns.values()].filter(t=>t.phase==="active");return n.length===1?n[0]?.turnId:void 0}function zg(e,n,t,r){return{thread_key:e.threadKey,turn_id:n.turnId,item_key:t.itemKey,item_id:t.wireItemKey,stream_kind:t.identity.streamKind,item_index:t.identity.itemIndex,source_seq:n.sourceSeq,client_message_id:t.clientMessageId,body:r.body,structured:r.structured}}function Dp(e){let n=e.nextStreamSnapshotIndex;return e.nextStreamSnapshotIndex+=1,n}function Wu(e){return h(e.reason)??h(e.message)??h(A(e.error)?.message)??h(e.error)??"codex_turn_aborted"}function Lae(e){let n=h(e.diagnostic_summary)??h(A(A(e.diagnostic_payload)?.error)?.message);if(n===void 0)return;let t=n.replace(/<[^>]*>/g," ").replace(/data:[^"' )]+/g,"").replace(/\s+/g," ").trim().slice(0,180);if(t.length===0)return;let r=Bg(e);return r===void 0?`Model gateway error: ${t}`:`Model gateway error (HTTP ${r}): ${t}`}function Bg(e){let n=A(A(e.diagnostic_payload)?.error),t=A(n?.codexErrorInfo),o=[A(t?.responseStreamDisconnected)?.httpStatusCode,t?.httpStatusCode,t?.statusCode,t?.status,n?.httpStatusCode,n?.statusCode,n?.status];for(let i of o)if(typeof i=="number"&&Number.isFinite(i))return i}function jae(e){let n=Bg(e);if(n!==401&&n!==403)return;let t=A(A(e.diagnostic_payload)?.error),r=[h(e.diagnostic_summary),h(t?.message),h(e.message)].find(i=>i!==void 0&&/(?:<!doctype\s+html|<html(?:\s|>))/i.test(i)&&/cloudflare|cf-ray|\bblocked\b|access denied|\bchallenge\b|attention required/i.test(i));if(r===void 0)return;let o=/cloudflare|cf-ray/i.test(r)?"cloudflare":/\bblocked\b|access denied/i.test(r)?"blocked":/attention required/i.test(r)?"attention_required":"challenge";return{status:n,signature:o}}function Fae(e){return e===void 0?!1:e===402||e===408||e===425||e===429||e>=500&&e<=599}function qae(e){return e===void 0||e<400||e>499?!1:e!==402&&e!==408&&e!==425&&e!==429}function zae(e,n){let t="the model provider rejected this request as invalid (a retry sends the same request and fails the same way, so it was not retried; check the selected model / request and send again).",r=e===void 0?`Model provider rejected this request: ${t}`:`Model provider rejected this request (HTTP ${e}): ${t}`,o=typeof n=="string"?n.trim():"";return o===""?r:`${r} Upstream said: ${o}`}function Nae(e){let n="the model provider returned no usable response this turn (retrying will not help until it recovers).";return e===void 0?`Model upstream unavailable: ${n}`:`Model upstream unavailable (HTTP ${e}): ${n}`}function Uae(e){let n="The agent run was cut off by a tool failure and produced no response (retrying will hit the same failure until the underlying tool call is fixed).",t=typeof e=="string"?e.trim():"";return t===""?`Tool execution failed: ${n}`:`Tool execution failed (${t}): ${n}`}function Ap(e){let n=A(A(e.diagnostic_payload)?.error),t=h(e.message)??h(e.reason)??h(A(e.error)?.message)??h(e.error)??h(e.diagnostic)??h(n?.message)??h(A(n?.error)?.message);if(t===void 0)return;let r=t.replace(/<[^>]*>/g," ").replace(/data:[^"' )]+/g,"").replace(/\s+/g," ").trim().slice(0,180);return r.length===0?void 0:r}function Hu(e){if(e===void 0)return;let n=e.replace(/<[^>]*>/g," ").replace(/data:[^"' )]+/g,"").replace(/\s+/g," ").trim().slice(0,180);return n.length===0?void 0:n}function Vae(e){let n=A(e.error),t=A(A(e.diagnostic_payload)?.error),r=A(t?.error),o=Bg(e),i=h(n?.type)??h(n?.code)??h(t?.type)??h(t?.code)??h(r?.type)??h(r?.code)??TL(n?.codexErrorInfo)??TL(t?.codexErrorInfo),s=Hu(h(n?.message))??Hu(h(r?.message))??Hu(h(t?.message))??Ap(e);if(o===void 0&&i===void 0){let u=zs(h(n?.message))??zs(h(r?.message))??zs(h(t?.message))??zs(h(e.message))??zs(h(e.reason))??zs(h(e.error))??zs(h(e.diagnostic))??zs(h(e.diagnostic_summary));u!==void 0&&(o=u.status,i=u.errorType,s=Hu(u.message)??s)}let a=[o===void 0?void 0:String(o),i?.trim()===""?void 0:i?.trim()].filter(u=>u!==void 0).join(" "),d=a===""?s:s===void 0?a:`${a}: ${s}`;if(!(d===void 0||d===""))return d.slice(0,Kae)}function TL(e){if(typeof e=="string"&&e.trim()!=="")return e;let n=A(e);if(n===void 0)return;let t=Object.keys(n);return t.length===1?t[0]:void 0}function zs(e){if(e===void 0)return;let n=e.indexOf("{");if(n===-1)return;let t=Fa(e.slice(n))??Fa(e.slice(n,e.lastIndexOf("}")+1));if(t===void 0||h(t.type)!=="error")return;let r=A(t.error);if(r===void 0)return;let o=t.status;return{status:typeof o=="number"&&Number.isFinite(o)?o:void 0,errorType:h(r.type)??h(r.code),message:h(r.message)}}function Wae(e){let n=A(A(e.diagnostic_payload)?.error),t=A(n?.error),r=A(e.error),o=[{code:h(n?.code),message:h(n?.message)},{code:h(n?.type),message:h(n?.message)},{code:h(t?.code),message:h(t?.message)},{code:h(t?.type),message:h(t?.message)},{code:h(r?.code),message:h(r?.message)},{code:h(r?.type),message:h(r?.message)},{code:h(e.code),message:h(e.message)},{code:h(e.type),message:h(e.message)}];for(let i of o){let s=i.code?.trim();if(s!==void 0&&s!==""&&Bae.test(s))return{codeOrType:s,message:i.message}}}function Hae(e){let n=Wae(e),t=Ap(e),r=t!==void 0&&Jae.test(t);return n===void 0&&!r?void 0:Hu(n?.message)??t??""}function Gae(e){let n="the model provider rejected this request and produced no response (retrying will hit the same rejection until the request is changed).",t=typeof e=="string"?e.trim():"";return t===""?`The model request was rejected: ${n}`:`The model request was rejected (${t}): ${n}`}function Yae(e){let n=A(A(e.diagnostic_payload)?.error),t=A(n?.error),r=A(e.error),o=[h(n?.code),h(n?.type),h(t?.code),h(t?.type),h(r?.code),h(r?.type),h(e.code),h(e.type)],i=[h(n?.message),h(t?.message),h(r?.message),h(e.message),h(e.reason)];if(o.some(a=>{let d=a?.trim();return d!==void 0&&d!==""&&Qae.test(d)})){for(let a of i){let d=Hu(a);if(d!==void 0&&Xae.test(d))return d}return Ap(e)??""}}function ede(e){let n=typeof e=="string"?e.trim():"";return n===""?"The model provider is currently rejecting requests / experiencing an outage. Your message was NOT processed. Please retry later, or switch to a different model.":n}function nde(e){let n="the model provider rejected this request and produced no response (a one-off retry did not help).",t=typeof e=="string"?e.trim():"";return t===""?`The model request was rejected: ${n}`:`The model request was rejected (${t}): ${n}`}function tde(e){return e.providerOutageFlagged?{kind:"storm",retryable:!1,reason:ede(e.stormDetail)}:e.priorConsecutiveIsolatedRejections<Zae?{kind:"isolated_retry",retryable:!0,reason:Gae(e.rejectionDetail)}:{kind:"isolated_terminal",retryable:!1,reason:nde(e.rejectionDetail)}}function ide(e){return rde.test(e)||ode.test(e)}function sde(e){let n=h(e.kind)??h(e.type)??h(A(e.error)?.kind)??h(A(e.error)?.type),t=typeof n=="string"&&/(tool.*fatal|fatal.*tool|response[._]failed|tool_failure)/i.test(n),r=Ap(e),o=r!==void 0&&ide(r);if(!(!t&&!o))return r??""}function ade(e,n,t){let r=t===void 0?"":` (last upstream error: ${t})`;return e.lastErrorDiagnosticText!==void 0?{cause:`codex error without HTTP status: ${e.lastErrorDiagnosticText}`}:e.modelInteractionSeen?{cause:`model returned no assistant output: ${e.items.length} streamed items, ${n} snapshot items${r}`}:{cause:`codex never called the model: 0 model interactions, ${e.notificationCount} notifications, ${e.errorNotificationCount} errors${r}`}}function gn(e,n){return{type:"log",event:e,fields:n}}var oae,Mp,Gu,iae,xo,bL,sae,aae,dae,wL,vL,cae,SL,RL,gae,yae,xae,kae,$L,Tae,LL,Bae,Jae,Kae,Zae,Qae,Xae,rde,ode,Jg=F(()=>{"use strict";Kn();Bu();nS();cS();oae=new Set(["completed","failed","interrupted"]);Mp="pipeline/turnMappingReady",Gu="pipeline/turnMappingFailed",iae=512,xo=2,bL="Codex completed without producing a response.",sae="linzumi_agent_reply",aae="The agent ended its turn after narrating an intent without posting a reply or taking any action.",dae="agent narrated intent but posted no reply and took no action",wL=new Set(["commandOutput","fileChange","terminalInput","agentStatus","agentTaskUpdate"]);vL=3,cae="Stopped after repeated empty responses in a row",SL=64;RL="Codex emitted unsupported tool call";gae=new Map([["turn/failed","failed"],["turn/aborted","interrupted"],["turn/canceled","interrupted"],["turn/cancelled","interrupted"]]),yae=new Set(["turn/started","turn/completed","turn/failed","turn/aborted","turn/canceled","turn/cancelled","error","item/agentMessage/delta","item/reasoning/textDelta","item/commandExecution/outputDelta","command/exec/outputDelta","item/fileChange/outputDelta","item/commandExecution/terminalInteraction","item/started","item/completed","response_item"]),xae=new Set(["item/agentMessage/delta","item/reasoning/textDelta","item/commandExecution/outputDelta","command/exec/outputDelta","item/fileChange/outputDelta","item/commandExecution/terminalInteraction","item/started","item/completed","response_item"]);kae=/upstream model stream stalled/i,$L=/\(HTTP (\d{3})\)/;Tae=" (An automatic resume was not attempted: the upstream reported a rate limit (HTTP 429) during this turn, and an automatic resume would burn straight into it. Retry once the rate limit clears.)";LL=" (Automatic retries are paused: this session hit your Linzumi cost cap (HTTP 402), and an automatic retry must never spend past it. Retry manually when your budget allows.)";Bae=/^(?:model_request_rejected|invalid_request_error|invalid_request|request_rejected|content_policy_violation|content_filter|input_validation_error)$/i,Jae=/\bmodel request was rejected\b|\bmodel_request_rejected\b/i;Kae=300;Zae=1,Qae=/^provider_outage$/i,Xae=/rejecting requests|experiencing an outage|provider outage/i;rde=/\bapply_patch\b[^]*\bincompatible\b|\bin-flight tool future\b[^]*\bfail/i,ode=/\btools::router\b[^]*\bfatal\b|\bresponse\.failed\b/i});function NL(e){return e===void 0?[]:[...e.values()].map(n=>({...n}))}function UL(e){let n=DL(),t={threadKey:e.threadKey,instanceId:e.instanceId,sourceSeqForTurn:e.sourceSeqForTurn,autoRetryAttemptsForSeq:e.autoRetryAttemptsForSeq,midStreamResumeAttemptAtMsForSeq:e.midStreamResumeAttemptAtMsForSeq,ladderHistoryForSeq:e.ladderHistoryForSeq,linzumiAgentSession:e.linzumiAgentSession===!0},r=[],o=e.now??(()=>Date.now()),i=new Map,s=new Map,a=new Map,d=new Map,u=new Set,c=e.bufferedTurnMaxAgeMs??dde,l=e.bufferedTurnMaxEvents??ude,p=e.bufferedTurnSweepIntervalMs??cde,m=!1,f=!0,y,_=(D,j)=>{try{e.log(D,j)}catch{}},w=D=>{switch(D.type){case"enqueue":e.outbox.enqueue({kind:D.kind,data:D.data,...D.coalesceKey===void 0?{}:{coalesceKey:D.coalesceKey},resolution:D.resolution});return;case"requestSnapshot":e.requestSnapshot(D.turnId);return;case"turnTerminal":e.onTurnTerminal(D.turnId,D.outcome,D.reason,D.retryableEmptyTurn,D.autoResumeMidStreamStall,D.fate);return;case"log":_(D.event,D.fields);return}},S=()=>{for(let D of n.turns.keys())i.has(D)||i.set(D,o());for(let D of[...i.keys()])n.turns.has(D)||i.delete(D);for(let D of n.bufferedTurns.keys())s.has(D)||s.set(D,o());for(let D of[...s.keys()])n.bufferedTurns.has(D)||(s.delete(D),u.delete(D));for(let D of[...a.keys()])!n.turns.has(D)&&!n.bufferedTurns.has(D)&&a.delete(D);for(let D of[...d.keys()])!n.turns.has(D)&&!n.bufferedTurns.has(D)&&d.delete(D)},v=(D,j)=>{!n.turns.has(D)&&!n.bufferedTurns.has(D)||a.set(D,{atMs:o(),kind:j})},b=D=>{if(D.source!=="codex")return;let j=D.notification.method;if(j===Mp||j===Gu)return;let q=Ep(D.notification.params??{})??Ug(n);q!==void 0&&v(q,j)},k=D=>{if(D.source!=="codex")return;let j=D.notification.method;if(j!=="item/started"&&j!=="item/completed"&&j!=="response_item")return;let q=D.notification.params??{},E=Ep(q)??Ug(n);if(E===void 0||!n.turns.has(E)&&!n.bufferedTurns.has(E))return;let B=Fg(q);if(B===void 0||B==="")return;if(j!=="item/started"){d.get(E)?.delete(B);return}let z=h(A(q.item)?.type);if(z===void 0||!lde.has(z))return;let W=d.get(E);W===void 0&&(W=new Map,d.set(E,W)),W.set(B,{kind:z,startedAtMs:o()})},R=()=>{if(!f||n.phase!=="running")return!1;let D=o(),j=!1;for(let[q,E]of n.bufferedTurns){if(u.has(q))continue;let B=D-(s.get(q)??D),z=B>c,W=E.length>l;!z&&!W||(u.add(q),_("pipeline.loop.buffered_turn_overdue",{level:"warn",thread_key:e.threadKey,turn_id:q,buffered_event_count:E.length,age_ms:B,max_age_ms:c,max_events:l}),r.push({source:"codex",notification:{method:Gu,params:{turnId:q,reason:W?`turn source mapping never arrived (${E.length} buffered events exceeded the ${l} cap)`:`turn source mapping never arrived within ${c}ms`}}}),j=!0)}return j},P=()=>{if(!m){m=!0;try{for(;r.length>0;){let D=r.shift();if(D===void 0)continue;let j;try{j=ML(n,D,t)}catch(q){_("pipeline.loop.event_processing_failed",{thread_key:e.threadKey,source:D.source,message:q instanceof Error?q.message:String(q)});continue}S(),b(D),k(D);for(let q of j)try{w(q)}catch(E){_("pipeline.loop.effect_failed",{thread_key:e.threadKey,effect:q.type,message:E instanceof Error?E.message:String(E)})}R()}}finally{m=!1}}},L=p>0?setInterval(()=>{R()&&P()},p):void 0;return L?.unref?.(),{submit:D=>{try{if(!f){_("pipeline.loop.event_after_drain",{thread_key:e.threadKey,source:D.source});return}r.push(D),P()}catch(j){_("pipeline.loop.submit_failed",{thread_key:e.threadKey,message:j instanceof Error?j.message:String(j)})}},metrics:()=>({queueDepth:r.length,phase:n.phase,activeTurns:[...n.turns.values()].map(D=>({turnId:D.turnId,sourceSeq:D.sourceSeq,startedAtMs:i.get(D.turnId)??o(),lastActivityAtMs:a.get(D.turnId)?.atMs,lastActivityKind:a.get(D.turnId)?.kind,openItems:NL(d.get(D.turnId))})),bufferedTurns:[...n.bufferedTurns.entries()].map(([D,j])=>({turnId:D,bufferedEventCount:j.length,firstBufferedAtMs:s.get(D)??o(),lastActivityAtMs:a.get(D)?.atMs,lastActivityKind:a.get(D)?.kind,openItems:NL(d.get(D))}))}),noteTurnActivity:(D,j)=>{try{v(D,j)}catch(q){_("pipeline.loop.note_activity_failed",{thread_key:e.threadKey,message:q instanceof Error?q.message:String(q)})}},drainAndClose:D=>(y===void 0&&(y=(async()=>{f=!1,L!==void 0&&clearInterval(L),await Promise.resolve(),P();try{await e.outbox.flush(D)}catch(j){_("pipeline.loop.drain_flush_failed",{thread_key:e.threadKey,message:j instanceof Error?j.message:String(j)})}})()),y)}}var dde,ude,cde,lde,BL=F(()=>{"use strict";Kn();cS();Jg();dde=10*6e4,ude=1e4,cde=3e4,lde=new Set(["commandExecution","terminalInput","mcpToolCall","dynamicToolCall","collabAgentToolCall"])});function Vg(e){let n=xde(e),t=uL({threadKey:e.threadKey,push:e.push,builders:n,...e.persistDir===void 0?{}:{persistDir:e.persistDir},...e.outboxRetryDelaysMs===void 0?{}:{retryDelaysMs:[...e.outboxRetryDelaysMs]},maxInFlightPushes:e.outboxMaxInFlightPushes??fde,...e.journalRecoveryMaxAgeMs===void 0?{}:{journalRecoveryMaxAgeMs:e.journalRecoveryMaxAgeMs},isRetryBudgetExempt:fS,onPermanentFailure:(d,u)=>{e.log("pipeline.outbox_entry_failed",{thread_key:e.threadKey,entry_seq:d.entrySeq,kind:d.kind,attempts:d.attempts,item_key:h(d.data.item_key)??null,turn_id:h(d.data.turn_id)??null,message:u.message})},log:e.log}),r,o={...t,enqueue:d=>{if(d.kind===It.messageState){let u=h(d.data.turn_id);if(u!==void 0&&e.isRecoveredTurn?.(u)===!0)return t.enqueue({...d,data:{...d.data,suppress_terminal_for_recovered_turn:!0}})}if(yde(d.kind)){let u=X(d.data.source_seq),c=A(d.data.local_runner_runtime_metadata)??e.runtimeMetadataForSourceSeq?.(u);if(c!==void 0)return t.enqueue({...d,data:{...d.data,local_runner_runtime_metadata:c}})}return t.enqueue(d)}},i=async d=>{let u=e.snapshotRetryDelaysMs??pde;for(let c=0;;c+=1)try{let l=await e.resolveSnapshot(d);r.submit({source:"snapshot",turnId:d,snapshot:{items:[...l.items]}});return}catch(l){let p=l instanceof Error?l.message:String(l),m=u[c];if(e.log("pipeline.snapshot_resolution_failed",{thread_key:e.threadKey,turn_id:d,attempt:c+1,retry_in_ms:m??null,message:p}),m===void 0){r.submit({source:"codex",notification:{method:"turn/failed",params:{turnId:d,reason:`completion snapshot resolution failed: ${p}`}}});return}await Sde(m)}};r=UL({threadKey:e.threadKey,outbox:o,sourceSeqForTurn:e.sourceSeqForTurn,autoRetryAttemptsForSeq:e.autoRetryAttemptsForSeq,midStreamResumeAttemptAtMsForSeq:e.midStreamResumeAttemptAtMsForSeq,ladderHistoryForSeq:e.ladderHistoryForSeq,onTurnTerminal:e.onTurnTerminal,requestSnapshot:d=>{i(d).catch(u=>{e.log("pipeline.snapshot_request_failed",{thread_key:e.threadKey,turn_id:d,message:u instanceof Error?u.message:String(u)})})},instanceId:e.instanceId,log:e.log,linzumiAgentSession:e.linzumiAgentSession===!0});let s=cL({threadKey:e.threadKey,outboxMetrics:()=>t.metrics(),loopMetrics:()=>r.metrics(),log:e.log,intervalMs:e.statsIntervalMs,turnStalledThresholdMs:e.turnStalledThresholdMs,turnWaitStates:e.turnWaitStates}),a;return{submitNotification:(d,u)=>{r.submit({source:"codex",notification:{method:d,params:u}})},notifyTurnMappingReady:d=>{r.submit({source:"codex",notification:{method:Mp,params:{turnId:d}}})},notifyTurnMappingFailed:(d,u)=>{r.submit({source:"codex",notification:{method:Gu,params:{turnId:d,reason:u}}})},noteTurnActivity:(d,u)=>{r.noteTurnActivity(d,u)},submitLifecycle:(d,u)=>{r.submit({source:"lifecycle",kind:d,reason:u})},pause:()=>{t.pause()},resume:()=>{t.resume()},rebindThreadKey:d=>{t.rekeyJournal(d)},flushOutbox:d=>t.flush(d),metrics:()=>t.metrics(),close:d=>(a===void 0&&(a=(async()=>{s.stop(),r.submit({source:"lifecycle",kind:"shutdown",reason:"session closed"}),await r.drainAndClose(d),await t.close(d)})()),a)}}function JL(e){let n=mg(e);return n===void 0?{}:{traceparent:n}}function mde(e){return{...h(e.turn_id)===void 0?{}:{turn_id:h(e.turn_id)},...h(e.item_key)===void 0?{}:{item_key:h(e.item_key)},...X(e.delta_index)===void 0?{}:{delta_index:X(e.delta_index)},...X(e.stream_snapshot_index)===void 0?{}:{stream_snapshot_index:X(e.stream_snapshot_index)}}}function hde(e){return typeof e.body=="string"?e.body:""}function gde(e){return A(e.structured)??{}}function yde(e){return e===It.postStreamedRow||e===It.streamSnapshot||e===It.finalizeRow||e===It.postCompletedRow}function xde(e){let n={build:r=>{let o=e.wire();if(o.kandanThreadId===void 0||o.codexThreadId===void 0)return{skip:!0,reason:"session_thread_unbound"};let i=h(r.client_message_id);if(i===void 0)return{skip:!0,reason:"missing_client_message_id"};let s=h(r.turn_id),a=X(r.source_seq),d={...s===void 0?{}:{turn_id:s},stream_key:i},u={...d,...A(r.local_runner_runtime_metadata)??{}};return{event:"session:stream_thread_message",payload:{workspace:o.workspaceSlug,channel:o.channelSlug,thread_id:o.kandanThreadId,stream_key:i,...o.leaseEpoch===void 0?{}:{lease_epoch:o.leaseEpoch},body:hde(r),payload:{...e.runnerPayload("codex_output",o.codexThreadId,a,u),...o.rootSeq===void 0?{}:{reply_to_seq:o.rootSeq},...a===void 0?{}:{source_message_seq:a},...d,structured:{...gde(r),stream_key:i}},client_message_id:i,...mde(r),...JL(o.kandanThreadId)}}}},t={build:r=>{let o=e.wire();if(o.kandanThreadId===void 0)return{skip:!0,reason:"session_thread_unbound"};let i=X(r.seq),s=h(r.status);if(i===void 0||s===void 0)return{skip:!0,reason:"malformed_message_state_entry"};let a=h(r.turn_id);return r.suppress_terminal_for_recovered_turn===!0||a!==void 0&&e.isRecoveredTurn?.(a)===!0?{skip:!0,reason:"terminal_for_recovered_turn"}:{event:"message_state",payload:{workspace:o.workspaceSlug,channel:o.channelSlug,thread_id:o.kandanThreadId,instance_id:e.instanceId,...o.codexThreadId===void 0?{}:{codex_thread_id:o.codexThreadId},seq:i,status:s,...h(r.reason)===void 0?{}:{reason:h(r.reason)},...r.retryable===!0?{retryable:!0}:{},...yo(r.fate)?{fate:r.fate}:{},...A(r.ladder)===void 0?{}:{ladder:A(r.ladder)},...r.failure_class==="edge_blocked"?{failure_class:"edge_blocked"}:{},...h(r.upstream_error)===void 0?{}:{upstream_error:h(r.upstream_error)},...h(r.turn_id)===void 0?{}:{turn_id:h(r.turn_id)},...o.leaseEpoch===void 0?{}:{lease_epoch:o.leaseEpoch},...JL(o.kandanThreadId)}}}};return{[It.postStreamedRow]:n,[It.streamSnapshot]:n,[It.finalizeRow]:n,[It.postCompletedRow]:n,[It.messageState]:t}}function WL(e,n){if("error"in e)return[];let t=A(A(e.result)?.thread),o=(ze(t?.turns)??[]).filter(Q).find(i=>i.id===n);return(ze(o?.items)??[]).filter(Q)}function pS(e){if(!e.some(t=>_de.has(h(t.type)??"")))return[...e];let n=new Set;return e.forEach(t=>{let r=Kg.get(h(t.type)??"");if(r===void 0)return;let o=h(t.call_id);if(o===void 0)return;let i=e.findIndex((s,a)=>!n.has(a)&&h(s.type)===r&&h(s.call_id)===o);i>=0&&n.add(i)}),e.flatMap((t,r)=>{let o=h(t.type)??"",i=Kg.get(o);if(i!==void 0){let s=h(t.call_id),a=s===void 0?void 0:e.find(d=>h(d.type)===i&&h(d.call_id)===s);return Kv(a===void 0?[t]:[t,a]).flatMap(d=>{let u=KL(d);return u===void 0?[]:[u]})}return o==="function_call_output"||o==="custom_tool_call_output"?n.has(r)?[]:Kv([t]).flatMap(s=>{let a=KL(s);return a===void 0?[]:[a]}):[t]})}function KL(e){let n=e.structured,t=/^item-\d+$/.test(e.itemKey)?void 0:e.itemKey,r=t===void 0?{}:{id:t},o=typeof n.output=="string"?n.output:"";switch(h(n.kind)){case"codex_command_execution":{let i=bde(o);return{type:"commandExecution",...r,...i===void 0?{}:{codex_protocol_failure_reason:i},command:h(n.command)??"command",...h(n.tool_name)===void 0?{}:{toolName:h(n.tool_name)},cwd:h(n.cwd)??"",status:h(n.status)??"",...h(n.process_id)===void 0||h(n.process_id)===""?{}:{processId:h(n.process_id)},aggregatedOutput:o}}case"codex_file_change":return{type:"fileChange",...r,status:h(n.status)??"",patchText:h(n.patch_text)??e.body,changes:ze(n.changes)??[]};default:return}}function bde(e){let n="unsupported call:",t=e.trim();if(!t.toLowerCase().startsWith(n))return;let r=t.slice(n.length).trim();return`Codex emitted unsupported tool call: ${r===""?"unknown":r}`}function HL(e,n){if(n.length===0)return[...e];let t=VL(e),r=VL(n),o=new Set,i=r.map(d=>{let u=d.exactKey===void 0?-1:t.findIndex((l,p)=>!o.has(p)&&l.exactKey===d.exactKey);if(u>=0)return o.add(u),{kind:"read",readIndex:u};let c=d.semanticKey===void 0?-1:t.findIndex((l,p)=>!o.has(p)&&l.semanticKey===d.semanticKey);return c>=0?(o.add(c),{kind:"read",readIndex:c}):{kind:"session",raw:d.raw}}),s=[],a=0;for(let d of i)switch(d.kind){case"read":{for(;a<d.readIndex;){if(!o.has(a)){let c=t[a];c!==void 0&&s.push(c.raw)}a+=1}let u=t[d.readIndex];u!==void 0&&s.push(u.raw),a=Math.max(a,d.readIndex+1);break}case"session":s.push(d.raw);break}for(;a<t.length;){if(!o.has(a)){let d=t[a];d!==void 0&&s.push(d.raw)}a+=1}return s}function VL(e){return e.map((n,t)=>{let r=Nu(n,t).find(o=>o.body.trim()!=="");return r===void 0?{raw:n,exactKey:void 0,semanticKey:void 0}:{raw:n,exactKey:wde(r),semanticKey:vde(r)}})}function wde(e){return`${h(e.structured.kind)??""}:${e.itemKey}`}function vde(e){let n=h(e.structured.kind)??"";switch(n){case"codex_command_execution":return JSON.stringify([n,h(e.structured.command)??"",h(e.structured.cwd)??"",h(e.structured.output)??e.body]);case"codex_file_change":return JSON.stringify([n,h(e.structured.patch_text)??e.body]);case"codex_reasoning":return JSON.stringify([n,h(e.structured.content)??e.body]);case"codex_terminal_input":return JSON.stringify([n,h(e.structured.input_text)??e.body]);default:return JSON.stringify([n,e.body])}}function Wg(e){return G$(e)}function fS(e){return Z$(e)}function Sde(e){return new Promise(n=>{setTimeout(n,e)})}var pde,fde,Kg,_de,mS=F(()=>{"use strict";Cp();Kn();Bu();Tv();$g();Mn();nS();sS();lL();BL();Jg();pde=[1e3,5e3],fde=16;Kg=new Map([["function_call","function_call_output"],["custom_tool_call","custom_tool_call_output"]]),_de=new Set([...Kg.keys(),...Kg.values()])});import{execFile as kde}from"node:child_process";import{copyFileSync as ZL,existsSync as hS,mkdirSync as $p,readFileSync as QL,readdirSync as Lp,rmSync as GL,statSync as XL,writeFileSync as YL}from"node:fs";import{homedir as Cde}from"node:os";import{dirname as gS,join as _o,resolve as yS}from"node:path";import{promisify as Tde}from"node:util";function Dde(e=process.env){let n=e[Pde];if(n===void 0)return!0;let t=n.trim().toLowerCase();return!(t==="0"||t==="false"||t==="off")}function jp(e=process.env){let n=e.LINZUMI_GIT_SAFETY_SNAPSHOTS_DIR;return n!==void 0&&n.trim()!==""?yS(n):yS(Cde(),".linzumi","safety-snapshots")}async function Va(e,n){try{let{stdout:t,stderr:r}=await ej("git",[...n],{cwd:e,encoding:"utf8",timeout:nj,maxBuffer:67108864});return{ok:!0,stdout:t,stderr:r}}catch(t){let r=t;return{ok:!1,stdout:typeof r.stdout=="string"?r.stdout:"",stderr:typeof r.stderr=="string"?r.stderr:t instanceof Error?t.message:String(t)}}}function Mde(e){let n=e.split("\0"),t=[];for(let r=0;r<n.length;r+=1){let o=n[r];if(o===void 0||o.length<4)continue;let i=o.slice(0,2),s=o.slice(3);t.push({status:i,path:s}),(i.includes("R")||i.includes("C"))&&(r+=1)}return t}function Hg(e){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^[.-]+|[.-]+$/g,"");return n===""?"x":n}function Ade(e){let n=new Date(e.nowMs).toISOString().replace(/-|:|\..*$/g,"").replace("T","-"),t=Hg(e.threadId).slice(-12),r=Hg(e.turnRef).slice(-12);return`${n}-${t}-${r}`}function Ode(e){return`refs/linzumi/safety/${e}`}async function $de(e){let n=e.env??process.env;if(!Dde(n))return{kind:"disabled"};let t=Date.now(),r=()=>Date.now()-t,o=await Va(e.cwd,["status","--porcelain=v1","-z","--untracked-files=all"]);if(!o.ok)return o.stderr.toLowerCase().includes("not a git repository")?{kind:"not_git",durationMs:r()}:{kind:"error",message:`git status failed: ${o.stderr.trim()}`,durationMs:r()};let i=Mde(o.stdout);if(i.length===0)return{kind:"clean",durationMs:r()};try{let s=e.nowMs??t,a=Ade({threadId:e.threadId,turnRef:e.turnRef,nowMs:s}),d=e.snapshotsRoot??jp(n),u=_o(d,Hg(e.threadId),`${Hg(e.turnRef)}-${s}`),c=e.maxTotalBytes??Ide,l=i.filter(q=>q.status==="??").map(q=>q.path),p=i.filter(q=>q.status!=="??"&&q.status!=="!!").map(q=>q.path),m=await Va(e.cwd,["rev-parse","--show-toplevel"]),f=m.ok?m.stdout.trim():e.cwd,y=await Va(e.cwd,["branch","--show-current"]),_=y.ok&&y.stdout.trim()!==""?y.stdout.trim():void 0,w=await Va(e.cwd,["rev-parse","HEAD"]),S=w.ok?w.stdout.trim():void 0,v,b;if(p.length>0){let q=await Va(e.cwd,["stash","create",`linzumi safety snapshot ${a}`]),E=q.ok?q.stdout.trim():"";if(E!==""){v=E;let B=Ode(a);b=(await Va(e.cwd,["update-ref",B,E])).ok?B:void 0}}$p(u,{recursive:!0});let k=[],R=0,P=(q,E)=>{let B=_o(f,q),z=0;try{let W=XL(B);if(!W.isFile())return!1;if(z=W.size,R+z>c)return k.push({path:q,bytes:z,reason:"size_cap"}),!1;let Z=_o(u,E,q);return $p(gS(Z),{recursive:!0}),ZL(B,Z),R+=z,!0}catch{return k.push({path:q,bytes:z,reason:"copy_error"}),!1}},L=l.filter(q=>P(q,"untracked")),D=v===void 0&&p.length>0?p.filter(q=>P(q,"tracked")):[],j={version:1,id:a,createdAtMs:s,threadId:e.threadId,turnRef:e.turnRef,cwd:e.cwd,repoRoot:f,branch:_,headCommit:S,stashCommit:v,safetyRef:b,trackedPaths:p,untrackedPaths:L,trackedFallbackPaths:D,skippedFiles:k,copiedBytes:R,durationMs:r()};return YL(_o(u,"manifest.json"),`${JSON.stringify(j,null,2)}
559
+ `)}function xL(e){switch(h(e.type)){case"reasoning":return"reasoning";case"agentMessage":return"assistant";case"message":return h(e.role)==="assistant"?"assistant":void 0;case"commandExecution":return"commandOutput";case"terminalInput":return"terminalInput";case"fileChange":case"file_change":return"fileChange";case"web_search_call":case"webSearchCall":case"webSearch":return"webSearch";case"agentStatus":return"agentStatus";case"agentTaskUpdate":return"agentTaskUpdate";default:return}}function _L(e){return e.flatMap((n,t)=>{if(!Q(n))return[];let r=xL(n);return r===void 0||r==="webSearch"?[]:Nu(n,t).filter(o=>o.body.trim()!=="").map(o=>({snapshotIndex:t,itemId:h(n.id),streamKind:r,body:o.body,structured:o.structured}))})}function dS(e,n){let t=h(e.kind)??"codex_output";return{...e,item_id:n,transcript_unit_id:`${t}:${n}`}}function uS(e,n,t,r){if(t==="webSearch")return`local-codex-search-${pL("sha256").update(`${e}:${n}:web-search`).digest("hex").slice(0,32)}`;let o={assistant:"",reasoning:"reasoning:",commandOutput:"command:",fileChange:"file-change:",terminalInput:"terminal:",agentStatus:"agent-status:",agentTaskUpdate:"agent-task:"};return`local-codex-stream-${pL("sha256").update(`${e}:${n}:${o[t]}${r}`).digest("hex").slice(0,32)}`}function Ep(e){let n=A(e.turn),t=A(e.item),r=A(t?.turn);return h(n?.id)??h(e.turnId)??h(e.turn_id)??h(t?.turnId)??h(t?.turn_id)??h(r?.id)}var cS=F(()=>{"use strict";Cp();Kn();Mn()});function PL(e){return e!==void 0&&oae.has(e)}function uae(e){if(e===void 0)return;let n=h(e.type);if(n!=="mcpToolCall"&&n!=="dynamicToolCall"&&n!=="collabAgentToolCall"||h(e.status)!=="completed"||e.error!==void 0&&e.error!==null||e.success===!1)return;let t=h(e.tool)??"";return(t.split("__").pop()??t)===sae?"reply":"action"}function IL(e,n){let t=uae(n);t==="reply"?e.agentReplyToolCallSeen=!0:t==="action"&&(e.agentActionToolCallSeen=!0)}function lae(e){return`The model appears stuck in a loop - stopped after ${e} reasoning steps with no output or tool call (retry to try again).`}function pae(e){return e!=="reasoning"}function fae(e){return e!==void 0&&e.startsWith(RL)}function mae(e){for(let n of e){let t=EL(A(n));if(t!==void 0)return t}}function EL(e){if(e===void 0)return;let n=h(e.codex_protocol_failure_reason)??h(e.protocolFailureReason);if(n!==void 0)return n;let t=h(e.type);if(t!=="function_call_output"&&t!=="custom_tool_call_output")return;let r=h(e.output)??h(e.result)??h(e.text)??h(e.content),o=hae(r);return o===void 0?void 0:`${RL}: ${o}`}function hae(e){let n="unsupported call:";if(e===void 0)return;let t=e.trim();if(!t.toLowerCase().startsWith(n))return;let r=t.slice(n.length).trim();return r===""?"unknown":r}function DL(){return{phase:"running",turns:new Map,terminalTurnIds:new Set,bufferedTurns:new Map,consecutiveEmptyTurns:0,lastEmptyTurnCause:void 0,lastUpstreamErrorSummary:void 0,consecutiveIsolatedRejections:0,costCap402Seen:!1}}function ML(e,n,t){let r=[];return e.phase==="running"&&$ae(e,t,r),AL(e,n,t,r),r}function AL(e,n,t,r){if(n.source==="lifecycle"){wae(e,n.kind,n.reason,t,r);return}if(e.phase==="dead"){r.push(gn("pipeline.loop.event_after_death",{source:n.source}));return}if(e.phase==="closing"){r.push(gn("pipeline.loop.event_after_close",{source:n.source}));return}if(n.source==="snapshot"){let o=e.bufferedTurns.get(n.turnId);if(o!==void 0){o.push(n);return}Aae(e,n.turnId,n.snapshot,t,r);return}bae(e,n,t,r)}function _ae(e){return xae.has(e)}function bae(e,n,t,r){let o=n.notification.method,i=n.notification.params??{};if(o===Mp)return;if(o===Gu){Eae(e,i,t,r);return}if(!yae.has(o))return;let a=Ep(i)??Ug(e);if(a===void 0){r.push(gn("pipeline.loop.notification_without_turn",{method:o}));return}if(e.terminalTurnIds.has(a)){r.push(gn("pipeline.loop.notification_for_terminal_turn",{method:o,turn_id:a}));return}let d=e.turns.get(a);if(d===void 0){let l=t.sourceSeqForTurn(a);if(l===void 0){Oae(e,a,n,r);return}d=vae(e,a,l)}if(d.notificationCount+=1,_ae(o)&&(d.modelInteractionSeen=!0),o==="turn/started")return;if(o==="turn/completed"){Sae(d,r);return}let u=gae.get(o);if(u!==void 0){let l=Rae(o,i,d,{costCap402Seen:e.costCap402Seen,midStreamResumeAttemptAtMs:t.midStreamResumeAttemptAtMsForSeq?.(d.sourceSeq)});l.autoResumeMidStreamStall?r.push(gn("codex.mid_stream_stall_auto_resume_flagged",{thread_key:t.threadKey,turn_id:d.turnId,source_seq:d.sourceSeq,reason:Wu(i)})):l.midStreamResumeRateLimitSuppressed?r.push(gn("codex.mid_stream_stall_resume_suppressed_rate_limit",{thread_key:t.threadKey,turn_id:d.turnId,source_seq:d.sourceSeq,reason:Wu(i)})):l.midStreamResumeAttemptBurnedAtMs!==void 0&&r.push(gn("codex.mid_stream_stall_second_stall_after_resume",{thread_key:t.threadKey,turn_id:d.turnId,source_seq:d.sourceSeq,resume_attempt_at_ms:l.midStreamResumeAttemptBurnedAtMs,reason:Wu(i)})),l.autoRetryPreFirstByteStall?r.push(gn("codex.pre_first_byte_stall_auto_retry_flagged",{thread_key:t.threadKey,turn_id:d.turnId,source_seq:d.sourceSeq,reason:Wu(i),evidence_class:lS(d)})):l.costCapAutoRetrySuppressed&&r.push(gn("codex.pre_first_byte_stall_retry_suppressed_cost_cap",{thread_key:t.threadKey,turn_id:d.turnId,source_seq:d.sourceSeq,reason:Wu(i),flavor:i.midStreamResumableStall===!0?"mid_stream_resume":"pre_first_byte_retry"})),qg(e,d,u,Wu(i),r,t,u,l);return}if(o==="error"){d.errorNotificationCount+=1;let l=sde(i);l!==void 0&&(d.toolFatalSeen=!0,d.toolFatalDetail===void 0&&l!==""&&(d.toolFatalDetail=l),r.push(gn("codex.tool_fatal_captured",{turn_id:d.turnId,detail:l===""?null:l})));let p=Hae(i);p!==void 0&&(d.upstreamRejectedSeen=!0,d.upstreamRejectedDetail===void 0&&p!==""&&(d.upstreamRejectedDetail=p),r.push(gn("codex.upstream_rejection_captured",{turn_id:d.turnId,detail:p===""?null:p})));let m=Yae(i);m!==void 0&&(d.providerOutageFlaggedSeen=!0,d.providerOutageDetail===void 0&&m!==""&&(d.providerOutageDetail=m),r.push(gn("codex.provider_outage_flagged_captured",{turn_id:d.turnId,detail:m===""?null:m})));let f=Bg(i),y=jae(i);y!==void 0&&(d.edgeBlockEvidence=y),f!==void 0&&(d.lastUpstreamErrorHttpStatus===void 0||f>d.lastUpstreamErrorHttpStatus)&&(d.lastUpstreamErrorHttpStatus=f),f===402&&!e.costCap402Seen&&(e.costCap402Seen=!0,r.push(gn("codex.cost_cap_402_seen",{turn_id:d.turnId})));let _=Lae(i),w=!1;if(_!==void 0)d.lastUpstreamErrorReason=_,r.push(gn("codex.upstream_error_captured",{turn_id:d.turnId,reason:_}));else{let v=Ap(i);v!==void 0&&(d.lastErrorDiagnosticText=v,w=!0,r.push(gn("codex.error_without_http_status_captured",{turn_id:d.turnId,diagnostic_text:v})))}l===void 0&&p===void 0&&m===void 0&&f===void 0&&_===void 0&&!w&&(d.unattributedErrorNotificationCount+=1);let S=Vae(i);S!==void 0&&(d.lastUpstreamErrorSummary=S,e.lastUpstreamErrorSummary=S,r.push(gn("codex.upstream_turn_error_captured",{turn_id:d.turnId,upstream_error:S})));return}if(o==="item/completed"||o==="response_item"){Dae(d,i,t,r);return}let c=mL(o,i);if(c!==void 0){if(d.phase==="active"){if(pae(c.streamKind))d.reasoningStepsWithoutProgress=0;else if(d.reasoningStepsWithoutProgress+=1,d.reasoningStepsWithoutProgress>SL){let l=lae(d.reasoningStepsWithoutProgress);r.push(gn("codex.reasoning_loop_breaker_tripped",{thread_key:t.threadKey,turn_id:d.turnId,source_seq:d.sourceSeq,reasoning_steps_without_progress:d.reasoningStepsWithoutProgress,max_reasoning_steps_without_progress:SL})),qg(e,d,"failed",l,r,t,"interrupted");return}}FL(d,c,t,r)}}function wae(e,n,t,r,o){if(n==="codexDied"){if(e.phase==="dead")return;for(let i of[...e.turns.values()])qg(e,i,"failed",t,o,r,"interrupted");for(let[i,s]of e.bufferedTurns)o.push(gn("pipeline.loop.buffered_turn_dropped",{turn_id:i,buffered_event_count:s.length,reason:t})),o.push({type:"turnTerminal",turnId:i,outcome:"failed",reason:t}),Ng(e,i);e.bufferedTurns.clear(),e.phase="dead",o.push(gn("pipeline.loop.codex_died",{reason:t}));return}e.phase==="running"&&(e.phase="closing",o.push(gn("pipeline.loop.closing",{kind:n,reason:t})))}function vae(e,n,t){let r={turnId:n,sourceSeq:t,phase:"active",protocolFailureReason:void 0,lastUpstreamErrorReason:void 0,edgeBlockEvidence:void 0,lastErrorDiagnosticText:void 0,toolFatalSeen:!1,toolFatalDetail:void 0,upstreamRejectedSeen:!1,upstreamRejectedDetail:void 0,providerOutageFlaggedSeen:!1,providerOutageDetail:void 0,lastUpstreamErrorHttpStatus:void 0,lastUpstreamErrorSummary:void 0,errorNotificationCount:0,unattributedErrorNotificationCount:0,notificationCount:0,modelInteractionSeen:!1,reasoningStepsWithoutProgress:0,agentReplyToolCallSeen:!1,agentActionToolCallSeen:!1,items:[]};return e.turns.set(n,r),r}function Sae(e,n){if(e.phase==="completing"){n.push(gn("pipeline.loop.duplicate_turn_completed",{turn_id:e.turnId}));return}e.phase="completing",n.push({type:"requestSnapshot",turnId:e.turnId})}function OL(e){return e===429||e>=500&&e<=599?"transient":"deterministic"}function Cae(e){let n=$L.exec(e);return n!==null?OL(Number(n[1])):kae.test(e)?"transient":"deterministic"}function lS(e){let n=!1,t=e.upstreamRejectedSeen||e.providerOutageFlaggedSeen||e.toolFatalSeen||e.modelInteractionSeen||e.unattributedErrorNotificationCount>0,r=0;e.lastUpstreamErrorHttpStatus!==void 0&&(r+=1,OL(e.lastUpstreamErrorHttpStatus)==="transient"?n=!0:t=!0);for(let o of[e.lastUpstreamErrorReason,e.lastErrorDiagnosticText])o!==void 0&&(r+=1,Cae(o)==="transient"?n=!0:t=!0);return e.errorNotificationCount>r+e.unattributedErrorNotificationCount&&!e.upstreamRejectedSeen&&!e.providerOutageFlaggedSeen&&!e.toolFatalSeen&&(t=!0),t?"deterministic":n?"transient":"none"}function kL(e){if(e.lastUpstreamErrorHttpStatus===429)return!0;for(let n of[e.lastUpstreamErrorReason,e.lastErrorDiagnosticText]){if(n===void 0)continue;let t=$L.exec(n);if(t!==null&&Number(t[1])===429)return!0}return!1}function Pae(e){return` (An automatic resume was attempted at ${new Date(e).toISOString()} and the stream stalled again, so it will not be retried automatically.)`}function Iae(e){return` (An automatic resume was attempted at ${new Date(e).toISOString()} after the stream stalled; it did not complete.)`}function Rae(e,n,t,r={costCap402Seen:!1}){let o=e==="turn/failed"&&h(A(n.error)?.code)==="idle_stream_timeout",i=e==="turn/failed"&&n.retryable===!0,s=e==="turn/failed"&&yo(n.fate)?n.fate:void 0;if(!o)return{autoRetryPreFirstByteStall:!1,messageStateRetryable:i,costCapAutoRetrySuppressed:!1,messageStateFate:s,autoResumeMidStreamStall:!1,midStreamResumeRateLimitSuppressed:!1};let a=r.midStreamResumeAttemptAtMs,d=a!==void 0,u=lS(t)!=="deterministic",c=n.preFirstByteStall===!0&&u,l=n.midStreamResumableStall===!0,p=l&&kL(t),m=lS({...t,modelInteractionSeen:!1})!=="deterministic",f=l&&!d&&!p&&m,y=(c&&!d||f)&&r.costCap402Seen,_=c&&!d&&!y,w=f&&!y,S=l&&!d&&p;return{autoRetryPreFirstByteStall:_,messageStateRetryable:c||i,costCapAutoRetrySuppressed:y,messageStateFate:s??(kL(t)?"rate_limited":"transient_upstream"),autoResumeMidStreamStall:w,midStreamResumeRateLimitSuppressed:S,...d?{midStreamResumeAttemptBurnedAtMs:a}:{}}}function jL(e){return e>0?` (${e} automatic ${e===1?"retry":"retries"} did not help.)`:""}function qg(e,n,t,r,o,i,s=t,a={autoRetryPreFirstByteStall:!1,messageStateRetryable:!1,costCapAutoRetrySuppressed:!1,messageStateFate:void 0,autoResumeMidStreamStall:!1,midStreamResumeRateLimitSuppressed:!1}){let d=a.autoRetryPreFirstByteStall||a.costCapAutoRetrySuppressed?`${r}${jL(i.autoRetryAttemptsForSeq?.(n.sourceSeq)??0)}${a.costCapAutoRetrySuppressed?LL:""}`:r;if(a.midStreamResumeRateLimitSuppressed&&(d+=Tae),t==="failed")if(a.midStreamResumeAttemptBurnedAtMs!==void 0)d+=Pae(a.midStreamResumeAttemptBurnedAtMs);else{let u=i.midStreamResumeAttemptAtMsForSeq?.(n.sourceSeq);u!==void 0&&(d+=Iae(u))}for(let u of n.items){if(!u.posted||PL(u.emittedStreamState))continue;let c=Vu(u.wireItemKey,u.content,s);o.push({type:"enqueue",kind:It.finalizeRow,data:{...zg(i,n,u,c),stream_snapshot_index:Dp(u),terminal_outcome:t,reason:r},resolution:"must_ack"}),u.emittedStreamState=s,u.lastEmittedBody=c.body}o.push({type:"enqueue",kind:It.messageState,data:{thread_key:i.threadKey,turn_id:n.turnId,seq:n.sourceSeq,status:"failed",reason:d,...a.messageStateRetryable?{retryable:!0}:{},...a.messageStateFate===void 0?{}:{fate:a.messageStateFate},...(()=>{let u=a.messageStateFate===void 0?void 0:i.ladderHistoryForSeq?.(n.sourceSeq,a.messageStateFate);return u===void 0?{}:{ladder:u}})(),...(()=>{let u=n.lastUpstreamErrorSummary??e.lastUpstreamErrorSummary;return u===void 0?{}:{upstream_error:u}})()},resolution:"must_ack"}),o.push({type:"turnTerminal",turnId:n.turnId,outcome:t,reason:d,...a.autoRetryPreFirstByteStall?{retryableEmptyTurn:!0}:{},...a.autoResumeMidStreamStall?{autoResumeMidStreamStall:!0}:{},...a.messageStateFate===void 0?{}:{fate:a.messageStateFate}}),e.turns.delete(n.turnId),Ng(e,n.turnId)}function Eae(e,n,t,r){let o=h(n.turnId),i=h(n.reason)??"turn source-seq mapping failed";if(o===void 0||e.terminalTurnIds.has(o))return;let s=e.turns.get(o);if(s!==void 0){qg(e,s,"failed",i,r,t);return}let a=e.bufferedTurns.get(o);e.bufferedTurns.delete(o),r.push(gn("pipeline.loop.buffered_turn_failed",{level:"warn",turn_id:o,buffered_event_count:a?.length??0,reason:i})),r.push({type:"turnTerminal",turnId:o,outcome:"failed",reason:i}),Ng(e,o)}function FL(e,n,t,r){if(e.phase!=="active"){r.push(gn("pipeline.loop.delta_for_completing_turn",{turn_id:e.turnId,stream_kind:n.streamKind}));return}let o=zL(e,n.streamKind,n.itemId,t);if(o.completed){r.push(gn("pipeline.loop.delta_for_completed_item",{turn_id:e.turnId,item_key:o.itemKey}));return}o.content=gL(o.content,n);let i=o.nextDeltaIndex;o.nextDeltaIndex+=1;let s=n.streamKind==="terminalInput"?"completed":"streaming";qL(e,o,i,s,t,r)}function Dae(e,n,t,r){let o=A(n.item);o!==void 0&&(e.protocolFailureReason??=EL(o)),IL(e,o??n);let i=yL(n);if(i===void 0)return;if(i.streamKind==="webSearch"){FL(e,{streamKind:"webSearch",itemId:i.itemId,queries:i.content.streamKind==="webSearch"?i.content.queries:[]},t,r);return}if(e.phase!=="active"){r.push(gn("pipeline.loop.item_completed_for_completing_turn",{turn_id:e.turnId,stream_kind:i.streamKind}));return}let s=zL(e,i.streamKind,i.itemId,t,{adoptOpenIdLess:!0});if(s.completed&&!Mae(s,i))return;s.content=i.content,s.completed=!0;let a=Vu(s.wireItemKey,s.content,"streaming");s.posted&&a.body===s.lastEmittedBody||qL(e,s,Math.max(s.nextDeltaIndex-1,0),"streaming",t,r)}function Mae(e,n){return e.identity.streamKind!==n.streamKind?!1:n.streamKind==="agentStatus"||n.streamKind==="agentTaskUpdate"}function qL(e,n,t,r,o,i){let s=Vu(n.wireItemKey,n.content,r);if(!n.posted){if(s.body.trim()==="")return;i.push({type:"enqueue",kind:It.postStreamedRow,data:{...zg(o,e,n,s),delta_index:t,stream_snapshot_index:Dp(n)},resolution:"must_ack"}),n.posted=!0,n.emittedStreamState=r,n.lastEmittedBody=s.body,r==="completed"&&(n.completed=!0);return}i.push({type:"enqueue",kind:It.streamSnapshot,data:{...zg(o,e,n,s),delta_index:t,stream_snapshot_index:Dp(n)},coalesceKey:n.itemKey,resolution:"must_ack"}),n.emittedStreamState=r,n.lastEmittedBody=s.body}function zL(e,n,t,r,o={adoptOpenIdLess:!1}){if(n==="webSearch")return e.items.find(s=>s.identity.streamKind==="webSearch")??CL(e,"webSearch",`web-search:${e.turnId}`,r);if(t!==void 0){let s=e.items.find(a=>a.identity.streamKind===n&&a.identity.itemId===t);if(s!==void 0)return s}let i=e.items.find(s=>s.identity.streamKind===n&&s.identity.itemId===void 0&&!s.completed);return t===void 0&&i!==void 0||t!==void 0&&o.adoptOpenIdLess&&i!==void 0?i:CL(e,n,t,r)}function CL(e,n,t,r){let o={turnId:e.turnId,itemId:t,itemIndex:e.items.length,streamKind:n},i=X$(o),s=t??i,a={identity:o,itemKey:i,wireItemKey:s,clientMessageId:uS(r.instanceId,e.turnId,n,s),content:hL(n),posted:!1,completed:!1,emittedStreamState:void 0,lastEmittedBody:void 0,nextDeltaIndex:0,nextStreamSnapshotIndex:1};return e.items.push(a),a}function Aae(e,n,t,r,o){if(e.terminalTurnIds.has(n)){o.push(gn("pipeline.loop.duplicate_snapshot",{turn_id:n}));return}let i=e.turns.get(n);if(i===void 0){o.push(gn("pipeline.loop.snapshot_for_unknown_turn",{turn_id:n}));return}if(i.phase!=="completing"){o.push(gn("pipeline.loop.snapshot_for_active_turn",{turn_id:n}));return}let s=Array.isArray(t.items)?t.items:[];i.protocolFailureReason??=mae(s);for(let Y of s)IL(i,A(Y));let a=_L(s),d=new Set,u=new Map;a.forEach((Y,ie)=>{if(Y.itemId===void 0)return;let Fe=i.items.find(ae=>ae.posted&&!d.has(ae.itemKey)&&ae.identity.streamKind===Y.streamKind&&ae.identity.itemId===Y.itemId);Fe!==void 0&&(d.add(Fe.itemKey),u.set(ie,Fe))});let c=new Map;for(let Y of i.items)Y.posted&&!d.has(Y.itemKey)&&Y.identity.itemId===void 0&&c.set(Y.identity.streamKind,(c.get(Y.identity.streamKind)??0)+1);let l=new Map;a.forEach((Y,ie)=>{u.has(ie)||l.set(Y.streamKind,(l.get(Y.streamKind)??0)+1)});let p=(Y,ie)=>{let Fe=Vu(Y.wireItemKey,Y.content,"completed").body.trim(),ae=ie.body.trim();return ae.startsWith(Fe)||Fe.startsWith(ae)};a.forEach((Y,ie)=>{if(u.has(ie))return;let Fe=l.get(Y.streamKind)===c.get(Y.streamKind);if(Y.itemId!==void 0&&!Fe)return;let ae=i.items.find(Ce=>Ce.posted&&!d.has(Ce.itemKey)&&Ce.identity.streamKind===Y.streamKind&&Ce.identity.itemId===void 0);ae!==void 0&&(Y.itemId!==void 0&&!p(ae,Y)||(d.add(ae.itemKey),u.set(ie,ae)))});for(let Y of i.items){let ie=[...u.entries()].find(([,ae])=>ae.itemKey===Y.itemKey);if(ie!==void 0){let ae=a[ie[0]];if(ae===void 0)continue;o.push({type:"enqueue",kind:It.finalizeRow,data:{thread_key:r.threadKey,turn_id:i.turnId,item_key:Y.itemKey,item_id:Y.wireItemKey,stream_kind:Y.identity.streamKind,item_index:Y.identity.itemIndex,source_seq:i.sourceSeq,client_message_id:Y.clientMessageId,body:ae.body,structured:dS(ae.structured,Y.wireItemKey),stream_snapshot_index:Dp(Y),terminal_outcome:"completed"},resolution:"must_ack"}),Y.emittedStreamState="completed",Y.lastEmittedBody=ae.body;continue}if(!Y.posted||PL(Y.emittedStreamState))continue;let Fe=Vu(Y.wireItemKey,Y.content,"completed");o.push({type:"enqueue",kind:It.finalizeRow,data:{...zg(r,i,Y,Fe),stream_snapshot_index:Dp(Y),terminal_outcome:"completed"},resolution:"must_ack"}),Y.emittedStreamState="completed",Y.lastEmittedBody=Fe.body}a.forEach((Y,ie)=>{if(u.has(ie))return;let Fe=Y.itemId??`${i.turnId}:${Y.streamKind}:snapshot:${Y.snapshotIndex}`;o.push({type:"enqueue",kind:It.postCompletedRow,data:{thread_key:r.threadKey,turn_id:i.turnId,item_key:`${i.turnId}:${Y.streamKind}:${Y.itemId??`snapshot:${Y.snapshotIndex}`}`,item_id:Fe,stream_kind:Y.streamKind,snapshot_index:Y.snapshotIndex,source_seq:i.sourceSeq,client_message_id:uS(r.instanceId,i.turnId,Y.streamKind,Fe),body:Y.body,structured:dS(Y.structured,Fe),stream_snapshot_index:1},resolution:"must_ack"})});let m=i.items.some(Y=>Y.identity.streamKind==="assistant"&&Y.posted)||a.some(Y=>Y.streamKind==="assistant"),f=i.agentActionToolCallSeen||i.items.some(Y=>Y.posted&&wL.has(Y.identity.streamKind))||a.some(Y=>wL.has(Y.streamKind)),y=r.linzumiAgentSession===!0&&m&&!i.agentReplyToolCallSeen&&!f,_=m&&!y,w=i.protocolFailureReason,S=w!==void 0&&fae(w)&&_,v=S?void 0:w,b=!_&&w===void 0&&i.lastUpstreamErrorReason===void 0?y?{cause:dae}:ade(i,a.length,i.lastUpstreamErrorSummary??e.lastUpstreamErrorSummary):void 0,k=!_&&v===void 0&&i.upstreamRejectedSeen,R=!_&&v===void 0&&i.providerOutageFlaggedSeen,P=qae(i.lastUpstreamErrorHttpStatus),L=!_&&v===void 0&&i.edgeBlockEvidence!==void 0,D=k&&!R&&!P,j=R||D?tde({providerOutageFlagged:R,priorConsecutiveIsolatedRejections:e.consecutiveIsolatedRejections,stormDetail:i.providerOutageDetail,rejectionDetail:i.upstreamRejectedDetail}):void 0,q=j?.kind==="isolated_retry";D?e.consecutiveIsolatedRejections+=1:e.consecutiveIsolatedRejections=0;let E=!_&&v===void 0&&i.lastUpstreamErrorReason===void 0&&i.lastErrorDiagnosticText===void 0&&!k&&Fae(i.lastUpstreamErrorHttpStatus),B=!_&&v===void 0&&i.lastUpstreamErrorReason===void 0&&P,z=!_&&v===void 0&&i.lastUpstreamErrorReason===void 0&&!k&&!E&&!B&&i.toolFatalSeen,W=j!==void 0?j.reason:B?zae(i.lastUpstreamErrorHttpStatus,i.upstreamRejectedDetail??i.lastErrorDiagnosticText):E?Nae(i.lastUpstreamErrorHttpStatus):z?Uae(i.toolFatalDetail):i.lastUpstreamErrorReason??(y?aae:b===void 0?bL:`${bL} [${b.cause}]`),Z=b!==void 0&&v===void 0&&i.modelInteractionSeen&&i.lastErrorDiagnosticText===void 0&&!k&&!E&&!B&&!z;Z?(e.consecutiveEmptyTurns+=1,e.lastEmptyTurnCause=b?.cause):(e.consecutiveEmptyTurns=0,e.lastEmptyTurnCause=void 0);let fe=Z&&e.consecutiveEmptyTurns>vL,Ee=Z&&!fe||q,_e=r.autoRetryAttemptsForSeq?.(i.sourceSeq)??0,be=Ee&&e.costCap402Seen&&_e<xo,Re=Ee&&!be;L&&o.push(gn("codex.edge_blocked_captured",{thread_key:r.threadKey,turn_id:i.turnId,source_seq:i.sourceSeq,http_status:i.edgeBlockEvidence?.status,signature:i.edgeBlockEvidence?.signature}));let Ae=fe?`${cae} (${e.consecutiveEmptyTurns} in a row${b===void 0?"":`: ${b.cause}`}).`:void 0,I=v??(_?void 0:Ae??W),K=I===void 0?void 0:`${I}${jL(Z&&!fe?_e:0)}${be?LL:""}`,re=b!==void 0&&!fe&&!k&&!E&&!B&&!z||q||L,pe=re||R?"transient_upstream":E?i.lastUpstreamErrorHttpStatus===void 0?"transient_upstream":z$(i.lastUpstreamErrorHttpStatus):"deterministic";be&&o.push(gn("codex.empty_turn_auto_retry_suppressed_cost_cap",{thread_key:r.threadKey,turn_id:i.turnId,source_seq:i.sourceSeq,reason:I??null,isolated_rejection_retry_suppressed:q})),fe&&o.push(gn("codex.empty_turn_loop_guard_tripped",{thread_key:r.threadKey,turn_id:i.turnId,source_seq:i.sourceSeq,consecutive_empty_turns:e.consecutiveEmptyTurns,max_consecutive_empty_turns:vL,cause:b?.cause??null,last_upstream_error:i.lastUpstreamErrorSummary??e.lastUpstreamErrorSummary??null})),S?o.push(gn("codex.turn_completed_with_unsupported_tool_call_ignored",{thread_key:r.threadKey,turn_id:i.turnId,source_seq:i.sourceSeq,reason:w})):w!==void 0&&o.push(gn("codex.turn_completed_with_protocol_failure",{thread_key:r.threadKey,turn_id:i.turnId,source_seq:i.sourceSeq,reason:w})),y&&o.push(gn("codex.agent_turn_narration_only_no_reply",{thread_key:r.threadKey,turn_id:i.turnId,source_seq:i.sourceSeq,streamed_item_count:i.items.length,snapshot_item_count:a.length,agent_reply_tool_call_seen:i.agentReplyToolCallSeen,agent_action_tool_call_seen:i.agentActionToolCallSeen,retryable_empty_turn:re,empty_turn_loop_guard_tripped:fe})),m||o.push(gn("codex.turn_completed_without_assistant_output",{thread_key:r.threadKey,turn_id:i.turnId,source_seq:i.sourceSeq,streamed_item_count:i.items.length,snapshot_item_count:a.length,notification_count:i.notificationCount,error_notification_count:i.errorNotificationCount,model_interaction_seen:i.modelInteractionSeen,last_error_diagnostic_text:i.lastErrorDiagnosticText??null,last_upstream_error_reason:i.lastUpstreamErrorReason??null,last_upstream_error_summary:i.lastUpstreamErrorSummary??null,empty_turn_cause:b?.cause??null,tool_fatal_seen:z,tool_fatal_detail:i.toolFatalDetail??null,upstream_rejected_seen:k,upstream_rejected_detail:i.upstreamRejectedDetail??null,upstream_terminal_4xx:B,last_upstream_error_http_status:i.lastUpstreamErrorHttpStatus??null,provider_outage_flagged:R,isolated_rejection_retry_granted:q,rejection_disposition:j?.kind??null,consecutive_isolated_rejections:e.consecutiveIsolatedRejections,retryable_empty_turn:re,empty_turn_loop_guard_tripped:fe,cost_cap_auto_retry_suppressed:be})),o.push({type:"enqueue",kind:It.messageState,data:{thread_key:r.threadKey,turn_id:i.turnId,seq:i.sourceSeq,...K===void 0?{status:"processed"}:{status:"failed",reason:K,...re?{retryable:!0}:{},fate:pe,...(()=>{let Y=r.ladderHistoryForSeq?.(i.sourceSeq,pe);return Y===void 0?{}:{ladder:Y}})(),...L?{failure_class:"edge_blocked"}:{},...(()=>{let Y=i.lastUpstreamErrorSummary??e.lastUpstreamErrorSummary;return Y===void 0?{}:{upstream_error:Y}})()}},resolution:"must_ack"}),K===void 0&&(e.lastUpstreamErrorSummary=void 0),o.push(K===void 0?{type:"turnTerminal",turnId:i.turnId,outcome:"completed"}:{type:"turnTerminal",turnId:i.turnId,outcome:"failed",reason:K,...Re?{retryableEmptyTurn:!0}:{},fate:pe}),e.turns.delete(i.turnId),Ng(e,i.turnId)}function Oae(e,n,t,r){let o=e.bufferedTurns.get(n);if(o===void 0){e.bufferedTurns.set(n,[t]),r.push(gn("pipeline.loop.turn_events_buffered",{turn_id:n}));return}o.push(t)}function $ae(e,n,t){for(let r of[...e.bufferedTurns.keys()]){if(n.sourceSeqForTurn(r)===void 0)continue;let o=e.bufferedTurns.get(r)??[];e.bufferedTurns.delete(r),t.push(gn("pipeline.loop.buffered_turn_drained",{turn_id:r,buffered_event_count:o.length}));for(let i of o)AL(e,i,n,t)}}function Ng(e,n){for(e.terminalTurnIds.delete(n),e.terminalTurnIds.add(n);e.terminalTurnIds.size>iae;){let t=e.terminalTurnIds.values().next().value;if(t===void 0)return;e.terminalTurnIds.delete(t)}}function Ug(e){let n=[...e.turns.values()].filter(t=>t.phase==="active");return n.length===1?n[0]?.turnId:void 0}function zg(e,n,t,r){return{thread_key:e.threadKey,turn_id:n.turnId,item_key:t.itemKey,item_id:t.wireItemKey,stream_kind:t.identity.streamKind,item_index:t.identity.itemIndex,source_seq:n.sourceSeq,client_message_id:t.clientMessageId,body:r.body,structured:r.structured}}function Dp(e){let n=e.nextStreamSnapshotIndex;return e.nextStreamSnapshotIndex+=1,n}function Wu(e){return h(e.reason)??h(e.message)??h(A(e.error)?.message)??h(e.error)??"codex_turn_aborted"}function Lae(e){let n=h(e.diagnostic_summary)??h(A(A(e.diagnostic_payload)?.error)?.message);if(n===void 0)return;let t=n.replace(/<[^>]*>/g," ").replace(/data:[^"' )]+/g,"").replace(/\s+/g," ").trim().slice(0,180);if(t.length===0)return;let r=Bg(e);return r===void 0?`Model gateway error: ${t}`:`Model gateway error (HTTP ${r}): ${t}`}function Bg(e){let n=A(A(e.diagnostic_payload)?.error),t=A(n?.codexErrorInfo),o=[A(t?.responseStreamDisconnected)?.httpStatusCode,t?.httpStatusCode,t?.statusCode,t?.status,n?.httpStatusCode,n?.statusCode,n?.status];for(let i of o)if(typeof i=="number"&&Number.isFinite(i))return i}function jae(e){let n=Bg(e);if(n!==401&&n!==403)return;let t=A(A(e.diagnostic_payload)?.error),r=[h(e.diagnostic_summary),h(t?.message),h(e.message)].find(i=>i!==void 0&&/(?:<!doctype\s+html|<html(?:\s|>))/i.test(i)&&/cloudflare|cf-ray|\bblocked\b|access denied|\bchallenge\b|attention required/i.test(i));if(r===void 0)return;let o=/cloudflare|cf-ray/i.test(r)?"cloudflare":/\bblocked\b|access denied/i.test(r)?"blocked":/attention required/i.test(r)?"attention_required":"challenge";return{status:n,signature:o}}function Fae(e){return e===void 0?!1:e===402||e===408||e===425||e===429||e>=500&&e<=599}function qae(e){return e===void 0||e<400||e>499?!1:e!==402&&e!==408&&e!==425&&e!==429}function zae(e,n){let t="the model provider rejected this request as invalid (a retry sends the same request and fails the same way, so it was not retried; check the selected model / request and send again).",r=e===void 0?`Model provider rejected this request: ${t}`:`Model provider rejected this request (HTTP ${e}): ${t}`,o=typeof n=="string"?n.trim():"";return o===""?r:`${r} Upstream said: ${o}`}function Nae(e){let n="the model provider returned no usable response this turn (retrying will not help until it recovers).";return e===void 0?`Model upstream unavailable: ${n}`:`Model upstream unavailable (HTTP ${e}): ${n}`}function Uae(e){let n="The agent run was cut off by a tool failure and produced no response (retrying will hit the same failure until the underlying tool call is fixed).",t=typeof e=="string"?e.trim():"";return t===""?`Tool execution failed: ${n}`:`Tool execution failed (${t}): ${n}`}function Ap(e){let n=A(A(e.diagnostic_payload)?.error),t=h(e.message)??h(e.reason)??h(A(e.error)?.message)??h(e.error)??h(e.diagnostic)??h(n?.message)??h(A(n?.error)?.message);if(t===void 0)return;let r=t.replace(/<[^>]*>/g," ").replace(/data:[^"' )]+/g,"").replace(/\s+/g," ").trim().slice(0,180);return r.length===0?void 0:r}function Hu(e){if(e===void 0)return;let n=e.replace(/<[^>]*>/g," ").replace(/data:[^"' )]+/g,"").replace(/\s+/g," ").trim().slice(0,180);return n.length===0?void 0:n}function Vae(e){let n=A(e.error),t=A(A(e.diagnostic_payload)?.error),r=A(t?.error),o=Bg(e),i=h(n?.type)??h(n?.code)??h(t?.type)??h(t?.code)??h(r?.type)??h(r?.code)??TL(n?.codexErrorInfo)??TL(t?.codexErrorInfo),s=Hu(h(n?.message))??Hu(h(r?.message))??Hu(h(t?.message))??Ap(e);if(o===void 0&&i===void 0){let u=zs(h(n?.message))??zs(h(r?.message))??zs(h(t?.message))??zs(h(e.message))??zs(h(e.reason))??zs(h(e.error))??zs(h(e.diagnostic))??zs(h(e.diagnostic_summary));u!==void 0&&(o=u.status,i=u.errorType,s=Hu(u.message)??s)}let a=[o===void 0?void 0:String(o),i?.trim()===""?void 0:i?.trim()].filter(u=>u!==void 0).join(" "),d=a===""?s:s===void 0?a:`${a}: ${s}`;if(!(d===void 0||d===""))return d.slice(0,Kae)}function TL(e){if(typeof e=="string"&&e.trim()!=="")return e;let n=A(e);if(n===void 0)return;let t=Object.keys(n);return t.length===1?t[0]:void 0}function zs(e){if(e===void 0)return;let n=e.indexOf("{");if(n===-1)return;let t=Fa(e.slice(n))??Fa(e.slice(n,e.lastIndexOf("}")+1));if(t===void 0||h(t.type)!=="error")return;let r=A(t.error);if(r===void 0)return;let o=t.status;return{status:typeof o=="number"&&Number.isFinite(o)?o:void 0,errorType:h(r.type)??h(r.code),message:h(r.message)}}function Wae(e){let n=A(A(e.diagnostic_payload)?.error),t=A(n?.error),r=A(e.error),o=[{code:h(n?.code),message:h(n?.message)},{code:h(n?.type),message:h(n?.message)},{code:h(t?.code),message:h(t?.message)},{code:h(t?.type),message:h(t?.message)},{code:h(r?.code),message:h(r?.message)},{code:h(r?.type),message:h(r?.message)},{code:h(e.code),message:h(e.message)},{code:h(e.type),message:h(e.message)}];for(let i of o){let s=i.code?.trim();if(s!==void 0&&s!==""&&Bae.test(s))return{codeOrType:s,message:i.message}}}function Hae(e){let n=Wae(e),t=Ap(e),r=t!==void 0&&Jae.test(t);return n===void 0&&!r?void 0:Hu(n?.message)??t??""}function Gae(e){let n="the model provider rejected this request and produced no response (retrying will hit the same rejection until the request is changed).",t=typeof e=="string"?e.trim():"";return t===""?`The model request was rejected: ${n}`:`The model request was rejected (${t}): ${n}`}function Yae(e){let n=A(A(e.diagnostic_payload)?.error),t=A(n?.error),r=A(e.error),o=[h(n?.code),h(n?.type),h(t?.code),h(t?.type),h(r?.code),h(r?.type),h(e.code),h(e.type)],i=[h(n?.message),h(t?.message),h(r?.message),h(e.message),h(e.reason)];if(o.some(a=>{let d=a?.trim();return d!==void 0&&d!==""&&Qae.test(d)})){for(let a of i){let d=Hu(a);if(d!==void 0&&Xae.test(d))return d}return Ap(e)??""}}function ede(e){let n=typeof e=="string"?e.trim():"";return n===""?"The model provider is currently rejecting requests / experiencing an outage. Your message was NOT processed. Please retry later, or switch to a different model.":n}function nde(e){let n="the model provider rejected this request and produced no response (a one-off retry did not help).",t=typeof e=="string"?e.trim():"";return t===""?`The model request was rejected: ${n}`:`The model request was rejected (${t}): ${n}`}function tde(e){return e.providerOutageFlagged?{kind:"storm",retryable:!1,reason:ede(e.stormDetail)}:e.priorConsecutiveIsolatedRejections<Zae?{kind:"isolated_retry",retryable:!0,reason:Gae(e.rejectionDetail)}:{kind:"isolated_terminal",retryable:!1,reason:nde(e.rejectionDetail)}}function ide(e){return rde.test(e)||ode.test(e)}function sde(e){let n=h(e.kind)??h(e.type)??h(A(e.error)?.kind)??h(A(e.error)?.type),t=typeof n=="string"&&/(tool.*fatal|fatal.*tool|response[._]failed|tool_failure)/i.test(n),r=Ap(e),o=r!==void 0&&ide(r);if(!(!t&&!o))return r??""}function ade(e,n,t){let r=t===void 0?"":` (last upstream error: ${t})`;return e.lastErrorDiagnosticText!==void 0?{cause:`codex error without HTTP status: ${e.lastErrorDiagnosticText}`}:e.modelInteractionSeen?{cause:`model returned no assistant output: ${e.items.length} streamed items, ${n} snapshot items${r}`}:{cause:`codex never called the model: 0 model interactions, ${e.notificationCount} notifications, ${e.errorNotificationCount} errors${r}`}}function gn(e,n){return{type:"log",event:e,fields:n}}var oae,Mp,Gu,iae,xo,bL,sae,aae,dae,wL,vL,cae,SL,RL,gae,yae,xae,kae,$L,Tae,LL,Bae,Jae,Kae,Zae,Qae,Xae,rde,ode,Jg=F(()=>{"use strict";Kn();Bu();nS();cS();oae=new Set(["completed","failed","interrupted"]);Mp="pipeline/turnMappingReady",Gu="pipeline/turnMappingFailed",iae=512,xo=2,bL="Codex completed without producing a response.",sae="linzumi_agent_reply",aae="The agent ended its turn after narrating an intent without posting a reply or taking any action.",dae="agent narrated intent but posted no reply and took no action",wL=new Set(["commandOutput","fileChange","terminalInput","agentStatus","agentTaskUpdate"]);vL=3,cae="Stopped after repeated empty responses in a row",SL=64;RL="Codex emitted unsupported tool call";gae=new Map([["turn/failed","failed"],["turn/aborted","interrupted"],["turn/canceled","interrupted"],["turn/cancelled","interrupted"]]),yae=new Set(["turn/started","turn/completed","turn/failed","turn/aborted","turn/canceled","turn/cancelled","error","item/agentMessage/delta","item/reasoning/textDelta","item/commandExecution/outputDelta","command/exec/outputDelta","item/fileChange/outputDelta","item/commandExecution/terminalInteraction","item/started","item/completed","response_item"]),xae=new Set(["item/agentMessage/delta","item/reasoning/textDelta","item/commandExecution/outputDelta","command/exec/outputDelta","item/fileChange/outputDelta","item/commandExecution/terminalInteraction","item/started","item/completed","response_item"]);kae=/upstream model stream stalled/i,$L=/\(HTTP (\d{3})\)/;Tae=" (An automatic resume was not attempted: the upstream reported a rate limit (HTTP 429) during this turn, and an automatic resume would burn straight into it. Retry once the rate limit clears.)";LL=" (Automatic retries are paused: this session hit your Linzumi cost cap (HTTP 402), and an automatic retry must never spend past it. Retry manually when your budget allows.)";Bae=/^(?:model_request_rejected|invalid_request_error|invalid_request|request_rejected|content_policy_violation|content_filter|input_validation_error)$/i,Jae=/\bmodel request was rejected\b|\bmodel_request_rejected\b/i;Kae=300;Zae=1,Qae=/^provider_outage$/i,Xae=/rejecting requests|experiencing an outage|provider outage/i;rde=/\bapply_patch\b[^]*\bincompatible\b|\bin-flight tool future\b[^]*\bfail/i,ode=/\btools::router\b[^]*\bfatal\b|\bresponse\.failed\b/i});function NL(e){return e===void 0?[]:[...e.values()].map(n=>({...n}))}function UL(e){let n=DL(),t={threadKey:e.threadKey,instanceId:e.instanceId,sourceSeqForTurn:e.sourceSeqForTurn,autoRetryAttemptsForSeq:e.autoRetryAttemptsForSeq,midStreamResumeAttemptAtMsForSeq:e.midStreamResumeAttemptAtMsForSeq,ladderHistoryForSeq:e.ladderHistoryForSeq,linzumiAgentSession:e.linzumiAgentSession===!0},r=[],o=e.now??(()=>Date.now()),i=new Map,s=new Map,a=new Map,d=new Map,u=new Set,c=e.bufferedTurnMaxAgeMs??dde,l=e.bufferedTurnMaxEvents??ude,p=e.bufferedTurnSweepIntervalMs??cde,m=!1,f=!0,y,_=(D,j)=>{try{e.log(D,j)}catch{}},w=D=>{switch(D.type){case"enqueue":e.outbox.enqueue({kind:D.kind,data:D.data,...D.coalesceKey===void 0?{}:{coalesceKey:D.coalesceKey},resolution:D.resolution});return;case"requestSnapshot":e.requestSnapshot(D.turnId);return;case"turnTerminal":e.onTurnTerminal(D.turnId,D.outcome,D.reason,D.retryableEmptyTurn,D.autoResumeMidStreamStall,D.fate);return;case"log":_(D.event,D.fields);return}},S=()=>{for(let D of n.turns.keys())i.has(D)||i.set(D,o());for(let D of[...i.keys()])n.turns.has(D)||i.delete(D);for(let D of n.bufferedTurns.keys())s.has(D)||s.set(D,o());for(let D of[...s.keys()])n.bufferedTurns.has(D)||(s.delete(D),u.delete(D));for(let D of[...a.keys()])!n.turns.has(D)&&!n.bufferedTurns.has(D)&&a.delete(D);for(let D of[...d.keys()])!n.turns.has(D)&&!n.bufferedTurns.has(D)&&d.delete(D)},v=(D,j)=>{!n.turns.has(D)&&!n.bufferedTurns.has(D)||a.set(D,{atMs:o(),kind:j})},b=D=>{if(D.source!=="codex")return;let j=D.notification.method;if(j===Mp||j===Gu)return;let q=Ep(D.notification.params??{})??Ug(n);q!==void 0&&v(q,j)},k=D=>{if(D.source!=="codex")return;let j=D.notification.method;if(j!=="item/started"&&j!=="item/completed"&&j!=="response_item")return;let q=D.notification.params??{},E=Ep(q)??Ug(n);if(E===void 0||!n.turns.has(E)&&!n.bufferedTurns.has(E))return;let B=Fg(q);if(B===void 0||B==="")return;if(j!=="item/started"){d.get(E)?.delete(B);return}let z=h(A(q.item)?.type);if(z===void 0||!lde.has(z))return;let W=d.get(E);W===void 0&&(W=new Map,d.set(E,W)),W.set(B,{kind:z,startedAtMs:o()})},R=()=>{if(!f||n.phase!=="running")return!1;let D=o(),j=!1;for(let[q,E]of n.bufferedTurns){if(u.has(q))continue;let B=D-(s.get(q)??D),z=B>c,W=E.length>l;!z&&!W||(u.add(q),_("pipeline.loop.buffered_turn_overdue",{level:"warn",thread_key:e.threadKey,turn_id:q,buffered_event_count:E.length,age_ms:B,max_age_ms:c,max_events:l}),r.push({source:"codex",notification:{method:Gu,params:{turnId:q,reason:W?`turn source mapping never arrived (${E.length} buffered events exceeded the ${l} cap)`:`turn source mapping never arrived within ${c}ms`}}}),j=!0)}return j},P=()=>{if(!m){m=!0;try{for(;r.length>0;){let D=r.shift();if(D===void 0)continue;let j;try{j=ML(n,D,t)}catch(q){_("pipeline.loop.event_processing_failed",{thread_key:e.threadKey,source:D.source,message:q instanceof Error?q.message:String(q)});continue}S(),b(D),k(D);for(let q of j)try{w(q)}catch(E){_("pipeline.loop.effect_failed",{thread_key:e.threadKey,effect:q.type,message:E instanceof Error?E.message:String(E)})}R()}}finally{m=!1}}},L=p>0?setInterval(()=>{R()&&P()},p):void 0;return L?.unref?.(),{submit:D=>{try{if(!f){_("pipeline.loop.event_after_drain",{thread_key:e.threadKey,source:D.source});return}r.push(D),P()}catch(j){_("pipeline.loop.submit_failed",{thread_key:e.threadKey,message:j instanceof Error?j.message:String(j)})}},metrics:()=>({queueDepth:r.length,phase:n.phase,activeTurns:[...n.turns.values()].map(D=>({turnId:D.turnId,sourceSeq:D.sourceSeq,startedAtMs:i.get(D.turnId)??o(),lastActivityAtMs:a.get(D.turnId)?.atMs,lastActivityKind:a.get(D.turnId)?.kind,openItems:NL(d.get(D.turnId))})),bufferedTurns:[...n.bufferedTurns.entries()].map(([D,j])=>({turnId:D,bufferedEventCount:j.length,firstBufferedAtMs:s.get(D)??o(),lastActivityAtMs:a.get(D)?.atMs,lastActivityKind:a.get(D)?.kind,openItems:NL(d.get(D))}))}),noteTurnActivity:(D,j)=>{try{v(D,j)}catch(q){_("pipeline.loop.note_activity_failed",{thread_key:e.threadKey,message:q instanceof Error?q.message:String(q)})}},drainAndClose:D=>(y===void 0&&(y=(async()=>{f=!1,L!==void 0&&clearInterval(L),await Promise.resolve(),P();try{await e.outbox.flush(D)}catch(j){_("pipeline.loop.drain_flush_failed",{thread_key:e.threadKey,message:j instanceof Error?j.message:String(j)})}})()),y)}}var dde,ude,cde,lde,BL=F(()=>{"use strict";Kn();cS();Jg();dde=10*6e4,ude=1e4,cde=3e4,lde=new Set(["commandExecution","terminalInput","mcpToolCall","dynamicToolCall","collabAgentToolCall"])});function Vg(e){let n=xde(e),t=uL({threadKey:e.threadKey,push:e.push,builders:n,...e.persistDir===void 0?{}:{persistDir:e.persistDir},...e.outboxRetryDelaysMs===void 0?{}:{retryDelaysMs:[...e.outboxRetryDelaysMs]},maxInFlightPushes:e.outboxMaxInFlightPushes??fde,...e.journalRecoveryMaxAgeMs===void 0?{}:{journalRecoveryMaxAgeMs:e.journalRecoveryMaxAgeMs},isRetryBudgetExempt:fS,onPermanentFailure:(d,u)=>{e.log("pipeline.outbox_entry_failed",{thread_key:e.threadKey,entry_seq:d.entrySeq,kind:d.kind,attempts:d.attempts,item_key:h(d.data.item_key)??null,turn_id:h(d.data.turn_id)??null,message:u.message})},log:e.log}),r,o={...t,enqueue:d=>{if(d.kind===It.messageState){let u=h(d.data.turn_id);if(u!==void 0&&e.isRecoveredTurn?.(u)===!0)return t.enqueue({...d,data:{...d.data,suppress_terminal_for_recovered_turn:!0}})}if(yde(d.kind)){let u=X(d.data.source_seq),c=A(d.data.local_runner_runtime_metadata)??e.runtimeMetadataForSourceSeq?.(u);if(c!==void 0)return t.enqueue({...d,data:{...d.data,local_runner_runtime_metadata:c}})}return t.enqueue(d)}},i=async d=>{let u=e.snapshotRetryDelaysMs??pde;for(let c=0;;c+=1)try{let l=await e.resolveSnapshot(d);r.submit({source:"snapshot",turnId:d,snapshot:{items:[...l.items]}});return}catch(l){let p=l instanceof Error?l.message:String(l),m=u[c];if(e.log("pipeline.snapshot_resolution_failed",{thread_key:e.threadKey,turn_id:d,attempt:c+1,retry_in_ms:m??null,message:p}),m===void 0){r.submit({source:"codex",notification:{method:"turn/failed",params:{turnId:d,reason:`completion snapshot resolution failed: ${p}`}}});return}await Sde(m)}};r=UL({threadKey:e.threadKey,outbox:o,sourceSeqForTurn:e.sourceSeqForTurn,autoRetryAttemptsForSeq:e.autoRetryAttemptsForSeq,midStreamResumeAttemptAtMsForSeq:e.midStreamResumeAttemptAtMsForSeq,ladderHistoryForSeq:e.ladderHistoryForSeq,onTurnTerminal:e.onTurnTerminal,requestSnapshot:d=>{i(d).catch(u=>{e.log("pipeline.snapshot_request_failed",{thread_key:e.threadKey,turn_id:d,message:u instanceof Error?u.message:String(u)})})},instanceId:e.instanceId,log:e.log,linzumiAgentSession:e.linzumiAgentSession===!0});let s=cL({threadKey:e.threadKey,outboxMetrics:()=>t.metrics(),loopMetrics:()=>r.metrics(),log:e.log,intervalMs:e.statsIntervalMs,turnStalledThresholdMs:e.turnStalledThresholdMs,turnWaitStates:e.turnWaitStates}),a;return{submitNotification:(d,u)=>{r.submit({source:"codex",notification:{method:d,params:u}})},notifyTurnMappingReady:d=>{r.submit({source:"codex",notification:{method:Mp,params:{turnId:d}}})},notifyTurnMappingFailed:(d,u)=>{r.submit({source:"codex",notification:{method:Gu,params:{turnId:d,reason:u}}})},noteTurnActivity:(d,u)=>{r.noteTurnActivity(d,u)},submitLifecycle:(d,u)=>{r.submit({source:"lifecycle",kind:d,reason:u})},pause:()=>{t.pause()},resume:()=>{t.resume()},rebindThreadKey:d=>{t.rekeyJournal(d)},flushOutbox:d=>t.flush(d),metrics:()=>t.metrics(),close:d=>(a===void 0&&(a=(async()=>{s.stop(),r.submit({source:"lifecycle",kind:"shutdown",reason:"session closed"}),await r.drainAndClose(d),await t.close(d)})()),a)}}function JL(e){let n=mg(e);return n===void 0?{}:{traceparent:n}}function mde(e){return{...h(e.turn_id)===void 0?{}:{turn_id:h(e.turn_id)},...h(e.item_key)===void 0?{}:{item_key:h(e.item_key)},...X(e.delta_index)===void 0?{}:{delta_index:X(e.delta_index)},...X(e.stream_snapshot_index)===void 0?{}:{stream_snapshot_index:X(e.stream_snapshot_index)}}}function hde(e){return typeof e.body=="string"?e.body:""}function gde(e){return A(e.structured)??{}}function yde(e){return e===It.postStreamedRow||e===It.streamSnapshot||e===It.finalizeRow||e===It.postCompletedRow}function xde(e){let n={build:r=>{let o=e.wire();if(o.kandanThreadId===void 0||o.codexThreadId===void 0)return{skip:!0,reason:"session_thread_unbound"};let i=h(r.client_message_id);if(i===void 0)return{skip:!0,reason:"missing_client_message_id"};let s=h(r.turn_id),a=X(r.source_seq),d={...s===void 0?{}:{turn_id:s},stream_key:i},u={...d,...A(r.local_runner_runtime_metadata)??{}};return{event:"session:stream_thread_message",payload:{workspace:o.workspaceSlug,channel:o.channelSlug,thread_id:o.kandanThreadId,stream_key:i,...o.leaseEpoch===void 0?{}:{lease_epoch:o.leaseEpoch},body:hde(r),payload:{...e.runnerPayload("codex_output",o.codexThreadId,a,u),...o.rootSeq===void 0?{}:{reply_to_seq:o.rootSeq},...a===void 0?{}:{source_message_seq:a},...d,structured:{...gde(r),stream_key:i}},client_message_id:i,...mde(r),...JL(o.kandanThreadId)}}}},t={build:r=>{let o=e.wire();if(o.kandanThreadId===void 0)return{skip:!0,reason:"session_thread_unbound"};let i=X(r.seq),s=h(r.status);if(i===void 0||s===void 0)return{skip:!0,reason:"malformed_message_state_entry"};let a=h(r.turn_id);return r.suppress_terminal_for_recovered_turn===!0||a!==void 0&&e.isRecoveredTurn?.(a)===!0?{skip:!0,reason:"terminal_for_recovered_turn"}:{event:"message_state",payload:{workspace:o.workspaceSlug,channel:o.channelSlug,thread_id:o.kandanThreadId,instance_id:e.instanceId,...o.codexThreadId===void 0?{}:{codex_thread_id:o.codexThreadId},seq:i,status:s,...h(r.reason)===void 0?{}:{reason:h(r.reason)},...r.retryable===!0?{retryable:!0}:{},...yo(r.fate)?{fate:r.fate}:{},...A(r.ladder)===void 0?{}:{ladder:A(r.ladder)},...r.failure_class==="edge_blocked"?{failure_class:"edge_blocked"}:{},...h(r.upstream_error)===void 0?{}:{upstream_error:h(r.upstream_error)},...h(r.turn_id)===void 0?{}:{turn_id:h(r.turn_id)},...o.leaseEpoch===void 0?{}:{lease_epoch:o.leaseEpoch},...JL(o.kandanThreadId)}}}};return{[It.postStreamedRow]:n,[It.streamSnapshot]:n,[It.finalizeRow]:n,[It.postCompletedRow]:n,[It.messageState]:t}}function WL(e,n){if("error"in e)return[];let t=A(A(e.result)?.thread),o=(ze(t?.turns)??[]).filter(Q).find(i=>i.id===n);return(ze(o?.items)??[]).filter(Q)}function pS(e){if(!e.some(t=>_de.has(h(t.type)??"")))return[...e];let n=new Set;return e.forEach(t=>{let r=Kg.get(h(t.type)??"");if(r===void 0)return;let o=h(t.call_id);if(o===void 0)return;let i=e.findIndex((s,a)=>!n.has(a)&&h(s.type)===r&&h(s.call_id)===o);i>=0&&n.add(i)}),e.flatMap((t,r)=>{let o=h(t.type)??"",i=Kg.get(o);if(i!==void 0){let s=h(t.call_id),a=s===void 0?void 0:e.find(d=>h(d.type)===i&&h(d.call_id)===s);return Kv(a===void 0?[t]:[t,a]).flatMap(d=>{let u=KL(d);return u===void 0?[]:[u]})}return o==="function_call_output"||o==="custom_tool_call_output"?n.has(r)?[]:Kv([t]).flatMap(s=>{let a=KL(s);return a===void 0?[]:[a]}):[t]})}function KL(e){let n=e.structured,t=/^item-\d+$/.test(e.itemKey)?void 0:e.itemKey,r=t===void 0?{}:{id:t},o=typeof n.output=="string"?n.output:"";switch(h(n.kind)){case"codex_command_execution":{let i=bde(o);return{type:"commandExecution",...r,...i===void 0?{}:{codex_protocol_failure_reason:i},command:h(n.command)??"command",...h(n.tool_name)===void 0?{}:{toolName:h(n.tool_name)},cwd:h(n.cwd)??"",status:h(n.status)??"",...h(n.process_id)===void 0||h(n.process_id)===""?{}:{processId:h(n.process_id)},aggregatedOutput:o}}case"codex_file_change":return{type:"fileChange",...r,status:h(n.status)??"",patchText:h(n.patch_text)??e.body,changes:ze(n.changes)??[]};default:return}}function bde(e){let n="unsupported call:",t=e.trim();if(!t.toLowerCase().startsWith(n))return;let r=t.slice(n.length).trim();return`Codex emitted unsupported tool call: ${r===""?"unknown":r}`}function HL(e,n){if(n.length===0)return[...e];let t=VL(e),r=VL(n),o=new Set,i=r.map(d=>{let u=d.exactKey===void 0?-1:t.findIndex((l,p)=>!o.has(p)&&l.exactKey===d.exactKey);if(u>=0)return o.add(u),{kind:"read",readIndex:u};let c=d.semanticKey===void 0?-1:t.findIndex((l,p)=>!o.has(p)&&l.semanticKey===d.semanticKey);return c>=0?(o.add(c),{kind:"read",readIndex:c}):{kind:"session",raw:d.raw}}),s=[],a=0;for(let d of i)switch(d.kind){case"read":{for(;a<d.readIndex;){if(!o.has(a)){let c=t[a];c!==void 0&&s.push(c.raw)}a+=1}let u=t[d.readIndex];u!==void 0&&s.push(u.raw),a=Math.max(a,d.readIndex+1);break}case"session":s.push(d.raw);break}for(;a<t.length;){if(!o.has(a)){let d=t[a];d!==void 0&&s.push(d.raw)}a+=1}return s}function VL(e){return e.map((n,t)=>{let r=Nu(n,t).find(o=>o.body.trim()!=="");return r===void 0?{raw:n,exactKey:void 0,semanticKey:void 0}:{raw:n,exactKey:wde(r),semanticKey:vde(r)}})}function wde(e){return`${h(e.structured.kind)??""}:${e.itemKey}`}function vde(e){let n=h(e.structured.kind)??"";switch(n){case"codex_command_execution":return JSON.stringify([n,h(e.structured.command)??"",h(e.structured.cwd)??"",h(e.structured.output)??e.body]);case"codex_file_change":return JSON.stringify([n,h(e.structured.patch_text)??e.body]);case"codex_reasoning":return JSON.stringify([n,h(e.structured.content)??e.body]);case"codex_terminal_input":return JSON.stringify([n,h(e.structured.input_text)??e.body]);default:return JSON.stringify([n,e.body])}}function Wg(e){return G$(e)}function fS(e){return Z$(e)}function Sde(e){return new Promise(n=>{setTimeout(n,e)})}var pde,fde,Kg,_de,mS=F(()=>{"use strict";Cp();Kn();Bu();Tv();$g();Mn();nS();sS();lL();BL();Jg();pde=[1e3,5e3],fde=16;Kg=new Map([["function_call","function_call_output"],["custom_tool_call","custom_tool_call_output"]]),_de=new Set([...Kg.keys(),...Kg.values()])});import{execFile as kde}from"node:child_process";import{copyFileSync as ZL,existsSync as hS,mkdirSync as $p,readFileSync as QL,readdirSync as Lp,rmSync as GL,statSync as XL,writeFileSync as YL}from"node:fs";import{homedir as Cde}from"node:os";import{dirname as gS,join as _o,resolve as yS}from"node:path";import{promisify as Tde}from"node:util";function Dde(e=process.env){let n=e[Pde];if(n===void 0)return!0;let t=n.trim().toLowerCase();return!(t==="0"||t==="false"||t==="off")}function jp(e=process.env){let n=e.LINZUMI_GIT_SAFETY_SNAPSHOTS_DIR;return n!==void 0&&n.trim()!==""?yS(n):yS(Cde(),".linzumi","safety-snapshots")}async function Va(e,n){try{let{stdout:t,stderr:r}=await ej("git",[...n],{cwd:e,encoding:"utf8",timeout:nj,maxBuffer:67108864});return{ok:!0,stdout:t,stderr:r}}catch(t){let r=t;return{ok:!1,stdout:typeof r.stdout=="string"?r.stdout:"",stderr:typeof r.stderr=="string"?r.stderr:t instanceof Error?t.message:String(t)}}}function Mde(e){let n=e.split("\0"),t=[];for(let r=0;r<n.length;r+=1){let o=n[r];if(o===void 0||o.length<4)continue;let i=o.slice(0,2),s=o.slice(3);t.push({status:i,path:s}),(i.includes("R")||i.includes("C"))&&(r+=1)}return t}function Hg(e){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^[.-]+|[.-]+$/g,"");return n===""?"x":n}function Ade(e){let n=new Date(e.nowMs).toISOString().replace(/-|:|\..*$/g,"").replace("T","-"),t=Hg(e.threadId).slice(-12),r=Hg(e.turnRef).slice(-12);return`${n}-${t}-${r}`}function Ode(e){return`refs/linzumi/safety/${e}`}async function $de(e){let n=e.env??process.env;if(!Dde(n))return{kind:"disabled"};let t=Date.now(),r=()=>Date.now()-t,o=await Va(e.cwd,["status","--porcelain=v1","-z","--untracked-files=all"]);if(!o.ok)return o.stderr.toLowerCase().includes("not a git repository")?{kind:"not_git",durationMs:r()}:{kind:"error",message:`git status failed: ${o.stderr.trim()}`,durationMs:r()};let i=Mde(o.stdout);if(i.length===0)return{kind:"clean",durationMs:r()};try{let s=e.nowMs??t,a=Ade({threadId:e.threadId,turnRef:e.turnRef,nowMs:s}),d=e.snapshotsRoot??jp(n),u=_o(d,Hg(e.threadId),`${Hg(e.turnRef)}-${s}`),c=e.maxTotalBytes??Ide,l=i.filter(q=>q.status==="??").map(q=>q.path),p=i.filter(q=>q.status!=="??"&&q.status!=="!!").map(q=>q.path),m=await Va(e.cwd,["rev-parse","--show-toplevel"]),f=m.ok?m.stdout.trim():e.cwd,y=await Va(e.cwd,["branch","--show-current"]),_=y.ok&&y.stdout.trim()!==""?y.stdout.trim():void 0,w=await Va(e.cwd,["rev-parse","HEAD"]),S=w.ok?w.stdout.trim():void 0,v,b;if(p.length>0){let q=await Va(e.cwd,["stash","create",`linzumi safety snapshot ${a}`]),E=q.ok?q.stdout.trim():"";if(E!==""){v=E;let B=Ode(a);b=(await Va(e.cwd,["update-ref",B,E])).ok?B:void 0}}$p(u,{recursive:!0});let k=[],R=0,P=(q,E)=>{let B=_o(f,q),z=0;try{let W=XL(B);if(!W.isFile())return!1;if(z=W.size,R+z>c)return k.push({path:q,bytes:z,reason:"size_cap"}),!1;let Z=_o(u,E,q);return $p(gS(Z),{recursive:!0}),ZL(B,Z),R+=z,!0}catch{return k.push({path:q,bytes:z,reason:"copy_error"}),!1}},L=l.filter(q=>P(q,"untracked")),D=v===void 0&&p.length>0?p.filter(q=>P(q,"tracked")):[],j={version:1,id:a,createdAtMs:s,threadId:e.threadId,turnRef:e.turnRef,cwd:e.cwd,repoRoot:f,branch:_,headCommit:S,stashCommit:v,safetyRef:b,trackedPaths:p,untrackedPaths:L,trackedFallbackPaths:D,skippedFiles:k,copiedBytes:R,durationMs:r()};return YL(_o(u,"manifest.json"),`${JSON.stringify(j,null,2)}
560
560
  `),{kind:"snapshot",manifest:j,snapshotDir:u}}catch(s){return{kind:"error",message:s instanceof Error?s.message:String(s),durationMs:r()}}}function Gg(e){let n=[],t;try{t=Lp(e)}catch{return[]}for(let r of t){let o=_o(e,r),i;try{i=Lp(o)}catch{continue}for(let s of i){let a=_o(o,s);try{let d=JSON.parse(QL(_o(a,"manifest.json"),"utf8"));d.version===1&&typeof d.id=="string"&&n.push({manifest:d,snapshotDir:a})}catch{}}}return n.sort((r,o)=>o.manifest.createdAtMs-r.manifest.createdAtMs)}async function tj(e){let{manifest:n,snapshotDir:t}=e.snapshot,r=yS(e.toDir);if(hS(r)&&Lp(r).length>0)throw new Error(`refusing to restore into non-empty directory: ${r} (recovery never clobbers existing state)`);$p(r,{recursive:!0});let o=[];for(let a of n.untrackedPaths){let d=_o(t,"untracked",a);if(!hS(d))continue;let u=_o(r,a);$p(gS(u),{recursive:!0}),ZL(d,u),o.push(a)}let i=[],s=[];for(let a of n.trackedPaths){let d;if(n.stashCommit!==void 0)try{let{stdout:c}=await ej("git",["show",`${n.stashCommit}:${a}`],{cwd:n.repoRoot,encoding:"buffer",timeout:nj,maxBuffer:536870912});d=c}catch{d=void 0}if(d===void 0){let c=_o(t,"tracked",a);hS(c)&&(d=QL(c))}if(d===void 0){s.push(a);continue}let u=_o(r,a);$p(gS(u),{recursive:!0}),YL(u,d),i.push(a)}return{restoredDir:r,restoredTracked:i,restoredUntracked:o,missingTracked:s,stashCommit:n.stashCommit,safetyRef:n.safetyRef}}async function rj(e){let n=e.nowMs??Date.now(),t=e.maxAgeMs??Rde,r=e.maxCount??Ede,o=Gg(e.snapshotsRoot),i=o.filter(l=>n-l.manifest.createdAtMs>t),a=o.filter(l=>n-l.manifest.createdAtMs<=t).slice(r),d=[...i,...a],u=[],c=[];for(let l of d){let{manifest:p,snapshotDir:m}=l;p.safetyRef!==void 0&&p.stashCommit!==void 0&&(await Va(p.repoRoot,["update-ref","-d",p.safetyRef,p.stashCommit])).ok&&c.push(p.safetyRef);try{GL(m,{recursive:!0,force:!0}),u.push(m)}catch{}}try{for(let l of Lp(e.snapshotsRoot)){let p=_o(e.snapshotsRoot,l);try{XL(p).isDirectory()&&Lp(p).length===0&&GL(p,{recursive:!0,force:!0})}catch{}}}catch{}return{removedSnapshotDirs:u,removedRefs:c}}function jde(e){return Lde.some(n=>n.test(e))}function qde(e,n){if(wi.delete(e),wi.size>=Fde){let t=wi.keys().next().value;t!==void 0&&wi.delete(t)}wi.set(e,n)}async function Fp(e){try{let n=await $de({cwd:e.cwd,threadId:e.threadKey,turnRef:e.turnRef,snapshotsRoot:e.snapshotsRoot,env:e.env});switch(n.kind){case"snapshot":{qde(e.threadKey,{manifest:n.manifest,destructiveCommand:void 0}),e.log("git_safety.snapshot_captured",{thread_key:e.threadKey,turn_ref:e.turnRef,snapshot_id:n.manifest.id,stash_commit:n.manifest.stashCommit??null,safety_ref:n.manifest.safetyRef??null,tracked_paths:n.manifest.trackedPaths.length,untracked_paths:n.manifest.untrackedPaths.length,copied_bytes:n.manifest.copiedBytes,skipped_files:n.manifest.skippedFiles.length,duration_ms:n.manifest.durationMs});for(let t of n.manifest.skippedFiles)e.log("git_safety.snapshot_file_skipped",{thread_key:e.threadKey,snapshot_id:n.manifest.id,path:t.path,bytes:t.bytes,reason:t.reason});break}case"error":wi.delete(e.threadKey),e.log("git_safety.snapshot_failed",{thread_key:e.threadKey,turn_ref:e.turnRef,cwd:e.cwd,message:n.message,duration_ms:n.durationMs});break;case"clean":case"not_git":case"disabled":wi.delete(e.threadKey);break}return n}catch(n){e.log("git_safety.snapshot_failed",{thread_key:e.threadKey,turn_ref:e.turnRef,cwd:e.cwd,message:n instanceof Error?n.message:String(n)});return}}function Zg(e,n){let t=wi.get(e);t!==void 0&&t.destructiveCommand===void 0&&jde(n)&&(t.destructiveCommand=n)}function zde(e){let n=e.stashCommit===void 0?"":` Tracked changes are also directly recoverable with \`git stash apply ${e.stashCommit}\`.`;return`This turn ran destructive git commands on a working tree that had uncommitted changes. Linzumi saved a safety snapshot of those changes on this computer before the turn started: \`${e.id}\`. Restore a copy (into a fresh directory, never overwriting current files) with \`linzumi safety-snapshots restore ${e.id}\` (or \`npx -y @linzumi/cli safety-snapshots restore ${e.id}\` if linzumi is not on PATH).${n}`}function Nde(e){let n=wi.get(e);if(!(n===void 0||n.destructiveCommand===void 0))return wi.delete(e),{body:zde(n.manifest),clientMessageId:`git-safety-snapshot-${n.manifest.id}`,snapshotId:n.manifest.id}}async function Qg(e){let n=Nde(e.threadKey);if(n!==void 0)try{await e.push("session:post_thread_message",{workspace:e.workspace,channel:e.channel,thread_id:e.threadId,body:n.body,client_message_id:n.clientMessageId,payload:{metadata:{local_codex_runner:{event_type:"git_safety_snapshot_notice"}}}}),e.log("git_safety.snapshot_notice_posted",{thread_id:e.threadId,snapshot_id:n.snapshotId})}catch(t){e.log("git_safety.snapshot_notice_post_failed",{thread_id:e.threadId,snapshot_id:n.snapshotId,message:t instanceof Error?t.message:String(t)})}}var ej,Pde,Ide,Rde,Ede,nj,Op,Lde,wi,Fde,Xg=F(()=>{"use strict";ej=Tde(kde),Pde="LINZUMI_GIT_SAFETY_SNAPSHOTS",Ide=200*1024*1024,Rde=4320*60*1e3,Ede=50,nj=3e4;Op=String.raw`\bgit\s+(?:-[Cc]\s+\S+\s+|-\S+\s+)*`,Lde=[new RegExp(`${Op}restore\\b`),new RegExp(`${Op}checkout\\b[^\\n;|&]*(\\s--(\\s|$)|\\s-f\\b|\\s\\.(\\s|$))`),new RegExp(`${Op}reset\\b[^\\n;|&]*--(hard|merge|keep)\\b`),new RegExp(`${Op}clean\\b`),new RegExp(`${Op}stash\\s+(drop|clear|pop)\\b`),/\brm\s+(-[A-Za-z]*f[A-Za-z]*)\b/];wi=new Map,Fde=500});function Yg(e){return Array.isArray(e)?e:typeof e=="string"&&e.trim()!==""?[{type:"text",text:e.trim()}]:[]}function ey(e){if(typeof e=="string"){let t=e.trim();return t===""?void 0:t}if(!Array.isArray(e))return;let n=e.flatMap(t=>{if(typeof t!="object"||t===null||Array.isArray(t))return[];let r=t,o=typeof r.text=="string"?r.text:typeof r.content=="string"?r.content:void 0;return o===void 0?[]:[o]}).join(`
561
561
 
562
562
  `).trim();return n===""?void 0:n}function Wa(e){return e.fusedSeqs===void 0||e.fusedSeqs.length===0?[e.seq]:e.fusedSeqs}function Ude(e){let n=e.actorSlug===void 0||e.actorSlug.trim()===""?"unknown":e.actorSlug.trim(),t=e.actorUserId===void 0?"unknown":e.actorUserId.toString();return[`Kandan message seq=${e.seq} from ${n} (user_id=${t}):`,"",e.body].join(`
@@ -646,10 +646,10 @@ $ ${r}
646
646
  `)){let i=o.trim();if(i.startsWith("p")){t=Number(i.slice(1)),r=void 0;continue}if(i.startsWith("c")){r=i.slice(1);continue}if(!i.startsWith("n")||t===void 0)continue;let s=Fue(i.slice(1));s!==void 0&&n.push({pid:t,port:s,command:r??"unknown"})}return n}function Xj(e){let n=new Map,t;for(let r of e.split(`
647
647
  `)){let o=r.trim();if(o.startsWith("p")){t=Number(o.slice(1));continue}if(o.startsWith("n")&&t!==void 0){let i=o.slice(1).trim();i!==""&&n.set(t,i)}}return n}function Fue(e){let n=e.match(/:(\d+)(?:\s|\(|$)/);if(n===null)return;let t=Number(n[1]);return Number.isInteger(t)?t:void 0}function hy(e){return e instanceof Error?e:new Error(String(e))}async function que(e,n){let t,r=e();r.catch(()=>{});try{return await Promise.race([r,new Promise((o,i)=>{t=setTimeout(()=>i(new Error(`port scan exceeded its ${n}ms budget (probe never settled)`)),n)})])}finally{t!==void 0&&clearTimeout(t)}}var Eue,Due,Mue,Aue,Wj,Oue,$ue,JS=F(()=>{"use strict";Eue=1e3,Due=[5e3,3e4],Mue=2e4,Aue=3e4;Oue=5e3,$ue=1024});import{basename as zue}from"node:path";function ec(e){if(e.rootPid===void 0)throw new Error("port_forward_watcher_root_pid_missing");if(!Number.isInteger(e.rootPid)||e.rootPid<=0)throw new Error("port_forward_watcher_root_pid_invalid");let n=e.rootPid,t=e.debounceMs??Nue,r=e.lostDebounceMs??(e.intervalMs??1e3)*2+t,o=e.nowMs??Date.now,i=Wue(e.commanderBoundPids??[]),s=KS(e.commanderBoundPorts??[]),a=KS(e.watchPorts??[]),d=()=>{let b;try{b=e.extraWatchPorts?.()}catch{b=void 0}return b===void 0||b.length===0?a:new Set([...a,...KS(b)])},u,c=b=>(u?.processRows!==b&&(u={processRows:b,value:d()}),u.value),l=new Map,p=new Map,m=new Map,f,y=b=>(f?.processRows!==b&&(f={processRows:b,value:new Set([...Kue(b,n),...i])}),f.value),_=(b,k)=>{let R=y(b),P=c(b);return k.filter(L=>R.has(L.pid)||s.has(L.port)||P.has(L.port)).map(L=>L.pid)},w=async b=>{let k=b.listenSockets,R=y(b.processRows),P=Vue(k,R,b.processCwds,i,s,c(b.processRows)),L=new Set(P.map(z=>z.port)),D=new Set(k.map(z=>`${z.pid}:${z.port}`)),j=Array.from(p.values()).filter(z=>!L.has(z.port)&&D.has(`${z.pid}:${z.port}`)),q=o(),E=Jue(l,[...P,...j],q,t),B=Bue(p,m,E.stableCandidates,q,r);l.clear(),p.clear(),m.clear();for(let[z,W]of E.nextObservedByPort)l.set(z,W);for(let[z,W]of B.nextObservedByPort)p.set(z,W);for(let[z,W]of B.nextMissingByPort)m.set(z,W);e.onListenersObserved?.(Array.from(p.values()).filter(z=>D.has(`${z.pid}:${z.port}`)));for(let z of B.lostCandidates)await e.onCandidateLost?.(z);for(let z of B.changedCandidates)await e.onCandidate(z)},v=(e.scheduler??Uue(e)).subscribe({candidatePids:_,deliver:w,onError:b=>{e.onError?.(b)},onBackoff:b=>{e.onError?.(new Error(`port_scan_backoff: ${b.consecutiveFailures} consecutive scan failures, interval now ${b.intervalMs}ms (port detection degraded, best-effort; runner unaffected): ${b.error.message}`))},onRecovered:b=>{e.onError?.(new Error(`port_scan_recovered: scanning healthy again after ${b.failedScans} failed scans; normal interval restored`))}});return{close:()=>v.unsubscribe()}}function Uue(e){if(!(e.scanProcesses!==void 0||e.scanListenSockets!==void 0||e.scanProcessCwds!==void 0||e.intervalMs!==void 0||e.nowMs!==void 0))return Gj();let t=e.scanProcesses,r=e.scanListenSockets,o=e.scanProcessCwds;return BS({...e.intervalMs===void 0?{}:{intervalMs:e.intervalMs},...e.nowMs===void 0?{}:{nowMs:e.nowMs},probes:{...t===void 0?{}:{scanProcesses:()=>t()},...r===void 0?{}:{scanListenSockets:()=>r()},...o===void 0?{}:{scanProcessCwds:i=>o(i)}}})}function Bue(e,n,t,r,o){let i=new Map,s=new Map,a=[],d=[];for(let u of t){i.set(u.port,u);let c=e.get(u.port);(c===void 0||!qr(c,u))&&a.push(u)}for(let u of e.values()){if(i.has(u.port))continue;let c=n.get(u.port),l=c!==void 0&&qr(c.candidate,u)?c.firstMissingAtMs:r;if(o<=0||r-l>=o){d.push(u);continue}i.set(u.port,u),s.set(u.port,{candidate:u,firstMissingAtMs:l})}return{nextObservedByPort:i,nextMissingByPort:s,changedCandidates:a,lostCandidates:d}}function Jue(e,n,t,r){let o=new Map,i=[];for(let s of n){let a=e.get(s.port),d=a!==void 0&&qr(a.candidate,s)?a.firstSeenAtMs:t,u={candidate:s,firstSeenAtMs:d};o.set(s.port,u),(r<=0||t-d>=r)&&i.push(s)}return{nextObservedByPort:o,stableCandidates:i}}function qr(e,n){return e.port===n.port&&e.pid===n.pid&&Yj(e.portKind)===Yj(n.portKind)}function Kue(e,n){let t=new Map;for(let i of e){let s=t.get(i.ppid);s===void 0?t.set(i.ppid,[i.pid]):s.push(i.pid)}let r=new Set,o=[...t.get(n)??[]];for(;o.length>0;){let i=o.shift();i===void 0||r.has(i)||(r.add(i),o.push(...t.get(i)??[]))}return r}function Vue(e,n,t=new Map,r=new Set,o=new Set,i=new Set){return e.filter(s=>n.has(s.pid)||o.has(s.port)||i.has(s.port)).filter(s=>s.port>0&&s.port<65536).sort((s,a)=>s.port-a.port).map(s=>{let a=t.get(s.pid),d=r.size===0&&o.size===0?void 0:r.has(s.pid)||o.has(s.port)?"commander_bound":"descendant";return{port:s.port,pid:s.pid,command:s.command,...d===void 0?{}:{portKind:d},...a===void 0?{}:{cwd:a}}})}function Wue(e){return new Set(e.filter(n=>Number.isInteger(n)&&n>0))}function KS(e){return new Set(e.filter(n=>Number.isInteger(n)&&n>0&&n<65536))}function Yj(e){return e??"descendant"}function eF(e){let n=e.trim();return n===""?"unknown":zue(n.split(/\s+/)[0]??n)}var Nue,gy=F(()=>{"use strict";JS();JS();Nue=750});function ef(e){if(!e.threadBound)return{type:"skip",reason:"thread_not_bound"};if(e.approvedPorts.has(e.candidate.port)){let t=e.approvedTargets.get(e.candidate.port);return t===void 0?{type:"remember_approved_target",target:e.candidate}:qr(t,e.candidate)?{type:"skip",reason:"already_approved"}:{type:"revoke_and_prompt",revoked:t,candidate:e.candidate,reason:"listener_changed"}}let n=e.pendingRequests.find(t=>t.port===e.candidate.port);return n!==void 0?qr(mr(n),e.candidate)?{type:"skip",reason:"already_pending"}:{type:"replace_pending",expired:n,candidate:e.candidate,reason:"listener_changed"}:{type:"prompt",candidate:e.candidate}}function nc(e){return{requestId:e.requestId,port:e.candidate.port,pid:e.candidate.pid,command:e.candidate.command,...e.candidate.portKind===void 0?{}:{portKind:e.candidate.portKind},...e.candidate.cwd===void 0?{}:{cwd:e.candidate.cwd},sourceSeq:e.sourceSeq}}function mr(e){return{port:e.port,pid:e.pid,command:e.command,...e.portKind===void 0?{}:{portKind:e.portKind},...e.cwd===void 0?{}:{cwd:e.cwd}}}function nf(e){return eF(e.command)}function yy(e){return[`Port ${e.port}`,`PID ${e.pid}`,`command: ${e.command}`,...e.cwd===void 0?[]:[`cwd: ${e.cwd}`],"preview protocols: HTTP, HTTPS, WebSocket"].join(" / ")}function Us(e,n){let r=(Array.isArray(e?.allowedPorts)?e.allowedPorts.filter(o=>typeof o=="number"&&Number.isInteger(o)&&o>=1&&o<=65535):[]).filter(o=>o!==n);return{...e??{},portForwarding:r.length>0,allowedPorts:r,revokedPorts:[n]}}var VS=F(()=>{"use strict";gy()});function Gue(e){let n=tF(e);if(n===void 0)return;let t=Zue(n);if(t!==void 0)return t;let r=Que(e);if(r!==void 0)return r}function vi(e){let n=Xue(e),t=xy(n);if(t!==void 0)return Gue(t)}function Zue(e){let n=HS(e),t=_y.get(n);if(t!==void 0)return{...t,executableName:e,matchedName:n}}function Que(e){let t=HS(e).split("/").map(r=>WS(r)).filter(r=>r.length>0);for(let r of t.reverse()){let o=_y.get(r);if(o!==void 0)return{...o,executableName:tF(e)??e,matchedName:r}}}function xy(e){let[n,...t]=e;switch(n){case void 0:return;case"env":case"/usr/bin/env":return xy(t.filter(r=>!nF(r)));case"sudo":case"command":case"exec":case"nohup":return xy(t.filter(r=>!r.startsWith("-")));default:switch(nF(n)){case!0:return xy(t);case!1:return n}}}function tF(e){let n=e.trim();if(n.length===0)return;let t=n.replaceAll("\\","/"),[r]=t.split("/").filter(o=>o.length>0).slice(-1);if(r!==void 0)return WS(r)}function WS(e){let n=e.toLowerCase();switch(!0){case n.endsWith(".app"):return e.slice(0,-4);case n.endsWith(".exe"):return e.slice(0,-4);case n.endsWith(".cmd"):case n.endsWith(".bat"):return e.slice(0,-4);default:return e}}function HS(e){return WS(e.trim().replaceAll("\\","/").toLowerCase())}function nF(e){return/^[A-Za-z_][A-Za-z0-9_]*=/.test(e)}function Xue(e){let n=[],t="",r,o=!1;for(let i of e.trim())switch(!0){case o:t=`${t}${i}`,o=!1;break;case i==="\\":o=!0;break;case(r===void 0&&(i==='"'||i==="'")):r=i;break;case r===i:r=void 0;break;case(r===void 0&&/\s/.test(i)):t.length>0&&(n.push(t),t="");break;default:t=`${t}${i}`;break}return t.length>0&&n.push(t),n}var Hue,_y,gKe,GS=F(()=>{"use strict";Hue=[{appName:"Bun",iconKey:"bun",names:["bun","bunx"]},{appName:"Node.js",iconKey:"nodejs",names:["node","nodejs","node.exe"]},{appName:"npm",iconKey:"npm",names:["npm","npm-cli.js","npx"]},{appName:"pnpm",iconKey:"pnpm",names:["pnpm","pnpx"]},{appName:"Yarn",iconKey:"yarn",names:["yarn","yarnpkg","yarn.js"]},{appName:"Corepack",iconKey:"corepack",names:["corepack"]},{appName:"Deno",iconKey:"deno",names:["deno"]},{appName:"Vite",iconKey:"vite",names:["vite","vite-node"]},{appName:"Vitest",iconKey:"vitest",names:["vitest"]},{appName:"Next.js",iconKey:"nextjs",names:["next","next-server"]},{appName:"Nuxt",iconKey:"nuxt",names:["nuxt","nuxi"]},{appName:"Astro",iconKey:"astro",names:["astro"]},{appName:"SvelteKit",iconKey:"svelte",names:["svelte-kit","sveltekit"]},{appName:"Remix",iconKey:"remix",names:["remix"]},{appName:"Expo",iconKey:"expo",names:["expo","expo-cli"]},{appName:"React Native",iconKey:"react",names:["react-native"]},{appName:"Metro",iconKey:"metro",names:["metro","metro-inspector-proxy"]},{appName:"Webpack",iconKey:"webpack",names:["webpack","webpack-dev-server","webpack-cli"]},{appName:"Parcel",iconKey:"parcel",names:["parcel"]},{appName:"Rollup",iconKey:"rollup",names:["rollup"]},{appName:"esbuild",iconKey:"esbuild",names:["esbuild"]},{appName:"SWC",iconKey:"swc",names:["swc"]},{appName:"TypeScript",iconKey:"typescript",names:["tsc","tsserver","tsx","ts-node","typescript-language-server"]},{appName:"ESLint",iconKey:"eslint",names:["eslint","eslint_d"]},{appName:"Prettier",iconKey:"prettier",names:["prettier"]},{appName:"Biome",iconKey:"biome",names:["biome"]},{appName:"Storybook",iconKey:"storybook",names:["storybook","start-storybook"]},{appName:"Playwright",iconKey:"playwright",names:["playwright"]},{appName:"Cypress",iconKey:"cypress",names:["cypress"]},{appName:"Jest",iconKey:"jest",names:["jest"]},{appName:"Python",iconKey:"python",names:["python","python2","python3","python3.9","python3.10","python3.11","python3.12","python3.13","pypy","pypy3"]},{appName:"pip",iconKey:"python",names:["pip","pip2","pip3"]},{appName:"pipx",iconKey:"python",names:["pipx"]},{appName:"uv",iconKey:"python",names:["uv","uvx"]},{appName:"Poetry",iconKey:"poetry",names:["poetry"]},{appName:"Pipenv",iconKey:"python",names:["pipenv"]},{appName:"Conda",iconKey:"conda",names:["conda","mamba","micromamba"]},{appName:"Django",iconKey:"django",names:["django-admin","django-admin.py","manage.py"]},{appName:"Flask",iconKey:"flask",names:["flask"]},{appName:"Uvicorn",iconKey:"uvicorn",names:["uvicorn"]},{appName:"Gunicorn",iconKey:"gunicorn",names:["gunicorn"]},{appName:"Hypercorn",iconKey:"python",names:["hypercorn"]},{appName:"Celery",iconKey:"celery",names:["celery"]},{appName:"Jupyter",iconKey:"jupyter",names:["jupyter","jupyter-lab","jupyter-notebook","ipython"]},{appName:"Ruby",iconKey:"ruby",names:["ruby","erb","irb"]},{appName:"Bundler",iconKey:"ruby",names:["bundle","bundler"]},{appName:"Rails",iconKey:"rails",names:["rails","bin/rails"]},{appName:"Rack",iconKey:"ruby",names:["rackup"]},{appName:"Puma",iconKey:"puma",names:["puma"]},{appName:"Sidekiq",iconKey:"sidekiq",names:["sidekiq"]},{appName:"RSpec",iconKey:"ruby",names:["rspec"]},{appName:"Go",iconKey:"go",names:["go","gofmt","gopls","air"]},{appName:"Delve",iconKey:"go",names:["dlv"]},{appName:"Rust",iconKey:"rust",names:["rustc","rustup","cargo","rust-analyzer"]},{appName:"Java",iconKey:"java",names:["java","javac","jar","jshell","jwebserver"]},{appName:"Gradle",iconKey:"gradle",names:["gradle","gradlew"]},{appName:"Maven",iconKey:"maven",names:["mvn","mvnw"]},{appName:"Spring Boot",iconKey:"spring",names:["spring","spring-boot"]},{appName:"Kotlin",iconKey:"kotlin",names:["kotlin","kotlinc","kotlin-language-server"]},{appName:"Scala",iconKey:"scala",names:["scala","scalac","sbt","metals"]},{appName:"Clojure",iconKey:"clojure",names:["clojure","clj","lein","boot"]},{appName:"PHP",iconKey:"php",names:["php","php-fpm","php-cgi","composer"]},{appName:"Laravel",iconKey:"laravel",names:["artisan","laravel"]},{appName:"Symfony",iconKey:"symfony",names:["symfony"]},{appName:"Elixir",iconKey:"elixir",names:["elixir","iex","mix"]},{appName:"Erlang",iconKey:"erlang",names:["erl","beam.smp","beam","epmd","rebar3"]},{appName:"Phoenix",iconKey:"phoenix",names:["phx.server","phoenix"]},{appName:"PostgreSQL",iconKey:"postgresql",names:["postgres","postmaster","pg_ctl","psql","pg_isready"]},{appName:"Redis",iconKey:"redis",names:["redis-server","redis-cli","redis-sentinel"]},{appName:"MySQL",iconKey:"mysql",names:["mysql","mysqld","mysqladmin"]},{appName:"MariaDB",iconKey:"mariadb",names:["mariadb","mariadbd","mariadb-admin"]},{appName:"SQLite",iconKey:"sqlite",names:["sqlite3","sqlite"]},{appName:"MongoDB",iconKey:"mongodb",names:["mongod","mongosh","mongo"]},{appName:"Elasticsearch",iconKey:"elasticsearch",names:["elasticsearch"]},{appName:"OpenSearch",iconKey:"opensearch",names:["opensearch"]},{appName:"Solr",iconKey:"solr",names:["solr"]},{appName:"Kafka",iconKey:"kafka",names:["kafka-server-start","kafka-console-consumer","kafka-console-producer"]},{appName:"ZooKeeper",iconKey:"zookeeper",names:["zookeeper-server-start","zkserver"]},{appName:"RabbitMQ",iconKey:"rabbitmq",names:["rabbitmq-server","rabbitmqctl"]},{appName:"NATS",iconKey:"nats",names:["nats-server","nats"]},{appName:"Docker",iconKey:"docker",names:["docker","dockerd","docker-compose","docker-proxy","com.docker.backend"]},{appName:"Podman",iconKey:"podman",names:["podman","podman-compose"]},{appName:"Kubernetes",iconKey:"kubernetes",names:["kubectl","kube-apiserver","kubelet","minikube","kind"]},{appName:"Helm",iconKey:"helm",names:["helm"]},{appName:"Tilt",iconKey:"tilt",names:["tilt"]},{appName:"nginx",iconKey:"nginx",names:["nginx"]},{appName:"Caddy",iconKey:"caddy",names:["caddy"]},{appName:"Apache HTTP Server",iconKey:"apache",names:["httpd","apache2","apachectl"]},{appName:"HAProxy",iconKey:"haproxy",names:["haproxy"]},{appName:"Traefik",iconKey:"traefik",names:["traefik"]},{appName:"Envoy",iconKey:"envoy",names:["envoy"]},{appName:"Tailscale",iconKey:"tailscale",names:["tailscale","tailscaled"]},{appName:"Cloudflare Tunnel",iconKey:"cloudflare",names:["cloudflared"]},{appName:"ngrok",iconKey:"ngrok",names:["ngrok"]},{appName:"localtunnel",iconKey:"terminal",names:["lt","localtunnel"]},{appName:"SSH",iconKey:"ssh",names:["ssh","sshd","scp","sftp"]},{appName:"Git",iconKey:"git",names:["git","git-lfs","git-upload-pack","git-receive-pack"]},{appName:"GitHub CLI",iconKey:"github",names:["gh"]},{appName:"GitLab CLI",iconKey:"gitlab",names:["glab"]},{appName:"Subversion",iconKey:"subversion",names:["svn"]},{appName:"Mercurial",iconKey:"mercurial",names:["hg"]},{appName:"AWS CLI",iconKey:"aws",names:["aws","aws-vault","sam"]},{appName:"Azure CLI",iconKey:"azure",names:["az"]},{appName:"Google Cloud CLI",iconKey:"google-cloud",names:["gcloud","gsutil","bq"]},{appName:"Terraform",iconKey:"terraform",names:["terraform"]},{appName:"OpenTofu",iconKey:"opentofu",names:["tofu"]},{appName:"Ansible",iconKey:"ansible",names:["ansible","ansible-playbook"]},{appName:"Pulumi",iconKey:"pulumi",names:["pulumi"]},{appName:"Nomad",iconKey:"nomad",names:["nomad"]},{appName:"Vault",iconKey:"vault",names:["vault"]},{appName:"Consul",iconKey:"consul",names:["consul"]},{appName:"Make",iconKey:"make",names:["make","gmake"]},{appName:"CMake",iconKey:"cmake",names:["cmake","ctest","cpack"]},{appName:"Ninja",iconKey:"ninja",names:["ninja"]},{appName:"Bazel",iconKey:"bazel",names:["bazel","bazelisk"]},{appName:"Buck",iconKey:"buck",names:["buck","buck2"]},{appName:"Clang",iconKey:"clang",names:["clang","clang++","clangd"]},{appName:"GCC",iconKey:"gcc",names:["gcc","g++","cc","c++"]},{appName:"LLDB",iconKey:"terminal",names:["lldb"]},{appName:"GDB",iconKey:"terminal",names:["gdb"]},{appName:"Swift",iconKey:"swift",names:["swift","swiftc","sourcekit-lsp"]},{appName:"Xcode",iconKey:"xcode",names:["xcodebuild","xcrun","simctl"]},{appName:"Zig",iconKey:"zig",names:["zig"]},{appName:"Lua",iconKey:"lua",names:["lua","luajit","lua-language-server"]},{appName:"Perl",iconKey:"perl",names:["perl"]},{appName:"R",iconKey:"r",names:["r","rscript","rserver","rsession"]},{appName:"Julia",iconKey:"julia",names:["julia"]},{appName:"Haskell",iconKey:"haskell",names:["ghc","ghci","cabal","stack","haskell-language-server-wrapper"]},{appName:"OCaml",iconKey:"ocaml",names:["ocaml","ocamlc","dune","opam"]},{appName:"F#",iconKey:"fsharp",names:["fsharpi","fsautocomplete"]},{appName:".NET",iconKey:"dotnet",names:["dotnet","csharp-ls","omnisharp"]},{appName:"PowerShell",iconKey:"powershell",names:["pwsh","powershell"]},{appName:"Bash",iconKey:"terminal",names:["bash"]},{appName:"Zsh",iconKey:"terminal",names:["zsh"]},{appName:"fish",iconKey:"terminal",names:["fish"]},{appName:"tmux",iconKey:"terminal",names:["tmux"]},{appName:"GNU Screen",iconKey:"terminal",names:["screen"]},{appName:"direnv",iconKey:"terminal",names:["direnv"]},{appName:"Nix",iconKey:"nix",names:["nix","nix-shell","nix-daemon","nix-build","nix develop"]},{appName:"Homebrew",iconKey:"homebrew",names:["brew"]},{appName:"mise",iconKey:"terminal",names:["mise"]},{appName:"asdf",iconKey:"terminal",names:["asdf"]},{appName:"Volta",iconKey:"volta",names:["volta"]},{appName:"fnm",iconKey:"nodejs",names:["fnm"]},{appName:"nvm",iconKey:"nodejs",names:["nvm"]},{appName:"curl",iconKey:"terminal",names:["curl"]},{appName:"HTTPie",iconKey:"httpie",names:["http","https","httpie"]},{appName:"wget",iconKey:"terminal",names:["wget"]},{appName:"jq",iconKey:"terminal",names:["jq"]},{appName:"ripgrep",iconKey:"terminal",names:["rg","ripgrep"]},{appName:"fd",iconKey:"terminal",names:["fd"]},{appName:"fzf",iconKey:"terminal",names:["fzf"]},{appName:"bat",iconKey:"terminal",names:["bat"]},{appName:"eza",iconKey:"terminal",names:["eza","exa"]},{appName:"htop",iconKey:"terminal",names:["htop","top","btop"]},{appName:"Vim",iconKey:"vim",names:["vim","view","vimdiff"]},{appName:"Neovim",iconKey:"neovim",names:["nvim","nvim-qt"]},{appName:"Emacs",iconKey:"emacs",names:["emacs","emacsclient"]},{appName:"Visual Studio Code",iconKey:"vscode",names:["code","code-insiders","vscode","visual studio code","visual studio code - insiders"]},{appName:"code-server",iconKey:"vscode",names:["code-server"]},{appName:"Cursor",iconKey:"cursor",names:["cursor"]},{appName:"Zed",iconKey:"zed",names:["zed"]},{appName:"Sublime Text",iconKey:"sublime-text",names:["subl","sublime_text","sublime text"]},{appName:"Atom",iconKey:"atom",names:["atom"]},{appName:"IntelliJ IDEA",iconKey:"intellij-idea",names:["idea","idea.sh","intellij idea","idea64.exe"]},{appName:"WebStorm",iconKey:"webstorm",names:["webstorm","webstorm.sh"]},{appName:"PyCharm",iconKey:"pycharm",names:["pycharm","pycharm.sh"]},{appName:"RubyMine",iconKey:"rubymine",names:["rubymine","rubymine.sh"]},{appName:"GoLand",iconKey:"goland",names:["goland","goland.sh"]},{appName:"CLion",iconKey:"clion",names:["clion","clion.sh"]},{appName:"DataGrip",iconKey:"datagrip",names:["datagrip","datagrip.sh"]},{appName:"Rider",iconKey:"rider",names:["rider","rider.sh"]},{appName:"Android Studio",iconKey:"android-studio",names:["studio","studio.sh","android studio"]},{appName:"Xcode",iconKey:"xcode",names:["xcode","xcode.app"]},{appName:"Postman",iconKey:"postman",names:["postman"]},{appName:"Insomnia",iconKey:"insomnia",names:["insomnia"]},{appName:"Hoppscotch",iconKey:"hoppscotch",names:["hoppscotch"]},{appName:"TablePlus",iconKey:"tableplus",names:["tableplus"]},{appName:"DBeaver",iconKey:"dbeaver",names:["dbeaver"]},{appName:"RedisInsight",iconKey:"redis",names:["redisinsight"]},{appName:"Prisma",iconKey:"prisma",names:["prisma"]},{appName:"Drizzle Kit",iconKey:"drizzle",names:["drizzle-kit"]},{appName:"Supabase",iconKey:"supabase",names:["supabase"]},{appName:"Firebase",iconKey:"firebase",names:["firebase"]},{appName:"Vercel",iconKey:"vercel",names:["vercel"]},{appName:"Netlify",iconKey:"netlify",names:["netlify","ntl"]},{appName:"Fly.io",iconKey:"fly",names:["fly","flyctl"]},{appName:"Heroku",iconKey:"heroku",names:["heroku"]},{appName:"Stripe CLI",iconKey:"stripe",names:["stripe"]},{appName:"Twilio CLI",iconKey:"twilio",names:["twilio"]},{appName:"Mailpit",iconKey:"mail",names:["mailpit"]},{appName:"MailHog",iconKey:"mail",names:["mailhog"]},{appName:"OpenSSL",iconKey:"openssl",names:["openssl"]},{appName:"mkcert",iconKey:"certificate",names:["mkcert"]},{appName:"mkdocs",iconKey:"markdown",names:["mkdocs"]},{appName:"Hugo",iconKey:"hugo",names:["hugo"]},{appName:"Jekyll",iconKey:"jekyll",names:["jekyll"]},{appName:"Eleventy",iconKey:"eleventy",names:["eleventy","11ty"]},{appName:"Docusaurus",iconKey:"docusaurus",names:["docusaurus"]},{appName:"Trunk",iconKey:"rust",names:["trunk"]},{appName:"wasm-pack",iconKey:"webassembly",names:["wasm-pack"]},{appName:"wasmtime",iconKey:"webassembly",names:["wasmtime"]},{appName:"Language Server",iconKey:"language-server",names:["lua-language-server","yaml-language-server","vscode-json-language-server","docker-langserver","bash-language-server","marksman","taplo"]}],_y=new Map;for(let e of Hue)for(let n of e.names)_y.set(HS(n),{appName:e.appName,iconKey:e.iconKey});gKe=_y.size});function Qa(e,n={}){let t=rF(oF(e));return n.includeSupportLine===!0?`${t}
648
648
 
649
- ${Yue}`:t}function tf(e){let n=oF(e);return ece(n)?"Linzumi could not complete that runner action. Reconnect this computer if it keeps happening.":rF(n)}function rF(e){if(e.includes("daily_token_limit_exceeded")||e.includes("free Linzumi tokens"))return"You've used all of your free Linzumi tokens for today. Your free allowance resets at midnight UTC - check back then, or email support@linzumi.com if you need more.";if(e.includes("daily_cost_limit_exceeded")||e.includes("reached today's usage limit")||e.includes("daily capacity is reached"))return"You've reached your daily usage limit for model usage. It resets at midnight UTC - check back then, or email support@linzumi.com if you need more.";if(e==="phoenix join failed: workspace_not_found")return"Linzumi could not find this workspace. The command may be stale or copied from a different signup session. Return to setup and copy the latest command.";if(e==="phoenix join failed: unauthorized"||e==="phoenix join failed: forbidden")return"This connection command is no longer authorized. Return to setup and copy a fresh command.";if(e.includes("commander_version_too_old")){let n=e.replace(/^phoenix join failed:\s*/,"").replace(/^commander_version_too_old:?\s*/,"");return`This computer's Linzumi CLI is too old for this server. ${n===""?"Update with: npm install -g @linzumi/cli@latest":n}`}return e.startsWith("phoenix join failed:")?"Linzumi could not connect this computer. Return to setup and try again.":e.startsWith("phoenix push timed out after ")?"Linzumi did not receive a response from the server in time. Check your connection and retry.":e.startsWith("phoenix push failed:")||e==="phoenix push failed"?"Linzumi could not save the latest runner update. The connection may be stale; reconnect this computer if it does not recover.":e==="phoenix websocket closed"?"The connection to Linzumi was interrupted. Reconnecting...":e==="phoenix websocket is not open"||e==="phoenix client is not connected"?"This computer is not connected to Linzumi yet. Wait a moment, then retry.":e==="phoenix websocket reconnect failed"?"Linzumi could not reconnect this computer. Check your connection and run the connect command again.":e==="invalid Phoenix frame"?"Linzumi received an unexpected server message. Please reconnect this computer.":e.startsWith("phoenix rejoin failed for ")?"Linzumi could not restore this computer's session after reconnecting. Run the connect command again.":e.startsWith("phoenix rejoin returned invalid events for ")?"Linzumi could not restore recent messages after reconnecting. Run the connect command again.":e==="websocket open failed"?"Linzumi could not open a connection to the server. Check the URL and your network connection.":e==="Linzumi signup response was not valid JSON"?"Linzumi received an unexpected signup response. Try again in a moment.":e.startsWith("Linzumi signup request failed with HTTP ")?"Linzumi signup failed. Try again, or refresh the setup page and copy a fresh command.":e.startsWith("thread/start failed:")?"Codex could not start a new work session. Try again, or reconnect this computer.":e.startsWith("turn/start failed:")?"Codex could not start working on that message. Try again from the thread.":/^[a-z][a-z0-9_/-]* failed:/.test(e)?"Codex could not complete the requested action. Try again, or start a new task thread.":e}function ece(e){return e.startsWith("phoenix ")||e==="invalid Phoenix frame"||e==="websocket open failed"}function oF(e){return e instanceof Error?e.message:String(e)}var Yue,tc=F(()=>{"use strict";Yue="If this continues happening, email support@linzumi.com and we'll try to get you through it."});import{createHash as TF,randomUUID as Py}from"node:crypto";function tce(){let e=process.env.LINZUMI_IDLE_STREAM_THRESHOLD_MS?.trim();if(e===void 0||e==="")return iF;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=0?n:iF}function rce(){let e=process.env.LINZUMI_IDLE_STREAM_MODEL_WAIT_CAP_MS?.trim();if(e===void 0||e==="")return sF;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=0?n:sF}function PF(){let e=process.env.LINZUMI_IDLE_STREAM_KILL_GRACE_MS?.trim();if(e===void 0||e==="")return aF;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=0?n:aF}function oce(e,n){let r=`The model stream stalled - no data for ${Math.round(e/1e3)}s (the connection appears wedged).`;return n.resumable?`${r} Please retry to resume from the last streamed checkpoint.`:`${r} No response was produced; please retry.`}function ice(){let e=process.env.LINZUMI_IDLE_STREAM_QUEUED_YIELD_CAP_MS?.trim();if(e===void 0||e==="")return dF;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=0?n:dF}function sce(e,n,t){let r=Math.round(e/1e3),o=n===1?"1 queued follow-up was waiting":`${n} queued follow-ups were waiting`,i=`The turn produced no stream output for ${r}s while ${o}, so it was interrupted to let the queued message(s) run.`;return t.resumable?`${i} Please retry to resume this turn from the last streamed checkpoint.`:`${i} No response was produced; please retry.`}function ace(){let e=process.env.LINZUMI_STOP_HALT_CONFIRM_MS?.trim();if(e===void 0||e==="")return uF;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=0?n:uF}async function cce(e){let{currentTick:n,capMs:t,pollIntervalMs:r=dce,quietWindowMs:o=uce,sleep:i=Js,now:s=Date.now}=e;if(t<=0)return!0;let a=Math.max(1,Math.min(o,t)),d=s(),u=d+t,c=n(),l=d;for(;;){let p=s();if(p-l>=a)return!0;if(p>=u)return!1;let m=Math.max(1,Math.min(r,a,u-p));await i(m);let f=n();f!==c&&(c=f,l=s())}}function lF(){let e=process.env.LINZUMI_STOP_STARTING_ACK_WAIT_MS?.trim();if(e===void 0||e==="")return cF;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>0?n:cF}async function pce(e){let{stillStarting:n,capMs:t,pollIntervalMs:r=lce,sleep:o=Js,now:i=Date.now}=e,s=i()+t;for(;;){if(!n())return!0;let a=s-i();if(a<=0)return!1;await o(Math.max(1,Math.min(r,a)))}}function Iy(){let e=process.env.LINZUMI_CODEX_START_REQUEST_TIMEOUT_MS?.trim();if(e===void 0||e==="")return pF;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>0?n:pF}function fce(){let e=process.env.LINZUMI_OUTBOX_MAX_INFLIGHT_PUSHES?.trim();if(e===void 0||e==="")return;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>0?n:void 0}function mce(){return Iy()}function hce(e){return e instanceof vy}function gce(e){return e instanceof Sy}function Qo(e,n,t=Iy()){return IF(e,n,t,(r,o)=>new vy(r,o))}function yce(e,n,t=mce()){return IF(e,n,t,(r,o)=>new Sy(r,o))}function IF(e,n,t,r){return t>0?new Promise((o,i)=>{let s=setTimeout(()=>{i(r(e,t))},t);s.unref?.(),n.then(a=>{clearTimeout(s),o(a)},a=>{clearTimeout(s),i(a)})}):n}function vce(e,n=RF,t=Math.random){let r=Math.max(1,Math.floor(e))-1;if(r<n.length)return n[r]??rf.baseDelayMs;let o=n.length>0?n[n.length-1]??rf.baseDelayMs:rf.baseDelayMs,i=Math.max(o,rf.baseDelayMs),s=r-n.length,a=Math.min(rf.maxDelayMs,i*2**s),d=t(),u=Number.isFinite(d)?Math.min(Math.max(d,0),1):0;return Math.round(a*u)}async function cf(e){let n=e.options.channelSession,t=`chat:${n.workspaceSlug}:${n.channelSlug}`,r=jce(0,n.rootSeq,n.kandanThreadId,n.codexThreadId,e.options),o=["channel-session",e.instanceId,fF].join("-");fF+=1;let i=await e.kandan.join(t,mF(e.options.runnerId,r,0),{registrationId:o,rejoinPayload:()=>{let l=cle(r);return r.seenSeq=l,mF(e.options.runnerId,r,l)}}),s=X(i.cursor)??0,a=go(e.options.token),d=HO(e.options.codexBin,e.options.cwd);r.minSeq=s,r.seenSeq=s;let u={runnerIdentity:a,codexVersion:d},c={ready:!1,pending:[]};return e.codex.onRequest?.(l=>vle(e,r,u,l)),e.kandan.onDisconnect?.(()=>{r.closed||r.pipeline?.pause()}),e.kandan.onEvent((l,p,m)=>{if(r.closed||l!==t||p!=="event")return;let f=pg(m);if(f!==void 0){if(!c.ready){c.pending.push(f);return}KF(e,r,a,f,u)}}),await zce(e,r,u),r.pipeline=Dce(e,r,u),e.codex.onClose?.(l=>{r.pipeline?.submitLifecycle("codexDied",l.message)}),await ule(e,r,a,u,c),MF(e,r,u),await Pr(e,r,u),{handleCodexNotification:(l,p)=>{if(l==="account/rateLimits/updated"){let _=Ej(p);_!==r.rateLimitResetAtMs&&e.log("codex.rate_limit_reset_captured",{reset_at_ms:_??null,previous_reset_at_ms:r.rateLimitResetAtMs??null}),r.rateLimitResetAtMs=_}let m=XF(p),f=YF(p),y=m??Lle(l,r,p,f);if(eq(r,f,y)){if(r.streamEventTick+=1,Rce(e,r,l,p,y))return;Tce(r,l,p,y),Pce(e,r,y);let _=y??Ha(r.turn);_!==void 0&&r.pipeline?.noteTurnActivity(_,l);let w=oy(l,p);y!==void 0&&w!==void 0&&ipe(e,r,y,w).catch(S=>{e.log("kandan.message_state_refresh_failed",{turn_id:y,reason:w,message:S instanceof Error?S.message:String(S)})}),$ce(e,r,u,l,p,f,m,y)}},handleControl:l=>Uce(e,r,u,l),startThreadMessageTurn:l=>JF(e,r,u,l),currentRuntimeSettings:()=>r.runtimeSettings,currentCodexThreadId:()=>r.codexThreadId,currentKandanThreadId:()=>r.kandanThreadId,pendingApprovalTurnIds:()=>[...new Set([...r.pendingApprovalRequests.values()].map(l=>l.turnId))],handleKandanReconnect:()=>EF(e,r,u),close:async()=>{r.closed=!0,e.kandan.unregisterJoin?.(t,o),r.portForwardWatcher?.close(),r.portForwardWatcher=void 0,DF(r),Ry(r),af(r);for(let l of r.rateLimitHoldTimers.values())clearTimeout(l);r.rateLimitHoldTimers.clear(),Tle(r,new Error("runner closed")),r.pipeline!==void 0&&await r.pipeline.close(Ece),await Si(e,r),BF(r)}}}async function EF(e,n,t,r="reconnect"){if(DF(n),!n.closed){r==="reconnect"&&(n.reconnectRetryAttempts=0);try{await kce(e,n,t),n.reconnectRetryAttempts=0}catch(o){n.reconnectRetryAttempts+=1;let i=vce(n.reconnectRetryAttempts,e.options.reconnectHandlingRetryDelaysMs??RF);e.log("kandan.reconnect_handling_failed",{attempt:n.reconnectRetryAttempts,retry_in_ms:i,message:o instanceof Error?o.message:String(o)}),n.reconnectRetryTimer=setTimeout(()=>{n.reconnectRetryTimer=void 0,EF(e,n,t,"retry")},i),n.reconnectRetryTimer.unref?.()}}}async function kce(e,n,t){e.log("kandan.reconnected",{kandan_thread_id:n.kandanThreadId??null,codex_thread_id:n.codexThreadId??null,min_seq:n.minSeq}),n.pipeline?.resume(),await oc(e,n),n.kandanThreadId!==void 0&&n.turn.status!=="idle"&&(n.codexTypingActive&&gk(e,n,n.kandanThreadId),await oq(e,n)),await Pr(e,n,t)}function DF(e){e.reconnectRetryTimer!==void 0&&(clearTimeout(e.reconnectRetryTimer),e.reconnectRetryTimer=void 0)}function Ry(e){e.idleStreamTimer!==void 0&&(clearTimeout(e.idleStreamTimer),e.idleStreamTimer=void 0),e.idleStreamGuardTurnId=void 0,e.idleStreamEventSeen=!1,e.idleStreamOpenLocalExecItemIds.clear(),e.idleStreamDeferralLogged=!1,e.idleStreamQuietSinceMs=void 0,e.idleStreamModelWaitDeferralLogged=!1}function af(e,n){let t=e.idleStreamKillGrace;t===void 0||n!==void 0&&t.turnId!==n||(clearTimeout(t.timer),e.idleStreamKillGrace=void 0)}function Tce(e,n,t,r){let o=e.idleStreamGuardTurnId;if(o===void 0||n!=="item/started"&&n!=="item/completed"||r!==void 0&&r!==o)return;let i=A(t.item),s=i===void 0?void 0:h(i.id);if(s===void 0||s==="")return;if(n==="item/completed"){e.idleStreamOpenLocalExecItemIds.delete(s);return}if(r!==o)return;let a=h(i?.type);a!==void 0&&Cce.has(a)&&e.idleStreamOpenLocalExecItemIds.add(s)}function ak(e,n,t){let r=tce();if(!(r>0)||t===""){Ry(n);return}n.idleStreamGuardTurnId!==t&&(n.idleStreamGuardTurnId=t,n.idleStreamEventSeen=!1,n.idleStreamOpenLocalExecItemIds.clear(),n.idleStreamDeferralLogged=!1,n.idleStreamQuietSinceMs=Date.now(),n.idleStreamModelWaitDeferralLogged=!1),n.idleStreamTimer!==void 0&&clearTimeout(n.idleStreamTimer),n.idleStreamTimer=setTimeout(()=>{nk(e,n,t,r)},r),n.idleStreamTimer.unref?.()}function Pce(e,n,t){let r=n.idleStreamGuardTurnId;r!==void 0&&(t!==void 0&&t!==r||(n.idleStreamEventSeen=!0,n.idleStreamDeferralLogged=!1,n.idleStreamQuietSinceMs=Date.now(),n.idleStreamModelWaitDeferralLogged=!1,ak(e,n,r)))}function nk(e,n,t,r){if(n.closed||n.idleStreamGuardTurnId!==t)return;let o=n.idleStreamOpenLocalExecItemIds.size>0,i=[...n.pendingApprovalRequests.values()].some(R=>R.turnId===t),s=Date.now(),a=n.idleStreamQuietSinceMs??s,d=Math.max(0,s-a),u=Zo(n.queue),c=ice(),l=c<=0?0:Math.max(c,r),p=o&&!i&&u>0&&l>0&&d>=l;if((o||i)&&!p){if(n.idleStreamDeferralLogged||(n.idleStreamDeferralLogged=!0,e.log("codex.idle_stream_watchdog_deferred",{turn_id:t,idle_threshold_ms:r,waiting_on_local_exec:o,waiting_on_approval:i,open_local_exec_items:n.idleStreamOpenLocalExecItemIds.size,queued_follow_ups:u,quiet_ms:d})),o&&!i&&u>0&&l>0){n.idleStreamTimer!==void 0&&clearTimeout(n.idleStreamTimer);let P=Math.max(1,Math.min(r,l-d));n.idleStreamTimer=setTimeout(()=>{nk(e,n,t,r)},P),n.idleStreamTimer.unref?.();return}ak(e,n,t);return}let m=rce(),f=m<=0||!n.idleStreamEventSeen?0:Math.max(m,r);if(!p&&d<f){n.idleStreamModelWaitDeferralLogged||(n.idleStreamModelWaitDeferralLogged=!0,e.log("codex.idle_stream_model_wait_deferred",{turn_id:t,idle_threshold_ms:r,quiet_ms:d,model_wait_cap_ms:f})),n.idleStreamTimer!==void 0&&clearTimeout(n.idleStreamTimer);let R=Math.max(1,Math.min(r,f-d));n.idleStreamTimer=setTimeout(()=>{nk(e,n,t,r)},R),n.idleStreamTimer.unref?.();return}let y=n.idleStreamEventSeen,_=p?sce(d,u,{resumable:y}):oce(Math.max(d,r),{resumable:y}),w=!y&&!p,S=y&&!p,v=n.codexThreadId,b=PF();if(Ry(n),e.log("codex.idle_stream_timeout",{turn_id:t,idle_threshold_ms:r,quiet_ms:d,model_wait_cap_ms:f,kill_grace_ms:b,resumable:y,reason:_,queued_yield:p,queued_follow_ups:u}),v!==void 0&&ck(e,v,t),b<=0){Cy(n,t,_,y,w,S);return}let k=setTimeout(()=>{Ice(e,n,t)},b);k.unref?.(),n.idleStreamKillGrace={turnId:t,timer:k,reason:_,resumable:y,preFirstByteStall:w,midStreamResumableStall:S}}function Cy(e,n,t,r,o,i){e.pipeline?.submitNotification("turn/failed",{turnId:n,reason:t,error:{message:t,code:"idle_stream_timeout"},...r?{retryable:!0}:{},...o?{preFirstByteStall:!0}:{},...i?{midStreamResumableStall:!0}:{}})}function Ice(e,n,t){let r=n.idleStreamKillGrace;n.closed||r===void 0||r.turnId!==t||(n.idleStreamKillGrace=void 0,e.log("codex.idle_stream_kill_grace_expired",{turn_id:t,kill_grace_ms:PF()}),Cy(n,t,r.reason,r.resumable,r.preFirstByteStall,r.midStreamResumableStall))}function Rce(e,n,t,r,o){let i=n.idleStreamKillGrace;if(i===void 0||o===void 0||o!==i.turnId)return!1;if(t==="turn/completed"){let s=h(A(r.turn)?.status);return s==="completed"?(af(n,i.turnId),e.log("codex.idle_stream_kill_reconciled_completed",{turn_id:i.turnId,status:s}),!1):(af(n,i.turnId),e.log("codex.idle_stream_kill_interrupt_ack",{turn_id:i.turnId,method:t,status:s??null}),Cy(n,i.turnId,i.reason,i.resumable,i.preFirstByteStall,i.midStreamResumableStall),!0)}return t==="turn/failed"||t==="turn/aborted"||t==="turn/canceled"||t==="turn/cancelled"?(af(n,i.turnId),e.log("codex.idle_stream_kill_interrupt_ack",{turn_id:i.turnId,method:t,status:null}),Cy(n,i.turnId,i.reason,i.resumable,i.preFirstByteStall,i.midStreamResumableStall),!0):!1}function lf(e,n,t){return[e.workspaceSlug,e.channelSlug,n??`instance:${t}`].join(":")}function dk(e,n){n.kandanThreadId!==void 0&&n.pipeline?.rebindThreadKey(lf(e.options.channelSession,n.kandanThreadId,e.instanceId))}function Dce(e,n,t){let r=e.options.channelSession,o=lf(r,n.kandanThreadId,e.instanceId);return Vg({instanceId:e.instanceId,threadKey:o,persistDir:e.options.pipelinePersistDir,push:(i,s,a,d)=>Mce(e,n,i,s,d),wire:()=>({workspaceSlug:r.workspaceSlug,channelSlug:r.channelSlug,kandanThreadId:n.kandanThreadId,codexThreadId:n.codexThreadId,rootSeq:n.rootSeq,leaseEpoch:n.kandanThreadId===void 0?void 0:e.leaseEpochFor?.(n.kandanThreadId)}),runnerPayload:(i,s,a,d)=>Ba(e.options,e.instanceId,i,s,t,a,d,Ule(n,a)),runtimeMetadataForSourceSeq:i=>{let s=Ble(n,i);return s===void 0?void 0:Jle(s)},sourceSeqForTurn:i=>Nle(n,i),autoRetryAttemptsForSeq:i=>n.emptyTurnRetry.get(i)?.attempts??0,midStreamResumeAttemptAtMsForSeq:i=>n.midStreamResumeAttempts.get(i),ladderHistoryForSeq:(i,s)=>yo(s)?Up(n.fateLadderRuns.get(i),s):void 0,linzumiAgentSession:r.linzumiAgentSession===!0,isRecoveredTurn:i=>n.recoveredTurnIds.has(i),resolveSnapshot:i=>Oce(e,n,i),onTurnTerminal:(i,s,a,d,u,c)=>tk(e,n,t,i,s,a,d,void 0,u,c),log:(i,s)=>{e.log(i,s)},outboxRetryDelaysMs:e.options.pipelineOutboxRetryDelaysMs,outboxMaxInFlightPushes:fce(),snapshotRetryDelaysMs:e.options.pipelineSnapshotRetryDelaysMs,statsIntervalMs:e.options.pipelineStatsIntervalMs,turnStalledThresholdMs:e.options.pipelineTurnStalledThresholdMs,turnWaitStates:()=>[...n.pendingApprovalRequests.values()].map(i=>({turnId:i.turnId,kind:"approval"}))})}async function Mce(e,n,t,r,o){let i=await Ace(e,t,r);try{return await oo(e.kandan,e.topic,t,i,o)}catch(s){throw Wg(s)&&n.pipeline?.pause(),s}}async function Ace(e,n,t){let r=e.options.channelSession;return gg({kandan:e.kandan,topic:e.topic,workspace:r.workspaceSlug,channel:r.channelSlug,cwd:e.options.cwd,kandanUrl:e.options.kandanUrl,token:e.options.token,fetch:e.options.fetch,log:(o,i)=>e.log(o,i)},n,t)}async function Oce(e,n,t){let r=n.codexThreadId;if(r===void 0)throw new Error("cannot resolve a completion snapshot without a bound Codex thread");let o;try{o=await yce("thread/read",e.codex.request("thread/read",{threadId:r,includeTurns:!0}))}catch(d){if(gce(d)&&n.recoveredTurnIds.has(t))return e.log("pipeline.snapshot_skipped_for_recovered_turn",{codex_thread_id:r,turn_id:t,message:d instanceof Error?d.message:String(d)}),{items:[]};throw d}if("error"in o)throw new Error(`thread/read failed: ${o.error.message}`);let i=pS(WL(o,t)),s=[];try{s=pS(L$({codexThreadId:r,turnId:t}))}catch(d){e.log("codex.session_log_read_failed",{codex_thread_id:r,turn_id:t,message:d instanceof Error?d.message:String(d)})}let a=HL(i,s);return e.log("pipeline.snapshot_resolved",{turn_id:t,item_count:a.length,thread_read_item_count:i.length,session_log_item_count:s.length}),{items:[...a]}}function $ce(e,n,t,r,o,i,s,a){let d=n.pipeline;if(d!==void 0)switch(r){case"turn/started":i!==void 0&&s!==void 0&&jle(e,n,i,s),d.submitNotification(r,o);return;case"turn/completed":{s!==void 0&&vF(n,i,s);let u=s??Ale(e,n,i);switch(n.turn.status){case"starting":epe(n,u);break;case"idle":case"active":case"completing":tq(e,n,t,u);break}d.submitNotification(r,s===void 0&&u!==void 0?{...o,turnId:u}:o);return}case"turn/aborted":case"turn/canceled":case"turn/cancelled":case"turn/failed":s!==void 0&&vF(n,i,s),d.submitNotification(r,o);return;case"item/completed":{if(d.submitNotification(r,ZS(o,s,a)),a!==void 0){let u=Ile(e,n,a,o,t);qle(n,a,u),u.catch(c=>{e.log("codex.tui_input_mirror_failed",{turn_id:a,message:c instanceof Error?c.message:String(c)})}).finally(()=>zle(n,a))}return}case"error":{let u=jv(r,o);d.submitNotification(r,ZS(u===void 0?o:{...o,...wg(r,o)},s,a));return}case"item/agentMessage/delta":case"item/reasoning/textDelta":case"item/commandExecution/outputDelta":case"command/exec/outputDelta":case"item/fileChange/outputDelta":case"item/commandExecution/terminalInteraction":case"item/started":case"response_item":if(r==="item/started"){let u=h(A(o.item)?.command);u!==void 0&&Zg(uk(e,n),u)}d.submitNotification(r,ZS(o,s,a));return;default:return}}function uk(e,n){return n.kandanThreadId??e.topic}function ZS(e,n,t){return n!==void 0||t===void 0?e:{...e,turnId:t}}function tk(e,n,t,r,o,i,s,a,d,u){n.idleStreamGuardTurnId===r&&Ry(n),af(n,r);let c=Qu(n.turn,r)??gj(n.turn,r),l=Ay(n,r);c!==void 0&&(n.turn={status:"completing",turnId:r,queuedSeq:c});let p=c!==void 0?n.emptyTurnRetry.get(c)?.attempts??0:0,m=yo(u)?u:s===!0||d===!0?"transient_upstream":void 0,f=c!==void 0&&wF(n,c),y=o==="failed"&&c!==void 0&&f&&(s===!0||d===!0&&!n.midStreamResumeAttempts.has(c)),_=Ty(e),w=o==="failed"&&c!==void 0&&f,S=w&&!_,v=w&&_&&e.options.rebuildOnDeadCodexWorker!==void 0,b=o==="failed"&&c!==void 0&&m!==void 0?AS({fate:m,run:n.fateLadderRuns.get(c),nowMs:Date.now(),budgets:ay(),breaker:e.options.fleetBreakerRecoveryGate??TS,grants:{inPlaceResume:y,redispatch:S,workerRebuild:v},rateLimitResetAtMs:n.rateLimitResetAtMs}):void 0;if(b!==void 0&&b.kind!=="stand"&&c!==void 0&&(n.fateLadderRuns.set(c,b.run),is(n.fateLadderRuns,of),e.log("codex.fate_ladder_step",{turn_id:r,queued_seq:c,fate:m??null,decision:b.kind,...b.kind==="execute_rung"?{rung:b.rung}:{},...b.kind==="red"?{cause:b.cause}:{},...b.kind==="hold_until_reset"?{reset_at_ms:b.resetAtMs}:{},...b.kind==="breaker_hold"?{hold_reason:b.reason}:{},recovery_rungs_attempted:b.run.recoveryRungsAttempted,history_truncated:b.run.historyTruncated,reason:i??null})),o==="completed"&&c!==void 0){n.fateLadderRuns.delete(c);let q=n.rateLimitHoldTimers.get(c);q!==void 0&&(clearTimeout(q),n.rateLimitHoldTimers.delete(c))}let k=b?.kind==="execute_rung"?b.rung:void 0,R=b?.kind==="breaker_hold";R&&c!==void 0&&e.log("codex.fleet_breaker_recovery_hold",{turn_id:r,queued_seq:c,hold_reason:b?.kind==="breaker_hold"?b.reason:null,recovery:s===!0?"empty_turn_retry":d===!0?"mid_stream_resume":m==="transient_local"?"local_redispatch":"rate_limit_hold_dispatch",attempts_burned:p,max_attempts:xo,reason:i??null});let P=k==="in_place_resume"&&s===!0&&c!==void 0?by(n,c):void 0,L=k==="in_place_resume"&&d===!0&&P===void 0&&c!==void 0&&!n.midStreamResumeAttempts.has(c)?by(n,c):void 0,D=(k==="redispatch"||k==="worker_rebuild")&&c!==void 0?by(n,c):void 0;L!==void 0&&c!==void 0?(n.midStreamResumeAttempts.set(c,Date.now()),is(n.midStreamResumeAttempts,of)):!R&&o==="failed"&&d===!0&&c!==void 0&&e.log("codex.mid_stream_stall_resume_refused",{turn_id:r,queued_seq:c,cause:n.midStreamResumeAttempts.has(c)?"already_attempted":p>=xo?"shared_budget_exhausted":"no_retained_candidate",attempts_burned:p,max_attempts:xo,reason:i??null}),!R&&P===void 0&&L===void 0&&D===void 0&&b?.kind!=="hold_until_reset"&&c!==void 0&&n.emptyTurnRetry.delete(c);let j=o==="failed"&&s===!0&&P===void 0&&c!==void 0;!R&&j&&p>0&&e.log("codex.auto_retry_budget_exhausted_terminal",{turn_id:r,queued_seq:c??null,attempts_burned:p,max_attempts:xo,reason:i??null}),(async()=>{try{await n.pipeline?.flushOutbox()}catch(E){e.log("pipeline.turn_terminal_flush_failed",{turn_id:r,message:E instanceof Error?E.message:String(E)})}if(R&&c!==void 0){let E=e.options.fleetBreakerHoldPollMs??5e3,B=e.options.fleetBreakerMaxHoldMs??30*6e4,z=Date.now(),W=m??"transient_upstream",Z=e.options.fleetBreakerRecoveryGate??TS;n.kandanThreadId!==void 0&&await tt(e,n.kandanThreadId,c,{status:"processing",reason:lj},void 0,void 0,n.codexThreadId);let fe="exhausted";for(;Date.now()-z<B;){if(await Js(E),n.turn.status!=="completing"||n.turn.turnId!==r){fe="superseded";break}if(Z(W).action!=="hold"){fe="released";break}}if(fe==="superseded"){e.log("codex.fleet_breaker_hold_superseded",{turn_id:r,queued_seq:c,held_ms:Date.now()-z});return}if(fe==="released"){let De=wF(n,c),ke=Ty(e),ge=AS({fate:W,run:n.fateLadderRuns.get(c),nowMs:Date.now(),budgets:ay(),breaker:Z,grants:{inPlaceResume:De&&(s===!0||d===!0&&!n.midStreamResumeAttempts.has(c)),redispatch:De&&!ke,workerRebuild:De&&ke&&e.options.rebuildOnDeadCodexWorker!==void 0},rateLimitResetAtMs:n.rateLimitResetAtMs});ge.kind!=="stand"&&(n.fateLadderRuns.set(c,ge.run),is(n.fateLadderRuns,of));let Re=ge.kind==="execute_rung"?by(n,c):void 0;if(ge.kind==="execute_rung"&&Re!==void 0){let Ee=ge.rung,I=Ee==="in_place_resume"?s===!0?"empty_turn_retry":"mid_stream_resume":Ee;I==="mid_stream_resume"&&(n.midStreamResumeAttempts.set(c,Date.now()),is(n.midStreamResumeAttempts,of)),e.log("codex.fleet_breaker_recovery_resumed",{turn_id:r,queued_seq:c,held_ms:Date.now()-z,recovery:I,attempt:Re.attempts,max_attempts:xo,reason:i??null}),n.kandanThreadId!==void 0&&await tt(e,n.kandanThreadId,c,{status:"processing",reason:I==="mid_stream_resume"?vS:Ee==="worker_rebuild"?$S:Ee==="redispatch"?OS:"retrying empty turn"},void 0,void 0,n.codexThreadId),ic(n,r),os(n,r),rs(n,r),Xu(n.queue,Re.message),(n.turn.status==="completing"||n.turn.status==="active")&&n.turn.turnId===r&&(n.turn={status:"idle"}),await Pr(e,n,t);return}}e.log("codex.fleet_breaker_hold_exhausted",{turn_id:r,queued_seq:c,held_ms:Date.now()-z,outcome:fe,reason:i??null}),n.emptyTurnRetry.delete(c),n.kandanThreadId!==void 0&&await tt(e,n.kandanThreadId,c,{status:"failed",reason:`${i??"codex_turn_failed"} [recovery was held ${Math.round((Date.now()-z)/6e4)}m during a fleet-wide upstream outage; retry budget preserved]`,retryable:!0,fate:W,ladder:Up(n.fateLadderRuns.get(c),W)},void 0,void 0,n.codexThreadId)}if(b?.kind==="hold_until_reset"&&c!==void 0){e.log("codex.fate_ladder_rate_limit_hold",{turn_id:r,queued_seq:c,reset_at_ms:b.resetAtMs,hold_ms:Math.max(0,b.resetAtMs-Date.now()),reason:i??null}),n.kandanThreadId!==void 0&&await tt(e,n.kandanThreadId,c,{status:"processing",reason:Rj(b.resetAtMs)},void 0,void 0,n.codexThreadId),ic(n,r),os(n,r),rs(n,r),(n.turn.status==="completing"||n.turn.status==="active")&&n.turn.turnId===r&&(n.turn={status:"idle"}),Lce(e,n,t,c,b.resetAtMs);return}P===void 0&&L===void 0&&D===void 0&&n.kandanThreadId!==void 0&&await Qg({threadKey:uk(e,n),workspace:e.options.channelSession.workspaceSlug,channel:e.options.channelSession.channelSlug,threadId:n.kandanThreadId,push:(E,B)=>e.kandan.push(e.topic,E,B),log:(E,B)=>e.log(E,B)});let q=P??L??D;if(q!==void 0&&c!==void 0){L!==void 0?e.log("codex.mid_stream_stall_auto_resume",{turn_id:r,queued_seq:c,attempt_at_ms:n.midStreamResumeAttempts.get(c)??null,shared_budget_attempt:L.attempts,max_attempts:xo,reason:i??null}):D!==void 0?e.log("codex.fate_ladder_local_redispatch",{turn_id:r,queued_seq:c,rung:k??null,shared_budget_attempt:D.attempts,max_attempts:xo,reason:i??null}):e.log("codex.empty_turn_auto_retry",{turn_id:r,queued_seq:c,attempt:q.attempts,max_attempts:xo,reason:i??null}),n.kandanThreadId!==void 0&&await tt(e,n.kandanThreadId,c,{status:"processing",reason:L!==void 0?vS:k==="worker_rebuild"?$S:k==="redispatch"?OS:"retrying empty turn"},void 0,void 0,n.codexThreadId),ic(n,r),os(n,r),rs(n,r),Xu(n.queue,q.message),yF>0&&await Js(yF),(n.turn.status==="completing"||n.turn.status==="active")&&n.turn.turnId===r&&(n.turn={status:"idle"}),await Pr(e,n,t);return}if(c!==void 0&&n.kandanThreadId!==void 0){let E=o==="completed"?{status:"processed"}:{status:"failed",reason:i??"codex_turn_failed",...j?{retryable:!0,fate:"transient_upstream"}:{},...m!==void 0?{fate:m,ladder:Up(n.fateLadderRuns.get(c),m)}:{}};if(a===!0){for(let[z,W]of[...n.undeliveredCloudTerminals].sort((Z,fe)=>Z[0]-fe[0]))await kF(e,n.kandanThreadId,z,W,n.codexThreadId)&&(n.undeliveredCloudTerminals.delete(z),e.log("codex.cloud_terminal_state_gap_redelivered",{turn_id:r,source_seq:z,status:W.status}));for(let z of Xa(n,c))await kF(e,n.kandanThreadId,z,E,n.codexThreadId)?n.undeliveredCloudTerminals.delete(z):(n.undeliveredCloudTerminals.set(z,E),e.log("codex.cloud_terminal_state_unacked_watermark_held",{turn_id:r,queued_seq:c,source_seq:z,status:E.status,outcome:o,gap_floor:Math.min(...n.undeliveredCloudTerminals.keys())}))}let B=n.undeliveredCloudTerminals.size===0?void 0:Math.min(...n.undeliveredCloudTerminals.keys());if(o==="completed"){let z=new Set(Xa(n,c));z.add(c);for(let W of z){if(B!==void 0&&W>=B){e.log("codex.cloud_source_seq_commit_held_below_gap",{turn_id:r,source_seq:W,gap_floor:B});continue}e.options.onLiveSourceSeqAccepted?.({channel:e.options.channelSession.channelSlug,threadId:n.kandanThreadId,sourceSeq:W})}}{let z=new Set(Xa(n,c));z.add(c);for(let W of z)e.options.onLiveSourceSeqSettled?.({channel:e.options.channelSession.channelSlug,threadId:n.kandanThreadId,sourceSeq:W})}if(a!==!0)for(let z of Xa(n,c))z!==c&&await tt(e,n.kandanThreadId,z,E,void 0,void 0,n.codexThreadId);n.fusedQueuedSeqs.delete(c),Ya(n,c)}os(n,r),rs(n,r),(c!==void 0||l)&&(await tpe(n,r),await Si(e,n)),(n.turn.status==="completing"||n.turn.status==="active")&&n.turn.turnId===r&&(n.turn={status:"idle"}),e.log("pipeline.turn_terminal",{turn_id:r,outcome:o,reason:i??null,queued_seq:c??null}),await Pr(e,n,t)})().catch(q=>{e.log("pipeline.turn_terminal_handling_failed",{turn_id:r,message:q instanceof Error?q.message:String(q)})})}function Lce(e,n,t,r,o){if(n.rateLimitHoldTimers.has(r))return;let i=Math.max(0,o-Date.now()),s=setTimeout(()=>{n.rateLimitHoldTimers.delete(r),(async()=>{if(n.closed)return;let a=n.fateLadderRuns.get(r);if(a!==void 0){if(a.holdDispatched)return;n.fateLadderRuns.set(r,Ij(a,Date.now()))}let d=n.emptyTurnRetry.get(r);if(d===void 0){e.log("codex.fate_ladder_hold_dispatch_candidate_missing",{queued_seq:r,reset_at_ms:o}),n.kandanThreadId!==void 0&&await tt(e,n.kandanThreadId,r,{status:"failed",reason:"The rate-limit hold ended, but the held message was no longer available to send automatically. Please resend your last message.",fate:"rate_limited",ladder:Up(n.fateLadderRuns.get(r),"rate_limited")},void 0,void 0,n.codexThreadId);return}e.log("codex.fate_ladder_hold_dispatch",{queued_seq:r,reset_at_ms:o}),n.emptyTurnRetry.delete(r),Xu(n.queue,d.message),await Pr(e,n,t)})().catch(a=>{e.log("codex.fate_ladder_hold_dispatch_failed",{queued_seq:r,message:a instanceof Error?a.message:String(a)})})},i);s.unref?.(),n.rateLimitHoldTimers.set(r,s)}function mF(e,n,t){let r={last_seq:t};return n.kandanThreadId===void 0?r:{...r,runner_id:e,thread_id:n.kandanThreadId}}async function oc(e,n){if(n.codexThreadId===void 0)return;let t=e.options.channelSession;await oo(e.kandan,e.topic,"session:bind",{workspace:t.workspaceSlug,channel:t.channelSlug,thread_id:n.kandanThreadId??null,codex_thread_id:n.codexThreadId,instance_id:e.instanceId})}function jce(e,n,t,r,o){return{pipeline:void 0,rootSeq:n,kandanThreadId:t,kandanThreadTitle:void 0,codexThreadId:r,turn:{status:"idle"},closed:!1,minSeq:e,seenSeq:e,failedSeqs:new Map,drainInFlight:!1,drainRequested:!1,deadWorkerRebuildAttempts:0,emptyTurnRetry:new Map,midStreamResumeAttempts:new Map,fateLadderRuns:new Map,rateLimitHoldTimers:new Map,rateLimitResetAtMs:void 0,threadRebindAttempts:new Map,boundStartTimeout:!1,undeliveredCloudTerminals:new Map,fusedQueuedSeqs:new Map,reconnectRetryTimer:void 0,reconnectRetryAttempts:0,queue:bj(),forwardedTurnIds:new Set,recoveredTurnIds:new Set,stopAbortedStartingSeqs:new Set,pendingInterruptedThreadOnlyCompletions:[],claimedKandanMessageKeys:new Set,steeredKandanMessageSeqs:new Set,localTuiTurnIds:new Set,pendingStartingCompletionTurnIds:new Set,mirroredTuiInputProjections:Bp(bo),pendingTuiInputMirrors:new Map,turnReplyTargets:Bp(bo),turnRuntimeSettingsBySourceSeq:Bp(bo),localTuiTurnRuntimeSettingsByTurnId:Bp(bo),pendingApprovalRequests:new Map,approvalPromptChain:Promise.resolve(),approvedThreadInteractionRequesters:new Set,pendingPortForwardRequests:new Map,portForwardPreviousProcessingStates:new Map,queuedPortForwardCandidates:new Map,approvedForwardPorts:new Set,approvedForwardTargets:new Map,dismissedForwardTargets:new Map,portForwardWatcher:void 0,activeProcessingState:void 0,pendingReconnectContextInjection:void 0,linzumiContext:qs(o.channelSession.linzumiContext),typingHeartbeat:void 0,typingHeartbeatInFlight:!1,codexTypingActive:!1,pendingCompletionTypingStops:new Map,runtimeSettings:spe(o),pendingRuntimeSettingsResume:!1,runtimeSettingsGeneration:0,runtimeSettingsResumeChain:Promise.resolve(),streamEventTick:0,idleStreamTimer:void 0,idleStreamGuardTurnId:void 0,idleStreamEventSeen:!1,idleStreamOpenLocalExecItemIds:new Set,idleStreamDeferralLogged:!1,idleStreamQuietSinceMs:void 0,idleStreamModelWaitDeferralLogged:!1,idleStreamKillGrace:void 0}}async function Fce(e,n,t,r){qce(e,n,r),await ele(e,n,t,r),await Yce(e,n,r)}function qce(e,n,t){let r=n.queuedPortForwardCandidates.get(t.port);r===void 0||!qr(r,t)||(n.queuedPortForwardCandidates.delete(t.port),e.log("port_forward.queued_request_dropped",{port:t.port,pid:t.pid,reason:"listener_exited"}))}function MF(e,n,t){if(e.options.enablePortForwardWatch!==!0||n.portForwardWatcher!==void 0||n.kandanThreadId===void 0||n.codexThreadId===void 0)return;let{start:r,...o}=e.options.portForwardWatcher??{};if(r===void 0&&o.rootPid===void 0){e.log("port_forward.watch_skipped",{reason:"worker_pid_missing"});return}let i=r??ec;for(let s of e.options.initialForwardPorts??[])n.approvedForwardPorts.add(s);n.portForwardWatcher=i({...o,watchPorts:[...o.watchPorts??[],...e.options.initialForwardPorts??[]],extraWatchPorts:o.extraWatchPorts??my(Za(e.options.runnerId)),onCandidate:s=>pk(e,n,t,s),onCandidateLost:s=>Fce(e,n,t,s),onListenersObserved:s=>ag(`channel-session:${n.kandanThreadId??e.instanceId}`,s.filter(a=>a.portKind!=="commander_bound")),onError:s=>e.log("port_forward.watch_failed",{message:s.message})})}async function zce(e,n,t){let r=e.options.channelSession,o=t.codexVersion;if(n.kandanThreadId===void 0){n.codexThreadId=await sk(e.codex,e.options);let i=await oo(e.kandan,e.topic,"session:announce",{workspace:r.workspaceSlug,channel:r.channelSlug,body:JO(e.options,o,n.codexThreadId),payload:Ba(e.options,e.instanceId,"availability",n.codexThreadId,t),client_message_id:`local-codex-root-${e.instanceId}`});n.rootSeq=X(i.seq),n.rootSeq!==void 0&&(n.minSeq=Math.max(n.minSeq,n.rootSeq))}else if(r.startCodexThread===!0)n.codexThreadId=await sk(e.codex,e.options),await gF(e,n),await oc(e,n);else if(n.codexThreadId!==void 0)await gF(e,n),await oc(e,n);else{let i=await oo(e.kandan,e.topic,"session:resolve_thread_session",{workspace:r.workspaceSlug,channel:r.channelSlug,thread_id:n.kandanThreadId});if(n.rootSeq=X(i.seq),n.codexThreadId=h(i.codex_thread_id),Ey(n,NF(i.message)),n.codexThreadId===void 0)throw new Error("Kandan thread root metadata did not include a Codex thread id");await oc(e,n)}}async function Nce(e,n,t){if(n.turn.status!=="completing")return;let{turnId:r,queuedSeq:o}=n.turn;n.turn={status:"idle"},Ya(n,o),os(n,r),Oy(n,r),rs(n,r),await Si(e,n),n.kandanThreadId!==void 0&&await pf(e,n,n.kandanThreadId,o,{status:"processed"}),e.log("codex.completing_turn_recovered",{turn_id:r,queued_seq:o,reason:t})}async function AF(e,n,t,r,o){ck(e,t,r),n.turn={status:"idle"},Ya(n,o),os(n,r),Oy(n,r),n.pendingInterruptedThreadOnlyCompletions.push({threadId:t,interruptedTurnId:r,interruptedQueuedSeq:o}),Xle(n.pendingInterruptedThreadOnlyCompletions,bo),rs(n,r),ic(n,r),My(n,r,new Error("Codex turn interrupted")),n.kandanThreadId!==void 0&&await pf(e,n,n.kandanThreadId,o,{status:"processed"},void 0,void 0,n.codexThreadId),await Si(e,n)}function ck(e,n,t){e.codex.request("turn/interrupt",{threadId:n,turnId:t}).catch(r=>{e.log("codex.turn_interrupt_failed",{thread_id:n,turn_id:t,message:r instanceof Error?r.message:String(r)})})}async function Uce(e,n,t,r){if(r.type==="update_session_settings")return Wce(e,n,t,r);if(r.type==="resolve_codex_approval_request")return Zce(e,n,r);if(r.type==="resolve_port_forward_request")return LF(e,n,t,r);if(r.type==="update_thread_interaction_access")return Kce(e,n,r);if(r.type==="stop_turn")return Jce(e,n,t,r);if(r.type==="steer_turn")return Bce(e,n,t,r);if(r.type!=="interrupt_queued_messages"||n.codexThreadId!==r.threadId)return;if(n.codexThreadId===void 0||n.kandanThreadId===void 0)return{instanceId:e.instanceId,ok:!1,error:"thread_not_bound"};let o=Sj(n.queue,r.throughSeq),i=IS(n.turn),s=n.turn.status==="completing"?n.turn.queuedSeq:void 0,a=QS(r.throughSeq,i)||QS(r.throughSeq,s);if(!o.ok&&!a)return{instanceId:e.instanceId,ok:!1,error:"queue_empty"};switch(n.turn.status){case"active":await AF(e,n,n.codexThreadId,n.turn.turnId,n.turn.queuedSeq);break;case"starting":n.turn=hj(n.turn);break;case"completing":QS(r.throughSeq,n.turn.queuedSeq)&&await Nce(e,n,"interrupt requested");break;case"idle":break}if(e.log("codex.queued_messages_interrupted",{through_seq:r.throughSeq??null,selected_count:o.ok?o.selectedCount:0,remaining_count:o.ok?o.remainingCount:Zo(n.queue)}),o.ok)for(let d of o.selectedSeqs)await tt(e,n.kandanThreadId,d,{status:"processing",reason:"interrupt requested"},void 0,void 0,n.codexThreadId);return await Pr(e,n,t),{instanceId:e.instanceId,ok:!0,interruptedQueuedMessages:o.ok?o.selectedCount:0}}async function Bce(e,n,t,r){if(r.agentProvider==="claude-code"||!(n.kandanThreadId!==void 0&&n.kandanThreadId===r.threadId||r.providerSessionKey!==void 0&&n.codexThreadId===r.providerSessionKey||n.codexThreadId!==void 0&&n.codexThreadId===r.threadId))return;let i=X(r.sourceSeq);if(i===void 0)return;if(n.kandanThreadId===void 0||n.codexThreadId===void 0)return{instanceId:e.instanceId,controlType:r.type,agentProvider:"codex",ok:!1,error:"thread_not_bound"};let s=n.kandanThreadId,a=Np(n.queue,i);if(!(!a&&Dy(e,n,s,i)))return n.steeredKandanMessageSeqs.has(i)&&await tt(e,s,i,{status:"processed",reason:qp},void 0,void 0,n.codexThreadId),e.log("kandan.steer_duplicate_ignored",{seq:i,linzumi_thread_id:s,codex_thread_id:n.codexThreadId,reason:a?"seq_already_pending_in_queue":"duplicate_message_claim",previously_steered:n.steeredKandanMessageSeqs.has(i)}),{instanceId:e.instanceId,controlType:r.type,agentProvider:"codex",threadId:r.threadId,duplicate:!0};let u=Ho(r.attachments??[]),c=r.workDescription??ey(r.input),l=async _=>{let w=c??"";return w.trim()===""&&u.length===0?(ale(e,n,s,i),{instanceId:e.instanceId,controlType:r.type,agentProvider:"codex",threadId:r.threadId,ok:!1,error:"steer_missing_message_body"}):(e.log("kandan.steer_parked_as_own_turn",{seq:i,linzumi_thread_id:s,codex_thread_id:n.codexThreadId??null,reason:_,turn_status:n.turn.status}),await JF(e,n,t,{seq:i,body:w,attachments:u,parkReason:_}),{instanceId:e.instanceId,controlType:r.type,agentProvider:"codex",threadId:r.threadId,steered:"queued_fallback",reason:_})};if(u.length>0)return l("attachments_require_own_turn");let p=n.turn.status==="active"?n.turn.turnId:void 0;if(p===void 0)return l(`turn_not_steerable_${n.turn.status}`);let m=Yg(r.input);if(m.length===0)return l("steer_input_empty");let f,y=Symbol("codex_steer_timeout");try{let _=await Promise.race([e.codex.request("turn/steer",{threadId:n.codexThreadId,expectedTurnId:p,input:m}),new Promise(w=>{f=setTimeout(()=>w(y),hF),f.unref?.()})]);if(_===y)return e.log("codex.steer_unconfirmed",{seq:i,linzumi_thread_id:s,codex_thread_id:n.codexThreadId,turn_id:p,timeout_ms:hF}),{instanceId:e.instanceId,controlType:r.type,agentProvider:"codex",threadId:r.threadId,ok:!1,error:"codex_steer_unconfirmed",message:"The engine did not confirm the steering message in time. It was not re-queued to avoid a duplicate; Linzumi will drive it to a visible outcome."};if("error"in _)return e.log("codex.steer_rejected",{seq:i,linzumi_thread_id:s,codex_thread_id:n.codexThreadId,turn_id:p,message:_.error.message}),l("engine_rejected_steer")}catch(_){return e.log("codex.steer_rejected",{seq:i,linzumi_thread_id:s,codex_thread_id:n.codexThreadId,turn_id:p,message:_ instanceof Error?_.message:String(_)}),l("engine_rejected_steer")}finally{f!==void 0&&clearTimeout(f)}if(n.steeredKandanMessageSeqs.add(i),n.steeredKandanMessageSeqs.size>ky){let _=n.steeredKandanMessageSeqs.size-ky;for(let w of Array.from(n.steeredKandanMessageSeqs).slice(0,_))n.steeredKandanMessageSeqs.delete(w)}return await tt(e,s,i,{status:"processed",reason:qp},void 0,void 0,n.codexThreadId),e.log("codex.steer_applied",{seq:i,linzumi_thread_id:s,codex_thread_id:n.codexThreadId,turn_id:p}),{instanceId:e.instanceId,controlType:r.type,agentProvider:"codex",threadId:r.threadId,steered:"steered_live"}}async function Jce(e,n,t,r){if(!(n.kandanThreadId!==void 0&&n.kandanThreadId===r.threadId||r.providerSessionKey!==void 0&&n.codexThreadId===r.providerSessionKey||n.codexThreadId!==void 0&&n.codexThreadId===r.threadId))return;if(n.codexThreadId===void 0||n.kandanThreadId===void 0)return{instanceId:e.instanceId,ok:!1,error:"thread_not_bound"};let i=n.codexThreadId,s=n.kandanThreadId,a;if(n.turn.status==="starting"){let b=n.turn.queuedSeq;await pce({stillStarting:()=>n.turn.status==="starting"&&n.turn.queuedSeq===b,capMs:lF()})||(a=b,Zle(n,b))}let d=a===void 0?[]:Xa(n,a),u=n.turn,c=Ha(u)??r.turnId,l=IS(u)??(u.status==="completing"?u.queuedSeq:void 0),p=u.status!=="idle"||Zo(n.queue)>0;c!==void 0&&My(n,c,new Error("stopped by user"));let m=!1;if(a!==void 0)e.log("codex.stop_turn_start_abort",{thread_id:i,kandan_thread_id:s,queued_seq:a,start_ack_wait_ms:lF()});else try{await e.codex.request("turn/interrupt",{threadId:i,turnId:c??null}),m=!0}catch(b){e.log("codex.stop_turn_interrupt_failed",{thread_id:i,turn_id:c??null,message:b instanceof Error?b.message:String(b)})}let f=ace(),y=!p||f<=0||await cce({currentTick:()=>n.streamEventTick,capMs:f}),_=!1;if((!y||a!==void 0)&&e.escalateEngineHalt!==void 0)try{await e.escalateEngineHalt(a!==void 0?"stopped by user (engine never acked turn start)":"stopped by user (engine unresponsive)"),_=!0}catch(b){e.log("codex.stop_turn_escalation_failed",{thread_id:i,message:b instanceof Error?b.message:String(b)})}let w=ES(n.queue),S=a!==void 0?"stopped by user (before the turn started)":_?"interrupted (engine killed after unresponsive stop)":"stopped by user",v=y||_;if(v&&(l!==void 0&&(await pf(e,n,s,l,{status:"interrupted",reason:S},void 0,void 0,i),Ya(n,l)),a!==void 0))for(let b of d)e.options.onLiveSourceSeqSettled?.({channel:e.options.channelSession.channelSlug,threadId:s,sourceSeq:b});c!==void 0&&(os(n,c),Oy(n,c),rs(n,c),ic(n,c)),n.turn={status:"idle"},BF(n);for(let b of w)for(let k of Wa(b))Dy(e,n,s,k);return await Si(e,n),e.log("codex.turn_stopped",{thread_id:i,kandan_thread_id:s,turn_id:c??null,had_live_activity:p,interrupt_acked:m,stream_events_ceased:y,escalated_kill:_,confirmed_halt:v,aborted_starting_seq:a??null,preserved_queued_messages:w.length}),v&&w.length>0&&Pr(e,n,t).catch(b=>{e.log("kandan.post_stop_queue_drain_failed",{kandan_thread_id:s,codex_thread_id:i,queue_depth:Zo(n.queue),message:b instanceof Error?b.message:String(b)})}),{instanceId:e.instanceId,controlType:r.type,ok:!0,agentProvider:"codex",threadId:s,stopped:v,streamEventsCeased:y,escalatedKill:_,confirmedHalt:v,abortedWedgedStart:a!==void 0,preservedQueuedMessages:w.length,...v?{}:{error:"stop_halt_unconfirmed"}}}function QS(e,n){return e===void 0||n===void 0?!1:n<=e}async function Kce(e,n,t){let r=OF(t);if(n.kandanThreadId!==t.threadId)return e.log("thread_interaction.access_update_ignored",{thread_id:t.threadId,expected_thread_id:n.kandanThreadId??null,requester_slug:t.requesterSlug??null,requester_user_id:t.requesterUserId??null,reason:"different_thread"}),{instanceId:e.instanceId,ok:!1,error:"different_thread"};if(r.length===0)return e.log("thread_interaction.access_update_ignored",{thread_id:t.threadId,requester_slug:t.requesterSlug??null,requester_user_id:t.requesterUserId??null,reason:"missing_requester"}),{instanceId:e.instanceId,ok:!1,error:"missing_requester"};for(let o of r)t.grant?n.approvedThreadInteractionRequesters.add(o):n.approvedThreadInteractionRequesters.delete(o);return e.log("thread_interaction.access_updated",{thread_id:t.threadId,requester_slug:t.requesterSlug??null,requester_user_id:t.requesterUserId??null,grant:t.grant}),{instanceId:e.instanceId,ok:!0,grant:t.grant}}function OF(e){if(e.threadId===void 0)return[];let n=[];return e.requesterUserId!==void 0&&n.push(`${e.threadId}:user:${e.requesterUserId}`),e.requesterSlug!==void 0&&e.requesterSlug.trim()!==""&&n.push(`${e.threadId}:slug:${e.requesterSlug}`),n}function Vce(e,n){return OF({threadId:n.threadId,requesterUserId:n.actorUserId,requesterSlug:n.actorSlug}).some(t=>e.approvedThreadInteractionRequesters.has(t))}async function Wce(e,n,t,r){if(n.codexThreadId===r.threadId)return n.codexThreadId===void 0?{instanceId:e.instanceId,ok:!1,error:"thread_not_bound"}:(n.runtimeSettings=ape(n.runtimeSettings,r),n.pendingRuntimeSettingsResume=!0,n.runtimeSettingsGeneration+=1,await Ple(e,n),upe(e,n).catch(o=>{e.log("kandan.session_settings_publish_failed",{message:o instanceof Error?o.message:String(o)})}),e.log("codex.session_settings_updated",{model:n.runtimeSettings.model??null,reasoning_effort:n.runtimeSettings.reasoningEffort??null,approval_policy:n.runtimeSettings.approvalPolicy??null,sandbox:n.runtimeSettings.sandbox??null,fast:n.runtimeSettings.fast??null,allow_port_forwarding_by_default:n.runtimeSettings.allowPortForwardingByDefault??null}),await Xce(e,n,t),await $F(e,n),{instanceId:e.instanceId,ok:!0,model:n.runtimeSettings.model??null,reasoningEffort:n.runtimeSettings.reasoningEffort??null,approvalPolicy:n.runtimeSettings.approvalPolicy??null,sandbox:n.runtimeSettings.sandbox??null,fast:n.runtimeSettings.fast??null,allowPortForwardingByDefault:n.runtimeSettings.allowPortForwardingByDefault??null})}async function Hce(e,n){let t=n.runtimeSettingsGeneration,o=n.runtimeSettingsResumeChain.catch(()=>{}).then(()=>Gce(e,n,t));return n.runtimeSettingsResumeChain=o.then(()=>{},()=>{}),await o}async function Gce(e,n,t){if(n.pendingRuntimeSettingsResume!==!0||n.closed||n.turn.status!=="idle"||nq(n))return!0;let r=n.codexThreadId;if(r===void 0)return!0;if(n.runtimeSettingsGeneration!==t)return!1;let o=t,i=n.runtimeSettings,s=iq(e.options,i),a={threadId:r,...bp(s)};e.log("codex.session_settings_resume_requested",{codex_thread_id:r,model:i.model??null,reasoning_effort:i.reasoningEffort??null,approval_policy:i.approvalPolicy??null,sandbox:i.sandbox??null,fast:i.fast??null,generation:o});let d=await e.codex.request("thread/resume",a);if("error"in d)throw new Error(`failed to resume Codex thread with updated settings: ${d.error.message}`);return n.pendingRuntimeSettingsResume===!0&&n.runtimeSettingsGeneration===o&&(n.pendingRuntimeSettingsResume=!1),e.log("codex.session_settings_resume_completed",{codex_thread_id:r,generation:o,current_generation:n.runtimeSettingsGeneration,pending:n.pendingRuntimeSettingsResume}),n.pendingRuntimeSettingsResume!==!0}async function $F(e,n){try{return await Hce(e,n)}catch(t){return e.log("codex.session_settings_resume_failed",{message:t instanceof Error?t.message:String(t)}),!1}}async function Zce(e,n,t){if(n.codexThreadId!==t.threadId)return;if(n.codexThreadId===void 0||n.kandanThreadId===void 0)return{instanceId:e.instanceId,ok:!1,error:"thread_not_bound"};let r=n.pendingApprovalRequests.get(ry(t.requestId,t.sourceSeq));if(r===void 0)return{instanceId:e.instanceId,ok:!1,error:"approval_request_not_found"};n.pendingApprovalRequests.delete(ry(t.requestId,t.sourceSeq));let o=t.decision==="approve"?"accept":"decline";return r.resolve({decision:o}),n.activeProcessingState={seq:r.sourceSeq,reason:"streaming response"},await tt(e,n.kandanThreadId,r.sourceSeq,{status:"processing",reason:"streaming response"},void 0,void 0,n.codexThreadId),e.log("codex.approval_request_resolved",{request_id:t.requestId,source_seq:t.sourceSeq,decision:t.decision,codex_decision:o}),{instanceId:e.instanceId,ok:!0}}async function rk(e,n,t){if(n.pendingPortForwardRequests.size>0||n.queuedPortForwardCandidates.size===0)return;let r=Array.from(n.queuedPortForwardCandidates.values()).sort((o,i)=>o.port-i.port)[0];r!==void 0&&(n.queuedPortForwardCandidates.delete(r.port),await pk(e,n,t,r))}async function LF(e,n,t,r){let o=n.pendingPortForwardRequests.get(r.requestId);if(o!==void 0&&!(r.threadId!==void 0&&n.codexThreadId!==r.threadId))return Qce(e,t,r)?(n.pendingPortForwardRequests.delete(r.requestId),r.decision==="deny"?(n.dismissedForwardTargets.set(o.port,mr(o)),await fk(e,n,o,{decision:"deny"}),await mk(e,n,o,"failed"),e.log("port_forward.request_denied",{request_id:r.requestId,port:o.port,pid:o.pid}),await rk(e,n,t),{instanceId:e.instanceId,ok:!0}):(await lk(e,n,o,{publishMessageState:!0,logEvent:"port_forward.request_approved"}),await rk(e,n,t),{instanceId:e.instanceId,ok:!0,port:o.port})):(e.log("port_forward.request_resolution_ignored",{request_id:r.requestId,actor_slug:r.actorSlug??null,actor_user_id:r.actorUserId??null,reason:"sender_not_allowed"}),{instanceId:e.instanceId,ok:!1,error:"sender_not_allowed"})}async function jF(e,n,t,r){let o=r==="listener_exited"?"port_forward_listener_exited":"port_forward_listener_changed";n.pendingPortForwardRequests.delete(t.requestId),await fk(e,n,t,{decision:"expired",reason:r}),await mk(e,n,t,"failed",o),e.log("port_forward.pending_request_expired",{request_id:t.requestId,port:t.port,pid:t.pid,reason:r})}async function lk(e,n,t,r){n.approvedForwardPorts.add(t.port),n.approvedForwardTargets.set(t.port,mr(t));let o=vi(t.command),i=e.options.onForwardPortApproved?.(t.port,{kandanThreadId:n.kandanThreadId??null,codexThreadId:n.codexThreadId??null,channelSlug:e.options.channelSession.channelSlug??null,processName:o?.appName??null,processIconKey:o?.iconKey??null,linzumiCliManaged:t.portKind==="commander_bound"});await fk(e,n,t,{decision:"approve",capabilities:i}),r.publishMessageState&&await mk(e,n,t,"processed"),e.log(r.logEvent,{request_id:t.requestId,port:t.port,pid:t.pid})}function Qce(e,n,t){return t.actorSlug===void 0&&t.actorUserId===void 0?!1:Sv(e.options.channelSession.listenUser,{actorSlug:t.actorSlug,actorUserId:t.actorUserId},n.runnerIdentity)}async function pk(e,n,t,r){if(n.kandanThreadId===void 0||n.codexThreadId===void 0){e.log("port_forward.prompt_skipped",{port:r.port,pid:r.pid,reason:"thread_not_bound"});return}let o=ef({candidate:r,threadBound:!0,suppressedPorts:new Set(e.options.suppressedForwardPorts?.()??[]),approvedPorts:n.approvedForwardPorts,approvedTargets:n.approvedForwardTargets,dismissedTargets:n.dismissedForwardTargets,pendingRequests:Array.from(n.pendingPortForwardRequests.values())}),i=!0;switch(o.type){case"skip":return;case"remember_approved_target":n.approvedForwardTargets.set(o.target.port,o.target);return;case"revoke_and_prompt":if(n.pendingPortForwardRequests.size>0&&!i){n.queuedPortForwardCandidates.set(r.port,r),e.log("port_forward.request_queued",{port:r.port,pid:r.pid,pending_count:n.pendingPortForwardRequests.size});return}if(await zF(e,n,o.revoked,o.reason),i){await XS(e,n,t,r);return}break;case"replace_pending":if(await jF(e,n,o.expired,o.reason),i){await XS(e,n,t,o.candidate);return}if(n.pendingPortForwardRequests.size>0){n.queuedPortForwardCandidates.set(o.candidate.port,o.candidate),e.log("port_forward.request_queued",{port:o.candidate.port,pid:o.candidate.pid,pending_count:n.pendingPortForwardRequests.size});return}break;case"prompt":if(i){await XS(e,n,t,r);return}if(n.pendingPortForwardRequests.size>0){n.queuedPortForwardCandidates.set(r.port,r),e.log("port_forward.request_queued",{port:r.port,pid:r.pid,pending_count:n.pendingPortForwardRequests.size});return}break}let s=`port-forward-${Py()}`,a=nf(r),d=qF(n);if(d===void 0){e.log("port_forward.prompt_skipped",{port:r.port,pid:r.pid,reason:"source_seq_missing"});return}let u=nc({requestId:s,sourceSeq:d,candidate:r});n.pendingPortForwardRequests.set(s,u),n.activeProcessingState!==void 0&&n.portForwardPreviousProcessingStates.set(s,n.activeProcessingState);let c=vi(r.command),l=c?.iconKey===void 0?void 0:`/web/process-icons/${c.iconKey}.png`,p=c?.appName??a;n.activeProcessingState={seq:d,reason:"awaiting approval",approval:{requestId:s,kind:"local_runner_port_forward",summary:`Make ${p} on port ${r.port} accessible on Linzumi?`,reason:yy(r),port:r.port,pid:r.pid,command:r.command,...r.cwd===void 0?{}:{cwd:r.cwd},...c?.appName===void 0?{}:{processName:p},...c?.iconKey===void 0?{}:{processIconKey:c.iconKey},...l===void 0?{}:{processIconPath:l},choices:[{decision:"approve",label:"Enable",description:`Allow Linzumi to proxy HTTP, HTTPS, and WebSocket traffic for runner port ${r.port}.`},{decision:"deny",label:"Deny",description:`Keep runner port ${r.port} private for this runner session.`}],allowedActorSlug:e.options.channelSession.listenUser,allowedActorUserId:e.options.channelSession.listenUser.toLowerCase()===(t.runnerIdentity.actorUsername??"").toLowerCase()?t.runnerIdentity.actorUserId:void 0}},await tt(e,n.kandanThreadId,d,{status:"processing",reason:"awaiting approval",approval:n.activeProcessingState.approval},void 0,void 0,n.codexThreadId),await nle(e,n,u,c),e.log("port_forward.request_pending",{request_id:s,port:r.port,pid:r.pid})}async function XS(e,n,t,r){let o=qF(n);if(o===void 0){e.log("port_forward.auto_approval_skipped",{port:r.port,pid:r.pid,reason:"source_seq_missing"});return}let i=nc({requestId:`port-forward-auto-${Py()}`,sourceSeq:o,candidate:r});await lk(e,n,i,{publishMessageState:!1,logEvent:"port_forward.request_auto_approved"})}async function Xce(e,n,t){for(let r of Array.from(n.pendingPortForwardRequests.values()))n.pendingPortForwardRequests.delete(r.requestId),await lk(e,n,r,{publishMessageState:!0,logEvent:"port_forward.request_auto_approved"});await FF(e,n,t)}async function FF(e,n,t){let r=Array.from(n.queuedPortForwardCandidates.values()).sort((o,i)=>o.port-i.port)[0];r!==void 0&&(n.queuedPortForwardCandidates.delete(r.port),await pk(e,n,t,r),await FF(e,n,t))}function qF(e){return e.activeProcessingState?.seq??e.rootSeq}async function zF(e,n,t,r){n.approvedForwardPorts.delete(t.port),n.approvedForwardTargets.delete(t.port);let o=e.options.onForwardPortRevoked?.(t.port);await sc(e.kandan,e.topic,"forward_port_revoked",{instanceId:e.instanceId,port:t.port,pid:t.pid,command:t.command,...t.cwd===void 0?{}:{cwd:t.cwd},reason:r,capabilities:Us(o,t.port)},e.log),e.log("port_forward.approved_port_revoked",{port:t.port,pid:t.pid,reason:r})}async function Yce(e,n,t){n.approvedForwardPorts.has(t.port)&&await zF(e,n,n.approvedForwardTargets.get(t.port)??t,"listener_exited")}async function ele(e,n,t,r){let o=Array.from(n.pendingPortForwardRequests.values()).find(i=>qr(mr(i),r));o!==void 0&&(await jF(e,n,o,"listener_exited"),await rk(e,n,t))}async function nle(e,n,t,r){await sc(e.kandan,e.topic,"forward_port_requested",{instanceId:e.instanceId,requestId:t.requestId,sourceSeq:t.sourceSeq,port:t.port,pid:t.pid,command:t.command,codexThreadId:n.codexThreadId??null,kandanThreadId:n.kandanThreadId??null,channelSlug:e.options.channelSession.channelSlug??null,...r?.appName===void 0?{}:{processName:r.appName},...r?.iconKey===void 0?{}:{processIconKey:r.iconKey},...t.cwd===void 0?{}:{cwd:t.cwd}},e.log)}async function fk(e,n,t,r){await sc(e.kandan,e.topic,"forward_port_resolved",{instanceId:e.instanceId,requestId:t.requestId,port:t.port,pid:t.pid,command:t.command,codexThreadId:n.codexThreadId??null,kandanThreadId:n.kandanThreadId??null,channelSlug:e.options.channelSession.channelSlug??null,...t.cwd===void 0?{}:{cwd:t.cwd},sourceSeq:t.sourceSeq,decision:r.decision,...r.reason===void 0?{}:{reason:r.reason},...r.capabilities===void 0?{}:{capabilities:r.capabilities}},e.log)}async function mk(e,n,t,r,o="port_forward_denied"){if(n.kandanThreadId===void 0)return;let i=n.portForwardPreviousProcessingStates.get(t.requestId);n.portForwardPreviousProcessingStates.delete(t.requestId);let s=n.activeProcessingState;if(s!==void 0&&s.seq===t.sourceSeq){let a=s.reason==="awaiting approval"&&s.approval.requestId===t.requestId;if(a){if(n.activeProcessingState=void 0,i!==void 0&&i.seq===t.sourceSeq){n.activeProcessingState=i,await tt(e,n.kandanThreadId,t.sourceSeq,iy(i),void 0,void 0,n.codexThreadId);return}switch(n.turn.status){case"active":case"completing":if(n.turn.queuedSeq===t.sourceSeq){n.activeProcessingState={seq:t.sourceSeq,reason:"running terminal command"},await tt(e,n.kandanThreadId,t.sourceSeq,{status:"processing",reason:"running terminal command"},void 0,void 0,n.codexThreadId);return}break;case"idle":case"starting":break}}if(!a){await tt(e,n.kandanThreadId,t.sourceSeq,iy(s),void 0,void 0,n.codexThreadId);return}}switch(r){case"processed":await tt(e,n.kandanThreadId,t.sourceSeq,{status:"processed"},void 0,void 0,n.codexThreadId);break;case"failed":await tt(e,n.kandanThreadId,t.sourceSeq,{status:"failed",reason:o},void 0,void 0,n.codexThreadId);break}}function tle(e){let n=e.trim().match(/^\/kandan\s+(approve|deny)-port-forward\s+(\S+)$/i);if(n!==null)return{decision:n[1]?.toLocaleLowerCase()==="approve"?"approve":"deny",requestId:n[2]??""}}function df(e){let n=e.replace(/\s+/g," ").trim();return n.length<=50?n:`${n.slice(0,47)}...`}function Ey(e,n){n!==void 0&&(e.kandanThreadTitle=n)}function NF(e){return e===void 0?void 0:pg(e)?.threadTitle}function rle(e){if(Array.isArray(e))for(let n of e){let t=pg(n)?.threadTitle;if(t!==void 0)return t}}async function gF(e,n){if(n.kandanThreadId===void 0||n.kandanThreadTitle!==void 0)return;let t=e.options.channelSession,r=await oo(e.kandan,e.topic,"session:thread_context",{workspace:t.workspaceSlug,channel:t.channelSlug,thread_id:n.kandanThreadId});Ey(n,rle(r.messages))}async function ole(e,n,t,r,o){let i=e.options.channelSession;if(o.type!=="thread.message"){YS(e,o,"non_thread_message_event");return}if(o.threadId===void 0){YS(e,o,"missing_thread_id");return}if(o.body.trim()===""&&o.attachments.length===0){YS(e,o,"empty_thread_message");return}if(KO(o)){e.log("kandan.message_ignored",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,reason:"codex_authored"});return}let s=n.kandanThreadId!==void 0?o.threadId===n.kandanThreadId:n.rootSeq!==void 0&&o.replyToSeq===n.rootSeq;if(!Sv(i.listenUser,o,t)&&!Vce(n,o)&&!VO(i.linzumiAgentSession,o)){e.log("kandan.message_ignored",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,reason:"sender_not_allowed",thread_id:o.threadId??null,bound_thread_id:n.kandanThreadId??null,message_state_published:s}),s&&await Bs(e,o,{status:"ignored",reason:"sender_not_allowed"});return}if(o.body.trimStart().startsWith("&")){e.log("kandan.message_ignored",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,reason:"human_only",thread_id:o.threadId??null,bound_thread_id:n.kandanThreadId??null,message_state_published:s}),s&&await Bs(e,o,{status:"ignored",reason:"human_only"});return}let a=tle(o.body);if(a!==void 0){let u=await LF(e,n,r,{type:"resolve_port_forward_request",instanceId:e.instanceId,requestId:a.requestId,decision:a.decision,actorUserId:o.actorUserId,actorSlug:o.actorSlug});u===void 0?await Bs(e,o,{status:"failed",reason:"port_forward_decision_missing"}):u.ok===!0?await Bs(e,o,{status:"processed"}):await Bs(e,o,{status:"failed",reason:h(u.error)??"port_forward_decision_failed"});return}if(n.kandanThreadId===void 0)if(n.rootSeq===void 0||o.replyToSeq!==n.rootSeq){if(!await dle(e,n,o)){e.log("kandan.message_ignored",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,reason:"not_root_reply"}),await Bs(e,o,{status:"ignored",reason:"not_root_reply"});return}}else n.kandanThreadId=o.threadId,dk(e,n);if(MF(e,n,r),o.threadId!==n.kandanThreadId){if(e.options.onUnroutedThreadMessage!==void 0)try{let u=await e.options.onUnroutedThreadMessage(o);if(u==="spawned"){e.log("kandan.message_spawn_on_miss",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,thread_id:o.threadId??null,bound_thread_id:n.kandanThreadId??null,body_preview:df(o.body)});return}if(u==="spawned_deduped")return}catch(u){e.log("kandan.message_spawn_on_miss_failed",{seq:o.seq,thread_id:o.threadId??null,message:u instanceof Error?u.message:String(u)})}e.log("kandan.message_ignored",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,reason:"different_thread",thread_id:o.threadId??null,bound_thread_id:n.kandanThreadId??null,codex_thread_id:n.codexThreadId??null,body_preview:df(o.body)});return}if(Ey(n,o.threadTitle),!sle(e,n,o)){e.log("kandan.message_ignored",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,reason:"duplicate_message_claim"});return}let d=Date.now();RS(n.queue,{seq:o.seq,actorSlug:o.actorSlug,actorUserId:o.actorUserId,body:o.body,attachments:o.attachments,receivedAtMs:d}),e.log("kandan.message_queued",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,linzumi_thread_id:n.kandanThreadId??null,codex_thread_id:n.codexThreadId??null,runner_console:{body_preview:df(o.body),message_received_at_ms:d,...n.kandanThreadTitle===void 0?{}:{linzumi_thread_title:n.kandanThreadTitle}},queue_depth:Zo(n.queue)}),await Bs(e,o,UF(n),"sent"),await Pr(e,n,r)}function UF(e,n){let t=Zo(e.queue);return e.turn.status!=="idle"?{status:"queued",reason:n===void 0?Zu(t):SS(t,n)}:t>1?{status:"queued",reason:pj(t-1)}:{status:"queued"}}async function ile(e,n){let t=ES(n.queue);await Promise.all(t.map((r,o)=>uf(e,n,r,{status:"queued",reason:r.parkReason===void 0?Zu(o+1):SS(o+1,r.parkReason)},"sent")))}function YS(e,n,t){e.log("kandan.message_ignored",{seq:n.seq,type:n.type,thread_id:n.threadId??null,actor_slug:n.actorSlug??null,actor_user_id:n.actorUserId??null,body_length:n.body.length,attachment_count:n.attachments.length,local_runner_event_type:n.localRunnerEventType??null,reason:t})}function hk(e,n,t){let r=e.options.channelSession;return[e.options.runnerId,e.instanceId,r.workspaceSlug,r.channelSlug,n,String(t)].join(":")}function sle(e,n,t){return Dy(e,n,t.threadId,t.seq)}function Dy(e,n,t,r){if(t===void 0)return!0;let o=hk(e,t,r);if(rc.has(o))return!1;if(rc.add(o),n.claimedKandanMessageKeys.add(o),n.claimedKandanMessageKeys.size>ky){let i=n.claimedKandanMessageKeys.size-ky,s=Array.from(n.claimedKandanMessageKeys).slice(0,i);for(let a of s)n.claimedKandanMessageKeys.delete(a),rc.delete(a)}return!0}function BF(e){for(let n of e.claimedKandanMessageKeys)rc.delete(n);e.claimedKandanMessageKeys.clear()}function ale(e,n,t,r){let o=hk(e,t,r);rc.delete(o),n.claimedKandanMessageKeys.delete(o)}async function JF(e,n,t,r){if(n.kandanThreadId===void 0||n.codexThreadId===void 0)throw new Error("cannot start a local Codex turn before thread binding");if(r.dedupBySeq===!0){if(Np(n.queue,r.seq))return e.log("kandan.message_duplicate_ignored",{seq:r.seq,linzumi_thread_id:n.kandanThreadId,codex_thread_id:n.codexThreadId,reason:"seq_already_pending_in_queue"}),"duplicate";if(!Dy(e,n,n.kandanThreadId,r.seq))return e.log("kandan.message_duplicate_ignored",{seq:r.seq,linzumi_thread_id:n.kandanThreadId,codex_thread_id:n.codexThreadId,reason:"duplicate_message_claim"}),"duplicate"}r.boundStartTimeout===!0&&(n.boundStartTimeout=!0);let o={seq:r.seq,actorSlug:r.actorSlug,actorUserId:r.actorUserId,body:r.body,attachments:r.attachments??[],receivedAtMs:Date.now(),parkReason:r.parkReason};return RS(n.queue,o),e.log("kandan.message_queued",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,linzumi_thread_id:n.kandanThreadId??null,codex_thread_id:n.codexThreadId??null,runner_console:{body_preview:df(o.body),message_received_at_ms:o.receivedAtMs??Date.now(),...n.kandanThreadTitle===void 0?{}:{linzumi_thread_title:n.kandanThreadTitle}},queue_depth:Zo(n.queue)}),await uf(e,n,o,UF(n,o.parkReason),"sent"),await Pr(e,n,t),"queued"}async function dle(e,n,t){if(t.threadId===void 0||t.replyToSeq===void 0)return!1;let r=e.options.channelSession;try{let o=await oo(e.kandan,e.topic,"session:resolve_thread_session",{workspace:r.workspaceSlug,channel:r.channelSlug,thread_id:t.threadId}),i=X(o.seq),s=h(o.codex_thread_id),a=NF(o.message);return i!==t.replyToSeq||s===void 0?!1:(n.rootSeq=i,n.kandanThreadId=t.threadId,dk(e,n),Ey(n,t.threadTitle??a),n.codexThreadId=s,await oc(e,n),e.log("kandan.thread_bound_from_historical_reply",{seq:t.seq,kandan_thread_id:t.threadId,root_seq:i,codex_thread_id:s}),!0)}catch(o){return e.log("kandan.thread_bind_from_historical_reply_failed",{seq:t.seq,kandan_thread_id:t.threadId,message:o instanceof Error?o.message:String(o)}),!1}}async function ule(e,n,t,r,o){for(;o.pending.length>0;){let i=o.pending.splice(0).sort((s,a)=>s.seq-a.seq);for(let s of i)await KF(e,n,t,s,r)}o.ready=!0}async function KF(e,n,t,r,o){if(!(r.seq<=n.seenSeq)){GO(r.threadId,r.traceparent),n.seenSeq=r.seq,e.log("kandan.chat_event",{seq:r.seq,type:r.type,actor_slug:r.actorSlug??null,actor_user_id:r.actorUserId??null,thread_id:r.threadId??null,reply_to_seq:r.replyToSeq??null,local_runner_event_type:r.localRunnerEventType??null});try{await ole(e,n,t,o,r),n.minSeq=Math.max(n.minSeq,r.seq),n.failedSeqs.delete(r.seq)&&e.log("kandan.chat_event_failure_cleared",{seq:r.seq})}catch(i){let s=i instanceof Error?i.message:String(i),a=ple(e,n,r.seq);e.log("kandan.chat_event_failed",{seq:r.seq,attempts:a,message:s}),a>=_ce&&await fle(e,n,r,s,a),mle(e,n,r),Pr(e,n,o)}}}function cle(e){let n=lle(e);return n===void 0?e.minSeq:Math.min(e.minSeq,n-1)}function lle(e){let n;for(let t of e.failedSeqs.keys())(n===void 0||t<n)&&(n=t);return n}function ple(e,n,t){let r=(n.failedSeqs.get(t)??0)+1;if(n.failedSeqs.set(t,r),n.failedSeqs.size>xce){let o=t;for(let i of n.failedSeqs.keys())i>o&&(o=i);n.failedSeqs.delete(o),e.log("kandan.failed_seq_overflow",{evicted_seq:o,tracked:n.failedSeqs.size})}return r}async function fle(e,n,t,r,o){n.failedSeqs.delete(t.seq),n.minSeq=Math.max(n.minSeq,t.seq),e.log("kandan.chat_event_abandoned",{seq:t.seq,attempts:o,message:r}),!(Np(n.queue,t.seq)||VF(n,t.seq))&&await Bs(e,t,{status:"failed",reason:"chat_event_abandoned"})}function mle(e,n,t){if(t.threadId===void 0||Np(n.queue,t.seq)||VF(n,t.seq))return;let r=hk(e,t.threadId,t.seq);n.claimedKandanMessageKeys.delete(r)&&rc.delete(r)}function VF(e,n){let t=e.turn;switch(t.status){case"starting":case"active":case"completing":return Xa(e,t.queuedSeq).includes(n);case"idle":return!1}}async function Pr(e,n,t){if(n.drainInFlight){n.drainRequested=!0;return}n.drainInFlight=!0;try{do n.drainRequested=!1,await hle(e,n,t);while(n.drainRequested)}finally{n.drainInFlight=!1}}async function hle(e,n,t){if(await _F(e,n)||bF(e,n))return;if(!await $F(e,n)){sf(e,n,"runtime_settings_resume_pending");return}if(bF(e,n))return;let o=wj(n.queue);if(o!==void 0){_le(n,o),ble(n,o),n.turn={status:"starting",queuedSeq:o.seq,interruptAfterStart:!1},n.activeProcessingState={seq:o.seq,reason:"starting turn"},e.log("codex.turn_starting",{queued_seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,linzumi_thread_id:n.kandanThreadId??null,codex_thread_id:n.codexThreadId??null,runner_console:{body_preview:df(o.body),message_received_at_ms:o.receivedAtMs??Date.now(),...n.kandanThreadTitle===void 0?{}:{linzumi_thread_title:n.kandanThreadTitle}},queue_depth:Zo(n.queue)}),await uf(e,n,o,{status:"processing",reason:"starting turn"},"sent"),await ile(e,n),await Fp({cwd:e.options.cwd,threadKey:uk(e,n),turnRef:`seq-${o.seq}`,log:(i,s)=>e.log(i,s)});try{let i=n.codexThreadId;if(i===void 0)throw new Error("Codex thread is not bound");n.kandanThreadId!==void 0&&gk(e,n,n.kandanThreadId);let s=n.runtimeSettings;if(e.options.cloudAgentTurn!==void 0){let p=await CF(e,o,n.pendingReconnectContextInjection);n.pendingReconnectContextInjection=void 0;let m=`cloud-${Py()}`;n.turn={status:"active",turnId:m,queuedSeq:o.seq},ik(n,o.seq,s),ok(n,m,o.seq),n.threadRebindAttempts.delete(o.seq),e.log("codex.cloud_turn_started",{turn_id:m,queued_seq:o.seq,linzumi_thread_id:n.kandanThreadId??null});try{await e.options.cloudAgentTurn({input:p,runtimeSettings:s,kandanThreadId:n.kandanThreadId,codexThreadId:i,sourceSeq:o.seq}),tk(e,n,t,m,"completed",void 0,void 0,!0)}catch(f){e.log("codex.cloud_turn_failed",{turn_id:m,queued_seq:o.seq,message:f instanceof Error?f.message:String(f)}),tk(e,n,t,m,"failed",f instanceof Error?f.message:String(f),void 0,!0)}return}let a=n.boundStartTimeout;n.boundStartTimeout=!1;let d=e.codex.request("turn/start",{threadId:i,input:await CF(e,o,n.pendingReconnectContextInjection),...p$(iq(e.options,s))}),u=a?await Qo("turn/start",d):await d,c=lpe(u);if(SF(n,o.seq)){ck(e,i,c),os(n,c),Oy(n,c),rs(n,c),ic(n,c),e.log("codex.turn_start_ack_after_stop_abort",{turn_id:c,queued_seq:o.seq,linzumi_thread_id:n.kandanThreadId??null,codex_thread_id:n.codexThreadId??null});return}n.pendingReconnectContextInjection=void 0;let l=n.turn.status==="starting"&&n.turn.interruptAfterStart;n.turn={status:"active",turnId:c,queuedSeq:o.seq},ak(e,n,c),npe(e,n,t,c),ik(n,o.seq,s),ok(n,c,o.seq),n.threadRebindAttempts.delete(o.seq),e.log("codex.turn_started",{turn_id:c}),l&&(await AF(e,n,i,c,o.seq),await Pr(e,n,t))}catch(i){if(SF(n,o.seq)){e.log("codex.turn_start_failed_after_stop_abort",{queued_seq:o.seq,linzumi_thread_id:n.kandanThreadId??null,codex_thread_id:n.codexThreadId??null,message:i instanceof Error?i.message:String(i)});return}if(Ty(e)){await Si(e,n),Xu(n.queue,o),n.turn={status:"idle"},Ya(n,o.seq),await _F(e,n);return}let s=Hle(i)&&n.kandanThreadId!==void 0,a=s?xle(n,o.seq):void 0,d=s&&a===void 0;if(d&&e.log("codex.thread_rebind_exhausted",{kandan_thread_id:n.kandanThreadId,codex_thread_id:n.codexThreadId??null,queued_seq:o.seq,max_attempts:wy,message:i instanceof Error?i.message:String(i)}),a!==void 0&&n.kandanThreadId!==void 0){let u=n.codexThreadId,c=n.kandanThreadId;try{await Si(e,n);let l=await sk(e.codex,e.options);n.codexThreadId=l,await oc(e,n),await ppe(e,u),e.options.onCodexThreadRebound?.({kandanThreadId:c,oldCodexThreadId:u,newCodexThreadId:l}),e.log("codex.thread_rebound",{linzumi_thread_id:n.kandanThreadId,old_codex_thread_id:u??null,new_codex_thread_id:l,rebind_attempt:a,max_attempts:wy}),await Wle(e,n,t,u,l);try{n.pendingReconnectContextInjection=await wle(e,n)}catch(p){n.pendingReconnectContextInjection=void 0,e.log("codex.thread_reconnect_context_failed",{kandan_thread_id:n.kandanThreadId,codex_thread_id:l,message:p instanceof Error?p.message:String(p)})}Xu(n.queue,o),xF>0&&await Js(xF),n.turn={status:"idle"},await Pr(e,n,t);return}catch(l){e.log("codex.thread_rebind_failed",{kandan_thread_id:n.kandanThreadId,old_codex_thread_id:u??null,message:l instanceof Error?l.message:String(l)})}}if(n.turn={status:"idle"},Ya(n,o.seq),n.threadRebindAttempts.delete(o.seq),await Si(e,n),await uf(e,n,o,{status:"failed",reason:d?`Codex could not recover this conversation's upstream thread after ${wy} restart attempts (${Qa(i)}). Send the message again to retry.`:Qa(i)}),e.log("codex.turn_start_failed",{queued_seq:o.seq,message:i instanceof Error?i.message:String(i)}),hce(i))throw i;Zo(n.queue)>0&&(n.drainRequested=!0)}}}function Ty(e){return e.codex.isClosed?.()===!0}function xle(e,n){let t=e.threadRebindAttempts.get(n)??0;if(!(t>=wy))return e.threadRebindAttempts.delete(n),e.threadRebindAttempts.set(n,t+1),is(e.threadRebindAttempts,yle),t+1}async function _F(e,n){if(!Ty(e))return!1;let t=vj(n.queue);if(t.length===0)return!1;let{codexThreadId:r,kandanThreadId:o}=n,i=e.options.rebuildOnDeadCodexWorker;e.log("kandan.queue_drain_dead_worker_rebuild",{codex_thread_id:r??null,kandan_thread_id:o??null,pending_count:t.length,attempt:n.deadWorkerRebuildAttempts+1,rebuild_available:i!==void 0});let s=async d=>{for(let u of t)try{await uf(e,n,u,{status:"failed",reason:d})}catch(c){e.log("kandan.queue_drain_dead_worker_fail_publish_failed",{codex_thread_id:r??null,seq:u.seq,message:c instanceof Error?c.message:String(c)})}};if(i===void 0||r===void 0||o===void 0)return await s("Codex worker for this thread exited and could not be respawned to resume the conversation."),!0;if(n.deadWorkerRebuildAttempts>=gle)return e.log("kandan.queue_drain_dead_worker_rebuild_exhausted",{codex_thread_id:r,kandan_thread_id:o,attempts:n.deadWorkerRebuildAttempts}),await s("Codex worker for this thread kept exiting on resume; giving up after several respawn attempts."),!0;n.deadWorkerRebuildAttempts+=1,n.closed=!0;let a=!1;try{a=await i({codexThreadId:r,kandanThreadId:o,pendingMessages:t})}catch(d){e.log("kandan.queue_drain_dead_worker_rebuild_failed",{codex_thread_id:r,kandan_thread_id:o,message:d instanceof Error?d.message:String(d)}),a=!1}return a||await s("Codex worker for this thread exited and could not be respawned to resume the conversation."),!0}function bF(e,n){return n.closed?(sf(e,n,"session_closed"),!0):n.turn.status!=="idle"?(sf(e,n,"turn_not_idle"),!0):n.pendingCompletionTypingStops.size>0?(sf(e,n,"completion_typing_stop_pending"),!0):nq(n)?(sf(e,n,"local_tui_turn_active"),!0):!1}function _le(e,n){let t=Wa(n);t.length<=1||(e.fusedQueuedSeqs.set(n.seq,t),is(e.fusedQueuedSeqs,bo))}function ble(e,n){let t=e.emptyTurnRetry.get(n.seq);e.emptyTurnRetry.set(n.seq,{message:n,attempts:t?.attempts??0}),is(e.emptyTurnRetry,of)}function wF(e,n){let t=e.emptyTurnRetry.get(n);return t!==void 0&&t.attempts<xo}function by(e,n){let t=e.emptyTurnRetry.get(n);if(t===void 0)return;if(t.attempts>=xo){e.emptyTurnRetry.delete(n);return}let r=t.attempts+1;return e.emptyTurnRetry.set(n,{message:t.message,attempts:r}),{message:t.message,attempts:r}}function Xa(e,n){let t=e.fusedQueuedSeqs.get(n);return t===void 0||t.length===0?[n]:t}async function pf(e,n,t,r,o,i,s,a){for(let d of Xa(n,r))await tt(e,t,d,o,i,s,a);n.fusedQueuedSeqs.delete(r)}function sf(e,n,t){let r=Zo(n.queue);r!==0&&e.log("kandan.queue_drain_blocked",{reason:t,queue_depth:r,turn_status:n.turn.status,active_turn_id:Ha(n.turn)??null,active_queued_seq:n.turn.status==="active"||n.turn.status==="completing"||n.turn.status==="starting"?n.turn.queuedSeq:null,codex_thread_id:n.codexThreadId??null,kandan_thread_id:n.kandanThreadId??null,local_tui_turn_count:n.localTuiTurnIds.size,pending_completion_typing_stop_count:n.pendingCompletionTypingStops.size})}async function wle(e,n){if(n.kandanThreadId===void 0)throw new Error("cannot fetch reconnect context without a Linzumi thread id");let t=e.options.channelSession,r=await oo(e.kandan,e.topic,"session:thread_context",{workspace:t.workspaceSlug,channel:t.channelSlug,thread_id:n.kandanThreadId}),o=ty(r.messages),i=e.options.reconnectContextSummarizer??_S(),s=await dj(o,i,n.linzumiContext);return e.log("codex.thread_reconnect_context_prepared",{codex_thread_id:n.codexThreadId??null,kandan_thread_id:n.kandanThreadId,context_message_count:o.length}),s}async function vle(e,n,t,r){let o=A(r.params)??{},i=XF(o),s=YF(o);if(n.closed||!eq(n,s,i))return;if(WF(n.runtimeSettings,r.method))return e.log("codex.server_request_auto_accepted",{method:r.method,turn_id:i??null}),{decision:"accept"};if(r.method==="mcpServer/elicitation/request"){let d=kle(o);return e.log(d==="accept"?"codex.mcp_elicitation_auto_accepted":"codex.mcp_elicitation_auto_declined",{method:r.method,server_name:HF(o)??null,tool_name:GF(o)??null,turn_id:i??null}),{action:d}}if(Sle(r.method)){if(i===void 0)throw new Error(`Codex approval request missing turn id: ${r.method}`);return Cle(e,n,r,i,t)}let a=`unhandled Codex app-server request: ${r.method}`;throw e.log("codex.server_request_unhandled",{method:r.method,turn_id:i??null}),i!==void 0&&await rq(e,n,i,a,t),new Error(a)}function WF(e,n){return e.approvalPolicy==="never"&&e.sandbox==="danger-full-access"&&(n==="item/commandExecution/requestApproval"||n==="item/fileChange/requestApproval")}function Sle(e){return e==="item/commandExecution/requestApproval"||e==="item/fileChange/requestApproval"}function HF(e){return h(e.server_name)??h(e.serverName)??h(e.server)}function GF(e){return h(e.tool_name)??h(e.toolName)??h(e.tool)}function kle(e){let n=HF(e);if(n!==void 0)return n==="linzumi"?"accept":"decline";let t=GF(e);return t!==void 0&&(t.startsWith("linzumi_")||t.startsWith("mcp__linzumi__"))?"accept":"decline"}async function Cle(e,n,t,r,o){let i=n.approvalPromptChain.then(async()=>{if(WF(n.runtimeSettings,t.method))return e.log("codex.approval_request_auto_approved",{request_id:String(t.id),source_seq:Qu(n.turn,r)??null,turn_id:r,method:t.method,reason:"full_access_enabled_while_queued"}),{decision:"accept"};let s=Qu(n.turn,r);if(s===void 0||n.kandanThreadId===void 0){let u=`Codex approval request has no active Kandan source message: ${t.method}`;throw await rq(e,n,r,u,o),new Error(u)}let a=fj(t);n.activeProcessingState={seq:s,reason:"awaiting approval",approval:a};let d=new Promise((u,c)=>{let l={requestId:a.requestId,sourceSeq:s,turnId:r,resolve:u,reject:c};n.pendingApprovalRequests.set(ry(l.requestId,l.sourceSeq),l)});return await tt(e,n.kandanThreadId,s,{status:"processing",reason:"awaiting approval",approval:a},void 0,void 0,n.codexThreadId),e.log("codex.approval_request_pending",{request_id:a.requestId,source_seq:s,turn_id:r,method:t.method}),d});return n.approvalPromptChain=i.then(()=>{},()=>{}),i}function Tle(e,n){let t=[...e.pendingApprovalRequests.values()];e.pendingApprovalRequests.clear(),t.forEach(r=>r.reject(n))}function My(e,n,t){for(let[r,o]of e.pendingApprovalRequests)o.turnId===n&&(e.pendingApprovalRequests.delete(r),o.reject(t))}async function Ple(e,n){if(n.runtimeSettings.approvalPolicy!=="never"||n.runtimeSettings.sandbox!=="danger-full-access"||n.pendingApprovalRequests.size===0)return;let t=[...n.pendingApprovalRequests.values()];n.pendingApprovalRequests.clear();let r;for(let o of t)o.resolve({decision:"accept"}),(r===void 0||o.sourceSeq>r)&&(r=o.sourceSeq);r!==void 0&&(n.activeProcessingState={seq:r,reason:"streaming response"});for(let o of t)n.kandanThreadId!==void 0&&await tt(e,n.kandanThreadId,o.sourceSeq,{status:"processing",reason:"streaming response"},void 0,void 0,n.codexThreadId),e.log("codex.approval_request_auto_approved",{request_id:o.requestId,source_seq:o.sourceSeq,reason:"full_access_enabled"})}async function Ile(e,n,t,r,o){if(!Ay(n,t))return;let i=w$(r);if(i===void 0)return;let s=e.options.tuiInputMirrorRetryDelaysMs??Sce;for(let a=0;;a+=1)try{await Rle(e,n,t,i,o);return}catch(d){let u=d instanceof Error?d.message:String(d),c=s[a];if(e.log("codex.tui_input_mirror_retry",{turn_id:t,item_key:i.itemKey,attempt:a+1,retry_in_ms:c??null,message:u}),c===void 0)throw n.pipeline?.notifyTurnMappingFailed(t,`local TUI input mirror failed: ${u}`),d;if(await Js(c),n.closed)return}}function Js(e){return new Promise(n=>{setTimeout(n,e)})}async function Rle(e,n,t,r,o){let i=Dle(t,r.body);if(ZF(n,i)!==void 0){Mle(n,i,r.itemKey);return}Fle(e,n);let s=n.kandanThreadId,a=n.codexThreadId;if(s===void 0||a===void 0)return;let d=e.options.channelSession,u=Vle(n,t)??n.runtimeSettings,c=await oo(e.kandan,e.topic,"session:post_thread_user_message",{workspace:d.workspaceSlug,channel:d.channelSlug,thread_id:s,body:r.body,payload:{...Ba(e.options,e.instanceId,"tui_input",a,o,void 0,void 0,u),...n.rootSeq===void 0?{}:{reply_to_seq:n.rootSeq}},client_message_id:Ele(e.instanceId,t,r.itemKey)}),l=X(c.seq);if(l===void 0)throw new Error("session:post_thread_user_message reply carried no seq for the TUI input mirror");ik(n,l,u),ok(n,t,l),QF(n,{logicalKey:i,turnId:t,seq:l,itemKeys:[r.itemKey]}),e.log("kandan.tui_input_mirrored",{turn_id:t,item_key:r.itemKey,actor_user_id:o.runnerIdentity.actorUserId??null,actor_slug:o.runnerIdentity.actorUsername??null})}function Ele(e,n,t){return`local-codex-tui-${TF("sha256").update(`${e}:${n}:${t}`).digest("hex").slice(0,32)}`}function Dle(e,n){return`local-codex-tui-input:${TF("sha256").update(`${e}:${n.trim()}`).digest("hex").slice(0,32)}`}function ZF(e,n){return Yu(e.mirroredTuiInputProjections,n)}function QF(e,n){Jp(e.mirroredTuiInputProjections,n.logicalKey,n)}function Mle(e,n,t){let r=ZF(e,n);r===void 0||r.itemKeys.includes(t)||QF(e,{...r,itemKeys:[...r.itemKeys,t]})}function XF(e){let n=A(e.turn),t=A(e.item),r=A(t?.turn);return h(n?.id)??h(e.turnId)??h(e.turn_id)??h(t?.turnId)??h(t?.turn_id)??h(r?.id)}function YF(e){let n=A(e.thread),t=A(e.turn);return h(e.threadId)??h(e.thread_id)??h(n?.id)??h(t?.threadId)??h(t?.thread_id)}function eq(e,n,t){return n!==void 0?e.codexThreadId===n:t===void 0?!1:Ha(e.turn)===t||Ay(e,t)}function Ale(e,n,t){if(t===void 0||n.codexThreadId!==t)return;switch(n.turn.status){case"active":case"completing":return $le(n,t,n.turn.queuedSeq),My(n,n.turn.turnId,new Error("Codex turn completed with thread-only notification")),e.log("codex.turn_completion_inferred",{thread_id:t,turn_id:n.turn.turnId,queued_seq:n.turn.queuedSeq,turn_status:n.turn.status}),n.turn.turnId;case"idle":case"starting":break}let r=Ole(n,t);if(r!==void 0){e.log("codex.thread_only_completion_after_interrupt_ignored",{thread_id:t,interrupted_turn_id:r.interruptedTurnId,interrupted_queued_seq:r.interruptedQueuedSeq,turn_status:n.turn.status});return}switch(n.turn.status){case"idle":case"starting":e.log("codex.turn_completion_without_turn_id",{thread_id:t,turn_status:n.turn.status,queued_seq:n.turn.status==="starting"?n.turn.queuedSeq:null});return}}function Ole(e,n){let t=e.pendingInterruptedThreadOnlyCompletions.findIndex(o=>o.threadId===n);if(t<0)return;let[r]=e.pendingInterruptedThreadOnlyCompletions.splice(t,1);return r}function vF(e,n,t){e.pendingInterruptedThreadOnlyCompletions=e.pendingInterruptedThreadOnlyCompletions.filter(r=>n!==void 0&&r.threadId!==n?!0:r.interruptedTurnId!==t)}function $le(e,n,t){e.pendingInterruptedThreadOnlyCompletions=e.pendingInterruptedThreadOnlyCompletions.filter(r=>r.threadId!==n||r.interruptedQueuedSeq>=t)}function Lle(e,n,t,r){if(!(r===void 0||n.codexThreadId!==r))switch(e){case"response_item":return Eg(t)===void 0?void 0:Ha(n.turn);case"item/agentMessage/delta":case"item/completed":case"warning":case"error":return Ha(n.turn);default:return}}function jle(e,n,t,r){e.options.launchTui!==!0||n.codexThreadId!==t||n.turn.status!=="idle"||($y(n.localTuiTurnIds,r,bo),Kle(n,r),n.kandanThreadId!==void 0&&gk(e,n,n.kandanThreadId),e.log("codex.tui_turn_started",{turn_id:r,codex_thread_id:t}))}function Ay(e,n){return e.localTuiTurnIds.has(n)}function nq(e){return e.localTuiTurnIds.size>0}function Fle(e,n){n.kandanThreadId!==void 0||n.rootSeq===void 0||(n.kandanThreadId=Py(),dk(e,n))}function rs(e,n){e.localTuiTurnIds.delete(n)}function qle(e,n,t){e.pendingTuiInputMirrors.delete(n),e.pendingTuiInputMirrors.set(n,t),is(e.pendingTuiInputMirrors,bo)}function zle(e,n){e.pendingTuiInputMirrors.delete(n)}function ok(e,n,t){Jp(e.turnReplyTargets,n,{turnId:n,replyToSeq:t}),e.pipeline?.notifyTurnMappingReady(n)}function ic(e,n){Mj(e.turnReplyTargets,n)}function Nle(e,n){return Yu(e.turnReplyTargets,n)?.replyToSeq}function ik(e,n,t){Jp(e.turnRuntimeSettingsBySourceSeq,n.toString(),t)}function Ule(e,n){return n===void 0?e.runtimeSettings:Yu(e.turnRuntimeSettingsBySourceSeq,n.toString())??{}}function Ble(e,n){if(n!==void 0)return Yu(e.turnRuntimeSettingsBySourceSeq,n.toString())}function Jle(e){return{model_provider:e.modelProvider??null,model:e.model??null,reasoning_effort:e.reasoningEffort??null,sandbox:e.sandbox??null,approval_policy:e.approvalPolicy??null,fast:e.fast??!1,allow_port_forwarding_by_default:e.allowPortForwardingByDefault??null}}function Kle(e,n){Jp(e.localTuiTurnRuntimeSettingsByTurnId,n,e.runtimeSettings)}function Vle(e,n){return Yu(e.localTuiTurnRuntimeSettingsByTurnId,n)}async function Wle(e,n,t,r,o){if(n.kandanThreadId===void 0)return;let i=e.options.channelSession;await oo(e.kandan,e.topic,"session:post_thread_message",{workspace:i.workspaceSlug,channel:i.channelSlug,thread_id:n.kandanThreadId,body:"[codex reconnected to new thread]",payload:Ba(e.options,e.instanceId,"availability",o,t),client_message_id:`local-codex-rebound-${e.instanceId}-${o}`})}function Hle(e){return e instanceof Error?e.message.includes("turn/start failed: thread not found")||e.message.includes("turn/start failed: invalid thread id"):!1}function os(e,n){e.forwardedTurnIds.has(n)||$y(e.forwardedTurnIds,n,bo)}function Oy(e,n){e.recoveredTurnIds.has(n)||$y(e.recoveredTurnIds,n,bo)}function Zle(e,n){for(e.stopAbortedStartingSeqs.delete(n),e.stopAbortedStartingSeqs.add(n);e.stopAbortedStartingSeqs.size>Gle;){let t=e.stopAbortedStartingSeqs.values().next().value;if(t===void 0)return;e.stopAbortedStartingSeqs.delete(t)}}function SF(e,n){return e.stopAbortedStartingSeqs.delete(n)}function $y(e,n,t){e.delete(n),e.add(n),Qle(e,t)}function Qle(e,n){for(;e.size>n;){let t=e.values().next().value;if(t===void 0)return;e.delete(t)}}function is(e,n){for(;e.size>n;){let t=e.keys().next().value;if(t===void 0)return;e.delete(t)}}function Xle(e,n){for(;e.length>n;)e.shift()}async function Si(e,n){if(rpe(n),!n.codexTypingActive||(n.codexTypingActive=!1,n.kandanThreadId===void 0))return;let t=e.options.channelSession;await sc(e.kandan,e.topic,"session:typing_stop",{workspace:t.workspaceSlug,channel:t.channelSlug,thread_id:n.kandanThreadId,instance_id:e.instanceId,codex_thread_id:n.codexThreadId??null},e.log)}function gk(e,n,t){n.codexTypingActive=!0;let r=()=>{if(n.typingHeartbeatInFlight)return;let o=e.options.channelSession;n.typingHeartbeatInFlight=!0,sc(e.kandan,e.topic,"session:typing_start",{workspace:o.workspaceSlug,channel:o.channelSlug,thread_id:t,instance_id:e.instanceId,codex_thread_id:n.codexThreadId??null},e.log).then(()=>oq(e,n)).catch(i=>{e.log("kandan.typing_heartbeat_failed",{message:i instanceof Error?i.message:String(i)})}).finally(()=>{n.typingHeartbeatInFlight=!1})};r(),n.typingHeartbeat===void 0&&(n.typingHeartbeat=setInterval(r,nce))}function tq(e,n,t,r){if(r===void 0||!Yle(n,r)||n.pendingCompletionTypingStops.has(r))return;let o=Si(e,n).catch(i=>{e.log("kandan.typing_stop_after_completion_failed",{turn_id:r,message:i instanceof Error?i.message:String(i)})});n.pendingCompletionTypingStops.set(r,o),is(n.pendingCompletionTypingStops,bo),o.finally(()=>{n.pendingCompletionTypingStops.get(r)===o&&n.pendingCompletionTypingStops.delete(r),Pr(e,n,t)})}function Yle(e,n){if(e.forwardedTurnIds.has(n))return!1;if(Ay(e,n))return!0;switch(e.turn.status){case"active":case"completing":return e.turn.turnId===n;case"idle":case"starting":return!1}}function epe(e,n){n===void 0||e.forwardedTurnIds.has(n)||$y(e.pendingStartingCompletionTurnIds,n,bo)}function npe(e,n,t,r){n.pendingStartingCompletionTurnIds.delete(r)&&tq(e,n,t,r)}async function tpe(e,n){let t=e.pendingCompletionTypingStops.get(n);if(t!==void 0)try{await t}finally{e.pendingCompletionTypingStops.get(n)===t&&e.pendingCompletionTypingStops.delete(n)}}function rpe(e){e.typingHeartbeat!==void 0&&(clearInterval(e.typingHeartbeat),e.typingHeartbeat=void 0)}async function Bs(e,n,t,r="acked"){n.threadId!==void 0&&await tt(e,n.threadId,n.seq,t,n.actorSlug,n.actorUserId,void 0,r)}async function uf(e,n,t,r,o="acked"){if(n.kandanThreadId!==void 0){if(r.status==="processed"||r.status==="failed"){await pf(e,n,n.kandanThreadId,t.seq,r,t.actorSlug,t.actorUserId,n.codexThreadId);return}await tt(e,n.kandanThreadId,t.seq,r,t.actorSlug,t.actorUserId,n.codexThreadId,o)}}async function kF(e,n,t,r,o){let i=e.options.cloudTerminalStatePushRetryDelaysMs??iS,s=i[0]??bce,a=e.options.cloudTerminalConnectionWaitBudgetMs??wce,d=0,u=0,c;for(;;)try{return await tt(e,n,t,r,void 0,void 0,o,"must_ack"),!0}catch(l){if(fS(l)){u+=1;let m=Date.now();c??=m;let f=m-c;if(f>=a)return e.log("codex.cloud_terminal_state_connection_wait_exhausted",{seq:t,status:r.status,connection_wait_attempts:u,elapsed_ms:f,budget_ms:a}),!1;e.log("codex.cloud_terminal_state_connection_wait",{seq:t,status:r.status,connection_wait_attempts:u,elapsed_ms:f}),s>0&&await Js(s);continue}let p=i[d];if(e.log("codex.cloud_terminal_state_push_failed",{seq:t,status:r.status,attempt:d+1,attempts_remaining:i.length-d,message:l instanceof Error?l.message:String(l)}),d+=1,p===void 0)return!1;p>0&&await Js(p)}}async function tt(e,n,t,r,o,i,s,a="acked"){let d=e.options.channelSession,u={workspace:d.workspaceSlug,channel:d.channelSlug,thread_id:n,instance_id:e.instanceId,...s===void 0?{}:{codex_thread_id:s},seq:t,status:r.status,..."reason"in r?{reason:r.reason}:{},...r.status==="failed"&&r.retryable===!0?{retryable:!0}:{},...r.status==="failed"&&yo(r.fate)?{fate:r.fate}:{},...r.status==="failed"&&r.ladder!==void 0?{ladder:r.ladder}:{},...r.status==="processing"&&r.approval!==void 0?{approval_request_id:r.approval.requestId,approval_kind:r.approval.kind,approval_summary:r.approval.summary,...r.approval.port===void 0?{}:{approval_port:r.approval.port},...r.approval.pid===void 0?{}:{approval_pid:r.approval.pid},...r.approval.command===void 0?{}:{approval_command:r.approval.command},...r.approval.cwd===void 0?{}:{approval_cwd:r.approval.cwd},...r.approval.processName===void 0?{}:{approval_process_name:r.approval.processName},...r.approval.processIconKey===void 0?{}:{approval_process_icon_key:r.approval.processIconKey},...r.approval.processIconPath===void 0?{}:{approval_process_icon_path:r.approval.processIconPath},...r.approval.reason===void 0?{}:{approval_reason:r.approval.reason},...r.approval.choices===void 0?{}:{approval_choices:r.approval.choices},...r.approval.allowedActorSlug===void 0?{}:{approval_allowed_actor_slug:r.approval.allowedActorSlug},...r.approval.allowedActorUserId===void 0?{}:{approval_allowed_actor_user_id:r.approval.allowedActorUserId}}:{},...o===void 0?{}:{actor_slug:o},...i===void 0?{}:{actor_user_id:i},...ope(n)};if(a==="must_ack"){await oo(e.kandan,e.topic,"message_state",u);return}await sc(e.kandan,e.topic,"message_state",u,e.log,a)}function ope(e){let n=mg(e);return n===void 0?{}:{traceparent:n}}async function rq(e,n,t,r,o){My(n,t,new Error(r));let i=Qu(n.turn,t);i!==void 0&&n.kandanThreadId!==void 0&&(await pf(e,n,n.kandanThreadId,i,{status:"failed",reason:r},void 0,void 0,n.codexThreadId),Ya(n,i)),rs(n,t),os(n,t),yj(n.turn,t)&&(n.turn={status:"idle"}),await Si(e,n),await Pr(e,n,o)}async function ipe(e,n,t,r){let o=Qu(n.turn,t);o===void 0||n.kandanThreadId===void 0||n.activeProcessingState?.seq===o&&n.activeProcessingState.reason===r||n.activeProcessingState?.seq===o&&n.activeProcessingState.reason==="awaiting approval"||(n.activeProcessingState={seq:o,reason:r},await tt(e,n.kandanThreadId,o,{status:"processing",reason:r},void 0,void 0,n.codexThreadId))}async function oq(e,n){let t=n.activeProcessingState;t===void 0||n.kandanThreadId===void 0||t.reason==="awaiting approval"&&t.approval.kind==="local_runner_port_forward"||await tt(e,n.kandanThreadId,t.seq,iy(t),void 0,void 0,n.codexThreadId)}function Ya(e,n){e.activeProcessingState?.seq===n&&(e.activeProcessingState=void 0)}async function CF(e,n,t=void 0){let r=await Dv({cwd:e.options.cwd,kandanUrl:e.options.kandanUrl,token:e.options.token,fetch:e.options.fetch,attachmentDirectoryName:"local-codex-attachments"},n),o=Mv(xS(n),r),i=e$(r);return[...t===void 0?[]:[t],{type:"text",text:o},...i]}function spe(e){return{modelProvider:e.channelSession.modelProvider,model:e.channelSession.model,reasoningEffort:e.channelSession.reasoningEffort,approvalPolicy:Fu(e.channelSession.approvalPolicy,e.channelSession.sandbox),sandbox:e.channelSession.sandbox,fast:e.fast,allowPortForwardingByDefault:e.channelSession.allowPortForwardingByDefault}}function ape(e,n){let t=ek(e.sandbox,n,"sandbox");return{modelProvider:e.modelProvider,model:ek(e.model,n,"model"),reasoningEffort:ek(e.reasoningEffort,n,"reasoningEffort"),approvalPolicy:dpe(e.approvalPolicy,n,t),sandbox:t,fast:n.fast??e.fast,allowPortForwardingByDefault:!0}}function dpe(e,n,t){return Object.prototype.hasOwnProperty.call(n,"approvalPolicy")?Fu(n.approvalPolicy??void 0,t):Fu(e,t)}function ek(e,n,t){return Object.prototype.hasOwnProperty.call(n,t)?n[t]??void 0:e}function iq(e,n){return{...e,fast:n.fast,channelSession:{...e.channelSession,modelProvider:n.modelProvider,model:n.model,reasoningEffort:n.reasoningEffort,approvalPolicy:n.approvalPolicy,sandbox:n.sandbox,allowPortForwardingByDefault:n.allowPortForwardingByDefault}}}async function upe(e,n){let t=e.options.channelSession;if(n.kandanThreadId===void 0||n.codexThreadId===void 0)throw new Error("cannot publish local Codex settings before thread binding");await oo(e.kandan,e.topic,"session:settings",{workspace:t.workspaceSlug,channel:t.channelSlug,thread_id:n.kandanThreadId,codex_thread_id:n.codexThreadId,modelProvider:n.runtimeSettings.modelProvider??null,model:n.runtimeSettings.model??null,reasoningEffort:n.runtimeSettings.reasoningEffort??null,approvalPolicy:n.runtimeSettings.approvalPolicy??null,sandbox:n.runtimeSettings.sandbox??null,fast:n.runtimeSettings.fast??null,allowPortForwardingByDefault:n.runtimeSettings.allowPortForwardingByDefault??null,updated_at:new Date().toISOString()})}function cpe(e){if("error"in e)throw new Error(`thread/start failed: ${e.error.message}`);let n=h(A(A(e.result)?.thread)?.id);if(n===void 0)throw new Error("thread/start response did not include thread.id");return n}function lpe(e){if("error"in e)throw new Error(`turn/start failed: ${e.error.message}`);let n=h(A(A(e.result)?.turn)?.id);if(n===void 0)throw new Error("turn/start response did not include turn.id");return n}async function ppe(e,n){if(n!==void 0)try{let t=await e.codex.request("thread/archive",{threadId:n});if("error"in t)throw new Error(`thread/archive failed: ${t.error.message}`);e.log("codex.thread_archived",{codex_thread_id:n})}catch(t){e.log("codex.thread_archive_failed",{codex_thread_id:n,message:t instanceof Error?t.message:String(t)})}}async function sk(e,n){let t=await e.request("thread/start",{cwd:n.cwd,serviceName:"kandan-local-runner",personality:"pragmatic",...fpe(n),...bp(n)});return cpe(t)}function fpe(e){let n=e.channelSession.developerPrompt;return n===void 0?{}:{developerInstructions:vp({cwd:e.cwd,planTool:"linzumi-mcp",mcpAvailable:e.mcpAvailable!==!1,devServicesAvailable:e.devServicesAvailable===!0,developerPrompt:n,linzumiContext:qs(e.channelSession.linzumiContext)})}}async function oo(e,n,t,r,o){let i=await e.push(n,t,r,o);if(Q(i)&&i.status==="ok"&&Q(i.response))return i.response;throw new Error(`kandan push failed: ${t}: ${JSON.stringify(i).slice(0,500)}`)}async function sc(e,n,t,r,o,i="acked"){if(i==="acked"){try{await oo(e,n,t,r)}catch(u){o("kandan.optional_push_failed",{event:t,message:u instanceof Error?u.message:String(u)})}return}let s=()=>{},a=new Promise(u=>{s=u}),d=(async()=>{try{await oo(e,n,t,r,()=>s())}catch(u){o("kandan.optional_push_failed",{event:t,message:u instanceof Error?u.message:String(u)})}finally{s()}})();await a}var nce,iF,sF,aF,dF,uF,dce,uce,cF,lce,pF,vy,Sy,xce,_ce,bo,ky,bce,wce,rc,fF,RF,rf,Sce,Cce,Ece,hF,gle,yF,of,wy,xF,yle,Gle,yk=F(()=>{"use strict";Lu();Tv();yg();vg();Fv();zv();Cp();F$();mS();sS();Jg();Kn();Xg();ny();qu();wS();sy();PS();xj();Cj();Bu();Dj();Mn();Aj();Ou();Yp();gy();VS();GS();tc();nce=5e3,iF=3e4;sF=15e4;aF=1e4;dF=3e5;uF=5e3;dce=250,uce=750;cF=2e3,lce=50;pF=12e4;vy=class extends Error{constructor(n,t){super(`Codex ${n} did not reply within ${t}ms (start request timed out)`),this.name="CodexStartRequestTimeoutError"}};Sy=class extends Error{constructor(n,t){super(`Codex ${n} did not reply within ${t}ms (completion snapshot request timed out)`),this.name="CodexCompletionSnapshotRequestTimeoutError"}};xce=256,_ce=5,bo=64,ky=1024,bce=1e3,wce=12e4,rc=new Set,fF=1,RF=[1e3,5e3,15e3],rf={baseDelayMs:15e3,maxDelayMs:6e4};Sce=[1e3,5e3,15e3];Cce=new Set(["commandExecution","terminalInput","mcpToolCall"]);Ece=1e4;hF=15e3;gle=3,yF=1500,of=64,wy=3,xF=1500,yle=64;Gle=64});import{existsSync as mpe,readFileSync as hpe}from"node:fs";import{Agent as gpe}from"undici";import ype from"ws";function Xo(){return xpe(process.env.KANDAN_TLS_CA_FILE)}function xpe(e){if(e===void 0||e.trim()==="")return;let n=e.trim();if(!mpe(n))throw new Error(`KANDAN_TLS_CA_FILE does not exist: ${n}`);let t=hpe(n,"utf8");return{caFile:n,ca:t,dispatcher:new gpe({connect:{ca:t}})}}function ac(e){return e===void 0?fetch:((n,t)=>{let r={...t??{},dispatcher:e.dispatcher};return fetch(n,r)})}function dc(e,n=ype){if(e!==void 0)return(t,r)=>{let o={ca:e.ca};return r===void 0?new n(t,o):new n(t,r,o)}}var Ly=F(()=>{"use strict"});function jy(e,n,t,r){let o=e===void 0?Number.NaN:Number.parseInt(e,10);return Number.isFinite(o)?Math.min(r,Math.max(t,o)):n}function sq(e){return{maxConcurrent:jy(e.LINZUMI_CLAUDE_RESUME_MAX_CONCURRENT_STARTS,2,1,64),spacingMs:jy(e.LINZUMI_CLAUDE_RESUME_START_SPACING_MS,2e3,0,6e4),maxWaitMs:jy(e.LINZUMI_CLAUDE_RESUME_START_MAX_WAIT_MS,6e4,1e3,6e5),defaultRateLimitBackoffMs:jy(e.LINZUMI_CLAUDE_RESUME_429_BACKOFF_MS,5e3,1e3,6e4)}}function aq(e,n=_pe){let t=0,r,o=[],i,s=(u,c)=>{if(u.settled)return;u.settled=!0,u.timeoutHandle!==void 0&&(n.clearTimeout(u.timeoutHandle),u.timeoutHandle=void 0);let l=o.indexOf(u);l!==-1&&o.splice(l,1),u.resolve(c)},a=u=>{i===void 0&&(i=n.setTimeout(()=>{i=void 0,d()},Math.max(0,u)))},d=()=>{let u=n.now();if(r!==void 0&&u<r){o.length>0&&a(r-u);return}for(r=void 0;o.length>0&&t<e.maxConcurrent;){let c=o.shift();c===void 0||c.settled||(t+=1,n.setTimeout(()=>{t-=1,d()},e.spacingMs),s(c,{waitedMs:u-c.enqueuedAtMs,timedOut:!1}))}};return{acquire:()=>new Promise(u=>{let c={enqueuedAtMs:n.now(),resolve:u,timeoutHandle:void 0,settled:!1};c.timeoutHandle=n.setTimeout(()=>{s(c,{waitedMs:e.maxWaitMs,timedOut:!0})},e.maxWaitMs),o.push(c),d()}),notifyRateLimited:u=>{let c=Math.min(6e4,Math.max(1e3,u.retryAfterMs??e.defaultRateLimitBackoffMs)),l=n.now()+c;(r===void 0||l>r)&&(r=l),o.length>0&&a(c)},pendingCount:()=>o.filter(u=>!u.settled).length,pausedUntilMs:()=>r}}function dq(e,n){let t=Array.isArray(e)?e[0]:e;if(t===void 0||t.trim()==="")return;let r=Number.parseInt(t.trim(),10);if(Number.isFinite(r)&&`${r}`===t.trim())return r<0?void 0:r*1e3;let o=Date.parse(t);if(!Number.isNaN(o))return Math.max(0,o-n)}var _pe,xk=F(()=>{"use strict";_pe={now:()=>Date.now(),setTimeout:(e,n)=>{let t=setTimeout(e,n);return t.unref?.(),t},clearTimeout:e=>{clearTimeout(e)}}});import{createServer as bpe}from"node:http";import{randomBytes as uq}from"node:crypto";import{request as wpe}from"undici";function pq(e,n){for(let t of n){let r=e[t];if(Array.isArray(r))return r.join(", ");if(typeof r=="string")return r}return null}async function fq(e){let n=e.now??Date.now,t=e.upstreamBaseUrl.replace(/\/+$/,""),o=`/llm-proxy-session/${uq(16).toString("hex")}`,i=e.initialToken,s=n(),d=bpe((p,m)=>{(async()=>{let f=p.url??"";if(!f.startsWith(`${o}/`)&&f!==o){m.writeHead(404,{"content-type":"application/json"}),m.end(JSON.stringify({error:"not_found"}));return}let y=f===o?"/":f.slice(o.length),_=`${t}${y}`,w=uq(8).toString("hex"),S=n();e.debugTrace?.record("llm-proxy-relay","relay.request_start",{request_id:w,debug_trace_id:e.debugTraceId??null,method:p.method??null,path:y});let v={};for(let[R,P]of Object.entries(p.headers)){if(P===void 0)continue;let L=R.toLowerCase();Cpe.has(L)||L!==cq&&L!==lq&&(v[L]=Array.isArray(P)?P.join(", "):P)}e.debugTraceId!==void 0&&(v[lq]=e.debugTraceId),v[cq]=i;let b=(p.method??"GET").toUpperCase(),k=b!=="GET"&&b!=="HEAD";try{let R=await wpe(_,{method:b,headers:v,...k?{body:p}:{},...e.dispatcher===void 0?{}:{dispatcher:e.dispatcher},headersTimeout:0,bodyTimeout:0}),P=n()-S;e.debugTrace?.record("llm-proxy-relay","relay.upstream_headers",{request_id:w,debug_trace_id:e.debugTraceId??null,path:y,status:R.statusCode,ttfb_ms:P,upstream_request_id:pq(R.headers,["x-request-id","request-id","x-amzn-requestid","cf-ray","openai-request-id"]),retry_after:pq(R.headers,["retry-after"])});let L={};for(let[B,z]of Object.entries(R.headers))z!==void 0&&(Tpe.has(B.toLowerCase())||(L[B]=z));if(R.statusCode===429){let B=R.headers["retry-after"],z=dq(Array.isArray(B)?B[0]:B,n());e.log("llm_proxy_relay.upstream_rate_limited",{target_path:y,retry_after_ms:z??null});try{e.onUpstreamRateLimited?.({retryAfterMs:z})}catch{}}m.writeHead(R.statusCode,L);let D=R.body,j=0,q=!1,E=(B,z)=>{q||(q=!0,e.debugTrace?.record("llm-proxy-relay","relay.response_finished",{request_id:w,debug_trace_id:e.debugTraceId??null,path:y,status:R.statusCode,outcome:B,detail:z??null,ttfb_ms:P,total_ms:n()-S,response_bytes:j}))};D.on("data",B=>{j+=Buffer.byteLength(B)}),D.on("error",B=>{E("upstream_body_error",B instanceof Error?B.message:String(B)),m.destroy()}),m.on("finish",()=>{E("completed")}),m.on("close",()=>{m.writableEnded||E("client_closed"),D.destroy()}),D.pipe(m)}catch(R){let P=R instanceof Error?R.message:String(R);e.debugTrace?.record("llm-proxy-relay","relay.upstream_error",{request_id:w,debug_trace_id:e.debugTraceId??null,path:y,total_ms:n()-S,message:P}),e.log("llm_proxy_relay.upstream_error",{target_path:y,message:P}),m.headersSent||m.writeHead(502,{"content-type":"application/json"}),m.end(JSON.stringify({error:"llm_proxy_relay_upstream_error",message:P}))}})().catch(()=>{m.headersSent||m.writeHead(502),m.end()})}),u=new Set;d.on("connection",p=>{u.add(p),p.on("close",()=>u.delete(p))}),await new Promise((p,m)=>{d.once("error",m),d.listen(0,"127.0.0.1",()=>{d.removeListener("error",m),p()})});let c=d.address();if(c===null||typeof c!="object")throw d.close(),new Error("llm proxy credential relay failed to bind a loopback port");return{baseUrl:`http://127.0.0.1:${c.port}${o}`,setToken:p=>{i=p,s=n()},currentToken:()=>i,tokenAgeMs:()=>n()-s,close:()=>new Promise(p=>{d.close(()=>p());for(let m of u)m.destroy()})}}function mq(e){let n=e.refreshAgeMs??Spe,t=e.checkIntervalMs??kpe,r=!1,o,i=async()=>{if(!r&&!(e.relay.tokenAgeMs()<n))return o!==void 0||(o=(async()=>{try{let a=e.relay.tokenAgeMs(),d=await e.mint();d!==void 0&&typeof d.token=="string"&&d.token!==""?(e.relay.setToken(d.token),typeof d.maxAgeMs=="number"&&Number.isFinite(d.maxAgeMs)&&d.maxAgeMs>0&&(n=Math.floor(d.maxAgeMs*3/4)),e.log("llm_proxy_relay.token_refreshed",{previous_token_age_ms:a,next_refresh_age_ms:n})):e.log("llm_proxy_relay.token_refresh_failed",{token_age_ms:a,message:"mint returned no token"})}catch(a){e.log("llm_proxy_relay.token_refresh_failed",{token_age_ms:e.relay.tokenAgeMs(),message:a instanceof Error?a.message:String(a)})}finally{o=void 0}})()),o},s=setInterval(()=>{i()},t);return s.unref?.(),{stop:()=>{r=!0,clearInterval(s)},tick:i,refreshAgeMs:()=>n}}var vpe,Spe,kpe,cq,lq,Cpe,Tpe,hq=F(()=>{"use strict";xk();vpe=28800*1e3,Spe=Math.floor(vpe*3/4),kpe=300*1e3,cq="x-linzumi-llm-proxy-token",lq="x-linzumi-debug-trace-id",Cpe=new Set(["host","connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade","content-length"]),Tpe=new Set(["connection","keep-alive","transfer-encoding","trailer","upgrade","content-length"])});function Ipe(e){let n=e[Ppe]?.trim().toLowerCase();return!(n==="0"||n==="false"||n==="no"||n==="off")}function Rpe(e){return gq(e.ANTHROPIC_API_KEY)||gq(e.ANTHROPIC_AUTH_TOKEN)?"user_api_key":"subscription_oauth"}function yq(e){let n=Rpe(e.env);return e.llmProxyBindingPresent?e.hostedLinzumiAgentContext?{lane:"llm_proxy",credentialClass:n,reason:"hosted_linzumi_agent_context"}:n==="user_api_key"?{lane:"llm_proxy",credentialClass:n,reason:"user_api_key"}:e.routedNonAnthropicModel?{lane:"llm_proxy",credentialClass:n,reason:"non_anthropic_routed_model"}:Ipe(e.env)?{lane:"direct_anthropic",credentialClass:n,reason:"subscription_oauth"}:{lane:"llm_proxy",credentialClass:n,reason:"direct_connection_disabled"}:{lane:"direct_anthropic",credentialClass:n,reason:"no_llm_proxy_binding"}}function gq(e){return e!==void 0&&e.trim()!==""}var Ppe,xq=F(()=>{"use strict";Ppe="LINZUMI_CLAUDE_DIRECT_CONNECTION"});import{randomUUID as Epe}from"node:crypto";function wq(e){let n=e.lane==="direct_anthropic",t=e.mintUsageId??(()=>Epe()),r,o=_q(),i=bq(),s,a=0,d=(l,p)=>{l!==r&&(r=l,o=_q());let m={inputTokens:p.inputTokens??o.inputTokens,outputTokens:p.outputTokens??o.outputTokens,cacheReadInputTokens:p.cacheReadInputTokens??o.cacheReadInputTokens,cacheCreationInputTokens:p.cacheCreationInputTokens??o.cacheCreationInputTokens,totalCostUsd:p.totalCostUsd??o.totalCostUsd};i={inputTokens:i.inputTokens+Fy(m.inputTokens-o.inputTokens),outputTokens:i.outputTokens+Fy(m.outputTokens-o.outputTokens),cacheReadInputTokens:i.cacheReadInputTokens+Fy(m.cacheReadInputTokens-o.cacheReadInputTokens),cacheCreationInputTokens:i.cacheCreationInputTokens+Fy(m.cacheCreationInputTokens-o.cacheCreationInputTokens),totalCostUsd:m.totalCostUsd===void 0?i.totalCostUsd:(i.totalCostUsd??0)+Math.max(0,m.totalCostUsd-(o.totalCostUsd??0))},o=m},u=(l,p)=>{let m=i,f=a,y=s??t(),_=m.inputTokens+m.outputTokens+m.cacheReadInputTokens+m.cacheCreationInputTokens>0||(m.totalCostUsd??0)>0;s=void 0,a=0;let w=l==="completed"?_||f>=Mpe:_;if(i=bq(),!w)return;let S=p??r,v={workspace:e.workspace,channel:e.channel,thread_id:e.threadId,usage_id:y,model:e.model??"default",provider:"anthropic",agent_provider:"claude-code",model_transport_lane:e.lane,turn_outcome:l,usage:{input_tokens:m.inputTokens,output_tokens:m.outputTokens,cache_read_input_tokens:m.cacheReadInputTokens,cache_creation_input_tokens:m.cacheCreationInputTokens,...m.totalCostUsd===void 0||m.totalCostUsd<=0?{}:{total_cost_usd:m.totalCostUsd}},stream_event_count:f,...S===void 0?{}:{claude_session_id:S}};Promise.resolve().then(()=>e.push(Dpe,v)).then(()=>{e.log("claude_code.token_usage_reported",{linzumi_thread_id:e.threadId,usage_id:y,turn_outcome:l,input_tokens:m.inputTokens,output_tokens:m.outputTokens,cache_read_input_tokens:m.cacheReadInputTokens,cache_creation_input_tokens:m.cacheCreationInputTokens})}).catch(b=>{e.log("claude_code.token_usage_report_failed",{linzumi_thread_id:e.threadId,usage_id:y,turn_outcome:l,message:b instanceof Error?b.message:String(b)})})};return{observeTranscriptEvent:l=>{if(n)try{switch(s===void 0&&(s=t()),a+=1,l.type){case"usage":d(l.sessionId,l.usage);break;case"turn_completed":case"session_completed":l.usage!==void 0&&d(l.sessionId,l.usage),u("completed",l.sessionId);break;case"turn_interrupted":u("interrupted",l.sessionId);break;case"session_failed":u("failed",l.sessionId);break;default:break}}catch(p){e.log("claude_code.token_usage_emitter_failed",{linzumi_thread_id:e.threadId,event_type:l.type,message:p instanceof Error?p.message:String(p)})}}}}function _q(){return{inputTokens:0,outputTokens:0,cacheReadInputTokens:0,cacheCreationInputTokens:0,totalCostUsd:void 0}}function bq(){return{inputTokens:0,outputTokens:0,cacheReadInputTokens:0,cacheCreationInputTokens:0,totalCostUsd:void 0}}function Fy(e){return e>0?e:0}var Dpe,Mpe,vq=F(()=>{"use strict";Dpe="token_usage",Mpe=10});function Sq(e,n){return e.find(t=>t.codexThreadId===n.codexThreadId&&t.kandanThreadId!==n.kandanThreadId)}function kq(e){let n=new Map;for(let o of e){let i=n.get(o.codexThreadId);(i===void 0||o.updatedAtMs>i.updatedAtMs)&&n.set(o.codexThreadId,o)}let t=[],r=[];for(let o of e)n.get(o.codexThreadId)===o?t.push(o):r.push(o);return{kept:t,dropped:r}}var ed,_k=F(()=>{"use strict";ed=class extends Error{codexThreadId;ownerKandanThreadId;requestingKandanThreadId;constructor(n){super(`codex session ${n.codexThreadId} is exclusively owned by Kandan thread ${n.ownerKandanThreadId}; refusing to bind it to thread ${n.requestingKandanThreadId} (one Kandan thread owns a codex session exclusively - fork or start a fresh session for the second thread)`),this.name="CodexSessionOwnershipConflictError",this.codexThreadId=n.codexThreadId,this.ownerKandanThreadId=n.ownerKandanThreadId,this.requestingKandanThreadId=n.requestingKandanThreadId}}});import{mkdirSync as Ape,readFileSync as Ope,renameSync as $pe,writeFileSync as Lpe}from"node:fs";import{createHash as jpe}from"node:crypto";import{dirname as Fpe,join as Cq}from"node:path";import{homedir as qpe}from"node:os";function zpe(){let e=process.env.LINZUMI_SESSION_REGISTRY_DIR?.trim();return e!==void 0&&e!==""?e:Cq(qpe(),".linzumi","session-registry")}function Pq(e){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^[-.]+|[-.]+$/g,"").slice(0,80),t=jpe("sha256").update(e).digest("hex").slice(0,8),r=n===""?"runner":n;return Cq(zpe(),`${r}.${t}.json`)}function ff(e){return typeof e=="string"&&e!==""?e:void 0}function Npe(e){return e==="codex"||e==="claude-code"?e:void 0}function Upe(e){if(!Q(e))return;let n=ff(e.workspace),t=ff(e.channel),r=ff(e.kandanThreadId),o=ff(e.codexThreadId),i=ff(e.cwd),s=Npe(e.agentProvider),a=Q(e.control)?e.control:void 0,d=typeof e.updatedAtMs=="number"&&Number.isFinite(e.updatedAtMs)?e.updatedAtMs:void 0;if(!(n===void 0||t===void 0||r===void 0||o===void 0||i===void 0||s===void 0||a===void 0||d===void 0))return{workspace:n,channel:t,kandanThreadId:r,codexThreadId:o,cwd:i,agentProvider:s,control:a,updatedAtMs:d}}function Bpe(e,n){let t=new Map,r;try{r=Ope(e,"utf8")}catch(i){return i?.code==="ENOENT"||n("session_registry.read_failed",{path:e,message:i instanceof Error?i.message:String(i)}),t}let o;try{o=JSON.parse(r)}catch(i){return n("session_registry.parse_failed",{path:e,message:i instanceof Error?i.message:String(i)}),t}if(!Q(o)||o.version!==Tq||!Q(o.sessions))return t;for(let[i,s]of Object.entries(o.sessions)){let a=Upe(s);a!==void 0&&a.kandanThreadId===i&&t.set(i,a)}return t}function Iq(e,n){let t=Bpe(e,n),r=kq([...t.values()]);if(r.dropped.length>0)for(let s of r.dropped)t.delete(s.kandanThreadId),n("session_registry.duplicate_codex_session_dropped",{path:e,thread_id:s.kandanThreadId,codex_thread_id:s.codexThreadId,kept_thread_id:r.kept.find(a=>a.codexThreadId===s.codexThreadId)?.kandanThreadId??null});let o=()=>{let s={};for(let[a,d]of t)s[a]={workspace:d.workspace,channel:d.channel,kandanThreadId:d.kandanThreadId,codexThreadId:d.codexThreadId,cwd:d.cwd,agentProvider:d.agentProvider,control:d.control,updatedAtMs:d.updatedAtMs};try{Ape(Fpe(e),{recursive:!0});let a=`${e}.tmp`;Lpe(a,`${JSON.stringify({version:Tq,sessions:s})}
649
+ ${Yue}`:t}function tf(e){let n=oF(e);return ece(n)?"Linzumi could not complete that runner action. Reconnect this computer if it keeps happening.":rF(n)}function rF(e){if(e.includes("daily_token_limit_exceeded")||e.includes("free Linzumi tokens"))return"You've used all of your free Linzumi tokens for today. Your free allowance resets at midnight UTC - check back then, or email support@linzumi.com if you need more.";if(e.includes("daily_cost_limit_exceeded")||e.includes("reached today's usage limit")||e.includes("daily capacity is reached"))return"You've reached your daily usage limit for model usage. It resets at midnight UTC - check back then, or email support@linzumi.com if you need more.";if(e==="phoenix join failed: workspace_not_found")return"Linzumi could not find this workspace. The command may be stale or copied from a different signup session. Return to setup and copy the latest command.";if(e==="phoenix join failed: unauthorized"||e==="phoenix join failed: forbidden")return"This connection command is no longer authorized. Return to setup and copy a fresh command.";if(e.includes("commander_version_too_old")){let n=e.replace(/^phoenix join failed:\s*/,"").replace(/^commander_version_too_old:?\s*/,"");return`This computer's Linzumi CLI is too old for this server. ${n===""?"Update with: npm install -g @linzumi/cli@latest":n}`}return e.startsWith("phoenix join failed:")?"Linzumi could not connect this computer. Return to setup and try again.":e.startsWith("phoenix push timed out after ")?"Linzumi did not receive a response from the server in time. Check your connection and retry.":e.startsWith("phoenix push failed:")||e==="phoenix push failed"?"Linzumi could not save the latest runner update. The connection may be stale; reconnect this computer if it does not recover.":e==="phoenix websocket closed"?"The connection to Linzumi was interrupted. Reconnecting...":e==="phoenix websocket is not open"||e==="phoenix client is not connected"?"This computer is not connected to Linzumi yet. Wait a moment, then retry.":e==="phoenix websocket reconnect failed"?"Linzumi could not reconnect this computer. Check your connection and run the connect command again.":e==="invalid Phoenix frame"?"Linzumi received an unexpected server message. Please reconnect this computer.":e.startsWith("phoenix rejoin failed for ")?"Linzumi could not restore this computer's session after reconnecting. Run the connect command again.":e.startsWith("phoenix rejoin returned invalid events for ")?"Linzumi could not restore recent messages after reconnecting. Run the connect command again.":e==="websocket open failed"?"Linzumi could not open a connection to the server. Check the URL and your network connection.":e==="Linzumi signup response was not valid JSON"?"Linzumi received an unexpected signup response. Try again in a moment.":e.startsWith("Linzumi signup request failed with HTTP ")?"Linzumi signup failed. Try again, or refresh the setup page and copy a fresh command.":e.startsWith("thread/start failed:")?"Codex could not start a new work session. Try again, or reconnect this computer.":e.startsWith("turn/start failed:")?"Codex could not start working on that message. Try again from the thread.":/^[a-z][a-z0-9_/-]* failed:/.test(e)?"Codex could not complete the requested action. Try again, or start a new task thread.":e}function ece(e){return e.startsWith("phoenix ")||e==="invalid Phoenix frame"||e==="websocket open failed"}function oF(e){return e instanceof Error?e.message:String(e)}var Yue,tc=F(()=>{"use strict";Yue="If this continues happening, email support@linzumi.com and we'll try to get you through it."});import{createHash as TF,randomUUID as Py}from"node:crypto";function tce(){let e=process.env.LINZUMI_IDLE_STREAM_THRESHOLD_MS?.trim();if(e===void 0||e==="")return iF;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=0?n:iF}function rce(){let e=process.env.LINZUMI_IDLE_STREAM_MODEL_WAIT_CAP_MS?.trim();if(e===void 0||e==="")return sF;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=0?n:sF}function PF(){let e=process.env.LINZUMI_IDLE_STREAM_KILL_GRACE_MS?.trim();if(e===void 0||e==="")return aF;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=0?n:aF}function oce(e,n){let r=`The model stream stalled - no data for ${Math.round(e/1e3)}s (the connection appears wedged).`;return n.resumable?`${r} Please retry to resume from the last streamed checkpoint.`:`${r} No response was produced; please retry.`}function ice(){let e=process.env.LINZUMI_IDLE_STREAM_QUEUED_YIELD_CAP_MS?.trim();if(e===void 0||e==="")return dF;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=0?n:dF}function sce(e,n,t){let r=Math.round(e/1e3),o=n===1?"1 queued follow-up was waiting":`${n} queued follow-ups were waiting`,i=`The turn produced no stream output for ${r}s while ${o}, so it was interrupted to let the queued message(s) run.`;return t.resumable?`${i} Please retry to resume this turn from the last streamed checkpoint.`:`${i} No response was produced; please retry.`}function ace(){let e=process.env.LINZUMI_STOP_HALT_CONFIRM_MS?.trim();if(e===void 0||e==="")return uF;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=0?n:uF}async function cce(e){let{currentTick:n,capMs:t,pollIntervalMs:r=dce,quietWindowMs:o=uce,sleep:i=Js,now:s=Date.now}=e;if(t<=0)return!0;let a=Math.max(1,Math.min(o,t)),d=s(),u=d+t,c=n(),l=d;for(;;){let p=s();if(p-l>=a)return!0;if(p>=u)return!1;let m=Math.max(1,Math.min(r,a,u-p));await i(m);let f=n();f!==c&&(c=f,l=s())}}function lF(){let e=process.env.LINZUMI_STOP_STARTING_ACK_WAIT_MS?.trim();if(e===void 0||e==="")return cF;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>0?n:cF}async function pce(e){let{stillStarting:n,capMs:t,pollIntervalMs:r=lce,sleep:o=Js,now:i=Date.now}=e,s=i()+t;for(;;){if(!n())return!0;let a=s-i();if(a<=0)return!1;await o(Math.max(1,Math.min(r,a)))}}function Iy(){let e=process.env.LINZUMI_CODEX_START_REQUEST_TIMEOUT_MS?.trim();if(e===void 0||e==="")return pF;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>0?n:pF}function fce(){let e=process.env.LINZUMI_OUTBOX_MAX_INFLIGHT_PUSHES?.trim();if(e===void 0||e==="")return;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>0?n:void 0}function mce(){return Iy()}function hce(e){return e instanceof vy}function gce(e){return e instanceof Sy}function Qo(e,n,t=Iy()){return IF(e,n,t,(r,o)=>new vy(r,o))}function yce(e,n,t=mce()){return IF(e,n,t,(r,o)=>new Sy(r,o))}function IF(e,n,t,r){return t>0?new Promise((o,i)=>{let s=setTimeout(()=>{i(r(e,t))},t);s.unref?.(),n.then(a=>{clearTimeout(s),o(a)},a=>{clearTimeout(s),i(a)})}):n}function vce(e,n=RF,t=Math.random){let r=Math.max(1,Math.floor(e))-1;if(r<n.length)return n[r]??rf.baseDelayMs;let o=n.length>0?n[n.length-1]??rf.baseDelayMs:rf.baseDelayMs,i=Math.max(o,rf.baseDelayMs),s=r-n.length,a=Math.min(rf.maxDelayMs,i*2**s),d=t(),u=Number.isFinite(d)?Math.min(Math.max(d,0),1):0;return Math.round(a*u)}async function cf(e){let n=e.options.channelSession,t=`chat:${n.workspaceSlug}:${n.channelSlug}`,r=jce(0,n.rootSeq,n.kandanThreadId,n.codexThreadId,e.options),o=["channel-session",e.instanceId,fF].join("-");fF+=1;let i=await e.kandan.join(t,mF(e.options.runnerId,r,0),{registrationId:o,rejoinPayload:()=>{let l=cle(r);return r.seenSeq=l,mF(e.options.runnerId,r,l)}}),s=X(i.cursor)??0,a=go(e.options.token),d=HO(e.options.codexBin,e.options.cwd);r.minSeq=s,r.seenSeq=s;let u={runnerIdentity:a,codexVersion:d},c={ready:!1,pending:[]};return e.codex.onRequest?.(l=>vle(e,r,u,l)),e.kandan.onDisconnect?.(()=>{r.closed||r.pipeline?.pause()}),e.kandan.onEvent((l,p,m)=>{if(r.closed||l!==t||p!=="event")return;let f=pg(m);if(f!==void 0){if(!c.ready){c.pending.push(f);return}KF(e,r,a,f,u)}}),await zce(e,r,u),r.pipeline=Dce(e,r,u),e.codex.onClose?.(l=>{r.pipeline?.submitLifecycle("codexDied",l.message)}),await ule(e,r,a,u,c),MF(e,r,u),await Pr(e,r,u),{handleCodexNotification:(l,p)=>{if(l==="account/rateLimits/updated"){let _=Ej(p);_!==r.rateLimitResetAtMs&&e.log("codex.rate_limit_reset_captured",{reset_at_ms:_??null,previous_reset_at_ms:r.rateLimitResetAtMs??null}),r.rateLimitResetAtMs=_}let m=XF(p),f=YF(p),y=m??Lle(l,r,p,f);if(eq(r,f,y)){if(r.streamEventTick+=1,Rce(e,r,l,p,y))return;Tce(r,l,p,y),Pce(e,r,y);let _=y??Ha(r.turn);_!==void 0&&r.pipeline?.noteTurnActivity(_,l);let w=oy(l,p);y!==void 0&&w!==void 0&&ipe(e,r,y,w).catch(S=>{e.log("kandan.message_state_refresh_failed",{turn_id:y,reason:w,message:S instanceof Error?S.message:String(S)})}),$ce(e,r,u,l,p,f,m,y)}},handleControl:l=>Uce(e,r,u,l),startThreadMessageTurn:l=>JF(e,r,u,l),currentRuntimeSettings:()=>r.runtimeSettings,currentCodexThreadId:()=>r.codexThreadId,currentKandanThreadId:()=>r.kandanThreadId,pendingApprovalTurnIds:()=>[...new Set([...r.pendingApprovalRequests.values()].map(l=>l.turnId))],handleKandanReconnect:()=>EF(e,r,u),close:async()=>{r.closed=!0,e.kandan.unregisterJoin?.(t,o),r.portForwardWatcher?.close(),r.portForwardWatcher=void 0,DF(r),Ry(r),af(r);for(let l of r.rateLimitHoldTimers.values())clearTimeout(l);r.rateLimitHoldTimers.clear(),Tle(r,new Error("runner closed")),r.pipeline!==void 0&&await r.pipeline.close(Ece),await Si(e,r),BF(r)}}}async function EF(e,n,t,r="reconnect"){if(DF(n),!n.closed){r==="reconnect"&&(n.reconnectRetryAttempts=0);try{await kce(e,n,t),n.reconnectRetryAttempts=0}catch(o){n.reconnectRetryAttempts+=1;let i=vce(n.reconnectRetryAttempts,e.options.reconnectHandlingRetryDelaysMs??RF);e.log("kandan.reconnect_handling_failed",{attempt:n.reconnectRetryAttempts,retry_in_ms:i,message:o instanceof Error?o.message:String(o)}),n.reconnectRetryTimer=setTimeout(()=>{n.reconnectRetryTimer=void 0,EF(e,n,t,"retry")},i),n.reconnectRetryTimer.unref?.()}}}async function kce(e,n,t){e.log("kandan.reconnected",{kandan_thread_id:n.kandanThreadId??null,codex_thread_id:n.codexThreadId??null,min_seq:n.minSeq}),n.pipeline?.resume(),await oc(e,n),n.kandanThreadId!==void 0&&n.turn.status!=="idle"&&(n.codexTypingActive&&gk(e,n,n.kandanThreadId),await oq(e,n)),await Pr(e,n,t)}function DF(e){e.reconnectRetryTimer!==void 0&&(clearTimeout(e.reconnectRetryTimer),e.reconnectRetryTimer=void 0)}function Ry(e){e.idleStreamTimer!==void 0&&(clearTimeout(e.idleStreamTimer),e.idleStreamTimer=void 0),e.idleStreamGuardTurnId=void 0,e.idleStreamEventSeen=!1,e.idleStreamOpenLocalExecItemIds.clear(),e.idleStreamDeferralLogged=!1,e.idleStreamQuietSinceMs=void 0,e.idleStreamModelWaitDeferralLogged=!1}function af(e,n){let t=e.idleStreamKillGrace;t===void 0||n!==void 0&&t.turnId!==n||(clearTimeout(t.timer),e.idleStreamKillGrace=void 0)}function Tce(e,n,t,r){let o=e.idleStreamGuardTurnId;if(o===void 0||n!=="item/started"&&n!=="item/completed"||r!==void 0&&r!==o)return;let i=A(t.item),s=i===void 0?void 0:h(i.id);if(s===void 0||s==="")return;if(n==="item/completed"){e.idleStreamOpenLocalExecItemIds.delete(s);return}if(r!==o)return;let a=h(i?.type);a!==void 0&&Cce.has(a)&&e.idleStreamOpenLocalExecItemIds.add(s)}function ak(e,n,t){let r=tce();if(!(r>0)||t===""){Ry(n);return}n.idleStreamGuardTurnId!==t&&(n.idleStreamGuardTurnId=t,n.idleStreamEventSeen=!1,n.idleStreamOpenLocalExecItemIds.clear(),n.idleStreamDeferralLogged=!1,n.idleStreamQuietSinceMs=Date.now(),n.idleStreamModelWaitDeferralLogged=!1),n.idleStreamTimer!==void 0&&clearTimeout(n.idleStreamTimer),n.idleStreamTimer=setTimeout(()=>{nk(e,n,t,r)},r),n.idleStreamTimer.unref?.()}function Pce(e,n,t){let r=n.idleStreamGuardTurnId;r!==void 0&&(t!==void 0&&t!==r||(n.idleStreamEventSeen=!0,n.idleStreamDeferralLogged=!1,n.idleStreamQuietSinceMs=Date.now(),n.idleStreamModelWaitDeferralLogged=!1,ak(e,n,r)))}function nk(e,n,t,r){if(n.closed||n.idleStreamGuardTurnId!==t)return;let o=n.idleStreamOpenLocalExecItemIds.size>0,i=[...n.pendingApprovalRequests.values()].some(R=>R.turnId===t),s=Date.now(),a=n.idleStreamQuietSinceMs??s,d=Math.max(0,s-a),u=Zo(n.queue),c=ice(),l=c<=0?0:Math.max(c,r),p=o&&!i&&u>0&&l>0&&d>=l;if((o||i)&&!p){if(n.idleStreamDeferralLogged||(n.idleStreamDeferralLogged=!0,e.log("codex.idle_stream_watchdog_deferred",{turn_id:t,idle_threshold_ms:r,waiting_on_local_exec:o,waiting_on_approval:i,open_local_exec_items:n.idleStreamOpenLocalExecItemIds.size,queued_follow_ups:u,quiet_ms:d})),o&&!i&&u>0&&l>0){n.idleStreamTimer!==void 0&&clearTimeout(n.idleStreamTimer);let P=Math.max(1,Math.min(r,l-d));n.idleStreamTimer=setTimeout(()=>{nk(e,n,t,r)},P),n.idleStreamTimer.unref?.();return}ak(e,n,t);return}let m=rce(),f=m<=0||!n.idleStreamEventSeen?0:Math.max(m,r);if(!p&&d<f){n.idleStreamModelWaitDeferralLogged||(n.idleStreamModelWaitDeferralLogged=!0,e.log("codex.idle_stream_model_wait_deferred",{turn_id:t,idle_threshold_ms:r,quiet_ms:d,model_wait_cap_ms:f})),n.idleStreamTimer!==void 0&&clearTimeout(n.idleStreamTimer);let R=Math.max(1,Math.min(r,f-d));n.idleStreamTimer=setTimeout(()=>{nk(e,n,t,r)},R),n.idleStreamTimer.unref?.();return}let y=n.idleStreamEventSeen,_=p?sce(d,u,{resumable:y}):oce(Math.max(d,r),{resumable:y}),w=!y&&!p,S=y&&!p,v=n.codexThreadId,b=PF();if(Ry(n),e.log("codex.idle_stream_timeout",{turn_id:t,idle_threshold_ms:r,quiet_ms:d,model_wait_cap_ms:f,kill_grace_ms:b,resumable:y,reason:_,queued_yield:p,queued_follow_ups:u}),v!==void 0&&ck(e,v,t),b<=0){Cy(n,t,_,y,w,S);return}let k=setTimeout(()=>{Ice(e,n,t)},b);k.unref?.(),n.idleStreamKillGrace={turnId:t,timer:k,reason:_,resumable:y,preFirstByteStall:w,midStreamResumableStall:S}}function Cy(e,n,t,r,o,i){e.pipeline?.submitNotification("turn/failed",{turnId:n,reason:t,error:{message:t,code:"idle_stream_timeout"},...r?{retryable:!0}:{},...o?{preFirstByteStall:!0}:{},...i?{midStreamResumableStall:!0}:{}})}function Ice(e,n,t){let r=n.idleStreamKillGrace;n.closed||r===void 0||r.turnId!==t||(n.idleStreamKillGrace=void 0,e.log("codex.idle_stream_kill_grace_expired",{turn_id:t,kill_grace_ms:PF()}),Cy(n,t,r.reason,r.resumable,r.preFirstByteStall,r.midStreamResumableStall))}function Rce(e,n,t,r,o){let i=n.idleStreamKillGrace;if(i===void 0||o===void 0||o!==i.turnId)return!1;if(t==="turn/completed"){let s=h(A(r.turn)?.status);return s==="completed"?(af(n,i.turnId),e.log("codex.idle_stream_kill_reconciled_completed",{turn_id:i.turnId,status:s}),!1):(af(n,i.turnId),e.log("codex.idle_stream_kill_interrupt_ack",{turn_id:i.turnId,method:t,status:s??null}),Cy(n,i.turnId,i.reason,i.resumable,i.preFirstByteStall,i.midStreamResumableStall),!0)}return t==="turn/failed"||t==="turn/aborted"||t==="turn/canceled"||t==="turn/cancelled"?(af(n,i.turnId),e.log("codex.idle_stream_kill_interrupt_ack",{turn_id:i.turnId,method:t,status:null}),Cy(n,i.turnId,i.reason,i.resumable,i.preFirstByteStall,i.midStreamResumableStall),!0):!1}function lf(e,n,t){return[e.workspaceSlug,e.channelSlug,n??`instance:${t}`].join(":")}function dk(e,n){n.kandanThreadId!==void 0&&n.pipeline?.rebindThreadKey(lf(e.options.channelSession,n.kandanThreadId,e.instanceId))}function Dce(e,n,t){let r=e.options.channelSession,o=lf(r,n.kandanThreadId,e.instanceId);return Vg({instanceId:e.instanceId,threadKey:o,persistDir:e.options.pipelinePersistDir,push:(i,s,a,d)=>Mce(e,n,i,s,d),wire:()=>({workspaceSlug:r.workspaceSlug,channelSlug:r.channelSlug,kandanThreadId:n.kandanThreadId,codexThreadId:n.codexThreadId,rootSeq:n.rootSeq,leaseEpoch:n.kandanThreadId===void 0?void 0:e.leaseEpochFor?.(n.kandanThreadId)}),runnerPayload:(i,s,a,d)=>Ba(e.options,e.instanceId,i,s,t,a,d,Ule(n,a)),runtimeMetadataForSourceSeq:i=>{let s=Ble(n,i);return s===void 0?void 0:Jle(s)},sourceSeqForTurn:i=>Nle(n,i),autoRetryAttemptsForSeq:i=>n.emptyTurnRetry.get(i)?.attempts??0,midStreamResumeAttemptAtMsForSeq:i=>n.midStreamResumeAttempts.get(i),ladderHistoryForSeq:(i,s)=>yo(s)?Up(n.fateLadderRuns.get(i),s):void 0,linzumiAgentSession:r.linzumiAgentSession===!0,isRecoveredTurn:i=>n.recoveredTurnIds.has(i),resolveSnapshot:i=>Oce(e,n,i),onTurnTerminal:(i,s,a,d,u,c)=>tk(e,n,t,i,s,a,d,void 0,u,c),log:(i,s)=>{e.log(i,s)},outboxRetryDelaysMs:e.options.pipelineOutboxRetryDelaysMs,outboxMaxInFlightPushes:fce(),snapshotRetryDelaysMs:e.options.pipelineSnapshotRetryDelaysMs,statsIntervalMs:e.options.pipelineStatsIntervalMs,turnStalledThresholdMs:e.options.pipelineTurnStalledThresholdMs,turnWaitStates:()=>[...n.pendingApprovalRequests.values()].map(i=>({turnId:i.turnId,kind:"approval"}))})}async function Mce(e,n,t,r,o){let i=await Ace(e,t,r);try{return await oo(e.kandan,e.topic,t,i,o)}catch(s){throw Wg(s)&&n.pipeline?.pause(),s}}async function Ace(e,n,t){let r=e.options.channelSession;return gg({kandan:e.kandan,topic:e.topic,workspace:r.workspaceSlug,channel:r.channelSlug,cwd:e.options.cwd,kandanUrl:e.options.kandanUrl,token:e.options.token,fetch:e.options.fetch,log:(o,i)=>e.log(o,i)},n,t)}async function Oce(e,n,t){let r=n.codexThreadId;if(r===void 0)throw new Error("cannot resolve a completion snapshot without a bound Codex thread");let o;try{o=await yce("thread/read",e.codex.request("thread/read",{threadId:r,includeTurns:!0}))}catch(d){if(gce(d)&&n.recoveredTurnIds.has(t))return e.log("pipeline.snapshot_skipped_for_recovered_turn",{codex_thread_id:r,turn_id:t,message:d instanceof Error?d.message:String(d)}),{items:[]};throw d}if("error"in o)throw new Error(`thread/read failed: ${o.error.message}`);let i=pS(WL(o,t)),s=[];try{s=pS(L$({codexThreadId:r,turnId:t}))}catch(d){e.log("codex.session_log_read_failed",{codex_thread_id:r,turn_id:t,message:d instanceof Error?d.message:String(d)})}let a=HL(i,s);return e.log("pipeline.snapshot_resolved",{turn_id:t,item_count:a.length,thread_read_item_count:i.length,session_log_item_count:s.length}),{items:[...a]}}function $ce(e,n,t,r,o,i,s,a){let d=n.pipeline;if(d!==void 0)switch(r){case"turn/started":i!==void 0&&s!==void 0&&jle(e,n,i,s),d.submitNotification(r,o);return;case"turn/completed":{s!==void 0&&vF(n,i,s);let u=s??Ale(e,n,i);switch(n.turn.status){case"starting":epe(n,u);break;case"idle":case"active":case"completing":tq(e,n,t,u);break}d.submitNotification(r,s===void 0&&u!==void 0?{...o,turnId:u}:o);return}case"turn/aborted":case"turn/canceled":case"turn/cancelled":case"turn/failed":s!==void 0&&vF(n,i,s),d.submitNotification(r,o);return;case"item/completed":{if(d.submitNotification(r,ZS(o,s,a)),a!==void 0){let u=Ile(e,n,a,o,t);qle(n,a,u),u.catch(c=>{e.log("codex.tui_input_mirror_failed",{turn_id:a,message:c instanceof Error?c.message:String(c)})}).finally(()=>zle(n,a))}return}case"error":{let u=jv(r,o);d.submitNotification(r,ZS(u===void 0?o:{...o,...wg(r,o)},s,a));return}case"item/agentMessage/delta":case"item/reasoning/textDelta":case"item/commandExecution/outputDelta":case"command/exec/outputDelta":case"item/fileChange/outputDelta":case"item/commandExecution/terminalInteraction":case"item/started":case"response_item":if(r==="item/started"){let u=h(A(o.item)?.command);u!==void 0&&Zg(uk(e,n),u)}d.submitNotification(r,ZS(o,s,a));return;default:return}}function uk(e,n){return n.kandanThreadId??e.topic}function ZS(e,n,t){return n!==void 0||t===void 0?e:{...e,turnId:t}}function tk(e,n,t,r,o,i,s,a,d,u){n.idleStreamGuardTurnId===r&&Ry(n),af(n,r);let c=Qu(n.turn,r)??gj(n.turn,r),l=Ay(n,r);c!==void 0&&(n.turn={status:"completing",turnId:r,queuedSeq:c});let p=c!==void 0?n.emptyTurnRetry.get(c)?.attempts??0:0,m=yo(u)?u:s===!0||d===!0?"transient_upstream":void 0,f=c!==void 0&&wF(n,c),y=o==="failed"&&c!==void 0&&f&&(s===!0||d===!0&&!n.midStreamResumeAttempts.has(c)),_=Ty(e),w=o==="failed"&&c!==void 0&&f,S=w&&!_,v=w&&_&&e.options.rebuildOnDeadCodexWorker!==void 0,b=o==="failed"&&c!==void 0&&m!==void 0?AS({fate:m,run:n.fateLadderRuns.get(c),nowMs:Date.now(),budgets:ay(),breaker:e.options.fleetBreakerRecoveryGate??TS,grants:{inPlaceResume:y,redispatch:S,workerRebuild:v},rateLimitResetAtMs:n.rateLimitResetAtMs}):void 0;if(b!==void 0&&b.kind!=="stand"&&c!==void 0&&(n.fateLadderRuns.set(c,b.run),is(n.fateLadderRuns,of),e.log("codex.fate_ladder_step",{turn_id:r,queued_seq:c,fate:m??null,decision:b.kind,...b.kind==="execute_rung"?{rung:b.rung}:{},...b.kind==="red"?{cause:b.cause}:{},...b.kind==="hold_until_reset"?{reset_at_ms:b.resetAtMs}:{},...b.kind==="breaker_hold"?{hold_reason:b.reason}:{},recovery_rungs_attempted:b.run.recoveryRungsAttempted,history_truncated:b.run.historyTruncated,reason:i??null})),o==="completed"&&c!==void 0){n.fateLadderRuns.delete(c);let q=n.rateLimitHoldTimers.get(c);q!==void 0&&(clearTimeout(q),n.rateLimitHoldTimers.delete(c))}let k=b?.kind==="execute_rung"?b.rung:void 0,R=b?.kind==="breaker_hold";R&&c!==void 0&&e.log("codex.fleet_breaker_recovery_hold",{turn_id:r,queued_seq:c,hold_reason:b?.kind==="breaker_hold"?b.reason:null,recovery:s===!0?"empty_turn_retry":d===!0?"mid_stream_resume":m==="transient_local"?"local_redispatch":"rate_limit_hold_dispatch",attempts_burned:p,max_attempts:xo,reason:i??null});let P=k==="in_place_resume"&&s===!0&&c!==void 0?by(n,c):void 0,L=k==="in_place_resume"&&d===!0&&P===void 0&&c!==void 0&&!n.midStreamResumeAttempts.has(c)?by(n,c):void 0,D=(k==="redispatch"||k==="worker_rebuild")&&c!==void 0?by(n,c):void 0;L!==void 0&&c!==void 0?(n.midStreamResumeAttempts.set(c,Date.now()),is(n.midStreamResumeAttempts,of)):!R&&o==="failed"&&d===!0&&c!==void 0&&e.log("codex.mid_stream_stall_resume_refused",{turn_id:r,queued_seq:c,cause:n.midStreamResumeAttempts.has(c)?"already_attempted":p>=xo?"shared_budget_exhausted":"no_retained_candidate",attempts_burned:p,max_attempts:xo,reason:i??null}),!R&&P===void 0&&L===void 0&&D===void 0&&b?.kind!=="hold_until_reset"&&c!==void 0&&n.emptyTurnRetry.delete(c);let j=o==="failed"&&s===!0&&P===void 0&&c!==void 0;!R&&j&&p>0&&e.log("codex.auto_retry_budget_exhausted_terminal",{turn_id:r,queued_seq:c??null,attempts_burned:p,max_attempts:xo,reason:i??null}),(async()=>{try{await n.pipeline?.flushOutbox()}catch(E){e.log("pipeline.turn_terminal_flush_failed",{turn_id:r,message:E instanceof Error?E.message:String(E)})}if(R&&c!==void 0){let E=e.options.fleetBreakerHoldPollMs??5e3,B=e.options.fleetBreakerMaxHoldMs??30*6e4,z=Date.now(),W=m??"transient_upstream",Z=e.options.fleetBreakerRecoveryGate??TS;n.kandanThreadId!==void 0&&await tt(e,n.kandanThreadId,c,{status:"processing",reason:lj},void 0,void 0,n.codexThreadId);let fe="exhausted",Ee="proceed";for(;Date.now()-z<B;){if(await Js(E),n.turn.status!=="completing"||n.turn.turnId!==r){fe="superseded";break}let _e=Z(W);if(_e.action!=="hold"){Ee=_e.action,fe="released";break}}if(fe==="superseded"){e.log("codex.fleet_breaker_hold_superseded",{turn_id:r,queued_seq:c,held_ms:Date.now()-z});return}if(fe==="released"){let _e=wF(n,c),be=Ty(e),Re=!1,Ae=(K,re)=>Re?Z(K,re):(Re=!0,{action:Ee}),I=AS({fate:W,run:n.fateLadderRuns.get(c),nowMs:Date.now(),budgets:ay(),breaker:Ae,grants:{inPlaceResume:_e&&(s===!0||d===!0&&!n.midStreamResumeAttempts.has(c)),redispatch:_e&&!be,workerRebuild:_e&&be&&e.options.rebuildOnDeadCodexWorker!==void 0},rateLimitResetAtMs:n.rateLimitResetAtMs});I.kind!=="stand"&&(n.fateLadderRuns.set(c,I.run),is(n.fateLadderRuns,of));let $=I.kind==="execute_rung"?by(n,c):void 0;if(I.kind==="execute_rung"&&$!==void 0){let K=I.rung,re=K==="in_place_resume"?s===!0?"empty_turn_retry":"mid_stream_resume":K;re==="mid_stream_resume"&&(n.midStreamResumeAttempts.set(c,Date.now()),is(n.midStreamResumeAttempts,of)),e.log("codex.fleet_breaker_recovery_resumed",{turn_id:r,queued_seq:c,held_ms:Date.now()-z,recovery:re,attempt:$.attempts,max_attempts:xo,reason:i??null}),n.kandanThreadId!==void 0&&await tt(e,n.kandanThreadId,c,{status:"processing",reason:re==="mid_stream_resume"?vS:K==="worker_rebuild"?$S:K==="redispatch"?OS:"retrying empty turn"},void 0,void 0,n.codexThreadId),ic(n,r),os(n,r),rs(n,r),Xu(n.queue,$.message),(n.turn.status==="completing"||n.turn.status==="active")&&n.turn.turnId===r&&(n.turn={status:"idle"}),await Pr(e,n,t);return}}e.log("codex.fleet_breaker_hold_exhausted",{turn_id:r,queued_seq:c,held_ms:Date.now()-z,outcome:fe,reason:i??null}),n.emptyTurnRetry.delete(c),n.kandanThreadId!==void 0&&await tt(e,n.kandanThreadId,c,{status:"failed",reason:`${i??"codex_turn_failed"} [recovery was held ${Math.round((Date.now()-z)/6e4)}m during a fleet-wide upstream outage; retry budget preserved]`,retryable:!0,fate:W,ladder:Up(n.fateLadderRuns.get(c),W)},void 0,void 0,n.codexThreadId)}if(b?.kind==="hold_until_reset"&&c!==void 0){e.log("codex.fate_ladder_rate_limit_hold",{turn_id:r,queued_seq:c,reset_at_ms:b.resetAtMs,hold_ms:Math.max(0,b.resetAtMs-Date.now()),reason:i??null}),n.kandanThreadId!==void 0&&await tt(e,n.kandanThreadId,c,{status:"processing",reason:Rj(b.resetAtMs)},void 0,void 0,n.codexThreadId),ic(n,r),os(n,r),rs(n,r),(n.turn.status==="completing"||n.turn.status==="active")&&n.turn.turnId===r&&(n.turn={status:"idle"}),Lce(e,n,t,c,b.resetAtMs);return}P===void 0&&L===void 0&&D===void 0&&n.kandanThreadId!==void 0&&await Qg({threadKey:uk(e,n),workspace:e.options.channelSession.workspaceSlug,channel:e.options.channelSession.channelSlug,threadId:n.kandanThreadId,push:(E,B)=>e.kandan.push(e.topic,E,B),log:(E,B)=>e.log(E,B)});let q=P??L??D;if(q!==void 0&&c!==void 0){L!==void 0?e.log("codex.mid_stream_stall_auto_resume",{turn_id:r,queued_seq:c,attempt_at_ms:n.midStreamResumeAttempts.get(c)??null,shared_budget_attempt:L.attempts,max_attempts:xo,reason:i??null}):D!==void 0?e.log("codex.fate_ladder_local_redispatch",{turn_id:r,queued_seq:c,rung:k??null,shared_budget_attempt:D.attempts,max_attempts:xo,reason:i??null}):e.log("codex.empty_turn_auto_retry",{turn_id:r,queued_seq:c,attempt:q.attempts,max_attempts:xo,reason:i??null}),n.kandanThreadId!==void 0&&await tt(e,n.kandanThreadId,c,{status:"processing",reason:L!==void 0?vS:k==="worker_rebuild"?$S:k==="redispatch"?OS:"retrying empty turn"},void 0,void 0,n.codexThreadId),ic(n,r),os(n,r),rs(n,r),Xu(n.queue,q.message),yF>0&&await Js(yF),(n.turn.status==="completing"||n.turn.status==="active")&&n.turn.turnId===r&&(n.turn={status:"idle"}),await Pr(e,n,t);return}if(c!==void 0&&n.kandanThreadId!==void 0){let E=o==="completed"?{status:"processed"}:{status:"failed",reason:i??"codex_turn_failed",...j?{retryable:!0,fate:"transient_upstream"}:{},...m!==void 0?{fate:m,ladder:Up(n.fateLadderRuns.get(c),m)}:{}};if(a===!0){for(let[z,W]of[...n.undeliveredCloudTerminals].sort((Z,fe)=>Z[0]-fe[0]))await kF(e,n.kandanThreadId,z,W,n.codexThreadId)&&(n.undeliveredCloudTerminals.delete(z),e.log("codex.cloud_terminal_state_gap_redelivered",{turn_id:r,source_seq:z,status:W.status}));for(let z of Xa(n,c))await kF(e,n.kandanThreadId,z,E,n.codexThreadId)?n.undeliveredCloudTerminals.delete(z):(n.undeliveredCloudTerminals.set(z,E),e.log("codex.cloud_terminal_state_unacked_watermark_held",{turn_id:r,queued_seq:c,source_seq:z,status:E.status,outcome:o,gap_floor:Math.min(...n.undeliveredCloudTerminals.keys())}))}let B=n.undeliveredCloudTerminals.size===0?void 0:Math.min(...n.undeliveredCloudTerminals.keys());if(o==="completed"){let z=new Set(Xa(n,c));z.add(c);for(let W of z){if(B!==void 0&&W>=B){e.log("codex.cloud_source_seq_commit_held_below_gap",{turn_id:r,source_seq:W,gap_floor:B});continue}e.options.onLiveSourceSeqAccepted?.({channel:e.options.channelSession.channelSlug,threadId:n.kandanThreadId,sourceSeq:W})}}{let z=new Set(Xa(n,c));z.add(c);for(let W of z)e.options.onLiveSourceSeqSettled?.({channel:e.options.channelSession.channelSlug,threadId:n.kandanThreadId,sourceSeq:W})}if(a!==!0)for(let z of Xa(n,c))z!==c&&await tt(e,n.kandanThreadId,z,E,void 0,void 0,n.codexThreadId);n.fusedQueuedSeqs.delete(c),Ya(n,c)}os(n,r),rs(n,r),(c!==void 0||l)&&(await tpe(n,r),await Si(e,n)),(n.turn.status==="completing"||n.turn.status==="active")&&n.turn.turnId===r&&(n.turn={status:"idle"}),e.log("pipeline.turn_terminal",{turn_id:r,outcome:o,reason:i??null,queued_seq:c??null}),await Pr(e,n,t)})().catch(q=>{e.log("pipeline.turn_terminal_handling_failed",{turn_id:r,message:q instanceof Error?q.message:String(q)})})}function Lce(e,n,t,r,o){if(n.rateLimitHoldTimers.has(r))return;let i=Math.max(0,o-Date.now()),s=setTimeout(()=>{n.rateLimitHoldTimers.delete(r),(async()=>{if(n.closed)return;let a=n.fateLadderRuns.get(r);if(a!==void 0){if(a.holdDispatched)return;n.fateLadderRuns.set(r,Ij(a,Date.now()))}let d=n.emptyTurnRetry.get(r);if(d===void 0){e.log("codex.fate_ladder_hold_dispatch_candidate_missing",{queued_seq:r,reset_at_ms:o}),n.kandanThreadId!==void 0&&await tt(e,n.kandanThreadId,r,{status:"failed",reason:"The rate-limit hold ended, but the held message was no longer available to send automatically. Please resend your last message.",fate:"rate_limited",ladder:Up(n.fateLadderRuns.get(r),"rate_limited")},void 0,void 0,n.codexThreadId);return}e.log("codex.fate_ladder_hold_dispatch",{queued_seq:r,reset_at_ms:o}),n.emptyTurnRetry.delete(r),Xu(n.queue,d.message),await Pr(e,n,t)})().catch(a=>{e.log("codex.fate_ladder_hold_dispatch_failed",{queued_seq:r,message:a instanceof Error?a.message:String(a)})})},i);s.unref?.(),n.rateLimitHoldTimers.set(r,s)}function mF(e,n,t){let r={last_seq:t};return n.kandanThreadId===void 0?r:{...r,runner_id:e,thread_id:n.kandanThreadId}}async function oc(e,n){if(n.codexThreadId===void 0)return;let t=e.options.channelSession;await oo(e.kandan,e.topic,"session:bind",{workspace:t.workspaceSlug,channel:t.channelSlug,thread_id:n.kandanThreadId??null,codex_thread_id:n.codexThreadId,instance_id:e.instanceId})}function jce(e,n,t,r,o){return{pipeline:void 0,rootSeq:n,kandanThreadId:t,kandanThreadTitle:void 0,codexThreadId:r,turn:{status:"idle"},closed:!1,minSeq:e,seenSeq:e,failedSeqs:new Map,drainInFlight:!1,drainRequested:!1,deadWorkerRebuildAttempts:0,emptyTurnRetry:new Map,midStreamResumeAttempts:new Map,fateLadderRuns:new Map,rateLimitHoldTimers:new Map,rateLimitResetAtMs:void 0,threadRebindAttempts:new Map,boundStartTimeout:!1,undeliveredCloudTerminals:new Map,fusedQueuedSeqs:new Map,reconnectRetryTimer:void 0,reconnectRetryAttempts:0,queue:bj(),forwardedTurnIds:new Set,recoveredTurnIds:new Set,stopAbortedStartingSeqs:new Set,pendingInterruptedThreadOnlyCompletions:[],claimedKandanMessageKeys:new Set,steeredKandanMessageSeqs:new Set,localTuiTurnIds:new Set,pendingStartingCompletionTurnIds:new Set,mirroredTuiInputProjections:Bp(bo),pendingTuiInputMirrors:new Map,turnReplyTargets:Bp(bo),turnRuntimeSettingsBySourceSeq:Bp(bo),localTuiTurnRuntimeSettingsByTurnId:Bp(bo),pendingApprovalRequests:new Map,approvalPromptChain:Promise.resolve(),approvedThreadInteractionRequesters:new Set,pendingPortForwardRequests:new Map,portForwardPreviousProcessingStates:new Map,queuedPortForwardCandidates:new Map,approvedForwardPorts:new Set,approvedForwardTargets:new Map,dismissedForwardTargets:new Map,portForwardWatcher:void 0,activeProcessingState:void 0,pendingReconnectContextInjection:void 0,linzumiContext:qs(o.channelSession.linzumiContext),typingHeartbeat:void 0,typingHeartbeatInFlight:!1,codexTypingActive:!1,pendingCompletionTypingStops:new Map,runtimeSettings:spe(o),pendingRuntimeSettingsResume:!1,runtimeSettingsGeneration:0,runtimeSettingsResumeChain:Promise.resolve(),streamEventTick:0,idleStreamTimer:void 0,idleStreamGuardTurnId:void 0,idleStreamEventSeen:!1,idleStreamOpenLocalExecItemIds:new Set,idleStreamDeferralLogged:!1,idleStreamQuietSinceMs:void 0,idleStreamModelWaitDeferralLogged:!1,idleStreamKillGrace:void 0}}async function Fce(e,n,t,r){qce(e,n,r),await ele(e,n,t,r),await Yce(e,n,r)}function qce(e,n,t){let r=n.queuedPortForwardCandidates.get(t.port);r===void 0||!qr(r,t)||(n.queuedPortForwardCandidates.delete(t.port),e.log("port_forward.queued_request_dropped",{port:t.port,pid:t.pid,reason:"listener_exited"}))}function MF(e,n,t){if(e.options.enablePortForwardWatch!==!0||n.portForwardWatcher!==void 0||n.kandanThreadId===void 0||n.codexThreadId===void 0)return;let{start:r,...o}=e.options.portForwardWatcher??{};if(r===void 0&&o.rootPid===void 0){e.log("port_forward.watch_skipped",{reason:"worker_pid_missing"});return}let i=r??ec;for(let s of e.options.initialForwardPorts??[])n.approvedForwardPorts.add(s);n.portForwardWatcher=i({...o,watchPorts:[...o.watchPorts??[],...e.options.initialForwardPorts??[]],extraWatchPorts:o.extraWatchPorts??my(Za(e.options.runnerId)),onCandidate:s=>pk(e,n,t,s),onCandidateLost:s=>Fce(e,n,t,s),onListenersObserved:s=>ag(`channel-session:${n.kandanThreadId??e.instanceId}`,s.filter(a=>a.portKind!=="commander_bound")),onError:s=>e.log("port_forward.watch_failed",{message:s.message})})}async function zce(e,n,t){let r=e.options.channelSession,o=t.codexVersion;if(n.kandanThreadId===void 0){n.codexThreadId=await sk(e.codex,e.options);let i=await oo(e.kandan,e.topic,"session:announce",{workspace:r.workspaceSlug,channel:r.channelSlug,body:JO(e.options,o,n.codexThreadId),payload:Ba(e.options,e.instanceId,"availability",n.codexThreadId,t),client_message_id:`local-codex-root-${e.instanceId}`});n.rootSeq=X(i.seq),n.rootSeq!==void 0&&(n.minSeq=Math.max(n.minSeq,n.rootSeq))}else if(r.startCodexThread===!0)n.codexThreadId=await sk(e.codex,e.options),await gF(e,n),await oc(e,n);else if(n.codexThreadId!==void 0)await gF(e,n),await oc(e,n);else{let i=await oo(e.kandan,e.topic,"session:resolve_thread_session",{workspace:r.workspaceSlug,channel:r.channelSlug,thread_id:n.kandanThreadId});if(n.rootSeq=X(i.seq),n.codexThreadId=h(i.codex_thread_id),Ey(n,NF(i.message)),n.codexThreadId===void 0)throw new Error("Kandan thread root metadata did not include a Codex thread id");await oc(e,n)}}async function Nce(e,n,t){if(n.turn.status!=="completing")return;let{turnId:r,queuedSeq:o}=n.turn;n.turn={status:"idle"},Ya(n,o),os(n,r),Oy(n,r),rs(n,r),await Si(e,n),n.kandanThreadId!==void 0&&await pf(e,n,n.kandanThreadId,o,{status:"processed"}),e.log("codex.completing_turn_recovered",{turn_id:r,queued_seq:o,reason:t})}async function AF(e,n,t,r,o){ck(e,t,r),n.turn={status:"idle"},Ya(n,o),os(n,r),Oy(n,r),n.pendingInterruptedThreadOnlyCompletions.push({threadId:t,interruptedTurnId:r,interruptedQueuedSeq:o}),Xle(n.pendingInterruptedThreadOnlyCompletions,bo),rs(n,r),ic(n,r),My(n,r,new Error("Codex turn interrupted")),n.kandanThreadId!==void 0&&await pf(e,n,n.kandanThreadId,o,{status:"processed"},void 0,void 0,n.codexThreadId),await Si(e,n)}function ck(e,n,t){e.codex.request("turn/interrupt",{threadId:n,turnId:t}).catch(r=>{e.log("codex.turn_interrupt_failed",{thread_id:n,turn_id:t,message:r instanceof Error?r.message:String(r)})})}async function Uce(e,n,t,r){if(r.type==="update_session_settings")return Wce(e,n,t,r);if(r.type==="resolve_codex_approval_request")return Zce(e,n,r);if(r.type==="resolve_port_forward_request")return LF(e,n,t,r);if(r.type==="update_thread_interaction_access")return Kce(e,n,r);if(r.type==="stop_turn")return Jce(e,n,t,r);if(r.type==="steer_turn")return Bce(e,n,t,r);if(r.type!=="interrupt_queued_messages"||n.codexThreadId!==r.threadId)return;if(n.codexThreadId===void 0||n.kandanThreadId===void 0)return{instanceId:e.instanceId,ok:!1,error:"thread_not_bound"};let o=Sj(n.queue,r.throughSeq),i=IS(n.turn),s=n.turn.status==="completing"?n.turn.queuedSeq:void 0,a=QS(r.throughSeq,i)||QS(r.throughSeq,s);if(!o.ok&&!a)return{instanceId:e.instanceId,ok:!1,error:"queue_empty"};switch(n.turn.status){case"active":await AF(e,n,n.codexThreadId,n.turn.turnId,n.turn.queuedSeq);break;case"starting":n.turn=hj(n.turn);break;case"completing":QS(r.throughSeq,n.turn.queuedSeq)&&await Nce(e,n,"interrupt requested");break;case"idle":break}if(e.log("codex.queued_messages_interrupted",{through_seq:r.throughSeq??null,selected_count:o.ok?o.selectedCount:0,remaining_count:o.ok?o.remainingCount:Zo(n.queue)}),o.ok)for(let d of o.selectedSeqs)await tt(e,n.kandanThreadId,d,{status:"processing",reason:"interrupt requested"},void 0,void 0,n.codexThreadId);return await Pr(e,n,t),{instanceId:e.instanceId,ok:!0,interruptedQueuedMessages:o.ok?o.selectedCount:0}}async function Bce(e,n,t,r){if(r.agentProvider==="claude-code"||!(n.kandanThreadId!==void 0&&n.kandanThreadId===r.threadId||r.providerSessionKey!==void 0&&n.codexThreadId===r.providerSessionKey||n.codexThreadId!==void 0&&n.codexThreadId===r.threadId))return;let i=X(r.sourceSeq);if(i===void 0)return;if(n.kandanThreadId===void 0||n.codexThreadId===void 0)return{instanceId:e.instanceId,controlType:r.type,agentProvider:"codex",ok:!1,error:"thread_not_bound"};let s=n.kandanThreadId,a=Np(n.queue,i);if(!(!a&&Dy(e,n,s,i)))return n.steeredKandanMessageSeqs.has(i)&&await tt(e,s,i,{status:"processed",reason:qp},void 0,void 0,n.codexThreadId),e.log("kandan.steer_duplicate_ignored",{seq:i,linzumi_thread_id:s,codex_thread_id:n.codexThreadId,reason:a?"seq_already_pending_in_queue":"duplicate_message_claim",previously_steered:n.steeredKandanMessageSeqs.has(i)}),{instanceId:e.instanceId,controlType:r.type,agentProvider:"codex",threadId:r.threadId,duplicate:!0};let u=Ho(r.attachments??[]),c=r.workDescription??ey(r.input),l=async _=>{let w=c??"";return w.trim()===""&&u.length===0?(ale(e,n,s,i),{instanceId:e.instanceId,controlType:r.type,agentProvider:"codex",threadId:r.threadId,ok:!1,error:"steer_missing_message_body"}):(e.log("kandan.steer_parked_as_own_turn",{seq:i,linzumi_thread_id:s,codex_thread_id:n.codexThreadId??null,reason:_,turn_status:n.turn.status}),await JF(e,n,t,{seq:i,body:w,attachments:u,parkReason:_}),{instanceId:e.instanceId,controlType:r.type,agentProvider:"codex",threadId:r.threadId,steered:"queued_fallback",reason:_})};if(u.length>0)return l("attachments_require_own_turn");let p=n.turn.status==="active"?n.turn.turnId:void 0;if(p===void 0)return l(`turn_not_steerable_${n.turn.status}`);let m=Yg(r.input);if(m.length===0)return l("steer_input_empty");let f,y=Symbol("codex_steer_timeout");try{let _=await Promise.race([e.codex.request("turn/steer",{threadId:n.codexThreadId,expectedTurnId:p,input:m}),new Promise(w=>{f=setTimeout(()=>w(y),hF),f.unref?.()})]);if(_===y)return e.log("codex.steer_unconfirmed",{seq:i,linzumi_thread_id:s,codex_thread_id:n.codexThreadId,turn_id:p,timeout_ms:hF}),{instanceId:e.instanceId,controlType:r.type,agentProvider:"codex",threadId:r.threadId,ok:!1,error:"codex_steer_unconfirmed",message:"The engine did not confirm the steering message in time. It was not re-queued to avoid a duplicate; Linzumi will drive it to a visible outcome."};if("error"in _)return e.log("codex.steer_rejected",{seq:i,linzumi_thread_id:s,codex_thread_id:n.codexThreadId,turn_id:p,message:_.error.message}),l("engine_rejected_steer")}catch(_){return e.log("codex.steer_rejected",{seq:i,linzumi_thread_id:s,codex_thread_id:n.codexThreadId,turn_id:p,message:_ instanceof Error?_.message:String(_)}),l("engine_rejected_steer")}finally{f!==void 0&&clearTimeout(f)}if(n.steeredKandanMessageSeqs.add(i),n.steeredKandanMessageSeqs.size>ky){let _=n.steeredKandanMessageSeqs.size-ky;for(let w of Array.from(n.steeredKandanMessageSeqs).slice(0,_))n.steeredKandanMessageSeqs.delete(w)}return await tt(e,s,i,{status:"processed",reason:qp},void 0,void 0,n.codexThreadId),e.log("codex.steer_applied",{seq:i,linzumi_thread_id:s,codex_thread_id:n.codexThreadId,turn_id:p}),{instanceId:e.instanceId,controlType:r.type,agentProvider:"codex",threadId:r.threadId,steered:"steered_live"}}async function Jce(e,n,t,r){if(!(n.kandanThreadId!==void 0&&n.kandanThreadId===r.threadId||r.providerSessionKey!==void 0&&n.codexThreadId===r.providerSessionKey||n.codexThreadId!==void 0&&n.codexThreadId===r.threadId))return;if(n.codexThreadId===void 0||n.kandanThreadId===void 0)return{instanceId:e.instanceId,ok:!1,error:"thread_not_bound"};let i=n.codexThreadId,s=n.kandanThreadId,a;if(n.turn.status==="starting"){let b=n.turn.queuedSeq;await pce({stillStarting:()=>n.turn.status==="starting"&&n.turn.queuedSeq===b,capMs:lF()})||(a=b,Zle(n,b))}let d=a===void 0?[]:Xa(n,a),u=n.turn,c=Ha(u)??r.turnId,l=IS(u)??(u.status==="completing"?u.queuedSeq:void 0),p=u.status!=="idle"||Zo(n.queue)>0;c!==void 0&&My(n,c,new Error("stopped by user"));let m=!1;if(a!==void 0)e.log("codex.stop_turn_start_abort",{thread_id:i,kandan_thread_id:s,queued_seq:a,start_ack_wait_ms:lF()});else try{await e.codex.request("turn/interrupt",{threadId:i,turnId:c??null}),m=!0}catch(b){e.log("codex.stop_turn_interrupt_failed",{thread_id:i,turn_id:c??null,message:b instanceof Error?b.message:String(b)})}let f=ace(),y=!p||f<=0||await cce({currentTick:()=>n.streamEventTick,capMs:f}),_=!1;if((!y||a!==void 0)&&e.escalateEngineHalt!==void 0)try{await e.escalateEngineHalt(a!==void 0?"stopped by user (engine never acked turn start)":"stopped by user (engine unresponsive)"),_=!0}catch(b){e.log("codex.stop_turn_escalation_failed",{thread_id:i,message:b instanceof Error?b.message:String(b)})}let w=ES(n.queue),S=a!==void 0?"stopped by user (before the turn started)":_?"interrupted (engine killed after unresponsive stop)":"stopped by user",v=y||_;if(v&&(l!==void 0&&(await pf(e,n,s,l,{status:"interrupted",reason:S},void 0,void 0,i),Ya(n,l)),a!==void 0))for(let b of d)e.options.onLiveSourceSeqSettled?.({channel:e.options.channelSession.channelSlug,threadId:s,sourceSeq:b});c!==void 0&&(os(n,c),Oy(n,c),rs(n,c),ic(n,c)),n.turn={status:"idle"},BF(n);for(let b of w)for(let k of Wa(b))Dy(e,n,s,k);return await Si(e,n),e.log("codex.turn_stopped",{thread_id:i,kandan_thread_id:s,turn_id:c??null,had_live_activity:p,interrupt_acked:m,stream_events_ceased:y,escalated_kill:_,confirmed_halt:v,aborted_starting_seq:a??null,preserved_queued_messages:w.length}),v&&w.length>0&&Pr(e,n,t).catch(b=>{e.log("kandan.post_stop_queue_drain_failed",{kandan_thread_id:s,codex_thread_id:i,queue_depth:Zo(n.queue),message:b instanceof Error?b.message:String(b)})}),{instanceId:e.instanceId,controlType:r.type,ok:!0,agentProvider:"codex",threadId:s,stopped:v,streamEventsCeased:y,escalatedKill:_,confirmedHalt:v,abortedWedgedStart:a!==void 0,preservedQueuedMessages:w.length,...v?{}:{error:"stop_halt_unconfirmed"}}}function QS(e,n){return e===void 0||n===void 0?!1:n<=e}async function Kce(e,n,t){let r=OF(t);if(n.kandanThreadId!==t.threadId)return e.log("thread_interaction.access_update_ignored",{thread_id:t.threadId,expected_thread_id:n.kandanThreadId??null,requester_slug:t.requesterSlug??null,requester_user_id:t.requesterUserId??null,reason:"different_thread"}),{instanceId:e.instanceId,ok:!1,error:"different_thread"};if(r.length===0)return e.log("thread_interaction.access_update_ignored",{thread_id:t.threadId,requester_slug:t.requesterSlug??null,requester_user_id:t.requesterUserId??null,reason:"missing_requester"}),{instanceId:e.instanceId,ok:!1,error:"missing_requester"};for(let o of r)t.grant?n.approvedThreadInteractionRequesters.add(o):n.approvedThreadInteractionRequesters.delete(o);return e.log("thread_interaction.access_updated",{thread_id:t.threadId,requester_slug:t.requesterSlug??null,requester_user_id:t.requesterUserId??null,grant:t.grant}),{instanceId:e.instanceId,ok:!0,grant:t.grant}}function OF(e){if(e.threadId===void 0)return[];let n=[];return e.requesterUserId!==void 0&&n.push(`${e.threadId}:user:${e.requesterUserId}`),e.requesterSlug!==void 0&&e.requesterSlug.trim()!==""&&n.push(`${e.threadId}:slug:${e.requesterSlug}`),n}function Vce(e,n){return OF({threadId:n.threadId,requesterUserId:n.actorUserId,requesterSlug:n.actorSlug}).some(t=>e.approvedThreadInteractionRequesters.has(t))}async function Wce(e,n,t,r){if(n.codexThreadId===r.threadId)return n.codexThreadId===void 0?{instanceId:e.instanceId,ok:!1,error:"thread_not_bound"}:(n.runtimeSettings=ape(n.runtimeSettings,r),n.pendingRuntimeSettingsResume=!0,n.runtimeSettingsGeneration+=1,await Ple(e,n),upe(e,n).catch(o=>{e.log("kandan.session_settings_publish_failed",{message:o instanceof Error?o.message:String(o)})}),e.log("codex.session_settings_updated",{model:n.runtimeSettings.model??null,reasoning_effort:n.runtimeSettings.reasoningEffort??null,approval_policy:n.runtimeSettings.approvalPolicy??null,sandbox:n.runtimeSettings.sandbox??null,fast:n.runtimeSettings.fast??null,allow_port_forwarding_by_default:n.runtimeSettings.allowPortForwardingByDefault??null}),await Xce(e,n,t),await $F(e,n),{instanceId:e.instanceId,ok:!0,model:n.runtimeSettings.model??null,reasoningEffort:n.runtimeSettings.reasoningEffort??null,approvalPolicy:n.runtimeSettings.approvalPolicy??null,sandbox:n.runtimeSettings.sandbox??null,fast:n.runtimeSettings.fast??null,allowPortForwardingByDefault:n.runtimeSettings.allowPortForwardingByDefault??null})}async function Hce(e,n){let t=n.runtimeSettingsGeneration,o=n.runtimeSettingsResumeChain.catch(()=>{}).then(()=>Gce(e,n,t));return n.runtimeSettingsResumeChain=o.then(()=>{},()=>{}),await o}async function Gce(e,n,t){if(n.pendingRuntimeSettingsResume!==!0||n.closed||n.turn.status!=="idle"||nq(n))return!0;let r=n.codexThreadId;if(r===void 0)return!0;if(n.runtimeSettingsGeneration!==t)return!1;let o=t,i=n.runtimeSettings,s=iq(e.options,i),a={threadId:r,...bp(s)};e.log("codex.session_settings_resume_requested",{codex_thread_id:r,model:i.model??null,reasoning_effort:i.reasoningEffort??null,approval_policy:i.approvalPolicy??null,sandbox:i.sandbox??null,fast:i.fast??null,generation:o});let d=await e.codex.request("thread/resume",a);if("error"in d)throw new Error(`failed to resume Codex thread with updated settings: ${d.error.message}`);return n.pendingRuntimeSettingsResume===!0&&n.runtimeSettingsGeneration===o&&(n.pendingRuntimeSettingsResume=!1),e.log("codex.session_settings_resume_completed",{codex_thread_id:r,generation:o,current_generation:n.runtimeSettingsGeneration,pending:n.pendingRuntimeSettingsResume}),n.pendingRuntimeSettingsResume!==!0}async function $F(e,n){try{return await Hce(e,n)}catch(t){return e.log("codex.session_settings_resume_failed",{message:t instanceof Error?t.message:String(t)}),!1}}async function Zce(e,n,t){if(n.codexThreadId!==t.threadId)return;if(n.codexThreadId===void 0||n.kandanThreadId===void 0)return{instanceId:e.instanceId,ok:!1,error:"thread_not_bound"};let r=n.pendingApprovalRequests.get(ry(t.requestId,t.sourceSeq));if(r===void 0)return{instanceId:e.instanceId,ok:!1,error:"approval_request_not_found"};n.pendingApprovalRequests.delete(ry(t.requestId,t.sourceSeq));let o=t.decision==="approve"?"accept":"decline";return r.resolve({decision:o}),n.activeProcessingState={seq:r.sourceSeq,reason:"streaming response"},await tt(e,n.kandanThreadId,r.sourceSeq,{status:"processing",reason:"streaming response"},void 0,void 0,n.codexThreadId),e.log("codex.approval_request_resolved",{request_id:t.requestId,source_seq:t.sourceSeq,decision:t.decision,codex_decision:o}),{instanceId:e.instanceId,ok:!0}}async function rk(e,n,t){if(n.pendingPortForwardRequests.size>0||n.queuedPortForwardCandidates.size===0)return;let r=Array.from(n.queuedPortForwardCandidates.values()).sort((o,i)=>o.port-i.port)[0];r!==void 0&&(n.queuedPortForwardCandidates.delete(r.port),await pk(e,n,t,r))}async function LF(e,n,t,r){let o=n.pendingPortForwardRequests.get(r.requestId);if(o!==void 0&&!(r.threadId!==void 0&&n.codexThreadId!==r.threadId))return Qce(e,t,r)?(n.pendingPortForwardRequests.delete(r.requestId),r.decision==="deny"?(n.dismissedForwardTargets.set(o.port,mr(o)),await fk(e,n,o,{decision:"deny"}),await mk(e,n,o,"failed"),e.log("port_forward.request_denied",{request_id:r.requestId,port:o.port,pid:o.pid}),await rk(e,n,t),{instanceId:e.instanceId,ok:!0}):(await lk(e,n,o,{publishMessageState:!0,logEvent:"port_forward.request_approved"}),await rk(e,n,t),{instanceId:e.instanceId,ok:!0,port:o.port})):(e.log("port_forward.request_resolution_ignored",{request_id:r.requestId,actor_slug:r.actorSlug??null,actor_user_id:r.actorUserId??null,reason:"sender_not_allowed"}),{instanceId:e.instanceId,ok:!1,error:"sender_not_allowed"})}async function jF(e,n,t,r){let o=r==="listener_exited"?"port_forward_listener_exited":"port_forward_listener_changed";n.pendingPortForwardRequests.delete(t.requestId),await fk(e,n,t,{decision:"expired",reason:r}),await mk(e,n,t,"failed",o),e.log("port_forward.pending_request_expired",{request_id:t.requestId,port:t.port,pid:t.pid,reason:r})}async function lk(e,n,t,r){n.approvedForwardPorts.add(t.port),n.approvedForwardTargets.set(t.port,mr(t));let o=vi(t.command),i=e.options.onForwardPortApproved?.(t.port,{kandanThreadId:n.kandanThreadId??null,codexThreadId:n.codexThreadId??null,channelSlug:e.options.channelSession.channelSlug??null,processName:o?.appName??null,processIconKey:o?.iconKey??null,linzumiCliManaged:t.portKind==="commander_bound"});await fk(e,n,t,{decision:"approve",capabilities:i}),r.publishMessageState&&await mk(e,n,t,"processed"),e.log(r.logEvent,{request_id:t.requestId,port:t.port,pid:t.pid})}function Qce(e,n,t){return t.actorSlug===void 0&&t.actorUserId===void 0?!1:Sv(e.options.channelSession.listenUser,{actorSlug:t.actorSlug,actorUserId:t.actorUserId},n.runnerIdentity)}async function pk(e,n,t,r){if(n.kandanThreadId===void 0||n.codexThreadId===void 0){e.log("port_forward.prompt_skipped",{port:r.port,pid:r.pid,reason:"thread_not_bound"});return}let o=ef({candidate:r,threadBound:!0,suppressedPorts:new Set(e.options.suppressedForwardPorts?.()??[]),approvedPorts:n.approvedForwardPorts,approvedTargets:n.approvedForwardTargets,dismissedTargets:n.dismissedForwardTargets,pendingRequests:Array.from(n.pendingPortForwardRequests.values())}),i=!0;switch(o.type){case"skip":return;case"remember_approved_target":n.approvedForwardTargets.set(o.target.port,o.target);return;case"revoke_and_prompt":if(n.pendingPortForwardRequests.size>0&&!i){n.queuedPortForwardCandidates.set(r.port,r),e.log("port_forward.request_queued",{port:r.port,pid:r.pid,pending_count:n.pendingPortForwardRequests.size});return}if(await zF(e,n,o.revoked,o.reason),i){await XS(e,n,t,r);return}break;case"replace_pending":if(await jF(e,n,o.expired,o.reason),i){await XS(e,n,t,o.candidate);return}if(n.pendingPortForwardRequests.size>0){n.queuedPortForwardCandidates.set(o.candidate.port,o.candidate),e.log("port_forward.request_queued",{port:o.candidate.port,pid:o.candidate.pid,pending_count:n.pendingPortForwardRequests.size});return}break;case"prompt":if(i){await XS(e,n,t,r);return}if(n.pendingPortForwardRequests.size>0){n.queuedPortForwardCandidates.set(r.port,r),e.log("port_forward.request_queued",{port:r.port,pid:r.pid,pending_count:n.pendingPortForwardRequests.size});return}break}let s=`port-forward-${Py()}`,a=nf(r),d=qF(n);if(d===void 0){e.log("port_forward.prompt_skipped",{port:r.port,pid:r.pid,reason:"source_seq_missing"});return}let u=nc({requestId:s,sourceSeq:d,candidate:r});n.pendingPortForwardRequests.set(s,u),n.activeProcessingState!==void 0&&n.portForwardPreviousProcessingStates.set(s,n.activeProcessingState);let c=vi(r.command),l=c?.iconKey===void 0?void 0:`/web/process-icons/${c.iconKey}.png`,p=c?.appName??a;n.activeProcessingState={seq:d,reason:"awaiting approval",approval:{requestId:s,kind:"local_runner_port_forward",summary:`Make ${p} on port ${r.port} accessible on Linzumi?`,reason:yy(r),port:r.port,pid:r.pid,command:r.command,...r.cwd===void 0?{}:{cwd:r.cwd},...c?.appName===void 0?{}:{processName:p},...c?.iconKey===void 0?{}:{processIconKey:c.iconKey},...l===void 0?{}:{processIconPath:l},choices:[{decision:"approve",label:"Enable",description:`Allow Linzumi to proxy HTTP, HTTPS, and WebSocket traffic for runner port ${r.port}.`},{decision:"deny",label:"Deny",description:`Keep runner port ${r.port} private for this runner session.`}],allowedActorSlug:e.options.channelSession.listenUser,allowedActorUserId:e.options.channelSession.listenUser.toLowerCase()===(t.runnerIdentity.actorUsername??"").toLowerCase()?t.runnerIdentity.actorUserId:void 0}},await tt(e,n.kandanThreadId,d,{status:"processing",reason:"awaiting approval",approval:n.activeProcessingState.approval},void 0,void 0,n.codexThreadId),await nle(e,n,u,c),e.log("port_forward.request_pending",{request_id:s,port:r.port,pid:r.pid})}async function XS(e,n,t,r){let o=qF(n);if(o===void 0){e.log("port_forward.auto_approval_skipped",{port:r.port,pid:r.pid,reason:"source_seq_missing"});return}let i=nc({requestId:`port-forward-auto-${Py()}`,sourceSeq:o,candidate:r});await lk(e,n,i,{publishMessageState:!1,logEvent:"port_forward.request_auto_approved"})}async function Xce(e,n,t){for(let r of Array.from(n.pendingPortForwardRequests.values()))n.pendingPortForwardRequests.delete(r.requestId),await lk(e,n,r,{publishMessageState:!0,logEvent:"port_forward.request_auto_approved"});await FF(e,n,t)}async function FF(e,n,t){let r=Array.from(n.queuedPortForwardCandidates.values()).sort((o,i)=>o.port-i.port)[0];r!==void 0&&(n.queuedPortForwardCandidates.delete(r.port),await pk(e,n,t,r),await FF(e,n,t))}function qF(e){return e.activeProcessingState?.seq??e.rootSeq}async function zF(e,n,t,r){n.approvedForwardPorts.delete(t.port),n.approvedForwardTargets.delete(t.port);let o=e.options.onForwardPortRevoked?.(t.port);await sc(e.kandan,e.topic,"forward_port_revoked",{instanceId:e.instanceId,port:t.port,pid:t.pid,command:t.command,...t.cwd===void 0?{}:{cwd:t.cwd},reason:r,capabilities:Us(o,t.port)},e.log),e.log("port_forward.approved_port_revoked",{port:t.port,pid:t.pid,reason:r})}async function Yce(e,n,t){n.approvedForwardPorts.has(t.port)&&await zF(e,n,n.approvedForwardTargets.get(t.port)??t,"listener_exited")}async function ele(e,n,t,r){let o=Array.from(n.pendingPortForwardRequests.values()).find(i=>qr(mr(i),r));o!==void 0&&(await jF(e,n,o,"listener_exited"),await rk(e,n,t))}async function nle(e,n,t,r){await sc(e.kandan,e.topic,"forward_port_requested",{instanceId:e.instanceId,requestId:t.requestId,sourceSeq:t.sourceSeq,port:t.port,pid:t.pid,command:t.command,codexThreadId:n.codexThreadId??null,kandanThreadId:n.kandanThreadId??null,channelSlug:e.options.channelSession.channelSlug??null,...r?.appName===void 0?{}:{processName:r.appName},...r?.iconKey===void 0?{}:{processIconKey:r.iconKey},...t.cwd===void 0?{}:{cwd:t.cwd}},e.log)}async function fk(e,n,t,r){await sc(e.kandan,e.topic,"forward_port_resolved",{instanceId:e.instanceId,requestId:t.requestId,port:t.port,pid:t.pid,command:t.command,codexThreadId:n.codexThreadId??null,kandanThreadId:n.kandanThreadId??null,channelSlug:e.options.channelSession.channelSlug??null,...t.cwd===void 0?{}:{cwd:t.cwd},sourceSeq:t.sourceSeq,decision:r.decision,...r.reason===void 0?{}:{reason:r.reason},...r.capabilities===void 0?{}:{capabilities:r.capabilities}},e.log)}async function mk(e,n,t,r,o="port_forward_denied"){if(n.kandanThreadId===void 0)return;let i=n.portForwardPreviousProcessingStates.get(t.requestId);n.portForwardPreviousProcessingStates.delete(t.requestId);let s=n.activeProcessingState;if(s!==void 0&&s.seq===t.sourceSeq){let a=s.reason==="awaiting approval"&&s.approval.requestId===t.requestId;if(a){if(n.activeProcessingState=void 0,i!==void 0&&i.seq===t.sourceSeq){n.activeProcessingState=i,await tt(e,n.kandanThreadId,t.sourceSeq,iy(i),void 0,void 0,n.codexThreadId);return}switch(n.turn.status){case"active":case"completing":if(n.turn.queuedSeq===t.sourceSeq){n.activeProcessingState={seq:t.sourceSeq,reason:"running terminal command"},await tt(e,n.kandanThreadId,t.sourceSeq,{status:"processing",reason:"running terminal command"},void 0,void 0,n.codexThreadId);return}break;case"idle":case"starting":break}}if(!a){await tt(e,n.kandanThreadId,t.sourceSeq,iy(s),void 0,void 0,n.codexThreadId);return}}switch(r){case"processed":await tt(e,n.kandanThreadId,t.sourceSeq,{status:"processed"},void 0,void 0,n.codexThreadId);break;case"failed":await tt(e,n.kandanThreadId,t.sourceSeq,{status:"failed",reason:o},void 0,void 0,n.codexThreadId);break}}function tle(e){let n=e.trim().match(/^\/kandan\s+(approve|deny)-port-forward\s+(\S+)$/i);if(n!==null)return{decision:n[1]?.toLocaleLowerCase()==="approve"?"approve":"deny",requestId:n[2]??""}}function df(e){let n=e.replace(/\s+/g," ").trim();return n.length<=50?n:`${n.slice(0,47)}...`}function Ey(e,n){n!==void 0&&(e.kandanThreadTitle=n)}function NF(e){return e===void 0?void 0:pg(e)?.threadTitle}function rle(e){if(Array.isArray(e))for(let n of e){let t=pg(n)?.threadTitle;if(t!==void 0)return t}}async function gF(e,n){if(n.kandanThreadId===void 0||n.kandanThreadTitle!==void 0)return;let t=e.options.channelSession,r=await oo(e.kandan,e.topic,"session:thread_context",{workspace:t.workspaceSlug,channel:t.channelSlug,thread_id:n.kandanThreadId});Ey(n,rle(r.messages))}async function ole(e,n,t,r,o){let i=e.options.channelSession;if(o.type!=="thread.message"){YS(e,o,"non_thread_message_event");return}if(o.threadId===void 0){YS(e,o,"missing_thread_id");return}if(o.body.trim()===""&&o.attachments.length===0){YS(e,o,"empty_thread_message");return}if(KO(o)){e.log("kandan.message_ignored",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,reason:"codex_authored"});return}let s=n.kandanThreadId!==void 0?o.threadId===n.kandanThreadId:n.rootSeq!==void 0&&o.replyToSeq===n.rootSeq;if(!Sv(i.listenUser,o,t)&&!Vce(n,o)&&!VO(i.linzumiAgentSession,o)){e.log("kandan.message_ignored",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,reason:"sender_not_allowed",thread_id:o.threadId??null,bound_thread_id:n.kandanThreadId??null,message_state_published:s}),s&&await Bs(e,o,{status:"ignored",reason:"sender_not_allowed"});return}if(o.body.trimStart().startsWith("&")){e.log("kandan.message_ignored",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,reason:"human_only",thread_id:o.threadId??null,bound_thread_id:n.kandanThreadId??null,message_state_published:s}),s&&await Bs(e,o,{status:"ignored",reason:"human_only"});return}let a=tle(o.body);if(a!==void 0){let u=await LF(e,n,r,{type:"resolve_port_forward_request",instanceId:e.instanceId,requestId:a.requestId,decision:a.decision,actorUserId:o.actorUserId,actorSlug:o.actorSlug});u===void 0?await Bs(e,o,{status:"failed",reason:"port_forward_decision_missing"}):u.ok===!0?await Bs(e,o,{status:"processed"}):await Bs(e,o,{status:"failed",reason:h(u.error)??"port_forward_decision_failed"});return}if(n.kandanThreadId===void 0)if(n.rootSeq===void 0||o.replyToSeq!==n.rootSeq){if(!await dle(e,n,o)){e.log("kandan.message_ignored",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,reason:"not_root_reply"}),await Bs(e,o,{status:"ignored",reason:"not_root_reply"});return}}else n.kandanThreadId=o.threadId,dk(e,n);if(MF(e,n,r),o.threadId!==n.kandanThreadId){if(e.options.onUnroutedThreadMessage!==void 0)try{let u=await e.options.onUnroutedThreadMessage(o);if(u==="spawned"){e.log("kandan.message_spawn_on_miss",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,thread_id:o.threadId??null,bound_thread_id:n.kandanThreadId??null,body_preview:df(o.body)});return}if(u==="spawned_deduped")return}catch(u){e.log("kandan.message_spawn_on_miss_failed",{seq:o.seq,thread_id:o.threadId??null,message:u instanceof Error?u.message:String(u)})}e.log("kandan.message_ignored",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,reason:"different_thread",thread_id:o.threadId??null,bound_thread_id:n.kandanThreadId??null,codex_thread_id:n.codexThreadId??null,body_preview:df(o.body)});return}if(Ey(n,o.threadTitle),!sle(e,n,o)){e.log("kandan.message_ignored",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,reason:"duplicate_message_claim"});return}let d=Date.now();RS(n.queue,{seq:o.seq,actorSlug:o.actorSlug,actorUserId:o.actorUserId,body:o.body,attachments:o.attachments,receivedAtMs:d}),e.log("kandan.message_queued",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,linzumi_thread_id:n.kandanThreadId??null,codex_thread_id:n.codexThreadId??null,runner_console:{body_preview:df(o.body),message_received_at_ms:d,...n.kandanThreadTitle===void 0?{}:{linzumi_thread_title:n.kandanThreadTitle}},queue_depth:Zo(n.queue)}),await Bs(e,o,UF(n),"sent"),await Pr(e,n,r)}function UF(e,n){let t=Zo(e.queue);return e.turn.status!=="idle"?{status:"queued",reason:n===void 0?Zu(t):SS(t,n)}:t>1?{status:"queued",reason:pj(t-1)}:{status:"queued"}}async function ile(e,n){let t=ES(n.queue);await Promise.all(t.map((r,o)=>uf(e,n,r,{status:"queued",reason:r.parkReason===void 0?Zu(o+1):SS(o+1,r.parkReason)},"sent")))}function YS(e,n,t){e.log("kandan.message_ignored",{seq:n.seq,type:n.type,thread_id:n.threadId??null,actor_slug:n.actorSlug??null,actor_user_id:n.actorUserId??null,body_length:n.body.length,attachment_count:n.attachments.length,local_runner_event_type:n.localRunnerEventType??null,reason:t})}function hk(e,n,t){let r=e.options.channelSession;return[e.options.runnerId,e.instanceId,r.workspaceSlug,r.channelSlug,n,String(t)].join(":")}function sle(e,n,t){return Dy(e,n,t.threadId,t.seq)}function Dy(e,n,t,r){if(t===void 0)return!0;let o=hk(e,t,r);if(rc.has(o))return!1;if(rc.add(o),n.claimedKandanMessageKeys.add(o),n.claimedKandanMessageKeys.size>ky){let i=n.claimedKandanMessageKeys.size-ky,s=Array.from(n.claimedKandanMessageKeys).slice(0,i);for(let a of s)n.claimedKandanMessageKeys.delete(a),rc.delete(a)}return!0}function BF(e){for(let n of e.claimedKandanMessageKeys)rc.delete(n);e.claimedKandanMessageKeys.clear()}function ale(e,n,t,r){let o=hk(e,t,r);rc.delete(o),n.claimedKandanMessageKeys.delete(o)}async function JF(e,n,t,r){if(n.kandanThreadId===void 0||n.codexThreadId===void 0)throw new Error("cannot start a local Codex turn before thread binding");if(r.dedupBySeq===!0){if(Np(n.queue,r.seq))return e.log("kandan.message_duplicate_ignored",{seq:r.seq,linzumi_thread_id:n.kandanThreadId,codex_thread_id:n.codexThreadId,reason:"seq_already_pending_in_queue"}),"duplicate";if(!Dy(e,n,n.kandanThreadId,r.seq))return e.log("kandan.message_duplicate_ignored",{seq:r.seq,linzumi_thread_id:n.kandanThreadId,codex_thread_id:n.codexThreadId,reason:"duplicate_message_claim"}),"duplicate"}r.boundStartTimeout===!0&&(n.boundStartTimeout=!0);let o={seq:r.seq,actorSlug:r.actorSlug,actorUserId:r.actorUserId,body:r.body,attachments:r.attachments??[],receivedAtMs:Date.now(),parkReason:r.parkReason};return RS(n.queue,o),e.log("kandan.message_queued",{seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,linzumi_thread_id:n.kandanThreadId??null,codex_thread_id:n.codexThreadId??null,runner_console:{body_preview:df(o.body),message_received_at_ms:o.receivedAtMs??Date.now(),...n.kandanThreadTitle===void 0?{}:{linzumi_thread_title:n.kandanThreadTitle}},queue_depth:Zo(n.queue)}),await uf(e,n,o,UF(n,o.parkReason),"sent"),await Pr(e,n,t),"queued"}async function dle(e,n,t){if(t.threadId===void 0||t.replyToSeq===void 0)return!1;let r=e.options.channelSession;try{let o=await oo(e.kandan,e.topic,"session:resolve_thread_session",{workspace:r.workspaceSlug,channel:r.channelSlug,thread_id:t.threadId}),i=X(o.seq),s=h(o.codex_thread_id),a=NF(o.message);return i!==t.replyToSeq||s===void 0?!1:(n.rootSeq=i,n.kandanThreadId=t.threadId,dk(e,n),Ey(n,t.threadTitle??a),n.codexThreadId=s,await oc(e,n),e.log("kandan.thread_bound_from_historical_reply",{seq:t.seq,kandan_thread_id:t.threadId,root_seq:i,codex_thread_id:s}),!0)}catch(o){return e.log("kandan.thread_bind_from_historical_reply_failed",{seq:t.seq,kandan_thread_id:t.threadId,message:o instanceof Error?o.message:String(o)}),!1}}async function ule(e,n,t,r,o){for(;o.pending.length>0;){let i=o.pending.splice(0).sort((s,a)=>s.seq-a.seq);for(let s of i)await KF(e,n,t,s,r)}o.ready=!0}async function KF(e,n,t,r,o){if(!(r.seq<=n.seenSeq)){GO(r.threadId,r.traceparent),n.seenSeq=r.seq,e.log("kandan.chat_event",{seq:r.seq,type:r.type,actor_slug:r.actorSlug??null,actor_user_id:r.actorUserId??null,thread_id:r.threadId??null,reply_to_seq:r.replyToSeq??null,local_runner_event_type:r.localRunnerEventType??null});try{await ole(e,n,t,o,r),n.minSeq=Math.max(n.minSeq,r.seq),n.failedSeqs.delete(r.seq)&&e.log("kandan.chat_event_failure_cleared",{seq:r.seq})}catch(i){let s=i instanceof Error?i.message:String(i),a=ple(e,n,r.seq);e.log("kandan.chat_event_failed",{seq:r.seq,attempts:a,message:s}),a>=_ce&&await fle(e,n,r,s,a),mle(e,n,r),Pr(e,n,o)}}}function cle(e){let n=lle(e);return n===void 0?e.minSeq:Math.min(e.minSeq,n-1)}function lle(e){let n;for(let t of e.failedSeqs.keys())(n===void 0||t<n)&&(n=t);return n}function ple(e,n,t){let r=(n.failedSeqs.get(t)??0)+1;if(n.failedSeqs.set(t,r),n.failedSeqs.size>xce){let o=t;for(let i of n.failedSeqs.keys())i>o&&(o=i);n.failedSeqs.delete(o),e.log("kandan.failed_seq_overflow",{evicted_seq:o,tracked:n.failedSeqs.size})}return r}async function fle(e,n,t,r,o){n.failedSeqs.delete(t.seq),n.minSeq=Math.max(n.minSeq,t.seq),e.log("kandan.chat_event_abandoned",{seq:t.seq,attempts:o,message:r}),!(Np(n.queue,t.seq)||VF(n,t.seq))&&await Bs(e,t,{status:"failed",reason:"chat_event_abandoned"})}function mle(e,n,t){if(t.threadId===void 0||Np(n.queue,t.seq)||VF(n,t.seq))return;let r=hk(e,t.threadId,t.seq);n.claimedKandanMessageKeys.delete(r)&&rc.delete(r)}function VF(e,n){let t=e.turn;switch(t.status){case"starting":case"active":case"completing":return Xa(e,t.queuedSeq).includes(n);case"idle":return!1}}async function Pr(e,n,t){if(n.drainInFlight){n.drainRequested=!0;return}n.drainInFlight=!0;try{do n.drainRequested=!1,await hle(e,n,t);while(n.drainRequested)}finally{n.drainInFlight=!1}}async function hle(e,n,t){if(await _F(e,n)||bF(e,n))return;if(!await $F(e,n)){sf(e,n,"runtime_settings_resume_pending");return}if(bF(e,n))return;let o=wj(n.queue);if(o!==void 0){_le(n,o),ble(n,o),n.turn={status:"starting",queuedSeq:o.seq,interruptAfterStart:!1},n.activeProcessingState={seq:o.seq,reason:"starting turn"},e.log("codex.turn_starting",{queued_seq:o.seq,actor_slug:o.actorSlug??null,actor_user_id:o.actorUserId??null,linzumi_thread_id:n.kandanThreadId??null,codex_thread_id:n.codexThreadId??null,runner_console:{body_preview:df(o.body),message_received_at_ms:o.receivedAtMs??Date.now(),...n.kandanThreadTitle===void 0?{}:{linzumi_thread_title:n.kandanThreadTitle}},queue_depth:Zo(n.queue)}),await uf(e,n,o,{status:"processing",reason:"starting turn"},"sent"),await ile(e,n),await Fp({cwd:e.options.cwd,threadKey:uk(e,n),turnRef:`seq-${o.seq}`,log:(i,s)=>e.log(i,s)});try{let i=n.codexThreadId;if(i===void 0)throw new Error("Codex thread is not bound");n.kandanThreadId!==void 0&&gk(e,n,n.kandanThreadId);let s=n.runtimeSettings;if(e.options.cloudAgentTurn!==void 0){let p=await CF(e,o,n.pendingReconnectContextInjection);n.pendingReconnectContextInjection=void 0;let m=`cloud-${Py()}`;n.turn={status:"active",turnId:m,queuedSeq:o.seq},ik(n,o.seq,s),ok(n,m,o.seq),n.threadRebindAttempts.delete(o.seq),e.log("codex.cloud_turn_started",{turn_id:m,queued_seq:o.seq,linzumi_thread_id:n.kandanThreadId??null});try{await e.options.cloudAgentTurn({input:p,runtimeSettings:s,kandanThreadId:n.kandanThreadId,codexThreadId:i,sourceSeq:o.seq}),tk(e,n,t,m,"completed",void 0,void 0,!0)}catch(f){e.log("codex.cloud_turn_failed",{turn_id:m,queued_seq:o.seq,message:f instanceof Error?f.message:String(f)}),tk(e,n,t,m,"failed",f instanceof Error?f.message:String(f),void 0,!0)}return}let a=n.boundStartTimeout;n.boundStartTimeout=!1;let d=e.codex.request("turn/start",{threadId:i,input:await CF(e,o,n.pendingReconnectContextInjection),...p$(iq(e.options,s))}),u=a?await Qo("turn/start",d):await d,c=lpe(u);if(SF(n,o.seq)){ck(e,i,c),os(n,c),Oy(n,c),rs(n,c),ic(n,c),e.log("codex.turn_start_ack_after_stop_abort",{turn_id:c,queued_seq:o.seq,linzumi_thread_id:n.kandanThreadId??null,codex_thread_id:n.codexThreadId??null});return}n.pendingReconnectContextInjection=void 0;let l=n.turn.status==="starting"&&n.turn.interruptAfterStart;n.turn={status:"active",turnId:c,queuedSeq:o.seq},ak(e,n,c),npe(e,n,t,c),ik(n,o.seq,s),ok(n,c,o.seq),n.threadRebindAttempts.delete(o.seq),e.log("codex.turn_started",{turn_id:c}),l&&(await AF(e,n,i,c,o.seq),await Pr(e,n,t))}catch(i){if(SF(n,o.seq)){e.log("codex.turn_start_failed_after_stop_abort",{queued_seq:o.seq,linzumi_thread_id:n.kandanThreadId??null,codex_thread_id:n.codexThreadId??null,message:i instanceof Error?i.message:String(i)});return}if(Ty(e)){await Si(e,n),Xu(n.queue,o),n.turn={status:"idle"},Ya(n,o.seq),await _F(e,n);return}let s=Hle(i)&&n.kandanThreadId!==void 0,a=s?xle(n,o.seq):void 0,d=s&&a===void 0;if(d&&e.log("codex.thread_rebind_exhausted",{kandan_thread_id:n.kandanThreadId,codex_thread_id:n.codexThreadId??null,queued_seq:o.seq,max_attempts:wy,message:i instanceof Error?i.message:String(i)}),a!==void 0&&n.kandanThreadId!==void 0){let u=n.codexThreadId,c=n.kandanThreadId;try{await Si(e,n);let l=await sk(e.codex,e.options);n.codexThreadId=l,await oc(e,n),await ppe(e,u),e.options.onCodexThreadRebound?.({kandanThreadId:c,oldCodexThreadId:u,newCodexThreadId:l}),e.log("codex.thread_rebound",{linzumi_thread_id:n.kandanThreadId,old_codex_thread_id:u??null,new_codex_thread_id:l,rebind_attempt:a,max_attempts:wy}),await Wle(e,n,t,u,l);try{n.pendingReconnectContextInjection=await wle(e,n)}catch(p){n.pendingReconnectContextInjection=void 0,e.log("codex.thread_reconnect_context_failed",{kandan_thread_id:n.kandanThreadId,codex_thread_id:l,message:p instanceof Error?p.message:String(p)})}Xu(n.queue,o),xF>0&&await Js(xF),n.turn={status:"idle"},await Pr(e,n,t);return}catch(l){e.log("codex.thread_rebind_failed",{kandan_thread_id:n.kandanThreadId,old_codex_thread_id:u??null,message:l instanceof Error?l.message:String(l)})}}if(n.turn={status:"idle"},Ya(n,o.seq),n.threadRebindAttempts.delete(o.seq),await Si(e,n),await uf(e,n,o,{status:"failed",reason:d?`Codex could not recover this conversation's upstream thread after ${wy} restart attempts (${Qa(i)}). Send the message again to retry.`:Qa(i)}),e.log("codex.turn_start_failed",{queued_seq:o.seq,message:i instanceof Error?i.message:String(i)}),hce(i))throw i;Zo(n.queue)>0&&(n.drainRequested=!0)}}}function Ty(e){return e.codex.isClosed?.()===!0}function xle(e,n){let t=e.threadRebindAttempts.get(n)??0;if(!(t>=wy))return e.threadRebindAttempts.delete(n),e.threadRebindAttempts.set(n,t+1),is(e.threadRebindAttempts,yle),t+1}async function _F(e,n){if(!Ty(e))return!1;let t=vj(n.queue);if(t.length===0)return!1;let{codexThreadId:r,kandanThreadId:o}=n,i=e.options.rebuildOnDeadCodexWorker;e.log("kandan.queue_drain_dead_worker_rebuild",{codex_thread_id:r??null,kandan_thread_id:o??null,pending_count:t.length,attempt:n.deadWorkerRebuildAttempts+1,rebuild_available:i!==void 0});let s=async d=>{for(let u of t)try{await uf(e,n,u,{status:"failed",reason:d})}catch(c){e.log("kandan.queue_drain_dead_worker_fail_publish_failed",{codex_thread_id:r??null,seq:u.seq,message:c instanceof Error?c.message:String(c)})}};if(i===void 0||r===void 0||o===void 0)return await s("Codex worker for this thread exited and could not be respawned to resume the conversation."),!0;if(n.deadWorkerRebuildAttempts>=gle)return e.log("kandan.queue_drain_dead_worker_rebuild_exhausted",{codex_thread_id:r,kandan_thread_id:o,attempts:n.deadWorkerRebuildAttempts}),await s("Codex worker for this thread kept exiting on resume; giving up after several respawn attempts."),!0;n.deadWorkerRebuildAttempts+=1,n.closed=!0;let a=!1;try{a=await i({codexThreadId:r,kandanThreadId:o,pendingMessages:t})}catch(d){e.log("kandan.queue_drain_dead_worker_rebuild_failed",{codex_thread_id:r,kandan_thread_id:o,message:d instanceof Error?d.message:String(d)}),a=!1}return a||await s("Codex worker for this thread exited and could not be respawned to resume the conversation."),!0}function bF(e,n){return n.closed?(sf(e,n,"session_closed"),!0):n.turn.status!=="idle"?(sf(e,n,"turn_not_idle"),!0):n.pendingCompletionTypingStops.size>0?(sf(e,n,"completion_typing_stop_pending"),!0):nq(n)?(sf(e,n,"local_tui_turn_active"),!0):!1}function _le(e,n){let t=Wa(n);t.length<=1||(e.fusedQueuedSeqs.set(n.seq,t),is(e.fusedQueuedSeqs,bo))}function ble(e,n){let t=e.emptyTurnRetry.get(n.seq);e.emptyTurnRetry.set(n.seq,{message:n,attempts:t?.attempts??0}),is(e.emptyTurnRetry,of)}function wF(e,n){let t=e.emptyTurnRetry.get(n);return t!==void 0&&t.attempts<xo}function by(e,n){let t=e.emptyTurnRetry.get(n);if(t===void 0)return;if(t.attempts>=xo){e.emptyTurnRetry.delete(n);return}let r=t.attempts+1;return e.emptyTurnRetry.set(n,{message:t.message,attempts:r}),{message:t.message,attempts:r}}function Xa(e,n){let t=e.fusedQueuedSeqs.get(n);return t===void 0||t.length===0?[n]:t}async function pf(e,n,t,r,o,i,s,a){for(let d of Xa(n,r))await tt(e,t,d,o,i,s,a);n.fusedQueuedSeqs.delete(r)}function sf(e,n,t){let r=Zo(n.queue);r!==0&&e.log("kandan.queue_drain_blocked",{reason:t,queue_depth:r,turn_status:n.turn.status,active_turn_id:Ha(n.turn)??null,active_queued_seq:n.turn.status==="active"||n.turn.status==="completing"||n.turn.status==="starting"?n.turn.queuedSeq:null,codex_thread_id:n.codexThreadId??null,kandan_thread_id:n.kandanThreadId??null,local_tui_turn_count:n.localTuiTurnIds.size,pending_completion_typing_stop_count:n.pendingCompletionTypingStops.size})}async function wle(e,n){if(n.kandanThreadId===void 0)throw new Error("cannot fetch reconnect context without a Linzumi thread id");let t=e.options.channelSession,r=await oo(e.kandan,e.topic,"session:thread_context",{workspace:t.workspaceSlug,channel:t.channelSlug,thread_id:n.kandanThreadId}),o=ty(r.messages),i=e.options.reconnectContextSummarizer??_S(),s=await dj(o,i,n.linzumiContext);return e.log("codex.thread_reconnect_context_prepared",{codex_thread_id:n.codexThreadId??null,kandan_thread_id:n.kandanThreadId,context_message_count:o.length}),s}async function vle(e,n,t,r){let o=A(r.params)??{},i=XF(o),s=YF(o);if(n.closed||!eq(n,s,i))return;if(WF(n.runtimeSettings,r.method))return e.log("codex.server_request_auto_accepted",{method:r.method,turn_id:i??null}),{decision:"accept"};if(r.method==="mcpServer/elicitation/request"){let d=kle(o);return e.log(d==="accept"?"codex.mcp_elicitation_auto_accepted":"codex.mcp_elicitation_auto_declined",{method:r.method,server_name:HF(o)??null,tool_name:GF(o)??null,turn_id:i??null}),{action:d}}if(Sle(r.method)){if(i===void 0)throw new Error(`Codex approval request missing turn id: ${r.method}`);return Cle(e,n,r,i,t)}let a=`unhandled Codex app-server request: ${r.method}`;throw e.log("codex.server_request_unhandled",{method:r.method,turn_id:i??null}),i!==void 0&&await rq(e,n,i,a,t),new Error(a)}function WF(e,n){return e.approvalPolicy==="never"&&e.sandbox==="danger-full-access"&&(n==="item/commandExecution/requestApproval"||n==="item/fileChange/requestApproval")}function Sle(e){return e==="item/commandExecution/requestApproval"||e==="item/fileChange/requestApproval"}function HF(e){return h(e.server_name)??h(e.serverName)??h(e.server)}function GF(e){return h(e.tool_name)??h(e.toolName)??h(e.tool)}function kle(e){let n=HF(e);if(n!==void 0)return n==="linzumi"?"accept":"decline";let t=GF(e);return t!==void 0&&(t.startsWith("linzumi_")||t.startsWith("mcp__linzumi__"))?"accept":"decline"}async function Cle(e,n,t,r,o){let i=n.approvalPromptChain.then(async()=>{if(WF(n.runtimeSettings,t.method))return e.log("codex.approval_request_auto_approved",{request_id:String(t.id),source_seq:Qu(n.turn,r)??null,turn_id:r,method:t.method,reason:"full_access_enabled_while_queued"}),{decision:"accept"};let s=Qu(n.turn,r);if(s===void 0||n.kandanThreadId===void 0){let u=`Codex approval request has no active Kandan source message: ${t.method}`;throw await rq(e,n,r,u,o),new Error(u)}let a=fj(t);n.activeProcessingState={seq:s,reason:"awaiting approval",approval:a};let d=new Promise((u,c)=>{let l={requestId:a.requestId,sourceSeq:s,turnId:r,resolve:u,reject:c};n.pendingApprovalRequests.set(ry(l.requestId,l.sourceSeq),l)});return await tt(e,n.kandanThreadId,s,{status:"processing",reason:"awaiting approval",approval:a},void 0,void 0,n.codexThreadId),e.log("codex.approval_request_pending",{request_id:a.requestId,source_seq:s,turn_id:r,method:t.method}),d});return n.approvalPromptChain=i.then(()=>{},()=>{}),i}function Tle(e,n){let t=[...e.pendingApprovalRequests.values()];e.pendingApprovalRequests.clear(),t.forEach(r=>r.reject(n))}function My(e,n,t){for(let[r,o]of e.pendingApprovalRequests)o.turnId===n&&(e.pendingApprovalRequests.delete(r),o.reject(t))}async function Ple(e,n){if(n.runtimeSettings.approvalPolicy!=="never"||n.runtimeSettings.sandbox!=="danger-full-access"||n.pendingApprovalRequests.size===0)return;let t=[...n.pendingApprovalRequests.values()];n.pendingApprovalRequests.clear();let r;for(let o of t)o.resolve({decision:"accept"}),(r===void 0||o.sourceSeq>r)&&(r=o.sourceSeq);r!==void 0&&(n.activeProcessingState={seq:r,reason:"streaming response"});for(let o of t)n.kandanThreadId!==void 0&&await tt(e,n.kandanThreadId,o.sourceSeq,{status:"processing",reason:"streaming response"},void 0,void 0,n.codexThreadId),e.log("codex.approval_request_auto_approved",{request_id:o.requestId,source_seq:o.sourceSeq,reason:"full_access_enabled"})}async function Ile(e,n,t,r,o){if(!Ay(n,t))return;let i=w$(r);if(i===void 0)return;let s=e.options.tuiInputMirrorRetryDelaysMs??Sce;for(let a=0;;a+=1)try{await Rle(e,n,t,i,o);return}catch(d){let u=d instanceof Error?d.message:String(d),c=s[a];if(e.log("codex.tui_input_mirror_retry",{turn_id:t,item_key:i.itemKey,attempt:a+1,retry_in_ms:c??null,message:u}),c===void 0)throw n.pipeline?.notifyTurnMappingFailed(t,`local TUI input mirror failed: ${u}`),d;if(await Js(c),n.closed)return}}function Js(e){return new Promise(n=>{setTimeout(n,e)})}async function Rle(e,n,t,r,o){let i=Dle(t,r.body);if(ZF(n,i)!==void 0){Mle(n,i,r.itemKey);return}Fle(e,n);let s=n.kandanThreadId,a=n.codexThreadId;if(s===void 0||a===void 0)return;let d=e.options.channelSession,u=Vle(n,t)??n.runtimeSettings,c=await oo(e.kandan,e.topic,"session:post_thread_user_message",{workspace:d.workspaceSlug,channel:d.channelSlug,thread_id:s,body:r.body,payload:{...Ba(e.options,e.instanceId,"tui_input",a,o,void 0,void 0,u),...n.rootSeq===void 0?{}:{reply_to_seq:n.rootSeq}},client_message_id:Ele(e.instanceId,t,r.itemKey)}),l=X(c.seq);if(l===void 0)throw new Error("session:post_thread_user_message reply carried no seq for the TUI input mirror");ik(n,l,u),ok(n,t,l),QF(n,{logicalKey:i,turnId:t,seq:l,itemKeys:[r.itemKey]}),e.log("kandan.tui_input_mirrored",{turn_id:t,item_key:r.itemKey,actor_user_id:o.runnerIdentity.actorUserId??null,actor_slug:o.runnerIdentity.actorUsername??null})}function Ele(e,n,t){return`local-codex-tui-${TF("sha256").update(`${e}:${n}:${t}`).digest("hex").slice(0,32)}`}function Dle(e,n){return`local-codex-tui-input:${TF("sha256").update(`${e}:${n.trim()}`).digest("hex").slice(0,32)}`}function ZF(e,n){return Yu(e.mirroredTuiInputProjections,n)}function QF(e,n){Jp(e.mirroredTuiInputProjections,n.logicalKey,n)}function Mle(e,n,t){let r=ZF(e,n);r===void 0||r.itemKeys.includes(t)||QF(e,{...r,itemKeys:[...r.itemKeys,t]})}function XF(e){let n=A(e.turn),t=A(e.item),r=A(t?.turn);return h(n?.id)??h(e.turnId)??h(e.turn_id)??h(t?.turnId)??h(t?.turn_id)??h(r?.id)}function YF(e){let n=A(e.thread),t=A(e.turn);return h(e.threadId)??h(e.thread_id)??h(n?.id)??h(t?.threadId)??h(t?.thread_id)}function eq(e,n,t){return n!==void 0?e.codexThreadId===n:t===void 0?!1:Ha(e.turn)===t||Ay(e,t)}function Ale(e,n,t){if(t===void 0||n.codexThreadId!==t)return;switch(n.turn.status){case"active":case"completing":return $le(n,t,n.turn.queuedSeq),My(n,n.turn.turnId,new Error("Codex turn completed with thread-only notification")),e.log("codex.turn_completion_inferred",{thread_id:t,turn_id:n.turn.turnId,queued_seq:n.turn.queuedSeq,turn_status:n.turn.status}),n.turn.turnId;case"idle":case"starting":break}let r=Ole(n,t);if(r!==void 0){e.log("codex.thread_only_completion_after_interrupt_ignored",{thread_id:t,interrupted_turn_id:r.interruptedTurnId,interrupted_queued_seq:r.interruptedQueuedSeq,turn_status:n.turn.status});return}switch(n.turn.status){case"idle":case"starting":e.log("codex.turn_completion_without_turn_id",{thread_id:t,turn_status:n.turn.status,queued_seq:n.turn.status==="starting"?n.turn.queuedSeq:null});return}}function Ole(e,n){let t=e.pendingInterruptedThreadOnlyCompletions.findIndex(o=>o.threadId===n);if(t<0)return;let[r]=e.pendingInterruptedThreadOnlyCompletions.splice(t,1);return r}function vF(e,n,t){e.pendingInterruptedThreadOnlyCompletions=e.pendingInterruptedThreadOnlyCompletions.filter(r=>n!==void 0&&r.threadId!==n?!0:r.interruptedTurnId!==t)}function $le(e,n,t){e.pendingInterruptedThreadOnlyCompletions=e.pendingInterruptedThreadOnlyCompletions.filter(r=>r.threadId!==n||r.interruptedQueuedSeq>=t)}function Lle(e,n,t,r){if(!(r===void 0||n.codexThreadId!==r))switch(e){case"response_item":return Eg(t)===void 0?void 0:Ha(n.turn);case"item/agentMessage/delta":case"item/completed":case"warning":case"error":return Ha(n.turn);default:return}}function jle(e,n,t,r){e.options.launchTui!==!0||n.codexThreadId!==t||n.turn.status!=="idle"||($y(n.localTuiTurnIds,r,bo),Kle(n,r),n.kandanThreadId!==void 0&&gk(e,n,n.kandanThreadId),e.log("codex.tui_turn_started",{turn_id:r,codex_thread_id:t}))}function Ay(e,n){return e.localTuiTurnIds.has(n)}function nq(e){return e.localTuiTurnIds.size>0}function Fle(e,n){n.kandanThreadId!==void 0||n.rootSeq===void 0||(n.kandanThreadId=Py(),dk(e,n))}function rs(e,n){e.localTuiTurnIds.delete(n)}function qle(e,n,t){e.pendingTuiInputMirrors.delete(n),e.pendingTuiInputMirrors.set(n,t),is(e.pendingTuiInputMirrors,bo)}function zle(e,n){e.pendingTuiInputMirrors.delete(n)}function ok(e,n,t){Jp(e.turnReplyTargets,n,{turnId:n,replyToSeq:t}),e.pipeline?.notifyTurnMappingReady(n)}function ic(e,n){Mj(e.turnReplyTargets,n)}function Nle(e,n){return Yu(e.turnReplyTargets,n)?.replyToSeq}function ik(e,n,t){Jp(e.turnRuntimeSettingsBySourceSeq,n.toString(),t)}function Ule(e,n){return n===void 0?e.runtimeSettings:Yu(e.turnRuntimeSettingsBySourceSeq,n.toString())??{}}function Ble(e,n){if(n!==void 0)return Yu(e.turnRuntimeSettingsBySourceSeq,n.toString())}function Jle(e){return{model_provider:e.modelProvider??null,model:e.model??null,reasoning_effort:e.reasoningEffort??null,sandbox:e.sandbox??null,approval_policy:e.approvalPolicy??null,fast:e.fast??!1,allow_port_forwarding_by_default:e.allowPortForwardingByDefault??null}}function Kle(e,n){Jp(e.localTuiTurnRuntimeSettingsByTurnId,n,e.runtimeSettings)}function Vle(e,n){return Yu(e.localTuiTurnRuntimeSettingsByTurnId,n)}async function Wle(e,n,t,r,o){if(n.kandanThreadId===void 0)return;let i=e.options.channelSession;await oo(e.kandan,e.topic,"session:post_thread_message",{workspace:i.workspaceSlug,channel:i.channelSlug,thread_id:n.kandanThreadId,body:"[codex reconnected to new thread]",payload:Ba(e.options,e.instanceId,"availability",o,t),client_message_id:`local-codex-rebound-${e.instanceId}-${o}`})}function Hle(e){return e instanceof Error?e.message.includes("turn/start failed: thread not found")||e.message.includes("turn/start failed: invalid thread id"):!1}function os(e,n){e.forwardedTurnIds.has(n)||$y(e.forwardedTurnIds,n,bo)}function Oy(e,n){e.recoveredTurnIds.has(n)||$y(e.recoveredTurnIds,n,bo)}function Zle(e,n){for(e.stopAbortedStartingSeqs.delete(n),e.stopAbortedStartingSeqs.add(n);e.stopAbortedStartingSeqs.size>Gle;){let t=e.stopAbortedStartingSeqs.values().next().value;if(t===void 0)return;e.stopAbortedStartingSeqs.delete(t)}}function SF(e,n){return e.stopAbortedStartingSeqs.delete(n)}function $y(e,n,t){e.delete(n),e.add(n),Qle(e,t)}function Qle(e,n){for(;e.size>n;){let t=e.values().next().value;if(t===void 0)return;e.delete(t)}}function is(e,n){for(;e.size>n;){let t=e.keys().next().value;if(t===void 0)return;e.delete(t)}}function Xle(e,n){for(;e.length>n;)e.shift()}async function Si(e,n){if(rpe(n),!n.codexTypingActive||(n.codexTypingActive=!1,n.kandanThreadId===void 0))return;let t=e.options.channelSession;await sc(e.kandan,e.topic,"session:typing_stop",{workspace:t.workspaceSlug,channel:t.channelSlug,thread_id:n.kandanThreadId,instance_id:e.instanceId,codex_thread_id:n.codexThreadId??null},e.log)}function gk(e,n,t){n.codexTypingActive=!0;let r=()=>{if(n.typingHeartbeatInFlight)return;let o=e.options.channelSession;n.typingHeartbeatInFlight=!0,sc(e.kandan,e.topic,"session:typing_start",{workspace:o.workspaceSlug,channel:o.channelSlug,thread_id:t,instance_id:e.instanceId,codex_thread_id:n.codexThreadId??null},e.log).then(()=>oq(e,n)).catch(i=>{e.log("kandan.typing_heartbeat_failed",{message:i instanceof Error?i.message:String(i)})}).finally(()=>{n.typingHeartbeatInFlight=!1})};r(),n.typingHeartbeat===void 0&&(n.typingHeartbeat=setInterval(r,nce))}function tq(e,n,t,r){if(r===void 0||!Yle(n,r)||n.pendingCompletionTypingStops.has(r))return;let o=Si(e,n).catch(i=>{e.log("kandan.typing_stop_after_completion_failed",{turn_id:r,message:i instanceof Error?i.message:String(i)})});n.pendingCompletionTypingStops.set(r,o),is(n.pendingCompletionTypingStops,bo),o.finally(()=>{n.pendingCompletionTypingStops.get(r)===o&&n.pendingCompletionTypingStops.delete(r),Pr(e,n,t)})}function Yle(e,n){if(e.forwardedTurnIds.has(n))return!1;if(Ay(e,n))return!0;switch(e.turn.status){case"active":case"completing":return e.turn.turnId===n;case"idle":case"starting":return!1}}function epe(e,n){n===void 0||e.forwardedTurnIds.has(n)||$y(e.pendingStartingCompletionTurnIds,n,bo)}function npe(e,n,t,r){n.pendingStartingCompletionTurnIds.delete(r)&&tq(e,n,t,r)}async function tpe(e,n){let t=e.pendingCompletionTypingStops.get(n);if(t!==void 0)try{await t}finally{e.pendingCompletionTypingStops.get(n)===t&&e.pendingCompletionTypingStops.delete(n)}}function rpe(e){e.typingHeartbeat!==void 0&&(clearInterval(e.typingHeartbeat),e.typingHeartbeat=void 0)}async function Bs(e,n,t,r="acked"){n.threadId!==void 0&&await tt(e,n.threadId,n.seq,t,n.actorSlug,n.actorUserId,void 0,r)}async function uf(e,n,t,r,o="acked"){if(n.kandanThreadId!==void 0){if(r.status==="processed"||r.status==="failed"){await pf(e,n,n.kandanThreadId,t.seq,r,t.actorSlug,t.actorUserId,n.codexThreadId);return}await tt(e,n.kandanThreadId,t.seq,r,t.actorSlug,t.actorUserId,n.codexThreadId,o)}}async function kF(e,n,t,r,o){let i=e.options.cloudTerminalStatePushRetryDelaysMs??iS,s=i[0]??bce,a=e.options.cloudTerminalConnectionWaitBudgetMs??wce,d=0,u=0,c;for(;;)try{return await tt(e,n,t,r,void 0,void 0,o,"must_ack"),!0}catch(l){if(fS(l)){u+=1;let m=Date.now();c??=m;let f=m-c;if(f>=a)return e.log("codex.cloud_terminal_state_connection_wait_exhausted",{seq:t,status:r.status,connection_wait_attempts:u,elapsed_ms:f,budget_ms:a}),!1;e.log("codex.cloud_terminal_state_connection_wait",{seq:t,status:r.status,connection_wait_attempts:u,elapsed_ms:f}),s>0&&await Js(s);continue}let p=i[d];if(e.log("codex.cloud_terminal_state_push_failed",{seq:t,status:r.status,attempt:d+1,attempts_remaining:i.length-d,message:l instanceof Error?l.message:String(l)}),d+=1,p===void 0)return!1;p>0&&await Js(p)}}async function tt(e,n,t,r,o,i,s,a="acked"){let d=e.options.channelSession,u={workspace:d.workspaceSlug,channel:d.channelSlug,thread_id:n,instance_id:e.instanceId,...s===void 0?{}:{codex_thread_id:s},seq:t,status:r.status,..."reason"in r?{reason:r.reason}:{},...r.status==="failed"&&r.retryable===!0?{retryable:!0}:{},...r.status==="failed"&&yo(r.fate)?{fate:r.fate}:{},...r.status==="failed"&&r.ladder!==void 0?{ladder:r.ladder}:{},...r.status==="processing"&&r.approval!==void 0?{approval_request_id:r.approval.requestId,approval_kind:r.approval.kind,approval_summary:r.approval.summary,...r.approval.port===void 0?{}:{approval_port:r.approval.port},...r.approval.pid===void 0?{}:{approval_pid:r.approval.pid},...r.approval.command===void 0?{}:{approval_command:r.approval.command},...r.approval.cwd===void 0?{}:{approval_cwd:r.approval.cwd},...r.approval.processName===void 0?{}:{approval_process_name:r.approval.processName},...r.approval.processIconKey===void 0?{}:{approval_process_icon_key:r.approval.processIconKey},...r.approval.processIconPath===void 0?{}:{approval_process_icon_path:r.approval.processIconPath},...r.approval.reason===void 0?{}:{approval_reason:r.approval.reason},...r.approval.choices===void 0?{}:{approval_choices:r.approval.choices},...r.approval.allowedActorSlug===void 0?{}:{approval_allowed_actor_slug:r.approval.allowedActorSlug},...r.approval.allowedActorUserId===void 0?{}:{approval_allowed_actor_user_id:r.approval.allowedActorUserId}}:{},...o===void 0?{}:{actor_slug:o},...i===void 0?{}:{actor_user_id:i},...ope(n)};if(a==="must_ack"){await oo(e.kandan,e.topic,"message_state",u);return}await sc(e.kandan,e.topic,"message_state",u,e.log,a)}function ope(e){let n=mg(e);return n===void 0?{}:{traceparent:n}}async function rq(e,n,t,r,o){My(n,t,new Error(r));let i=Qu(n.turn,t);i!==void 0&&n.kandanThreadId!==void 0&&(await pf(e,n,n.kandanThreadId,i,{status:"failed",reason:r},void 0,void 0,n.codexThreadId),Ya(n,i)),rs(n,t),os(n,t),yj(n.turn,t)&&(n.turn={status:"idle"}),await Si(e,n),await Pr(e,n,o)}async function ipe(e,n,t,r){let o=Qu(n.turn,t);o===void 0||n.kandanThreadId===void 0||n.activeProcessingState?.seq===o&&n.activeProcessingState.reason===r||n.activeProcessingState?.seq===o&&n.activeProcessingState.reason==="awaiting approval"||(n.activeProcessingState={seq:o,reason:r},await tt(e,n.kandanThreadId,o,{status:"processing",reason:r},void 0,void 0,n.codexThreadId))}async function oq(e,n){let t=n.activeProcessingState;t===void 0||n.kandanThreadId===void 0||t.reason==="awaiting approval"&&t.approval.kind==="local_runner_port_forward"||await tt(e,n.kandanThreadId,t.seq,iy(t),void 0,void 0,n.codexThreadId)}function Ya(e,n){e.activeProcessingState?.seq===n&&(e.activeProcessingState=void 0)}async function CF(e,n,t=void 0){let r=await Dv({cwd:e.options.cwd,kandanUrl:e.options.kandanUrl,token:e.options.token,fetch:e.options.fetch,attachmentDirectoryName:"local-codex-attachments"},n),o=Mv(xS(n),r),i=e$(r);return[...t===void 0?[]:[t],{type:"text",text:o},...i]}function spe(e){return{modelProvider:e.channelSession.modelProvider,model:e.channelSession.model,reasoningEffort:e.channelSession.reasoningEffort,approvalPolicy:Fu(e.channelSession.approvalPolicy,e.channelSession.sandbox),sandbox:e.channelSession.sandbox,fast:e.fast,allowPortForwardingByDefault:e.channelSession.allowPortForwardingByDefault}}function ape(e,n){let t=ek(e.sandbox,n,"sandbox");return{modelProvider:e.modelProvider,model:ek(e.model,n,"model"),reasoningEffort:ek(e.reasoningEffort,n,"reasoningEffort"),approvalPolicy:dpe(e.approvalPolicy,n,t),sandbox:t,fast:n.fast??e.fast,allowPortForwardingByDefault:!0}}function dpe(e,n,t){return Object.prototype.hasOwnProperty.call(n,"approvalPolicy")?Fu(n.approvalPolicy??void 0,t):Fu(e,t)}function ek(e,n,t){return Object.prototype.hasOwnProperty.call(n,t)?n[t]??void 0:e}function iq(e,n){return{...e,fast:n.fast,channelSession:{...e.channelSession,modelProvider:n.modelProvider,model:n.model,reasoningEffort:n.reasoningEffort,approvalPolicy:n.approvalPolicy,sandbox:n.sandbox,allowPortForwardingByDefault:n.allowPortForwardingByDefault}}}async function upe(e,n){let t=e.options.channelSession;if(n.kandanThreadId===void 0||n.codexThreadId===void 0)throw new Error("cannot publish local Codex settings before thread binding");await oo(e.kandan,e.topic,"session:settings",{workspace:t.workspaceSlug,channel:t.channelSlug,thread_id:n.kandanThreadId,codex_thread_id:n.codexThreadId,modelProvider:n.runtimeSettings.modelProvider??null,model:n.runtimeSettings.model??null,reasoningEffort:n.runtimeSettings.reasoningEffort??null,approvalPolicy:n.runtimeSettings.approvalPolicy??null,sandbox:n.runtimeSettings.sandbox??null,fast:n.runtimeSettings.fast??null,allowPortForwardingByDefault:n.runtimeSettings.allowPortForwardingByDefault??null,updated_at:new Date().toISOString()})}function cpe(e){if("error"in e)throw new Error(`thread/start failed: ${e.error.message}`);let n=h(A(A(e.result)?.thread)?.id);if(n===void 0)throw new Error("thread/start response did not include thread.id");return n}function lpe(e){if("error"in e)throw new Error(`turn/start failed: ${e.error.message}`);let n=h(A(A(e.result)?.turn)?.id);if(n===void 0)throw new Error("turn/start response did not include turn.id");return n}async function ppe(e,n){if(n!==void 0)try{let t=await e.codex.request("thread/archive",{threadId:n});if("error"in t)throw new Error(`thread/archive failed: ${t.error.message}`);e.log("codex.thread_archived",{codex_thread_id:n})}catch(t){e.log("codex.thread_archive_failed",{codex_thread_id:n,message:t instanceof Error?t.message:String(t)})}}async function sk(e,n){let t=await e.request("thread/start",{cwd:n.cwd,serviceName:"kandan-local-runner",personality:"pragmatic",...fpe(n),...bp(n)});return cpe(t)}function fpe(e){let n=e.channelSession.developerPrompt;return n===void 0?{}:{developerInstructions:vp({cwd:e.cwd,planTool:"linzumi-mcp",mcpAvailable:e.mcpAvailable!==!1,devServicesAvailable:e.devServicesAvailable===!0,developerPrompt:n,linzumiContext:qs(e.channelSession.linzumiContext)})}}async function oo(e,n,t,r,o){let i=await e.push(n,t,r,o);if(Q(i)&&i.status==="ok"&&Q(i.response))return i.response;throw new Error(`kandan push failed: ${t}: ${JSON.stringify(i).slice(0,500)}`)}async function sc(e,n,t,r,o,i="acked"){if(i==="acked"){try{await oo(e,n,t,r)}catch(u){o("kandan.optional_push_failed",{event:t,message:u instanceof Error?u.message:String(u)})}return}let s=()=>{},a=new Promise(u=>{s=u}),d=(async()=>{try{await oo(e,n,t,r,()=>s())}catch(u){o("kandan.optional_push_failed",{event:t,message:u instanceof Error?u.message:String(u)})}finally{s()}})();await a}var nce,iF,sF,aF,dF,uF,dce,uce,cF,lce,pF,vy,Sy,xce,_ce,bo,ky,bce,wce,rc,fF,RF,rf,Sce,Cce,Ece,hF,gle,yF,of,wy,xF,yle,Gle,yk=F(()=>{"use strict";Lu();Tv();yg();vg();Fv();zv();Cp();F$();mS();sS();Jg();Kn();Xg();ny();qu();wS();sy();PS();xj();Cj();Bu();Dj();Mn();Aj();Ou();Yp();gy();VS();GS();tc();nce=5e3,iF=3e4;sF=15e4;aF=1e4;dF=3e5;uF=5e3;dce=250,uce=750;cF=2e3,lce=50;pF=12e4;vy=class extends Error{constructor(n,t){super(`Codex ${n} did not reply within ${t}ms (start request timed out)`),this.name="CodexStartRequestTimeoutError"}};Sy=class extends Error{constructor(n,t){super(`Codex ${n} did not reply within ${t}ms (completion snapshot request timed out)`),this.name="CodexCompletionSnapshotRequestTimeoutError"}};xce=256,_ce=5,bo=64,ky=1024,bce=1e3,wce=12e4,rc=new Set,fF=1,RF=[1e3,5e3,15e3],rf={baseDelayMs:15e3,maxDelayMs:6e4};Sce=[1e3,5e3,15e3];Cce=new Set(["commandExecution","terminalInput","mcpToolCall"]);Ece=1e4;hF=15e3;gle=3,yF=1500,of=64,wy=3,xF=1500,yle=64;Gle=64});import{existsSync as mpe,readFileSync as hpe}from"node:fs";import{Agent as gpe}from"undici";import ype from"ws";function Xo(){return xpe(process.env.KANDAN_TLS_CA_FILE)}function xpe(e){if(e===void 0||e.trim()==="")return;let n=e.trim();if(!mpe(n))throw new Error(`KANDAN_TLS_CA_FILE does not exist: ${n}`);let t=hpe(n,"utf8");return{caFile:n,ca:t,dispatcher:new gpe({connect:{ca:t}})}}function ac(e){return e===void 0?fetch:((n,t)=>{let r={...t??{},dispatcher:e.dispatcher};return fetch(n,r)})}function dc(e,n=ype){if(e!==void 0)return(t,r)=>{let o={ca:e.ca};return r===void 0?new n(t,o):new n(t,r,o)}}var Ly=F(()=>{"use strict"});function jy(e,n,t,r){let o=e===void 0?Number.NaN:Number.parseInt(e,10);return Number.isFinite(o)?Math.min(r,Math.max(t,o)):n}function sq(e){return{maxConcurrent:jy(e.LINZUMI_CLAUDE_RESUME_MAX_CONCURRENT_STARTS,2,1,64),spacingMs:jy(e.LINZUMI_CLAUDE_RESUME_START_SPACING_MS,2e3,0,6e4),maxWaitMs:jy(e.LINZUMI_CLAUDE_RESUME_START_MAX_WAIT_MS,6e4,1e3,6e5),defaultRateLimitBackoffMs:jy(e.LINZUMI_CLAUDE_RESUME_429_BACKOFF_MS,5e3,1e3,6e4)}}function aq(e,n=_pe){let t=0,r,o=[],i,s=(u,c)=>{if(u.settled)return;u.settled=!0,u.timeoutHandle!==void 0&&(n.clearTimeout(u.timeoutHandle),u.timeoutHandle=void 0);let l=o.indexOf(u);l!==-1&&o.splice(l,1),u.resolve(c)},a=u=>{i===void 0&&(i=n.setTimeout(()=>{i=void 0,d()},Math.max(0,u)))},d=()=>{let u=n.now();if(r!==void 0&&u<r){o.length>0&&a(r-u);return}for(r=void 0;o.length>0&&t<e.maxConcurrent;){let c=o.shift();c===void 0||c.settled||(t+=1,n.setTimeout(()=>{t-=1,d()},e.spacingMs),s(c,{waitedMs:u-c.enqueuedAtMs,timedOut:!1}))}};return{acquire:()=>new Promise(u=>{let c={enqueuedAtMs:n.now(),resolve:u,timeoutHandle:void 0,settled:!1};c.timeoutHandle=n.setTimeout(()=>{s(c,{waitedMs:e.maxWaitMs,timedOut:!0})},e.maxWaitMs),o.push(c),d()}),notifyRateLimited:u=>{let c=Math.min(6e4,Math.max(1e3,u.retryAfterMs??e.defaultRateLimitBackoffMs)),l=n.now()+c;(r===void 0||l>r)&&(r=l),o.length>0&&a(c)},pendingCount:()=>o.filter(u=>!u.settled).length,pausedUntilMs:()=>r}}function dq(e,n){let t=Array.isArray(e)?e[0]:e;if(t===void 0||t.trim()==="")return;let r=Number.parseInt(t.trim(),10);if(Number.isFinite(r)&&`${r}`===t.trim())return r<0?void 0:r*1e3;let o=Date.parse(t);if(!Number.isNaN(o))return Math.max(0,o-n)}var _pe,xk=F(()=>{"use strict";_pe={now:()=>Date.now(),setTimeout:(e,n)=>{let t=setTimeout(e,n);return t.unref?.(),t},clearTimeout:e=>{clearTimeout(e)}}});import{createServer as bpe}from"node:http";import{randomBytes as uq}from"node:crypto";import{request as wpe}from"undici";function pq(e,n){for(let t of n){let r=e[t];if(Array.isArray(r))return r.join(", ");if(typeof r=="string")return r}return null}async function fq(e){let n=e.now??Date.now,t=e.upstreamBaseUrl.replace(/\/+$/,""),o=`/llm-proxy-session/${uq(16).toString("hex")}`,i=e.initialToken,s=n(),d=bpe((p,m)=>{(async()=>{let f=p.url??"";if(!f.startsWith(`${o}/`)&&f!==o){m.writeHead(404,{"content-type":"application/json"}),m.end(JSON.stringify({error:"not_found"}));return}let y=f===o?"/":f.slice(o.length),_=`${t}${y}`,w=uq(8).toString("hex"),S=n();e.debugTrace?.record("llm-proxy-relay","relay.request_start",{request_id:w,debug_trace_id:e.debugTraceId??null,method:p.method??null,path:y});let v={};for(let[R,P]of Object.entries(p.headers)){if(P===void 0)continue;let L=R.toLowerCase();Cpe.has(L)||L!==cq&&L!==lq&&(v[L]=Array.isArray(P)?P.join(", "):P)}e.debugTraceId!==void 0&&(v[lq]=e.debugTraceId),v[cq]=i;let b=(p.method??"GET").toUpperCase(),k=b!=="GET"&&b!=="HEAD";try{let R=await wpe(_,{method:b,headers:v,...k?{body:p}:{},...e.dispatcher===void 0?{}:{dispatcher:e.dispatcher},headersTimeout:0,bodyTimeout:0}),P=n()-S;e.debugTrace?.record("llm-proxy-relay","relay.upstream_headers",{request_id:w,debug_trace_id:e.debugTraceId??null,path:y,status:R.statusCode,ttfb_ms:P,upstream_request_id:pq(R.headers,["x-request-id","request-id","x-amzn-requestid","cf-ray","openai-request-id"]),retry_after:pq(R.headers,["retry-after"])});let L={};for(let[B,z]of Object.entries(R.headers))z!==void 0&&(Tpe.has(B.toLowerCase())||(L[B]=z));if(R.statusCode===429){let B=R.headers["retry-after"],z=dq(Array.isArray(B)?B[0]:B,n());e.log("llm_proxy_relay.upstream_rate_limited",{target_path:y,retry_after_ms:z??null});try{e.onUpstreamRateLimited?.({retryAfterMs:z})}catch{}}m.writeHead(R.statusCode,L);let D=R.body,j=0,q=!1,E=(B,z)=>{q||(q=!0,e.debugTrace?.record("llm-proxy-relay","relay.response_finished",{request_id:w,debug_trace_id:e.debugTraceId??null,path:y,status:R.statusCode,outcome:B,detail:z??null,ttfb_ms:P,total_ms:n()-S,response_bytes:j}))};D.on("data",B=>{j+=Buffer.byteLength(B)}),D.on("error",B=>{E("upstream_body_error",B instanceof Error?B.message:String(B)),m.destroy()}),m.on("finish",()=>{E("completed")}),m.on("close",()=>{m.writableEnded||E("client_closed"),D.destroy()}),D.pipe(m)}catch(R){let P=R instanceof Error?R.message:String(R);e.debugTrace?.record("llm-proxy-relay","relay.upstream_error",{request_id:w,debug_trace_id:e.debugTraceId??null,path:y,total_ms:n()-S,message:P}),e.log("llm_proxy_relay.upstream_error",{target_path:y,message:P}),m.headersSent||m.writeHead(502,{"content-type":"application/json"}),m.end(JSON.stringify({error:"llm_proxy_relay_upstream_error",message:P}))}})().catch(()=>{m.headersSent||m.writeHead(502),m.end()})}),u=new Set;d.on("connection",p=>{u.add(p),p.on("close",()=>u.delete(p))}),await new Promise((p,m)=>{d.once("error",m),d.listen(0,"127.0.0.1",()=>{d.removeListener("error",m),p()})});let c=d.address();if(c===null||typeof c!="object")throw d.close(),new Error("llm proxy credential relay failed to bind a loopback port");return{baseUrl:`http://127.0.0.1:${c.port}${o}`,setToken:p=>{i=p,s=n()},currentToken:()=>i,tokenAgeMs:()=>n()-s,close:()=>new Promise(p=>{d.close(()=>p());for(let m of u)m.destroy()})}}function mq(e){let n=e.refreshAgeMs??Spe,t=e.checkIntervalMs??kpe,r=!1,o,i=async()=>{if(!r&&!(e.relay.tokenAgeMs()<n))return o!==void 0||(o=(async()=>{try{let a=e.relay.tokenAgeMs(),d=await e.mint();d!==void 0&&typeof d.token=="string"&&d.token!==""?(e.relay.setToken(d.token),typeof d.maxAgeMs=="number"&&Number.isFinite(d.maxAgeMs)&&d.maxAgeMs>0&&(n=Math.floor(d.maxAgeMs*3/4)),e.log("llm_proxy_relay.token_refreshed",{previous_token_age_ms:a,next_refresh_age_ms:n})):e.log("llm_proxy_relay.token_refresh_failed",{token_age_ms:a,message:"mint returned no token"})}catch(a){e.log("llm_proxy_relay.token_refresh_failed",{token_age_ms:e.relay.tokenAgeMs(),message:a instanceof Error?a.message:String(a)})}finally{o=void 0}})()),o},s=setInterval(()=>{i()},t);return s.unref?.(),{stop:()=>{r=!0,clearInterval(s)},tick:i,refreshAgeMs:()=>n}}var vpe,Spe,kpe,cq,lq,Cpe,Tpe,hq=F(()=>{"use strict";xk();vpe=28800*1e3,Spe=Math.floor(vpe*3/4),kpe=300*1e3,cq="x-linzumi-llm-proxy-token",lq="x-linzumi-debug-trace-id",Cpe=new Set(["host","connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade","content-length"]),Tpe=new Set(["connection","keep-alive","transfer-encoding","trailer","upgrade","content-length"])});function Ipe(e){let n=e[Ppe]?.trim().toLowerCase();return!(n==="0"||n==="false"||n==="no"||n==="off")}function Rpe(e){return gq(e.ANTHROPIC_API_KEY)||gq(e.ANTHROPIC_AUTH_TOKEN)?"user_api_key":"subscription_oauth"}function yq(e){let n=Rpe(e.env);return e.llmProxyBindingPresent?e.hostedLinzumiAgentContext?{lane:"llm_proxy",credentialClass:n,reason:"hosted_linzumi_agent_context"}:n==="user_api_key"?{lane:"llm_proxy",credentialClass:n,reason:"user_api_key"}:e.routedNonAnthropicModel?{lane:"llm_proxy",credentialClass:n,reason:"non_anthropic_routed_model"}:Ipe(e.env)?{lane:"direct_anthropic",credentialClass:n,reason:"subscription_oauth"}:{lane:"llm_proxy",credentialClass:n,reason:"direct_connection_disabled"}:{lane:"direct_anthropic",credentialClass:n,reason:"no_llm_proxy_binding"}}function gq(e){return e!==void 0&&e.trim()!==""}var Ppe,xq=F(()=>{"use strict";Ppe="LINZUMI_CLAUDE_DIRECT_CONNECTION"});import{randomUUID as Epe}from"node:crypto";function wq(e){let n=e.lane==="direct_anthropic",t=e.mintUsageId??(()=>Epe()),r,o=_q(),i=bq(),s,a=0,d=(l,p)=>{l!==r&&(r=l,o=_q());let m={inputTokens:p.inputTokens??o.inputTokens,outputTokens:p.outputTokens??o.outputTokens,cacheReadInputTokens:p.cacheReadInputTokens??o.cacheReadInputTokens,cacheCreationInputTokens:p.cacheCreationInputTokens??o.cacheCreationInputTokens,totalCostUsd:p.totalCostUsd??o.totalCostUsd};i={inputTokens:i.inputTokens+Fy(m.inputTokens-o.inputTokens),outputTokens:i.outputTokens+Fy(m.outputTokens-o.outputTokens),cacheReadInputTokens:i.cacheReadInputTokens+Fy(m.cacheReadInputTokens-o.cacheReadInputTokens),cacheCreationInputTokens:i.cacheCreationInputTokens+Fy(m.cacheCreationInputTokens-o.cacheCreationInputTokens),totalCostUsd:m.totalCostUsd===void 0?i.totalCostUsd:(i.totalCostUsd??0)+Math.max(0,m.totalCostUsd-(o.totalCostUsd??0))},o=m},u=(l,p)=>{let m=i,f=a,y=s??t(),_=m.inputTokens+m.outputTokens+m.cacheReadInputTokens+m.cacheCreationInputTokens>0||(m.totalCostUsd??0)>0;s=void 0,a=0;let w=l==="completed"?_||f>=Mpe:_;if(i=bq(),!w)return;let S=p??r,v={workspace:e.workspace,channel:e.channel,thread_id:e.threadId,usage_id:y,model:e.model??"default",provider:"anthropic",agent_provider:"claude-code",model_transport_lane:e.lane,turn_outcome:l,usage:{input_tokens:m.inputTokens,output_tokens:m.outputTokens,cache_read_input_tokens:m.cacheReadInputTokens,cache_creation_input_tokens:m.cacheCreationInputTokens,...m.totalCostUsd===void 0||m.totalCostUsd<=0?{}:{total_cost_usd:m.totalCostUsd}},stream_event_count:f,...S===void 0?{}:{claude_session_id:S}};Promise.resolve().then(()=>e.push(Dpe,v)).then(()=>{e.log("claude_code.token_usage_reported",{linzumi_thread_id:e.threadId,usage_id:y,turn_outcome:l,input_tokens:m.inputTokens,output_tokens:m.outputTokens,cache_read_input_tokens:m.cacheReadInputTokens,cache_creation_input_tokens:m.cacheCreationInputTokens})}).catch(b=>{e.log("claude_code.token_usage_report_failed",{linzumi_thread_id:e.threadId,usage_id:y,turn_outcome:l,message:b instanceof Error?b.message:String(b)})})};return{observeTranscriptEvent:l=>{if(n)try{switch(s===void 0&&(s=t()),a+=1,l.type){case"usage":d(l.sessionId,l.usage);break;case"turn_completed":case"session_completed":l.usage!==void 0&&d(l.sessionId,l.usage),u("completed",l.sessionId);break;case"turn_interrupted":u("interrupted",l.sessionId);break;case"session_failed":u("failed",l.sessionId);break;default:break}}catch(p){e.log("claude_code.token_usage_emitter_failed",{linzumi_thread_id:e.threadId,event_type:l.type,message:p instanceof Error?p.message:String(p)})}}}}function _q(){return{inputTokens:0,outputTokens:0,cacheReadInputTokens:0,cacheCreationInputTokens:0,totalCostUsd:void 0}}function bq(){return{inputTokens:0,outputTokens:0,cacheReadInputTokens:0,cacheCreationInputTokens:0,totalCostUsd:void 0}}function Fy(e){return e>0?e:0}var Dpe,Mpe,vq=F(()=>{"use strict";Dpe="token_usage",Mpe=10});function Sq(e,n){return e.find(t=>t.codexThreadId===n.codexThreadId&&t.kandanThreadId!==n.kandanThreadId)}function kq(e){let n=new Map;for(let o of e){let i=n.get(o.codexThreadId);(i===void 0||o.updatedAtMs>i.updatedAtMs)&&n.set(o.codexThreadId,o)}let t=[],r=[];for(let o of e)n.get(o.codexThreadId)===o?t.push(o):r.push(o);return{kept:t,dropped:r}}var ed,_k=F(()=>{"use strict";ed=class extends Error{codexThreadId;ownerKandanThreadId;requestingKandanThreadId;constructor(n){super(`codex session ${n.codexThreadId} is exclusively owned by Kandan thread ${n.ownerKandanThreadId}; refusing to bind it to thread ${n.requestingKandanThreadId} (one Kandan thread owns a codex session exclusively - fork or start a fresh session for the second thread)`),this.name="CodexSessionOwnershipConflictError",this.codexThreadId=n.codexThreadId,this.ownerKandanThreadId=n.ownerKandanThreadId,this.requestingKandanThreadId=n.requestingKandanThreadId}}});import{mkdirSync as Ape,readFileSync as Ope,renameSync as $pe,writeFileSync as Lpe}from"node:fs";import{createHash as jpe}from"node:crypto";import{dirname as Fpe,join as Cq}from"node:path";import{homedir as qpe}from"node:os";function zpe(){let e=process.env.LINZUMI_SESSION_REGISTRY_DIR?.trim();return e!==void 0&&e!==""?e:Cq(qpe(),".linzumi","session-registry")}function Pq(e){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^[-.]+|[-.]+$/g,"").slice(0,80),t=jpe("sha256").update(e).digest("hex").slice(0,8),r=n===""?"runner":n;return Cq(zpe(),`${r}.${t}.json`)}function ff(e){return typeof e=="string"&&e!==""?e:void 0}function Npe(e){return e==="codex"||e==="claude-code"?e:void 0}function Upe(e){if(!Q(e))return;let n=ff(e.workspace),t=ff(e.channel),r=ff(e.kandanThreadId),o=ff(e.codexThreadId),i=ff(e.cwd),s=Npe(e.agentProvider),a=Q(e.control)?e.control:void 0,d=typeof e.updatedAtMs=="number"&&Number.isFinite(e.updatedAtMs)?e.updatedAtMs:void 0;if(!(n===void 0||t===void 0||r===void 0||o===void 0||i===void 0||s===void 0||a===void 0||d===void 0))return{workspace:n,channel:t,kandanThreadId:r,codexThreadId:o,cwd:i,agentProvider:s,control:a,updatedAtMs:d}}function Bpe(e,n){let t=new Map,r;try{r=Ope(e,"utf8")}catch(i){return i?.code==="ENOENT"||n("session_registry.read_failed",{path:e,message:i instanceof Error?i.message:String(i)}),t}let o;try{o=JSON.parse(r)}catch(i){return n("session_registry.parse_failed",{path:e,message:i instanceof Error?i.message:String(i)}),t}if(!Q(o)||o.version!==Tq||!Q(o.sessions))return t;for(let[i,s]of Object.entries(o.sessions)){let a=Upe(s);a!==void 0&&a.kandanThreadId===i&&t.set(i,a)}return t}function Iq(e,n){let t=Bpe(e,n),r=kq([...t.values()]);if(r.dropped.length>0)for(let s of r.dropped)t.delete(s.kandanThreadId),n("session_registry.duplicate_codex_session_dropped",{path:e,thread_id:s.kandanThreadId,codex_thread_id:s.codexThreadId,kept_thread_id:r.kept.find(a=>a.codexThreadId===s.codexThreadId)?.kandanThreadId??null});let o=()=>{let s={};for(let[a,d]of t)s[a]={workspace:d.workspace,channel:d.channel,kandanThreadId:d.kandanThreadId,codexThreadId:d.codexThreadId,cwd:d.cwd,agentProvider:d.agentProvider,control:d.control,updatedAtMs:d.updatedAtMs};try{Ape(Fpe(e),{recursive:!0});let a=`${e}.tmp`;Lpe(a,`${JSON.stringify({version:Tq,sessions:s})}
650
650
  `,"utf8"),$pe(a,e)}catch(a){n("session_registry.write_failed",{path:e,message:a instanceof Error?a.message:String(a)})}},i=s=>Sq([...t.values()],s);return{list:()=>[...t.values()],upsert:s=>{let a=i(s);return a!==void 0?(n("session_registry.codex_session_ownership_conflict",{path:e,codex_thread_id:s.codexThreadId,owner_thread_id:a.kandanThreadId,requesting_thread_id:s.kandanThreadId}),{outcome:"ownership_conflict",owner:a}):(t.set(s.kandanThreadId,s),o(),{outcome:"stored"})},remove:s=>{t.delete(s)&&o()},rebindCodexThread:(s,a,d)=>{let u=t.get(s);if(u===void 0)return{outcome:"no_record"};let c=i({codexThreadId:a,kandanThreadId:s});return c!==void 0?(n("session_registry.codex_session_ownership_conflict",{path:e,codex_thread_id:a,owner_thread_id:c.kandanThreadId,requesting_thread_id:s}),{outcome:"ownership_conflict",owner:c}):(t.set(s,{...u,codexThreadId:a,control:{...u.control,codexThreadId:a},updatedAtMs:d??Date.now()}),o(),{outcome:"stored"})}}}async function Rq(e){let n=0,t=0,r=0,o=0,i=0,s=0;for(let a of e.records){let d=e.nowMs-a.updatedAtMs;if(d>e.maxAgeMs){e.retire(a),r+=1,e.log("session_registry.retired_stale",{workspace:a.workspace,channel:a.channel,thread_id:a.kandanThreadId,age_ms:d});continue}let u=e.pendingDurableRowCount(a);if(u<=0){let l=!1;if(e.hasUnfinishedWork!==void 0)try{l=e.hasUnfinishedWork(a)}catch(p){l=!0,e.log("session_registry.unfinished_probe_failed",{workspace:a.workspace,channel:a.channel,thread_id:a.kandanThreadId,message:p instanceof Error?p.message:String(p)})}if(l){i+=1,e.log("session_registry.kept_unfinished",{workspace:a.workspace,channel:a.channel,thread_id:a.kandanThreadId});continue}e.retire(a),t+=1,e.log("session_registry.retired_drained",{workspace:a.workspace,channel:a.channel,thread_id:a.kandanThreadId});continue}e.log("session_registry.outbox_replay_started",{workspace:a.workspace,channel:a.channel,thread_id:a.kandanThreadId,codex_thread_id:a.codexThreadId,pending_rows:u});let c;try{c=await e.attach(a)}catch(l){e.log("session_registry.outbox_replay_failed",{workspace:a.workspace,channel:a.channel,thread_id:a.kandanThreadId,message:l instanceof Error?l.message:String(l)}),s+=1;continue}c==="attached"?(n+=1,e.log("session_registry.boot_rehydrated",{workspace:a.workspace,channel:a.channel,thread_id:a.kandanThreadId,codex_thread_id:a.codexThreadId,pending_rows:u})):c==="retire"?(e.retire(a),o+=1,e.log("session_registry.retired_unattachable",{workspace:a.workspace,channel:a.channel,thread_id:a.kandanThreadId})):(s+=1,e.log("session_registry.outbox_replay_failed",{workspace:a.workspace,channel:a.channel,thread_id:a.kandanThreadId,message:"attach_failed"}))}return{rehydrated:n,retiredDrained:t,retiredStale:r,retiredUnattachable:o,keptUnfinished:i,failed:s}}function Eq(e,n,t=bk,r=Jpe){return e.filter(o=>n-o.updatedAtMs<=t).sort((o,i)=>i.updatedAtMs-o.updatedAtMs).slice(0,Math.max(0,r)).map(o=>({workspace:o.workspace,channel:o.channel,thread_id:o.kandanThreadId,codex_thread_id:o.codexThreadId,provider_session_key:o.codexThreadId,agent_provider:o.agentProvider,cwd:o.cwd}))}var Tq,bk,Jpe,Dq=F(()=>{"use strict";Mn();_k();Tq=1;bk=1440*60*1e3,Jpe=200});import{readdirSync as Mq,statSync as Kpe}from"node:fs";import{join as qy}from"node:path";function Lq(e=Date.now){let n=new Map,t=(r,o)=>{if(n.delete(r),n.set(r,o),n.size>Vpe){let i=n.keys().next().value;i!==void 0&&n.delete(i)}};return{note:(r,o,i)=>{t(r,{stage:o,detail:i,atMs:e(),failure:void 0})},fail:(r,o)=>{let i=n.get(r);t(r,{stage:i?.stage??"unknown",detail:i?.detail,atMs:e(),failure:o})},clear:r=>{n.delete(r)},snapshot:r=>n.get(r)}}function Wpe(){let e=process.env.LINZUMI_CODEX_ATTACH_HARD_CAP_MS?.trim();if(e===void 0||e==="")return Aq;let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>0?n:Aq}function Oq(e,n){if(e===void 0)return"no attach pipeline activity observed for this codex session";let t=Math.max(0,n-e.atMs),r=e.detail===void 0?"":` (${e.detail})`;return`stage ${e.stage}${r}, ${t}ms since last progress`}function $q(e){return e===void 0?"rollout file not found locally":`rollout ${e} bytes (${(e/(1024*1024)).toFixed(1)}MB)`}function jq(e,n){let t=o=>{let i;try{i=Mq(o,{withFileTypes:!0})}catch{return}let s=i.filter(a=>a.isFile()).map(a=>a.name).filter(a=>a.endsWith(`-${n}.jsonl`)).sort().at(-1);if(s!==void 0)try{return Kpe(qy(o,s)).size}catch{return}},r=o=>{let i;try{i=Mq(o,{withFileTypes:!0})}catch{return[]}return i.filter(s=>s.isDirectory()).map(s=>qy(o,s.name)).sort().reverse()};for(let o of r(qy(e,"sessions")))for(let i of r(o))for(let s of r(i)){let a=t(s);if(a!==void 0)return a}return t(qy(e,"archived_sessions"))}function Fq(e){let n=e.now??Date.now,t=e.hardCapMs??Wpe(),r=e.heartbeatMs??Hpe,o=Math.max(1,e.pollMs??1e3),i=n(),s=(()=>{let a=!1,d;return()=>{if(!a){a=!0;try{d=e.rolloutBytes?.()}catch{d=void 0}}return d}})();return new Promise((a,d)=>{let u=!1,c=i,l=m=>{u||(u=!0,clearInterval(p),m())},p=setInterval(()=>{let m=n(),f=e.tracker.snapshot(e.codexThreadId);if(f?.failure!==void 0){l(()=>d(new wk(e.method,e.codexThreadId,f.failure??"unknown failure")));return}let y=Math.max(i,f?.atMs??i);if(m-i>=t){l(()=>d(new Sk({method:e.method,codexThreadId:e.codexThreadId,hardCapMs:t,blocker:Oq(f,m),rollout:$q(s())})));return}if(m-y>=e.noProgressTimeoutMs){l(()=>d(new vk({method:e.method,codexThreadId:e.codexThreadId,timeoutMs:e.noProgressTimeoutMs,waitedMs:m-i,blocker:Oq(f,m),rollout:$q(s())})));return}m-c>=r&&(c=m,e.log("runner.attach_waiting",{method:e.method,codex_thread_id:e.codexThreadId,kandan_thread_id:e.kandanThreadId??null,waited_ms:m-i,stage:f?.stage??null,stage_detail:f?.detail??null,stage_age_ms:f===void 0?null:Math.max(0,m-f.atMs),rollout_bytes:s()??null,no_progress_timeout_ms:e.noProgressTimeoutMs,hard_cap_ms:t}))},o);p.unref?.(),e.wait.then(m=>l(()=>a(m)),m=>l(()=>d(m)))})}var Vpe,Aq,Hpe,wk,vk,Sk,qq=F(()=>{"use strict";Vpe=512;Aq=6e5;Hpe=3e4;wk=class extends Error{constructor(n,t,r){super(`Codex ${n} wait for session ${t} failed: the spawn/attach it was waiting on failed (${r}); retryable - a new spawn attempt starts a fresh attach`),this.name="CodexSessionAttachFailedError"}},vk=class extends Error{constructor(n){super(`Codex ${n.method} made no attach progress within ${n.timeoutMs}ms (waited ${n.waitedMs}ms total) for session ${n.codexThreadId}; blocked on: ${n.blocker}; ${n.rollout}; retryable - the attach pipeline is not advancing`),this.name="CodexAttachWaitNoProgressError"}},Sk=class extends Error{constructor(n){super(`Codex ${n.method} exceeded the absolute attach wait cap of ${n.hardCapMs}ms for session ${n.codexThreadId}; last progress: ${n.blocker}; ${n.rollout}; retryable - if this recurs the session's rollout may be too large to attach on this machine`),this.name="CodexAttachWaitHardCapError"}}});import{randomUUID as Gpe}from"node:crypto";function kk(e){return e==="EnterPlanMode"||e==="ExitPlanMode"}function Nq(e){if(e.toolName==="ExitPlanMode")return{itemKey:`status:${e.itemKey}`,title:hr.planReadyForReview,body:pc(e.input,["plan","message","summary"]),severity:"info",rawProviderMetadata:Kq(e,{workflow_event:"plan_mode_exit_requested"})}}function Uq(e){if(!kk(e.toolName))return;let n=e.toolName==="EnterPlanMode";return e.isError?{announcePlanMode:void 0,failureStatus:{itemKey:`status:${e.itemKey}`,title:n?hr.planModeEnterFailed:hr.planModeExitFailed,body:uc(e.content),severity:"error",rawProviderMetadata:Kq(e,{transcript_event_type:"tool_result",workflow_event:n?"plan_mode_enter_failed":"plan_mode_exit_failed",is_error:!0})}}:{announcePlanMode:n,failureStatus:void 0}}function Bq(e){return{itemKey:e.itemKey,title:e.entered?hr.planModeEntered:hr.planModeExited,body:void 0,severity:"info",rawProviderMetadata:{provider:"claude-code-sdk",transcript_event_type:"workflow",workflow_event:e.entered?"plan_mode_entered":"plan_mode_exited",plan_mode_signal:e.signal,...e.permissionMode===void 0?{}:{permission_mode:e.permissionMode}}}}function Jq(e,n){let t=h(e?.subtype),r=t===void 0?"system:<missing-subtype>":`system:${t}`;switch(t){case"status":{let o=h(e?.permissionMode);return o!==void 0?{kind:"permission_mode_signal",tag:r,permissionMode:o,uuid:h(e?.uuid)}:{kind:"debug_only",tag:r,reason:"Claude status frame without a permissionMode does not change the visible workflow state."}}case"init":case"commands_changed":case"local_command_output":return{kind:"debug_only",tag:r,reason:"Claude system message is projected by a dedicated parser branch, not the workflow classifier."};case"thinking_tokens":case"compact_boundary":case"session_state_changed":case"notification":case"tool_use_summary":case"memory_recall":case"files_persisted":case"plugin_install":case"elicitation_complete":case"prompt_suggestion":case"auth_status":return{kind:"debug_only",tag:r,reason:"Claude system lifecycle metadata is recorded in replay diagnostics and does not change the visible workflow state."};case"api_retry":return{kind:"visible_status",tag:r,status:Zpe(e,n,r)};case"permission_denied":return{kind:"visible_status",tag:r,status:Qpe(e,n,r)};case"task_started":case"task_updated":case"task_progress":case"task_notification":return t==="task_progress"?{kind:"debug_only",tag:r,reason:"Claude task progress frames are high-frequency; the task row already shows the running state."}:rfe(e?.skip_transcript)===!0?{kind:"debug_only",tag:r,reason:"Claude marked this task skip_transcript (ambient/housekeeping); the SDK asks consumers to hide it from the inline transcript."}:{kind:"visible_task_update",tag:r,taskUpdate:nfe(e,n,r,t)};case"hook_started":case"hook_progress":return{kind:"debug_only",tag:r,reason:"Routine Claude hook lifecycle chatter is debug-only unless the hook response blocks or fails."};case"hook_response":{let o=mf(e?.exit_code),i=h(e?.outcome);return o===2?{kind:"visible_status",tag:r,status:zq(e,n,r,{blocked:!0,exitCode:o,outcome:i})}:i==="error"?{kind:"visible_status",tag:r,status:zq(e,n,r,{blocked:!1,exitCode:o,outcome:i})}:{kind:"debug_only",tag:r,reason:"Completed Claude hook did not block or fail (success or cancelled outcome)."}}case"model_refusal_fallback":return{kind:"visible_status",tag:r,status:{itemKey:lc(e,"refusal-fallback"),title:hr.refusalFallback,body:pc(e,["api_refusal_explanation","explanation","message","reason"]),severity:"warning",rawProviderMetadata:cc(e,n,r,{workflow_event:"model_refusal_fallback"})}};case"mirror_error":return{kind:"visible_status",tag:r,status:{itemKey:lc(e,"mirror-error"),title:hr.mirrorError,body:pc(e,["message","error","reason"]),severity:"warning",rawProviderMetadata:cc(e,n,r,{workflow_event:"mirror_error"})}};default:return{kind:"unclassified",tag:r,reason:"Claude system subtype is not classified for workflow visibility"}}}function Zpe(e,n,t){let r=mf(e?.attempt),o=mf(e?.max_retries),i=mf(e?.retry_delay_ms),s=mf(e?.error_status),a=h(e?.error),d=r===void 0?void 0:o===void 0?`Attempt ${r}`:`Attempt ${r}/${o}`,u=[s===void 0?void 0:String(s),a].filter(p=>p!==void 0).join(" "),c=efe(i),l=[[d,u===""?void 0:`after ${u}`].filter(p=>p!==void 0).join(" "),c===void 0?void 0:`Retrying in ${c}.`].filter(p=>p!==void 0&&p!=="").join(". ");return{itemKey:Ype(e,n),title:hr.apiRetrying,body:l===""?void 0:l,severity:"warning",rawProviderMetadata:cc(e,n,t,{workflow_event:"api_retry",...r===void 0?{}:{attempt:r},...o===void 0?{}:{max_retries:o},...i===void 0?{}:{retry_delay_ms:i},...s===void 0?{}:{error_status:s},...a===void 0?{}:{error:a}})}}function Qpe(e,n,t){let r=h(e?.tool_name),o=h(e?.tool_use_id),i=h(e?.decision_reason_type),s=h(e?.decision_reason),a=A(e?.tool_input),d=h(a?.command);return{itemKey:lc(e,"permission-denied"),title:d!==void 0?`Claude was denied permission to run ${d}`:r!==void 0?`Claude was denied permission to use ${r}`:"Claude was denied permission to continue",body:s??uc(h(e?.message))??Xpe(i),severity:"error",rawProviderMetadata:cc(e,n,t,{workflow_event:"permission_denied",...r===void 0?{}:{tool_name:r},...o===void 0?{}:{tool_use_id:o},...d===void 0?{}:{command:d},...i===void 0?{}:{decision_reason_type:i}})}}function Xpe(e){switch(e){case"rule":return"Denied by a permission rule.";case"mode":return"Denied by the current permission mode.";case"classifier":return"Denied by the automatic permission classifier.";default:return"Denied without an interactive prompt."}}function Ype(e,n){return n!==void 0?`system:claude-api-status:${n}`:lc(e,"claude-api-status")}function efe(e){if(!(e===void 0||e<0))return e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(1)}s`}function nfe(e,n,t,r){let o=A(e?.patch),i=h(o?.status)??h(e?.status)??(r==="task_started"?"running":void 0),s=h(e?.task_id)??h(o?.task_id),a=pc(e,["description","summary"])??pc(o,["description","error"]),d=h(e?.output_file),u=a===void 0?d===void 0?void 0:`Output: ${d}`:d===void 0?a:`${a}
651
- Output: ${d}`;return{itemKey:s===void 0?lc(e,`task-${r}`):`task:${s}`,title:s===void 0?"Task":`Task ${s}`,body:u,state:tfe(i),progressLabel:i,rawProviderMetadata:cc(e,n,t,{workflow_event:r,...s===void 0?{}:{task_id:s},...i===void 0?{}:{status:i}})}}function zq(e,n,t,r){let o=h(e?.hook_name),i=h(e?.hook_event);return{itemKey:lc(e,r.blocked?"hook-blocked":"hook-failed"),title:r.blocked?hr.hookBlocked:hr.hookFailed,body:pc(e,["stderr","output","stdout"]),severity:r.blocked?"error":"warning",rawProviderMetadata:cc(e,n,t,{workflow_event:r.blocked?"hook_blocked":"hook_failed",...o===void 0?{}:{hook_name:o},...i===void 0?{}:{hook_event:i},...r.exitCode===void 0?{}:{exit_code:r.exitCode},...r.outcome===void 0?{}:{outcome:r.outcome}})}}function Kq(e,n){return{provider:"claude-code-sdk",transcript_event_type:"tool_call",tool_name:e.toolName,tool_use_id:e.itemKey,input:e.input,...n}}function cc(e,n,t,r){let o=h(e?.subtype),i=h(e?.uuid);return{provider:"claude-code-sdk",transcript_event_type:"system",system_tag:t,...o===void 0?{}:{system_subtype:o},...n===void 0?{}:{session_id:n},...i===void 0?{}:{uuid:i},...r}}function lc(e,n){let t=uc(h(e?.uuid));if(t!==void 0)return`system:${t}`;let r=uc(h(e?.tool_use_id));if(r!==void 0)return`system:${n}:${r}`;let o=uc(h(e?.task_id));return o!==void 0?`system:${n}:${o}`:`system:${n}:${Gpe()}`}function tfe(e){switch(e){case"pending":case"queued":return"queued";case"in_progress":case"running":case"started":return"running";case"blocked":case"paused":return"blocked";case"completed":case"complete":case"succeeded":case"success":return"succeeded";case"failed":case"error":return"failed";case"cancelled":case"canceled":case"killed":case"stopped":return"cancelled";default:return"unknown"}}function pc(e,n){for(let t of n){let r=uc(h(e?.[t]));if(r!==void 0)return r}}function uc(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function rfe(e){return typeof e=="boolean"?e:void 0}function mf(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}var hr,Ck=F(()=>{"use strict";Kn();hr={planModeEntered:"Claude entered plan mode",planModeExited:"Claude exited plan mode",planReadyForReview:"Claude says the plan is ready for review",planModeEnterFailed:"Claude could not enter plan mode",planModeExitFailed:"Claude could not exit plan mode",hookBlocked:"A Claude hook blocked this action",hookFailed:"A Claude hook failed",hookRowsSuppressed:"Further hook failures suppressed for this session",refusalFallback:"Claude declined and switched approach",mirrorError:"Claude hit an internal stream error",questionExpired:"Claude cannot continue: the pending question expired",apiWaiting:"Claude is waiting for the API",apiResponded:"Claude API responded",apiWaitEnded:"Claude stopped waiting for the API",apiRetrying:"Claude API request failed; retrying"}});import{existsSync as ofe}from"node:fs";import{isAbsolute as ife,resolve as sfe}from"node:path";function Vq(e,n){if(n!=="assistant_aggregate")return;let t=e.trim().replace(/\s+/g," ").toLowerCase();return t===""?void 0:[/\blet me\b.*\bbefore\b.*\b(writing|implementing|editing|patching|making|changing|coding|updating)\b/u,/\blet me\b.*\b(check|inspect|confirm|look|verify|investigate|find|review)\b/u,/\bi(?:'|\u2019)ll\b.*\b(check|inspect|confirm|look|verify|investigate|find|review|write|implement|update|edit|patch|run)\b/u,/\bi will\b.*\b(check|inspect|confirm|look|verify|investigate|find|review|write|implement|update|edit|patch|run)\b/u,/\bnext\b.*\b(i(?:'|\u2019)ll|i will|let me)\b/u].some(o=>o.test(t))?afe:void 0}function ez(e){let n=new Map,t=new Map,r=[],o=new Set,i=[],s,a=!1,d=0,u,c,l,p=!1,m=async(I,$,K,ie)=>{let pe=e.preparePush===void 0?$:await e.preparePush(I,$);e.debugTrace?.record("outbox","push.start",{event:I,threadKey:e.threadKey,payload:pe,timeoutMs:K??null});try{let Y=await e.push(I,pe,K,()=>{e.debugTrace?.record("outbox","push.sent",{event:I,threadKey:e.threadKey}),ie?.()});return e.debugTrace?.record("outbox","push.ack",{event:I,threadKey:e.threadKey,reply:Y}),Y}catch(Y){throw e.debugTrace?.record("outbox","push.failed",{event:I,threadKey:e.threadKey,message:Y instanceof Error?Y.message:String(Y)}),Wg(Y)&&(p=!0,l.pause()),Y}};l=Vg({instanceId:e.instanceId,threadKey:e.threadKey,persistDir:e.persistDir,push:m,wire:e.wire,runnerPayload:(I,$,K,ie)=>e.runnerPayload(I,$,K,{...ie??{},agent_provider:"claude-code",claude_session_id:$}),sourceSeqForTurn:I=>n.get(I),resolveSnapshot:I=>{let $=t.get(I);return $===void 0?Promise.reject(new Error(`no retained claude snapshot for turn ${I}`)):Promise.resolve({items:[...$]})},onTurnTerminal:(I,$,K,ie)=>{if(o.delete(I),o.size===0)for(let pe of i.splice(0))pe();e.onTurnTerminal(I,$,K,ie,n.get(I))},log:e.log,outboxRetryDelaysMs:e.outboxRetryDelaysMs,snapshotRetryDelaysMs:e.snapshotRetryDelaysMs,statsIntervalMs:e.statsIntervalMs,turnStalledThresholdMs:e.turnStalledThresholdMs});let f,y,_=e.processingStateHeartbeatMs??ufe,w=(I,$)=>{if(p)return;let K=e.wire();if(K.kandanThreadId===void 0)return;let ie={workspace:K.workspaceSlug,channel:K.channelSlug,thread_id:K.kandanThreadId,instance_id:e.instanceId,...K.codexThreadId===void 0?{}:{codex_thread_id:K.codexThreadId},seq:I,status:"processing",reason:$,agent_provider:"claude-code",...K.leaseEpoch===void 0?{}:{lease_epoch:K.leaseEpoch}};Promise.resolve().then(()=>e.push("message_state",ie)).catch(pe=>{e.log("claude_pipeline.processing_state_push_failed",{thread_key:e.threadKey,seq:I,reason:$,message:pe instanceof Error?pe.message:String(pe)})})},S=()=>{y!==void 0&&(clearInterval(y),y=void 0)},v=()=>{f=void 0,S()},b=()=>{y!==void 0||_<=0||(y=setInterval(()=>{let I=f;I===void 0||e.suppressProcessingState?.()===!0||w(I.seq,I.reason)},_),y.unref?.())},k=(I,$)=>{let K=n.get(I);K===void 0||e.suppressProcessingState?.()===!0||f?.seq===K&&f.reason===$||(f={seq:K,reason:$},w(K,$))},R=(I,$)=>{if(l.submitNotification(I,$),s!==void 0){let K=oy(I,$);K!==void 0&&k(s.turnId,K)}},P=()=>{if(s!==void 0)return s;a=!1,d+=1;let I=`claude:${e.instanceId}:turn:${d}`,$=e.currentSourceSeq()??u??e.wire().rootSeq;return $===void 0?e.log("claude_pipeline.turn_without_source_seq",{thread_key:e.threadKey,turn_id:I}):(u=$,n.set(I,$)),s={turnId:I,sourceSeq:$??0,itemOrder:[],itemsByKey:new Map,pendingTools:new Map},o.add(I),R("turn/started",{turnId:I}),l.notifyTurnMappingReady(I),k(I,"starting turn"),b(),s},L=(I,$)=>{let K=h($.id)??`item:${I.itemOrder.length}`;I.itemsByKey.has(K)||I.itemOrder.push(K),I.itemsByKey.set(K,$)},D=(I,$,K,ie)=>{let pe=I.itemsByKey.get($),Y=pe===void 0?"":Wq(pe,K);L(I,zy(K,$,`${Y}${ie}`))},j=(I,$,K,ie)=>{L(I,zy(K,$,ie))},q=I=>I.itemOrder.flatMap($=>{let K=I.itemsByKey.get($);return K===void 0?[]:[K]}),E=(I,$)=>{for(!I.itemOrder.some(ie=>{let pe=I.itemsByKey.get(ie);return pe!==void 0&&h(pe.type)==="agentMessage"&&Wq(pe,"agentMessage").trim()===$.trim()})&&$.trim()!==""&&j(I,`result:${I.turnId}`,"agentMessage",$),t.set(I.turnId,q(I)),r.push(I.turnId);r.length>dfe;){let ie=r.shift();ie!==void 0&&t.delete(ie)}R("turn/completed",{turnId:I.turnId}),s=void 0,v()},B=(I,$)=>{R("turn/failed",{turnId:I.turnId,reason:$}),s=void 0,v()},z,W=0,Z=20,fe=0,De=()=>s??(e.currentSourceSeq()===void 0?void 0:P()),ke=(I,$)=>{let K={type:"agentStatus",id:$.itemKey,provider:"claude-code",severity:$.severity,title:$.title,...$.body===void 0?{}:{body:$.body},rawProviderMetadata:$.rawProviderMetadata};L(I,K),R("item/completed",{turnId:I.turnId,item:K})},ge=I=>{if(z===I.wantPlan)return;let $=z===void 0&&!I.wantPlan;if(z=I.wantPlan,$)return;let K=De();if(K===void 0){e.log("claude_pipeline.plan_mode_transition_without_turn",{thread_key:e.threadKey,entered:I.wantPlan,signal:I.signal});return}W+=1,ke(K,Bq({itemKey:I.uuid===void 0?`status:plan-mode:${K.turnId}:${W}`:`status:plan-mode:${I.uuid}`,entered:I.wantPlan,signal:I.signal,permissionMode:I.permissionMode}))},Re=(I,$)=>{let K=I.pendingTools.get($.itemKey);I.pendingTools.delete($.itemKey);let ie=K?.toolName??$.toolName??"tool",pe=K?.input??{},Y=`tool:${$.itemKey}`;if(Rk(ie)){let ae=Qq(ie,pe,{targetExistedAtCall:K?.targetExistedAtCall});if(ae!==void 0){let Ce={type:"fileChange",id:Y,status:$.isError?"failed":"completed",patchText:ae};L(I,Ce),R("item/completed",{turnId:I.turnId,item:Ce});return}}if(Gq(ie)){let ae=h(pe.query)??h(pe.url)??ie,Ce={type:"web_search_call",id:`web:${$.itemKey}`,query:ae,status:"completed"};L(I,Ce),R("item/completed",{turnId:I.turnId,item:Ce});return}let oe=Uq({itemKey:$.itemKey,toolName:ie,input:pe,content:$.content,isError:$.isError});if(oe!==void 0){oe.failureStatus!==void 0&&ke(I,oe.failureStatus),oe.announcePlanMode!==void 0&&ge({wantPlan:oe.announcePlanMode,signal:"tool_result"});return}if($.isError&&Tk(ie)){let ae=ffe($,pe,ie);L(I,ae),R("item/completed",{turnId:I.turnId,item:ae});return}if(Tk(ie))return;if(Zq(ie)){if($.isError&&nz(ie)){let ae=xfe($,pe,ie);L(I,ae),R("item/completed",{turnId:I.turnId,item:ae});return}if($.isError){let ae=_fe($,pe,ie);L(I,ae),R("item/completed",{turnId:I.turnId,item:ae});return}if(!$.isError){e.onTodoWriteCompleted?.(pe);let ae=kfe(Y,pe);if(ae!==void 0){let Ce={...ae,id:Y};L(I,Ce),R("item/completed",{turnId:I.turnId,item:Ce})}}return}let Fe={type:"commandExecution",id:Y,toolName:ie,command:Pk(ie,pe),aggregatedOutput:$.content,status:$.isError?"failed":"completed"};L(I,Fe),R("item/completed",{turnId:I.turnId,item:Fe})};return{handleTranscriptEvent:I=>{if(a&&s===void 0&&cfe.has(I.type)){e.log("claude_pipeline.post_interrupt_trailing_event_dropped",{thread_key:e.threadKey,event_type:I.type});return}switch(I.type){case"session_started":return;case"assistant_delta":{let $=P(),K=Ik(I.itemKey);D($,K,"agentMessage",I.delta),R("item/agentMessage/delta",{turnId:$.turnId,itemId:K,delta:I.delta});return}case"reasoning_delta":{let $=P(),K=Hq(I.itemKey);D($,K,"reasoning",I.delta),R("item/reasoning/textDelta",{turnId:$.turnId,itemId:K,delta:I.delta});return}case"assistant_message":{let $=P(),K=Ik(I.itemKey);j($,K,"agentMessage",I.content),R("item/completed",{turnId:$.turnId,item:zy("agentMessage",K,I.content)});return}case"reasoning_message":{let $=P(),K=Hq(I.itemKey);j($,K,"reasoning",I.content),R("item/completed",{turnId:$.turnId,item:zy("reasoning",K,I.content)});return}case"tool_call":{let $=P(),K=wfe(I.toolName,I.input,e.cwd);$.pendingTools.set(I.itemKey,{toolName:I.toolName,input:I.input,targetExistedAtCall:K});let ie=lfe(I);if(ie!==void 0&&(L($,ie),R("item/completed",{turnId:$.turnId,item:ie})),Tk(I.toolName))return;if(Gq(I.toolName)){let Y=h(I.input.query)??h(I.input.url)??I.toolName;R("item/started",{turnId:$.turnId,item:{type:"web_search_call",id:`web:${I.itemKey}`,query:Y}});return}if(Zq(I.toolName))return;let pe=`tool:${I.itemKey}`;if(Rk(I.toolName)){let Y=Qq(I.toolName,I.input,{targetExistedAtCall:K});Y!==void 0&&Y.trim()!==""&&R("item/fileChange/outputDelta",{turnId:$.turnId,itemId:pe,delta:Y});return}R("item/commandExecution/outputDelta",{turnId:$.turnId,itemId:pe,command:Pk(I.toolName,I.input),stream:"stdout",delta:`
652
- `});return}case"tool_result":{Re(P(),I);return}case"command_output_delta":{let $=s,K=$?.pendingTools.get(I.itemKey);if($===void 0||K===void 0)return;R("item/commandExecution/outputDelta",{turnId:$.turnId,itemId:`tool:${I.itemKey}`,command:Pk(K.toolName,K.input),stream:"stdout",delta:I.delta});return}case"command_output":{let $=P(),K={type:"commandExecution",id:`local:${I.itemKey}`,command:"Claude Code local command",aggregatedOutput:I.content,status:"completed"};L($,K),R("item/completed",{turnId:$.turnId,item:K});return}case"usage":c=I.usage;return;case"rate_limit":return;case"permission_mode_changed":ge({wantPlan:I.permissionMode==="plan",signal:"permission_mode",permissionMode:I.permissionMode,uuid:I.uuid});return;case"agent_status":{let $=De();if($===void 0){e.log("claude_pipeline.agent_status_without_turn",{thread_key:e.threadKey,item_key:I.itemKey,title:I.title,raw_provider_metadata:I.rawProviderMetadata});return}let K=h(I.rawProviderMetadata.workflow_event);if(K==="hook_blocked"||K==="hook_failed"){if(fe+=1,fe===Z+1){ke($,{itemKey:`status:hook-suppression:${$.turnId}`,title:hr.hookRowsSuppressed,body:void 0,severity:"warning",rawProviderMetadata:{provider:"claude-code-sdk",transcript_event_type:"workflow",workflow_event:"hook_rows_suppressed",suppressed_after:Z}});return}if(fe>Z){e.log("claude_pipeline.hook_stop_row_suppressed",{thread_key:e.threadKey,item_key:I.itemKey,title:I.title,visible_hook_stop_rows:fe});return}}ke($,{itemKey:I.itemKey,title:I.title,body:I.body,severity:I.severity,rawProviderMetadata:I.rawProviderMetadata});return}case"agent_task_update":{let $=De();if($===void 0){e.log("claude_pipeline.agent_task_update_without_turn",{thread_key:e.threadKey,item_key:I.itemKey,title:I.title,raw_provider_metadata:I.rawProviderMetadata});return}let K={type:"agentTaskUpdate",id:I.itemKey,provider:"claude-code",state:I.state,title:I.title,...I.body===void 0?{}:{body:I.body},...I.progressLabel===void 0?{}:{progressLabel:I.progressLabel},rawProviderMetadata:I.rawProviderMetadata};L($,K),R("item/completed",{turnId:$.turnId,item:K});return}case"unknown":e.log("claude_pipeline.unknown_event",{thread_key:e.threadKey,item_key:I.itemKey,summary:I.summary,raw_provider_metadata:I.rawProviderMetadata});{let $=s??(e.currentSourceSeq()===void 0?void 0:P());if($===void 0)return;let K=hfe(I);L($,K),R("item/completed",{turnId:$.turnId,item:K})}return;case"turn_interrupted":{a=!1,s!==void 0&&(R("turn/aborted",{turnId:s.turnId,reason:I.reason??"Claude Code turn interrupted"}),s=void 0,v());return}case"turn_completed":{if(s===void 0&&a){a=!1,e.log("claude_pipeline.turn_completed_after_interrupt",{thread_key:e.threadKey});return}let $=P();c=I.usage??c;let K=Vq(I.body,I.bodySource);if(K!==void 0){e.log("claude_pipeline.incomplete_progress_completion",{thread_key:e.threadKey,turn_id:$.turnId,body_source:I.bodySource??"unspecified"}),B($,K);return}E($,I.body);return}case"session_completed":{if(s===void 0){a=!1;return}c=I.usage??c;let $=Vq(I.body,I.bodySource);if($!==void 0){e.log("claude_pipeline.incomplete_progress_completion",{thread_key:e.threadKey,turn_id:s.turnId,body_source:I.bodySource??"unspecified"}),B(s,$);return}E(s,I.body);return}case"session_failed":{if(s===void 0){a=!1,e.log("claude_pipeline.session_failed_without_turn",{thread_key:e.threadKey,reason:I.reason});return}ke(s,mfe(s.turnId,I)),B(s,I.reason);return}}},interruptActiveTurn:I=>s===void 0?!1:(R("turn/aborted",{turnId:s.turnId,reason:I}),s=void 0,v(),a=!0,!0),submitLifecycle:(I,$)=>{v(),l.submitLifecycle(I,$)},awaitTurnsSettled:(I=3e4)=>o.size===0?Promise.resolve():new Promise($=>{let K=setTimeout(()=>{e.log("claude_pipeline.turn_settlement_timeout",{thread_key:e.threadKey,open_turn_ids:[...o]}),$()},I);i.push(()=>{clearTimeout(K),$()})}),activeTurnId:()=>s?.turnId,lastUsage:()=>c,flush:I=>l.flushOutbox(I),metrics:()=>l.metrics(),close:I=>(v(),l.close(I)),pauseOutbox:()=>{p=!0,l.pause()},resumeOutbox:()=>{p=!1,l.resume();let I=f;I!==void 0&&e.suppressProcessingState?.()!==!0&&w(I.seq,I.reason)}}}function zy(e,n,t){return e==="agentMessage"?{type:e,id:n,content:[{type:"text",text:t}]}:{type:e,id:n,content:[t],summary:[]}}function Wq(e,n){let t=Array.isArray(e.content)?e.content:[];return n==="reasoning"?t.filter(r=>typeof r=="string").join(""):t.flatMap(r=>{let o=h(A(r)?.text);return o===void 0?[]:[o]}).join("")}function Ik(e){let n=e.match(/^assistant-stream-(\d+)$/)?.[1];return n===void 0?e:`content-block-${n}`}function Hq(e){return`reasoning-${Ik(e)}`}function lfe(e){switch(e.toolName){case"Skill":return pfe(e);case"ExitPlanMode":{let n=Nq({itemKey:e.itemKey,toolName:e.toolName,input:e.input});return n===void 0?void 0:{type:"agentStatus",id:n.itemKey,provider:"claude-code",severity:n.severity,title:n.title,...n.body===void 0?{}:{body:n.body},rawProviderMetadata:n.rawProviderMetadata}}case"TaskCreate":return gfe(e);case"TaskUpdate":return yfe(e);default:return}}function pfe(e){let n=h(e.input.skill)??"Skill",t=h(e.input.args);return{type:"agentStatus",id:`status:${e.itemKey}`,provider:"claude-code",severity:"info",title:`Skill: ${n}`,...t===void 0?{}:{body:t},rawProviderMetadata:Ek(e)}}function ffe(e,n,t){let r=h(n.skill)??"Skill";return{type:"agentStatus",id:`status:${e.itemKey}`,provider:"claude-code",severity:"error",title:`Skill: ${r}`,body:e.content,rawProviderMetadata:{provider:"claude-code-sdk",transcript_event_type:e.type,tool_name:t,tool_use_id:e.itemKey,input:n,is_error:!0}}}function mfe(e,n){return{itemKey:`status:session-failed:${e}`,title:"Claude Code stopped after API failures",body:n.reason,severity:"error",rawProviderMetadata:{provider:"claude-code-sdk",transcript_event_type:"session_failed",workflow_event:"session_failed",...n.sessionId===void 0?{}:{session_id:n.sessionId},reason:n.reason}}}function hfe(e){let n=h(e.rawProviderMetadata.sdk_message_type)??"unknown";return{type:"agentStatus",id:`unsupported:${e.itemKey}`,provider:"claude-code",severity:"warning",title:`Unsupported Claude SDK event: ${n}`,body:e.summary,rawProviderMetadata:{...e.rawProviderMetadata,diagnostic_kind:"unsupported_claude_sdk_event"}}}function gfe(e){let n=h(e.input.subject)??h(e.input.title)??"Task created",t=h(e.input.description);return{type:"agentTaskUpdate",id:`task:${e.itemKey}`,provider:"claude-code",state:"running",title:n,progressLabel:"created",...t===void 0?{}:{body:t},rawProviderMetadata:Ek(e)}}function yfe(e){let n=h(e.input.taskId)??h(e.input.task_id),t=h(e.input.status),r=h(e.input.description)??h(e.input.activeForm);return{type:"agentTaskUpdate",id:`task:${e.itemKey}`,provider:"claude-code",state:bfe(t),title:n===void 0?"Task updated":`Task ${n}`,...r===void 0?{}:{body:r},...t===void 0?{}:{progressLabel:t},rawProviderMetadata:Ek(e)}}function xfe(e,n,t){let r=h(n.taskId)??h(n.task_id),o=h(n.subject)??h(n.title)??(r===void 0?`${t} failed`:`Task ${r}`);return{type:"agentTaskUpdate",id:`task:${e.itemKey}`,provider:"claude-code",state:"failed",title:o,progressLabel:"failed",...e.content===""?{}:{body:e.content},rawProviderMetadata:{tool_name:t,tool_use_id:e.itemKey,input:n,is_error:!0}}}function _fe(e,n,t){return{type:"agentStatus",id:`status:${e.itemKey}`,provider:"claude-code",severity:"error",title:`${t} failed`,...e.content===""?{}:{body:e.content},rawProviderMetadata:{provider:"claude-code-sdk",transcript_event_type:e.type,tool_name:t,tool_use_id:e.itemKey,input:n,is_error:!0}}}function bfe(e){switch(e){case"pending":return"queued";case"in_progress":return"running";case"blocked":return"blocked";case"completed":return"succeeded";case"failed":case"error":return"failed";case"cancelled":case"canceled":return"cancelled";default:return"unknown"}}function Ek(e){return{provider:"claude-code-sdk",transcript_event_type:e.type,tool_name:e.toolName,tool_use_id:e.itemKey,input:e.input}}function Rk(e){switch(e){case"Edit":case"MultiEdit":case"Write":case"NotebookEdit":return!0;default:return!1}}function Gq(e){return e==="WebSearch"||e==="WebFetch"}function Tk(e){return e==="Skill"||kk(e)}function Zq(e){return e==="TodoWrite"||nz(e)}function nz(e){return e==="TaskCreate"||e==="TaskUpdate"}function wfe(e,n,t){if(!Rk(e))return;let r=h(n.file_path)??h(n.filePath)??h(n.notebook_path);if(!(r===void 0||r.trim()===""))try{return ofe(ife(r)?r:sfe(t,r))}catch{return}}function Qq(e,n,t={}){let r=h(n.file_path)??h(n.filePath)??h(n.notebook_path);if(!(r===void 0||r.trim()===""))switch(e){case"Write":{let o=t.targetExistedAtCall===!1?`*** Add File: ${r}`:`*** Update File: ${r}`,i=h(n.content)??"";return Ny(o,Uy(i,"+"))}case"Edit":{let o=h(n.old_string)??"",i=h(n.new_string)??"";return Ny(`*** Update File: ${r}`,Xq(o,i))}case"MultiEdit":{let i=(Array.isArray(n.edits)?n.edits:[]).flatMap(s=>{let a=A(s);return a===void 0?[]:[Xq(h(a.old_string)??"",h(a.new_string)??"")]});return i.length===0?void 0:Ny(`*** Update File: ${r}`,i.join(`
651
+ Output: ${d}`;return{itemKey:s===void 0?lc(e,`task-${r}`):`task:${s}`,title:s===void 0?"Task":`Task ${s}`,body:u,state:tfe(i),progressLabel:i,rawProviderMetadata:cc(e,n,t,{workflow_event:r,...s===void 0?{}:{task_id:s},...i===void 0?{}:{status:i}})}}function zq(e,n,t,r){let o=h(e?.hook_name),i=h(e?.hook_event);return{itemKey:lc(e,r.blocked?"hook-blocked":"hook-failed"),title:r.blocked?hr.hookBlocked:hr.hookFailed,body:pc(e,["stderr","output","stdout"]),severity:r.blocked?"error":"warning",rawProviderMetadata:cc(e,n,t,{workflow_event:r.blocked?"hook_blocked":"hook_failed",...o===void 0?{}:{hook_name:o},...i===void 0?{}:{hook_event:i},...r.exitCode===void 0?{}:{exit_code:r.exitCode},...r.outcome===void 0?{}:{outcome:r.outcome}})}}function Kq(e,n){return{provider:"claude-code-sdk",transcript_event_type:"tool_call",tool_name:e.toolName,tool_use_id:e.itemKey,input:e.input,...n}}function cc(e,n,t,r){let o=h(e?.subtype),i=h(e?.uuid);return{provider:"claude-code-sdk",transcript_event_type:"system",system_tag:t,...o===void 0?{}:{system_subtype:o},...n===void 0?{}:{session_id:n},...i===void 0?{}:{uuid:i},...r}}function lc(e,n){let t=uc(h(e?.uuid));if(t!==void 0)return`system:${t}`;let r=uc(h(e?.tool_use_id));if(r!==void 0)return`system:${n}:${r}`;let o=uc(h(e?.task_id));return o!==void 0?`system:${n}:${o}`:`system:${n}:${Gpe()}`}function tfe(e){switch(e){case"pending":case"queued":return"queued";case"in_progress":case"running":case"started":return"running";case"blocked":case"paused":return"blocked";case"completed":case"complete":case"succeeded":case"success":return"succeeded";case"failed":case"error":return"failed";case"cancelled":case"canceled":case"killed":case"stopped":return"cancelled";default:return"unknown"}}function pc(e,n){for(let t of n){let r=uc(h(e?.[t]));if(r!==void 0)return r}}function uc(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function rfe(e){return typeof e=="boolean"?e:void 0}function mf(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}var hr,Ck=F(()=>{"use strict";Kn();hr={planModeEntered:"Claude entered plan mode",planModeExited:"Claude exited plan mode",planReadyForReview:"Claude says the plan is ready for review",planModeEnterFailed:"Claude could not enter plan mode",planModeExitFailed:"Claude could not exit plan mode",hookBlocked:"A Claude hook blocked this action",hookFailed:"A Claude hook failed",hookRowsSuppressed:"Further hook failures suppressed for this session",refusalFallback:"Claude declined and switched approach",mirrorError:"Claude hit an internal stream error",questionExpired:"Claude cannot continue: the pending question expired",apiWaiting:"Claude is waiting for the API",apiResponded:"Claude API responded",apiWaitEnded:"Claude stopped waiting for the API",apiRetrying:"Claude API request failed; retrying"}});import{existsSync as ofe}from"node:fs";import{isAbsolute as ife,resolve as sfe}from"node:path";function Vq(e,n){if(n!=="assistant_aggregate")return;let t=e.trim().replace(/\s+/g," ").toLowerCase();return t===""?void 0:[/\blet me\b.*\bbefore\b.*\b(writing|implementing|editing|patching|making|changing|coding|updating)\b/u,/\blet me\b.*\b(check|inspect|confirm|look|verify|investigate|find|review)\b/u,/\bi(?:'|\u2019)ll\b.*\b(check|inspect|confirm|look|verify|investigate|find|review|write|implement|update|edit|patch|run)\b/u,/\bi will\b.*\b(check|inspect|confirm|look|verify|investigate|find|review|write|implement|update|edit|patch|run)\b/u,/\bnext\b.*\b(i(?:'|\u2019)ll|i will|let me)\b/u].some(o=>o.test(t))?afe:void 0}function ez(e){let n=new Map,t=new Map,r=[],o=new Set,i=[],s,a=!1,d=0,u,c,l,p=!1,m=async(I,$,K,re)=>{let pe=e.preparePush===void 0?$:await e.preparePush(I,$);e.debugTrace?.record("outbox","push.start",{event:I,threadKey:e.threadKey,payload:pe,timeoutMs:K??null});try{let Y=await e.push(I,pe,K,()=>{e.debugTrace?.record("outbox","push.sent",{event:I,threadKey:e.threadKey}),re?.()});return e.debugTrace?.record("outbox","push.ack",{event:I,threadKey:e.threadKey,reply:Y}),Y}catch(Y){throw e.debugTrace?.record("outbox","push.failed",{event:I,threadKey:e.threadKey,message:Y instanceof Error?Y.message:String(Y)}),Wg(Y)&&(p=!0,l.pause()),Y}};l=Vg({instanceId:e.instanceId,threadKey:e.threadKey,persistDir:e.persistDir,push:m,wire:e.wire,runnerPayload:(I,$,K,re)=>e.runnerPayload(I,$,K,{...re??{},agent_provider:"claude-code",claude_session_id:$}),sourceSeqForTurn:I=>n.get(I),resolveSnapshot:I=>{let $=t.get(I);return $===void 0?Promise.reject(new Error(`no retained claude snapshot for turn ${I}`)):Promise.resolve({items:[...$]})},onTurnTerminal:(I,$,K,re)=>{if(o.delete(I),o.size===0)for(let pe of i.splice(0))pe();e.onTurnTerminal(I,$,K,re,n.get(I))},log:e.log,outboxRetryDelaysMs:e.outboxRetryDelaysMs,snapshotRetryDelaysMs:e.snapshotRetryDelaysMs,statsIntervalMs:e.statsIntervalMs,turnStalledThresholdMs:e.turnStalledThresholdMs});let f,y,_=e.processingStateHeartbeatMs??ufe,w=(I,$)=>{if(p)return;let K=e.wire();if(K.kandanThreadId===void 0)return;let re={workspace:K.workspaceSlug,channel:K.channelSlug,thread_id:K.kandanThreadId,instance_id:e.instanceId,...K.codexThreadId===void 0?{}:{codex_thread_id:K.codexThreadId},seq:I,status:"processing",reason:$,agent_provider:"claude-code",...K.leaseEpoch===void 0?{}:{lease_epoch:K.leaseEpoch}};Promise.resolve().then(()=>e.push("message_state",re)).catch(pe=>{e.log("claude_pipeline.processing_state_push_failed",{thread_key:e.threadKey,seq:I,reason:$,message:pe instanceof Error?pe.message:String(pe)})})},S=()=>{y!==void 0&&(clearInterval(y),y=void 0)},v=()=>{f=void 0,S()},b=()=>{y!==void 0||_<=0||(y=setInterval(()=>{let I=f;I===void 0||e.suppressProcessingState?.()===!0||w(I.seq,I.reason)},_),y.unref?.())},k=(I,$)=>{let K=n.get(I);K===void 0||e.suppressProcessingState?.()===!0||f?.seq===K&&f.reason===$||(f={seq:K,reason:$},w(K,$))},R=(I,$)=>{if(l.submitNotification(I,$),s!==void 0){let K=oy(I,$);K!==void 0&&k(s.turnId,K)}},P=()=>{if(s!==void 0)return s;a=!1,d+=1;let I=`claude:${e.instanceId}:turn:${d}`,$=e.currentSourceSeq()??u??e.wire().rootSeq;return $===void 0?e.log("claude_pipeline.turn_without_source_seq",{thread_key:e.threadKey,turn_id:I}):(u=$,n.set(I,$)),s={turnId:I,sourceSeq:$??0,itemOrder:[],itemsByKey:new Map,pendingTools:new Map},o.add(I),R("turn/started",{turnId:I}),l.notifyTurnMappingReady(I),k(I,"starting turn"),b(),s},L=(I,$)=>{let K=h($.id)??`item:${I.itemOrder.length}`;I.itemsByKey.has(K)||I.itemOrder.push(K),I.itemsByKey.set(K,$)},D=(I,$,K,re)=>{let pe=I.itemsByKey.get($),Y=pe===void 0?"":Wq(pe,K);L(I,zy(K,$,`${Y}${re}`))},j=(I,$,K,re)=>{L(I,zy(K,$,re))},q=I=>I.itemOrder.flatMap($=>{let K=I.itemsByKey.get($);return K===void 0?[]:[K]}),E=(I,$)=>{for(!I.itemOrder.some(re=>{let pe=I.itemsByKey.get(re);return pe!==void 0&&h(pe.type)==="agentMessage"&&Wq(pe,"agentMessage").trim()===$.trim()})&&$.trim()!==""&&j(I,`result:${I.turnId}`,"agentMessage",$),t.set(I.turnId,q(I)),r.push(I.turnId);r.length>dfe;){let re=r.shift();re!==void 0&&t.delete(re)}R("turn/completed",{turnId:I.turnId}),s=void 0,v()},B=(I,$)=>{R("turn/failed",{turnId:I.turnId,reason:$}),s=void 0,v()},z,W=0,Z=20,fe=0,Ee=()=>s??(e.currentSourceSeq()===void 0?void 0:P()),_e=(I,$)=>{let K={type:"agentStatus",id:$.itemKey,provider:"claude-code",severity:$.severity,title:$.title,...$.body===void 0?{}:{body:$.body},rawProviderMetadata:$.rawProviderMetadata};L(I,K),R("item/completed",{turnId:I.turnId,item:K})},be=I=>{if(z===I.wantPlan)return;let $=z===void 0&&!I.wantPlan;if(z=I.wantPlan,$)return;let K=Ee();if(K===void 0){e.log("claude_pipeline.plan_mode_transition_without_turn",{thread_key:e.threadKey,entered:I.wantPlan,signal:I.signal});return}W+=1,_e(K,Bq({itemKey:I.uuid===void 0?`status:plan-mode:${K.turnId}:${W}`:`status:plan-mode:${I.uuid}`,entered:I.wantPlan,signal:I.signal,permissionMode:I.permissionMode}))},Re=(I,$)=>{let K=I.pendingTools.get($.itemKey);I.pendingTools.delete($.itemKey);let re=K?.toolName??$.toolName??"tool",pe=K?.input??{},Y=`tool:${$.itemKey}`;if(Rk(re)){let ae=Qq(re,pe,{targetExistedAtCall:K?.targetExistedAtCall});if(ae!==void 0){let Ce={type:"fileChange",id:Y,status:$.isError?"failed":"completed",patchText:ae};L(I,Ce),R("item/completed",{turnId:I.turnId,item:Ce});return}}if(Gq(re)){let ae=h(pe.query)??h(pe.url)??re,Ce={type:"web_search_call",id:`web:${$.itemKey}`,query:ae,status:"completed"};L(I,Ce),R("item/completed",{turnId:I.turnId,item:Ce});return}let ie=Uq({itemKey:$.itemKey,toolName:re,input:pe,content:$.content,isError:$.isError});if(ie!==void 0){ie.failureStatus!==void 0&&_e(I,ie.failureStatus),ie.announcePlanMode!==void 0&&be({wantPlan:ie.announcePlanMode,signal:"tool_result"});return}if($.isError&&Tk(re)){let ae=ffe($,pe,re);L(I,ae),R("item/completed",{turnId:I.turnId,item:ae});return}if(Tk(re))return;if(Zq(re)){if($.isError&&nz(re)){let ae=xfe($,pe,re);L(I,ae),R("item/completed",{turnId:I.turnId,item:ae});return}if($.isError){let ae=_fe($,pe,re);L(I,ae),R("item/completed",{turnId:I.turnId,item:ae});return}if(!$.isError){e.onTodoWriteCompleted?.(pe);let ae=kfe(Y,pe);if(ae!==void 0){let Ce={...ae,id:Y};L(I,Ce),R("item/completed",{turnId:I.turnId,item:Ce})}}return}let Fe={type:"commandExecution",id:Y,toolName:re,command:Pk(re,pe),aggregatedOutput:$.content,status:$.isError?"failed":"completed"};L(I,Fe),R("item/completed",{turnId:I.turnId,item:Fe})};return{handleTranscriptEvent:I=>{if(a&&s===void 0&&cfe.has(I.type)){e.log("claude_pipeline.post_interrupt_trailing_event_dropped",{thread_key:e.threadKey,event_type:I.type});return}switch(I.type){case"session_started":return;case"assistant_delta":{let $=P(),K=Ik(I.itemKey);D($,K,"agentMessage",I.delta),R("item/agentMessage/delta",{turnId:$.turnId,itemId:K,delta:I.delta});return}case"reasoning_delta":{let $=P(),K=Hq(I.itemKey);D($,K,"reasoning",I.delta),R("item/reasoning/textDelta",{turnId:$.turnId,itemId:K,delta:I.delta});return}case"assistant_message":{let $=P(),K=Ik(I.itemKey);j($,K,"agentMessage",I.content),R("item/completed",{turnId:$.turnId,item:zy("agentMessage",K,I.content)});return}case"reasoning_message":{let $=P(),K=Hq(I.itemKey);j($,K,"reasoning",I.content),R("item/completed",{turnId:$.turnId,item:zy("reasoning",K,I.content)});return}case"tool_call":{let $=P(),K=wfe(I.toolName,I.input,e.cwd);$.pendingTools.set(I.itemKey,{toolName:I.toolName,input:I.input,targetExistedAtCall:K});let re=lfe(I);if(re!==void 0&&(L($,re),R("item/completed",{turnId:$.turnId,item:re})),Tk(I.toolName))return;if(Gq(I.toolName)){let Y=h(I.input.query)??h(I.input.url)??I.toolName;R("item/started",{turnId:$.turnId,item:{type:"web_search_call",id:`web:${I.itemKey}`,query:Y}});return}if(Zq(I.toolName))return;let pe=`tool:${I.itemKey}`;if(Rk(I.toolName)){let Y=Qq(I.toolName,I.input,{targetExistedAtCall:K});Y!==void 0&&Y.trim()!==""&&R("item/fileChange/outputDelta",{turnId:$.turnId,itemId:pe,delta:Y});return}R("item/commandExecution/outputDelta",{turnId:$.turnId,itemId:pe,command:Pk(I.toolName,I.input),stream:"stdout",delta:`
652
+ `});return}case"tool_result":{Re(P(),I);return}case"command_output_delta":{let $=s,K=$?.pendingTools.get(I.itemKey);if($===void 0||K===void 0)return;R("item/commandExecution/outputDelta",{turnId:$.turnId,itemId:`tool:${I.itemKey}`,command:Pk(K.toolName,K.input),stream:"stdout",delta:I.delta});return}case"command_output":{let $=P(),K={type:"commandExecution",id:`local:${I.itemKey}`,command:"Claude Code local command",aggregatedOutput:I.content,status:"completed"};L($,K),R("item/completed",{turnId:$.turnId,item:K});return}case"usage":c=I.usage;return;case"rate_limit":return;case"permission_mode_changed":be({wantPlan:I.permissionMode==="plan",signal:"permission_mode",permissionMode:I.permissionMode,uuid:I.uuid});return;case"agent_status":{let $=Ee();if($===void 0){e.log("claude_pipeline.agent_status_without_turn",{thread_key:e.threadKey,item_key:I.itemKey,title:I.title,raw_provider_metadata:I.rawProviderMetadata});return}let K=h(I.rawProviderMetadata.workflow_event);if(K==="hook_blocked"||K==="hook_failed"){if(fe+=1,fe===Z+1){_e($,{itemKey:`status:hook-suppression:${$.turnId}`,title:hr.hookRowsSuppressed,body:void 0,severity:"warning",rawProviderMetadata:{provider:"claude-code-sdk",transcript_event_type:"workflow",workflow_event:"hook_rows_suppressed",suppressed_after:Z}});return}if(fe>Z){e.log("claude_pipeline.hook_stop_row_suppressed",{thread_key:e.threadKey,item_key:I.itemKey,title:I.title,visible_hook_stop_rows:fe});return}}_e($,{itemKey:I.itemKey,title:I.title,body:I.body,severity:I.severity,rawProviderMetadata:I.rawProviderMetadata});return}case"agent_task_update":{let $=Ee();if($===void 0){e.log("claude_pipeline.agent_task_update_without_turn",{thread_key:e.threadKey,item_key:I.itemKey,title:I.title,raw_provider_metadata:I.rawProviderMetadata});return}let K={type:"agentTaskUpdate",id:I.itemKey,provider:"claude-code",state:I.state,title:I.title,...I.body===void 0?{}:{body:I.body},...I.progressLabel===void 0?{}:{progressLabel:I.progressLabel},rawProviderMetadata:I.rawProviderMetadata};L($,K),R("item/completed",{turnId:$.turnId,item:K});return}case"unknown":e.log("claude_pipeline.unknown_event",{thread_key:e.threadKey,item_key:I.itemKey,summary:I.summary,raw_provider_metadata:I.rawProviderMetadata});{let $=s??(e.currentSourceSeq()===void 0?void 0:P());if($===void 0)return;let K=hfe(I);L($,K),R("item/completed",{turnId:$.turnId,item:K})}return;case"turn_interrupted":{a=!1,s!==void 0&&(R("turn/aborted",{turnId:s.turnId,reason:I.reason??"Claude Code turn interrupted"}),s=void 0,v());return}case"turn_completed":{if(s===void 0&&a){a=!1,e.log("claude_pipeline.turn_completed_after_interrupt",{thread_key:e.threadKey});return}let $=P();c=I.usage??c;let K=Vq(I.body,I.bodySource);if(K!==void 0){e.log("claude_pipeline.incomplete_progress_completion",{thread_key:e.threadKey,turn_id:$.turnId,body_source:I.bodySource??"unspecified"}),B($,K);return}E($,I.body);return}case"session_completed":{if(s===void 0){a=!1;return}c=I.usage??c;let $=Vq(I.body,I.bodySource);if($!==void 0){e.log("claude_pipeline.incomplete_progress_completion",{thread_key:e.threadKey,turn_id:s.turnId,body_source:I.bodySource??"unspecified"}),B(s,$);return}E(s,I.body);return}case"session_failed":{if(s===void 0){a=!1,e.log("claude_pipeline.session_failed_without_turn",{thread_key:e.threadKey,reason:I.reason});return}_e(s,mfe(s.turnId,I)),B(s,I.reason);return}}},interruptActiveTurn:I=>s===void 0?!1:(R("turn/aborted",{turnId:s.turnId,reason:I}),s=void 0,v(),a=!0,!0),submitLifecycle:(I,$)=>{v(),l.submitLifecycle(I,$)},awaitTurnsSettled:(I=3e4)=>o.size===0?Promise.resolve():new Promise($=>{let K=setTimeout(()=>{e.log("claude_pipeline.turn_settlement_timeout",{thread_key:e.threadKey,open_turn_ids:[...o]}),$()},I);i.push(()=>{clearTimeout(K),$()})}),activeTurnId:()=>s?.turnId,lastUsage:()=>c,flush:I=>l.flushOutbox(I),metrics:()=>l.metrics(),close:I=>(v(),l.close(I)),pauseOutbox:()=>{p=!0,l.pause()},resumeOutbox:()=>{p=!1,l.resume();let I=f;I!==void 0&&e.suppressProcessingState?.()!==!0&&w(I.seq,I.reason)}}}function zy(e,n,t){return e==="agentMessage"?{type:e,id:n,content:[{type:"text",text:t}]}:{type:e,id:n,content:[t],summary:[]}}function Wq(e,n){let t=Array.isArray(e.content)?e.content:[];return n==="reasoning"?t.filter(r=>typeof r=="string").join(""):t.flatMap(r=>{let o=h(A(r)?.text);return o===void 0?[]:[o]}).join("")}function Ik(e){let n=e.match(/^assistant-stream-(\d+)$/)?.[1];return n===void 0?e:`content-block-${n}`}function Hq(e){return`reasoning-${Ik(e)}`}function lfe(e){switch(e.toolName){case"Skill":return pfe(e);case"ExitPlanMode":{let n=Nq({itemKey:e.itemKey,toolName:e.toolName,input:e.input});return n===void 0?void 0:{type:"agentStatus",id:n.itemKey,provider:"claude-code",severity:n.severity,title:n.title,...n.body===void 0?{}:{body:n.body},rawProviderMetadata:n.rawProviderMetadata}}case"TaskCreate":return gfe(e);case"TaskUpdate":return yfe(e);default:return}}function pfe(e){let n=h(e.input.skill)??"Skill",t=h(e.input.args);return{type:"agentStatus",id:`status:${e.itemKey}`,provider:"claude-code",severity:"info",title:`Skill: ${n}`,...t===void 0?{}:{body:t},rawProviderMetadata:Ek(e)}}function ffe(e,n,t){let r=h(n.skill)??"Skill";return{type:"agentStatus",id:`status:${e.itemKey}`,provider:"claude-code",severity:"error",title:`Skill: ${r}`,body:e.content,rawProviderMetadata:{provider:"claude-code-sdk",transcript_event_type:e.type,tool_name:t,tool_use_id:e.itemKey,input:n,is_error:!0}}}function mfe(e,n){return{itemKey:`status:session-failed:${e}`,title:"Claude Code stopped after API failures",body:n.reason,severity:"error",rawProviderMetadata:{provider:"claude-code-sdk",transcript_event_type:"session_failed",workflow_event:"session_failed",...n.sessionId===void 0?{}:{session_id:n.sessionId},reason:n.reason}}}function hfe(e){let n=h(e.rawProviderMetadata.sdk_message_type)??"unknown";return{type:"agentStatus",id:`unsupported:${e.itemKey}`,provider:"claude-code",severity:"warning",title:`Unsupported Claude SDK event: ${n}`,body:e.summary,rawProviderMetadata:{...e.rawProviderMetadata,diagnostic_kind:"unsupported_claude_sdk_event"}}}function gfe(e){let n=h(e.input.subject)??h(e.input.title)??"Task created",t=h(e.input.description);return{type:"agentTaskUpdate",id:`task:${e.itemKey}`,provider:"claude-code",state:"running",title:n,progressLabel:"created",...t===void 0?{}:{body:t},rawProviderMetadata:Ek(e)}}function yfe(e){let n=h(e.input.taskId)??h(e.input.task_id),t=h(e.input.status),r=h(e.input.description)??h(e.input.activeForm);return{type:"agentTaskUpdate",id:`task:${e.itemKey}`,provider:"claude-code",state:bfe(t),title:n===void 0?"Task updated":`Task ${n}`,...r===void 0?{}:{body:r},...t===void 0?{}:{progressLabel:t},rawProviderMetadata:Ek(e)}}function xfe(e,n,t){let r=h(n.taskId)??h(n.task_id),o=h(n.subject)??h(n.title)??(r===void 0?`${t} failed`:`Task ${r}`);return{type:"agentTaskUpdate",id:`task:${e.itemKey}`,provider:"claude-code",state:"failed",title:o,progressLabel:"failed",...e.content===""?{}:{body:e.content},rawProviderMetadata:{tool_name:t,tool_use_id:e.itemKey,input:n,is_error:!0}}}function _fe(e,n,t){return{type:"agentStatus",id:`status:${e.itemKey}`,provider:"claude-code",severity:"error",title:`${t} failed`,...e.content===""?{}:{body:e.content},rawProviderMetadata:{provider:"claude-code-sdk",transcript_event_type:e.type,tool_name:t,tool_use_id:e.itemKey,input:n,is_error:!0}}}function bfe(e){switch(e){case"pending":return"queued";case"in_progress":return"running";case"blocked":return"blocked";case"completed":return"succeeded";case"failed":case"error":return"failed";case"cancelled":case"canceled":return"cancelled";default:return"unknown"}}function Ek(e){return{provider:"claude-code-sdk",transcript_event_type:e.type,tool_name:e.toolName,tool_use_id:e.itemKey,input:e.input}}function Rk(e){switch(e){case"Edit":case"MultiEdit":case"Write":case"NotebookEdit":return!0;default:return!1}}function Gq(e){return e==="WebSearch"||e==="WebFetch"}function Tk(e){return e==="Skill"||kk(e)}function Zq(e){return e==="TodoWrite"||nz(e)}function nz(e){return e==="TaskCreate"||e==="TaskUpdate"}function wfe(e,n,t){if(!Rk(e))return;let r=h(n.file_path)??h(n.filePath)??h(n.notebook_path);if(!(r===void 0||r.trim()===""))try{return ofe(ife(r)?r:sfe(t,r))}catch{return}}function Qq(e,n,t={}){let r=h(n.file_path)??h(n.filePath)??h(n.notebook_path);if(!(r===void 0||r.trim()===""))switch(e){case"Write":{let o=t.targetExistedAtCall===!1?`*** Add File: ${r}`:`*** Update File: ${r}`,i=h(n.content)??"";return Ny(o,Uy(i,"+"))}case"Edit":{let o=h(n.old_string)??"",i=h(n.new_string)??"";return Ny(`*** Update File: ${r}`,Xq(o,i))}case"MultiEdit":{let i=(Array.isArray(n.edits)?n.edits:[]).flatMap(s=>{let a=A(s);return a===void 0?[]:[Xq(h(a.old_string)??"",h(a.new_string)??"")]});return i.length===0?void 0:Ny(`*** Update File: ${r}`,i.join(`
653
653
  @@
654
654
  `))}case"NotebookEdit":{let o=h(n.new_source)??"";return Ny(`*** Update File: ${r}`,Uy(o,"+"))}default:return}}function Xq(e,n){let t=e===""?[]:[Uy(e,"-")],r=n===""?[]:[Uy(n,"+")];return[...t,...r].join(`
655
655
  `)}function Uy(e,n){return e.split(`
@@ -1470,19 +1470,19 @@ To kick the agent off:
1470
1470
  `,L=Buffer.byteLength(P,"utf8");if(L>s)return l("runner_diagnostics.spool_entry_dropped",{reason:"entry_too_large",entry_bytes:L,max_entry_bytes:s}),!1;Xve(n,{recursive:!0}),m(u)+L>i&&f(),_(L);let D=w()?`
1471
1471
  `:"";return Gve(u,`${D}${P}`,"utf8"),!0}catch(R){return l("runner_diagnostics.spool_failed",{error:R instanceof Error?R.message:String(R)}),!1}},v=k=>{let R=[],P=eSe(k,"utf8");for(let L of P.split(`
1472
1472
  `))if(L.trim()!=="")try{let D=JSON.parse(L);D!==null&&typeof D=="object"&&R.push({parsed:D,raw:L})}catch{}return R};return{append:S,drain:async k=>{if(c)return{uploadedBatches:0,uploadedEntries:0,remainingBatches:p().length,skipped:!0};c=!0;let R=0,P=0;try{f(),_(0);let L=a()-o;for(let D of p()){let j;try{j=v(D)}catch(Z){l("runner_diagnostics.spool_batch_unreadable",{file:D,error:Z instanceof Error?Z.message:String(Z)}),y(D,"unreadable");continue}let q=j.filter(Z=>{let fe=ySe(Z.parsed);return fe===void 0||fe>=L});if(q.length===0){y(D,"empty_or_expired");continue}let E=XT(D,".jsonl"),B=q.map(Z=>Z.raw).join(`
1473
- `),z=q.map(Z=>Z.parsed.spooled_at).filter(Z=>typeof Z=="string"),W={bundle_name:"runner-diagnostics-spool",exported_at:new Date(a()).toISOString(),idempotency_key:E,diagnostics:{kind:"runner_diagnostic_log",spool_batch:!0,idempotency_key:E,entry_count:q.length,...z.length===0?{}:{first_spooled_at:z[0],last_spooled_at:z[z.length-1]}},telemetry_ndjson:B};try{await k(W)}catch(Z){l("runner_diagnostics.spool_upload_failed",{file:D,remaining_batches:p().length,error:Z instanceof Error?Z.message:String(Z)});break}R+=1,P+=q.length;try{s9(D)}catch(Z){l("runner_diagnostics.spool_delete_failed",{file:D,error:Z instanceof Error?Z.message:String(Z)})}}}catch(L){l("runner_diagnostics.spool_drain_failed",{error:L instanceof Error?L.message:String(L)})}finally{c=!1}return{uploadedBatches:R,uploadedEntries:P,remainingBatches:p().length,skipped:!1}},pendingBatchFiles:p}}var sSe,aSe,dSe,uSe,cSe,a9,pSe,fSe,u9=F(()=>{"use strict";Zy();sSe=32*1024*1024,aSe=10080*60*1e3,dSe=4*1024*1024,uSe=1024*1024,cSe="spool.jsonl",a9=/^batch-(\d{1,16})-[0-9a-f-]+\.jsonl$/;pSe=/\b([A-Z][A-Z0-9_]{1,})=("[^"\n]*"|'[^'\n]*'|[^\s"'`;,)\]}]+)/g,fSe=/(?:\/(?:[A-Za-z0-9._@~+-]|%[0-9A-Fa-f]{2})+){2,}/g});var jt,eP,ea=F(()=>{"use strict";jt="1.0.98",eP=`linzumi ${jt}`});import{closeSync as l9,existsSync as tP,mkdirSync as xSe,openSync as p9,readFileSync as f9,renameSync as _Se,unlinkSync as md,writeFileSync as bSe,writeSync as m9}from"node:fs";import{dirname as h9,join as wSe}from"node:path";function rP(e){return e instanceof hs||e instanceof Error&&e.name===y9&&"lockPath"in e&&"heldBy"in e}function oP(e,n=Vn(),t){let r=t===void 0?encodeURIComponent(e):ad(t);return wSe(h9(n),"runners",`${r}.lock`)}function s0(e){let n=oP(e.machineId,e.configPath,e.linzumiUrl),t=e.isPidAlive??k9,r=e.now??(()=>new Date),o=e.killPid??OSe,i=r().toISOString(),s={version:1,machineId:e.machineId,runnerId:e.runnerId,pid:e.pid??process.pid,cwd:e.cwd,workspace:e.workspace,...e.linzumiUrl===void 0?{}:{linzumiUrl:Fn(e.linzumiUrl)},...e.launchSource===void 0?{}:{launchSource:e.launchSource},startedAt:i,heartbeatAt:i,cliVersion:e.cliVersion??jt,...e.gracefulUpdateDrain===!0?{gracefulUpdateDrain:!0}:{}};CSe(e.machineId,e.configPath,e.linzumiUrl,t,r,o,e.onTakeover),TSe(n,s,t,r,o,e.onTakeover,e.beforeReadExistingLock,e.beforeReplaceStaleLock);let a=()=>x9(n,s,r),d=setInterval(a,g9);return d.unref(),{path:n,record:s,heartbeat:a,release:()=>{clearInterval(d),v9(n,s)}}}function x9(e,n,t){try{let r=d0(e);if(r===void 0||r.machineId!==n.machineId||r.runnerId!==n.runnerId||r.pid!==n.pid||r.startedAt!==n.startedAt)return;let o={...r,heartbeatAt:t().toISOString()},i=`${e}.tmp`;bSe(i,`${JSON.stringify(o,null,2)}
1473
+ `),z=q.map(Z=>Z.parsed.spooled_at).filter(Z=>typeof Z=="string"),W={bundle_name:"runner-diagnostics-spool",exported_at:new Date(a()).toISOString(),idempotency_key:E,diagnostics:{kind:"runner_diagnostic_log",spool_batch:!0,idempotency_key:E,entry_count:q.length,...z.length===0?{}:{first_spooled_at:z[0],last_spooled_at:z[z.length-1]}},telemetry_ndjson:B};try{await k(W)}catch(Z){l("runner_diagnostics.spool_upload_failed",{file:D,remaining_batches:p().length,error:Z instanceof Error?Z.message:String(Z)});break}R+=1,P+=q.length;try{s9(D)}catch(Z){l("runner_diagnostics.spool_delete_failed",{file:D,error:Z instanceof Error?Z.message:String(Z)})}}}catch(L){l("runner_diagnostics.spool_drain_failed",{error:L instanceof Error?L.message:String(L)})}finally{c=!1}return{uploadedBatches:R,uploadedEntries:P,remainingBatches:p().length,skipped:!1}},pendingBatchFiles:p}}var sSe,aSe,dSe,uSe,cSe,a9,pSe,fSe,u9=F(()=>{"use strict";Zy();sSe=32*1024*1024,aSe=10080*60*1e3,dSe=4*1024*1024,uSe=1024*1024,cSe="spool.jsonl",a9=/^batch-(\d{1,16})-[0-9a-f-]+\.jsonl$/;pSe=/\b([A-Z][A-Z0-9_]{1,})=("[^"\n]*"|'[^'\n]*'|[^\s"'`;,)\]}]+)/g,fSe=/(?:\/(?:[A-Za-z0-9._@~+-]|%[0-9A-Fa-f]{2})+){2,}/g});var jt,eP,ea=F(()=>{"use strict";jt="1.0.100",eP=`linzumi ${jt}`});import{closeSync as l9,existsSync as tP,mkdirSync as xSe,openSync as p9,readFileSync as f9,renameSync as _Se,unlinkSync as md,writeFileSync as bSe,writeSync as m9}from"node:fs";import{dirname as h9,join as wSe}from"node:path";function rP(e){return e instanceof hs||e instanceof Error&&e.name===y9&&"lockPath"in e&&"heldBy"in e}function oP(e,n=Vn(),t){let r=t===void 0?encodeURIComponent(e):ad(t);return wSe(h9(n),"runners",`${r}.lock`)}function s0(e){let n=oP(e.machineId,e.configPath,e.linzumiUrl),t=e.isPidAlive??k9,r=e.now??(()=>new Date),o=e.killPid??OSe,i=r().toISOString(),s={version:1,machineId:e.machineId,runnerId:e.runnerId,pid:e.pid??process.pid,cwd:e.cwd,workspace:e.workspace,...e.linzumiUrl===void 0?{}:{linzumiUrl:Fn(e.linzumiUrl)},...e.launchSource===void 0?{}:{launchSource:e.launchSource},startedAt:i,heartbeatAt:i,cliVersion:e.cliVersion??jt,...e.gracefulUpdateDrain===!0?{gracefulUpdateDrain:!0}:{}};CSe(e.machineId,e.configPath,e.linzumiUrl,t,r,o,e.onTakeover),TSe(n,s,t,r,o,e.onTakeover,e.beforeReadExistingLock,e.beforeReplaceStaleLock);let a=()=>x9(n,s,r),d=setInterval(a,g9);return d.unref(),{path:n,record:s,heartbeat:a,release:()=>{clearInterval(d),v9(n,s)}}}function x9(e,n,t){try{let r=d0(e);if(r===void 0||r.machineId!==n.machineId||r.runnerId!==n.runnerId||r.pid!==n.pid||r.startedAt!==n.startedAt)return;let o={...r,heartbeatAt:t().toISOString()},i=`${e}.tmp`;bSe(i,`${JSON.stringify(o,null,2)}
1474
1474
  `,"utf8"),_Se(i,e)}catch{}}function hd(e,n,t){if(!n(e.pid))return{state:"dead"};let r=e.heartbeatAt??e.startedAt,o=Date.parse(r);return Number.isNaN(o)||t().getTime()-o>vSe?{state:"wedged",reason:e.heartbeatAt===void 0?"missing_heartbeat":"stale_heartbeat"}:{state:"live"}}function _9(e,n,t,r){return t!==a0||e.launchSource!==a0?!1:r.state!=="live"?!0:SSe(n,e.cliVersion)>0}function SSe(e,n){let t=c9(e),r=c9(n);for(let o=0;o<3;o++){let i=t.core[o],s=r.core[o];if(i===void 0||s===void 0)throw new Error(`compareCliVersions: unexpected undefined at core index ${o}`);if(i!==s)return i>s?1:-1}return t.prerelease.length===0&&r.prerelease.length===0?0:t.prerelease.length===0?1:r.prerelease.length===0?-1:kSe(t.prerelease,r.prerelease)}function c9(e){let n=e.trim().replace(/^v/i,"").split("+",1)[0]??"",t=n.indexOf("-"),r=t===-1?n:n.slice(0,t),o=t===-1?"":n.slice(t+1),i=r.split("."),s=[nP(i[0]),nP(i[1]),nP(i[2])],a=o===""?[]:o.split(".").filter(d=>d!=="");return{core:s,prerelease:a}}function nP(e){let n=Number.parseInt(e??"",10);return Number.isInteger(n)&&n>=0?n:0}function kSe(e,n){let t=Math.max(e.length,n.length);for(let r=0;r<t;r++){let o=e[r],i=n[r];if(o===void 0)return-1;if(i===void 0)return 1;let s=Number.parseInt(o,10),a=Number.parseInt(i,10),d=s.toString()===o,u=a.toString()===i;if(d&&u){if(s!==a)return s>a?1:-1}else{if(d!==u)return d?-1:1;if(o!==i)return o>i?1:-1}}return 0}function b9(e,n,t,r,o){try{r(n.pid)}catch(i){let s=i!==null&&typeof i=="object"&&"code"in i?i.code:void 0;if(s!=="ESRCH")throw s==="EPERM"||s==="EACCES"?new Error(`Cannot take over the runner lock at ${e}: its holder process (pid ${n.pid}) is owned by another user and cannot be stopped. Stop that process, or remove the lock file, then retry.`):i}o?.({lockPath:e,holderPid:n.pid,holderRunnerId:n.runnerId,reason:t})}function CSe(e,n,t,r,o,i,s){if(t===void 0||yr(t)!==yr(Bt))return;let a=oP(e,n),d=d0(a);if(d!==void 0){if(hd(d,r,o).state==="live")throw new hs(a,d);w9(a,r,()=>{let u=tP(a)?iP(a):void 0;if(u===void 0)return;let c=hd(u,r,o);if(c.state==="live")throw new hs(a,u);c.state==="wedged"&&b9(a,u,c.reason,i,s),md(a)})}}function TSe(e,n,t,r,o,i,s,a){if(i0(e,n))return;s?.();let d=d0(e);if(d===void 0){if(i0(e,n))return;throw new Error(`another Linzumi runner lock appeared while starting: ${e}`)}if(hd(d,t,r).state==="live")throw new hs(e,d);a?.(),w9(e,t,()=>{let u=tP(e)?iP(e):void 0;if(u!==void 0){let c=hd(u,t,r);if(c.state==="live")throw new hs(e,u);c.state==="wedged"&&b9(e,u,c.reason,o,i),md(e)}if(!i0(e,n))throw new Error(`another Linzumi runner lock appeared while starting: ${e}`)})}function i0(e,n){xSe(h9(e),{recursive:!0});try{let t=p9(e,"wx");try{m9(t,`${JSON.stringify(n,null,2)}
1475
1475
  `)}finally{l9(t)}return!0}catch(t){if(zc(t,"EEXIST"))return!1;throw t}}function w9(e,n,t){let r=`${e}.replace`;for(;;)try{let o=p9(r,"wx");try{m9(o,`${process.pid}
1476
1476
  `),t()}finally{l9(o),md(r)}return}catch(o){if(zc(o,"EEXIST")){let i=PSe(r);if(i===void 0)continue;if(n(i))throw new Error(["another Linzumi runner is already replacing a stale runner lock",`lock: ${e}`,"Wait for that startup to finish, then retry."].join(`
1477
1477
  `));md(r);continue}throw o}}function PSe(e){let n;try{n=f9(e,"utf8").trim()}catch(r){if(zc(r,"ENOENT"))return;throw r}let t=Number.parseInt(n,10);if(t.toString()!==n||t<=0)throw new Error(`invalid Linzumi runner replacement lock: ${e}`);return t}function v9(e,n){let t=ISe(e);t!==void 0&&t.machineId===n.machineId&&t.runnerId===n.runnerId&&t.pid===n.pid&&md(e)}function ISe(e){return fd(e)}function RSe(e){return`${e}.incoming.lock`}function S9(e){let n=oP(e.machineId,e.configPath,e.linzumiUrl),t=e.isPidAlive??k9,r=fd(n);if(!(r!==void 0&&r.pid===e.handoffHolderPid&&t(r.pid))){let w=s0(e);return{path:w.path,record:w.record,heartbeat:w.heartbeat,release:w.release,promote:()=>!0,promoted:()=>!0}}let i=RSe(n),s=e.now??(()=>new Date),a=s().toISOString(),d={version:1,machineId:e.machineId,runnerId:e.runnerId,pid:e.pid??process.pid,cwd:e.cwd,workspace:e.workspace,...e.linzumiUrl===void 0?{}:{linzumiUrl:Fn(e.linzumiUrl)},...e.launchSource===void 0?{}:{launchSource:e.launchSource},startedAt:a,heartbeatAt:a,cliVersion:e.cliVersion??jt,...e.gracefulUpdateDrain===!0?{gracefulUpdateDrain:!0}:{}},u=fd(i);if(u!==void 0){if(t(u.pid))throw new hs(i,u);try{md(i)}catch{}}if(!i0(i,d)){let w=fd(i);throw new hs(i,w??{...d,pid:-1})}let c=!1,l=i,p=()=>x9(l,d,s),m=setInterval(p,g9);m.unref();let f=()=>{clearInterval(m);try{v9(i,d)}catch{}},y=p;return{get path(){return l},record:d,heartbeat:()=>y(),release:()=>f(),promote:()=>{if(c)return!0;let w=fd(n);if(w!==void 0&&w.pid===e.handoffHolderPid&&t(w.pid)||w!==void 0&&w.pid!==e.handoffHolderPid&&t(w.pid)&&hd(w,t,s).state==="live")return!1;try{let S=s0(e);c=!0,l=S.path,clearInterval(m);try{md(i)}catch{}return f=S.release,y=S.heartbeat,!0}catch(S){if(rP(S))return!1;throw S}},promoted:()=>c}}function fd(e){try{return d0(e)}catch{return}}function d0(e){if(tP(e))try{return iP(e)}catch(n){if(zc(n,"ENOENT"))return;throw n}}function iP(e){let n=JSON.parse(f9(e,"utf8"));if(!ESe(n))throw new Error(`invalid Linzumi runner lock: ${e}`);return n}function ESe(e){return typeof e=="object"&&e!==null&&e.version===1&&typeof e.machineId=="string"&&e.machineId.trim()!==""&&typeof e.runnerId=="string"&&e.runnerId.trim()!==""&&Number.isInteger(e.pid)&&e.pid>0&&typeof e.cwd=="string"&&e.cwd.trim()!==""&&ASe(e.workspace)&&MSe(e.linzumiUrl)&&typeof e.startedAt=="string"&&e.startedAt.trim()!==""&&DSe(e.heartbeatAt)&&typeof e.cliVersion=="string"&&e.cliVersion.trim()!==""}function DSe(e){return e===void 0||typeof e=="string"&&e.trim()!==""}function MSe(e){return e===void 0||typeof e=="string"&&e.trim()!==""}function ASe(e){return e===null||typeof e=="string"&&e.trim()!==""}function k9(e){try{return process.kill(e,0),!0}catch(n){return!zc(n,"ESRCH")}}function OSe(e){try{process.kill(e,"SIGKILL")}catch(n){if(!zc(n,"ESRCH"))throw n}}function $Se(e,n){let t=n.workspace===null?"workspace: unknown":`workspace: ${n.workspace}`,r=n.linzumiUrl===void 0?void 0:`linzumi url: ${LSe(n.linzumiUrl)}`;return[`Another linzumi connect for runner ${n.runnerId} is already running (pid ${n.pid}). Stop it first.`,n.linzumiUrl===void 0?"lock scope: this machine":"lock scope: this Linzumi URL",...r===void 0?[]:[r],`runner id: ${n.runnerId}`,`pid: ${n.pid}`,`cwd: ${n.cwd}`,t,`CLI version: ${n.cliVersion}`,`started at: ${n.startedAt}`,`lock: ${e}`,"Stop that process first, then retry. If the process has already exited, remove the stale lock file and retry.","A runner whose lock heartbeat goes stale (no update for 3 minutes) is taken over automatically on the next connect."].join(`
1478
1478
  `)}function LSe(e){return e===yr(Bt)?Bt:yr(e)===yr(Bt)?Bt:e}function zc(e,n){return typeof e=="object"&&e!==null&&"code"in e&&e.code===n}var g9,vSe,y9,hs,a0,C9=F(()=>{"use strict";Qs();wo();ki();ea();g9=3e4,vSe=3*6e4,y9="RunnerLockHeldError",hs=class extends Error{lockPath;heldBy;constructor(n,t){super($Se(n,t)),this.name=y9,this.lockPath=n,this.heldBy=t}};a0="electron_auto_connect"});function dP(e=process.env){let n=e[jSe]?.trim().toLowerCase();return n==="1"||n==="true"}function qSe(e=process.env){let n=e[sP]?.trim();if(n===void 0||n==="")return;let t=Number(n);return Number.isInteger(t)&&t>=1?t:void 0}function zSe(e=process.env){let n=e[aP]?.trim();if(n===void 0||n==="")return;let t=Number(n);return Number.isInteger(t)&&t>0?t:void 0}function I9(e=process.env){let n=e[FSe]?.trim();if(n===void 0||n==="")return T9;let t=Number(n);return!Number.isFinite(t)||t<=0?T9:Math.max(Math.floor(t),1e3)}function P9(){let e=new Set;return{pin:n=>{n!==""&&e.add(n)},release:n=>e.delete(n),isPinned:n=>e.has(n),replaceAll:n=>{let t=new Set(n.filter(o=>o!=="")),r=[...e].filter(o=>!t.has(o));e.clear();for(let o of t)e.add(o);return r},clear:()=>{let n=[...e];return e.clear(),n},snapshot:()=>[...e],size:()=>e.size}}function NSe(e){return e.threadId===void 0||e.threadId===""?"handle":e.role==="outgoing"?e.isPinned(e.threadId)?"handle":"defer_to_incoming":e.isPinned(e.threadId)?"defer_until_unpinned":"handle"}function uP(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let n=e,t=n.type;if(typeof t!="string")return;let r=i=>typeof i=="number"&&Number.isInteger(i)&&i>=1?i:void 0,o=i=>Array.isArray(i)&&i.every(s=>typeof s=="string"&&s!=="")?i:void 0;switch(t){case"generation_ready":{let i=r(n.epoch);return i===void 0?void 0:{type:t,epoch:i}}case"generation_overlap_drain":{let i=r(n.incomingEpoch);return i===void 0?void 0:{type:t,incomingEpoch:i}}case"generation_overlap_abort":return{type:t};case"generation_pin_snapshot":{let i=r(n.epoch),s=o(n.threadIds);return i===void 0||s===void 0?void 0:{type:t,epoch:i,threadIds:s}}case"generation_pin_released":{let i=r(n.epoch),s=n.threadId;return i===void 0||typeof s!="string"||s===""?void 0:{type:t,epoch:i,threadId:s}}case"generation_pins_update":{let i=o(n.threadIds);return i===void 0?void 0:{type:t,threadIds:i}}case"generation_promote":return{type:t};default:return}}function Nc(e){return{...e}}function R9(e){let n=e.env??process.env;if(!dP(n))return;let t=qSe(n);if(t===void 0)return;let r=zSe(n),o=e.send??(p=>{if(typeof process.send!="function")return!1;try{return process.send(p)}catch{return!1}}),i=P9(),s=P9(),a=!1,d=!1,u=r===void 0,c={onOverlapDrain:()=>{},onOverlapAbort:()=>{},onPinsReleased:()=>{},onPromote:()=>{}};return{epoch:t,handoffFromPid:r,hooks:c,outgoingDrainActive:()=>a,outgoingPins:i,incomingPins:s,pinsKnown:()=>d,currentRole:()=>a?"outgoing":u?void 0:"incoming",requestUpdateDrain:()=>{},cancelUpdateDrain:()=>!1,promoteRunnerLock:()=>!0,handleIpcMessage:p=>{let m=uP(p);if(m!==void 0)switch(m.type){case"generation_overlap_drain":{if(a){e.log("runner.generation_overlap_drain_ignored",{incomingEpoch:m.incomingEpoch});return}e.log("runner.generation_overlap_drain_received",{epoch:t,incomingEpoch:m.incomingEpoch}),a=!0,c.onOverlapDrain(m.incomingEpoch);return}case"generation_overlap_abort":{if(!a)return;let f=i.clear();a=!1,e.log("runner.generation_overlap_aborted",{epoch:t,releasedPins:f.length}),c.onOverlapAbort();return}case"generation_pins_update":{let f=s.replaceAll(m.threadIds),y=!d;d=!0,e.log("runner.generation_pins_updated",{epoch:t,pinCount:s.size(),released:f.length,firstUpdate:y}),c.onPinsReleased(f);return}case"generation_promote":{if(u)return;u=!0,d=!0;let f=s.clear();e.log("runner.generation_promoted",{epoch:t,releasedPins:f.length}),c.onPromote(),c.onPinsReleased(f);return}default:return}},sendToSupervisor:p=>o(Nc(p)),beginOutgoingDrain:p=>{a=!0;for(let m of p)i.pin(m)}}}function E9(e){let n=[],t=new Map,r=(s,a)=>{let d=e.runtime.currentRole(),u=e.threadIdOf(s),c=d===void 0?"handle":d==="incoming"&&!e.runtime.pinsKnown()?u===void 0?"handle":"defer_until_unpinned":NSe({role:d,threadId:u,isPinned:d==="outgoing"?m=>e.runtime.outgoingPins.isPinned(m):m=>e.runtime.incomingPins.isPinned(m)});if(c==="handle"){e.dispatch(s,a);return}if(c==="defer_to_incoming"){n.push({control:s,ack:a}),e.log("runner.generation_control_deferred_to_incoming",{controlType:e.controlTypeOf(s),threadId:u??null,held:n.length});return}let l=u??"",p=t.get(l)??[];p.push({control:s,ack:a}),t.set(l,p),e.log("runner.generation_control_deferred_until_unpinned",{controlType:e.controlTypeOf(s),threadId:l,held:p.length,pinsKnown:e.runtime.pinsKnown()})};return{dispatch:r,dispatchUnpinned:()=>{let s=0;for(let[a,d]of[...t.entries()])if(!(e.runtime.currentRole()==="incoming"&&(!e.runtime.pinsKnown()||e.runtime.incomingPins.isPinned(a)))){t.delete(a);for(let c of d)s+=1,r(c.control,c.ack)}return s>0&&e.log("runner.generation_deferred_controls_dispatched",{dispatched:s}),s},redispatchDeferredToIncoming:()=>{let s=n.splice(0);for(let a of s)r(a.control,a.ack);return s.length>0&&e.log("runner.generation_deferred_controls_redispatched",{dispatched:s.length}),s.length},heldCounts:()=>({deferredToIncoming:n.length,deferredPinned:[...t.values()].reduce((s,a)=>s+a.length,0)})}}function D9(e,n){return{...e,onAdvance:(t,r)=>{n()||e.onAdvance(t,r)},...e.reset===void 0?{}:{reset:(t,r)=>{n()||e.reset?.(t,r)}},flush:()=>{n()||e.flush()}}}var jSe,sP,aP,FSe,T9,cP=F(()=>{"use strict";jSe="LINZUMI_GENERATION_OVERLAP",sP="LINZUMI_GENERATION_EPOCH",aP="LINZUMI_GENERATION_HANDOFF_PID",FSe="LINZUMI_GENERATION_STILLBORN_WINDOW_MS",T9=12e4});function L9(e){return new Promise(n=>{setTimeout(n,e)})}function USe(e){let n="=".repeat(64);return["",n,"ERROR: linzumi connect could not start - workspace already in use",n,e,n,""].join(`
1479
1479
  `)}function F9(e){return e instanceof Jf||e instanceof Error&&e.name===j9}function q9(e){return e!==void 0}async function lP(e){let n=USe(e.baseMessage);return e.takeOverWithoutPrompt?(e.prompt.writeReport(n),await M9(e.holder,e.lockPath,e.takeover),{outcome:"take_over"}):e.prompt.isInteractive()?(e.prompt.writeReport(n),await e.prompt.promptYesNo(`Another runner (pid ${e.holder.pid}) is already connected to this workspace. Stop it and run here instead? [y/N] `)?(await M9(e.holder,e.lockPath,e.takeover),{outcome:"take_over"}):{outcome:"declined",report:n}):(e.prompt.writeReport(n),{outcome:"declined",report:n})}async function M9(e,n,t){if(t.log("runner.lock_takeover_requested",{holderPid:e.pid,holderRunnerId:e.runnerId,lockPath:n}),!t.isPidAlive(e.pid)){t.log("runner.lock_takeover_holder_already_gone",{holderPid:e.pid,lockPath:n});return}if(!O9(t,e)){t.log("runner.lock_takeover_owner_changed",{holderPid:e.pid,lockPath:n});return}if($9(t,e.pid,"SIGTERM"),await A9(e,t,1e4)){t.log("runner.lock_takeover_graceful",{holderPid:e.pid,lockPath:n});return}if(!O9(t,e)){t.log("runner.lock_takeover_owner_changed",{holderPid:e.pid,lockPath:n});return}if(t.log("runner.lock_takeover_escalating_sigkill",{holderPid:e.pid,lockPath:n}),$9(t,e.pid,"SIGKILL"),await A9(e,t,5e3)){t.log("runner.lock_takeover_forceful",{holderPid:e.pid,lockPath:n});return}throw new Error(`Could not stop the runner holding this workspace (pid ${e.pid}). It did not exit after SIGTERM and SIGKILL within the timeout. Stop it manually or remove the lock file (${n}) and retry.`)}async function A9(e,n,t){let r=n.now()+t;for(;n.now()<r;){if(!n.isPidAlive(e.pid)||n.lockReleased())return!0;await n.sleep(200)}return!n.isPidAlive(e.pid)||n.lockReleased()}function O9(e,n){let t=e.currentLockOwner();return t!==void 0&&t.machineId===n.machineId&&t.runnerId===n.runnerId&&t.pid===n.pid&&t.startedAt===n.startedAt}function $9(e,n,t){try{e.signalPid(n,t)}catch(r){let o=r!==null&&typeof r=="object"&&"code"in r?r.code:void 0;o!=="ESRCH"&&e.log("runner.lock_takeover_signal_failed",{holderPid:n,signal:t,code:typeof o=="string"?o:null,message:r instanceof Error?r.message:String(r)})}}var j9,Jf,pP=F(()=>{"use strict";j9="RunnerLockConflictReportedError",Jf=class extends Error{constructor(){super(""),this.name=j9}}});import BSe from"blessed";function JSe(e){if(e.indexOf("%;")===-1)return e;let n=0,t="",r=0;for(;r<e.length;){let o=e[r],i=e[r+1];if(o==="%"&&i==="%"){t+="%%",r+=2;continue}if(o==="%"&&i==="?"){n+=1,t+="%?",r+=2;continue}if(o==="%"&&i===";"){n>0&&(n-=1,t+="%;"),r+=2;continue}t+=o,r+=1}return t}function N9(e=BSe){let t=e.Tput?.prototype,r=t?._compile;if(t===void 0||typeof r!="function"||t[z9]===!0)return;let o=function(s,a,d){let u=typeof d=="string"?JSe(d):d;return r.call(this,s,a,u)};t._compile=o,Object.defineProperty(t,z9,{value:!0,enumerable:!1,configurable:!0,writable:!0})}var z9,U9=F(()=>{"use strict";z9="__linzumiSetulcShimInstalled"});function B9(e){return e===void 0?!1:(e.unicode=!0,e.features!==void 0&&(e.features.unicode=!0),e.brokenACS=!0,!0)}function J9(e){if(e===void 0)return;let n=e.tput,t=e.program?.tput;if(n===void 0&&t===void 0){console.warn("[blessedAcsCharsetShim] screen has no tput; ACS charset fix was NOT applied - dynamic cells may render garbled");return}B9(n),t!==void 0&&t!==n&&B9(t)}var K9=F(()=>{"use strict"});var V9,KSe,Kf,VSe,W9,H9=F(()=>{"use strict";V9=Symbol.for("linzumi.blessedPartialScreenCrashGuard"),KSe=e=>{console.warn(e)},Kf=(e,n)=>{n===void 0||process.removeListener(e,n)},VSe=(e,n)=>{let t=e.instances.indexOf(n);t===-1||(e.instances.splice(t,1),e.total-=1),e.global=e.instances[0]??null,e.total===0&&(Kf("uncaughtException",e._exceptionHandler),Kf("SIGTERM",e._sigtermHandler),Kf("SIGINT",e._sigintHandler),Kf("SIGQUIT",e._sigquitHandler),Kf("exit",e._exitHandler),delete e._exceptionHandler,delete e._sigtermHandler,delete e._sigintHandler,delete e._sigquitHandler,delete e._exitHandler,delete e._bound),n.destroyed=!0},W9=(e,n={})=>{let t=e.prototype;switch(t[V9]){case!0:return;case void 0:break}let r=t.destroy;t[V9]=!0,t.destroy=function(){switch(this.program){case null:case void 0:(n.warn??KSe)({event:"runner.tui_partial_screen_teardown",branch:"screen_destroy_missing_program",program_present:!1,action:"cleanup_partial_screen_registration"}),VSe(e,this);break;default:r.call(this);break}}}});function Z9(e){switch(e){case"SIGTERM":return"SIGTERM";case"SIGINT":return"SIGINT";case"SIGHUP":return"SIGHUP";default:return"unknown"}}function u0(e){if(e===null||typeof e!="object")return;let n=e.code;if(typeof n=="string"&&WSe.has(n))return n;let t=e.message;if(typeof t=="string"){let r=t.match(/\b(EIO|ENOTTY|EBADF|ENXIO|ENODEV)\b/);if(r!==null)return r[1]}}function gs(e,n,t){try{(e.audit??me)(n,t)}catch{}try{e.log?.(n,t)}catch{}}function Q9(e,n={}){let t=e.setRawMode;if(typeof t!="function")return!1;let r=e;if(r[G9]===!0)return!0;let o=n.sinks??{},i=n.context??{};return e.setRawMode=function(a){try{return t.call(this??e,a)}catch(d){let u=u0(d);if(u===void 0)throw d;return gs(o,"runner.tui_teardown_tty_error",{stage:"set_raw_mode",code:u,message:d instanceof Error?d.message:String(d),requested_raw_mode:a,swallowed:!0,...i}),e}},r[G9]=!0,!0}function X9(e,n,t={}){let r=t.exit??(o=>process.exit(o));try{r(e)}catch(o){let i=u0(o),s=t.reap??Ua,a=-1,d=!1;try{a=s(t.kill??process.kill,"exit_handler_threw"),d=!0}catch{}gs(t.sinks??{},"runner.tui_teardown_tty_error",{stage:"process_exit_handler",code:i??null,message:o instanceof Error?o.message:String(o),trigger:n.trigger,stdin_was_tty_at_start:n.stdinWasTty,stdout_was_tty_at_start:n.stdoutWasTty,swallowed:!0,child_reap_completed:d,reaped_children:a,exit_code:e}),r(e)}}var WSe,G9,c0=F(()=>{"use strict";_p();Ut();WSe=new Set(["EIO","ENOTTY","EBADF","ENXIO","ENODEV"]);G9=Symbol.for("linzumi.setRawModeGoneTtyGuard")});function Y9(e){if(typeof e!="function")return;let n=e;if(!(!Array.isArray(n.instances)||typeof n.total!="number"))return n}function Vf(e,n){if(typeof n=="function")try{process.removeListener(e,n)}catch{}}function HSe(e,n){try{let t=e.instances.indexOf(n);return t===-1?!1:(e.instances.splice(t,1),e.total-=1,e.global=e.instances[0],e.total===0&&(e.global=null,Vf("uncaughtException",e._exceptionHandler),Vf("SIGTERM",e._sigtermHandler),Vf("SIGINT",e._sigintHandler),Vf("SIGQUIT",e._sigquitHandler),Vf("exit",e._exitHandler),delete e._exceptionHandler,delete e._sigtermHandler,delete e._sigintHandler,delete e._sigquitHandler,delete e._exitHandler,delete e._bound),!0)}catch{return!1}}function GSe(e,n,t,r){let o=0;for(let i of e.instances.slice()){if(n.has(i))continue;let s=i.program===void 0,a;if(!s&&typeof i.destroy=="function")try{i.destroy()}catch(d){a=d}HSe(e,i),o+=1,gs(t,"runner.tui_stranded_screen_swept",{partial_construction:s,destroy_error:a===void 0?null:a instanceof Error?a.message:String(a),...r})}return o}function e3(e,n,t={}){let r=t.sinks??{},o=t.context??{},i=new Set(e?.instances??[]);try{return n()}catch(s){let a=e===void 0?0:GSe(e,i,r,o);throw gs(r,"runner.tui_screen_construction_failed",{message:s instanceof Error?s.message:String(s),stack:s instanceof Error?s.stack??null:null,swept_screens:a,...o}),s}}var n3=F(()=>{"use strict";c0()});import ta from"blessed";function p3(e){return e.includes(p0)?e.replace(rke,"").replace(oke,"").includes(p0):!1}function ike(e){return typeof e=="object"&&e!==null&&e.name==="escape"}function r3(e){return e.mode.type==="table"?!1:(e.mode={type:"table"},!0)}function dke(e){return ske.test(e)}function f3(e){if(!e.includes(p0))return[];let n=[];for(let t of e.matchAll(ake))n.push(t[1]==="A"?"up":"down");return n}function uke(e){return dke(e)?f3(e):[]}function vP(e,n={}){let t=rr.dashboard,r={trigger:e.trigger,had_tui:t!==void 0,stdin_was_tty_at_start:rr.stdinWasTtyAtStart,stdout_was_tty_at_start:rr.stdoutWasTtyAtStart};if(t===void 0)return gs(n,"runner.tui_teardown_ok",r),{hadTui:!1,ok:!0,swallowedErrorCode:void 0};rr.dashboard=void 0,rr.stop?.(),rr.stop=void 0;try{return t.destroy(),gs(n,"runner.tui_teardown_ok",r),{hadTui:!0,ok:!0,swallowedErrorCode:void 0}}catch(o){let i=u0(o);return gs(n,"runner.tui_teardown_tty_error",{...r,stage:"screen_destroy",code:i??null,message:o instanceof Error?o.message:String(o),swallowed:!0}),{hadTui:!0,ok:!1,swallowedErrorCode:i}}}function mke(){vP({trigger:"crash"},{log:qO})}function h0(e,n){if(m3()){let r=Wke(Wf);if(hke(Wf,e,n,Date.now()),r!==void 0){r.render(Date.now());return}Jke(Wf),Kke(Wf);let o=SP(Wf,Date.now());if(o!==void 0){wP(o);return}}let t=b3(e,n);t!==void 0&&process.stdout.write(`${t}
1480
- `)}function m3(){switch(process.env.LINZUMI_RUNNER_CONSOLE){case"dashboard":return!0;case"lines":return!1;default:return process.stdout.isTTY===!0}}function g0(){return m3()}function hke(e,n,t,r){e.lastUpdateAtMs=r;let o=l3(e)?.key;switch(n){case"onboarding.discovery_agents_started":e.browserUrl=ye(t.kandanUrl),e.workspace=ye(t.workspace),e.runnerId=ye(t.runnerId);break;case"kandan.connection_stale":e.connectionStale=!0;break;case"kandan.connection_recovered":e.connectionStale=!1;break;case"runner.notice":{let i=ye(t.message);if(i===void 0)break;let s=ye(t.key)??i,a=e.notices.get(s),d=ye(t.severity)??"warning",u=qn(t.count)??(a?.count??0)+1;if(a===void 0){e.notices.set(s,{key:s,severity:d,message:i,count:u,updatedAtMs:r});for(let c of e.notices.keys()){if(e.notices.size<=QSe)break;e.notices.delete(c)}}else a.severity=d,a.message=i,a.count=u,a.updatedAtMs=r;break}case"onboarding.discovery_status":{let i=ye(t.phase),s=ye(t.status),a=l0(t.metadata),d=ye(a?.worker_id);if(i!==void 0&&s!==void 0){let u=i==="conversations",c=u?i:d??i,l=e.discovery.get(c),p=u?_ke(l?.metadata,a):a;e.discovery.set(c,{key:c,phase:i,status:u?bke(l,s,a):s,placesSearched:Math.max(l?.placesSearched??0,qn(t.places_searched)??0),message:ye(t.message)??(u?l?.message:void 0),currentPlace:ye(t.current_place)??(u?l?.currentPlace:void 0),currentSource:ye(t.current_source)??(u?l?.currentSource:void 0),lastError:ye(t.last_error),metadata:p,updatedAtMs:r})}break}case"kandan.roster_seeded":{let i=mCe(t.threads)??[];for(let s of i){let a=l0(s),d=ye(a?.kandan_thread_id);if(d===void 0)continue;let u=`linzumi:${d}`;if((e.jobs.get(u)??Array.from(e.jobs.values()).find(p=>p.linzumiThreadId===d))!==void 0)continue;let l=qn(a?.last_activity_at_ms);e.jobs.set(u,{key:u,createdAtMs:l??0,createdOrdinal:PP(e),agentProvider:void 0,linzumiThreadId:d,linzumiThreadTitle:void 0,codexThreadId:void 0,tokenUsage:void 0,lastIncomingPreview:void 0,lastIncomingAtMs:void 0,lastAssistantPreview:void 0,lastAssistantAtMs:void 0,latestCodexEventId:void 0,eventType:"idle (server roster)",creditExhaustion:void 0,queueDepth:void 0,turnId:void 0,updatedAtMs:l??0})}e.rosterTruncated=hCe(t.truncated)??e.rosterTruncated;break}case"kandan.message_queued":case"codex.turn_starting":{let i=_P(e,t,r);i.linzumiThreadId=ye(t.linzumi_thread_id)??i.linzumiThreadId,i.linzumiThreadTitle=C3(t)??i.linzumiThreadTitle,i.codexThreadId=ye(t.codex_thread_id)??i.codexThreadId,i.lastIncomingPreview=ye(t.body_preview)??i.lastIncomingPreview,i.lastIncomingAtMs=qn(t.message_received_at_ms)??i.lastIncomingAtMs,i.queueDepth=qn(t.queue_depth)??i.queueDepth,i.eventType=aCe(n),i.updatedAtMs=r;break}case"codex.notification":{let i=ye(t.token_usage_summary),s=ye(t.rate_limit_summary),a=ye(t.credit_exhaustion_summary);i!==void 0&&(e.tokenUsage=i),s!==void 0&&(e.rateLimit=s3(e.rateLimit,s)),a!==void 0&&(e.creditExhaustion=a);let d=ye(t.method),u=l0(t.metadata);if(!(ye(u?.threadId)!==void 0||ye(u?.turnId)!==void 0||ye(u?.itemId)!==void 0))break;let l=ye(u?.threadId),p=l===void 0?l3(e):oCe(e,`codex:${l}`,r);p!==void 0&&(p.codexThreadId=l??p.codexThreadId,p.tokenUsage=i??p.tokenUsage,p.creditExhaustion=a??p.creditExhaustion,p.latestCodexEventId=v3(t),p.eventType=t.credit_exhaustion_detected===!0?"credit_exhausted":d??n,p.turnId=ye(u?.turnId)??p.turnId,p.updatedAtMs=r);break}case"kandan.codex_output_forwarded":case"kandan.codex_delta_forwarded":case"kandan.codex_reasoning_delta_forwarded":case"kandan.codex_command_output_forwarded":case"kandan.codex_file_change_forwarded":case"kandan.codex_web_search_progress_forwarded":{let i=_P(e,t,r);i.latestCodexEventId=ye(t.item_key)??i.latestCodexEventId,i.eventType=sCe(n,t),i.turnId=ye(t.turn_id)??i.turnId,ye(t.structured_kind)==="codex_assistant_message"&&(i.lastAssistantPreview=ye(t.body_preview)??i.lastAssistantPreview,i.lastAssistantAtMs=r),i.updatedAtMs=r;break}case"claude_code.turn_starting":case"claude_code.message_queued":{let i=Uc(e,t,r);i.lastIncomingPreview=ye(t.body_preview)??i.lastIncomingPreview,i.lastIncomingAtMs=qn(t.message_received_at_ms)??i.lastIncomingAtMs,i.eventType=n==="claude_code.message_queued"?"message_queued":"turn_starting",i.updatedAtMs=r;break}case"claude_code.session_started":{let i=Uc(e,t,r);i.eventType="session_started",i.updatedAtMs=r;break}case"claude_code.turn_completed":{let i=Uc(e,t,r);i.lastAssistantPreview=ye(t.body_preview)??i.lastAssistantPreview,i.lastAssistantAtMs=r,i.eventType="turn_completed",i.updatedAtMs=r;break}case"claude_code.turn_terminal":{let i=Uc(e,t,r);i.turnId=ye(t.turn_id)??i.turnId,i.eventType=`turn_${ye(t.outcome)??"terminal"}`,i.updatedAtMs=r;break}case"claude_code.rate_limit":{let i=ye(t.rate_limit_summary);i!==void 0&&(e.rateLimit=s3(e.rateLimit,i));let s=Uc(e,t,r);s.eventType="rate_limit",s.updatedAtMs=r;break}case"claude_code.token_usage":{let i=ye(t.token_usage_summary),s=Uc(e,t,r);i!==void 0&&(e.tokenUsage=i,s.tokenUsage=i),s.eventType="token_usage",s.updatedAtMs=r;break}default:break}jke(e,n,t,o)}function SP(e,n){if(e.jobs.size===0&&e.discovery.size===0&&e.notices.size===0&&e.tokenUsage===void 0&&e.rateLimit===void 0&&e.creditExhaustion===void 0)return;let t=gd(e);switch(e.mode.type){case"table":return e.jobs.size===0&&e.discovery.size>0?gke(e,n):vke(e,t,n);case"raw_all":return d3(e,"Raw Stream",void 0,"esc: table",e.rawLines,n);case"raw_job":{let r=e.mode.jobKey,o=e.jobs.get(r),i=`Raw Stream: ${IP(o?.linzumiThreadId)} / ${RP(o?.codexThreadId,o?.agentProvider)}`;return d3(e,i,o?.tokenUsage,"esc: table",e.rawLines.filter(s=>s.jobKey===r),n)}}}function gke(e,n){let t=Array.from(e.discovery.values()).sort((s,a)=>f0(s.phase).localeCompare(f0(a.phase))),r=t.reduce((s,a)=>s+a.placesSearched,0),o=t.some(s=>["starting","running"].includes(s.status)),i=t.length===0?["Discovery starting 0 places Waiting for discovery agents"]:t.map(s=>[y0(s.phase).padEnd(14),x0(s.status).padEnd(10),`${String(s.placesSearched)} places`.padEnd(10),kP(s)].join(" "));return[TP(),"","Linzumi setup","New computer connected","",`Continue in the browser: ${e.browserUrl??"open the Linzumi setup page"}`,"",yke(t),`Workspace: ${e.workspace??"?"}`,`Runner: ${e.runnerId??"?"}`,`Status: ${o?"searching":"finished"} Places searched: ${r}`,`Last update: ${Di(e.lastUpdateAtMs,n)}${Jc(e)}`,"","Phase Status Places Detail","------------- ---------- --------- ------------------------------",...i,""].join(`
1481
- `)}function f0(e){switch(e){case"projects":return"1-projects";case"conversations":return"2-conversations";default:return`3-${e}`}}function y0(e){switch(e){case"projects":return"Projects";case"conversations":return"Conversations";default:return"Discovery"}}function x0(e){switch(e){case"starting":return"starting";case"running":return"searching";case"completed":return"done";case"failed":return"failed";default:return e}}function yke(e){return e.length===0?"I'm waiting for the discovery agents to start.":e.some(t=>["starting","running"].includes(t.status))?"I'm scouting existing projects and coding-agent conversations.":"Discovery is finished and idle. Select a project in the browser or move on."}function kP(e){if(e.lastError!==void 0)return e.lastError;let n=CP(e);if(n!==void 0)return n;let t=wke(e.currentSource);return e.currentPlace!==void 0?t===void 0?e.currentPlace:`${t}: ${e.currentPlace}`:e.message??h3(e.phase)}function CP(e){if(e.phase!=="conversations"||!hP(e.metadata))return;let n=qn(e.metadata?.total_count)??(qn(e.metadata?.codex_count)??0)+(qn(e.metadata?.claude_code_count)??0),t=qn(e.metadata?.imported_count)??qn(e.metadata?.reported_count);return t===void 0||n<=0?void 0:`${e.status==="completed"?"Imported":"Importing"} [${xke(t,n)}] ${t} / ${n} Codex/Claude Code conversations`}function hP(e){return ye(e?.worker_id)==="conversations-local-import"||qn(e?.imported_count)!==void 0||qn(e?.failed_import_count)!==void 0||qn(e?.total_count)!==void 0}function xke(e,n){let r=Math.min(10,Math.max(0,Math.floor(e/n*10)));return`${"#".repeat(r)}${"-".repeat(10-r)}`}function _ke(e,n){return e===void 0?n:n===void 0?e:{...e,...n,...Hf(e,n,"codex_count"),...Hf(e,n,"claude_code_count"),...Hf(e,n,"reported_count"),...Hf(e,n,"imported_count"),...Hf(e,n,"total_count")}}function Hf(e,n,t){let r=qn(e[t]),o=qn(n[t]);return r===void 0&&o===void 0?{}:{[t]:Math.max(r??0,o??0)}}function bke(e,n,t){return e?.status==="running"&&hP(e.metadata)&&!hP(t)?e.status:n}function wke(e){switch(e){case"git":return"Git";case"codex":return"Codex";case"claude_code":return"Claude Code";case void 0:return;default:return e}}function h3(e){switch(e){case"projects":return"Checking common project folders and Git worktrees.";case"conversations":return"Checking Codex and Claude Code sessions.";default:return"Checking local context."}}function vke(e,n,t){let r=y3(e,n,t);return[TP(),"","Linzumi Commander","",`Jobs: ${n.length}${e.rosterTruncated?" (first 200 of this node's roster)":""} Last update: ${Di(e.lastUpdateAtMs,t)}${Jc(e)}`,...g3(e.creditExhaustion),`Overall Token Usage: ${e.tokenUsage??"?"}`,`Account rate limits: ${e.rateLimit??"?"}`,"Controls: up/down select | enter raw job | r raw stream | esc table",...gP(e),"",dCe(r.rows),""].join(`
1480
+ `)}function m3(){switch(process.env.LINZUMI_RUNNER_CONSOLE){case"dashboard":return!0;case"lines":return!1;default:return process.stdout.isTTY===!0}}function g0(){return m3()}function hke(e,n,t,r){e.lastUpdateAtMs=r;let o=l3(e)?.key;switch(n){case"onboarding.discovery_agents_started":e.browserUrl=ge(t.kandanUrl),e.workspace=ge(t.workspace),e.runnerId=ge(t.runnerId);break;case"kandan.connection_stale":e.connectionStale=!0;break;case"kandan.connection_recovered":e.connectionStale=!1;break;case"runner.notice":{let i=ge(t.message);if(i===void 0)break;let s=ge(t.key)??i,a=e.notices.get(s),d=ge(t.severity)??"warning",u=qn(t.count)??(a?.count??0)+1;if(a===void 0){e.notices.set(s,{key:s,severity:d,message:i,count:u,updatedAtMs:r});for(let c of e.notices.keys()){if(e.notices.size<=QSe)break;e.notices.delete(c)}}else a.severity=d,a.message=i,a.count=u,a.updatedAtMs=r;break}case"onboarding.discovery_status":{let i=ge(t.phase),s=ge(t.status),a=l0(t.metadata),d=ge(a?.worker_id);if(i!==void 0&&s!==void 0){let u=i==="conversations",c=u?i:d??i,l=e.discovery.get(c),p=u?_ke(l?.metadata,a):a;e.discovery.set(c,{key:c,phase:i,status:u?bke(l,s,a):s,placesSearched:Math.max(l?.placesSearched??0,qn(t.places_searched)??0),message:ge(t.message)??(u?l?.message:void 0),currentPlace:ge(t.current_place)??(u?l?.currentPlace:void 0),currentSource:ge(t.current_source)??(u?l?.currentSource:void 0),lastError:ge(t.last_error),metadata:p,updatedAtMs:r})}break}case"kandan.roster_seeded":{let i=mCe(t.threads)??[];for(let s of i){let a=l0(s),d=ge(a?.kandan_thread_id);if(d===void 0)continue;let u=`linzumi:${d}`;if((e.jobs.get(u)??Array.from(e.jobs.values()).find(p=>p.linzumiThreadId===d))!==void 0)continue;let l=qn(a?.last_activity_at_ms);e.jobs.set(u,{key:u,createdAtMs:l??0,createdOrdinal:PP(e),agentProvider:void 0,linzumiThreadId:d,linzumiThreadTitle:void 0,codexThreadId:void 0,tokenUsage:void 0,lastIncomingPreview:void 0,lastIncomingAtMs:void 0,lastAssistantPreview:void 0,lastAssistantAtMs:void 0,latestCodexEventId:void 0,eventType:"idle (server roster)",creditExhaustion:void 0,queueDepth:void 0,turnId:void 0,updatedAtMs:l??0})}e.rosterTruncated=hCe(t.truncated)??e.rosterTruncated;break}case"kandan.message_queued":case"codex.turn_starting":{let i=_P(e,t,r);i.linzumiThreadId=ge(t.linzumi_thread_id)??i.linzumiThreadId,i.linzumiThreadTitle=C3(t)??i.linzumiThreadTitle,i.codexThreadId=ge(t.codex_thread_id)??i.codexThreadId,i.lastIncomingPreview=ge(t.body_preview)??i.lastIncomingPreview,i.lastIncomingAtMs=qn(t.message_received_at_ms)??i.lastIncomingAtMs,i.queueDepth=qn(t.queue_depth)??i.queueDepth,i.eventType=aCe(n),i.updatedAtMs=r;break}case"codex.notification":{let i=ge(t.token_usage_summary),s=ge(t.rate_limit_summary),a=ge(t.credit_exhaustion_summary);i!==void 0&&(e.tokenUsage=i),s!==void 0&&(e.rateLimit=s3(e.rateLimit,s)),a!==void 0&&(e.creditExhaustion=a);let d=ge(t.method),u=l0(t.metadata);if(!(ge(u?.threadId)!==void 0||ge(u?.turnId)!==void 0||ge(u?.itemId)!==void 0))break;let l=ge(u?.threadId),p=l===void 0?l3(e):oCe(e,`codex:${l}`,r);p!==void 0&&(p.codexThreadId=l??p.codexThreadId,p.tokenUsage=i??p.tokenUsage,p.creditExhaustion=a??p.creditExhaustion,p.latestCodexEventId=v3(t),p.eventType=t.credit_exhaustion_detected===!0?"credit_exhausted":d??n,p.turnId=ge(u?.turnId)??p.turnId,p.updatedAtMs=r);break}case"kandan.codex_output_forwarded":case"kandan.codex_delta_forwarded":case"kandan.codex_reasoning_delta_forwarded":case"kandan.codex_command_output_forwarded":case"kandan.codex_file_change_forwarded":case"kandan.codex_web_search_progress_forwarded":{let i=_P(e,t,r);i.latestCodexEventId=ge(t.item_key)??i.latestCodexEventId,i.eventType=sCe(n,t),i.turnId=ge(t.turn_id)??i.turnId,ge(t.structured_kind)==="codex_assistant_message"&&(i.lastAssistantPreview=ge(t.body_preview)??i.lastAssistantPreview,i.lastAssistantAtMs=r),i.updatedAtMs=r;break}case"claude_code.turn_starting":case"claude_code.message_queued":{let i=Uc(e,t,r);i.lastIncomingPreview=ge(t.body_preview)??i.lastIncomingPreview,i.lastIncomingAtMs=qn(t.message_received_at_ms)??i.lastIncomingAtMs,i.eventType=n==="claude_code.message_queued"?"message_queued":"turn_starting",i.updatedAtMs=r;break}case"claude_code.session_started":{let i=Uc(e,t,r);i.eventType="session_started",i.updatedAtMs=r;break}case"claude_code.turn_completed":{let i=Uc(e,t,r);i.lastAssistantPreview=ge(t.body_preview)??i.lastAssistantPreview,i.lastAssistantAtMs=r,i.eventType="turn_completed",i.updatedAtMs=r;break}case"claude_code.turn_terminal":{let i=Uc(e,t,r);i.turnId=ge(t.turn_id)??i.turnId,i.eventType=`turn_${ge(t.outcome)??"terminal"}`,i.updatedAtMs=r;break}case"claude_code.rate_limit":{let i=ge(t.rate_limit_summary);i!==void 0&&(e.rateLimit=s3(e.rateLimit,i));let s=Uc(e,t,r);s.eventType="rate_limit",s.updatedAtMs=r;break}case"claude_code.token_usage":{let i=ge(t.token_usage_summary),s=Uc(e,t,r);i!==void 0&&(e.tokenUsage=i,s.tokenUsage=i),s.eventType="token_usage",s.updatedAtMs=r;break}default:break}jke(e,n,t,o)}function SP(e,n){if(e.jobs.size===0&&e.discovery.size===0&&e.notices.size===0&&e.tokenUsage===void 0&&e.rateLimit===void 0&&e.creditExhaustion===void 0)return;let t=gd(e);switch(e.mode.type){case"table":return e.jobs.size===0&&e.discovery.size>0?gke(e,n):vke(e,t,n);case"raw_all":return d3(e,"Raw Stream",void 0,"esc: table",e.rawLines,n);case"raw_job":{let r=e.mode.jobKey,o=e.jobs.get(r),i=`Raw Stream: ${IP(o?.linzumiThreadId)} / ${RP(o?.codexThreadId,o?.agentProvider)}`;return d3(e,i,o?.tokenUsage,"esc: table",e.rawLines.filter(s=>s.jobKey===r),n)}}}function gke(e,n){let t=Array.from(e.discovery.values()).sort((s,a)=>f0(s.phase).localeCompare(f0(a.phase))),r=t.reduce((s,a)=>s+a.placesSearched,0),o=t.some(s=>["starting","running"].includes(s.status)),i=t.length===0?["Discovery starting 0 places Waiting for discovery agents"]:t.map(s=>[y0(s.phase).padEnd(14),x0(s.status).padEnd(10),`${String(s.placesSearched)} places`.padEnd(10),kP(s)].join(" "));return[TP(),"","Linzumi setup","New computer connected","",`Continue in the browser: ${e.browserUrl??"open the Linzumi setup page"}`,"",yke(t),`Workspace: ${e.workspace??"?"}`,`Runner: ${e.runnerId??"?"}`,`Status: ${o?"searching":"finished"} Places searched: ${r}`,`Last update: ${Di(e.lastUpdateAtMs,n)}${Jc(e)}`,"","Phase Status Places Detail","------------- ---------- --------- ------------------------------",...i,""].join(`
1481
+ `)}function f0(e){switch(e){case"projects":return"1-projects";case"conversations":return"2-conversations";default:return`3-${e}`}}function y0(e){switch(e){case"projects":return"Projects";case"conversations":return"Conversations";default:return"Discovery"}}function x0(e){switch(e){case"starting":return"starting";case"running":return"searching";case"completed":return"done";case"failed":return"failed";default:return e}}function yke(e){return e.length===0?"I'm waiting for the discovery agents to start.":e.some(t=>["starting","running"].includes(t.status))?"I'm scouting existing projects and coding-agent conversations.":"Discovery is finished and idle. Select a project in the browser or move on."}function kP(e){if(e.lastError!==void 0)return e.lastError;let n=CP(e);if(n!==void 0)return n;let t=wke(e.currentSource);return e.currentPlace!==void 0?t===void 0?e.currentPlace:`${t}: ${e.currentPlace}`:e.message??h3(e.phase)}function CP(e){if(e.phase!=="conversations"||!hP(e.metadata))return;let n=qn(e.metadata?.total_count)??(qn(e.metadata?.codex_count)??0)+(qn(e.metadata?.claude_code_count)??0),t=qn(e.metadata?.imported_count)??qn(e.metadata?.reported_count);return t===void 0||n<=0?void 0:`${e.status==="completed"?"Imported":"Importing"} [${xke(t,n)}] ${t} / ${n} Codex/Claude Code conversations`}function hP(e){return ge(e?.worker_id)==="conversations-local-import"||qn(e?.imported_count)!==void 0||qn(e?.failed_import_count)!==void 0||qn(e?.total_count)!==void 0}function xke(e,n){let r=Math.min(10,Math.max(0,Math.floor(e/n*10)));return`${"#".repeat(r)}${"-".repeat(10-r)}`}function _ke(e,n){return e===void 0?n:n===void 0?e:{...e,...n,...Hf(e,n,"codex_count"),...Hf(e,n,"claude_code_count"),...Hf(e,n,"reported_count"),...Hf(e,n,"imported_count"),...Hf(e,n,"total_count")}}function Hf(e,n,t){let r=qn(e[t]),o=qn(n[t]);return r===void 0&&o===void 0?{}:{[t]:Math.max(r??0,o??0)}}function bke(e,n,t){return e?.status==="running"&&hP(e.metadata)&&!hP(t)?e.status:n}function wke(e){switch(e){case"git":return"Git";case"codex":return"Codex";case"claude_code":return"Claude Code";case void 0:return;default:return e}}function h3(e){switch(e){case"projects":return"Checking common project folders and Git worktrees.";case"conversations":return"Checking Codex and Claude Code sessions.";default:return"Checking local context."}}function vke(e,n,t){let r=y3(e,n,t);return[TP(),"","Linzumi Commander","",`Jobs: ${n.length}${e.rosterTruncated?" (first 200 of this node's roster)":""} Last update: ${Di(e.lastUpdateAtMs,t)}${Jc(e)}`,...g3(e.creditExhaustion),`Overall Token Usage: ${e.tokenUsage??"?"}`,`Account rate limits: ${e.rateLimit??"?"}`,"Controls: up/down select | enter raw job | r raw stream | esc table",...gP(e),"",dCe(r.rows),""].join(`
1482
1482
  `)}function TP(){return lke.join(`
1483
1483
  `)}function g3(e){return e===void 0?[]:[`*** ACTION REQUIRED: ${e} ***`]}function gP(e,n="full"){if(e.notices.size===0)return[];let t=Array.from(e.notices.values()).sort((i,s)=>i.updatedAtMs-s.updatedAtMs);if(n==="summary")return[`Notices: ${t.length} (full text in the runner audit log)`];let r=t.slice(-ZSe),o=t.length-r.length;return["Notices (full text in the runner audit log):",...r.map(i=>` ${Ske(i.severity)} ${Bc(i.message,XSe)}${i.count>1?` (x${i.count})`:""}`),...o>0?[` +${o} more in the audit log`]:[]]}function Ske(e){switch(e){case"error":return"!!";case"warning":return" !";default:return" -"}}function Jc(e){return e.connectionStale?" connection may be stale - reconnecting":""}function y3(e,n,t){let r=_0(e,n),o=Pke(e,t);if(n.length===0){let s=e.discovery.size>0?Rke(e,t):[yP(),k3()];return{jobs:n,selectedJobKey:r,rows:s,rowJobKeys:s.map(()=>{})}}let i=[yP(),...o,...n.map(s=>iCe(s,r,t))];return{jobs:n,selectedJobKey:r,rows:i,rowJobKeys:[void 0,...o.map(()=>{}),...n.map(s=>s.key)]}}function kke(e,n){return e.rowJobKeys[n]}function Cke(e){let n=e.rowJobKeys.findIndex(r=>r!==void 0&&r===e.selectedJobKey);if(n>=0)return n;let t=e.rowJobKeys.findIndex(r=>r!==void 0);return t>=0?t:1}function Tke(e){return typeof e!="number"||!Number.isFinite(e)?1:Math.max(1,Math.floor(e)-3)}function Pke(e,n){return Array.from(e.discovery.values()).filter(Ike).sort((t,r)=>r.updatedAtMs-t.updatedAtMs).map(t=>["",y0(t.phase),x0(t.status),_3(t),String(t.placesSearched),kP(t),Di(t.updatedAtMs,n),x3(t),"onboarding.discovery"])}function Ike(e){return["starting","running"].includes(e.status)&&CP(e)!==void 0}function Rke(e,n){let t=Array.from(e.discovery.values()).sort((r,o)=>f0(r.phase).localeCompare(f0(o.phase)));return[["","Onboarding scout","Status","Current search","Checked","Detail","Ago","Latest event","Event type"],...t.length===0?[["","Discovery","starting","Waiting for agents","0","Waiting for Commander discovery agents","?","onboarding","discovery"]]:t.map(r=>["",y0(r.phase),x0(r.status),_3(r),String(r.placesSearched),kP(r),Di(r.updatedAtMs,n),x3(r),"onboarding.discovery"])]}function x3(e){if(["starting","running"].includes(e.status)&&CP(e)!==void 0)return"importing";switch(e.status){case"completed":return"idle";case"failed":return"stopped";default:return"scouting"}}function _3(e){if(e.lastError!==void 0)return"stopped";switch(e.status){case"completed":return"finished";case"failed":return"stopped";default:return e.currentPlace??e.message??h3(e.phase)}}function yP(){return["","Linzumi thread","Agent","Last user message","Ago","Last assistant reply","Ago","Latest event","Event type"]}function s3(e,n){if(e===void 0)return n;let t=new Map;for(let r of e.split(" | "))t.set(a3(r),r);for(let r of n.split(" | "))t.set(a3(r),r);return Array.from(t.values()).join(" | ")}function a3(e){return e.split(" ",1)[0]??e}function b3(e,n){switch(e){case"runner.starting":return bP;case"runner.instance_started":return Ake(n);case"runner.replaced":return["Runner replaced: another Linzumi CLI connected from this machine.",`New runner: ${Ne(n.replacementRunnerId)}`,`Version: ${Ne(n.replacementVersion)}`,"This process is exiting."].join(`
1484
- `);case"runner.compute_node":return`Compute node: ${Ne(n.name)} (generation ${Ne(n.resetGeneration)}, ${Ne(n.identityQuality)} identity)`;case"kandan.message_ignored":return Oke(n);case"kandan.message_queued":return`Incoming message from ${xP(n)}: queued seq=${Ne(n.seq)} depth=${Ne(n.queue_depth)}`;case"onboarding.discovery_status":return Dke(n);case"onboarding.discovery_initial_search_completed":return Mke(n);case"kandan.chat_event_failed":return`Incoming message handling failed: seq=${Ne(n.seq)} reason=${Ne(n.message)}`;case"kandan.reconnected":return`Linzumi reconnected: codex_session=${Ne(n.codex_thread_id)} cursor=${Ne(n.min_seq)}`;case"kandan.connection_stale":return"Linzumi connection may be stale - reconnecting (no server-acknowledged activity recently).";case"kandan.connection_recovered":return"Linzumi connection recovered.";case"codex.turn_starting":return`Incoming message from ${xP(n)}: forwarding to Codex session ${Ne(n.codex_thread_id)} seq=${Ne(n.queued_seq)}`;case"codex.turn_started":return`Codex turn started: id=${Ne(n.turn_id)}`;case"codex.notification":{let t=ye(n.credit_exhaustion_summary),r=[t===void 0?void 0:`URGENT ${t}`,ye(n.token_usage_summary),ye(n.rate_limit_summary),ye(n.diagnostic_summary)].filter(i=>i!==void 0).join(" | "),o=r===""?"":` ${r}`;return`Codex event [id=${v3(n)}]: ${Ne(n.method)}${o}`}case"codex.turn_completed":return`Codex turn completed: id=${Ne(n.turn_id)} outputs=${Ne(n.output_count)}`;case"kandan.codex_output_forwarded":return`Codex event [id=${Ne(n.item_key)}]: ${w3(n)}`;case"kandan.codex_reasoning_delta_forwarded":return`Codex event [id=${Ne(n.item_key)}]: reasoning_delta chars=${Ne(n.content_length)}`;case"kandan.codex_command_output_forwarded":return`Codex event [id=${Ne(n.item_key)}]: command_output ${Ne(n.stream)} chars=${Ne(n.output_length)}`;case"kandan.codex_web_search_progress_forwarded":return`Codex event [id=${Ne(n.item_key)}]: search_progress queries=${Ne(n.query_count)}`;case"codex.queued_messages_interrupted":return`Queued messages interrupted: selected=${Ne(n.selected_count)} remaining=${Ne(n.remaining_count)}`;case"codex.turn_start_failed":return`Codex turn start failed: seq=${Ne(n.queued_seq)} reason=${Ne(n.message)}`;case"codex.turn_forward_failed":return`Codex turn forward failed: id=${Ne(n.turn_id)} reason=${Ne(n.message)}`;case"pipeline.stats":return Eke(n);case"pipeline.turn_stalled":return`Pipeline turn stalled: id=${Ne(n.turn_id)} seq=${Ne(n.source_seq)} age=${m0(n.turn_age_ms)} quiet=${m0(n.quiet_ms)} last_activity=${ye(n.last_activity_kind)??"none"} queued=${Ne(n.outbox_depth)} paused=${Ne(n.paused)}`;case"pipeline.outbox_entry_failed":return`Pipeline delivery failed permanently: kind=${Ne(n.kind)} item=${Ne(n.item_key)} attempts=${Ne(n.attempts)} reason=${Ne(n.message)}`;case"claude_code.turn_starting":return`Incoming message: forwarding to Claude Code session ${Ne(n.claude_session_id)} thread=${Ne(n.linzumi_thread_id)}`;case"claude_code.message_queued":return`Incoming message: queued for Claude Code session ${Ne(n.claude_session_id)} seq=${Ne(n.source_seq)}`;case"claude_code.session_started":return`Claude Code session started: id=${Ne(n.claude_session_id)} thread=${Ne(n.linzumi_thread_id)}`;case"claude_code.turn_completed":return`Claude Code turn completed: session=${Ne(n.claude_session_id)}`;case"claude_code.turn_terminal":return`Claude Code turn ${Ne(n.outcome)}: id=${Ne(n.turn_id)}`;case"claude_code.rate_limit":return`Claude Code rate limit: ${ye(n.rate_limit_summary)??"seen (no details)"}`;case"claude_code.token_usage":return`Claude Code token usage: ${ye(n.token_usage_summary)??"seen (no details)"}`;default:return}}function Eke(e){let n=qn(e.outbox_depth)??0,t=qn(e.total_permanent_failures)??0,r=qn(e.oldest_entry_age_ms),o=qn(e.active_turn_age_ms);return`pipeline: ${[`${n} queued`,r===void 0?void 0:`oldest ${m0(r)}`,`${t} failed`,o===void 0?void 0:`turn age ${m0(o)}`,e.paused===!0?"paused":void 0].filter(s=>s!==void 0).join(", ")}`}function m0(e){let n=qn(e);return n===void 0?"?":`${(n/1e3).toFixed(1)}s`}function Dke(e){let n=y0(ye(e.phase)??"discovery"),t=x0(ye(e.status)??"unknown"),r=qn(e.places_searched)??0,o=ye(e.current_place),i=ye(e.message),s=ye(e.last_error)??o??i??"Checking local context";return`Onboarding discovery: ${n} ${t} checked=${r} current=${s}`}function Mke(e){let n=qn(e.duration_ms)??0,t=(n/1e3).toFixed(1);return`Onboarding discovery initial search completed in ${n}ms (${t}s) workspace=${Ne(e.workspace)} runner=${Ne(e.runnerId)}`}function Ake(e){return["Connected to Linzumi",fP("Computer",e.hostname),fP("Workspace",e.workspace),`Runner: ${Ne(e.runnerId)}`,`CLI: ${Ne(e.version)}`,fP("Codex",e.codexUrl),...$ke(e.replacedRunners)].filter(n=>n!==void 0).join(`
1485
- `)}function fP(e,n){let t=ye(n)??qn(n)?.toString();return t===void 0?void 0:`${e}: ${t}`}function na(e,n){let t=ye(n)??qn(n)?.toString();return t===void 0?void 0:`${e}=${t}`}function Oke(e){return[`Incoming message from ${xP(e)}: ignored`,na("seq",e.seq),`reason=${Ne(e.reason)}`,na("type",e.type),na("thread",e.thread_id),na("bound_thread",e.bound_thread_id),na("body_chars",e.body_length),na("body",e.body_preview),na("attachments",e.attachment_count),na("local_event",e.local_runner_event_type)].filter(n=>n!==void 0).join(" ")}function $ke(e){return Array.isArray(e)?e.flatMap(n=>{if(typeof n!="object"||n===null||Array.isArray(n))return[];let t=n,r=ye(t.runnerId);if(r===void 0)return[];let o=ye(t.version),i=o===void 0?"":` (CLI ${o})`;return[`Replaced older runner from this machine: ${r}${i}`]}):[]}function xP(e){let n=ye(e.actor_slug),t=qn(e.actor_user_id);return n!==void 0&&t!==void 0?`${n}#${t}`:n??(t===void 0?"unknown":`user#${t}`)}function w3(e){let n=ye(e.structured_kind)??"output";switch(n){case"codex_assistant_message":return"assistant_message";case"codex_reasoning":return"reasoning";case"codex_command_execution":return`command ${Ne(e.command)}`;case"codex_terminal_input":return"terminal_input";case"codex_file_change":return`file_change ${Lke(e)}`;default:return n}}function Lke(e){let n=Array.isArray(e.file_paths)?e.file_paths.filter(t=>typeof t=="string"):[];return n.length===0?"(unknown file)":n.slice(0,3).join(", ")}function v3(e){let n=e.metadata;if(typeof n=="object"&&n!==null&&!Array.isArray(n)){let t=n;return ye(t.turnId)??ye(t.itemId)??ye(t.threadId)??"?"}return"?"}function jke(e,n,t,r){let o=b3(n,t);if(o===void 0)return;let i=Fke(e,t,r);e.rawLines.push({jobKey:i,line:o}),e.rawLines.length>t3&&e.rawLines.splice(0,e.rawLines.length-t3)}function Fke(e,n,t){let r=ye(n.linzumi_thread_id),o=ye(n.codex_thread_id);if(r!==void 0)return`linzumi:${r}`;if(o!==void 0)return Array.from(e.jobs.values()).find(d=>d.codexThreadId===o)?.key;let i=ye(n.claude_session_id);if(i!==void 0){let d=Array.from(e.jobs.values()).find(u=>u.codexThreadId===i)?.key;if(d!==void 0)return d}let s=l0(n.metadata),a=ye(s?.threadId);return a!==void 0?Array.from(e.jobs.values()).find(d=>d.codexThreadId===a)?.key:t}function _0(e,n){let t=qke(e.selectedJobKey,e.selectedJobIndexHint,n.map(r=>r.key));return e.selectedJobKey=t.key,e.selectedJobIndexHint=t.index,e.selectedJobKey}function qke(e,n,t){if(t.length===0)return{key:void 0,index:void 0};if(e!==void 0){let o=t.indexOf(e);if(o>=0)return{key:e,index:o}}let r=Math.min(Math.max(n??0,0),t.length-1);return{key:t[r],index:r}}function d3(e,n,t,r,o,i){let s=o.slice(-40).map(a=>a.line);return["Linzumi Commander","",`${n} Last update: ${Di(e.lastUpdateAtMs,i)}${Jc(e)}`,...t===void 0?[]:[`Token usage: ${t}`],`Controls: ${r}`,"",...s.length===0?["No raw events yet."]:s,""].join(`
1484
+ `);case"runner.compute_node":return`Compute node: ${Ne(n.name)} (generation ${Ne(n.resetGeneration)}, ${Ne(n.identityQuality)} identity)`;case"kandan.message_ignored":return Oke(n);case"kandan.message_queued":return`Incoming message from ${xP(n)}: queued seq=${Ne(n.seq)} depth=${Ne(n.queue_depth)}`;case"onboarding.discovery_status":return Dke(n);case"onboarding.discovery_initial_search_completed":return Mke(n);case"kandan.chat_event_failed":return`Incoming message handling failed: seq=${Ne(n.seq)} reason=${Ne(n.message)}`;case"kandan.reconnected":return`Linzumi reconnected: codex_session=${Ne(n.codex_thread_id)} cursor=${Ne(n.min_seq)}`;case"kandan.connection_stale":return"Linzumi connection may be stale - reconnecting (no server-acknowledged activity recently).";case"kandan.connection_recovered":return"Linzumi connection recovered.";case"codex.turn_starting":return`Incoming message from ${xP(n)}: forwarding to Codex session ${Ne(n.codex_thread_id)} seq=${Ne(n.queued_seq)}`;case"codex.turn_started":return`Codex turn started: id=${Ne(n.turn_id)}`;case"codex.notification":{let t=ge(n.credit_exhaustion_summary),r=[t===void 0?void 0:`URGENT ${t}`,ge(n.token_usage_summary),ge(n.rate_limit_summary),ge(n.diagnostic_summary)].filter(i=>i!==void 0).join(" | "),o=r===""?"":` ${r}`;return`Codex event [id=${v3(n)}]: ${Ne(n.method)}${o}`}case"codex.turn_completed":return`Codex turn completed: id=${Ne(n.turn_id)} outputs=${Ne(n.output_count)}`;case"kandan.codex_output_forwarded":return`Codex event [id=${Ne(n.item_key)}]: ${w3(n)}`;case"kandan.codex_reasoning_delta_forwarded":return`Codex event [id=${Ne(n.item_key)}]: reasoning_delta chars=${Ne(n.content_length)}`;case"kandan.codex_command_output_forwarded":return`Codex event [id=${Ne(n.item_key)}]: command_output ${Ne(n.stream)} chars=${Ne(n.output_length)}`;case"kandan.codex_web_search_progress_forwarded":return`Codex event [id=${Ne(n.item_key)}]: search_progress queries=${Ne(n.query_count)}`;case"codex.queued_messages_interrupted":return`Queued messages interrupted: selected=${Ne(n.selected_count)} remaining=${Ne(n.remaining_count)}`;case"codex.turn_start_failed":return`Codex turn start failed: seq=${Ne(n.queued_seq)} reason=${Ne(n.message)}`;case"codex.turn_forward_failed":return`Codex turn forward failed: id=${Ne(n.turn_id)} reason=${Ne(n.message)}`;case"pipeline.stats":return Eke(n);case"pipeline.turn_stalled":return`Pipeline turn stalled: id=${Ne(n.turn_id)} seq=${Ne(n.source_seq)} age=${m0(n.turn_age_ms)} quiet=${m0(n.quiet_ms)} last_activity=${ge(n.last_activity_kind)??"none"} queued=${Ne(n.outbox_depth)} paused=${Ne(n.paused)}`;case"pipeline.outbox_entry_failed":return`Pipeline delivery failed permanently: kind=${Ne(n.kind)} item=${Ne(n.item_key)} attempts=${Ne(n.attempts)} reason=${Ne(n.message)}`;case"claude_code.turn_starting":return`Incoming message: forwarding to Claude Code session ${Ne(n.claude_session_id)} thread=${Ne(n.linzumi_thread_id)}`;case"claude_code.message_queued":return`Incoming message: queued for Claude Code session ${Ne(n.claude_session_id)} seq=${Ne(n.source_seq)}`;case"claude_code.session_started":return`Claude Code session started: id=${Ne(n.claude_session_id)} thread=${Ne(n.linzumi_thread_id)}`;case"claude_code.turn_completed":return`Claude Code turn completed: session=${Ne(n.claude_session_id)}`;case"claude_code.turn_terminal":return`Claude Code turn ${Ne(n.outcome)}: id=${Ne(n.turn_id)}`;case"claude_code.rate_limit":return`Claude Code rate limit: ${ge(n.rate_limit_summary)??"seen (no details)"}`;case"claude_code.token_usage":return`Claude Code token usage: ${ge(n.token_usage_summary)??"seen (no details)"}`;default:return}}function Eke(e){let n=qn(e.outbox_depth)??0,t=qn(e.total_permanent_failures)??0,r=qn(e.oldest_entry_age_ms),o=qn(e.active_turn_age_ms);return`pipeline: ${[`${n} queued`,r===void 0?void 0:`oldest ${m0(r)}`,`${t} failed`,o===void 0?void 0:`turn age ${m0(o)}`,e.paused===!0?"paused":void 0].filter(s=>s!==void 0).join(", ")}`}function m0(e){let n=qn(e);return n===void 0?"?":`${(n/1e3).toFixed(1)}s`}function Dke(e){let n=y0(ge(e.phase)??"discovery"),t=x0(ge(e.status)??"unknown"),r=qn(e.places_searched)??0,o=ge(e.current_place),i=ge(e.message),s=ge(e.last_error)??o??i??"Checking local context";return`Onboarding discovery: ${n} ${t} checked=${r} current=${s}`}function Mke(e){let n=qn(e.duration_ms)??0,t=(n/1e3).toFixed(1);return`Onboarding discovery initial search completed in ${n}ms (${t}s) workspace=${Ne(e.workspace)} runner=${Ne(e.runnerId)}`}function Ake(e){return["Connected to Linzumi",fP("Computer",e.hostname),fP("Workspace",e.workspace),`Runner: ${Ne(e.runnerId)}`,`CLI: ${Ne(e.version)}`,fP("Codex",e.codexUrl),...$ke(e.replacedRunners)].filter(n=>n!==void 0).join(`
1485
+ `)}function fP(e,n){let t=ge(n)??qn(n)?.toString();return t===void 0?void 0:`${e}: ${t}`}function na(e,n){let t=ge(n)??qn(n)?.toString();return t===void 0?void 0:`${e}=${t}`}function Oke(e){return[`Incoming message from ${xP(e)}: ignored`,na("seq",e.seq),`reason=${Ne(e.reason)}`,na("type",e.type),na("thread",e.thread_id),na("bound_thread",e.bound_thread_id),na("body_chars",e.body_length),na("body",e.body_preview),na("attachments",e.attachment_count),na("local_event",e.local_runner_event_type)].filter(n=>n!==void 0).join(" ")}function $ke(e){return Array.isArray(e)?e.flatMap(n=>{if(typeof n!="object"||n===null||Array.isArray(n))return[];let t=n,r=ge(t.runnerId);if(r===void 0)return[];let o=ge(t.version),i=o===void 0?"":` (CLI ${o})`;return[`Replaced older runner from this machine: ${r}${i}`]}):[]}function xP(e){let n=ge(e.actor_slug),t=qn(e.actor_user_id);return n!==void 0&&t!==void 0?`${n}#${t}`:n??(t===void 0?"unknown":`user#${t}`)}function w3(e){let n=ge(e.structured_kind)??"output";switch(n){case"codex_assistant_message":return"assistant_message";case"codex_reasoning":return"reasoning";case"codex_command_execution":return`command ${Ne(e.command)}`;case"codex_terminal_input":return"terminal_input";case"codex_file_change":return`file_change ${Lke(e)}`;default:return n}}function Lke(e){let n=Array.isArray(e.file_paths)?e.file_paths.filter(t=>typeof t=="string"):[];return n.length===0?"(unknown file)":n.slice(0,3).join(", ")}function v3(e){let n=e.metadata;if(typeof n=="object"&&n!==null&&!Array.isArray(n)){let t=n;return ge(t.turnId)??ge(t.itemId)??ge(t.threadId)??"?"}return"?"}function jke(e,n,t,r){let o=b3(n,t);if(o===void 0)return;let i=Fke(e,t,r);e.rawLines.push({jobKey:i,line:o}),e.rawLines.length>t3&&e.rawLines.splice(0,e.rawLines.length-t3)}function Fke(e,n,t){let r=ge(n.linzumi_thread_id),o=ge(n.codex_thread_id);if(r!==void 0)return`linzumi:${r}`;if(o!==void 0)return Array.from(e.jobs.values()).find(d=>d.codexThreadId===o)?.key;let i=ge(n.claude_session_id);if(i!==void 0){let d=Array.from(e.jobs.values()).find(u=>u.codexThreadId===i)?.key;if(d!==void 0)return d}let s=l0(n.metadata),a=ge(s?.threadId);return a!==void 0?Array.from(e.jobs.values()).find(d=>d.codexThreadId===a)?.key:t}function _0(e,n){let t=qke(e.selectedJobKey,e.selectedJobIndexHint,n.map(r=>r.key));return e.selectedJobKey=t.key,e.selectedJobIndexHint=t.index,e.selectedJobKey}function qke(e,n,t){if(t.length===0)return{key:void 0,index:void 0};if(e!==void 0){let o=t.indexOf(e);if(o>=0)return{key:e,index:o}}let r=Math.min(Math.max(n??0,0),t.length-1);return{key:t[r],index:r}}function d3(e,n,t,r,o,i){let s=o.slice(-40).map(a=>a.line);return["Linzumi Commander","",`${n} Last update: ${Di(e.lastUpdateAtMs,i)}${Jc(e)}`,...t===void 0?[]:[`Token usage: ${t}`],`Controls: ${r}`,"",...s.length===0?["No raw events yet."]:s,""].join(`
1486
1486
  `)}function zke(e,n){switch(n.type){case"raw_all":return{title:"Raw Stream",tokenUsage:void 0,lines:e.rawLines.map(t=>t.line)};case"raw_job":{let t=n.jobKey,r=e.jobs.get(t);return{title:`Raw Stream: ${IP(r?.linzumiThreadId)} / ${RP(r?.codexThreadId,r?.agentProvider)}`,tokenUsage:r?.tokenUsage,lines:e.rawLines.filter(o=>o.jobKey===t).map(o=>o.line)}}}}function gd(e){return Array.from(e.jobs.values()).sort(S3)}function Nke(e){return Array.from(e.jobs.values()).sort((n,t)=>{let r=t.updatedAtMs-n.updatedAtMs;return r!==0?r:S3(n,t)})}function S3(e,n){let t=n.createdAtMs-e.createdAtMs;if(t!==0)return t;let r=n.createdOrdinal-e.createdOrdinal;return r!==0?r:e.key.localeCompare(n.key)}function PP(e){let n=e.nextJobOrdinal;return e.nextJobOrdinal=e.nextJobOrdinal+1,n}function Uke(e,n){let r=gd(e)[n];r!==void 0&&(e.selectedJobKey=r.key,e.selectedJobIndexHint=n)}function Bke(e,n){if(n===void 0)return;let t=gd(e).findIndex(r=>r.key===n);t>=0&&(e.selectedJobKey=n,e.selectedJobIndexHint=t)}function Gf(e,n){let t=gd(e);if(t.length===0){e.selectedJobKey=void 0;return}let r=_0(e,t),o=Math.max(0,t.findIndex(s=>s.key===r)),i=Math.min(t.length-1,Math.max(0,o+n));e.selectedJobKey=t[i]?.key,e.selectedJobIndexHint=i}function Jke(e){o3.initialized||process.stdin.isTTY!==!0||typeof process.stdin.setRawMode!="function"||(o3.initialized=!0,process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.on("data",n=>{Zke(e,n.toString("utf8"))}))}function Kke(e){i3.stop===void 0&&(i3.stop=Hke(e))}function Vke(e,n={}){if(!rr.constructionFailed)try{return e3(Y9(ta.screen),e,{sinks:n,context:{surface:"runner_console_tui"}})}catch(t){rr.constructionFailed=!0;try{process.stderr.write(`linzumi runner TUI unavailable, falling back to plain output: ${t instanceof Error?t.stack??t.message:String(t)}
1487
1487
  `)}catch{}return}}function Wke(e){if(rr.dashboard!==void 0)return rr.dashboard;if(process.stdin.isTTY!==!0||process.stdout.isTTY!==!0)return;let n=Vke(()=>Qke(e));if(n!==void 0)return rr.dashboard=n,zO("runner_console_tui",mke),rr.stdinWasTtyAtStart=!0,rr.stdoutWasTtyAtStart=!0,rr.stop=Gke(()=>{n.render(Date.now())}),n}function Hke(e,n=wP,t=1e3){let r=setInterval(()=>{let o=SP(e,Date.now());o!==void 0&&n(o)},t);return r.unref?.(),()=>{clearInterval(r)}}function Gke(e,n=1e3){let t=setInterval(e,n);return t.unref?.(),()=>{clearInterval(t)}}function Zke(e,n,t=()=>process.kill(process.pid,"SIGINT")){if(n===YSe){t();return}tCe(e,n);let r=SP(e,Date.now());r!==void 0&&wP(r)}function Qke(e,n=()=>process.kill(process.pid,"SIGINT")){let t=!1,r,o;N9();let i=Object.getOwnPropertyDescriptor(ta,"Screen")?.value;if(i===void 0)throw new Error("blessed Screen constructor is unavailable");W9(i);let s=ta.screen({title:"Linzumi Commander",smartCSR:!0,fullUnicode:!0,forceUnicode:!0,mouse:!0});J9(s),Q9(s.program.input,{context:{surface:"runner_console_tui"}});let a=ta.box({top:0,left:0,width:"100%",height:1,tags:!1}),d=ta.listtable({top:1,left:0,width:"100%",bottom:1,keys:!0,vi:!0,mouse:!0,scrollable:!0,alwaysScroll:!0,border:"line",pad:1,data:[yP(),k3()],scrollbar:{ch:" ",style:{inverse:!0}},style:{header:{bold:!0},cell:{selected:{inverse:!0}},border:{fg:"grey"}}}),u=ta.box({top:0,left:12,right:0,height:2,tags:!1,hidden:!0}),c=ta.button({top:0,left:0,width:10,height:1,content:"< Back",mouse:!0,keys:!0,shrink:!0,hidden:!0,style:{focus:{inverse:!0},hover:{inverse:!0}}}),l=ta.box({top:3,left:0,width:"100%",bottom:0,keys:!0,vi:!0,mouse:!0,scrollable:!0,alwaysScroll:!0,border:"line",tags:!1,hidden:!0,scrollbar:{ch:" ",style:{inverse:!0}},style:{border:{fg:"grey"}}});s.append(a),s.append(d),s.append(u),s.append(c),s.append(l);let p=()=>{e.mode={type:"table"},S(Date.now())},m=()=>{e.mode={type:"raw_all"},S(Date.now())},f=()=>{let b=_0(e,gd(e));b!==void 0&&(e.mode={type:"raw_job",jobKey:b},S(Date.now()))};s.key(["C-c"],()=>{v(),n()}),s.on("keypress",(b,k)=>{ike(k)&&r3(e)&&S(Date.now())});let y=b=>{let k=typeof b=="string"?b:b.toString("utf8");if(p3(k)&&r3(e)&&S(Date.now()),e.mode.type==="table"){let R=uke(k);if(R.length>0){for(let P of R)Gf(e,P==="up"?-1:1);S(Date.now())}}};s.program.input.on("data",y),s.key(["r"],m),d.key(["enter"],f);let _=b=>{e.mode.type==="table"&&(Gf(e,b*Tke(d.height)),S(Date.now()))};d.key(["pageup"],()=>{_(-1)}),d.key(["pagedown"],()=>{_(1)});let w=b=>{if(o===void 0){Uke(e,b-1);return}Bke(e,kke(o,b))};d.on("select item",(b,k)=>{t||e.mode.type!=="table"||w(k)}),d.on("select",(b,k)=>{t||e.mode.type!=="table"||(w(k),f())}),c.on("press",p),c.on("click",p);function S(b){t=!0;try{switch(e.mode.type){case"table":{let k=y3(e,gd(e),b);o=k;let R=eCe(e,k.jobs.length,b,Xke(s));a.height=R.height,d.top=R.height,a.setContent(R.content),a.show(),d.setData(k.rows),d.show(),u.hide(),c.hide(),l.hide(),r=void 0,Yke(d,k),d.focus();break}case"raw_all":case"raw_job":{let k=zke(e,e.mode),R=`${e.mode.type}:${e.mode.type==="raw_job"?e.mode.jobKey:"*"}:${k.lines.length}`;a.hide(),d.hide(),u.setContent([`${k.title} Last update: ${Di(e.lastUpdateAtMs,b)}${Jc(e)} esc/back: table`,k.tokenUsage===void 0?void 0:`Token usage: ${k.tokenUsage}`].filter(P=>P!==void 0).join(`
1488
1488
  `)),l.setContent(k.lines.length===0?"No raw events yet.":k.lines.join(`
@@ -1490,9 +1490,9 @@ To kick the agent off:
1490
1490
  `).length+1}function mP(e,n,t,r,o){return n===0&&e.discovery.size>0?[r,"","Linzumi Commander",nCe(e),`Workspace: ${e.workspace??"?"} Runner: ${e.runnerId??"?"}`,`Last update: ${Di(e.lastUpdateAtMs,t)}${Jc(e)}`,"Controls: r raw stream | esc/back table | mouse wheel scroll",...gP(e,o)].join(`
1491
1491
  `):[r,"","Linzumi Commander",`Jobs: ${n} Last update: ${Di(e.lastUpdateAtMs,t)}${Jc(e)}`,...g3(e.creditExhaustion),`Overall Token Usage: ${e.tokenUsage??"?"}`,`Account rate limits: ${e.rateLimit??"?"}`,"Controls: click row/enter raw job | r raw stream | esc/back table | mouse wheel scroll",...gP(e,o)].join(`
1492
1492
  `)}function c3(){return pke.join(`
1493
- `)}function nCe(e){let n=Array.from(e.discovery.values()),t=n.reduce((o,i)=>o+i.placesSearched,0);return`Onboarding discovery: ${n.some(o=>["starting","running"].includes(o.status))?"searching":"finished/idle"} Places searched: ${t}`}function tCe(e,n){switch(n){case"r":e.mode={type:"raw_all"};break;case p0:e.mode={type:"table"};break;case eke:{let t=_0(e,gd(e));t!==void 0&&(e.mode={type:"raw_job",jobKey:t});break}case nke:Gf(e,-1);break;case tke:Gf(e,1);break;default:if(p3(n)){e.mode={type:"table"};break}for(let t of f3(n))Gf(e,t==="up"?-1:1);break}}function Uc(e,n,t){let r=ye(n.claude_session_id),o=_P(e,{...n,linzumi_thread_id:ye(n.linzumi_thread_id)??ye(n.thread_id),codex_thread_id:ye(n.codex_thread_id)??r},t);return o.agentProvider="claude",r!==void 0&&(o.codexThreadId=r),o}function _P(e,n,t){let r=ye(n.linzumi_thread_id),o=ye(n.codex_thread_id),i=o!==void 0?Array.from(e.jobs.values()).find(u=>u.codexThreadId===o):void 0;if(i!==void 0)return rCe(e,i,r);let s=r===void 0?o===void 0?"job:unknown":`codex:${o}`:`linzumi:${r}`,a=e.jobs.get(s);if(a!==void 0)return a;let d={key:s,createdAtMs:qn(n.message_received_at_ms)??t,createdOrdinal:PP(e),agentProvider:void 0,linzumiThreadId:r,linzumiThreadTitle:C3(n),codexThreadId:o,tokenUsage:void 0,lastIncomingPreview:void 0,lastIncomingAtMs:void 0,lastAssistantPreview:void 0,lastAssistantAtMs:void 0,latestCodexEventId:void 0,eventType:void 0,creditExhaustion:void 0,queueDepth:void 0,turnId:void 0,updatedAtMs:t};return e.jobs.set(s,d),d}function rCe(e,n,t){if(t===void 0)return n;let r=`linzumi:${t}`;if(n.key===r)return n.linzumiThreadId=t,n;let o={...n,key:r,linzumiThreadId:t};return e.jobs.delete(n.key),e.jobs.set(r,o),e.selectedJobKey===n.key&&(e.selectedJobKey=r),e.mode.type==="raw_job"&&e.mode.jobKey===n.key&&(e.mode={type:"raw_job",jobKey:r}),e.rawLines.splice(0,e.rawLines.length,...e.rawLines.map(i=>i.jobKey===n.key?{...i,jobKey:r}:i)),o}function oCe(e,n,t){if(n.startsWith("codex:")){let i=n.slice(6),s=Array.from(e.jobs.values()).find(a=>a.codexThreadId===i);if(s!==void 0)return s}let r=e.jobs.get(n);if(r!==void 0)return r;let o={key:n,createdAtMs:t,createdOrdinal:PP(e),agentProvider:void 0,linzumiThreadId:void 0,linzumiThreadTitle:void 0,codexThreadId:n.startsWith("codex:")?n.slice(6):void 0,tokenUsage:void 0,lastIncomingPreview:void 0,lastIncomingAtMs:void 0,lastAssistantPreview:void 0,lastAssistantAtMs:void 0,latestCodexEventId:void 0,eventType:void 0,creditExhaustion:void 0,queueDepth:void 0,turnId:void 0,updatedAtMs:t};return e.jobs.set(n,o),o}function l3(e){return Nke(e)[0]}function iCe(e,n,t){return[e.key===n?">":" ",cCe(e),RP(e.codexThreadId,e.agentProvider),Bc(e.lastIncomingPreview??"?",50),Di(e.lastIncomingAtMs,t),Bc(e.lastAssistantPreview??"?",50),Di(e.lastAssistantAtMs,t),fCe(e.latestCodexEventId),Bc(e.eventType??"?",34)]}function k3(){return[" ","?","?","?","?","?","?","?","?"]}function sCe(e,n){switch(e){case"kandan.codex_output_forwarded":return w3(n);case"kandan.codex_delta_forwarded":return"assistant_delta";case"kandan.codex_reasoning_delta_forwarded":return"reasoning_delta";case"kandan.codex_command_output_forwarded":return`command_output ${Ne(n.stream)}`;case"kandan.codex_file_change_forwarded":return"file_change";case"kandan.codex_web_search_progress_forwarded":return"search_progress";default:return e}}function aCe(e){switch(e){case"kandan.message_queued":return"message_queued";case"codex.turn_starting":return"turn_starting";default:return e}}function dCe(e){if(e.length===0)return"";let n=cke.map(r=>r.width),t=n.map(r=>"-".repeat(r)).join("-+-");return e.map((r,o)=>{let i=r.map((s,a)=>lCe(s,n[a]??uCe(s))).join(" | ");return o===0?`${i}
1493
+ `)}function nCe(e){let n=Array.from(e.discovery.values()),t=n.reduce((o,i)=>o+i.placesSearched,0);return`Onboarding discovery: ${n.some(o=>["starting","running"].includes(o.status))?"searching":"finished/idle"} Places searched: ${t}`}function tCe(e,n){switch(n){case"r":e.mode={type:"raw_all"};break;case p0:e.mode={type:"table"};break;case eke:{let t=_0(e,gd(e));t!==void 0&&(e.mode={type:"raw_job",jobKey:t});break}case nke:Gf(e,-1);break;case tke:Gf(e,1);break;default:if(p3(n)){e.mode={type:"table"};break}for(let t of f3(n))Gf(e,t==="up"?-1:1);break}}function Uc(e,n,t){let r=ge(n.claude_session_id),o=_P(e,{...n,linzumi_thread_id:ge(n.linzumi_thread_id)??ge(n.thread_id),codex_thread_id:ge(n.codex_thread_id)??r},t);return o.agentProvider="claude",r!==void 0&&(o.codexThreadId=r),o}function _P(e,n,t){let r=ge(n.linzumi_thread_id),o=ge(n.codex_thread_id),i=o!==void 0?Array.from(e.jobs.values()).find(u=>u.codexThreadId===o):void 0;if(i!==void 0)return rCe(e,i,r);let s=r===void 0?o===void 0?"job:unknown":`codex:${o}`:`linzumi:${r}`,a=e.jobs.get(s);if(a!==void 0)return a;let d={key:s,createdAtMs:qn(n.message_received_at_ms)??t,createdOrdinal:PP(e),agentProvider:void 0,linzumiThreadId:r,linzumiThreadTitle:C3(n),codexThreadId:o,tokenUsage:void 0,lastIncomingPreview:void 0,lastIncomingAtMs:void 0,lastAssistantPreview:void 0,lastAssistantAtMs:void 0,latestCodexEventId:void 0,eventType:void 0,creditExhaustion:void 0,queueDepth:void 0,turnId:void 0,updatedAtMs:t};return e.jobs.set(s,d),d}function rCe(e,n,t){if(t===void 0)return n;let r=`linzumi:${t}`;if(n.key===r)return n.linzumiThreadId=t,n;let o={...n,key:r,linzumiThreadId:t};return e.jobs.delete(n.key),e.jobs.set(r,o),e.selectedJobKey===n.key&&(e.selectedJobKey=r),e.mode.type==="raw_job"&&e.mode.jobKey===n.key&&(e.mode={type:"raw_job",jobKey:r}),e.rawLines.splice(0,e.rawLines.length,...e.rawLines.map(i=>i.jobKey===n.key?{...i,jobKey:r}:i)),o}function oCe(e,n,t){if(n.startsWith("codex:")){let i=n.slice(6),s=Array.from(e.jobs.values()).find(a=>a.codexThreadId===i);if(s!==void 0)return s}let r=e.jobs.get(n);if(r!==void 0)return r;let o={key:n,createdAtMs:t,createdOrdinal:PP(e),agentProvider:void 0,linzumiThreadId:void 0,linzumiThreadTitle:void 0,codexThreadId:n.startsWith("codex:")?n.slice(6):void 0,tokenUsage:void 0,lastIncomingPreview:void 0,lastIncomingAtMs:void 0,lastAssistantPreview:void 0,lastAssistantAtMs:void 0,latestCodexEventId:void 0,eventType:void 0,creditExhaustion:void 0,queueDepth:void 0,turnId:void 0,updatedAtMs:t};return e.jobs.set(n,o),o}function l3(e){return Nke(e)[0]}function iCe(e,n,t){return[e.key===n?">":" ",cCe(e),RP(e.codexThreadId,e.agentProvider),Bc(e.lastIncomingPreview??"?",50),Di(e.lastIncomingAtMs,t),Bc(e.lastAssistantPreview??"?",50),Di(e.lastAssistantAtMs,t),fCe(e.latestCodexEventId),Bc(e.eventType??"?",34)]}function k3(){return[" ","?","?","?","?","?","?","?","?"]}function sCe(e,n){switch(e){case"kandan.codex_output_forwarded":return w3(n);case"kandan.codex_delta_forwarded":return"assistant_delta";case"kandan.codex_reasoning_delta_forwarded":return"reasoning_delta";case"kandan.codex_command_output_forwarded":return`command_output ${Ne(n.stream)}`;case"kandan.codex_file_change_forwarded":return"file_change";case"kandan.codex_web_search_progress_forwarded":return"search_progress";default:return e}}function aCe(e){switch(e){case"kandan.message_queued":return"message_queued";case"codex.turn_starting":return"turn_starting";default:return e}}function dCe(e){if(e.length===0)return"";let n=cke.map(r=>r.width),t=n.map(r=>"-".repeat(r)).join("-+-");return e.map((r,o)=>{let i=r.map((s,a)=>lCe(s,n[a]??uCe(s))).join(" | ");return o===0?`${i}
1494
1494
  ${t}`:i}).join(`
1495
- `)}function uCe(e){return e.length}function IP(e){return e===void 0?"?":Bc(e,18)}function cCe(e){return e.linzumiThreadTitle===void 0?IP(e.linzumiThreadId):pCe(e.linzumiThreadTitle,30)}function C3(e){return ye(e.linzumi_thread_title)??ye(e.thread_title)??ye(e.threadTitle)??ye(e.title)}function RP(e,n){return e===void 0?"?":`${n==="claude"?"claude":"codex"}/...${T3(e,5)}`}function lCe(e,n){return Bc(e,n).padEnd(n," ")}function Bc(e,n){return e.length<=n?e:`${e.slice(0,Math.max(0,n-3))}...`}function pCe(e,n){return e.length<=n?e:e.slice(0,n)}function fCe(e){return e===void 0?"?":T3(e,4)}function T3(e,n){return e.length<=n?e:e.slice(-n)}function Di(e,n){if(e===void 0)return"?";let t=Math.max(0,Math.floor((n-e)/1e3));if(t<60)return`${t}s`;let r=Math.floor(t/60);return r<60?`${r}m`:`${Math.floor(r/60)}h`}function l0(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Ne(e){return ye(e)??qn(e)?.toString()??"?"}function ye(e){return typeof e=="string"&&e.trim()!==""?e:void 0}function mCe(e){return Array.isArray(e)?e:void 0}function hCe(e){return typeof e=="boolean"?e:void 0}function qn(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}var Wf,t3,ZSe,QSe,XSe,p0,YSe,eke,nke,tke,rke,oke,ske,ake,cke,bP,lke,pke,fke,wP,o3,i3,rr,EP=F(()=>{"use strict";U9();K9();H9();n3();lg();ea();c0();Wf={jobs:new Map,discovery:new Map,notices:new Map,rawLines:[],nextJobOrdinal:0,mode:{type:"table"},selectedJobKey:void 0,selectedJobIndexHint:void 0,tokenUsage:void 0,rateLimit:void 0,creditExhaustion:void 0,lastUpdateAtMs:void 0,browserUrl:void 0,workspace:void 0,runnerId:void 0,connectionStale:!1,rosterTruncated:!1},t3=500,ZSe=3,QSe=20,XSe=100,p0="\x1B",YSe="",eke="\r",nke="\x1B[A",tke="\x1B[B",rke=/\x1b\[<[0-9;]*[Mm]|\x1b\[M[\s\S]{3}|\x1b\[[0-9;?]*[A-Za-z@~^`{|}]|\x1bO[A-Za-z0-9]/g,oke=/\x1b(?:\[|O)[^\x1b]*$/;ske=/\x1b\[M|\x1b\[\d+;\d+;\d+M|\x1b\[<\d+;\d+;\d+[mM]|\x1b\[<\d+;\d+;\d+;\d+&w|\x1b\[24[0135]~\[\d+,\d+\]\r|\x1b\[[OI]/,ake=/\x1b(?:\[(?:1;\d+)?|O)([AB])/g;cke=[{width:1},{width:30},{width:16},{width:38},{width:6},{width:42},{width:6},{width:12},{width:24}],bP=`Welcome to the Linzumi runner (version ${jt}).`,lke=["\u2593\u2593\u2557 \u2593\u2593\u2557\u2593\u2593\u2593\u2557 \u2593\u2593\u2557\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2557\u2593\u2593\u2557 \u2593\u2593\u2557\u2593\u2593\u2593\u2557 \u2593\u2593\u2593\u2557\u2593\u2593\u2557","\u2593\u2593\u2551 \u2593\u2593\u2551\u2593\u2593\u2593\u2593\u2557 \u2593\u2593\u2551\u255A\u2550\u2550\u2593\u2593\u2593\u2554\u255D\u2593\u2593\u2551 \u2593\u2593\u2551\u2593\u2593\u2593\u2593\u2557 \u2593\u2593\u2593\u2593\u2551\u2593\u2593\u2551","\u2593\u2593\u2551 \u2593\u2593\u2551\u2593\u2593\u2554\u2593\u2593\u2557 \u2593\u2593\u2551 \u2593\u2593\u2593\u2554\u255D \u2593\u2593\u2551 \u2593\u2593\u2551\u2593\u2593\u2554\u2593\u2593\u2593\u2593\u2554\u2593\u2593\u2551\u2593\u2593\u2551","\u2593\u2593\u2551 \u2593\u2593\u2551\u2593\u2593\u2551\u255A\u2593\u2593\u2557\u2593\u2593\u2551 \u2593\u2593\u2593\u2554\u255D \u2593\u2593\u2551 \u2593\u2593\u2551\u2593\u2593\u2551\u255A\u2593\u2593\u2554\u255D\u2593\u2593\u2551\u2593\u2593\u2551","\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u255A\u2593\u2593\u2593\u2593\u2551\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2557\u255A\u2593\u2593\u2593\u2593\u2593\u2593\u2554\u255D\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2593\u2551\u2593\u2593\u2551","\u255A\u2550\u2550\u2550\u2592\u2592\u2592@@@@@@@@\u2592\u2592\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2592\u2592\u2592@@@@@@@@\u2592\u2592\u255D\u255A\u2550\u255D"," \u2592@@@@@@@@@@@@@@@@\u2592 \u2592@@@@@@@@@@@@@@@@\u2592","@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@"," @@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@"," \u2551\u2551 \u2551\u2551"," \u2551\u2551 \u2551\u2551"," \u2551\u2551 ()-().----. \u2551\u2551"," \u2551\u2551 \"/` ___ ;_________\u2551\u2551_.'"," \u2551\u2551 ` ^^ ^^ \u2551\u2551","\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2568\u2568\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\xB7\xB7\u2500\u2500\u2500\u2500\xB7\xB7\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2568\u2568\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",bP,"Codex is running on this computer and connected to Linzumi.","Active Codex and Claude Code jobs appear below as they run.","You can return to the Linzumi app now."],pke=["\u2593\u2593\u2557 LINZUMI RUNNER \u2593\u2593\u2557","\u2551\u2551 ()-().----. \u2551\u2551","\u2568\u2568\u2500\u2500 connected to Codex and Linzumi \u2500\u2500\u2568\u2568",bP,"Codex is running on this computer and connected to Linzumi.","Active Codex and Claude Code jobs appear below as they run.","You can return to the Linzumi app now."],fke=6,wP=e=>{process.stdout.write(`\x1B[2J\x1B[H${e}`)},o3={initialized:!1},i3={stop:void 0},rr={dashboard:void 0,stop:void 0,stdinWasTtyAtStart:!1,stdoutWasTtyAtStart:!1,constructionFailed:!1}});function yCe(e){let n=new Map;return{report:r=>{let o=r.key??r.message,i=r.audience??"user",s=e.nowMs(),a=n.get(o),d=a===void 0?{key:o,severity:r.severity,message:r.message,audience:i,count:1,firstAtMs:s,lastAtMs:s}:{...a,severity:r.severity,message:r.message,audience:i,count:a.count+1,lastAtMs:s};n.delete(o),n.set(o,d);for(let u of n.keys()){if(n.size<=gCe)break;n.delete(u)}return e.writeAuditEvent(P3,{severity:d.severity,audience:d.audience,key:d.key,message:d.message,count:d.count}),e.tuiActive()?(d.audience==="user"&&e.reportConsoleEvent(P3,{severity:d.severity,key:d.key,message:d.message,count:d.count}),d):(d.count===1&&e.writeStderr(`${xCe(d.severity)}${d.message}
1495
+ `)}function uCe(e){return e.length}function IP(e){return e===void 0?"?":Bc(e,18)}function cCe(e){return e.linzumiThreadTitle===void 0?IP(e.linzumiThreadId):pCe(e.linzumiThreadTitle,30)}function C3(e){return ge(e.linzumi_thread_title)??ge(e.thread_title)??ge(e.threadTitle)??ge(e.title)}function RP(e,n){return e===void 0?"?":`${n==="claude"?"claude":"codex"}/...${T3(e,5)}`}function lCe(e,n){return Bc(e,n).padEnd(n," ")}function Bc(e,n){return e.length<=n?e:`${e.slice(0,Math.max(0,n-3))}...`}function pCe(e,n){return e.length<=n?e:e.slice(0,n)}function fCe(e){return e===void 0?"?":T3(e,4)}function T3(e,n){return e.length<=n?e:e.slice(-n)}function Di(e,n){if(e===void 0)return"?";let t=Math.max(0,Math.floor((n-e)/1e3));if(t<60)return`${t}s`;let r=Math.floor(t/60);return r<60?`${r}m`:`${Math.floor(r/60)}h`}function l0(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Ne(e){return ge(e)??qn(e)?.toString()??"?"}function ge(e){return typeof e=="string"&&e.trim()!==""?e:void 0}function mCe(e){return Array.isArray(e)?e:void 0}function hCe(e){return typeof e=="boolean"?e:void 0}function qn(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}var Wf,t3,ZSe,QSe,XSe,p0,YSe,eke,nke,tke,rke,oke,ske,ake,cke,bP,lke,pke,fke,wP,o3,i3,rr,EP=F(()=>{"use strict";U9();K9();H9();n3();lg();ea();c0();Wf={jobs:new Map,discovery:new Map,notices:new Map,rawLines:[],nextJobOrdinal:0,mode:{type:"table"},selectedJobKey:void 0,selectedJobIndexHint:void 0,tokenUsage:void 0,rateLimit:void 0,creditExhaustion:void 0,lastUpdateAtMs:void 0,browserUrl:void 0,workspace:void 0,runnerId:void 0,connectionStale:!1,rosterTruncated:!1},t3=500,ZSe=3,QSe=20,XSe=100,p0="\x1B",YSe="",eke="\r",nke="\x1B[A",tke="\x1B[B",rke=/\x1b\[<[0-9;]*[Mm]|\x1b\[M[\s\S]{3}|\x1b\[[0-9;?]*[A-Za-z@~^`{|}]|\x1bO[A-Za-z0-9]/g,oke=/\x1b(?:\[|O)[^\x1b]*$/;ske=/\x1b\[M|\x1b\[\d+;\d+;\d+M|\x1b\[<\d+;\d+;\d+[mM]|\x1b\[<\d+;\d+;\d+;\d+&w|\x1b\[24[0135]~\[\d+,\d+\]\r|\x1b\[[OI]/,ake=/\x1b(?:\[(?:1;\d+)?|O)([AB])/g;cke=[{width:1},{width:30},{width:16},{width:38},{width:6},{width:42},{width:6},{width:12},{width:24}],bP=`Welcome to the Linzumi runner (version ${jt}).`,lke=["\u2593\u2593\u2557 \u2593\u2593\u2557\u2593\u2593\u2593\u2557 \u2593\u2593\u2557\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2557\u2593\u2593\u2557 \u2593\u2593\u2557\u2593\u2593\u2593\u2557 \u2593\u2593\u2593\u2557\u2593\u2593\u2557","\u2593\u2593\u2551 \u2593\u2593\u2551\u2593\u2593\u2593\u2593\u2557 \u2593\u2593\u2551\u255A\u2550\u2550\u2593\u2593\u2593\u2554\u255D\u2593\u2593\u2551 \u2593\u2593\u2551\u2593\u2593\u2593\u2593\u2557 \u2593\u2593\u2593\u2593\u2551\u2593\u2593\u2551","\u2593\u2593\u2551 \u2593\u2593\u2551\u2593\u2593\u2554\u2593\u2593\u2557 \u2593\u2593\u2551 \u2593\u2593\u2593\u2554\u255D \u2593\u2593\u2551 \u2593\u2593\u2551\u2593\u2593\u2554\u2593\u2593\u2593\u2593\u2554\u2593\u2593\u2551\u2593\u2593\u2551","\u2593\u2593\u2551 \u2593\u2593\u2551\u2593\u2593\u2551\u255A\u2593\u2593\u2557\u2593\u2593\u2551 \u2593\u2593\u2593\u2554\u255D \u2593\u2593\u2551 \u2593\u2593\u2551\u2593\u2593\u2551\u255A\u2593\u2593\u2554\u255D\u2593\u2593\u2551\u2593\u2593\u2551","\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u255A\u2593\u2593\u2593\u2593\u2551\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2557\u255A\u2593\u2593\u2593\u2593\u2593\u2593\u2554\u255D\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2593\u2593\u2551\u2593\u2593\u2551","\u255A\u2550\u2550\u2550\u2592\u2592\u2592@@@@@@@@\u2592\u2592\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2592\u2592\u2592@@@@@@@@\u2592\u2592\u255D\u255A\u2550\u255D"," \u2592@@@@@@@@@@@@@@@@\u2592 \u2592@@@@@@@@@@@@@@@@\u2592","@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@"," @@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@"," \u2551\u2551 \u2551\u2551"," \u2551\u2551 \u2551\u2551"," \u2551\u2551 ()-().----. \u2551\u2551"," \u2551\u2551 \"/` ___ ;_________\u2551\u2551_.'"," \u2551\u2551 ` ^^ ^^ \u2551\u2551","\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2568\u2568\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\xB7\xB7\u2500\u2500\u2500\u2500\xB7\xB7\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2568\u2568\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",bP,"Codex is running on this computer and connected to Linzumi.","Active Codex and Claude Code jobs appear below as they run.","You can return to the Linzumi app now."],pke=["\u2593\u2593\u2557 LINZUMI RUNNER \u2593\u2593\u2557","\u2551\u2551 ()-().----. \u2551\u2551","\u2568\u2568\u2500\u2500 connected to Codex and Linzumi \u2500\u2500\u2568\u2568",bP,"Codex is running on this computer and connected to Linzumi.","Active Codex and Claude Code jobs appear below as they run.","You can return to the Linzumi app now."],fke=6,wP=e=>{process.stdout.write(`\x1B[2J\x1B[H${e}`)},o3={initialized:!1},i3={stop:void 0},rr={dashboard:void 0,stop:void 0,stdinWasTtyAtStart:!1,stdoutWasTtyAtStart:!1,constructionFailed:!1}});function yCe(e){let n=new Map;return{report:r=>{let o=r.key??r.message,i=r.audience??"user",s=e.nowMs(),a=n.get(o),d=a===void 0?{key:o,severity:r.severity,message:r.message,audience:i,count:1,firstAtMs:s,lastAtMs:s}:{...a,severity:r.severity,message:r.message,audience:i,count:a.count+1,lastAtMs:s};n.delete(o),n.set(o,d);for(let u of n.keys()){if(n.size<=gCe)break;n.delete(u)}return e.writeAuditEvent(P3,{severity:d.severity,audience:d.audience,key:d.key,message:d.message,count:d.count}),e.tuiActive()?(d.audience==="user"&&e.reportConsoleEvent(P3,{severity:d.severity,key:d.key,message:d.message,count:d.count}),d):(d.count===1&&e.writeStderr(`${xCe(d.severity)}${d.message}
1496
1496
  `),d)},notices:()=>Array.from(n.values()),reset:()=>n.clear()}}function xCe(e){switch(e){case"warning":return"WARNING: ";case"error":return"ERROR: ";case"info":return""}}function Zf(e){return _Ce.report(e)}var gCe,P3,_Ce,I3=F(()=>{"use strict";EP();Ut();gCe=50,P3="runner.notice";_Ce=yCe({tuiActive:g0,writeAuditEvent:(e,n)=>me(e,n),reportConsoleEvent:h0,writeStderr:e=>{process.stderr.write(e)},nowMs:Date.now})});function bCe(e){return{mirrorToTerminal:!e.tuiActive,writeAuditEvent:e.captureActive||e.tuiActive}}function R3(e){return n=>{let t=bCe({tuiActive:e.tuiActive(),captureActive:e.capture.active});if(t.mirrorToTerminal&&e.terminal.write(n),!t.writeAuditEvent&&!e.capture.active)return;let r=n.toString();e.capture.active&&e.appendCapturedOutput(r),t.writeAuditEvent&&e.writeAuditEvent("process.output",{pid:e.pid,purpose:"linzumi.thread_runner",stream:e.streamName,chars:r.length,output:r})}}var E3=F(()=>{"use strict"});import{readFileSync as M3,writeFileSync as wCe,mkdirSync as vCe}from"node:fs";import{homedir as SCe}from"node:os";import{dirname as kCe,join as A3,sep as CCe}from"node:path";import{spawn as O3}from"node:child_process";function D3(e){if(typeof e!="string")return;let n=/^\s*v?(\d+)\.(\d+)\.(\d+)/.exec(e);if(n!==null)return[Number(n[1]),Number(n[2]),Number(n[3])]}function w0(e,n){let t=D3(e),r=D3(n);return t===void 0||r===void 0?!1:t[0]!==r[0]?t[0]>r[0]:t[1]!==r[1]?t[1]>r[1]:t[2]>r[2]}function TCe(e){return/^v?\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]*)?$/.test(e.trim())}function $3(e){if(e.env.LINZUMI_SUPERVISED==="1")return{kind:"supervisor_managed"};if(e.env.LINZUMI_ELECTRON_AUTO_CONNECT_RUNNER==="1")return{kind:"electron_managed"};let t=(e.entrypointPath??"").split(/[\\/]/),r=t.lastIndexOf("_npx");if(r===-1||r+1>=t.length)return{kind:"static_install"};let o=t.slice(0,r+2).join(CCe),s=(e.readTextFile??(d=>{try{return M3(d,"utf8")}catch{return}}))(A3(o,"package.json")),a;if(s!==void 0)try{a=JSON.parse(s).dependencies?.[yd]}catch{a=void 0}return a===void 0||a.trim()===""?{kind:"npx",pinned:!1,spec:"latest"}:{kind:"npx",pinned:TCe(a),spec:a.trim()}}function L3(e=process.env){let n=e.LINZUMI_UPDATE_NUDGE_STATE_FILE?.trim();return n!==void 0&&n!==""?n:A3(SCe(),".linzumi","update-nudge-attempt.json")}function v0(e){return{load:()=>{try{let n=JSON.parse(M3(e,"utf8"));return typeof n.fromVersion=="string"&&typeof n.targetVersion=="string"?{fromVersion:n.fromVersion,targetVersion:n.targetVersion,spec:typeof n.spec=="string"?n.spec:"",attemptedAt:typeof n.attemptedAt=="string"?n.attemptedAt:""}:void 0}catch{return}},save:n=>{try{vCe(kCe(e),{recursive:!0}),wCe(e,`${JSON.stringify(n,null,2)}
1497
1497
  `)}catch{}}}}function AP(e,n){let t=n?.spawnImpl??O3,r=n?.timeoutMs??18e4;return new Promise(o=>{let i=t("npx",["--yes",`${yd}@${e}`,"--version"],{stdio:["ignore","pipe","pipe"]}),s="",a=!1,d,u=c=>{a||(a=!0,d!==void 0&&clearTimeout(d),o(c))};d=setTimeout(()=>{try{i.kill("SIGKILL")}catch{}u(void 0)},r),d.unref?.(),i.stdout?.on("data",c=>{s+=String(c)}),i.on("error",()=>u(void 0)),i.on("close",c=>{if(c!==0){u(void 0);return}let l=/(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]*)?)/.exec(s);u(l?.[1])})})}function j3(e){let n=e.spawnImpl??O3,t=e.probeTimeoutMs??18e4,r=o=>`${yd}@${o}`;return async(o,i)=>{let s=i?.isStillIdle??e.isStillIdle,a=i?.recordAttempt??e.recordAttempt,d=await AP(o.spec,{spawnImpl:n,timeoutMs:t});if(d===void 0||!w0(d,e.currentVersion))throw e.log("runner.update_restart_probe_failed",{spec:o.spec,latestVersion:o.latestVersion,currentVersion:e.currentVersion,resolvedVersion:d??null}),new Error(`update restart probe did not resolve a newer version (resolved ${d??"nothing"}, current ${e.currentVersion})`);if(s!==void 0&&!s())throw new b0(d);e.log("runner.update_restart_begin",{spec:o.spec,fromVersion:e.currentVersion,toVersion:d}),a?.(),await e.close();let u=n("npx",["--yes",r(o.spec),...e.argv],{...e.cwd===void 0?{}:{cwd:e.cwd},detached:!0,stdio:"inherit"});u.unref?.(),e.log("runner.update_restart_exec",{spec:o.spec,argv:[...e.argv],replacementPid:u.pid??null}),e.exit(0)}}function F3(e=process.env){let n=MP(e.LINZUMI_UPDATE_DRAIN_AFTER_MS,DP.afterMs);if(n<=0)return;let t=MP(e.LINZUMI_UPDATE_DRAIN_GRACE_MS,DP.graceMs),r=MP(e.LINZUMI_UPDATE_DRAIN_MAX_EXTENSIONS,DP.maxExtensions);return{afterMs:Math.max(n,1e3),graceMs:Math.max(t,1e3),maxExtensions:Math.min(Math.max(r,0),10)}}function q3(e){let n=e.scheduler??{setInterval:(v,b)=>setInterval(v,b),clearInterval:v=>clearInterval(v)},t=e.idleCheckIntervalMs??6e4,r=e.now??(()=>new Date),o=e.restartAttemptStore,i,s,a,d=!1,u=!1,c,l,p=()=>r().getTime(),m=(v,b,k)=>{i={latestVersion:b,currentVersion:e.currentVersion,state:v,detail:k}},f=()=>{a!==void 0&&(n.clearInterval(a),a=void 0)},y=()=>{if(a===void 0&&!u){let v=n.setInterval(S,t);v?.unref?.(),a=v}},_=v=>{if(l===void 0)return;let b=l;l=void 0,e.drain?.hooks.end({redispatchHeldWork:v!=="controller_stopped"}),e.log("runner.update_drain_end",{reason:v,heldForMs:p()-b.beganAtMs,extensionsUsed:b.extensionsUsed,latestVersion:s?.latestVersion??i?.latestVersion??null,currentVersion:e.currentVersion})},w=v=>{let b=s;if(b===void 0)return;d=!0,f(),m("restart_scheduled",b.latestVersion,v==="drain"?"drained - in-flight work finished; restarting gracefully to pick up the new version":"idle - restarting gracefully to pick up the new version");let k=v==="drain"?()=>e.drain?.hooks.isQuiescent()===!0||e.isIdle():e.isIdle;e.performRestart(b,{isStillIdle:k,recordAttempt:()=>o?.save({fromVersion:e.currentVersion,targetVersion:b.latestVersion,spec:b.spec,attemptedAt:r().toISOString()})}).catch(R=>{if(d=!1,R instanceof b0){l!==void 0?m("draining_for_update",b.latestVersion,"update drain: work became active during the update probe; still draining"):(c??=p(),m("deferred_busy",b.latestVersion,"update deferred: work started during the update probe; will restart when idle")),e.log("runner.update_restart_deferred_busy",{latestVersion:b.latestVersion,currentVersion:e.currentVersion,spec:b.spec,resolvedVersion:R.resolvedVersion??null,reason:"work_started_during_probe",drainActive:l!==void 0}),y();return}_("restart_failed"),c=void 0,s=void 0,m("manual_update_required",b.latestVersion,"graceful self-restart failed; update manually"),e.log("runner.update_restart_failed",{latestVersion:b.latestVersion,currentVersion:e.currentVersion,spec:b.spec,message:R instanceof Error?R.message:String(R)})})},S=()=>{if(u||d||s===void 0)return;let v=s;if(e.isIdle()){w(l===void 0?"idle":"drain");return}let b=e.drain;if(b!==void 0){if(l!==void 0){if(b.hooks.isQuiescent()){e.log("runner.update_drain_quiesced",{latestVersion:v.latestVersion,currentVersion:e.currentVersion,drainedForMs:p()-l.beganAtMs,extensionsUsed:l.extensionsUsed}),w("drain");return}if(p()-l.graceStartedAtMs<b.timing.graceMs)return;if(l.extensionsUsed<b.timing.maxExtensions){l.graceStartedAtMs=p(),l.extensionsUsed+=1,e.log("runner.update_drain_grace_extended",{latestVersion:v.latestVersion,currentVersion:e.currentVersion,extension:l.extensionsUsed,maxExtensions:b.timing.maxExtensions,graceMs:b.timing.graceMs});return}let k=l.extensionsUsed;_("grace_exhausted"),c=p(),m("deferred_busy",v.latestVersion,"update drain grace exhausted with work still in flight; deferred again - will retry the drain"),e.log("runner.update_drain_fallback_deferred",{latestVersion:v.latestVersion,currentVersion:e.currentVersion,graceMs:b.timing.graceMs,extensionsUsed:k,rearmAfterMs:b.timing.afterMs});return}c??=p(),!(p()-c<b.timing.afterMs)&&(b.hooks.isEligible!==void 0&&!b.hooks.isEligible()||(l={beganAtMs:p(),graceStartedAtMs:p(),extensionsUsed:0},b.hooks.begin(),m("draining_for_update",v.latestVersion,"update drain: holding new inbound work (queued for post-restart replay); restarting once in-flight turns finish"),e.log("runner.update_drain_begin",{latestVersion:v.latestVersion,currentVersion:e.currentVersion,deferredForMs:p()-c,graceMs:b.timing.graceMs,maxExtensions:b.timing.maxExtensions})))}};return{handleUpdateAvailable:v=>{if(u)return;let b=v.latestVersion;if(!w0(b,e.currentVersion)||b===void 0){e.log("runner.update_nudge_ignored",{latestVersion:b??null,currentVersion:e.currentVersion,reason:"not_newer_than_current"});return}switch(e.log("runner.update_available",{latestVersion:b,currentVersion:e.currentVersion,strategy:e.strategy.kind,reason:v.reason??null}),e.strategy.kind){case"supervisor_managed":m("supervisor_managed",b,"supervisor process manages runner updates; no CLI action");return;case"electron_managed":m("electron_managed",b,"electron app manages runner updates; no CLI action");return;case"static_install":m("manual_update_required",b,`static install cannot self-update; run: npm install -g ${yd}@latest (or your installer's equivalent), then restart the runner`),e.log("runner.update_manual_required",{latestVersion:b,currentVersion:e.currentVersion,strategy:"static_install",action:`npm install -g ${yd}@latest`});return;case"npx":{if(e.strategy.pinned){m("manual_update_required",b,`launched with a version-pinned npx spec (${e.strategy.spec}); a restart would reinstall the SAME version - relaunch with npx ${yd}@latest`),e.log("runner.update_manual_required",{latestVersion:b,currentVersion:e.currentVersion,strategy:"npx_pinned",spec:e.strategy.spec,action:`relaunch with npx ${yd}@latest`});return}let k=o?.load();if(k!==void 0&&k.fromVersion===e.currentVersion&&k.targetVersion===b){m("manual_update_required",b,"a previous self-restart did not land the new version; update manually"),e.log("runner.update_restart_loop_guard",{latestVersion:b,currentVersion:e.currentVersion,previousAttemptAt:k.attemptedAt});return}if(s={spec:e.strategy.spec,latestVersion:b},l!==void 0)return;if(e.isIdle()){S();return}c??=p(),m("deferred_busy",b,"update deferred: active work in progress; will restart when idle"),e.log("runner.update_deferred_busy",{latestVersion:b,currentVersion:e.currentVersion}),y();return}}},status:()=>i,stop:()=>{u=!0,_("controller_stopped"),s=void 0,c=void 0,f()}}}var yd,b0,DP,MP,OP=F(()=>{"use strict";yd="@linzumi/cli";b0=class extends Error{resolvedVersion;constructor(n,t="update self-restart deferred: work became active during the probe window"){super(t),this.name="RestartDeferredBusyError",this.resolvedVersion=n}};DP={afterMs:30*6e4,graceMs:10*6e4,maxExtensions:2},MP=(e,n)=>{if(e===void 0||e.trim()==="")return n;let t=Number(e.trim());return Number.isFinite(t)?Math.floor(t):n}});function z3(){let e=new Map;return{async run(n,t){let o=(e.get(n)??Promise.resolve()).then(t,t),i=o.then(()=>{},()=>{});e.set(n,i);try{return await o}finally{e.get(n)===i&&e.delete(n)}},activeKeyCount(){return e.size}}}var N3=F(()=>{"use strict"});import{mkdirSync as PCe,readFileSync as ICe,writeFileSync as RCe}from"node:fs";import{dirname as J3,basename as ECe,join as DCe}from"node:path";import{randomUUID as MCe}from"node:crypto";function Kc(e,n){for(let t=0;t<e.length;t+=1){let r=e[t]??"";for(let i of n)if(r.startsWith(`${i}=`))return r.slice(i.length+1);let o=e[t+1];if(n.includes(r)&&o!==void 0&&!o.startsWith("--"))return o}}function $Ce(e=process.env){let n=e.LINZUMI_TELEMETRY?.trim().toLowerCase();return n==="0"||n==="false"?!0:e.NODE_ENV==="test"||e.VITEST!==void 0}function LCe(e,n=process.env){let t=n.LINZUMI_TELEMETRY_BASE_URL?.trim();if(t!==void 0&&t!=="")return t.replace(/\/+$/,"");if(e===void 0||e.trim()==="")return Bt;try{return Fn(e)}catch{return Bt}}function jCe(e=process.env){return DCe(J3(Vn(e)),"install-id")}function FCe(e=process.env){let n=jCe(e);try{let r=ICe(n,"utf8").trim();if(r!==""&&r.length<=128)return r}catch{}let t=MCe();try{PCe(J3(n),{recursive:!0}),RCe(n,`${t}
1498
1498
  `,{mode:384})}catch{}return t}function qCe(e,n){let t=e.severity??"INFO";return{resourceLogs:[{resource:{attributes:B3({"service.name":"linzumi-cli","service.version":jt,"linzumi.install_id":n.installId,"os.platform":n.platform??process.platform,"host.arch":n.arch??process.arch})},scopeLogs:[{scope:{name:"linzumi-cli"},logRecords:[{timeUnixNano:n.timeUnixNano??`${BigInt(Date.now())*1000000n}`,severityNumber:t==="ERROR"?17:9,severityText:t,body:{stringValue:e.name},attributes:B3(e.attributes??{})}]}]}]}}function B3(e){return Object.entries(e).map(([n,t])=>({key:n,value:zCe(t)}))}function zCe(e){switch(typeof e){case"string":return{stringValue:e};case"boolean":return{boolValue:e};default:return Number.isSafeInteger(e)?{intValue:`${e}`}:{doubleValue:e}}}function K3(e){let n=e instanceof Error?e.constructor.name:typeof e,r=(e instanceof Error?e.message:String(e)).replace(/(?:[A-Za-z]:)?(?:[\\/][^\s\\/:"']+){2,}/g,i=>ECe(i)),o=r.length>U3?`${r.slice(0,U3)}\u2026`:r;return{error_class:n,error_message:o}}function Vc(e,n={}){try{let t=n.env??process.env;if($Ce(t))return Promise.resolve();let r=qCe(e,{installId:FCe(t)}),o=n.fetchImpl??fetch;return Promise.resolve().then(()=>o(`${LCe(n.apiUrl,t)}${ACe}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(r),signal:AbortSignal.timeout(n.timeoutMs??OCe)})).then(i=>{i.arrayBuffer().catch(()=>{})}).catch(()=>{})}catch{return Promise.resolve()}}var ACe,OCe,U3,S0=F(()=>{"use strict";Qs();wo();ki();ea();ACe="/api/v1/observability/logs",OCe=2e3,U3=200});import{spawn as NCe}from"node:child_process";import{cpSync as G3,existsSync as Ur,mkdirSync as FP,readdirSync as LP,readFileSync as Z3,realpathSync as UCe,renameSync as Q3,rmSync as Xf,statSync as BCe,utimesSync as X3,writeFileSync as Y3}from"node:fs";import{homedir as e7}from"node:os";import{basename as JCe,dirname as xd,isAbsolute as KCe,join as Wn,relative as VCe,resolve as WCe,sep as V3}from"node:path";function jP(e){let n=e.split(/[\\/]/);return n.includes("_npx")||n.some(t=>t.startsWith("dlx-"))?!0:e.includes(`.bun${V3}install${V3}cache`)}function n7(e,n){if(e===void 0||e.trim()==="")throw new Error(GCe);return KCe(e)?e:WCe(n,e)}function ZCe(e){try{let n=JSON.parse(Z3(Wn(e,"package.json"),"utf8")),t=typeof n.name=="string"?n.name.trim():"",r=typeof n.version=="string"?n.version.trim():"";return t===""||r===""?void 0:{name:t,version:r}}catch{return}}function QCe(e){let n=e;for(;;){let t=ZCe(n);if(t!==void 0)return{dir:n,...t};let r=xd(n);if(r===n)return;n=r}}function XCe(e,n){let t=n;for(;;){let r=Wn(t,"node_modules",...e.split("/"));if(Ur(Wn(r,"package.json")))return r;let o=xd(t);if(o===t)return;t=o}}function YCe(e){try{let t=JSON.parse(Z3(Wn(e,"package.json"),"utf8")).dependencies;return t!==null&&typeof t=="object"&&!Array.isArray(t)?Object.keys(t):[]}catch{return[]}}function eTe(e){let n=Wn(e,"node_modules"),t;try{t=LP(n)}catch{return[]}let r=[];for(let o of t)if(!o.startsWith("."))if(o.startsWith("@"))try{for(let i of LP(Wn(n,o)))i.startsWith(".")||r.push(Wn(n,o,i))}catch{}else r.push(Wn(n,o));return r.filter(o=>Ur(Wn(o,"package.json")))}function nTe(e){let n=[],t=new Set,r=new Set,o=i=>{if(!t.has(i)){t.add(i),n.push(...YCe(i));for(let s of eTe(i))o(s)}};for(o(e.rootPackageDir);;){let i=n.shift();if(i===void 0)return;if(r.has(i))continue;r.add(i);let s=XCe(i,e.flatResolveBase);if(s===void 0){e.skipped.push(i);continue}let a=Wn(e.destNodeModules,...i.split("/"));FP(xd(a),{recursive:!0}),G3(s,a,{recursive:!0,verbatimSymlinks:!1}),o(s)}}function t7(e){return e.replaceAll(/[^0-9A-Za-z._-]/g,"-")}function Wc(e,n,t=HCe){let r;try{r=LP(e)}catch{return}let o=r.filter(s=>s!==n).map(s=>{try{return{entry:s,mtimeMs:BCe(Wn(e,s)).mtimeMs}}catch{return{entry:s,mtimeMs:0}}}).sort((s,a)=>a.mtimeMs-s.mtimeMs),i=[...o.filter(({entry:s})=>s.includes(".building-")),...o.filter(({entry:s})=>!s.includes(".building-")).slice(Math.max(0,t-1))];for(let{entry:s}of i)try{Xf(Wn(e,s),{recursive:!0,force:!0})}catch{}}function tTe(e){let n=e;for(;;){let t=xd(n);if(t===n)return e;if(JCe(t)==="node_modules")return xd(t);n=t}}function rTe(e){let n=UCe(e.originalEntryPath),t=QCe(xd(n));if(t===void 0)throw new Error(`could not locate a package.json above the entry script at ${n}`);let r=Wn(e.homeDir,".linzumi","worker-entry"),o=t7(t.version),i=Wn(r,o),s=VCe(t.dir,n),a=Wn(i,"node_modules",...t.name.split("/")),d=Wn(a,s);if(Ur(Wn(i,Qf))&&Ur(d)){try{let p=new Date;X3(i,p,p)}catch{}return e.onEvent("worker_entry_mirror_reused",{entryPath:d,version:t.version}),Wc(r,o),{kind:"mirrored",entryPath:d,originalEntryPath:e.originalEntryPath}}let u=`${i}.building-${process.pid}-${Date.now()}`,c=Date.now(),l=[];try{let p=Wn(u,"node_modules",...t.name.split("/"));FP(xd(p),{recursive:!0}),G3(t.dir,p,{recursive:!0,verbatimSymlinks:!1}),nTe({rootPackageDir:t.dir,flatResolveBase:tTe(t.dir),destNodeModules:Wn(u,"node_modules"),skipped:l}),Y3(Wn(u,Qf),`${JSON.stringify({name:t.name,version:t.version,mirroredFrom:t.dir,mirroredAt:new Date().toISOString()})}
@@ -1510,15 +1510,15 @@ ${t}`:i}).join(`
1510
1510
  `}function HTe(e){let n=e.indexOf(":"),t=e.indexOf(":",n+1);if(n<=0||t<=n)return;let r=Number.parseInt(e.slice(0,n),10),o=e.slice(n+1,t),i=e.slice(t+1);if(!Number.isInteger(r)||r<=0)return;let s=Buffer.from(i,"utf8");if(s.length!==r||E7(s)!==o)return;let a;try{a=JSON.parse(i)}catch{return}if(Q(a))return GTe(a)}function GTe(e){let n=e.op,t=e.sourceSeq;if(!(typeof t!="number"||!Number.isInteger(t))){if(n==="ack")return{op:"ack",sourceSeq:t};if(n==="dead")return{op:"dead",sourceSeq:t};if(n==="attempt"){let r=e.attempts;return typeof r!="number"||!Number.isInteger(r)?void 0:{op:"attempt",sourceSeq:t,attempts:r}}if(n==="enqueue"){let r=e.kind==="replay"?"replay":"live",o=Q(e.payload)?e.payload:void 0,i=typeof e.enqueuedAtMs=="number"&&Number.isFinite(e.enqueuedAtMs)?e.enqueuedAtMs:void 0;return o===void 0||i===void 0?void 0:{op:"enqueue",sourceSeq:t,kind:r,payload:o,enqueuedAtMs:i}}}}function ZTe(e){let n=new Map,t=new Map,r=new Set,o,i=!1;for(let d=0;d<e.length;d+=1){let u=e[d];if(u==="")continue;let c=HTe(u);if(c===void 0){i=!0;break}switch(c.op){case"enqueue":{if(o=o===void 0?c.sourceSeq:Math.max(o,c.sourceSeq),r.has(c.sourceSeq))break;n.set(c.sourceSeq,{sourceSeq:c.sourceSeq,kind:c.kind,payload:c.payload,enqueuedAtMs:c.enqueuedAtMs,attempts:0});break}case"ack":{let l=n.get(c.sourceSeq);l!==void 0&&t.set(c.sourceSeq,l),n.delete(c.sourceSeq),o=o===void 0?c.sourceSeq:Math.max(o,c.sourceSeq);break}case"dead":{n.delete(c.sourceSeq),t.delete(c.sourceSeq),r.add(c.sourceSeq),o=o===void 0?c.sourceSeq:Math.max(o,c.sourceSeq);break}case"attempt":{let l=n.get(c.sourceSeq);l!==void 0&&n.set(c.sourceSeq,{...l,attempts:c.attempts});break}}}let s=[...n.values()].sort((d,u)=>d.sourceSeq-u.sourceSeq),a=[...t.values()].sort((d,u)=>d.sourceSeq-u.sourceSeq);return{entries:s,ackedEntries:a,highWaterSourceSeq:o,tornTail:i}}function M7(e,n,t){return n.maxAttempts>0&&e.attempts>=n.maxAttempts||n.maxAgeMs>0&&t-e.enqueuedAtMs>=n.maxAgeMs}function HP(e,n,t={}){let r=t.fsyncFd??(p=>C7(p)),o=t.fsyncDirFd??(p=>C7(p)),i=QTe(e,n),s=new Map;for(let p of i.entries)s.set(p.sourceSeq,p);let a=new Map;for(let p of i.ackedEntries)a.set(p.sourceSeq,p);let d=i.highWaterSourceSeq,u=i.tornTail,c=p=>{try{T7(WP(e),{recursive:!0});let m=VP(e,"a");try{P7(m,I7(p),null,"utf8"),r(m)}finally{KP(m)}}catch(m){n("inbound_queue.append_failed",{path:e,op:p.op,sourceSeq:p.sourceSeq,message:m instanceof Error?m.message:String(m)})}},l=()=>{try{let p=VP(WP(e),"r");try{o(p)}finally{KP(p)}}catch{}};return{enqueue:(p,m,f,y)=>{if(d!==void 0&&p<=d)return{accepted:!1,reason:"already_seen"};let _={sourceSeq:p,kind:m,payload:f,enqueuedAtMs:y,attempts:0};return c({op:"enqueue",sourceSeq:p,kind:m,payload:f,enqueuedAtMs:y}),s.set(p,_),d=p,{accepted:!0,entry:_}},entries:()=>[...s.values()].sort((p,m)=>p.sourceSeq-m.sourceSeq),ackedEntries:()=>[...a.values()].sort((p,m)=>p.sourceSeq-m.sourceSeq),head:()=>{let p;for(let m of s.values())(p===void 0||m.sourceSeq<p.sourceSeq)&&(p=m);return p},recordAttempt:p=>{let m=s.get(p);if(m===void 0)return 0;let f=m.attempts+1;return s.set(p,{...m,attempts:f}),c({op:"attempt",sourceSeq:p,attempts:f}),f},ack:p=>{let m=s.get(p);m!==void 0&&(c({op:"ack",sourceSeq:p}),a.set(p,m),s.delete(p))},deadLetter:p=>{let m=s.get(p);if(m!==void 0)return c({op:"dead",sourceSeq:p}),s.delete(p),a.delete(p),n("inbound_queue.dead_lettered",{path:e,sourceSeq:p,attempts:m.attempts,ageMs:Date.now()-m.enqueuedAtMs}),m},highWaterSourceSeq:()=>d,tornTail:()=>u,reconciledTornTail:()=>{u=!1},compact:()=>{let p=[...s.values()].sort((m,f)=>m.sourceSeq-f.sourceSeq).flatMap(m=>{let f=[{op:"enqueue",sourceSeq:m.sourceSeq,kind:m.kind,payload:m.payload,enqueuedAtMs:m.enqueuedAtMs}];return m.attempts>0&&f.push({op:"attempt",sourceSeq:m.sourceSeq,attempts:m.attempts}),f});d!==void 0&&!s.has(d)&&p.push({op:"ack",sourceSeq:d});try{T7(WP(e),{recursive:!0});let m=`${e}.tmp`,f=VP(m,"w");try{P7(f,p.map(I7).join(""),null,"utf8"),r(f)}finally{KP(f)}KTe(m,e),l(),a.clear()}catch(m){n("inbound_queue.compact_failed",{path:e,message:m instanceof Error?m.message:String(m)})}}}}function QTe(e,n){let t;try{t=JTe(e,"utf8")}catch(o){return o?.code==="ENOENT"?{entries:[],ackedEntries:[],highWaterSourceSeq:void 0,tornTail:!1}:(n("inbound_queue.read_failed",{path:e,message:o instanceof Error?o.message:String(o)}),{entries:[],ackedEntries:[],highWaterSourceSeq:void 0,tornTail:!1})}let r=ZTe(t.split(`
1511
1511
  `));return r.tornTail&&n("inbound_queue.torn_tail_detected",{path:e,liveEntries:r.entries.length,highWaterSourceSeq:r.highWaterSourceSeq??null}),r}function GP(){let e=process.env.LINZUMI_INBOUND_QUEUE_DIR?.trim();return e!==void 0&&e!==""?e:R7(WTe(),".linzumi","inbound-queue")}function ZP(e,n,t){let r=`${e}:${n}:${t}`,o=r.replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^[-.]+|[-.]+$/g,"").slice(0,80),i=VTe("sha256").update(r).digest("hex").slice(0,12),s=o===""?"thread":o;return R7(GP(),`${s}.${i}.log`)}var D7,QP=F(()=>{"use strict";Mn();D7={maxAttempts:8,maxAgeMs:1800*1e3}});function xs(e,n,t){return`${e} ${n} ${t}`}function nm(e,n){return e===void 0||n>e}function k0(e,n,t){e.onAdvance(n,t),e.flush()}function A7(){let e=new Map;return{mark:(n,t)=>{let r=e.get(n);r===void 0?e.set(n,new Set([t])):r.add(t)},has:(n,t)=>e.get(n)?.has(t)??!1,clearSeq:(n,t)=>{let r=e.get(n);r!==void 0&&(r.delete(t),r.size===0&&e.delete(n))},clearThread:n=>{e.delete(n)}}}function O7(e,n,t,r){return!nm(e,r)||n.has(t,r)}function XTe(e){let n;for(let t of e)(t.status==="processed"||t.status==="failed")&&(n=n===void 0?t.sourceSeq:Math.max(n,t.sourceSeq));return n}function tm(e,n){let t=XTe(n);return e===void 0?t:t===void 0?e:Math.max(e,t)}function $7(e){if(!Array.isArray(e))return[];let n=[];for(let t of e){if(!Q(t))continue;let r=t.threadId;if(typeof r!="string")continue;let o=t.channelId,i=typeof o=="string"?o:typeof o=="number"?String(o):"",s=t.highestProcessedSourceSeq,a=t.leaseEpoch;n.push({channelId:i,threadId:r,highestProcessedSourceSeq:typeof s=="number"&&Number.isInteger(s)?s:void 0,leaseEpoch:typeof a=="number"&&Number.isInteger(a)?a:void 0})}return n}function L7(e){return e.highestProcessedSourceSeq===void 0?[]:[{sourceSeq:e.highestProcessedSourceSeq,status:"processed"}]}var XP=F(()=>{"use strict";Mn()});function C0(e){return typeof e=="number"&&Number.isInteger(e)?e:void 0}function nPe(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function F7(e){let n=new Map,t=new Map,r=(o,i)=>{let s=n.get(o),a=i.atMs===void 0?s?.newestAtMs:s?.newestAtMs===void 0?i.atMs:Math.max(s.newestAtMs,i.atMs);n.set(o,{sourceSeq:o,sawActivity:(s?.sawActivity??!1)||(i.activity??!1),lastMessageStateStatus:i.stateStatus??s?.lastMessageStateStatus,newestAtMs:a})};for(let o of e.split(`
1512
1512
  `)){if(o.trim()==="")continue;let i;try{i=JSON.parse(o)}catch{continue}if(!Q(i))continue;let s=i.t;if(s==="enqueue"||s==="pending"){let a=typeof i.kind=="string"?i.kind:void 0,d=Q(i.data)?i.data:void 0,u=nPe(i.atMs);if(a===void 0||d===void 0)continue;if(a===YTe){let c=C0(d.seq),l=typeof d.status=="string"?d.status:void 0,p=C0(i.seq);if(c===void 0||l===void 0)continue;p!==void 0&&t.set(p,c),r(c,{stateStatus:l,atMs:u})}else if(ePe.has(a)){let c=C0(d.source_seq);if(c===void 0)continue;r(c,{activity:!0,atMs:u})}continue}if(s==="coalesce"){let a=C0(i.seq),d=Q(i.data)?i.data:void 0;if(a===void 0||d===void 0)continue;let u=t.get(a),c=typeof d.status=="string"?d.status:void 0;u!==void 0&&c!==void 0&&r(u,{stateStatus:c})}}return n}function YP(e,n){let t=n.maxSignalAgeMs??tPe,r=e.appliedFloorSeq,o=p=>r===void 0||p>r,i=p=>p===void 0?!0:n.nowMs-p<=t,s=[],a=new Set;for(let p of e.pendingInboundSeqs)a.add(p),o(p)&&s.push({sourceSeq:p,shape:"queued_never_run"});for(let p of e.outboxTurnSignals.values()){if(!o(p.sourceSeq)||a.has(p.sourceSeq)||!i(p.newestAtMs))continue;let m=p.lastMessageStateStatus;m!==void 0&&j7.has(m)||(p.sawActivity||m!==void 0)&&s.push({sourceSeq:p.sourceSeq,shape:"killed_mid_turn"})}for(let p of e.ackedInboundSeqs){if(!o(p)||a.has(p))continue;let m=e.outboxTurnSignals.get(p),f=m?.lastMessageStateStatus;f!==void 0&&j7.has(f)||m?.sawActivity===!0||f!==void 0||s.push({sourceSeq:p,shape:"accepted_never_framed"})}s.sort((p,m)=>p.sourceSeq-m.sourceSeq);let d=e.pendingInboundSeqs.length>0,u=s.filter(p=>p.shape!=="queued_never_run").map(p=>p.sourceSeq),c=d||s.length>0,l=!c&&e.inboundHighWaterSeq!==void 0&&o(e.inboundHighWaterSeq);return{unfinished:c,seqs:s,hasPendingInbound:d,loudTerminalSeqs:u,watermarkGapOnly:l}}async function q7(e){let n=e.nowMs??Date.now(),t=e.sleep??aPe,r=Math.max(1,e.concurrency??rPe),o=e.staggerMs??oPe,i=e.retryBackoffMs??iPe,s=e.respawnRetryBackoffMs??sPe,a=[],d=0,u=0;for(let b of e.records){let k;try{k=YP(e.inspect(b),{nowMs:n,maxSignalAgeMs:e.maxSignalAgeMs})}catch(R){u+=1,e.log("runner.resume_scan_inspect_failed",{thread_id:e.threadId(b),message:R instanceof Error?R.message:String(R)});continue}k.unfinished?a.push({record:b,threadId:e.threadId(b),work:k}):k.watermarkGapOnly&&(d+=1)}e.log("runner.resume_scan",{threads_scanned:e.records.length,unfinished_found:a.length,pending_inbound_threads:a.filter(b=>b.work.hasPendingInbound).length,loud_terminal_threads:a.filter(b=>b.work.loudTerminalSeqs.length>0).length,watermark_gap_only_threads:d,inspect_failed:u,concurrency:r,stagger_ms:o});let c={threadsScanned:e.records.length,unfinishedFound:a.length,resumed:0,failed:0,abortedShutdown:!1};if(a.length===0)return c;let l=0,p=0,m=0,f=!1,y=0,_=Promise.resolve(),w=()=>{let b=_;return _=_.then(()=>o>0?t(o):void 0),b},S=async b=>{let{record:k,threadId:R,work:P}=b;e.log("runner.resume_respawn",{thread_id:R,reason:P.seqs.map(D=>D.shape).join(","),seqs:P.seqs.map(D=>D.sourceSeq),pending_inbound:P.hasPendingInbound});let L=!0;if(P.hasPendingInbound){let D=!1;for(let j=0;j<=i.length;j+=1){if(e.shuttingDown()){f=!0,y+=1;return}let q;try{q=await e.resumePendingInbound(k)}catch(B){q="retry",e.log("runner.resume_drain_attempt_failed",{thread_id:R,attempt:j+1,message:B instanceof Error?B.message:String(B)})}if(q==="clear"){D=!0;break}let E=i[j];if(E===void 0)break;e.log("runner.resume_retry_scheduled",{thread_id:R,attempt:j+1,backoff_ms:E}),await t(E)}D||(L=!1,e.log("runner.resume_failed",{thread_id:R,phase:"inbound_drain",retries:i.length}))}if(P.loudTerminalSeqs.length>0){if(e.shuttingDown()){f=!0,y+=1;return}let D=!1;for(let j=0;j<=s.length;j+=1){try{D=await e.respawnWorker(k)}catch(E){D=!1,e.log("runner.resume_respawn_attempt_failed",{thread_id:R,attempt:j+1,message:E instanceof Error?E.message:String(E)})}if(D)break;let q=s[j];if(q===void 0||e.shuttingDown())break;await t(q)}for(let j of P.loudTerminalSeqs){if(e.seqInFlight?.(k,j)===!0){e.log("runner.resume_terminal_skipped_in_flight",{thread_id:R,seq:j});continue}let q=P.seqs.find(E=>E.sourceSeq===j)?.shape??"killed_mid_turn";try{await e.publishInterruptedTurnState(k,j,q)}catch(E){L=!1,e.log("runner.resume_terminal_publish_failed",{thread_id:R,seq:j,message:E instanceof Error?E.message:String(E)})}}D||(L=!1,e.log("runner.resume_failed",{thread_id:R,phase:"respawn",retries:s.length}))}L?(p+=1,e.log("runner.resume_completed",{thread_id:R,seqs:P.seqs.map(D=>D.sourceSeq)})):m+=1},v=async()=>{for(;;){if(f||e.shuttingDown()){f=!0;return}let b=l;if(b>=a.length)return;if(l+=1,await w(),f||e.shuttingDown()){f=!0;return}let k=a[b];if(k===void 0)return;try{await S(k)}catch(R){m+=1,e.log("runner.resume_failed",{thread_id:k.threadId,phase:"unexpected",message:R instanceof Error?R.message:String(R)})}}};return await Promise.all(Array.from({length:Math.min(r,a.length)},()=>v())),f&&e.log("runner.resume_scan_aborted_shutdown",{completed:p+m,aborted_in_flight:y,remaining:a.length-(p+m)-y}),{...c,resumed:p,failed:m,abortedShutdown:f}}var j7,YTe,ePe,tPe,rPe,oPe,iPe,sPe,aPe,z7=F(()=>{"use strict";Mn();j7=new Set(["processed","failed","ignored","interrupted","stop_failed"]),YTe="pipeline.message_state",ePe=new Set(["pipeline.post_streamed_row","pipeline.stream_snapshot","pipeline.finalize_row","pipeline.post_completed_row"]);tPe=1440*60*1e3;rPe=3,oPe=750,iPe=[2e3,5e3,1e4,2e4,4e4,6e4,9e4],sPe=[2e3,1e4],aPe=e=>new Promise(n=>setTimeout(n,e))});function N7(e){let n=e?.now??Date.now,t=new Map,r=new Map,o=new Map;return{runExclusive:(s,a,d)=>{let u=t.get(s)??Promise.resolve();r.set(s,(r.get(s)??0)+1);let c=n(),l={started:!1,cancelled:!1,settled:!1},p,m,f=()=>{p!==void 0&&(clearTimeout(p),p=void 0),m!==void 0&&(clearTimeout(m),m=void 0)},y,_=u.catch(()=>{}).then(()=>{if(!l.cancelled)return l.started=!0,o.set(s,n()),p!==void 0&&(clearTimeout(p),p=void 0),d!==void 0&&d>0&&(m=setTimeout(()=>{y?.(new bd(s,d))},d),m.unref?.()),a()}),w;d===void 0||d<=0?w=_:w=new Promise((v,b)=>{y=k=>{l.settled||(l.settled=!0,f(),b(k))},p=setTimeout(()=>{if(l.started)return;l.cancelled=!0;let k=o.get(s);y?.(new Hc({threadId:s,timeoutMs:d,queuedForMs:n()-c,blockedSectionAgeMs:k===void 0?void 0:n()-k}))},d),p.unref?.(),_.then(k=>{l.settled||(l.settled=!0,f(),v(k))},k=>{l.settled||(l.settled=!0,f(),b(k))})});let S=_.then(()=>{},()=>{});return t.set(s,S),S.then(()=>{l.started&&o.delete(s),f();let v=(r.get(s)??1)-1;v<=0?(r.delete(s),t.get(s)===S&&t.delete(s)):r.set(s,v)}),w},isBusy:s=>(r.get(s)??0)>0,status:s=>{let a=r.get(s)??0,d=o.get(s),u=d!==void 0;return{busy:a>0,queuedCount:Math.max(0,a-(u?1:0)),runningSectionAgeMs:u?n()-d:void 0}},activeThreadCount:()=>t.size}}var bd,Hc,eI=F(()=>{"use strict";bd=class extends Error{threadId;timeoutMs;constructor(n,t,r){super(r??`reconciler section for thread ${n} exceeded ${t}ms`),this.name="ReconcilerLockTimeoutError",this.threadId=n,this.timeoutMs=t}},Hc=class extends bd{queuedForMs;blockedSectionAgeMs;constructor(n){super(n.threadId,n.timeoutMs,`reconciler section for thread ${n.threadId} never started within ${n.timeoutMs}ms (queued ${n.queuedForMs}ms behind an unsettled prior section${n.blockedSectionAgeMs===void 0?"":` running for ${n.blockedSectionAgeMs}ms`}); the section was cancelled and will not run`),this.name="ReconcilerLockQueuedTimeoutError",this.queuedForMs=n.queuedForMs,this.blockedSectionAgeMs=n.blockedSectionAgeMs}}});async function dPe(e,n,t){let r=!1,o=new Promise(a=>{setTimeout(()=>a("timeout"),n).unref?.()}),i=(async()=>(await e.stopAccepting(),await e.interruptInFlightTurns?.(),await e.checkpointCurrentTurn(),await e.flushInboundQueues(),await e.flushOutbox(),"done"))(),s=await Promise.race([i.then(()=>"done"),o]);return s==="timeout"?(r=!0,t("runner.drain_timed_out",{deadlineMs:n})):t("runner.drain_complete",{}),{drained:s==="done",timedOut:r}}function U7(e){let n=e.exit??((a,d)=>process.exit(a)),t=e.forceExit??(a=>process.exit(a)),r=e.signals??["SIGTERM","SIGINT"],o=!1,i=a=>{if(o){e.log("runner.drain_signal_ignored",{signal:a});return}o=!0,e.log("runner.drain_started",{signal:a}),dPe(e.steps,e.deadlineMs,e.log).catch(d=>(e.log("runner.drain_failed",{message:d instanceof Error?d.message:String(d)}),{drained:!1,timedOut:!1})).finally(()=>{try{n(0,a)}catch(d){e.log("runner.drain_exit_threw",{signal:a,message:d instanceof Error?d.message:String(d)});try{t(0)}catch{}}})},s=r.map(a=>{let d=()=>i(a);return process.on(a,d),{signal:a,handler:d}});return{uninstall:()=>{for(let{signal:a,handler:d}of s)process.off(a,d)},trigger:a=>i(a)}}function rm(e,n){if(e===void 0||e.trim()==="")return n;let t=Number(e.trim());return!Number.isFinite(t)||t<=0?n:Math.max(Math.floor(t),1e3)}function T0(e=process.env){return rm(e.LINZUMI_UPDATE_RESTART_DRAIN_MAX_WAIT_MS,cPe)}function B7(e=process.env,n=T0(e),t=!1){let r=t?rm(e.LINZUMI_UPDATE_RESTART_DRAIN_OVERLAP_HARD_CAP_MS,pPe):rm(e.LINZUMI_UPDATE_RESTART_DRAIN_HARD_CAP_MS,lPe);return Math.max(r,n)}function J7(e=process.env){return rm(e.LINZUMI_UPDATE_RESTART_DRAIN_ACTIVITY_IDLE_MS,nI)}function rI(e){return(e instanceof Error?e.message:String(e??"")).startsWith(K7)}function H7(e=process.env){return rm(e.LINZUMI_UPDATE_DRAIN_HELD_TURN_MAX_WAIT_MS,hPe)}function G7(e){return e.controlType!=="reconnect_thread"?{hold:!1,refuse:"not_reconnect_thread"}:e.channel===void 0||e.threadId===void 0||e.sourceSeq===void 0||e.workDescription===void 0||e.workDescription===""?{hold:!1,refuse:"missing_turn_payload"}:e.hasRegistryRecord?{hold:!0}:e.workspace===void 0||e.codexThreadId===void 0||e.cwd===void 0||e.agentProvider==="claude-code"?{hold:!1,refuse:"no_resumable_session_identity"}:{hold:!0}}function Y7(e){return e.supervised&&e.platform!=="win32"}function gPe(e){if(e.waitedMs>=e.hardCapMs)return{force:!0,cause:"absolute_cap",idleMs:e.lastActivityAtMs===void 0?void 0:Math.max(0,e.nowMs-e.lastActivityAtMs)};if(e.waitedMs<e.maxWaitMs)return{force:!1};if(e.lastActivityAtMs===void 0)return{force:!0,cause:"no_liveness_signal"};let n=e.nowMs-e.lastActivityAtMs;return n>=(e.activityIdleMs??nI)?{force:!0,cause:"silence",idleMs:n}:{force:!1}}function yPe(e){let n=e.scheduler??{setInterval:(p,m)=>setInterval(p,m),clearInterval:p=>clearInterval(p)},t=e.now??(()=>Date.now()),r=e.pollMs??fPe,o=Math.max(e.hardCapMs??e.maxWaitMs,e.maxWaitMs),i=e.waitingLogIntervalMs??mPe,s=!1,a=!1,d,u=()=>{d!==void 0&&(n.clearInterval(d),d=void 0)},c=()=>e.hooks.inFlightTurns?.()??[],l=p=>`${p.engine}:${p.threadId}:${p.turnId??""}`;return{requestDrain:p=>{if(s){e.log("runner.update_restart_drain_request_ignored",{trigger:p});return}s=!0;let m=t(),f=e.hooks.isWaitEligible?.()??!0;e.log("runner.update_restart_drain_started",{trigger:p,maxWaitMs:e.maxWaitMs,hardCapMs:o,activityIdleMs:e.activityIdleMs??nI,waitEligible:f}),e.hooks.beginDraining();let y=v=>{a=!0,u();let b=t()-m;v||e.log("runner.drain_completed",{duration_ms:b}),e.hooks.exitViaDrain({forced:v,waitedMs:b})},_=(v,b)=>{a=!0,u();let k=c();e.log("runner.drain_timeout_forced_kill",{waited_ms:v,max_wait_ms:e.maxWaitMs,hard_cap_ms:o,cause:b.cause,idle_ms:b.idleMs??null,turn_ids:k.map(P=>P.turnId??null),thread_ids:k.map(P=>P.threadId)}),e.log("runner.update_restart_drain_max_wait_forced",{maxWaitMs:e.maxWaitMs,waitedMs:v}),(async()=>await e.hooks.publishForcedKillTerminalStates?.(k))().catch(P=>{e.log("runner.drain_forced_kill_state_publish_failed",{message:P instanceof Error?P.message:String(P)})}).finally(()=>{e.hooks.exitViaDrain({forced:!0,waitedMs:v})})};if(!f||e.hooks.isQuiescent()){y(!1);return}let w=c(),S=m;e.log("runner.drain_waiting",{in_flight_turn_count:w.length,thread_ids:w.map(v=>v.threadId),waited_ms:0}),d=n.setInterval(()=>{let v=t()-m,b=c(),k=new Set(b.map(l));for(let P of w)k.has(l(P))||(e.log("runner.drain_turn_completed",{thread_id:P.threadId,turn_id:P.turnId??null,engine:P.engine,remaining:b.length,waited_ms:v}),e.hooks.onTurnCompleted?.(P));if(w=b,e.hooks.isQuiescent()){e.log("runner.update_restart_drain_quiesced",{waitedMs:v}),y(!1);return}let R=gPe({waitedMs:v,maxWaitMs:e.maxWaitMs,hardCapMs:o,nowMs:t(),lastActivityAtMs:e.hooks.lastActivityAtMs?.(),activityIdleMs:e.activityIdleMs});if(R.force){_(v,R);return}t()-S>=i&&(S=t(),e.log("runner.drain_waiting",{in_flight_turn_count:b.length,thread_ids:b.map(P=>P.threadId),waited_ms:v,past_soft_cap:v>=e.maxWaitMs}))},r)},cancelDrain:p=>!s||a?!1:(u(),s=!1,e.log("runner.update_restart_drain_cancelled",{reason:p}),!0),stop:()=>{u()}}}function eB(e){let n=e.signals??[e.signal??uPe],t=yPe(e),r=n.map(o=>{let i=()=>t.requestDrain(o);return process.on(o,i),{signal:o,handler:i}});return{uninstall:()=>{for(let{signal:o,handler:i}of r)process.off(o,i);t.stop()},requestDrain:o=>t.requestDrain(o),cancelDrain:o=>t.cancelDrain(o)}}var uPe,cPe,lPe,pPe,nI,fPe,mPe,K7,tI,V7,hPe,W7,Z7,Q7,X7,nB=F(()=>{"use strict";uPe="SIGUSR2",cPe=15*6e4,lPe=120*6e4,pPe=1440*6e4,nI=2*6e4,fPe=2e3,mPe=3e4;K7="this computer is updating its Linzumi runner",tI=`${K7} to a new version - nothing was started. Retry in a few minutes once the update finishes.`;V7="queued while this computer updates its Linzumi runner - it will start automatically when the update finishes.",hPe=15*6e4,W7=3e4;Z7="this computer restarted its Linzumi runner for an update",Q7=`${Z7} after waiting for this job past the drain timeout - the job was interrupted. Send your message again to continue.`,X7=`${Z7} while this job was waiting on your approval - the approval prompt was interrupted. Send your message again and answer the approval prompt to continue.`});var gB={};Wo(gB,{acquireSupervisorLock:()=>pB,createSupervisor:()=>mB,defaultSupervisorReexecStatePath:()=>hB,defaultSupervisorTiming:()=>fB,hasSuperviseFlag:()=>vPe,isSupervisedChild:()=>iI,runSuperviseLoop:()=>SPe,supervisedChildEnvKey:()=>P0,supervisorCodeFingerprint:()=>uB,supervisorLockKey:()=>cB,supervisorLockPath:()=>lB,withoutSuperviseFlags:()=>dB});import{spawn as tB}from"node:child_process";import{createHash as oB}from"node:crypto";import{closeSync as xPe,mkdirSync as _Pe,openSync as bPe,readFileSync as iB,unlinkSync as rB,writeSync as wPe}from"node:fs";import{homedir as sB}from"node:os";import{dirname as aB,join as oI}from"node:path";function iI(e=process.env){return e[P0]==="1"}function dB(e){return e.filter(n=>n!=="--supervise"&&n!=="--keep-alive")}function vPe(e){return e.includes("--supervise")||e.includes("--keep-alive")}function uB(e,n=t=>{try{return iB(t,"utf8")}catch{return}}){let t=n(e);if(t===void 0)return;let r=oI(aB(e),"..","dist","index.js"),o=n(r),i=s=>oB("sha256").update(s).digest("hex");return`entry:${i(t)}|bundle:${o===void 0?"unreadable":i(o)}`}function cB(e){let n=oB("sha256").update(`${e.linzumiUrl}::${e.workspace}`).digest("hex").slice(0,12),t=e.workspace.replaceAll(/[^0-9A-Za-z._-]/g,"-").slice(0,32);return t===""?n:`${t}-${n}`}function lB(e,n=sB()){return oI(n,".linzumi","supervisor",`${cB(e)}.lock`)}function pB(e){let n=e.pid??process.pid,t=e.isPidAlive??(a=>{try{return process.kill(a,0),!0}catch(d){return d.code==="EPERM"}});_Pe(aB(e.path),{recursive:!0});let r=`${JSON.stringify({pid:n,workspace:e.workspace,linzumiUrl:e.linzumiUrl,startedAt:new Date().toISOString()})}
1513
- `,o=()=>{let a;try{a=bPe(e.path,"wx")}catch{let d;try{let u=JSON.parse(iB(e.path,"utf8"));d=typeof u.pid=="number"?u.pid:void 0}catch{d=void 0}if(d!==void 0&&d!==n&&t(d))return{ok:!1,holderPid:d};try{rB(e.path)}catch{}return"stale_removed"}try{wPe(a,r)}finally{xPe(a)}return{ok:!0,release:()=>{try{rB(e.path)}catch{}}}},i=o();if(i!=="stale_removed")return i;let s=o();return s==="stale_removed"?{ok:!1,holderPid:void 0}:s}function mB(e){let n={...fB,...e.timing},t=!1,r,o=0,i=e.initialEntryPath,s=e.initialVersion,a,d=!1,u,c,l,p=!1,m=0,f=[],y=e.generationOverlap?.enabled===!0,_=e.generationOverlap?.stillbornWindowMs??0,w=1,S,v=8,b=new Map,k=I=>{let $=(b.get(I)??0)+1;for(b.delete(I),b.set(I,$);b.size>v;){let K=b.keys().next().value;if(K===void 0)break;b.delete(K)}return $},R,P=new Promise(I=>{R=I}),L=I=>{I!==void 0&&e.scheduler.clearTimeout(I)},D=I=>{t||r!==void 0||(a!==void 0&&(i=a.entryPath,s=a.version,a=void 0),o=e.now(),r=e.spawnChild({entryPath:i,childArgs:e.childArgs,onExit:$=>ge($),...y?{generation:{epoch:w,onMessage:$=>z($)}}:{}}),e.log(I==="initial"?"supervisor.child_spawned":"supervisor.child_respawned",{pid:r.pid??null,version:s,entryPath:i,reason:I}))},j=()=>{let I=a;if(I===void 0||e.ownEntryPath===void 0)return!1;let $=e.readEntryBytes(e.ownEntryPath),K=e.readEntryBytes(I.entryPath);if($===void 0||K===void 0||$===K)return!1;let ie=e.reexecAttemptStore.load();return ie!==void 0&&ie.fromVersion===e.initialVersion&&ie.targetVersion===I.version?(e.log("supervisor.self_reexec_loop_guarded",{fromVersion:e.initialVersion,targetVersion:I.version,previousAttemptAt:ie.attemptedAt}),!1):(e.reexecAttemptStore.save({fromVersion:e.initialVersion,targetVersion:I.version,spec:"stable-version-mirror",attemptedAt:new Date(e.now()).toISOString()}),e.log("supervisor.self_reexec",{fromVersion:e.initialVersion,toVersion:I.version,entryPath:I.entryPath}),t=!0,L(l),L(c),e.reexecSelf({entryPath:I.entryPath}),R(),!0)},q=I=>{if(r===void 0||d)return;d=!0;let $=process.platform==="win32"?"SIGTERM":"SIGUSR2";e.log("supervisor.child_drain_requested",{pid:r.pid??null,fromVersion:s,toVersion:I,signal:$}),r.kill($),u=e.scheduler.setTimeout(()=>{u=void 0,e.log("supervisor.child_drain_deadline_exceeded",{pid:r?.pid??null,waitedMs:n.drainDeadlineMs,action:"keep_waiting_never_kill"})},n.drainDeadlineMs)},E=(I,$)=>{if(I?.send===void 0)return!1;try{return I.send($)}catch{return!1}},B=()=>{if(S===void 0)return;E(S.incoming,Nc({type:"generation_pins_update",threadIds:[...S.pins]}))||e.log("supervisor.generation_pin_relay_failed",{pinCount:S.pins.size})},z=I=>{let $=uP(I);if($!==void 0){if($.type==="generation_ready"){fe($.epoch);return}if(S!==void 0){if($.type==="generation_pin_snapshot"&&$.epoch===w){S.pins=new Set($.threadIds),e.log("supervisor.generation_pin_snapshot",{epoch:$.epoch,pinCount:S.pins.size}),B();return}$.type==="generation_pin_released"&&$.epoch===w&&S.pins.delete($.threadId)&&(e.log("supervisor.generation_pin_released",{epoch:$.epoch,threadId:$.threadId,remaining:S.pins.size}),B())}}},W=()=>{if(S===void 0)return;let I=S;S=void 0,L(I.stillbornTimer),L(u),u=void 0,r=I.incoming,o=e.now();let $=w;if(w=I.incomingEpoch,i=I.entryPath,s=I.version,a=void 0,b.delete(I.version),E(r,Nc({type:"generation_promote"})),e.log("supervisor.generation_handoff_complete",{fromEpoch:$,toEpoch:I.incomingEpoch,version:I.version,pid:r.pid??null}),e.ownEntryPath!==void 0){let K=e.readEntryBytes(e.ownEntryPath),ie=e.readEntryBytes(i);K!==void 0&&ie!==void 0&&K!==ie&&e.log("supervisor.generation_self_reexec_deferred",{version:I.version})}},Z=(I,$={})=>{if(S===void 0)return;let K=S;S=void 0,L(K.stillbornTimer);let ie=k(K.version);e.log("supervisor.generation_stillborn",{version:K.version,epoch:K.incomingEpoch,reason:I,attempts:ie,oldChildUntouched:!K.oldExited,retryMs:n.updateCheckIntervalMs,...$}),I==="ready_timeout"&&K.incoming.kill("SIGTERM"),a=void 0,K.oldExited&&r===void 0&&!t&&(e.log("supervisor.generation_both_down_respawn",{version:s}),c=e.scheduler.setTimeout(()=>{c=void 0,D("respawn_after_exit")},n.backoffBaseMs))},fe=I=>{if(S===void 0||I!==S.incomingEpoch||S.ready)return;if(S.ready=!0,L(S.stillbornTimer),S.stillbornTimer=void 0,e.log("supervisor.generation_ready",{epoch:S.incomingEpoch,version:S.version,pid:S.incoming.pid??null}),S.oldExited||r===void 0){W();return}if(!E(r,Nc({type:"generation_overlap_drain",incomingEpoch:S.incomingEpoch}))){e.log("supervisor.generation_overlap_unsupported_old_child",{oldPid:r.pid??null});let K=S;S=void 0,L(K.stillbornTimer),K.incoming.kill("SIGTERM"),q(K.version);return}e.log("supervisor.generation_old_drain_requested",{oldPid:r.pid??null,incomingEpoch:S.incomingEpoch}),u=e.scheduler.setTimeout(()=>{u=void 0,e.log("supervisor.child_drain_deadline_exceeded",{pid:r?.pid??null,waitedMs:n.drainDeadlineMs,action:"keep_waiting_never_kill"})},n.drainDeadlineMs)},De=(I,$)=>{if(I!==void 0&&I===r){ge($);return}if(S===void 0||S.incoming!==I){e.log("supervisor.generation_incoming_exit_ignored",{code:$.code,signal:$.signal}),t&&r===void 0&&S===void 0&&R();return}if(e.log("supervisor.generation_incoming_exited",{code:$.code,signal:$.signal,ready:S.ready,epoch:S.incomingEpoch}),t){S=void 0,r===void 0&&R();return}if(!S.ready){Z("exited_before_ready",{code:$.code,signal:$.signal});return}let K=S;S=void 0,L(K.stillbornTimer),L(u),u=void 0,a=void 0;let ie=k(K.version);e.log("supervisor.generation_incoming_died_midoverlap",{version:K.version,epoch:K.incomingEpoch,attempts:ie,retryMs:n.updateCheckIntervalMs}),r!==void 0&&(E(r,Nc({type:"generation_overlap_abort"}))||e.log("supervisor.generation_overlap_abort_send_failed",{oldPid:r.pid??null}))},ke=(I,$)=>{if(t||S!==void 0||r===void 0)return;let K=w+1,ie=r.pid,pe;pe=e.spawnChild({entryPath:$,childArgs:e.childArgs,onExit:Y=>De(pe,Y),generation:{epoch:K,handoffFromPid:ie,onMessage:Y=>z(Y)}}),S={incoming:pe,incomingEpoch:K,version:I,entryPath:$,ready:!1,oldExited:!1,stillbornTimer:void 0,pins:new Set},e.log("supervisor.generation_incoming_spawned",{epoch:K,version:I,pid:pe.pid??null,oldPid:ie??null,stillbornWindowMs:_}),S.stillbornTimer=e.scheduler.setTimeout(()=>{S!==void 0&&(S.stillbornTimer=void 0),Z("ready_timeout",{waitedMs:_})},_)},ge=I=>{let $=r;r=void 0;let K=e.now()-o;if(L(u),u=void 0,e.log("supervisor.child_exited",{pid:$?.pid??null,code:I.code,signal:I.signal,uptimeMs:K,drainRequested:d}),t){S===void 0&&R();return}if(S!==void 0){if(S.ready){e.log("supervisor.generation_old_drained",{drainMs:K,toVersion:S.version}),W();return}S.oldExited=!0,e.log("supervisor.generation_old_exited_before_incoming_ready",{code:I.code,signal:I.signal,uptimeMs:K});return}if(d){if(d=!1,e.log("supervisor.child_drained",{fromVersion:s,toVersion:a?.version??null,drainMs:K}),j())return;D("respawn_after_update");return}for(K>=n.healthyRunMs&&(m=0),m+=1,f.push(e.now());f.length>0&&(f[0]??0)<e.now()-n.crashLoopWindowMs;)f.shift();let ie;f.length>=n.crashLoopThreshold?(ie=n.crashLoopCadenceMs,e.log("supervisor.crash_loop",{exitsInWindow:f.length,windowMs:n.crashLoopWindowMs,cadenceMs:n.crashLoopCadenceMs})):ie=Math.min(n.backoffBaseMs*2**(m-1),n.backoffCapMs),e.log("supervisor.backoff",{delayMs:ie,consecutiveCrashExits:m,exitsInWindow:f.length}),Re("child_exit"),c=e.scheduler.setTimeout(()=>{c=void 0,!j()&&D("respawn_after_exit")},ie)},Re=async I=>{if(!(t||p||a!==void 0||d)){p=!0;try{let $;try{$=await e.probeLatestVersion()}catch(ie){e.log("supervisor.update_probe_failed",{message:ie instanceof Error?ie.message:String(ie),trigger:I});return}if(t||$===void 0||!w0($,s))return;e.log("supervisor.update_detected",{latestVersion:$,currentVersion:s,trigger:I});let K;try{K=await e.installVersion($)}catch(ie){e.log("supervisor.update_install_failed",{latestVersion:$,currentVersion:s,message:ie instanceof Error?ie.message:String(ie)});return}if(t)return;a={version:$,entryPath:K.entryPath},r!==void 0&&!d&&(y?ke($,K.entryPath):q($))}finally{p=!1}}},Ee=()=>{t||(l=e.scheduler.setTimeout(()=>{l=void 0,Re("interval").finally(Ee)},n.updateCheckIntervalMs))};return{start:()=>{e.log("supervisor.started",{version:e.initialVersion,entryPath:e.initialEntryPath,updateCheckIntervalMs:n.updateCheckIntervalMs}),D("initial"),Ee()},requestStop:I=>{if(!t){if(t=!0,L(c),L(l),L(u),S!==void 0&&(L(S.stillbornTimer),S.stillbornTimer=void 0),e.log("supervisor.stopping",{hasChild:r!==void 0,hasOverlapIncoming:S!==void 0,forwardSignal:I?.forwardSignal??null}),r===void 0&&S===void 0){R();return}I?.forwardSignal!==void 0&&(r?.kill(I.forwardSignal),S?.incoming.kill(I.forwardSignal))}},done:P,childActive:()=>r!==void 0||S!==void 0}}function hB(e=process.env){let n=e.LINZUMI_SUPERVISOR_REEXEC_STATE_FILE?.trim();return n!==void 0&&n!==""?n:oI(sB(),".linzumi","supervisor-reexec-attempt.json")}async function SPe(e){let n=dB(e),t=Kc(n,["--workspace"])??"",r=Kc(n,["--linzumi-url","--api-url"])??Jt,o=(c,l={})=>{process.stderr.write(`${JSON.stringify({ts:new Date().toISOString(),event:c,...l})}
1513
+ `,o=()=>{let a;try{a=bPe(e.path,"wx")}catch{let d;try{let u=JSON.parse(iB(e.path,"utf8"));d=typeof u.pid=="number"?u.pid:void 0}catch{d=void 0}if(d!==void 0&&d!==n&&t(d))return{ok:!1,holderPid:d};try{rB(e.path)}catch{}return"stale_removed"}try{wPe(a,r)}finally{xPe(a)}return{ok:!0,release:()=>{try{rB(e.path)}catch{}}}},i=o();if(i!=="stale_removed")return i;let s=o();return s==="stale_removed"?{ok:!1,holderPid:void 0}:s}function mB(e){let n={...fB,...e.timing},t=!1,r,o=0,i=e.initialEntryPath,s=e.initialVersion,a,d=!1,u,c,l,p=!1,m=0,f=[],y=e.generationOverlap?.enabled===!0,_=e.generationOverlap?.stillbornWindowMs??0,w=1,S,v=8,b=new Map,k=I=>{let $=(b.get(I)??0)+1;for(b.delete(I),b.set(I,$);b.size>v;){let K=b.keys().next().value;if(K===void 0)break;b.delete(K)}return $},R,P=new Promise(I=>{R=I}),L=I=>{I!==void 0&&e.scheduler.clearTimeout(I)},D=I=>{t||r!==void 0||(a!==void 0&&(i=a.entryPath,s=a.version,a=void 0),o=e.now(),r=e.spawnChild({entryPath:i,childArgs:e.childArgs,onExit:$=>be($),...y?{generation:{epoch:w,onMessage:$=>z($)}}:{}}),e.log(I==="initial"?"supervisor.child_spawned":"supervisor.child_respawned",{pid:r.pid??null,version:s,entryPath:i,reason:I}))},j=()=>{let I=a;if(I===void 0||e.ownEntryPath===void 0)return!1;let $=e.readEntryBytes(e.ownEntryPath),K=e.readEntryBytes(I.entryPath);if($===void 0||K===void 0||$===K)return!1;let re=e.reexecAttemptStore.load();return re!==void 0&&re.fromVersion===e.initialVersion&&re.targetVersion===I.version?(e.log("supervisor.self_reexec_loop_guarded",{fromVersion:e.initialVersion,targetVersion:I.version,previousAttemptAt:re.attemptedAt}),!1):(e.reexecAttemptStore.save({fromVersion:e.initialVersion,targetVersion:I.version,spec:"stable-version-mirror",attemptedAt:new Date(e.now()).toISOString()}),e.log("supervisor.self_reexec",{fromVersion:e.initialVersion,toVersion:I.version,entryPath:I.entryPath}),t=!0,L(l),L(c),e.reexecSelf({entryPath:I.entryPath}),R(),!0)},q=I=>{if(r===void 0||d)return;d=!0;let $=process.platform==="win32"?"SIGTERM":"SIGUSR2";e.log("supervisor.child_drain_requested",{pid:r.pid??null,fromVersion:s,toVersion:I,signal:$}),r.kill($),u=e.scheduler.setTimeout(()=>{u=void 0,e.log("supervisor.child_drain_deadline_exceeded",{pid:r?.pid??null,waitedMs:n.drainDeadlineMs,action:"keep_waiting_never_kill"})},n.drainDeadlineMs)},E=(I,$)=>{if(I?.send===void 0)return!1;try{return I.send($)}catch{return!1}},B=()=>{if(S===void 0)return;E(S.incoming,Nc({type:"generation_pins_update",threadIds:[...S.pins]}))||e.log("supervisor.generation_pin_relay_failed",{pinCount:S.pins.size})},z=I=>{let $=uP(I);if($!==void 0){if($.type==="generation_ready"){fe($.epoch);return}if(S!==void 0){if($.type==="generation_pin_snapshot"&&$.epoch===w){S.pins=new Set($.threadIds),e.log("supervisor.generation_pin_snapshot",{epoch:$.epoch,pinCount:S.pins.size}),B();return}$.type==="generation_pin_released"&&$.epoch===w&&S.pins.delete($.threadId)&&(e.log("supervisor.generation_pin_released",{epoch:$.epoch,threadId:$.threadId,remaining:S.pins.size}),B())}}},W=()=>{if(S===void 0)return;let I=S;S=void 0,L(I.stillbornTimer),L(u),u=void 0,r=I.incoming,o=e.now();let $=w;if(w=I.incomingEpoch,i=I.entryPath,s=I.version,a=void 0,b.delete(I.version),E(r,Nc({type:"generation_promote"})),e.log("supervisor.generation_handoff_complete",{fromEpoch:$,toEpoch:I.incomingEpoch,version:I.version,pid:r.pid??null}),e.ownEntryPath!==void 0){let K=e.readEntryBytes(e.ownEntryPath),re=e.readEntryBytes(i);K!==void 0&&re!==void 0&&K!==re&&e.log("supervisor.generation_self_reexec_deferred",{version:I.version})}},Z=(I,$={})=>{if(S===void 0)return;let K=S;S=void 0,L(K.stillbornTimer);let re=k(K.version);e.log("supervisor.generation_stillborn",{version:K.version,epoch:K.incomingEpoch,reason:I,attempts:re,oldChildUntouched:!K.oldExited,retryMs:n.updateCheckIntervalMs,...$}),I==="ready_timeout"&&K.incoming.kill("SIGTERM"),a=void 0,K.oldExited&&r===void 0&&!t&&(e.log("supervisor.generation_both_down_respawn",{version:s}),c=e.scheduler.setTimeout(()=>{c=void 0,D("respawn_after_exit")},n.backoffBaseMs))},fe=I=>{if(S===void 0||I!==S.incomingEpoch||S.ready)return;if(S.ready=!0,L(S.stillbornTimer),S.stillbornTimer=void 0,e.log("supervisor.generation_ready",{epoch:S.incomingEpoch,version:S.version,pid:S.incoming.pid??null}),S.oldExited||r===void 0){W();return}if(!E(r,Nc({type:"generation_overlap_drain",incomingEpoch:S.incomingEpoch}))){e.log("supervisor.generation_overlap_unsupported_old_child",{oldPid:r.pid??null});let K=S;S=void 0,L(K.stillbornTimer),K.incoming.kill("SIGTERM"),q(K.version);return}e.log("supervisor.generation_old_drain_requested",{oldPid:r.pid??null,incomingEpoch:S.incomingEpoch}),u=e.scheduler.setTimeout(()=>{u=void 0,e.log("supervisor.child_drain_deadline_exceeded",{pid:r?.pid??null,waitedMs:n.drainDeadlineMs,action:"keep_waiting_never_kill"})},n.drainDeadlineMs)},Ee=(I,$)=>{if(I!==void 0&&I===r){be($);return}if(S===void 0||S.incoming!==I){e.log("supervisor.generation_incoming_exit_ignored",{code:$.code,signal:$.signal}),t&&r===void 0&&S===void 0&&R();return}if(e.log("supervisor.generation_incoming_exited",{code:$.code,signal:$.signal,ready:S.ready,epoch:S.incomingEpoch}),t){S=void 0,r===void 0&&R();return}if(!S.ready){Z("exited_before_ready",{code:$.code,signal:$.signal});return}let K=S;S=void 0,L(K.stillbornTimer),L(u),u=void 0,a=void 0;let re=k(K.version);e.log("supervisor.generation_incoming_died_midoverlap",{version:K.version,epoch:K.incomingEpoch,attempts:re,retryMs:n.updateCheckIntervalMs}),r!==void 0&&(E(r,Nc({type:"generation_overlap_abort"}))||e.log("supervisor.generation_overlap_abort_send_failed",{oldPid:r.pid??null}))},_e=(I,$)=>{if(t||S!==void 0||r===void 0)return;let K=w+1,re=r.pid,pe;pe=e.spawnChild({entryPath:$,childArgs:e.childArgs,onExit:Y=>Ee(pe,Y),generation:{epoch:K,handoffFromPid:re,onMessage:Y=>z(Y)}}),S={incoming:pe,incomingEpoch:K,version:I,entryPath:$,ready:!1,oldExited:!1,stillbornTimer:void 0,pins:new Set},e.log("supervisor.generation_incoming_spawned",{epoch:K,version:I,pid:pe.pid??null,oldPid:re??null,stillbornWindowMs:_}),S.stillbornTimer=e.scheduler.setTimeout(()=>{S!==void 0&&(S.stillbornTimer=void 0),Z("ready_timeout",{waitedMs:_})},_)},be=I=>{let $=r;r=void 0;let K=e.now()-o;if(L(u),u=void 0,e.log("supervisor.child_exited",{pid:$?.pid??null,code:I.code,signal:I.signal,uptimeMs:K,drainRequested:d}),t){S===void 0&&R();return}if(S!==void 0){if(S.ready){e.log("supervisor.generation_old_drained",{drainMs:K,toVersion:S.version}),W();return}S.oldExited=!0,e.log("supervisor.generation_old_exited_before_incoming_ready",{code:I.code,signal:I.signal,uptimeMs:K});return}if(d){if(d=!1,e.log("supervisor.child_drained",{fromVersion:s,toVersion:a?.version??null,drainMs:K}),j())return;D("respawn_after_update");return}for(K>=n.healthyRunMs&&(m=0),m+=1,f.push(e.now());f.length>0&&(f[0]??0)<e.now()-n.crashLoopWindowMs;)f.shift();let re;f.length>=n.crashLoopThreshold?(re=n.crashLoopCadenceMs,e.log("supervisor.crash_loop",{exitsInWindow:f.length,windowMs:n.crashLoopWindowMs,cadenceMs:n.crashLoopCadenceMs})):re=Math.min(n.backoffBaseMs*2**(m-1),n.backoffCapMs),e.log("supervisor.backoff",{delayMs:re,consecutiveCrashExits:m,exitsInWindow:f.length}),Re("child_exit"),c=e.scheduler.setTimeout(()=>{c=void 0,!j()&&D("respawn_after_exit")},re)},Re=async I=>{if(!(t||p||a!==void 0||d)){p=!0;try{let $;try{$=await e.probeLatestVersion()}catch(re){e.log("supervisor.update_probe_failed",{message:re instanceof Error?re.message:String(re),trigger:I});return}if(t||$===void 0||!w0($,s))return;e.log("supervisor.update_detected",{latestVersion:$,currentVersion:s,trigger:I});let K;try{K=await e.installVersion($)}catch(re){e.log("supervisor.update_install_failed",{latestVersion:$,currentVersion:s,message:re instanceof Error?re.message:String(re)});return}if(t)return;a={version:$,entryPath:K.entryPath},r!==void 0&&!d&&(y?_e($,K.entryPath):q($))}finally{p=!1}}},Ae=()=>{t||(l=e.scheduler.setTimeout(()=>{l=void 0,Re("interval").finally(Ae)},n.updateCheckIntervalMs))};return{start:()=>{e.log("supervisor.started",{version:e.initialVersion,entryPath:e.initialEntryPath,updateCheckIntervalMs:n.updateCheckIntervalMs}),D("initial"),Ae()},requestStop:I=>{if(!t){if(t=!0,L(c),L(l),L(u),S!==void 0&&(L(S.stillbornTimer),S.stillbornTimer=void 0),e.log("supervisor.stopping",{hasChild:r!==void 0,hasOverlapIncoming:S!==void 0,forwardSignal:I?.forwardSignal??null}),r===void 0&&S===void 0){R();return}I?.forwardSignal!==void 0&&(r?.kill(I.forwardSignal),S?.incoming.kill(I.forwardSignal))}},done:P,childActive:()=>r!==void 0||S!==void 0}}function hB(e=process.env){let n=e.LINZUMI_SUPERVISOR_REEXEC_STATE_FILE?.trim();return n!==void 0&&n!==""?n:oI(sB(),".linzumi","supervisor-reexec-attempt.json")}async function SPe(e){let n=dB(e),t=Kc(n,["--workspace"])??"",r=Kc(n,["--linzumi-url","--api-url"])??Jt,o=(c,l={})=>{process.stderr.write(`${JSON.stringify({ts:new Date().toISOString(),event:c,...l})}
1514
1514
  `)},i=lB({workspace:t,linzumiUrl:r}),s=pB({path:i,workspace:t,linzumiUrl:r});if(!s.ok)throw new Error(`another \`linzumi connect --supervise\` is already running for ${t===""?"this identity":`workspace ${t}`}${s.holderPid===void 0?"":` (pid ${s.holderPid})`}; stop it first, or run this one without --supervise (lock: ${i})`);let d=Yf({argv1:process.argv[1],cwd:process.cwd(),onEvent:(c,l)=>o(`supervisor.${c}`,l)})?.entryPath??process.argv[1];if(d===void 0||d.trim()==="")throw s.release(),new Error("connect --supervise cannot resolve its own CLI entry script (empty argv[1])");let u=mB({childArgs:n,initialEntryPath:d,initialVersion:jt,ownEntryPath:d,spawnChild:({entryPath:c,childArgs:l,onExit:p,generation:m})=>{let f=tB(process.execPath,[c,"connect",...l],m===void 0?{stdio:"inherit",env:{...process.env,[P0]:"1"}}:{stdio:["inherit","inherit","inherit","ipc"],env:{...process.env,[P0]:"1",[sP]:String(m.epoch),...m.handoffFromPid===void 0?{}:{[aP]:String(m.handoffFromPid)}}}),y=!1,_=w=>{y||(y=!0,p(w))};if(f.on("exit",(w,S)=>_({code:w,signal:S})),f.on("error",w=>{o("supervisor.child_spawn_error",{message:w instanceof Error?w.message:String(w)}),_({code:null,signal:null})}),m?.onMessage!==void 0){let w=m.onMessage;f.on("message",S=>w(S))}return{pid:f.pid,kill:w=>{try{f.kill(w)}catch{}},...m===void 0?{}:{send:w=>{try{return f.send(w)}catch{return!1}}}}},probeLatestVersion:()=>AP("latest"),installVersion:async c=>({entryPath:(await o7({version:c,onEvent:(p,m)=>o(`supervisor.${p}`,m)})).entryPath}),readEntryBytes:c=>uB(c),reexecSelf:({entryPath:c})=>{s.release(),tB(process.execPath,[c,"connect","--supervise",...n],{detached:!0,stdio:"inherit",env:{...process.env}}).unref(),process.exit(0)},reexecAttemptStore:v0(hB(process.env)),...dP(process.env)?{generationOverlap:{enabled:!0,stillbornWindowMs:I9(process.env)}}:{},log:o,scheduler:{setTimeout:(c,l)=>setTimeout(c,l),clearTimeout:c=>clearTimeout(c)},now:()=>Date.now()});process.once("SIGINT",()=>u.requestStop()),process.once("SIGTERM",()=>u.requestStop({forwardSignal:"SIGTERM"}));try{u.start(),await u.done}finally{s.release()}}var P0,fB,sI=F(()=>{"use strict";ki();cP();S0();OP();ea();qP();P0="LINZUMI_SUPERVISED";fB={backoffBaseMs:1e3,backoffCapMs:6e4,crashLoopWindowMs:5*6e4,crashLoopThreshold:5,crashLoopCadenceMs:5*6e4,healthyRunMs:5*6e4,updateCheckIntervalMs:15*6e4,drainDeadlineMs:15*6e4}});function yB(){let e=new Map;return{current:n=>e.get(n),adopt:(n,t)=>{if(!Number.isInteger(t))return!1;let r=e.get(n);return r!==void 0&&t<r||r===t?!1:(e.set(n,t),!0)},release:n=>{e.delete(n)},snapshot:()=>[...e.entries()].map(([n,t])=>({threadId:n,leaseEpoch:t}))}}function xB(e,n){return n===void 0||e===void 0?!1:n<e}function _B(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let n=e.lease_epoch;return typeof n=="number"&&Number.isInteger(n)?n:void 0}var aI=F(()=>{"use strict"});function wB(e){let n=e.store.initial(e.watermarkKey);return nm(n,e.sourceSeq)?(k0(e.store,e.watermarkKey,e.sourceSeq),!0):!1}async function kPe(e){let n=e.policy??D7,t=e.nowMs??Date.now();if(e.outcome==="dispatched"){e.inFlightGuard?.mark(e.watermarkKey,e.sourceSeq),e.queue.ack(e.sourceSeq);return}if(e.outcome==="ignored"){e.queue.ack(e.sourceSeq);return}if(e.outcome==="permanent_failed"){let i=CPe(e.queue,e.sourceSeq);e.queue.deadLetter(e.sourceSeq),await e.onDeadLetter?.({threadId:e.threadId,sourceSeq:e.sourceSeq,reason:"permanent",attempts:i,alreadyPublished:!0});return}let r=e.queue.recordAttempt(e.sourceSeq),o=e.queue.entries().find(i=>i.sourceSeq===e.sourceSeq);o!==void 0&&M7(o,n,t)&&(e.log("resume_keystone.dead_lettered",{threadId:e.threadId,sourceSeq:e.sourceSeq,attempts:r}),e.queue.deadLetter(e.sourceSeq),await e.onDeadLetter?.({threadId:e.threadId,sourceSeq:e.sourceSeq,reason:"exhausted",attempts:r,alreadyPublished:!1}))}function CPe(e,n){return e.entries().find(t=>t.sourceSeq===n)?.attempts??0}function I0(e,n){let t=e.entries(),r;for(let o of t)(r===void 0||o.enqueuedAtMs<r)&&(r=o.enqueuedAtMs);return{pending_count:t.length,oldest_age_ms:r===void 0?null:Math.max(0,n-r)}}async function vB(e){let n=[],t="ignored",r=!1,o=e.queue.entries().length+1;for(;o>0;){o-=1;let i=e.queue.head();if(i===void 0)break;let s=e.store.initial(e.watermarkKey);if(!nm(s,i.sourceSeq)){e.queue.ack(i.sourceSeq);continue}if(e.onlyDispatchUnattempted&&e.serverRows.length===0&&i.attempts>0){e.log("resume_keystone.attempted_entry_withheld",{threadId:e.threadId,sourceSeq:i.sourceSeq,attempts:i.attempts}),e.queue.deadLetter(i.sourceSeq),await e.onDeadLetter?.({threadId:e.threadId,sourceSeq:i.sourceSeq,reason:"withheld",attempts:i.attempts,alreadyPublished:!1});continue}let a=await e.dispatch(i.sourceSeq,i.payload);if(await kPe({queue:e.queue,store:e.store,watermarkKey:e.watermarkKey,sourceSeq:i.sourceSeq,threadId:e.threadId,outcome:a,log:e.log,policy:e.policy,nowMs:e.nowMs,onDeadLetter:e.onDeadLetter,inFlightGuard:e.inFlightGuard}),r||(t=a,r=!0),a==="dispatched"&&n.push(i.sourceSeq),a==="transient_failed")break}return{dispatched:n,headOutcome:t}}async function SB(e){e.queue.enqueue(e.sourceSeq,e.kind,e.payload,e.nowMs??Date.now());let n=e.leases.current(e.threadId);if(xB(n,e.leaseEpoch))return e.log("resume_keystone.fenced",{threadId:e.threadId,heldLeaseEpoch:n??null,controlLeaseEpoch:e.leaseEpoch??null,sourceSeq:e.sourceSeq}),e.queue.ack(e.sourceSeq),"ignored";e.leaseEpoch!==void 0&&e.leases.adopt(e.threadId,e.leaseEpoch);let t=e.serverRows??[];if(t.length>0){let i=e.store.initial(e.watermarkKey),s=tm(i,t);s!==void 0&&s!==i&&(k0(e.store,e.watermarkKey,s),e.log("resume_keystone.live_miss_reconciled",{threadId:e.threadId,reconciledWatermark:s,sourceSeq:e.sourceSeq}))}let r=e.store.initial(e.watermarkKey);if(!nm(r,e.sourceSeq))return e.log("resume_keystone.already_applied",{threadId:e.threadId,sourceSeq:e.sourceSeq,appliedSourceSeq:r??null}),e.queue.ack(e.sourceSeq),"ignored";let o=e.reconcilerDeadlineMs??bB;try{return(await e.lock.runExclusive(e.threadId,()=>vB({queue:e.queue,store:e.store,watermarkKey:e.watermarkKey,threadId:e.threadId,serverRows:t,dispatch:e.dispatch,log:e.log,nowMs:e.nowMs,policy:e.policy,onlyDispatchUnattempted:e.onlyDispatchUnattempted??!1,onDeadLetter:e.onDeadLetter,inFlightGuard:e.inFlightGuard}),o)).headOutcome}catch(i){if(i instanceof Hc)return e.log("resume_keystone.drain_waiting",{threadId:e.threadId,on:"thread_reconciler_lock",phase:"receive",sourceSeq:e.sourceSeq,deadlineMs:o,queued_for_ms:i.queuedForMs,blocked_section_age_ms:i.blockedSectionAgeMs??null,...I0(e.queue,e.nowMs??Date.now())}),"transient_failed";if(i instanceof bd)return e.log("resume_keystone.spawn_deadline_exceeded",{threadId:e.threadId,sourceSeq:e.sourceSeq,deadlineMs:o,...I0(e.queue,e.nowMs??Date.now())}),"transient_failed";throw i}}async function kB(e){let n=[],t=e.serverRows??[],r=e.reconcilerDeadlineMs??bB,o=async()=>{let i=e.store.initial(e.watermarkKey),s=tm(i,t);s!==void 0&&s!==i&&k0(e.store,e.watermarkKey,s),e.queue.tornTail()&&(t.length>0?(e.log("resume_keystone.torn_tail",{threadId:e.threadId,reconciledWatermark:s??null,recovery:"server_reconcile"}),e.queue.reconciledTornTail()):(e.log("resume_keystone.torn_tail_unrecoverable",{threadId:e.threadId,reconciledWatermark:s??null}),e.onTornTailUnrecoverable!==void 0&&await e.onTornTailUnrecoverable(e.threadId),e.queue.reconciledTornTail())),n=(await vB({queue:e.queue,store:e.store,watermarkKey:e.watermarkKey,threadId:e.threadId,serverRows:t,dispatch:e.dispatch,log:e.log,nowMs:e.nowMs,policy:e.policy,onlyDispatchUnattempted:e.onlyDispatchUnattempted??!1,onDeadLetter:e.onDeadLetter,inFlightGuard:e.inFlightGuard})).dispatched};try{await e.lock.runExclusive(e.threadId,o,r)}catch(i){if(i instanceof Hc)return e.log("resume_keystone.drain_waiting",{threadId:e.threadId,on:"thread_reconciler_lock",phase:"drain",deadlineMs:r,queued_for_ms:i.queuedForMs,blocked_section_age_ms:i.blockedSectionAgeMs??null,...I0(e.queue,e.nowMs??Date.now())}),n;if(i instanceof bd)return e.log("resume_keystone.drain_deadline_exceeded",{threadId:e.threadId,deadlineMs:r,...I0(e.queue,e.nowMs??Date.now())}),n;throw i}return n}var bB,CB=F(()=>{"use strict";QP();XP();aI();eI();bB=12e4});import{spawn as q0,spawnSync as M0}from"node:child_process";import{createHash as Sd,randomUUID as dI}from"node:crypto";import{chmodSync as PB,closeSync as IB,existsSync as Yc,fsyncSync as RB,lstatSync as TPe,mkdirSync as el,mkdtempSync as PPe,openSync as EB,readdirSync as dJ,readFileSync as kd,realpathSync as nl,renameSync as kI,rmSync as PI,statSync as z0,writeFileSync as A0}from"node:fs";import{readFile as IPe}from"node:fs/promises";import{createServer as RPe}from"node:http";import{homedir as II,hostname as EPe,tmpdir as uJ}from"node:os";import{createInterface as DPe}from"node:readline";import{basename as RI,dirname as Cd,extname as MPe,isAbsolute as APe,join as bt,resolve as Td}from"node:path";import{fileURLToPath as OPe}from"node:url";async function UPe(e,n){if(e.agentReplay===void 0)return;let t=await L4({...e.agentReplay,onPlaybackError:r=>{let o=j4(r);n("agent_replay.codex_play_failed",{fixture_path:e.agentReplay?.fixturePath??null,message:o}),process.stderr.write(`[linzumi] agent replay Codex playback failed: ${o}
1515
1515
  `)}});switch(t.type){case"ok":return n("agent_replay.runtime_started",{fixture_path:t.runtime.fixture.path,provider:t.runtime.provider,record_count:t.runtime.fixture.records.length}),t.runtime;case"error":throw new Error(t.message)}}function BPe(e){return{...e,CLAUDE_CODE_ENABLE_TASKS:"0"}}async function ol(e){let n=DI(e),t=qIe(e),r=await UPe(e,n),o=r===void 0?e:{...e,agentReplay:{...e.agentReplay,fixturePath:e.agentReplay?.fixturePath??r.fixture.path,provider:r.provider,clockMode:e.agentReplay?.clockMode??{type:"immediate"}},claudeCodeAvailable:r.provider==="claude-code",claudeCodeRunner:r.claudeCodeRunner},i={actions:[()=>n.close(),...t===void 0?[]:[()=>t.close()]],closePromise:void 0,removeHandlers:void 0},s=()=>OIe(i),a={stopAccepting:()=>{},flushInboundQueues:()=>{},interruptInFlightTurns:()=>Promise.resolve()},d={beginDraining:()=>{},isQuiescent:()=>!0,isWaitEligible:()=>!0,inFlightTurns:()=>[],lastActivityAtMs:()=>{},publishForcedKillTerminalStates:()=>Promise.resolve(),onTurnCompleted:()=>{}},u=o.threadProcess?.role==="thread"?void 0:R9({log:(p,m)=>n(p,m)});if(u!==void 0){let p=m=>u.handleIpcMessage(m);process.on("message",p),i.actions.push(()=>{process.off("message",p)}),n("runner.generation_overlap_enabled",{epoch:u.epoch,handoffFromPid:u.handoffFromPid??null})}let c=Y7({supervised:iI(process.env),platform:process.platform}),l=BIe(s,a,n,{signals:c?["SIGINT","SIGHUP"]:["SIGTERM","SIGINT","SIGHUP"]});if(i.removeHandlers=l.uninstall,process.platform!=="win32"){let p=eB({hooks:{beginDraining:()=>d.beginDraining(),isQuiescent:()=>d.isQuiescent(),isWaitEligible:()=>d.isWaitEligible(),inFlightTurns:()=>d.inFlightTurns(),lastActivityAtMs:()=>d.lastActivityAtMs(),publishForcedKillTerminalStates:m=>d.publishForcedKillTerminalStates(m),onTurnCompleted:m=>d.onTurnCompleted(m),exitViaDrain:()=>{l.triggerFastExitDrain("SIGTERM")}},maxWaitMs:T0(process.env),hardCapMs:B7(process.env,T0(process.env),u!==void 0),activityIdleMs:J7(process.env),signals:c?["SIGUSR2","SIGTERM"]:["SIGUSR2"],log:n});i.actions.push(p.uninstall),u!==void 0&&(u.requestUpdateDrain=m=>p.requestDrain(m),u.cancelUpdateDrain=m=>p.cancelDrain(m))}n("runner.starting",{runnerId:o.runnerId,cwd:o.cwd,kandanUrl:o.kandanUrl,debugTraceDir:t?.runDir??null,codex_bin_path:o.codexBin,codex_bin_source:o.dependencyStatus?.codex.source??null,codex_version:o.dependencyStatus?.codex.version??null}),aEe(),rj({snapshotsRoot:jp()}).then(p=>{p.removedSnapshotDirs.length>0&&n("runner.git_safety_snapshots_pruned",{removed_snapshots:p.removedSnapshotDirs.length,removed_refs:p.removedRefs.length})}).catch(p=>{n("runner.git_safety_snapshots_prune_failed",{message:p instanceof Error?p.message:String(p)})});try{if(o.machineId!==void 0){let p=o.machineId,m=()=>s0({machineId:p,runnerId:o.runnerId,cwd:o.cwd,workspace:Br(o)??null,linzumiUrl:o.kandanUrl,launchSource:o.launchSource,configPath:o.runnerLockConfigPath,gracefulUpdateDrain:process.platform!=="win32",onTakeover:y=>{n("runner.lock_takeover",{runnerId:o.runnerId,holderRunnerId:y.holderRunnerId,holderPid:y.holderPid,reason:y.reason,lockPath:y.lockPath})}}),f=u?.handoffFromPid;if(u!==void 0&&f!==void 0){let y=S9({machineId:p,runnerId:o.runnerId,cwd:o.cwd,workspace:Br(o)??null,linzumiUrl:o.kandanUrl,launchSource:o.launchSource,configPath:o.runnerLockConfigPath,gracefulUpdateDrain:process.platform!=="win32",handoffHolderPid:f,onTakeover:S=>{n("runner.lock_takeover",{runnerId:o.runnerId,holderRunnerId:S.holderRunnerId,holderPid:S.holderPid,reason:S.reason,lockPath:S.lockPath})}});i.actions.push(()=>y.release()),u.promoteRunnerLock=()=>y.promote(),n("runner.generation_incoming_lock_acquired",{path:y.path,machineId:o.machineId,runnerId:o.runnerId,handoffHolderPid:f,alreadyPromoted:y.promoted()});let _=S=>{try{return process.kill(S,0),!0}catch(v){return v.code==="EPERM"}},w=setInterval(()=>{if(u.currentRole()!=="incoming"){clearInterval(w);return}_(f)||(n("runner.generation_self_promote_on_peer_death",{handoffHolderPid:f}),u.handleIpcMessage({type:"generation_promote"}),clearInterval(w))},3e4);w.unref(),i.actions.push(()=>clearInterval(w))}else{let y=await JIe(m,o,n);i.actions.push(()=>y.release()),n("runner.lock_acquired",{path:y.path,machineId:o.machineId,runnerId:o.runnerId})}}return await VPe(o,n,i,s,a,d,r,t,u)}catch(p){throw await s().catch(()=>{}),p}}async function cJ(e){if(e.threadProcess?.role!=="thread")throw new Error("thread Codex worker requires thread process options");if(process.send===void 0)throw new Error("thread Codex worker requires an IPC channel");let n=DI(e),t=eEe(e);if(t!==void 0){n("runner.thread_worker_preflight_failed",{kandanThreadId:e.threadProcess.kandanThreadId,cwd:e.cwd,reason:t.reason,message:t.message}),process.stderr.write(`${t.message}
1516
1516
  `),n.close(),process.exitCode=1;return}let r=await EJ(e),o=await Tf(r.url),i=e.threadProcess.kandanThreadId,s=B0(()=>{o.close(),r.stop(),n.close()});d7(o),o.onClose?.(a=>{if(n("runner.thread_codex_worker_session_closed",{kandanThreadId:i,reason:a.message}),process.send!==void 0&&process.connected!==!1)try{process.send({type:"linzumi_thread_codex_worker_session_closed",kandanThreadId:i,reason:a.message})}catch{}s()}),process.send({type:"linzumi_thread_codex_worker_ready",kandanThreadId:i,commanderManagedPorts:n2e(r)}),await mEe(r.process),s()}function JPe(e,n,t){let r=`${n}
1517
- ${t}`.toLowerCase();return r.includes("not logged in")||r.includes("not authenticated")||r.includes("login required")||r.includes("please log in")?"not_logged_in":e===0?"logged_in":"probe_failed"}function lI(e,n){let t=e==="logged_in"&&n.status==="probe_failed"&&n.transient;return{status:t?e:n.status,downgradeSkipped:t}}function KPe(e,n){return e==="ENOENT"?n?{status:"binary_missing",transient:!1}:{status:"probe_failed",transient:!0}:{status:"probe_failed",transient:ZT(e)}}function MB(e,n){return new Promise(t=>{let r=[],o=[],i=!1,s,a=u=>{i||(i=!0,s!==void 0&&clearTimeout(s),t(u))},d=q0(e,["login","status"],{cwd:n,env:process.env,stdio:["ignore","pipe","pipe"]});s=setTimeout(()=>{d.kill("SIGTERM"),a({status:"probe_failed",transient:!0})},jPe),d.stdout?.on("data",u=>{r.push(u)}),d.stderr?.on("data",u=>{o.push(u)}),d.once("error",u=>{a(KPe(u.code,Yc(n)))}),d.once("exit",u=>{a({status:JPe(u,Buffer.concat(r).toString("utf8"),Buffer.concat(o).toString("utf8")),transient:u===null})})})}async function VPe(e,n,t,r,o,i,s,a,d){let u=pRe(e),c={value:e.dependencyStatus},l={value:(await MB(e.codexBin,e.cwd)).status},p={value:e.claudeCodeAuthStatus??(JB(e).includes("claude-code")?"logged_in":"not_logged_in")};(p.value==="probe_failed"||p.value==="binary_missing")&&n("runner.claude_code_auth_startup_probe_failure",{runnerId:e.runnerId,claude_code_auth_status:p.value,probe_detail:e.claudeCodeAuthProbeDetail??null});let m=()=>JB(e,p.value),f={value:rx()};n("runner.codex_auth_status_probed",{runnerId:e.runnerId,codex_auth_status:l.value,has_valid_openai_auth:f.value.hasValidOpenAiAuth,openai_auth_mode:f.value.authMode});let y=async()=>{let g=c.value;if(g!==void 0)try{let x=await Xs({cwd:e.cwd,codexBin:e.codexBin,codeServerBin:e.codeServerBin,editorRuntime:g.editorRuntime}),C=e9(g,x);c.value=C.status,C.codexDowngradeSkipped&&n("runner.dependency_status_reprobe_downgrade_skipped",{runnerId:e.runnerId,codex_probe_failure:x.codex.failure??null,probe_detail:x.codex.failureDetail??null}),n("runner.dependency_status_reprobed",{runnerId:e.runnerId,codex_available:C.status.codex.available,codex_available_changed:g.codex.available!==C.status.codex.available,probe_detail:x.codex.failureDetail??null})}catch(x){n("runner.dependency_status_reprobe_failed",{runnerId:e.runnerId,message:x instanceof Error?x.message:String(x)})}},_=async()=>{try{let g=await MB(e.codexBin,e.cwd),x=l.value,C=lI(x,g);l.value=C.status;let T=f.value.hasValidOpenAiAuth;f.value=rx(),C.downgradeSkipped&&n("runner.codex_auth_status_reprobe_downgrade_skipped",{runnerId:e.runnerId,reprobed_status:g.status,has_valid_openai_auth:f.value.hasValidOpenAiAuth}),n("runner.codex_auth_status_reprobed",{runnerId:e.runnerId,codex_auth_status:C.status,codex_auth_status_changed:x!==C.status,has_valid_openai_auth:f.value.hasValidOpenAiAuth,has_valid_openai_auth_changed:T!==f.value.hasValidOpenAiAuth})}catch(g){let x=l.value,C=lI(x,{status:"probe_failed",transient:!0});l.value=C.status,f.value=rx(),C.downgradeSkipped&&n("runner.codex_auth_status_reprobe_downgrade_skipped",{runnerId:e.runnerId,reprobed_status:"probe_failed",message:g instanceof Error?g.message:String(g),has_valid_openai_auth:f.value.hasValidOpenAiAuth}),n("runner.codex_auth_status_reprobe_failed",{runnerId:e.runnerId,message:g instanceof Error?g.message:String(g),has_valid_openai_auth:f.value.hasValidOpenAiAuth})}},w={value:sC(process.env,{cwd:e.cwd})},S={value:!1},v=async()=>{if(!(e.claudeCodeRunner!==void 0||e.agentReplay!==void 0))try{let g=await gc({cwd:e.cwd,claudeBin:e.claudeCodeBin}),x=p.value,C=lI(x,g);p.value=C.status,C.downgradeSkipped&&n("runner.claude_code_auth_status_reprobe_downgrade_skipped",{runnerId:e.runnerId,reprobed_status:g.status,probe_detail:g.detail??null}),n("runner.claude_code_auth_status_reprobed",{runnerId:e.runnerId,claude_code_auth_status:C.status,claude_code_auth_status_changed:x!==C.status,probe_detail:g.detail??null})}catch(g){n("runner.claude_code_auth_status_reprobe_failed",{runnerId:e.runnerId,message:g instanceof Error?g.message:String(g)})}},b=g=>{if(S.value)return;let x=sC(process.env,{cwd:e.cwd});x!==w.value&&(w.value=x,S.value=!0,n("runner.claude_code_auth_hint_changed",{runnerId:e.runnerId,claude_code_auth_status:p.value}),v().then(()=>{g()}).finally(()=>{S.value=!1}))},k=e.allowedForwardPorts??[],R=new Set(k),P=new Set,L=CI(e.kandanUrl),D=()=>QIe(L,P),j=eJ(e)?await BRe(n):void 0;j!==void 0&&t.actions.push(()=>j.close());let q=new Map,E=(g,x)=>{q.set(g,{kandanThreadId:x.kandanThreadId??null,codexThreadId:x.codexThreadId??null,channelSlug:x.channelSlug??null,processName:x.processName??null,processIconKey:x.processIconKey??null,localEditor:x.localEditor===!0,agentProvider:x.agentProvider??null,linzumiCliManaged:x.linzumiCliManaged===!0})},B=g=>{q.delete(g)},z=(g,x={})=>{R.add(g),P.add(g),E(g,{processName:x.processName??null,processIconKey:x.processIconKey??null,agentProvider:x.agentProvider??null,linzumiCliManaged:!0})},W=g=>{P.delete(g),B(g),k.includes(g)||R.delete(g)},Z=()=>Array.from(R).sort((g,x)=>g-x).map(g=>{let x=q.get(g);return{port:g,kandanThreadId:x?.kandanThreadId??null,codexThreadId:x?.codexThreadId??null,channelSlug:x?.channelSlug??null,processName:x?.processName??null,processIconKey:x?.processIconKey??null,localEditor:x?.localEditor===!0,agentProvider:x?.agentProvider??null,linzumiCliManaged:x?.linzumiCliManaged===!0||P.has(g)}}),fe=g=>{let{advertisable:x,rejected:C}=Fk(g);for(let T of C)n("runner.non_advertisable_cwd_root_dropped",{root:T.root,reason:T.reason}),Zf({severity:"warning",key:`runner.non_advertisable_cwd_root:${T.root}`,message:`not advertising ${JSON.stringify(T.root)} as an allowed working-directory root (${T.reason==="home_root"?"it is your home directory":"it is a filesystem root"}). A catch-all root would let the server route any coding job to this machine. Register explicit project folders instead (connect from a project directory or pass --allowed-cwd).`});return x},De=fe(Kt(e.allowedCwds)),ke={value:[...De]},ge=e.remoteCodexSandboxRunner??S7({env:process.env,platform:process.platform}),Re=new Map,Ee={value:Kt(e.missingAllowedCwds??[])},I={value:!1},$={value:null},K=(g,x)=>{let C=$.value;if(g.configVersion!==null&&C!==null&&g.configVersion<C){n("runner.config_sync_stale_skipped",{source:x.source,configVersion:g.configVersion,appliedConfigVersion:C});return}let T=C5(g.allowedCwds,e.kandanUrl),O=FI(T,{createMissing:!0});I.value=I.value||NEe(O.allowedCwds,[e.cwd,...De]),ke.value=fe(Kt([...x.includeStartupAllowedCwds?De:[],...O.allowedCwds])),Ee.value=O.missingAllowedCwds,g.configVersion!==null&&($.value=g.configVersion),n("runner.config_updated",{source:x.source,configVersion:g.configVersion,allowedCwdCount:ke.value.length,missingAllowedCwdCount:Ee.value.length})},ie=(g,x={})=>{let C=s2e(ke.value,Ee.value);if(!C.changed)return!1;if(ke.value=C.advertised,Ee.value=C.missing,C.dropped.length>0){n("runner.stale_allowed_cwd_roots_deadvertised",{trigger:g,pruned_roots:C.dropped,advertised_root_count:C.advertised.length,...x});for(let T of C.dropped)Zf({severity:"warning",key:`runner.allowed_cwd_root_missing:${T}`,message:`allowed working-directory root ${JSON.stringify(T)} no longer exists (deleted, or its disk/volume is unmounted). Not offering it for coding jobs until it is back; remount the volume or restore the folder to resume.`})}if(C.restored.length>0){n("runner.allowed_cwd_roots_readvertised",{trigger:g,restored_roots:C.restored,advertised_root_count:C.advertised.length,...x});for(let T of C.restored)Zf({severity:"info",key:`runner.allowed_cwd_root_restored:${T}`,message:`allowed working-directory root ${JSON.stringify(T)} is back; offering it for coding jobs again.`})}return!0},pe={value:{status:"disabled"}},Y={value:0},oe={watcher:void 0,approvedPorts:new Set,approvedTargets:new Map,dismissedTargets:new Map,pendingRequests:new Map,queuedCandidates:new Map};t.actions.push(()=>{for(let g of Re.values())g.abort(new Error("local runner stopped"));Re.clear(),pe.value.status==="running"&&(pe.value.process.kill("SIGINT"),pe.value.collaboration?.process.kill("SIGINT")),oe.watcher?.close()});let Fe=()=>Array.from(oe.pendingRequests.values()).sort((g,x)=>g.port-x.port).map(g=>{let x=vi(g.command),C=x?.appName??nf(mr(g));return{requestId:g.requestId,port:g.port,pid:g.pid,command:g.command,...g.cwd===void 0?{}:{cwd:g.cwd},summary:`Make ${C} on port ${g.port} accessible on Linzumi?`,reason:yy(mr(g)),...x?.appName===void 0?{}:{processName:x.appName},...x?.iconKey===void 0?{}:{processIconKey:x.iconKey}}}),ae,Ce,Yn=()=>(Ce===void 0&&(Ce=(e.localVmReadinessProbe??(()=>e8({workspaceLocalVmExecutionFlag:e.vmExecution===!0})))().then(x=>(ae=x,x)).catch(x=>{n("vm.local_vm_readiness_probe_failed",{error:x instanceof Error?x.message:String(x)})})),Ce),Jn=()=>(Yn(),ae),Dt=()=>({...d===void 0?{}:{generationOverlap:!0},codexAppServer:u,codexRemoteTui:u,client_message_ids:!0,commander_pipeline:"pipeline",agentProviders:m(),modelProviders:[...Ky],codexAuthStatus:l.value,claudeCodeAuthStatus:p.value,hasValidOpenaiAuth:f.value.hasValidOpenAiAuth,openaiAuthMode:f.value.authMode,waferAvailable:!0,defaultAgentProvider:"codex",startInstance:ke.value.length>0,durableClaudeSessionStore:!0,agentSlashCommandCatalog:!0,cloneRepository:!0,managedDevServices:!0,claudeCodeCheckpointRewind:!1,steerTurn:!0,appliedConfigVersion:$.value,allowedCwds:ke.value,missingAllowedCwds:Ee.value,allowedCwdSuggestions:a2e(e.cwd,ke.value),allowedCwdProjects:d2e(ke.value),onboardingSelectedFolderScan:!0,portForwarding:R.size>0,tcpForwarding:!0,linzumiMcp:!0,localVmExecution:e.vmExecution===!0,...(()=>{let g=Jn();return g===void 0?{}:{localVmReadiness:g}})(),remoteCodexExecution:ge!==void 0&&ke.value.length>0,remoteCodexExecutionStatus:ge===void 0?"sandbox_unavailable":ke.value.length>0?"ready":"cwd_unavailable",allowedPorts:Array.from(R).sort((g,x)=>g-x),forwardedPortAttributions:Z(),pendingEditorForwardPortRequests:Fe(),toolStatus:c.value===void 0?null:QT(c.value),editorRuntime:c.value?.editorRuntime===void 0?null:QT(c.value).editorRuntime,...M8(e.editorRuntime,ke.value,pe.value)}),V=()=>(ie("capabilities_payload"),Dt()),ce=fI(HPe(e.runnerId),n),$e=d===void 0?ce:D9(ce,()=>d.outgoingDrainActive());t.actions.push(()=>$e.flush());let _n=Tz(e.runnerId),mn=Pz(_n,g=>n("runner.cwd_stillbirth_state_write_failed",{message:g,statePath:_n}),g=>n("runner.cwd_stillbirth_state_read_failed",{message:g,statePath:_n}));if(e.threadProcess?.role!=="thread"){let g=Az(mn);g.length>0&&n("runner.cwd_stillbirth_counters_reset_on_restart",{cwds:g})}let Be=fI(GPe(e.runnerId),n,{discardSeqsOnFirstEpochAdoption:!0});t.actions.push(()=>Be.flush());let Xe=Iq(Pq(e.runnerId),n);if(e.threadProcess?.role!=="thread"){let g=Za(e.runnerId);Vj(g,n),Jj({scopeDir:g,ownerPid:process.pid,log:n}).catch(C=>{n("dev_services.reconcile_failed",{message:C instanceof Error?C.message:String(C)})});let x=Kj({scopeDir:g,ownerPid:process.pid,log:n});t.actions.push(()=>x.stop())}let Mt=fI(XPe(e.runnerId),n,{fsyncOnWrite:!0});t.actions.push(()=>Mt.flush());let $r={initial:g=>Mt.initial(g),onAdvance:(g,x)=>Mt.onAdvance(g,x),flush:()=>Mt.flush()},Bo=A7(),Jo=g=>{if(g.sourceSeq===void 0)return;let x=xs(at(),g.channel,g.threadId);wB({store:$r,watermarkKey:x,sourceSeq:g.sourceSeq})&&n("runner.live_worker_source_seq_committed",{kandanThreadId:g.threadId,channel:g.channel,sourceSeq:g.sourceSeq}),ku.delete(Ko(g.channel,g.threadId,g.sourceSeq))},N=g=>{Bo.clearSeq(xs(at(),g.channel,g.threadId),g.sourceSeq)},ne=g=>{if(g.sourceSeq===void 0)return!1;let x=xs(at(),g.channel,g.threadId),C=$r.initial(x);return O7(C,Bo,x,g.sourceSeq)},re=N7(),ue=yB(),xe=new Map,Te=new Map,on=!0,et=!1,At=!1,Gt=()=>on&&!et,at=()=>Br(e)??"default",Cr=()=>e.channelSession?.channelSlug??Xe.list()[0]?.channel,Nt=(g,x)=>{let C=at(),T=`${C}:${g}:${x}`,O=xe.get(T);if(O!==void 0)return O;let J=HP(ZP(C,g,x),n);return xe.set(T,J),J},ku=new Map,Ko=(g,x,C)=>`${at()}:${g}:${x}:${C}`,Cu=(g,x,C)=>{ku.set(Ko(g,x,C.seq),C)},Tu=g=>{let x=Nt(g.channel,g.threadId);for(let C of g.sourceSeqs){let T=Ko(g.channel,g.threadId,C),O=ku.get(T);if(O===void 0){n("runner.live_follow_up_recapture_missing",{kandanThreadId:g.threadId,channel:g.channel,sourceSeq:C});continue}let J=x.enqueue(C,"replay",$u(O),Date.now());n("runner.live_follow_up_re_enqueued_on_close",{kandanThreadId:g.threadId,channel:g.channel,sourceSeq:C,enqueued:J.accepted}),ku.delete(T)}};o.stopAccepting=()=>{on=!1},o.flushInboundQueues=()=>{for(let g of xe.values())g.compact()};let Bh=pIe($e,Be,n,e),ip=i7({initialToken:e.token,tokenExpiresAt:e.tokenExpiresAt,deps:{renew:async g=>{let x=await g5({kandanUrl:e.kandanUrl,accessToken:g});return x.kind==="renewed"?{kind:"renewed",accessToken:x.token.accessToken,expiresInSeconds:x.token.expiresInSeconds}:{kind:x.kind}},persist:e.tokenExpiresAt===void 0?void 0:({accessToken:g,expiresInSeconds:x})=>{so({kandanUrl:e.kandanUrl,accessToken:g,expiresInSeconds:x,authFilePath:e.authFilePath})},log:n}}),ve=await Og(e.kandanUrl,()=>ip.currentToken(),e.socketFactory,{controlCursorStore:$e,controlEpochStore:Bh,onOperatorNotice:g=>Zf({severity:"warning",audience:"operator",message:g})});ip.start(),t.actions.push(()=>ip.stop()),t.actions.push(()=>ve.close());let Jh=cIe(n,Date.now,fJ,{onReconnectNeeded:({staleForMs:g,attempt:x})=>{let C=ve.forceReconnect?.("connection_stale_forced_reconnect");return n("kandan.connection_force_reconnect_dispatched",{staleForMs:g,attempt:x,initiated:C??!1}),C??!1},onHardResetNeeded:()=>ve.hardReset?.("connection_stale_hard_reset")??!1,onUnrecoverable:({staleForMs:g})=>{console.error(`Connection to Linzumi was lost and did not recover for ${Math.round(g/6e4)} minutes; exiting so a fresh runner can reconnect. Run \`linzumi connect\` to reconnect.`),process.exit(75)}}),Pe=`local_runner:${e.runnerId}`,Da=e.clientId??e.machineId??e.runnerId,sp=EPe(),ap=d9({log:n}),Pu=()=>{ap.drain(g=>ve.pushIfConnected(Pe,"diagnostics:upload",g))},ho=Zz({upload:g=>ve.pushIfConnected(Pe,"diagnostics:upload",g),runnerLogFile:e.logFile??ug(),log:n,spool:ap});ho.recordLifecycle({event:"connect",atIso:new Date().toISOString()}),Pu(),ve.onDisconnect?.(g=>{ho.recordLifecycle({event:"disconnect",atIso:new Date().toISOString(),closeCode:g.closeCode,closeReason:g.closeReason,previousSessionDurationMs:g.previousSessionDurationMs,reconnectCount:g.reconnectCount}),ho.flushNow()}),ve.onReconnect(()=>{ho.recordLifecycle({event:"connect",atIso:new Date().toISOString()}),ho.flushNow(),Pu()}),t.actions.push(async()=>{ho.stop(),ho.flushNow()});let dp=()=>({clientName:"kandan-local-codex-runner",clientId:Da,machineFingerprint:e.machineFingerprint??null,...A6(e.machineFingerprintV2),runnerPid:process.pid,version:jt,hostname:sp,cwd:e.cwd,workspace:Br(e)??null,channel:e.channelSession?.channelSlug??null,capabilities:V(),...d===void 0?{}:{generation:{epoch:d.epoch,overlap:!0}}}),up=[],Kh=0,U=0,qe={value:void 0};ve.onControl((g,x)=>{Jh.recordServerAck();let C=qe.value;if(C===void 0){up.push({control:g,ack:x});return}C(g,x)});let te=await ve.join(Pe,dp(),{rejoinPayload:dp});if(d!==void 0){let g=d.sendToSupervisor({type:"generation_ready",epoch:d.epoch});n("runner.generation_ready_sent",{epoch:d.epoch,delivered:g})}let be=LB(A(te)?.runner_config);switch(be.type){case"missing":break;case"invalid":throw n("runner.config_join_invalid",{runnerId:e.runnerId,kandanUrl:e.kandanUrl,reason:be.reason}),new Error(`invalid runner_config in Kandan join response: ${be.reason}`);case"ok":K(be.config,{includeStartupAllowedCwds:!1,source:"join"});break}let sn=A(A(te)?.compute_node);sn!==void 0&&n("runner.compute_node",{id:h(sn.id),name:h(sn.name),identityQuality:h(sn.identity_quality),resetGeneration:X(sn.reset_generation)});let Lr=(g,x)=>{let C=jIe(g);C!==void 0&&n("kandan.roster_seeded",{source:x,thread_count:C.threads.length,truncated:C.truncated,skipped_entries:C.skippedEntries,threads:C.threads.map(T=>({kandan_thread_id:T.kandanThreadId,provider_session_key:T.providerSessionKey,channel_id:T.channelId,last_activity_at_ms:T.lastActivityAtMs}))})};Lr(te,"join");let Vh=(g,x)=>{let C=A(g)?.fleet_breaker;if(C===void 0)return;let T=kS(C);if(T===void 0){n("runner.fleet_breaker_seed_invalid",{source:x});return}n("runner.fleet_breaker_state",{source:x,outcome:CS(T),state:T.state,fate:T.fate,version:T.version})};Vh(te,"join"),ve.onReconnect(g=>{Lr(g.get(Pe),"rejoin"),Vh(g.get(Pe),"rejoin");let x=LB(g.get(Pe)?.runner_config);switch(x.type){case"missing":return;case"invalid":n("runner.config_rejoin_invalid",{runnerId:e.runnerId,kandanUrl:e.kandanUrl,reason:x.reason});return;case"ok":K(x.config,{includeStartupAllowedCwds:!1,source:"rejoin"});return}});let Wh=LIe(A(te)?.replaced_runners),jr=s===void 0&&e.codexUrl===void 0&&u?await EJ(e):void 0;jr!==void 0&&t.actions.push(()=>{jr.stop()});let Pt=e.codexUrl??jr?.url;if(jr!==void 0){let g=CI(jr.url);g!==void 0&&z(g,{processName:"Codex app-server",processIconKey:"codex",agentProvider:"codex"})}let Je=`codex-${dI()}`,Ine=g=>{ve.push(Pe,"local_editor_status",g).catch(x=>{n("kandan.local_editor_status_push_failed",{message:x instanceof Error?x.message:String(x)})})},Ma=(g,x)=>{ve.push(Pe,g,x).catch(C=>{n(`kandan.${g}_push_failed`,{message:C instanceof Error?C.message:String(C)})})},Rne=eJ(e)?WRe({log:n,instanceId:Je,markCommanderManagedForwardPort:z,clearCommanderManagedForwardPort:W,managedForwardPorts:P,capabilitiesPayload:V,pushForwardPortEvent:Ma}):void 0;t.actions.push(()=>Rne?.close());let Aw=(g,x)=>{let C=oe.approvedTargets.get(g);oe.approvedPorts.delete(g),oe.approvedTargets.delete(g),R.delete(g),B(g),Ma("forward_port_revoked",{instanceId:Je,port:g,...C===void 0?{}:{pid:C.pid,command:C.command,...C.cwd===void 0?{}:{cwd:C.cwd}},reason:x,capabilities:Us(V(),g)})},n6=g=>{oe.watcher?.close(),oe.watcher=void 0,oe.pendingRequests.clear(),oe.queuedCandidates.clear();let x=Array.from(oe.approvedPorts);for(let C of x)Aw(C,g);return oe.dismissedTargets.clear(),x},Hh=()=>{if(oe.pendingRequests.size>0||oe.queuedCandidates.size===0)return;let g=Array.from(oe.queuedCandidates.values()).sort((x,C)=>x.port-C.port)[0];g!==void 0&&(oe.queuedCandidates.delete(g.port),t6(g),oe.pendingRequests.size===0&&Hh())},Ow=g=>{let x=nc({requestId:`editor-port-forward-auto-${dI()}`,sourceSeq:0,candidate:g});oe.approvedPorts.add(x.port),oe.approvedTargets.set(x.port,mr(x)),R.add(x.port);let C=vi(x.command);E(x.port,{localEditor:!0,processName:C?.appName??null,processIconKey:C?.iconKey??null,linzumiCliManaged:x.portKind==="commander_bound"}),Ma("forward_port_resolved",{instanceId:Je,requestId:x.requestId,source:"local_editor",port:x.port,pid:x.pid,command:x.command,...x.cwd===void 0?{}:{cwd:x.cwd},decision:"approve",capabilities:V()})},t6=g=>{let x=ef({candidate:g,threadBound:!0,suppressedPorts:new Set(D()),approvedPorts:oe.approvedPorts,approvedTargets:oe.approvedTargets,dismissedTargets:oe.dismissedTargets,pendingRequests:Array.from(oe.pendingRequests.values())});switch(x.type){case"skip":return;case"remember_approved_target":oe.approvedTargets.set(x.target.port,x.target);return;case"revoke_and_prompt":Aw(x.revoked.port,x.reason),Ow(g);return;case"replace_pending":oe.pendingRequests.delete(x.expired.port),Ma("forward_port_resolved",{instanceId:Je,requestId:x.expired.requestId,source:"local_editor",port:x.expired.port,pid:x.expired.pid,command:x.expired.command,...x.expired.cwd===void 0?{}:{cwd:x.expired.cwd},decision:"expired",reason:x.reason,capabilities:V()}),Ow(x.candidate);return;case"prompt":Ow(g);return}},Ene=g=>{let x=oe.queuedCandidates.get(g.port);if(x!==void 0&&qr(x,g)){oe.queuedCandidates.delete(g.port);return}let C=oe.pendingRequests.get(g.port);if(C!==void 0&&qr(mr(C),g)){oe.pendingRequests.delete(g.port),Ma("forward_port_revoked",{instanceId:Je,port:g.port,pid:g.pid,command:g.command,...g.cwd===void 0?{}:{cwd:g.cwd},reason:"listener_exited",capabilities:Us(V(),g.port)}),Hh();return}oe.approvedPorts.has(g.port)&&Aw(g.port,"listener_exited")},Dne=g=>{let x=Array.from(oe.pendingRequests.values()).find(T=>T.requestId===g.requestId);if(x===void 0)return;if(oe.pendingRequests.delete(x.port),g.decision==="deny")return oe.dismissedTargets.set(x.port,mr(x)),Ma("forward_port_resolved",{instanceId:Je,requestId:x.requestId,source:"local_editor",port:x.port,pid:x.pid,command:x.command,...x.cwd===void 0?{}:{cwd:x.cwd},decision:"deny",capabilities:V()}),Hh(),{instanceId:Je,ok:!0};oe.approvedPorts.add(x.port),oe.approvedTargets.set(x.port,mr(x)),R.add(x.port);let C=vi(x.command);return E(x.port,{localEditor:!0,processName:C?.appName??null,processIconKey:C?.iconKey??null,linzumiCliManaged:x.portKind==="commander_bound"}),Ma("forward_port_resolved",{instanceId:Je,requestId:x.requestId,source:"local_editor",port:x.port,pid:x.pid,command:x.command,...x.cwd===void 0?{}:{cwd:x.cwd},decision:"approve",capabilities:V()}),Hh(),{instanceId:Je,ok:!0,port:x.port}},Mne=g=>{if(g.process.pid===void 0){n("port_forward.local_editor_watch_skipped",{reason:"editor_pid_missing"});return}oe.watcher?.close(),oe.watcher=ec({rootPid:g.process.pid,onCandidate:t6,onCandidateLost:Ene,onError:x=>{n("port_forward.local_editor_watch_failed",{message:x.message})}})},$w=g=>{if(g.pendingRequests.size>0||g.queuedCandidates.size===0)return;let x=Array.from(g.queuedCandidates.values()).sort((C,T)=>C.port-T.port)[0];x!==void 0&&(g.queuedCandidates.delete(x.port),r6(g,x).catch(C=>{n("port_forward.claude_code_prompt_failed",{message:C instanceof Error?C.message:String(C)})}))},Gh=async(g,x,C,T="wait_for_connection")=>{let O=g.approvedTargets.get(x);g.approvedPorts.delete(x),g.approvedTargets.delete(x),R.delete(x),B(x),await(T==="connected_only"?ve.pushIfConnected:ve.push)(Pe,"forward_port_revoked",{instanceId:Je,port:x,...O===void 0?{}:{pid:O.pid,command:O.command,...O.cwd===void 0?{}:{cwd:O.cwd}},reason:C,agentProvider:"claude-code",capabilities:Us(V(),x)})},Lw=async(g,x)=>{let C=g.currentSourceSeq()??g.rootSeq;if(C===void 0){n("port_forward.claude_code_auto_approval_skipped",{reason:"source_seq_missing",port:x.port,pid:x.pid});return}let T=nc({requestId:`claude-port-forward-auto-${dI()}`,sourceSeq:C,candidate:x});g.approvedPorts.add(T.port),g.approvedTargets.set(T.port,mr(T)),R.add(T.port);let O=vi(T.command);E(T.port,{kandanThreadId:g.threadId,codexThreadId:g.sessionId,channelSlug:g.channel,processName:O?.appName??null,processIconKey:O?.iconKey??null,agentProvider:"claude-code",linzumiCliManaged:T.portKind==="commander_bound"}),await ve.push(Pe,"forward_port_resolved",{instanceId:Je,requestId:T.requestId,port:T.port,pid:T.pid,command:T.command,...T.cwd===void 0?{}:{cwd:T.cwd},sourceSeq:T.sourceSeq,decision:"approve",agentProvider:"claude-code",capabilities:V()})},r6=async(g,x)=>{let C=ef({candidate:x,threadBound:!0,suppressedPorts:new Set(D()),approvedPorts:g.approvedPorts,approvedTargets:g.approvedTargets,dismissedTargets:g.dismissedTargets,pendingRequests:Array.from(g.pendingRequests.values())});switch(C.type){case"skip":return;case"remember_approved_target":g.approvedTargets.set(C.target.port,C.target);return;case"revoke_and_prompt":await Gh(g,C.revoked.port,C.reason),await Lw(g,x);return;case"replace_pending":g.pendingRequests.delete(C.expired.requestId),await ve.push(Pe,"forward_port_resolved",{instanceId:Je,requestId:C.expired.requestId,port:C.expired.port,pid:C.expired.pid,command:C.expired.command,...C.expired.cwd===void 0?{}:{cwd:C.expired.cwd},sourceSeq:C.expired.sourceSeq,decision:"expired",reason:C.reason,agentProvider:"claude-code",capabilities:V()}),await ri(ve,Pe,{workspace:g.workspace,channel:g.channel,threadId:g.threadId,sourceSeq:C.expired.sourceSeq,status:"failed",reason:"port_forward_listener_changed",sessionId:g.sessionId}),await Lw(g,C.candidate);return;case"prompt":await Lw(g,x);return}},Ane=(g,x)=>{let C=g.queuedCandidates.get(x.port);if(C!==void 0&&qr(C,x)){g.queuedCandidates.delete(x.port),g.approvedPorts.has(x.port)&&Gh(g,x.port,"listener_exited").catch(O=>{n("port_forward.claude_code_revoke_failed",{message:O instanceof Error?O.message:String(O)})});return}let T=Array.from(g.pendingRequests.values()).find(O=>qr(mr(O),x));if(T!==void 0){g.pendingRequests.delete(T.requestId),ve.push(Pe,"forward_port_resolved",{instanceId:Je,requestId:T.requestId,port:T.port,pid:T.pid,command:T.command,...T.cwd===void 0?{}:{cwd:T.cwd},sourceSeq:T.sourceSeq,decision:"expired",reason:"listener_exited",agentProvider:"claude-code",capabilities:V()}).then(()=>ri(ve,Pe,{workspace:g.workspace,channel:g.channel,threadId:g.threadId,sourceSeq:T.sourceSeq,status:"failed",reason:"port_forward_listener_exited",sessionId:g.sessionId})).then(()=>$w(g)).catch(O=>{n("port_forward.claude_code_expire_failed",{message:O instanceof Error?O.message:String(O)})});return}g.approvedPorts.has(x.port)&&Gh(g,x.port,"listener_exited").catch(O=>{n("port_forward.claude_code_revoke_failed",{message:O instanceof Error?O.message:String(O)})})},One=g=>{for(let x of Eu.values()){let C=x.pendingRequests.get(g.requestId);if(C===void 0)continue;if(x.pendingRequests.delete(g.requestId),g.decision==="deny")return x.dismissedTargets.set(C.port,mr(C)),Promise.all([ve.push(Pe,"forward_port_resolved",{instanceId:Je,requestId:C.requestId,port:C.port,pid:C.pid,command:C.command,...C.cwd===void 0?{}:{cwd:C.cwd},sourceSeq:C.sourceSeq,decision:"deny",agentProvider:"claude-code",capabilities:V()}),ri(ve,Pe,{workspace:x.workspace,channel:x.channel,threadId:x.threadId,sourceSeq:C.sourceSeq,status:"failed",reason:"port_forward_denied",sessionId:x.sessionId})]).then(()=>$w(x)).catch(O=>{n("port_forward.claude_code_deny_failed",{message:O instanceof Error?O.message:String(O)})}),{instanceId:Je,ok:!0,agentProvider:"claude-code"};x.approvedPorts.add(C.port),x.approvedTargets.set(C.port,mr(C)),R.add(C.port);let T=vi(C.command);return E(C.port,{kandanThreadId:x.threadId,codexThreadId:x.sessionId,channelSlug:x.channel,processName:T?.appName??null,processIconKey:T?.iconKey??null,agentProvider:"claude-code",linzumiCliManaged:C.portKind==="commander_bound"}),Promise.all([ve.push(Pe,"forward_port_resolved",{instanceId:Je,requestId:C.requestId,port:C.port,pid:C.pid,command:C.command,...C.cwd===void 0?{}:{cwd:C.cwd},sourceSeq:C.sourceSeq,decision:"approve",agentProvider:"claude-code",capabilities:V()}),ri(ve,Pe,{workspace:x.workspace,channel:x.channel,threadId:x.threadId,sourceSeq:C.sourceSeq,status:"processed",reason:"Claude Code preview port approved",sessionId:x.sessionId})]).then(()=>$w(x)).catch(O=>{n("port_forward.claude_code_approve_failed",{message:O instanceof Error?O.message:String(O)})}),{instanceId:Je,ok:!0,agentProvider:"claude-code",port:C.port}}},o6=g=>{if(Eu.has(g.sessionId))return;let x=e.portForwardWatcher??(J=>ec({rootPid:process.pid,commanderBoundPids:[process.pid],commanderBoundPorts:Array.from(P),watchPorts:k,extraWatchPorts:my(Za(e.runnerId)),...J})),C={value:void 0},T;try{T=x({onCandidate:J=>C.value===void 0?void 0:r6(C.value,J),onCandidateLost:J=>C.value===void 0?void 0:Ane(C.value,J),onListenersObserved:J=>ag(`claude-session:${g.sessionId}`,J.filter(Se=>Se.portKind!=="commander_bound")),onError:J=>{n("port_forward.claude_code_watch_failed",{message:J.message,claude_session_id:g.sessionId})}})}catch(J){n("port_forward.claude_code_watch_skipped",{reason:"watch_start_failed",message:J instanceof Error?J.message:String(J),claude_session_id:g.sessionId});return}n("port_forward.claude_code_watch_started",{claude_session_id:g.sessionId,root_pid:e.portForwardWatcher===void 0?process.pid:null,injected:e.portForwardWatcher!==void 0});let O={...g,watcher:T,approvedPorts:new Set,approvedTargets:new Map,dismissedTargets:new Map,pendingRequests:new Map,queuedCandidates:new Map};C.value=O,Eu.set(g.sessionId,O)},jw=async(g,x="wait_for_connection")=>{let C=Eu.get(g);if(C===void 0)return;let T=Array.from(C.pendingRequests.values()),O=Array.from(C.approvedPorts);C.watcher.close(),C.pendingRequests.clear(),C.queuedCandidates.clear(),C.dismissedTargets.clear(),Eu.delete(g),await Promise.all([...T.map(async J=>{try{let Se=x==="connected_only"?ve.pushIfConnected:ve.push;await Promise.all([Se(Pe,"forward_port_resolved",{instanceId:Je,requestId:J.requestId,port:J.port,pid:J.pid,command:J.command,...J.cwd===void 0?{}:{cwd:J.cwd},sourceSeq:J.sourceSeq,decision:"expired",reason:"session_ended",agentProvider:"claude-code",capabilities:V()}),ri(ve,Pe,{workspace:C.workspace,channel:C.channel,threadId:C.threadId,sourceSeq:J.sourceSeq,status:"failed",reason:"port_forward_session_ended",sessionId:C.sessionId,publishMode:x})])}catch(Se){n("port_forward.claude_code_dispose_prompt_failed",{message:Se instanceof Error?Se.message:String(Se)})}}),...O.map(async J=>{try{await Gh(C,J,"session_ended",x)}catch(Se){n("port_forward.claude_code_dispose_revoke_failed",{message:Se instanceof Error?Se.message:String(Se)})}})])},$ne=(g,x,C)=>{let T=()=>{if(Y.value!==x||pe.value.status!=="running"||pe.value.process!==g.process)return;pe.value={status:"disabled"};let J=n6("editor_exited");R.delete(g.port),P.delete(g.port),g.collaboration!==void 0&&(R.delete(g.collaboration.serverPort),P.delete(g.collaboration.serverPort)),Ine({instanceId:Je,ok:!0,cwd:g.cwd,capabilities:{...V(),revokedPorts:g.collaboration===void 0?[g.port,...J]:[g.port,g.collaboration.serverPort,...J]}})},O=()=>{C.then(T).catch(J=>{n("kandan.local_editor_initial_status_failed",{message:J instanceof Error?J.message:String(J)})})};g.exited.then(O)},Zt=s?.codex??(Pt===void 0?void 0:await Tf(Pt));if(Zt!==void 0&&t.actions.push(()=>Zt.close()),e.channelSession!==void 0&&Zt===void 0)throw new Error("channel session requires a Codex app-server connection");let i6=CIe({codexUrl:e.codexUrl,threadProcessRole:e.threadProcess?.role,ownsStartedAppServer:jr!==void 0}),Fw={value:0},s6={value:[]},Iu=pm(e),Lne={instanceId:Je,clientId:Da,...Pt===void 0?{}:{codexUrl:Pt},tuiLaunched:e.launchTui,cwd:e.cwd,hostname:sp,codexThreads:s6.value,workspace:Br(e)??null,channel:e.channelSession?.channelSlug??null,model:Iu.model??null,reasoningEffort:Iu.reasoningEffort??null,allowPortForwardingByDefault:Iu.allowPortForwardingByDefault??null,fast:e.fast??!1};await ve.push(Pe,"instance_started",Lne),n("runner.instance_started",{runnerId:e.runnerId,hostname:sp,workspace:Br(e)??null,version:jt,instanceId:Je,codexUrl:Pt??null,replacedRunners:Wh});let a6=Br(e),d6={...a6===void 0?{}:{workspace:a6},launch_source:e.launchSource??"cli"};Vc({name:"commander.connected",attributes:d6},{apiUrl:e.kandanUrl}),t.actions.push(()=>Vc({name:"commander.exited",attributes:d6},{apiUrl:e.kandanUrl}));let Qt=e.channelSession===void 0||Zt===void 0?void 0:await cf({kandan:ve,codex:Zt,topic:Pe,instanceId:Je,leaseEpochFor:g=>ue.current(g),escalateEngineHalt:jr===void 0?void 0:()=>{jr.stop()},options:{kandanUrl:e.kandanUrl,token:e.token,runnerId:e.runnerId,cwd:e.cwd,codexBin:e.codexBin,fetch:e.fetch,fast:e.fast,launchTui:e.launchTui,pipelinePersistDir:om(),enablePortForwardWatch:!0,initialForwardPorts:k,portForwardWatcher:YB({rootPid:jr?.process.pid,start:e.portForwardWatcher}),suppressedForwardPorts:D,onForwardPortApproved:(g,x)=>(R.add(g),E(g,{...x,agentProvider:"codex"}),V()),onForwardPortRevoked:g=>(R.delete(g),B(g),V()),onUnroutedThreadMessage:g=>g6(g),onLiveSourceSeqAccepted:Jo,onLiveSourceSeqSettled:N,channelSession:e.channelSession},log:n});Qt!==void 0&&(t.actions.push(()=>Qt.close()),ve.onReconnect(()=>Qt.handleKandanReconnect()));let Xt=new Map,cp=new Map,Aa=new Map,jne=(g,x)=>{let C=Aa.get(g);if(C!==void 0){Aa.delete(g);for(let T of C)T.resolve(x)}},Zh=(g,x)=>{let C=Aa.get(g);if(C!==void 0){Aa.delete(g);for(let T of C)T.reject(x)}},Qi=Lq(),Fne=new Set(["kandan.reconnect_thread_resume_failed","kandan.reconnect_thread_rehydrate_forced","kandan.reconnect_thread_rehydration_ir_emitted","kandan.reconnect_thread_rehydration_failed","kandan.reconnect_thread_rehydrated","kandan.reconnect_thread_unarchive_started","kandan.reconnect_thread_unarchive_resumed","kandan.reconnect_thread_unarchive_failed"]),qne=(g,x)=>{if(!Fne.has(g))return;let C=x.codex_thread_id;typeof C=="string"&&C!==""&&Qi.note(C,g)},zne=g=>()=>jq(fC(),g),u6=Object.assign((g,x)=>{qne(g,x),n(g,x)},{close:()=>n.close()}),qw=g=>Fq({method:"thread/attach",codexThreadId:g.codexThreadId,kandanThreadId:g.kandanThreadId,wait:g.wait,tracker:Qi,log:n,rolloutBytes:zne(g.codexThreadId),noProgressTimeoutMs:Iy()}),Xi=new Map,Ru=new Map,c6=[],zw=g=>{let x=Ru.get(g);if(x!==void 0)return x;let C=DIe({sessions:()=>[...g===Zt&&Qt!==void 0?[Qt]:[],...Array.from(Xt.entries()).filter(([T])=>Xi.get(T)===g).map(([,T])=>T)],log:n,onActiveThreadsFailed:i6?T=>{for(let O of T)c6.push(ve.push(Pe,"session:app_server_lost",{codex_thread_id:O}).then(()=>{},J=>{n("kandan.session_app_server_lost_push_failed",{codex_thread_id:O,message:J instanceof Error?J.message:String(J)})}))}:void 0});return Ru.set(g,C),C},ro=new Map,Nw=new Map,Nne={record:(g,x)=>{let C=Nw.get(g),T={approvalPolicy:x.approvalPolicy??C?.approvalPolicy,sandbox:x.sandbox??C?.sandbox};T.approvalPolicy===void 0&&T.sandbox===void 0||Nw.set(g,T)},resolve:g=>Nw.get(g)},Qh=new Map,lp=new Map,Eu=new Map;ve.onReconnect(()=>HIe(Xt.values())),ve.onDisconnect?.(()=>{for(let g of ro.values())g.pauseOutbox()}),ve.onReconnect(()=>{for(let[g,x]of ro)n("claude_code.outbox_resumed_on_reconnect",{claude_session_id:g,linzumi_thread_id:x.threadId}),x.resumeOutbox()}),o.interruptInFlightTurns=async()=>{let g=[...ro.entries()].flatMap(([C,T])=>{let O=T.currentSourceSeq();return O===void 0?[]:[{sessionId:C,session:T,sourceSeq:O}]});if(g.length===0)return;let x=new Promise(C=>{setTimeout(C,UIe).unref?.()});await Promise.race([Promise.all(g.map(async({sessionId:C,session:T,sourceSeq:O})=>{n("runner.drain_turn_interrupted_state",{claude_session_id:C,linzumi_thread_id:T.threadId,source_seq:O});try{await ri(ve,Pe,{workspace:T.workspace,channel:T.channel,threadId:T.threadId,sourceSeq:O,status:"interrupted",reason:NIe,sessionId:C})}catch(J){n("runner.drain_turn_interrupted_state_push_failed",{linzumi_thread_id:T.threadId,source_seq:O,message:J instanceof Error?J.message:String(J)})}})).then(()=>{}),x])};let l6=async()=>{let g=Eq(Xe.list(),Date.now());if(g.length!==0)try{await ve.push(Pe,"session:reannounce_threads",{threads:g.map(x=>({...x}))}),n("kandan.thread_sessions_reannounced",{count:g.length})}catch(x){n("kandan.thread_sessions_reannounce_failed",{count:g.length,message:x instanceof Error?x.message:String(x)})}};ve.onReconnect(()=>l6()),l6(),t.actions.push(async()=>{await Promise.all(Array.from(Xt.values(),x=>x.close())),Xt.clear(),Xi.clear(),Aa.clear();let g=[...ro.values()];for(let x of g)try{x.closeInput()}catch(C){n("claude_code.session_input_close_failed",{linzumi_thread_id:x.threadId,message:C instanceof Error?C.message:String(C)})}await Promise.race([Promise.allSettled(g.flatMap(x=>{let C=x.sessionWork();return C===void 0?[]:[C]})),new Promise(x=>{setTimeout(x,1e4).unref?.()})]);for(let x of g)x.abortController.abort(new Error("local runner stopped"));ro.clear();for(let x of Qh.values())x.resolve({type:"deny",message:"Claude Code approval cancelled because the runner stopped"});Qh.clear();for(let x of lp.values())x.resolve({type:"deny",message:"Claude Code question cancelled because the runner stopped"});lp.clear(),await Promise.all(Array.from(Eu.keys(),x=>jw(x,"connected_only")))});let ht=new Map;t.actions.push(async()=>{await Promise.all(Array.from(ht.values(),vI)),ht.clear()});let Une=()=>{for(let[g,x]of Array.from(ht.entries()))R0(x)==="dead"&&ht.get(g)===x&&(ht.delete(g),n("runner.thread_process_stale_entry_reaped",{kandanThreadId:g,pid:x.kind==="running"?x.handle.processPid??null:null,prior_kind:x.kind}),vI(x).catch(()=>{}))};if(sm(e)){let g=e.threadRunnerReaperIntervalMs??LPe,x=setInterval(Une,g);x.unref?.(),t.actions.push(()=>clearInterval(x))}let Uw=new Map,Bne=z3(),Bw=async(g,x)=>{let C=Xt.get(g),T=Xi.get(g);if(C===void 0||x!==void 0&&T!==x||T?.isClosed?.()!==!0)return!1;Xt.delete(g),Xi.delete(g),cp.delete(g),n("runner.thread_session_evicted_dead_worker",{codex_thread_id:g,kandan_thread_id:C.currentKandanThreadId()??null});try{await C.close()}catch(O){n("runner.thread_session_evict_close_failed",{codex_thread_id:g,message:O instanceof Error?O.message:String(O)})}return!0},Jw=async(g,x={})=>{let C=Xt.get(g);if(C!==void 0)return C;let T=cp.get(g);if(T!==void 0){let J=await T;if(J!==void 0)return J}let O=Xt.get(g);return O!==void 0||x.waitForSiblingSpawn!==!0?O:await new Promise((J,Se)=>{let an=Aa.get(g)??[];an.push({resolve:J,reject:Se}),Aa.set(g,an)})},p6=async g=>{let{control:x,cwd:C,codexThreadId:T,sessionCodex:O}=g,J=g.portForwardWatcherRootPid,Se=pn(x,"workspace"),an=pn(x,"channel"),en=pn(x,"threadId");if(Se===void 0||an===void 0||en===void 0)return;let Cn=Xt.get(T);if(Cn!==void 0){let nt=Cn.currentKandanThreadId();if(nt!==void 0&&nt!==en)throw new ed({codexThreadId:T,ownerKandanThreadId:nt,requestingKandanThreadId:en});if(!await Bw(T))return Cn}let pr=Xe.list().find(nt=>nt.codexThreadId===T&&nt.kandanThreadId!==en);if(pr!==void 0)throw new ed({codexThreadId:T,ownerKandanThreadId:pr.kandanThreadId,requestingKandanThreadId:en});let Dn=cp.get(T);if(Dn!==void 0)return await Dn;let gi=(async()=>{Qi.note(T,"attach_started");let nt=e.channelSession?.listenUser??go(e.token).actorUsername;if(nt===void 0)throw new Error("missing listen user for Commander-started Codex session");let Ln=rl(e,x),Yt=sm(e)?async bn=>Bne.run(bn.kandanThreadId,async()=>{await Bw(bn.codexThreadId);let An=!1,yt=Uw.get(bn.kandanThreadId)??(x.modelProvider!==void 0||x.llmProxy!==void 0||x.linzumiAgent!==void 0?{...x.modelProvider===void 0?{}:{modelProvider:x.modelProvider},...x.llmProxy===void 0?{}:{llmProxy:x.llmProxy},...x.linzumiAgent===void 0?{}:{linzumiAgent:x.linzumiAgent}}:void 0),Du=X(x.rootSeq);for(let fr of bn.pendingMessages){let ng={type:"reconnect_thread",workspace:Se,channel:an,threadId:bn.kandanThreadId,codexThreadId:bn.codexThreadId,cwd:C,...x.linzumiContext===void 0?{}:{linzumiContext:x.linzumiContext},...x.type==="reconnect_thread"&&x.sessionRehydrate===!0?{sessionRehydrate:!0}:{},...Du===void 0?{}:{rootSeq:Du},...yt?.modelProvider===void 0?{}:{modelProvider:yt.modelProvider},...yt?.llmProxy===void 0?{}:{llmProxy:yt.llmProxy},...yt?.linzumiAgent===void 0?{}:{linzumiAgent:yt.linzumiAgent},sourceSeq:fr.seq,workDescription:fr.body,...Ln.model===void 0?{}:{model:Ln.model},...Ln.reasoningEffort===void 0?{}:{reasoningEffort:Ln.reasoningEffort},...Ln.sandbox===void 0?{}:{sandbox:Ln.sandbox},...Ln.approvalPolicy===void 0?{}:{approvalPolicy:Ln.approvalPolicy},...Ln.fast===void 0?{}:{fast:Ln.fast}},I6=async $a=>{let R6=await qw({codexThreadId:bn.codexThreadId,kandanThreadId:bn.kandanThreadId,wait:Jw(bn.codexThreadId,{waitForSiblingSpawn:$a.waitForSiblingSpawn})});if(R6===void 0)throw new Error(`dead-worker rebuild could not resolve a live session for codex thread ${bn.codexThreadId}`);await R6.startThreadMessageTurn({seq:fr.seq,body:fr.body,actorSlug:fr.actorSlug,actorUserId:fr.actorUserId,boundStartTimeout:!0})};try{if(An)await I6({waitForSiblingSpawn:!1});else{let $a=await Vw(ng,C);mI($a)&&(n("runner.thread_dead_worker_rebuild_replay_on_sibling",{codex_thread_id:bn.codexThreadId,kandan_thread_id:bn.kandanThreadId,seq:fr.seq}),await I6({waitForSiblingSpawn:!0}))}An=!0}catch($a){return n("runner.thread_dead_worker_rebuild_failed",{codex_thread_id:bn.codexThreadId,kandan_thread_id:bn.kandanThreadId,seq:fr.seq,message:$a instanceof Error?$a.message:String($a)}),!1}}return An}):void 0,jn=x.linzumiAgent?.mcpToken??e.linzumiAgentMcpToken,er=$0(x),Yi=er.type==="provider"?er.runtime:void 0,nr=mRe({env:process.env,kandanUrl:e.kandanUrl,workspaceSlug:Se,linzumiAgentMcpToken:jn,ownerUsername:U0(e),modelProviderRuntime:Yi}),Vo=await cf({kandan:ve,codex:O,topic:Pe,instanceId:Je,leaseEpochFor:bn=>ue.current(bn),options:{kandanUrl:e.kandanUrl,token:e.token,runnerId:e.runnerId,cwd:C,codexBin:e.codexBin,mcpAvailable:!oa(e)||$I(e),devServicesAvailable:!oa(e),fetch:e.fetch,fast:x.fast??e.fast,launchTui:!1,rebuildOnDeadCodexWorker:Yt,onUnroutedThreadMessage:bn=>g6(bn),onCodexThreadRebound:({kandanThreadId:bn,oldCodexThreadId:An,newCodexThreadId:yt})=>{if(An!==void 0&&An!==yt){let fr=Xt.get(An),ng=Xi.get(An);fr!==void 0&&(Xt.delete(An),Xt.set(yt,fr)),ng!==void 0&&(Xi.delete(An),Xi.set(yt,ng)),Qi.clear(An)}let Du=Xe.rebindCodexThread(bn,yt);n("runner.codex_thread_rebind_propagated",{kandan_thread_id:bn,old_codex_thread_id:An??null,new_codex_thread_id:yt,registry_outcome:Du.outcome})},onLiveSourceSeqAccepted:Jo,onLiveSourceSeqSettled:N,...nr===void 0?{}:{cloudAgentTurn:nr},pipelinePersistDir:om(),enablePortForwardWatch:!0,initialForwardPorts:k,portForwardWatcher:YB({rootPid:J,start:e.portForwardWatcher,commanderBoundPids:g.commanderBoundPids,commanderBoundPorts:g.commanderBoundPorts}),suppressedForwardPorts:D,onForwardPortApproved:(bn,An)=>(R.add(bn),E(bn,{...An,agentProvider:"codex"}),V()),onForwardPortRevoked:bn=>(R.delete(bn),B(bn),V()),channelSession:{workspaceSlug:Se,channelSlug:an,kandanThreadId:en,rootSeq:X(x.rootSeq),codexThreadId:T,linzumiContext:x.linzumiContext,listenUser:nt,linzumiAgentSession:x.linzumiAgent!==void 0||e.threadProcess?.role==="thread"&&e.linzumiAgentMcpToken!==void 0,modelProvider:Ln.modelProvider,model:Ln.model,reasoningEffort:Ln.reasoningEffort,sandbox:Ln.sandbox,approvalPolicy:Ln.approvalPolicy,sandboxedApprovalNeverDefault:Ln.sandboxedApprovalNeverDefault,allowPortForwardingByDefault:Ln.allowPortForwardingByDefault}},log:n});return Xt.set(T,Vo),Xi.set(T,O),Qi.note(T,"attached"),jne(T,Vo),Xe.upsert({workspace:Se,channel:an,kandanThreadId:en,codexThreadId:T,cwd:C,agentProvider:"codex",control:vJ({workspaceSlug:Se,channelSlug:an,kandanThreadId:en,codexThreadId:T,cwd:C,rootSeq:X(x.rootSeq),runtimeSettings:Ln}),updatedAtMs:Date.now()}),O!==Zt&&O.onNotification(bn=>{Fw.value+=1;let An=bn.params??{};n("codex.notification",qT(bn.method,An)),zw(O).observeNotification(bn.method,An),D0(Vo,bn.method,An,n)}),Vo})();cp.set(T,gi);try{let nt=await gi;return nt===void 0&&Zh(T,new Error(`attach for codex thread ${T} resolved without a live session`)),nt}catch(nt){let Ln=nt instanceof Error?nt.message:String(nt);throw Qi.fail(T,Ln),Zh(T,nt instanceof Error?nt:new Error(Ln)),nt}finally{cp.delete(T)}},Kw=async(g,x,C)=>{if(Zt===void 0)throw new Error("cannot attach a thread session without a codex app-server connection");return await p6({control:g,cwd:x,codexThreadId:C,sessionCodex:Zt,portForwardWatcherRootPid:jr?.process.pid})},f6=g=>{let x=Nt(g.channel,g.kandanThreadId),C=xs(at(),g.channel,g.kandanThreadId),T=$r.initial(C),O=Te.get(g.kandanThreadId)??[],J=tm(T,O)??T,Se="";try{Se=kd(Ku(om(),lf({workspaceSlug:g.workspace,channelSlug:g.channel},g.kandanThreadId,Je)),"utf8")}catch{}return{pendingInboundSeqs:x.entries().map(an=>an.sourceSeq),ackedInboundSeqs:x.ackedEntries().map(an=>an.sourceSeq),inboundHighWaterSeq:x.highWaterSourceSeq(),appliedFloorSeq:J,outboxTurnSignals:F7(Se)}},Jne=g=>{try{return YP(f6(g),{nowMs:Date.now()}).unfinished}catch(x){return n("runner.resume_scan_inspect_failed",{thread_id:g.kandanThreadId,phase:"rehydration_retire_guard",message:x instanceof Error?x.message:String(x)}),!0}},m6=(async()=>{let g=Xe.list();if(g.length===0)return;let x=await Rq({records:g,nowMs:Date.now(),maxAgeMs:bk,pendingDurableRowCount:C=>Lg(Ku(om(),lf({workspaceSlug:C.workspace,channelSlug:C.channel},C.kandanThreadId,Je)),n).pendingEntries.length,hasUnfinishedWork:Jne,attach:async C=>{if(t.closePromise!==void 0)return n("session_registry.rehydrate_aborted_shutdown",{thread_id:C.kandanThreadId}),"failed";let T=zr(C.cwd,ke.value);return T.ok?await Kw(Gc(C),T.cwd,C.codexThreadId)!==void 0?"attached":"failed":(n("session_registry.rehydrate_cwd_rejected",{thread_id:C.kandanThreadId,cwd:C.cwd,reason:T.reason}),"retire")},retire:C=>Xe.remove(C.kandanThreadId),log:n});n("session_registry.rehydrate_complete",{records:g.length,rehydrated:x.rehydrated,retired_drained:x.retiredDrained,retired_stale:x.retiredStale,retired_unattachable:x.retiredUnattachable,kept_unfinished:x.keptUnfinished,failed:x.failed})})().catch(g=>{n("session_registry.rehydrate_failed",{message:g instanceof Error?g.message:String(g)})});t.actions.push(()=>m6);let Vw=async(g,x)=>{if(e.threadProcess?.role==="thread")return;let C=dm(g);if(C.type!=="ok"||C.provider!=="codex")return;let T=pn(g,"workspace"),O=pn(g,"channel"),J=pn(g,"threadId");if(T===void 0||O===void 0||J===void 0)return;let Se=$0(g);(g.modelProvider!==void 0||g.llmProxy!==void 0||g.linzumiAgent!==void 0)&&Uw.set(J,{...g.modelProvider===void 0?{}:{modelProvider:g.modelProvider},...g.llmProxy===void 0?{}:{llmProxy:g.llmProxy},...g.linzumiAgent===void 0?{}:{linzumiAgent:g.linzumiAgent}});let an=gJ(Se);if(an!==void 0)return{instanceId:Je,controlType:g.type,ok:!1,error:an,kandanThreadId:J,cwd:x};let en=ht.get(J);if(en!==void 0){if(R0(en)!=="dead")return{instanceId:Je,controlType:g.type,ok:!0,delegated:!0,threadProcess:"already_started",kandanThreadId:J,cwd:x};n("runner.thread_process_stale_entry_evicted",{kandanThreadId:J,codex_thread_id:g.type==="reconnect_thread"?h(g.codexThreadId)??null:null,prior_kind:en.kind,pid:en.kind==="running"?en.handle.processPid??null:null,control_type:g.type}),ht.get(J)===en&&ht.delete(J),vI(en).catch(()=>{})}let Cn=MJ(e.allowedCwds);Cn.missing.length>0&&n("runner.stale_allowed_cwd_roots_pruned",{kandanThreadId:J,control_type:g.type,pruned_roots:Cn.missing,remaining_root_count:Cn.existing.length}),ie("thread_process_spawn",{kandanThreadId:J})&&js();let pr=Ez(mn,x);if(pr!==void 0)throw n("runner.cwd_stillbirth_circuit_open_start_refused",{kandanThreadId:J,cwd:x,control_type:g.type,consecutive_stillbirths:pr.count,last_stillbirth_at:pr.lastAt}),new Error($z(x,pr));let Dn=e.spawnThreadRunner??dEe,gi=PJ(e);n("runner.thread_process_starting",{kandanThreadId:J,cwd:x,readyTimeoutMs:gi});let nt=GRe({options:Cn.missing.length>0?{...e,allowedCwds:Cn.existing}:e,control:g,cwd:x,workspaceSlug:T,channelSlug:O,kandanThreadId:J});if(oa(nt)){let jn=await Yn(),er=ZPe(e.runnerId),Yi=await ZEe({dependencyStatusRef:c,connectTimeStatus:e.dependencyStatus,machineVmUnready:jn!==void 0&&!jn.ready,cwd:x});Yi.confirmation!=="not_needed"&&n("runner.vm_preflight_host_codex_reverified",{kandanThreadId:J,confirmed_available:Yi.hostCodexAvailable,probe_failure:Yi.probedCodex?.failure??null,probe_detail:Yi.probedCodex?.failureDetail??null});let nr=HEe({vmRouted:!0,readiness:jn,hostCodexAvailable:Yi.hostCodexAvailable,hostCodexProbeDetail:Yi.probedCodex?.failureDetail,explicitLocalVmOptIn:nt.executionMode==="local_vm",freshStart:g.type==="start_instance",lastNoticedReadinessFingerprint:QPe(er,n)});if(nr.route==="vm"&&jn?.ready===!0&&AB(er,void 0,n),nr.route==="host_fallback"){if(nt={...nt,executionMode:"raw"},n("runner.local_vm_unready_host_fallback",{kandanThreadId:J,control_type:g.type,blockers:[...nr.blockers],notice_posted:nr.postThreadNotice,readiness_fingerprint:nr.readinessFingerprint}),nr.postThreadNotice)try{await ve.push(Pe,"session:post_thread_message",{workspace:T,channel:O,thread_id:J,body:nr.notice,client_message_id:`local-vm-host-fallback-${J}`,payload:{metadata:{local_codex_runner:{event_type:"local_vm_host_fallback_notice"}}}}),AB(er,nr.readinessFingerprint,n)}catch(Vo){n("runner.local_vm_unready_notice_post_failed",{kandanThreadId:J,message:Vo instanceof Error?Vo.message:String(Vo)})}}else if(nr.route==="fail_loud")throw n("runner.local_vm_unready_start_refused",{kandanThreadId:J,control_type:g.type,blockers:[...nr.blockers]}),new Error(nr.reason)}let Ln={kind:"starting",promise:hEe(Dn(nt),{kandanThreadId:J,timeoutMs:gi})};ht.set(J,Ln);let Yt;try{Yt=await Ln.promise}catch(jn){if(ht.get(J)===Ln&&ht.delete(J),n("runner.thread_process_start_failed",{kandanThreadId:J,cwd:x,message:jn instanceof Error?jn.message:String(jn)}),ie("thread_process_start_failed",{kandanThreadId:J})&&js(),tJ(jn)){let er=Iz(mn,x,jn,Date.now());n("runner.cwd_stillbirth_recorded",{kandanThreadId:J,cwd:x,consecutive_stillbirths:er.count,circuit_open:er.tripped})}throw jn}Rz(mn,x)&&n("runner.cwd_stillbirth_counter_cleared",{kandanThreadId:J,cwd:x});for(let jn of Yt.commanderManagedPorts??[])z(jn.port,{processName:jn.processName,processIconKey:jn.processIconKey,agentProvider:jn.agentProvider});try{let jn=Yt.codex,er=B0(()=>jn.close());Yt.onExit?.(er),Yt.onExit?.(()=>{t.closePromise===void 0&&zw(jn).failActiveTurns("codex thread worker exited")}),Yt.onExit?.(()=>{Bo.clearThread(xs(at(),O,J))});let nr={kind:"running",handle:{...Yt,close:async()=>{er(),await Yt.close()}}};ht.get(J)===Ln&&ht.set(J,nr),Yt.onExit?.(()=>{ht.get(J)===nr&&ht.delete(J)}),Yt.onExit?.(()=>{if(t.closePromise===void 0)for(let[An,yt]of Array.from(Xi.entries()))yt===jn&&Bw(An,jn)}),n("runner.thread_process_started",{kandanThreadId:J,cwd:x});let Vo=(An,yt,Du)=>p6({control:An,cwd:yt,codexThreadId:Du,sessionCodex:jn,portForwardWatcherRootPid:Yt.processPid,commanderBoundPids:(Yt.commanderManagedPorts??[]).flatMap(fr=>fr.pid===void 0?[]:[fr.pid]),commanderBoundPorts:(Yt.commanderManagedPorts??[]).map(fr=>fr.port)}),bn=async An=>{if(An!==void 0&&An.ok!==!1)return An;let yt=ht.get(J);return(yt===Ln||yt?.kind==="running")&&ht.delete(J),await(yt?.kind==="running"?yt.handle.close():Yt.close()).catch(()=>{}),An};switch(g.type){case"start_instance":{let An=await xJ({codex:jn,kandan:ve,topic:Pe,control:g,options:e,instanceId:Je,cwd:x,matchedRoot:x,onStartedThread:Vo,setStartupStage:()=>{},setStartedCodexThreadId:()=>{}});return await bn(An.controlResponse)}case"reconnect_thread":return await bn(await zB(jn,ve,Pe,Je,e,m(),ke,ge,Re,ro,Qh,lp,o6,jw,g,u6,a,Vo,void 0,void 0,An=>ue.current(An),Jo,Cu,Tu,ne))}}catch(jn){let er=ht.get(J);throw(er===Ln||er?.kind==="running")&&ht.delete(J),await(er?.kind==="running"?er.handle.close():Yt.close()).catch(()=>{}),jn}},pp=new Map,Ww=new Map,h6=async(g,x,C)=>{try{n("runner.spawn_on_miss_replay_on_sibling",{kandanThreadId:g.threadId??null,codex_thread_id:x.codexThreadId,seq:g.seq});let T=await qw({codexThreadId:x.codexThreadId,kandanThreadId:g.threadId,wait:Jw(x.codexThreadId,{waitForSiblingSpawn:!0})});if(T===void 0)throw new Error(`spawn-on-miss could not resolve a live session for codex thread ${x.codexThreadId}`);let O=T.currentKandanThreadId();if(g.threadId!==void 0&&O!==void 0&&O!==g.threadId)throw new ed({codexThreadId:x.codexThreadId,ownerKandanThreadId:O,requestingKandanThreadId:g.threadId});return await T.startThreadMessageTurn({seq:g.seq,body:g.body,actorSlug:g.actorSlug,actorUserId:g.actorUserId,attachments:g.attachments,boundStartTimeout:!0}),"dispatched"}catch(T){return n("runner.spawn_on_miss_failed",{kandanThreadId:g.threadId??null,codex_thread_id:x.codexThreadId,seq:g.seq,message:T instanceof Error?T.message:String(T)}),await Ls(C,"failed",`could not resume the thread's coding session: ${T instanceof Error?T.message:String(T)}`,x.codexThreadId,{failureClass:"resume_transient"}),"transient_failed"}},g6=async g=>{let x=g.threadId;if(!sm(e)||x===void 0)return"ignored";let C=`${x}:${g.seq}`,T=Ww.get(C);if(T!==void 0){let J=await T;return J==="spawned"?"spawned_deduped":J}let O=Kne(g,x);Ww.set(C,O);try{return await O}finally{Ww.delete(C)}},Kne=async(g,x)=>{let C=ht.get(x);if((C===void 0?void 0:R0(C))==="live")return"ignored";let O=Xe.list().find(Cn=>Cn.kandanThreadId===x);if(O===void 0){let Cn=Cr();if(Cn===void 0||!Gt())return"ignored";let Dn=Nt(Cn,x).enqueue(g.seq,g.localRunnerEventType===void 0?"live":"replay",$u(g),Date.now());return n("runner.spawn_on_miss_enqueued_without_local_record",{kandanThreadId:x,channel:Cn,seq:g.seq,enqueued:Dn.accepted}),await ete(Cn,g),"spawned"}let J=O.channel,Se=xs(at(),J,x),an=Nt(J,x);if(!Gt()){let Cn=an.enqueue(g.seq,g.localRunnerEventType===void 0?"live":"replay",$u(g),Date.now());return n("runner.spawn_on_miss_drain_in_progress",{kandanThreadId:x,seq:g.seq,enqueued:Cn.accepted}),"spawned"}return await SB({queue:an,store:$r,lock:re,leases:ue,threadId:x,watermarkKey:Se,sourceSeq:g.seq,kind:g.localRunnerEventType===void 0?"live":"replay",payload:$u(g),leaseEpoch:_B(g),dispatch:async(Cn,pr)=>{let Dn=vv(pr);return Dn===void 0?(n("runner.spawn_on_miss_bad_payload",{kandanThreadId:x,seq:Cn}),"permanent_failed"):await w6(Dn,O)},serverRows:Te.get(x)??[],onDeadLetter:S6(O),inFlightGuard:Bo,log:n})==="ignored"?"ignored":"spawned"},Xh=async(g,x=[])=>{if(!Gt())return;let C=g.kandanThreadId,T=g.channel,O=xs(at(),T,C),J=Nt(T,C);await kB({queue:J,store:$r,lock:re,threadId:C,watermarkKey:O,serverRows:x,log:n,onlyDispatchUnattempted:x.length===0,onDeadLetter:S6(g),inFlightGuard:Bo,onTornTailUnrecoverable:async Se=>{let an=Gc(g);await Ls(an,"failed","a message may have been lost during an unexpected shutdown (power loss). Please resend your last message to continue this job.",g.codexThreadId,{failureClass:"resume_torn_tail"}),n("runner.inbound_torn_tail_resend_published",{kandanThreadId:Se})},dispatch:async(Se,an)=>{let en=vv(an);return en===void 0?(n("runner.inbound_drain_bad_payload",{kandanThreadId:C,seq:Se}),"permanent_failed"):await w6(en,g)}})},Vne=async(g,x)=>{if(x!==void 0&&x.ok===!1||!Gt())return;let C=Xe.list().find(O=>O.kandanThreadId===g);if(C===void 0)return;let T=Nt(C.channel,g);T.entries().length!==0&&(n("runner.inbound_drain_after_spawn",{kandanThreadId:g,channel:C.channel,pending:T.entries().length}),await Xh(C,Te.get(g)??[]).catch(O=>{n("runner.inbound_drain_after_spawn_failed",{kandanThreadId:g,message:O instanceof Error?O.message:String(O)})}))},Wne=async(g,x)=>{let C=await Vw(g,x),T=pn(g,"threadId");return T!==void 0&&await Vne(T,C),g.type==="reconnect_thread"&&mI(C)&&C!==void 0?await Hne(g,C):C},Hne=async(g,x)=>{let C=ao(g.workDescription),T=X(g.sourceSeq)??X(g.rootSeq),O=pn(g,"threadId"),J=pn(g,"channel"),Se=h(g.codexThreadId);if(C===void 0||T===void 0||O===void 0||Se===void 0)return x;if(J===void 0)n("runner.reconnect_follow_up_missing_channel",{kandanThreadId:O,codex_thread_id:Se,source_seq:T});else if(ne({channel:J,threadId:O,sourceSeq:T}))return n("runner.reconnect_follow_up_already_applied",{kandanThreadId:O,codex_thread_id:Se,source_seq:T}),{...x,followUp:"duplicate",sourceSeq:T};try{let an=await qw({codexThreadId:Se,kandanThreadId:O,wait:Jw(Se,{waitForSiblingSpawn:!0})});if(an===void 0)throw new Error(`no live session attached for codex thread ${Se}`);let en=an.currentKandanThreadId();if(en!==void 0&&en!==O)throw new ed({codexThreadId:Se,ownerKandanThreadId:en,requestingKandanThreadId:O});let Cn=go(e.token),pr=await an.startThreadMessageTurn({seq:T,body:C,actorSlug:Cn.actorUsername,actorUserId:Cn.actorUserId,attachments:Ho(ze(g.attachments)??[]),boundStartTimeout:!0,dedupBySeq:!0});return n("runner.reconnect_follow_up_routed_to_live_worker",{kandanThreadId:O,codex_thread_id:Se,source_seq:T,outcome:pr}),{...x,followUp:pr,sourceSeq:T}}catch(an){let en=an instanceof Error?an.message:String(an);return n("runner.reconnect_follow_up_route_failed",{kandanThreadId:O,codex_thread_id:Se,source_seq:T,message:en}),{...x,followUp:"route_failed",followUpError:en,sourceSeq:T}}},y6=g=>{let x=new Map,C=$7(g);for(let T of C){T.leaseEpoch!==void 0&&ue.adopt(T.threadId,T.leaseEpoch)&&n("runner.resume_reconcile_lease_adopted",{kandanThreadId:T.threadId,leaseEpoch:T.leaseEpoch});let O=L7(T);x.set(T.threadId,O),Te.set(T.threadId,O)}return C.length>0&&n("runner.resume_reconcile_consumed",{threadCount:C.length}),x},x6=async()=>{let g=GP(),x;try{x=dJ(g).filter(O=>O.endsWith(".log"))}catch(O){if(O?.code==="ENOENT")return;n("runner.inbound_orphan_scan_failed",{message:O instanceof Error?O.message:String(O)});return}let C=at(),T=new Set(Xe.list().map(O=>ZP(C,O.channel,O.kandanThreadId)));for(let O of x){let J=bt(g,O);if(!T.has(J))try{let Se=HP(J,n),an=Se.entries();if(an.length===0)continue;for(let en of an)Se.deadLetter(en.sourceSeq);Se.compact(),n("runner.inbound_orphan_dead_lettered",{path:J,strandedCount:an.length,strandedSeqs:an.map(en=>en.sourceSeq)})}catch(Se){n("runner.inbound_orphan_drain_failed",{path:J,message:Se instanceof Error?Se.message:String(Se)})}}},_6=async g=>{if(!Gt())return;let x=Xe.list();await Promise.all(x.map(C=>Xh(C,g?.get(C.kandanThreadId)??[]).catch(T=>{n("runner.inbound_drain_failed",{kandanThreadId:C.kandanThreadId,message:T instanceof Error?T.message:String(T)})}))),await x6()},Gne=g=>g==="accepted_never_framed"?"this message was accepted but a runner restart killed it before it ran. Resend it (or press retry) to run it now.":"interrupted by a runner restart before it finished. Resend your last message (or press retry) to continue this job.",Zne=async g=>{let x=Date.now()+g;for(;;){if(t.closePromise!==void 0)return;let C=x-Date.now();if(C<=0)return;await new Promise(T=>setTimeout(T,Math.min(500,C)))}},Qne=async()=>{!Gt()||t.closePromise!==void 0||(await q7({records:Xe.list(),threadId:g=>g.kandanThreadId,inspect:f6,resumePendingInbound:async g=>(await Xh(g,Te.get(g.kandanThreadId)??[]),Nt(g.channel,g.kandanThreadId).entries().length===0?"clear":"retry"),respawnWorker:async g=>{if(t.closePromise!==void 0)return!1;let x=zr(g.cwd,ke.value);return x.ok?await Kw(Gc(g),x.cwd,g.codexThreadId)!==void 0:(n("runner.resume_respawn_cwd_rejected",{thread_id:g.kandanThreadId,cwd:g.cwd,reason:x.reason}),!1)},seqInFlight:(g,x)=>Bo.has(xs(at(),g.channel,g.kandanThreadId),x),publishInterruptedTurnState:async(g,x,C)=>{await Ls({...Gc(g),sourceSeq:x},"failed",Gne(C),g.codexThreadId,{failureClass:"resurrection_interrupted"})},shuttingDown:()=>t.closePromise!==void 0||!Gt(),sleep:Zne,log:n}),await x6())};y6(A(te)?.resume_reconcile);let Xne=m6.then(()=>Qne()).catch(g=>{n("runner.inbound_boot_drain_failed",{message:g instanceof Error?g.message:String(g)})});t.actions.push(()=>Xne),ve.onReconnect(g=>{let x=g.get(Pe),C=y6(x===void 0?void 0:x.resume_reconcile);_6(C).catch(T=>{n("runner.inbound_rejoin_drain_failed",{message:T instanceof Error?T.message:String(T)})})});let Oa=new Map,b6=(g,x)=>`${g}:${x}`,Yne={windowMs:Sf(process.env),recordWedge:(g,x)=>{let C=b6(g,x),T=(Oa.get(C)??0)+1;if(Oa.delete(C),Oa.size>=256){let O=Oa.keys().next().value;O!==void 0&&Oa.delete(O)}return Oa.set(C,T),T},clear:(g,x)=>{Oa.delete(b6(g,x))},killAndRespawn:async({threadId:g,claudeSessionId:x,reason:C})=>{let T=_s(ro,[x],[g]);if(T!==void 0){n("claude_code.dispatch_supervisor_killing_session",{linzumi_thread_id:g,claude_session_id:x,reason:C}),T.abortController.abort(new Error(C));let J=T.sessionWork();J!==void 0&&await Promise.race([J.catch(()=>{}),new Promise(Se=>{setTimeout(Se,1e4).unref?.()})])}let O=Xe.list().find(J=>J.kandanThreadId===g);return O===void 0?(n("claude_code.dispatch_supervisor_no_registry_record",{linzumi_thread_id:g,claude_session_id:x}),"no_replay_path"):(await Xh(O,Te.get(g)??[]),"respawn_dispatched")}},w6=async(g,x)=>{let C=x.kandanThreadId,T=Gc(x),O=Uw.get(C),J={...T,sourceSeq:g.seq,workDescription:g.body,...g.attachments.length===0?{}:{attachments:fg(g.attachments)},...O?.modelProvider===void 0?{}:{modelProvider:O.modelProvider},...O?.llmProxy===void 0?{}:{llmProxy:O.llmProxy},...O?.linzumiAgent===void 0?{}:{linzumiAgent:O.linzumiAgent}},Se=zr(x.cwd,ke.value);if(!Se.ok)return n("runner.spawn_on_miss_cwd_rejected",{kandanThreadId:C,cwd:x.cwd,reason:Se.reason,seq:g.seq}),await Ls(J,"failed",`could not resume the thread's coding session: working directory ${x.cwd} is not an allowed root (${Se.reason})`,x.codexThreadId,{failureClass:"resume_cwd_not_allowed"}),"permanent_failed";let an=Se.cwd,en=pp.get(C);if(en!==void 0)return n("runner.spawn_on_miss_resuming",{kandanThreadId:C,codex_thread_id:x.codexThreadId,provider_session_key:x.codexThreadId,seq:g.seq,decision:"await_in_flight_spawn"}),await en==="no_session"?(await Ls(J,"failed","could not resume the thread's coding session: no live session after spawn",x.codexThreadId,{failureClass:"resume_transient"}),"transient_failed"):await h6(g,x,J);n("runner.spawn_on_miss_resuming",{kandanThreadId:C,codex_thread_id:x.codexThreadId,provider_session_key:x.codexThreadId,seq:g.seq,decision:"spawned_resume"}),Qi.note(x.codexThreadId,"spawn_requested");let Cn=()=>{},pr=new Promise(Dn=>{Cn=Dn});pp.set(C,pr);try{let Dn=await Vw(J,an);if(mI(Dn))return Cn("spawned"),await h6(g,x,J);if(Dn===void 0||Dn.ok===!1){Cn("no_session");let gi=Dn!==void 0&&typeof Dn.error=="string"?Dn.error:"the thread could not be resumed (no resumable codex session)";return Qi.fail(x.codexThreadId,gi),Zh(x.codexThreadId,new Error(gi)),n("runner.spawn_on_miss_failed",{kandanThreadId:C,codex_thread_id:x.codexThreadId,seq:g.seq,message:gi}),await Ls(J,"failed",`could not resume the thread's coding session: ${gi}`,x.codexThreadId,{failureClass:"resume_transient"}),"transient_failed"}return Cn("spawned"),"dispatched"}catch(Dn){return Cn("no_session"),Qi.fail(x.codexThreadId,Dn instanceof Error?Dn.message:String(Dn)),Zh(x.codexThreadId,Dn instanceof Error?Dn:new Error(String(Dn))),n("runner.spawn_on_miss_failed",{kandanThreadId:C,codex_thread_id:x.codexThreadId,seq:g.seq,message:Dn instanceof Error?Dn.message:String(Dn)}),await Ls(J,"failed",`could not resume the thread's coding session: ${Dn instanceof Error?Dn.message:String(Dn)}`,x.codexThreadId,{failureClass:"resume_transient"}),"transient_failed"}finally{Cn("spawned"),pp.get(C)===pr&&pp.delete(C)}},Ls=async(g,x,C,T,O={})=>{let J=ra(g,x,C,{instanceId:Je,codexThreadId:T,...Uu(O.failureClass)});if(J!==void 0)try{await ve.push(Pe,"message_state",J)}catch(Se){n("runner.spawn_on_miss_state_push_failed",{thread_id:pn(g,"threadId")??null,status:x,message:Se instanceof Error?Se.message:String(Se)})}},v6=async(g,x)=>{let{reason:C,failureClass:T}=rEe(x),O=ra(g,"failed",C,{instanceId:Je,...Uu(T)});if(O===void 0){n("runner.stillborn_worker_failed_state_unpublishable",{thread_id:pn(g,"threadId")??null,control_type:g.type,reason:C,cause:"missing_source_seq"});return}try{await ve.push(Pe,"message_state",O),n("runner.stillborn_worker_failed_state_published",{thread_id:pn(g,"threadId")??null,control_type:g.type,reason:C})}catch(J){n("runner.stillborn_worker_failed_state_push_failed",{thread_id:pn(g,"threadId")??null,control_type:g.type,message:J instanceof Error?J.message:String(J)})}},ete=async(g,x)=>{if(x.threadId===void 0)return;let C={workspace:at(),channel:g,thread_id:x.threadId,instance_id:Je,seq:x.seq,status:"queued",reason:"queued for durable resume"};try{await ve.push(Pe,"message_state",C)}catch(T){n("runner.spawn_on_miss_state_push_failed",{thread_id:x.threadId,status:"queued",message:T instanceof Error?T.message:String(T)})}},Yh=[],Hw=H7(process.env),nte=async g=>{try{let x=pn(g,"threadId"),C=NRe({control:g,hasRegistryRecord:x!==void 0&&Xe.list().some(J=>J.kandanThreadId===x),runtimeSettings:rl(e,g),identity:go(e.token),nowMs:Date.now()});if(C===void 0)return!1;let T=ra(g,"queued",V7,{instanceId:Je,...C.codexThreadId===void 0?{}:{codexThreadId:C.codexThreadId}}),O=await URe({plan:C,queuedStatePayload:T,queue:Nt(C.channel,C.threadId),upsertRegistryRecord:J=>Xe.upsert(J),pushQueuedState:async J=>{await ve.push(Pe,"message_state",J)},trackHeld:J=>{Yh.push({control:g,...J})},log:n,nowMs:Date.now()});return O.held?(n("runner.update_restart_drain_start_held",{control_type:g.type,thread_id:C.threadId,source_seq:C.sourceSeq,enqueued:O.enqueuedFresh,registry_record_synthesized:C.registryRecord!==void 0,max_wait_ms:Hw}),!0):!1}catch(x){return n("runner.update_restart_drain_hold_failed",{control_type:g.type,thread_id:pn(g,"threadId")??null,message:x instanceof Error?x.message:String(x)}),!1}},tte=async()=>{let g=Date.now();for(let x of[...Yh]){if(g-x.heldAtMs<Hw)continue;let C=Yh.indexOf(x);C!==-1&&Yh.splice(C,1);let T=Nt(x.channel,x.threadId);T.entries().find(J=>J.sourceSeq===x.sourceSeq)!==void 0&&(T.deadLetter(x.sourceSeq),n("runner.update_restart_drain_held_turn_expired",{thread_id:x.threadId,source_seq:x.sourceSeq,held_for_ms:g-x.heldAtMs,max_wait_ms:Hw}),await v6(x.control,new Error(tI)))}},fp,rte=()=>{fp===void 0&&(fp=setInterval(()=>{tte().catch(g=>{n("runner.update_restart_drain_held_sweep_failed",{message:g instanceof Error?g.message:String(g)})})},W7))};t.actions.push(()=>{fp!==void 0&&(clearInterval(fp),fp=void 0)});let S6=g=>async({sourceSeq:x,reason:C,attempts:T,alreadyPublished:O})=>{n("runner.inbound_dead_lettered",{kandanThreadId:g.kandanThreadId,seq:x,reason:C,attempts:T,alreadyPublished:O}),!O&&await Ls(Gc(g),"failed",qRe(C),g.codexThreadId,{failureClass:zRe(C)})},Gw=()=>{if(Qt!==void 0)return!1;for(let g of Ru.values())if(g.activeTurnCount()>0)return!1;for(let g of ro.values())if(g.hasActiveTurn())return!1;for(let g of ht.values())if(g.kind==="starting")return!1;return!(pp.size>0||Re.size>0)},ote=()=>{if(!Gw())return!1;for(let g of xe.values())if(g.entries().length>0)return!1;return!0},k6=F3(process.env),Zw=q3({currentVersion:jt,strategy:$3({env:process.env,entrypointPath:process.argv[1]}),isIdle:ote,...k6===void 0?{}:{drain:{timing:k6,hooks:{begin:()=>{et=!0},end:({redispatchHeldWork:g})=>{et=!1,g&&_6().catch(x=>{n("runner.update_drain_requeue_failed",{message:x instanceof Error?x.message:String(x)})})},isQuiescent:Gw,isEligible:()=>Qt===void 0}}},performRestart:j3({currentVersion:jt,argv:process.argv.slice(2),cwd:e.cwd,close:r,exit:g=>process.exit(g),log:n}),log:n,restartAttemptStore:v0(L3())});t.actions.push(()=>Zw.stop()),i.beginDraining=()=>{if(d?.outgoingDrainActive()===!0){n("runner.generation_outgoing_gate_open",{pinned:d.outgoingPins.size()});return}At=!0,et=!0,rte()},i.onTurnCompleted=g=>{if(!(d===void 0||!d.outgoingDrainActive())&&d.outgoingPins.release(g.threadId)){let x=d.sendToSupervisor({type:"generation_pin_released",epoch:d.epoch,threadId:g.threadId});n("runner.generation_pin_released_sent",{threadId:g.threadId,remaining:d.outgoingPins.size(),delivered:x})}},i.isQuiescent=Gw,i.isWaitEligible=()=>Qt===void 0,i.inFlightTurns=()=>[...Array.from(Ru.values()).flatMap(g=>g.activeTurns().map(x=>({threadId:x.threadId,turnId:x.turnId,engine:"codex"}))),...Array.from(ro.values()).filter(g=>g.hasActiveTurn()).map(g=>({threadId:g.threadId,engine:"claude_code"}))],i.lastActivityAtMs=()=>{let g;for(let x of Ru.values()){let C=x.lastActivityAtMs();C!==void 0&&(g===void 0||C>g)&&(g=C)}for(let x of ro.values()){let C=x.lastSdkActivityMs();C>0&&(g===void 0||C>g)&&(g=C)}return g},i.publishForcedKillTerminalStates=g=>{n("runner.drain_forced_kill_states_publishing",{turn_count:g.length,thread_ids:g.map(T=>T.threadId)});let x=new Set(g.filter(T=>T.engine==="codex").map(T=>T.threadId)),C=new Set([Qt,...Xt.values()].filter(T=>T!==void 0).flatMap(T=>T.pendingApprovalTurnIds()));for(let T of Ru.values())T.activeTurns().some(O=>x.has(O.threadId))&&T.failActiveTurns(O=>C.has(O.turnId)?X7:Q7);return Promise.resolve()};let ite=()=>({instanceId:Je,clientId:Da,...Pt===void 0?{}:{codexUrl:Pt},cwd:e.cwd,hostname:sp,workspace:Br(e)??null,channel:e.channelSession?.channelSlug??null,threadId:Qt?.currentKandanThreadId()??null,codexThreadId:Qt?.currentCodexThreadId()??null,codexThreads:s6.value,model:Iu.model??null,reasoningEffort:Iu.reasoningEffort??null,allowPortForwardingByDefault:Iu.allowPortForwardingByDefault??null,fast:e.fast??!1,capabilities:V(),updateNudge:Zw.status()??null}),js=()=>ve.push(Pe,"heartbeat",ite()).then(()=>{Jh.recordServerAck();for(let g of ro.values())g.resumeOutbox()}).catch(g=>{n("kandan.heartbeat_push_failed",{message:g instanceof Error?g.message:String(g)})}),ste=setInterval(()=>{Jh.check(),b(()=>{js()}),js()},15e3);if(t.actions.push(()=>clearInterval(ste)),ve.onReconnect(()=>js().then(()=>{})),js(),e.threadProcess?.role!=="thread"&&cx()){let g=BU(JU({kandanUrl:e.kandanUrl,token:e.token,computeKey:Dx(e.kandanUrl),query:cT({kandanUrl:e.kandanUrl,token:e.token}),log:x=>n("vm.golden_gc",{line:x})}));t.actions.push(g)}let C6=C8(ve,Pe,()=>Array.from(R));t.actions.push(()=>C6.close());let Qw=Qt?.currentCodexThreadId();if(e.launchTui&&Zt===void 0)throw new Error("Codex TUI requires a Codex app-server connection");e.launchTui&&Zt!==void 0&&Qw!==void 0&&await YIe(Zt,Qw);let T6=e.launchTui&&Pt!==void 0?WIe(e.codexBin,Pt,e.cwd,Qw,e.channelSession,e.fast):void 0;T6!==void 0&&t.actions.push(()=>{T6.kill("SIGINT")});let Xw=Zt===void 0?void 0:zw(Zt);if(Zt?.onNotification(g=>{Fw.value+=1;let x=g.params??{},C=qT(g.method,x);Qt===void 0&&ve.push(Pe,"codex_notification",{instanceId:Je,seq:Fw.value,method:g.method,params:x,metadata:C.metadata,receivedAt:new Date().toISOString()}).catch(T=>{n("kandan.codex_notification_push_failed",{message:T instanceof Error?T.message:String(T)})}),n("codex.notification",C),Xw?.observeNotification(g.method,x),D0(Qt,g.method,x,n);for(let T of Xt.values())D0(T,g.method,x,n)}),Xw!==void 0){let g={handled:!1},x=C=>{if(t.closePromise===void 0&&(n("codex.app_server_connection_lost",{cause:C}),Xw.failActiveTurns(C),jr?.stop(),i6&&!g.handled)){g.handled=!0;let T=EIe(IIe($B(e.runnerId),en=>{n("runner.app_server_exit_loop_stamp_write_failed",{message:en,statePath:$B(e.runnerId)}),console.error(`Warning: could not persist the app-server crash-loop stamp (${en}); the exit-code-${hI} give-up bound cannot take effect across restarts until the state path is writable.`)}),Date.now()),O=T.crashLoop?hI:75,J=RIe(e.cwd),Se=J===void 0?"":` Likely trigger: ${J}.`;if(T.crashLoop){let en=e.logFile??ug();n("runner.app_server_crash_loop_gave_up",{cause:C,exitsInWindow:T.count,windowMs:hJ,exitCode:O,cwd_missing_diagnosis:J??null}),console.error(`The Codex app-server has died ${T.count} times in rapid succession (latest cause: ${C}).${Se} Restarting the runner is not fixing it, so this exit uses code ${hI} (instead of the restart-requesting 75) to stop the crash loop. Diagnose before reconnecting: the runner log is at ${en} and the CLI audit log at ${xv()} (look for the app-server's exit reason/stderr). Once resolved, run \`linzumi connect\` to reconnect.`)}else console.error(`Codex app-server connection was lost (${C}); exiting so a fresh runner can relaunch it.${Se} Run \`linzumi connect\` to reconnect.`);let an=[...Qt!==void 0?[Qt]:[],...Xt.values()].map(en=>en.close().catch(Cn=>{n("codex.app_server_lost_session_drain_failed",{message:Cn instanceof Error?Cn.message:String(Cn)})}));TIe({pushes:[...c6,...an],exit:()=>process.exit(O),safetyCapMs:5e3})}};Zt?.onClose?.(C=>x(C.message)),jr?.process.once("exit",(C,T)=>x(`codex app-server process exited (${C??T??"unknown"})`))}let ate=g=>{let x=Dx(e.kandanUrl),C=g.cwd!==void 0&&g.cwd.trim()!==""?g.cwd:e.cwd;if(KEe(C)){let O=`cwd_dangerous: golden build refused - resolved build cwd ${JSON.stringify(C)} is not a safe project directory (empty, filesystem root, or non-absolute). Re-run from the project's repository checkout.`;return n("vm.golden_build_failed",{runnerId:e.runnerId,goldenImagePublicId:g.goldenImagePublicId,projectPublicId:g.projectPublicId??null,computeKey:x,cwdDangerous:!0,failureReason:O}),ve.push(Pe,"golden_image_build_result",{golden_image_public_id:g.goldenImagePublicId,build_claim_token:g.buildClaimToken,project_public_id:g.projectPublicId??null,status:"failed",checksum:null,size_bytes:null,artifact_ref:null,source_commits:{},lockfile_hashes:{},toolchain_versions:{},compute_key:x,failure_reason:O})}n("vm.golden_build_started",{runnerId:e.runnerId,goldenImagePublicId:g.goldenImagePublicId,projectPublicId:g.projectPublicId??null,computeKey:x,sourceThreadId:g.sourceThreadId??null,cwd:C});try{fN(dT({projectPublicId:g.projectPublicId??void 0,computeKey:x,cwd:C}))}catch(O){n("vm.golden_build_register_failed",{goldenImagePublicId:g.goldenImagePublicId,message:O instanceof Error?O.message:String(O)})}let T=g.sourceThreadId===void 0?void 0:{threadId:g.sourceThreadId,sourceMachineName:lx({cwd:C,kandanThreadId:g.sourceThreadId})};return Y5({cwd:C,projectPublicId:g.projectPublicId??void 0,computeKey:x,name:g.name,...T===void 0?{}:{sourceThread:T},log:O=>n("vm.golden_build",{line:O})}).then(O=>(n("vm.golden_build_ready",{runnerId:e.runnerId,goldenImagePublicId:g.goldenImagePublicId,checksum:O.checksum,sizeBytes:O.sizeBytes,artifactRef:O.artifactRef,artifactKind:O.artifactKind,snapshotFallbackReason:O.snapshotFallbackReason??null}),ve.push(Pe,"golden_image_build_result",{golden_image_public_id:g.goldenImagePublicId,build_claim_token:g.buildClaimToken,project_public_id:g.projectPublicId??null,status:"ready",checksum:O.checksum,size_bytes:O.sizeBytes,artifact_ref:O.artifactRef,artifact_kind:O.artifactKind,source_commits:O.sourceCommits,lockfile_hashes:O.lockfileHashes,toolchain_versions:O.toolchainVersions,compute_key:x,failure_reason:null,metadata:O.snapshotFallbackReason===void 0?{}:{snapshot_fallback_reason:O.snapshotFallbackReason}}))).catch(O=>{let J=O instanceof Ec||O instanceof Error?O.message:String(O);return n("vm.golden_build_failed",{runnerId:e.runnerId,goldenImagePublicId:g.goldenImagePublicId,captureUnavailable:O instanceof Ec,failureReason:J}),ve.push(Pe,"golden_image_build_result",{golden_image_public_id:g.goldenImagePublicId,build_claim_token:g.buildClaimToken,project_public_id:g.projectPublicId??null,status:"failed",checksum:null,size_bytes:null,artifact_ref:null,source_commits:{},lockfile_hashes:{},toolchain_versions:{},compute_key:x,failure_reason:J})}).catch(O=>{throw n("vm.golden_build_result_push_failed",{goldenImagePublicId:g.goldenImagePublicId,message:O instanceof Error?O.message:String(O)}),O})},dte=g=>{if(n("kandan.control",{control:g}),a?.record("kandan","control.received",{controlType:g.type,control:g}),!_Ie(e,g)&&!bIe(e,g,lp)){let T=ti(g)??null,O=e.threadProcess?.kandanThreadId??null;n("kandan.control_ignored",{reason:"thread_process_mismatch",controlType:g.type,controlThreadId:T,threadProcessId:O}),a?.record("kandan","control.ignored",{reason:"thread_process_mismatch",controlType:g.type,controlThreadId:T,threadProcessId:O});return}if(g.type==="replace_runner"){n("runner.replaced",{runnerId:e.runnerId,reason:g.reason,replacementRunnerId:g.replacementRunnerId,replacementVersion:g.replacementVersion}),r().catch(T=>{n("runner.replace_close_failed",{message:T instanceof Error?T.message:String(T)})});return}if(g.type==="update_available"){Zw.handleUpdateAvailable(g);return}let x=vIe(g);if(x!==void 0)return ate(x);if(!hIe(g,Je)){n("kandan.control_ignored",{reason:"instance_id_mismatch",instanceId:Je,controlInstanceId:gIe(g),controlType:g.type});return}if(S8(g)){v8(g,Array.from(R)).then(T=>(n("kandan.forward_response",{requestId:g.requestId,port:g.port,path:g.path,status:T.status,ok:T.ok,location:GIe(T.headers,"location")}),ve.push(Pe,"forward:http_response",T))).catch(T=>ve.push(Pe,"forward:http_response",{requestId:g.requestId,ok:!1,error:T instanceof Error?T.message:String(T)})).catch(T=>{n("kandan.forward_response_push_failed",{message:T instanceof Error?T.message:String(T)})});return}if(k8(g)){C6.handle(g);return}if(D8(g)){A8(g,{codeServerBin:e.codeServerBin,editorRuntime:e.editorRuntime,allowedCwds:ke.value,currentState:pe.value,browserBaseUrl:g.browserBaseUrl??process.env.KANDAN_LOCAL_RUNNER_PUBLIC_BASE_URL,runnerId:e.runnerId,platform:e.localEditorPlatform}).then(T=>{if(T.ok){Y.value+=1;let O=Y.value,J=pe.value.status==="running"?[pe.value.port,...pe.value.collaboration===void 0?[]:[pe.value.collaboration.serverPort],...n6("editor_restarted")]:[];pe.value.status==="running"&&(R.delete(pe.value.port),P.delete(pe.value.port),pe.value.collaboration!==void 0&&(R.delete(pe.value.collaboration.serverPort),P.delete(pe.value.collaboration.serverPort))),pe.value=T.state,R.add(T.event.port),P.add(T.event.port),T.event.collaboration!==void 0&&(R.add(T.event.collaboration.serverPort),P.add(T.event.collaboration.serverPort));let Se=ve.push(Pe,"local_editor_status",{instanceId:Je,requestId:g.requestId,ok:!0,capabilities:{...V(),...J.length===0?{}:{revokedPorts:J}},...T.event});return T.state.status==="running"&&(Mne(T.state),$ne(T.state,O,Se)),Se}return pe.value=T.state,ve.push(Pe,"local_editor_status",{instanceId:Je,requestId:g.requestId,ok:!1,reason:T.reason,capabilities:V()})}).catch(T=>ve.push(Pe,"local_editor_status",{instanceId:Je,requestId:g.requestId,ok:!1,reason:tf(T),capabilities:V()})).catch(T=>{n("kandan.local_editor_status_push_failed",{message:T instanceof Error?T.message:String(T)})});return}if(t2e(g)){K({allowedCwds:g.allowedCwds,configVersion:g.configVersion??null},{includeStartupAllowedCwds:!0,source:"control"}),js();return}if(r2e(g)){let T=mj(g);n("runner.fleet_breaker_state",{source:"control",outcome:T.outcome,state:T.snapshot?.state??null,fate:T.snapshot?.fate??null,version:T.snapshot?.version??null});return}if(i2e(g)){let T=Dne(g);if(T!==void 0){ve.push(Pe,"codex_response",T).catch(J=>{n("kandan.control_response_push_failed",{message:J instanceof Error?J.message:String(J)})});return}let O=One(g);if(O!==void 0){ve.push(Pe,"codex_response",O).catch(J=>{n("kandan.control_response_push_failed",{message:J instanceof Error?J.message:String(J)})});return}}if(o2e(g)){switch(g.enabled){case!0:R.add(g.port);break;case!1:R.delete(g.port),P.delete(g.port),B(g.port),oe.approvedPorts.delete(g.port),oe.approvedTargets.delete(g.port),ve.push(Pe,"forward_port_revoked",{instanceId:Je,port:g.port,reason:"user_disabled",capabilities:Us(V(),g.port)}).catch(T=>{n("kandan.forward_port_revoked_push_failed",{message:T instanceof Error?T.message:String(T)})});break}js();return}if(g.type==="import_onboarding_conversations")return wEe(e,n,g).catch(T=>{throw n("onboarding.conversation_import_failed",{runnerId:e.runnerId,message:T instanceof Error?T.message:String(T)}),T});if(g.type==="scan_onboarding_projects"){let T=CEe(g.paths);return RJ(e,n,{workspaceSlug:h(g.workspace),selectedScanRoots:T,sourceRoots:T,workerId:"projects-selected-folders",workerLabel:"Selected folders",startingMessage:"Checking selected folders",emptyMessage:"No Git projects found in selected folders",foundMessage:"Selected folder projects found",failedMessage:"Selected folder project scan failed",currentPlace:T[0]??e.cwd,requireTerminalStatusWrite:!0,includeRuntimeCwdHint:!1}).catch(O=>{throw n("onboarding.project_scan_failed",{runnerId:e.runnerId,message:O instanceof Error?O.message:String(O)}),O})}if(g.type==="start_instance"){if(nIe(g,O=>Xe.list().some(J=>J.kandanThreadId===O)))return U+=1,n("kandan.start_instance_skipped_known_session",{threadId:ti(g)??null,controlSeq:g.control_seq??null,issuedAt:im(g)??null,reason:"thread_already_has_known_session",skippedStaleStartInstances:U}),ve.push(Pe,"codex_response",{instanceId:Je,controlType:g.type,threadId:ti(g)??null,ok:!1,skipped:!0,error:"start_instance_thread_already_has_session",issuedAt:im(g)??null}).catch(O=>{n("kandan.control_response_push_failed",{message:O instanceof Error?O.message:String(O)})});let T=eIe(g,Date.now());if(T!==void 0)return U+=1,n("kandan.start_instance_stale_skipped",{threadId:ti(g)??null,controlSeq:g.control_seq??null,issuedAt:im(g)??null,ageMs:T,staleWindowMs:lJ,skippedStaleStartInstances:U}),ve.push(Pe,"codex_response",{instanceId:Je,controlType:g.type,threadId:ti(g)??null,ok:!1,skipped:!0,error:"stale_start_instance",issuedAt:im(g)??null,ageMs:T}).catch(O=>{n("kandan.control_response_push_failed",{message:O instanceof Error?O.message:String(O)})})}let C;if(g.type==="start_turn"){let T=g.control_seq;if(T!==void 0){let O=YPe(Pe,g.threadId),J=Be.initial(O);if(tIe(J,T))return Kh+=1,n("kandan.start_turn_replay_skipped",{controlType:g.type,threadId:g.threadId,controlSeq:T,appliedControlSeq:J,skippedReplayedStartTurns:Kh}),{instanceId:Je,controlType:g.type,threadId:g.threadId,skipped:!0};C=()=>rIe(Be,O,T)}}return oIe(()=>{if(At&&(g.type==="start_instance"||g.type==="reconnect_thread")){let T=pn(g,"threadId"),O=g.type==="reconnect_thread"?ao(g.codexThreadId):void 0,J=T!==void 0?ht.get(T):void 0,Se=g.type==="reconnect_thread"&&(O!==void 0&&ro.has(O)||J!==void 0&&R0(J)!=="dead");if(g.type==="start_instance"||g.type==="reconnect_thread"&&!Se)return nte(g).then(en=>{if(en)return{instanceId:Je,controlType:g.type,threadId:T??null,held:!0,reason:"runner_updating_queued"};throw n("runner.update_restart_drain_start_refused",{control_type:g.type,thread_id:T??null}),new Error(tI)})}return SIe(Qt,Xt,g).then(T=>T!==void 0?T:zB(Zt,ve,Pe,Je,e,m(),ke,ge,Re,ro,Qh,lp,o6,jw,g,u6,a,Kw,sm(e)?Wne:void 0,s?.playCodex,O=>ue.current(O),Jo,Cu,Tu,ne,Yne,Nne))},C).then(T=>ve.push(Pe,"codex_response",T)).catch(async T=>((g.type==="start_instance"||g.type==="reconnect_thread")&&(tJ(T)||Uk(T)||rI(T))&&await v6(g,T),ve.push(Pe,"codex_error",{instanceId:Je,message:tf(T)}))).catch(T=>{n("kandan.control_response_push_failed",{message:T instanceof Error?T.message:String(T)})})},ute=gz({store:hz(fz(tl(),e.runnerId),g=>n("runner.control_quarantine_state_write_failed",{message:g})),quarantineFilePath:mz(tl(),e.runnerId),currentEpoch:()=>Bh.current(Pe),log:n,emitRunnerEvent:g=>{ve.push(Pe,"runner.control_quarantined",g).catch(x=>{n("runner.control_quarantined_event_push_failed",{message:x instanceof Error?x.message:String(x)})})}}),P6=(g,x)=>{sIe(g.type,()=>dte(g),x,n,C=>ute.onControlRejected(g,C))},eg=d===void 0?void 0:E9({runtime:d,threadIdOf:g=>ti(g),controlTypeOf:g=>g.type,dispatch:P6,log:n});return d!==void 0&&eg!==void 0&&(d.hooks.onOverlapDrain=g=>{let x=[...new Set(i.inFlightTurns().map(T=>T.threadId).filter(T=>T!==""))];d.beginOutgoingDrain(x);let C=d.sendToSupervisor({type:"generation_pin_snapshot",epoch:d.epoch,threadIds:x});n("runner.generation_outgoing_drain_started",{incomingEpoch:g,pinned:x.length,threadIds:x,snapshotDelivered:C}),d.requestUpdateDrain("generation_overlap")},d.hooks.onOverlapAbort=()=>{let g=d.cancelUpdateDrain("generation_overlap_abort"),x=eg.redispatchDeferredToIncoming();n("runner.generation_overlap_abort_applied",{drainCancelled:g,redispatched:x})},d.hooks.onPinsReleased=()=>{eg.dispatchUnpinned()},d.hooks.onPromote=()=>{let C;t.actions.push(()=>{C!==void 0&&(clearTimeout(C),C=void 0)});let T=O=>{if(C=void 0,d.promoteRunnerLock()){n("runner.generation_lock_promoted",{attempt:O});return}if(O>=10){n("runner.generation_lock_promote_gave_up",{attempts:O});return}C=setTimeout(()=>T(O+1),5e3),C.unref()};T(1)}),WPe(zEe(e,ke.value,Ee.value,I.value),n,up,qe,eg?.dispatch??P6,async()=>{await y(),await _(),p.value==="probe_failed"&&await v()}),{instanceId:Je,codexUrl:Pt,close:r}}function WPe(e,n,t,r,o,i){r.value=o,t.splice(0).forEach(({control:s,ack:a})=>o(s,a)),xEe(e,n,i)}function om(){let e=process.env.LINZUMI_COMMANDER_OUTBOX_DIR?.trim();return e!==void 0&&e!==""?e:bt(II(),".linzumi","commander-outbox")}function tl(){let e=process.env.LINZUMI_CONTROL_CURSOR_DIR?.trim();return e!==void 0&&e!==""?e:bt(II(),".linzumi","control-cursors")}function HPe(e){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^[-.]+|[-.]+$/g,"").slice(0,80),t=Sd("sha256").update(e).digest("hex").slice(0,8),r=n===""?"runner":n;return bt(tl(),`${r}.${t}.json`)}function GPe(e){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^[-.]+|[-.]+$/g,"").slice(0,80),t=Sd("sha256").update(e).digest("hex").slice(0,8),r=n===""?"runner":n;return bt(tl(),`${r}.${t}.start-turn.json`)}function ZPe(e){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^[-.]+|[-.]+$/g,"").slice(0,80),t=Sd("sha256").update(e).digest("hex").slice(0,8),r=n===""?"runner":n;return bt(tl(),`${r}.${t}.vm-fallback-notice.json`)}function QPe(e,n){let t;try{if(!Yc(e))return;t=kd(e,"utf8")}catch(r){n("vm_fallback_notice_store.read_failed",{path:e,message:r instanceof Error?r.message:String(r)});return}try{let r=JSON.parse(t);if(typeof r=="object"&&r!==null){let o=r.readinessFingerprint;if(typeof o=="string"&&o!=="")return o}}catch{}}function AB(e,n,t){try{if(n===void 0){PI(e,{force:!0});return}el(Cd(e),{recursive:!0});let r=`${e}.tmp`;A0(r,`${JSON.stringify({readinessFingerprint:n})}
1517
+ ${t}`.toLowerCase();return r.includes("not logged in")||r.includes("not authenticated")||r.includes("login required")||r.includes("please log in")?"not_logged_in":e===0?"logged_in":"probe_failed"}function lI(e,n){let t=e==="logged_in"&&n.status==="probe_failed"&&n.transient;return{status:t?e:n.status,downgradeSkipped:t}}function KPe(e,n){return e==="ENOENT"?n?{status:"binary_missing",transient:!1}:{status:"probe_failed",transient:!0}:{status:"probe_failed",transient:ZT(e)}}function MB(e,n){return new Promise(t=>{let r=[],o=[],i=!1,s,a=u=>{i||(i=!0,s!==void 0&&clearTimeout(s),t(u))},d=q0(e,["login","status"],{cwd:n,env:process.env,stdio:["ignore","pipe","pipe"]});s=setTimeout(()=>{d.kill("SIGTERM"),a({status:"probe_failed",transient:!0})},jPe),d.stdout?.on("data",u=>{r.push(u)}),d.stderr?.on("data",u=>{o.push(u)}),d.once("error",u=>{a(KPe(u.code,Yc(n)))}),d.once("exit",u=>{a({status:JPe(u,Buffer.concat(r).toString("utf8"),Buffer.concat(o).toString("utf8")),transient:u===null})})})}async function VPe(e,n,t,r,o,i,s,a,d){let u=pRe(e),c={value:e.dependencyStatus},l={value:(await MB(e.codexBin,e.cwd)).status},p={value:e.claudeCodeAuthStatus??(JB(e).includes("claude-code")?"logged_in":"not_logged_in")};(p.value==="probe_failed"||p.value==="binary_missing")&&n("runner.claude_code_auth_startup_probe_failure",{runnerId:e.runnerId,claude_code_auth_status:p.value,probe_detail:e.claudeCodeAuthProbeDetail??null});let m=()=>JB(e,p.value),f={value:rx()};n("runner.codex_auth_status_probed",{runnerId:e.runnerId,codex_auth_status:l.value,has_valid_openai_auth:f.value.hasValidOpenAiAuth,openai_auth_mode:f.value.authMode});let y=async()=>{let g=c.value;if(g!==void 0)try{let x=await Xs({cwd:e.cwd,codexBin:e.codexBin,codeServerBin:e.codeServerBin,editorRuntime:g.editorRuntime}),C=e9(g,x);c.value=C.status,C.codexDowngradeSkipped&&n("runner.dependency_status_reprobe_downgrade_skipped",{runnerId:e.runnerId,codex_probe_failure:x.codex.failure??null,probe_detail:x.codex.failureDetail??null}),n("runner.dependency_status_reprobed",{runnerId:e.runnerId,codex_available:C.status.codex.available,codex_available_changed:g.codex.available!==C.status.codex.available,probe_detail:x.codex.failureDetail??null})}catch(x){n("runner.dependency_status_reprobe_failed",{runnerId:e.runnerId,message:x instanceof Error?x.message:String(x)})}},_=async()=>{try{let g=await MB(e.codexBin,e.cwd),x=l.value,C=lI(x,g);l.value=C.status;let T=f.value.hasValidOpenAiAuth;f.value=rx(),C.downgradeSkipped&&n("runner.codex_auth_status_reprobe_downgrade_skipped",{runnerId:e.runnerId,reprobed_status:g.status,has_valid_openai_auth:f.value.hasValidOpenAiAuth}),n("runner.codex_auth_status_reprobed",{runnerId:e.runnerId,codex_auth_status:C.status,codex_auth_status_changed:x!==C.status,has_valid_openai_auth:f.value.hasValidOpenAiAuth,has_valid_openai_auth_changed:T!==f.value.hasValidOpenAiAuth})}catch(g){let x=l.value,C=lI(x,{status:"probe_failed",transient:!0});l.value=C.status,f.value=rx(),C.downgradeSkipped&&n("runner.codex_auth_status_reprobe_downgrade_skipped",{runnerId:e.runnerId,reprobed_status:"probe_failed",message:g instanceof Error?g.message:String(g),has_valid_openai_auth:f.value.hasValidOpenAiAuth}),n("runner.codex_auth_status_reprobe_failed",{runnerId:e.runnerId,message:g instanceof Error?g.message:String(g),has_valid_openai_auth:f.value.hasValidOpenAiAuth})}},w={value:sC(process.env,{cwd:e.cwd})},S={value:!1},v=async()=>{if(!(e.claudeCodeRunner!==void 0||e.agentReplay!==void 0))try{let g=await gc({cwd:e.cwd,claudeBin:e.claudeCodeBin}),x=p.value,C=lI(x,g);p.value=C.status,C.downgradeSkipped&&n("runner.claude_code_auth_status_reprobe_downgrade_skipped",{runnerId:e.runnerId,reprobed_status:g.status,probe_detail:g.detail??null}),n("runner.claude_code_auth_status_reprobed",{runnerId:e.runnerId,claude_code_auth_status:C.status,claude_code_auth_status_changed:x!==C.status,probe_detail:g.detail??null})}catch(g){n("runner.claude_code_auth_status_reprobe_failed",{runnerId:e.runnerId,message:g instanceof Error?g.message:String(g)})}},b=g=>{if(S.value)return;let x=sC(process.env,{cwd:e.cwd});x!==w.value&&(w.value=x,S.value=!0,n("runner.claude_code_auth_hint_changed",{runnerId:e.runnerId,claude_code_auth_status:p.value}),v().then(()=>{g()}).finally(()=>{S.value=!1}))},k=e.allowedForwardPorts??[],R=new Set(k),P=new Set,L=CI(e.kandanUrl),D=()=>QIe(L,P),j=eJ(e)?await BRe(n):void 0;j!==void 0&&t.actions.push(()=>j.close());let q=new Map,E=(g,x)=>{q.set(g,{kandanThreadId:x.kandanThreadId??null,codexThreadId:x.codexThreadId??null,channelSlug:x.channelSlug??null,processName:x.processName??null,processIconKey:x.processIconKey??null,localEditor:x.localEditor===!0,agentProvider:x.agentProvider??null,linzumiCliManaged:x.linzumiCliManaged===!0})},B=g=>{q.delete(g)},z=(g,x={})=>{R.add(g),P.add(g),E(g,{processName:x.processName??null,processIconKey:x.processIconKey??null,agentProvider:x.agentProvider??null,linzumiCliManaged:!0})},W=g=>{P.delete(g),B(g),k.includes(g)||R.delete(g)},Z=()=>Array.from(R).sort((g,x)=>g-x).map(g=>{let x=q.get(g);return{port:g,kandanThreadId:x?.kandanThreadId??null,codexThreadId:x?.codexThreadId??null,channelSlug:x?.channelSlug??null,processName:x?.processName??null,processIconKey:x?.processIconKey??null,localEditor:x?.localEditor===!0,agentProvider:x?.agentProvider??null,linzumiCliManaged:x?.linzumiCliManaged===!0||P.has(g)}}),fe=g=>{let{advertisable:x,rejected:C}=Fk(g);for(let T of C)n("runner.non_advertisable_cwd_root_dropped",{root:T.root,reason:T.reason}),Zf({severity:"warning",key:`runner.non_advertisable_cwd_root:${T.root}`,message:`not advertising ${JSON.stringify(T.root)} as an allowed working-directory root (${T.reason==="home_root"?"it is your home directory":"it is a filesystem root"}). A catch-all root would let the server route any coding job to this machine. Register explicit project folders instead (connect from a project directory or pass --allowed-cwd).`});return x},Ee=fe(Kt(e.allowedCwds)),_e={value:[...Ee]},be=e.remoteCodexSandboxRunner??S7({env:process.env,platform:process.platform}),Re=new Map,Ae={value:Kt(e.missingAllowedCwds??[])},I={value:!1},$={value:null},K=(g,x)=>{let C=$.value;if(g.configVersion!==null&&C!==null&&g.configVersion<C){n("runner.config_sync_stale_skipped",{source:x.source,configVersion:g.configVersion,appliedConfigVersion:C});return}let T=C5(g.allowedCwds,e.kandanUrl),O=FI(T,{createMissing:!0});I.value=I.value||NEe(O.allowedCwds,[e.cwd,...Ee]),_e.value=fe(Kt([...x.includeStartupAllowedCwds?Ee:[],...O.allowedCwds])),Ae.value=O.missingAllowedCwds,g.configVersion!==null&&($.value=g.configVersion),n("runner.config_updated",{source:x.source,configVersion:g.configVersion,allowedCwdCount:_e.value.length,missingAllowedCwdCount:Ae.value.length})},re=(g,x={})=>{let C=s2e(_e.value,Ae.value);if(!C.changed)return!1;if(_e.value=C.advertised,Ae.value=C.missing,C.dropped.length>0){n("runner.stale_allowed_cwd_roots_deadvertised",{trigger:g,pruned_roots:C.dropped,advertised_root_count:C.advertised.length,...x});for(let T of C.dropped)Zf({severity:"warning",key:`runner.allowed_cwd_root_missing:${T}`,message:`allowed working-directory root ${JSON.stringify(T)} no longer exists (deleted, or its disk/volume is unmounted). Not offering it for coding jobs until it is back; remount the volume or restore the folder to resume.`})}if(C.restored.length>0){n("runner.allowed_cwd_roots_readvertised",{trigger:g,restored_roots:C.restored,advertised_root_count:C.advertised.length,...x});for(let T of C.restored)Zf({severity:"info",key:`runner.allowed_cwd_root_restored:${T}`,message:`allowed working-directory root ${JSON.stringify(T)} is back; offering it for coding jobs again.`})}return!0},pe={value:{status:"disabled"}},Y={value:0},ie={watcher:void 0,approvedPorts:new Set,approvedTargets:new Map,dismissedTargets:new Map,pendingRequests:new Map,queuedCandidates:new Map};t.actions.push(()=>{for(let g of Re.values())g.abort(new Error("local runner stopped"));Re.clear(),pe.value.status==="running"&&(pe.value.process.kill("SIGINT"),pe.value.collaboration?.process.kill("SIGINT")),ie.watcher?.close()});let Fe=()=>Array.from(ie.pendingRequests.values()).sort((g,x)=>g.port-x.port).map(g=>{let x=vi(g.command),C=x?.appName??nf(mr(g));return{requestId:g.requestId,port:g.port,pid:g.pid,command:g.command,...g.cwd===void 0?{}:{cwd:g.cwd},summary:`Make ${C} on port ${g.port} accessible on Linzumi?`,reason:yy(mr(g)),...x?.appName===void 0?{}:{processName:x.appName},...x?.iconKey===void 0?{}:{processIconKey:x.iconKey}}}),ae,Ce,Yn=()=>(Ce===void 0&&(Ce=(e.localVmReadinessProbe??(()=>e8({workspaceLocalVmExecutionFlag:e.vmExecution===!0})))().then(x=>(ae=x,x)).catch(x=>{n("vm.local_vm_readiness_probe_failed",{error:x instanceof Error?x.message:String(x)})})),Ce),Jn=()=>(Yn(),ae),Dt=()=>({...d===void 0?{}:{generationOverlap:!0},codexAppServer:u,codexRemoteTui:u,client_message_ids:!0,commander_pipeline:"pipeline",agentProviders:m(),modelProviders:[...Ky],codexAuthStatus:l.value,claudeCodeAuthStatus:p.value,hasValidOpenaiAuth:f.value.hasValidOpenAiAuth,openaiAuthMode:f.value.authMode,waferAvailable:!0,defaultAgentProvider:"codex",startInstance:_e.value.length>0,durableClaudeSessionStore:!0,agentSlashCommandCatalog:!0,cloneRepository:!0,managedDevServices:!0,claudeCodeCheckpointRewind:!1,steerTurn:!0,appliedConfigVersion:$.value,allowedCwds:_e.value,missingAllowedCwds:Ae.value,allowedCwdSuggestions:a2e(e.cwd,_e.value),allowedCwdProjects:d2e(_e.value),onboardingSelectedFolderScan:!0,portForwarding:R.size>0,tcpForwarding:!0,linzumiMcp:!0,localVmExecution:e.vmExecution===!0,...(()=>{let g=Jn();return g===void 0?{}:{localVmReadiness:g}})(),remoteCodexExecution:be!==void 0&&_e.value.length>0,remoteCodexExecutionStatus:be===void 0?"sandbox_unavailable":_e.value.length>0?"ready":"cwd_unavailable",allowedPorts:Array.from(R).sort((g,x)=>g-x),forwardedPortAttributions:Z(),pendingEditorForwardPortRequests:Fe(),toolStatus:c.value===void 0?null:QT(c.value),editorRuntime:c.value?.editorRuntime===void 0?null:QT(c.value).editorRuntime,...M8(e.editorRuntime,_e.value,pe.value)}),V=()=>(re("capabilities_payload"),Dt()),ce=fI(HPe(e.runnerId),n),$e=d===void 0?ce:D9(ce,()=>d.outgoingDrainActive());t.actions.push(()=>$e.flush());let _n=Tz(e.runnerId),mn=Pz(_n,g=>n("runner.cwd_stillbirth_state_write_failed",{message:g,statePath:_n}),g=>n("runner.cwd_stillbirth_state_read_failed",{message:g,statePath:_n}));if(e.threadProcess?.role!=="thread"){let g=Az(mn);g.length>0&&n("runner.cwd_stillbirth_counters_reset_on_restart",{cwds:g})}let Be=fI(GPe(e.runnerId),n,{discardSeqsOnFirstEpochAdoption:!0});t.actions.push(()=>Be.flush());let Xe=Iq(Pq(e.runnerId),n);if(e.threadProcess?.role!=="thread"){let g=Za(e.runnerId);Vj(g,n),Jj({scopeDir:g,ownerPid:process.pid,log:n}).catch(C=>{n("dev_services.reconcile_failed",{message:C instanceof Error?C.message:String(C)})});let x=Kj({scopeDir:g,ownerPid:process.pid,log:n});t.actions.push(()=>x.stop())}let Mt=fI(XPe(e.runnerId),n,{fsyncOnWrite:!0});t.actions.push(()=>Mt.flush());let $r={initial:g=>Mt.initial(g),onAdvance:(g,x)=>Mt.onAdvance(g,x),flush:()=>Mt.flush()},Bo=A7(),Jo=g=>{if(g.sourceSeq===void 0)return;let x=xs(at(),g.channel,g.threadId);wB({store:$r,watermarkKey:x,sourceSeq:g.sourceSeq})&&n("runner.live_worker_source_seq_committed",{kandanThreadId:g.threadId,channel:g.channel,sourceSeq:g.sourceSeq}),ku.delete(Ko(g.channel,g.threadId,g.sourceSeq))},N=g=>{Bo.clearSeq(xs(at(),g.channel,g.threadId),g.sourceSeq)},ne=g=>{if(g.sourceSeq===void 0)return!1;let x=xs(at(),g.channel,g.threadId),C=$r.initial(x);return O7(C,Bo,x,g.sourceSeq)},oe=N7(),ue=yB(),ye=new Map,Te=new Map,on=!0,et=!1,At=!1,Gt=()=>on&&!et,at=()=>Br(e)??"default",Cr=()=>e.channelSession?.channelSlug??Xe.list()[0]?.channel,Nt=(g,x)=>{let C=at(),T=`${C}:${g}:${x}`,O=ye.get(T);if(O!==void 0)return O;let J=HP(ZP(C,g,x),n);return ye.set(T,J),J},ku=new Map,Ko=(g,x,C)=>`${at()}:${g}:${x}:${C}`,Cu=(g,x,C)=>{ku.set(Ko(g,x,C.seq),C)},Tu=g=>{let x=Nt(g.channel,g.threadId);for(let C of g.sourceSeqs){let T=Ko(g.channel,g.threadId,C),O=ku.get(T);if(O===void 0){n("runner.live_follow_up_recapture_missing",{kandanThreadId:g.threadId,channel:g.channel,sourceSeq:C});continue}let J=x.enqueue(C,"replay",$u(O),Date.now());n("runner.live_follow_up_re_enqueued_on_close",{kandanThreadId:g.threadId,channel:g.channel,sourceSeq:C,enqueued:J.accepted}),ku.delete(T)}};o.stopAccepting=()=>{on=!1},o.flushInboundQueues=()=>{for(let g of ye.values())g.compact()};let Bh=pIe($e,Be,n,e),ip=i7({initialToken:e.token,tokenExpiresAt:e.tokenExpiresAt,deps:{renew:async g=>{let x=await g5({kandanUrl:e.kandanUrl,accessToken:g});return x.kind==="renewed"?{kind:"renewed",accessToken:x.token.accessToken,expiresInSeconds:x.token.expiresInSeconds}:{kind:x.kind}},persist:e.tokenExpiresAt===void 0?void 0:({accessToken:g,expiresInSeconds:x})=>{so({kandanUrl:e.kandanUrl,accessToken:g,expiresInSeconds:x,authFilePath:e.authFilePath})},log:n}}),Se=await Og(e.kandanUrl,()=>ip.currentToken(),e.socketFactory,{controlCursorStore:$e,controlEpochStore:Bh,onOperatorNotice:g=>Zf({severity:"warning",audience:"operator",message:g})});ip.start(),t.actions.push(()=>ip.stop()),t.actions.push(()=>Se.close());let Jh=cIe(n,Date.now,fJ,{onReconnectNeeded:({staleForMs:g,attempt:x})=>{let C=Se.forceReconnect?.("connection_stale_forced_reconnect");return n("kandan.connection_force_reconnect_dispatched",{staleForMs:g,attempt:x,initiated:C??!1}),C??!1},onHardResetNeeded:()=>Se.hardReset?.("connection_stale_hard_reset")??!1,onUnrecoverable:({staleForMs:g})=>{console.error(`Connection to Linzumi was lost and did not recover for ${Math.round(g/6e4)} minutes; exiting so a fresh runner can reconnect. Run \`linzumi connect\` to reconnect.`),process.exit(75)}}),Pe=`local_runner:${e.runnerId}`,Da=e.clientId??e.machineId??e.runnerId,sp=EPe(),ap=d9({log:n}),Pu=()=>{ap.drain(g=>Se.pushIfConnected(Pe,"diagnostics:upload",g))},ho=Zz({upload:g=>Se.pushIfConnected(Pe,"diagnostics:upload",g),runnerLogFile:e.logFile??ug(),log:n,spool:ap});ho.recordLifecycle({event:"connect",atIso:new Date().toISOString()}),Pu(),Se.onDisconnect?.(g=>{ho.recordLifecycle({event:"disconnect",atIso:new Date().toISOString(),closeCode:g.closeCode,closeReason:g.closeReason,previousSessionDurationMs:g.previousSessionDurationMs,reconnectCount:g.reconnectCount}),ho.flushNow()}),Se.onReconnect(()=>{ho.recordLifecycle({event:"connect",atIso:new Date().toISOString()}),ho.flushNow(),Pu()}),t.actions.push(async()=>{ho.stop(),ho.flushNow()});let dp=()=>({clientName:"kandan-local-codex-runner",clientId:Da,machineFingerprint:e.machineFingerprint??null,...A6(e.machineFingerprintV2),runnerPid:process.pid,version:jt,hostname:sp,cwd:e.cwd,workspace:Br(e)??null,channel:e.channelSession?.channelSlug??null,capabilities:V(),...d===void 0?{}:{generation:{epoch:d.epoch,overlap:!0}}}),up=[],Kh=0,U=0,qe={value:void 0};Se.onControl((g,x)=>{Jh.recordServerAck();let C=qe.value;if(C===void 0){up.push({control:g,ack:x});return}C(g,x)});let te=await Se.join(Pe,dp(),{rejoinPayload:dp});if(d!==void 0){let g=d.sendToSupervisor({type:"generation_ready",epoch:d.epoch});n("runner.generation_ready_sent",{epoch:d.epoch,delivered:g})}let we=LB(A(te)?.runner_config);switch(we.type){case"missing":break;case"invalid":throw n("runner.config_join_invalid",{runnerId:e.runnerId,kandanUrl:e.kandanUrl,reason:we.reason}),new Error(`invalid runner_config in Kandan join response: ${we.reason}`);case"ok":K(we.config,{includeStartupAllowedCwds:!1,source:"join"});break}let sn=A(A(te)?.compute_node);sn!==void 0&&n("runner.compute_node",{id:h(sn.id),name:h(sn.name),identityQuality:h(sn.identity_quality),resetGeneration:X(sn.reset_generation)});let Lr=(g,x)=>{let C=jIe(g);C!==void 0&&n("kandan.roster_seeded",{source:x,thread_count:C.threads.length,truncated:C.truncated,skipped_entries:C.skippedEntries,threads:C.threads.map(T=>({kandan_thread_id:T.kandanThreadId,provider_session_key:T.providerSessionKey,channel_id:T.channelId,last_activity_at_ms:T.lastActivityAtMs}))})};Lr(te,"join");let Vh=(g,x)=>{let C=A(g)?.fleet_breaker;if(C===void 0)return;let T=kS(C);if(T===void 0){n("runner.fleet_breaker_seed_invalid",{source:x});return}n("runner.fleet_breaker_state",{source:x,outcome:CS(T),state:T.state,fate:T.fate,version:T.version})};Vh(te,"join"),Se.onReconnect(g=>{Lr(g.get(Pe),"rejoin"),Vh(g.get(Pe),"rejoin");let x=LB(g.get(Pe)?.runner_config);switch(x.type){case"missing":return;case"invalid":n("runner.config_rejoin_invalid",{runnerId:e.runnerId,kandanUrl:e.kandanUrl,reason:x.reason});return;case"ok":K(x.config,{includeStartupAllowedCwds:!1,source:"rejoin"});return}});let Wh=LIe(A(te)?.replaced_runners),jr=s===void 0&&e.codexUrl===void 0&&u?await EJ(e):void 0;jr!==void 0&&t.actions.push(()=>{jr.stop()});let Pt=e.codexUrl??jr?.url;if(jr!==void 0){let g=CI(jr.url);g!==void 0&&z(g,{processName:"Codex app-server",processIconKey:"codex",agentProvider:"codex"})}let Je=`codex-${dI()}`,Ine=g=>{Se.push(Pe,"local_editor_status",g).catch(x=>{n("kandan.local_editor_status_push_failed",{message:x instanceof Error?x.message:String(x)})})},Ma=(g,x)=>{Se.push(Pe,g,x).catch(C=>{n(`kandan.${g}_push_failed`,{message:C instanceof Error?C.message:String(C)})})},Rne=eJ(e)?WRe({log:n,instanceId:Je,markCommanderManagedForwardPort:z,clearCommanderManagedForwardPort:W,managedForwardPorts:P,capabilitiesPayload:V,pushForwardPortEvent:Ma}):void 0;t.actions.push(()=>Rne?.close());let Aw=(g,x)=>{let C=ie.approvedTargets.get(g);ie.approvedPorts.delete(g),ie.approvedTargets.delete(g),R.delete(g),B(g),Ma("forward_port_revoked",{instanceId:Je,port:g,...C===void 0?{}:{pid:C.pid,command:C.command,...C.cwd===void 0?{}:{cwd:C.cwd}},reason:x,capabilities:Us(V(),g)})},n6=g=>{ie.watcher?.close(),ie.watcher=void 0,ie.pendingRequests.clear(),ie.queuedCandidates.clear();let x=Array.from(ie.approvedPorts);for(let C of x)Aw(C,g);return ie.dismissedTargets.clear(),x},Hh=()=>{if(ie.pendingRequests.size>0||ie.queuedCandidates.size===0)return;let g=Array.from(ie.queuedCandidates.values()).sort((x,C)=>x.port-C.port)[0];g!==void 0&&(ie.queuedCandidates.delete(g.port),t6(g),ie.pendingRequests.size===0&&Hh())},Ow=g=>{let x=nc({requestId:`editor-port-forward-auto-${dI()}`,sourceSeq:0,candidate:g});ie.approvedPorts.add(x.port),ie.approvedTargets.set(x.port,mr(x)),R.add(x.port);let C=vi(x.command);E(x.port,{localEditor:!0,processName:C?.appName??null,processIconKey:C?.iconKey??null,linzumiCliManaged:x.portKind==="commander_bound"}),Ma("forward_port_resolved",{instanceId:Je,requestId:x.requestId,source:"local_editor",port:x.port,pid:x.pid,command:x.command,...x.cwd===void 0?{}:{cwd:x.cwd},decision:"approve",capabilities:V()})},t6=g=>{let x=ef({candidate:g,threadBound:!0,suppressedPorts:new Set(D()),approvedPorts:ie.approvedPorts,approvedTargets:ie.approvedTargets,dismissedTargets:ie.dismissedTargets,pendingRequests:Array.from(ie.pendingRequests.values())});switch(x.type){case"skip":return;case"remember_approved_target":ie.approvedTargets.set(x.target.port,x.target);return;case"revoke_and_prompt":Aw(x.revoked.port,x.reason),Ow(g);return;case"replace_pending":ie.pendingRequests.delete(x.expired.port),Ma("forward_port_resolved",{instanceId:Je,requestId:x.expired.requestId,source:"local_editor",port:x.expired.port,pid:x.expired.pid,command:x.expired.command,...x.expired.cwd===void 0?{}:{cwd:x.expired.cwd},decision:"expired",reason:x.reason,capabilities:V()}),Ow(x.candidate);return;case"prompt":Ow(g);return}},Ene=g=>{let x=ie.queuedCandidates.get(g.port);if(x!==void 0&&qr(x,g)){ie.queuedCandidates.delete(g.port);return}let C=ie.pendingRequests.get(g.port);if(C!==void 0&&qr(mr(C),g)){ie.pendingRequests.delete(g.port),Ma("forward_port_revoked",{instanceId:Je,port:g.port,pid:g.pid,command:g.command,...g.cwd===void 0?{}:{cwd:g.cwd},reason:"listener_exited",capabilities:Us(V(),g.port)}),Hh();return}ie.approvedPorts.has(g.port)&&Aw(g.port,"listener_exited")},Dne=g=>{let x=Array.from(ie.pendingRequests.values()).find(T=>T.requestId===g.requestId);if(x===void 0)return;if(ie.pendingRequests.delete(x.port),g.decision==="deny")return ie.dismissedTargets.set(x.port,mr(x)),Ma("forward_port_resolved",{instanceId:Je,requestId:x.requestId,source:"local_editor",port:x.port,pid:x.pid,command:x.command,...x.cwd===void 0?{}:{cwd:x.cwd},decision:"deny",capabilities:V()}),Hh(),{instanceId:Je,ok:!0};ie.approvedPorts.add(x.port),ie.approvedTargets.set(x.port,mr(x)),R.add(x.port);let C=vi(x.command);return E(x.port,{localEditor:!0,processName:C?.appName??null,processIconKey:C?.iconKey??null,linzumiCliManaged:x.portKind==="commander_bound"}),Ma("forward_port_resolved",{instanceId:Je,requestId:x.requestId,source:"local_editor",port:x.port,pid:x.pid,command:x.command,...x.cwd===void 0?{}:{cwd:x.cwd},decision:"approve",capabilities:V()}),Hh(),{instanceId:Je,ok:!0,port:x.port}},Mne=g=>{if(g.process.pid===void 0){n("port_forward.local_editor_watch_skipped",{reason:"editor_pid_missing"});return}ie.watcher?.close(),ie.watcher=ec({rootPid:g.process.pid,onCandidate:t6,onCandidateLost:Ene,onError:x=>{n("port_forward.local_editor_watch_failed",{message:x.message})}})},$w=g=>{if(g.pendingRequests.size>0||g.queuedCandidates.size===0)return;let x=Array.from(g.queuedCandidates.values()).sort((C,T)=>C.port-T.port)[0];x!==void 0&&(g.queuedCandidates.delete(x.port),r6(g,x).catch(C=>{n("port_forward.claude_code_prompt_failed",{message:C instanceof Error?C.message:String(C)})}))},Gh=async(g,x,C,T="wait_for_connection")=>{let O=g.approvedTargets.get(x);g.approvedPorts.delete(x),g.approvedTargets.delete(x),R.delete(x),B(x),await(T==="connected_only"?Se.pushIfConnected:Se.push)(Pe,"forward_port_revoked",{instanceId:Je,port:x,...O===void 0?{}:{pid:O.pid,command:O.command,...O.cwd===void 0?{}:{cwd:O.cwd}},reason:C,agentProvider:"claude-code",capabilities:Us(V(),x)})},Lw=async(g,x)=>{let C=g.currentSourceSeq()??g.rootSeq;if(C===void 0){n("port_forward.claude_code_auto_approval_skipped",{reason:"source_seq_missing",port:x.port,pid:x.pid});return}let T=nc({requestId:`claude-port-forward-auto-${dI()}`,sourceSeq:C,candidate:x});g.approvedPorts.add(T.port),g.approvedTargets.set(T.port,mr(T)),R.add(T.port);let O=vi(T.command);E(T.port,{kandanThreadId:g.threadId,codexThreadId:g.sessionId,channelSlug:g.channel,processName:O?.appName??null,processIconKey:O?.iconKey??null,agentProvider:"claude-code",linzumiCliManaged:T.portKind==="commander_bound"}),await Se.push(Pe,"forward_port_resolved",{instanceId:Je,requestId:T.requestId,port:T.port,pid:T.pid,command:T.command,...T.cwd===void 0?{}:{cwd:T.cwd},sourceSeq:T.sourceSeq,decision:"approve",agentProvider:"claude-code",capabilities:V()})},r6=async(g,x)=>{let C=ef({candidate:x,threadBound:!0,suppressedPorts:new Set(D()),approvedPorts:g.approvedPorts,approvedTargets:g.approvedTargets,dismissedTargets:g.dismissedTargets,pendingRequests:Array.from(g.pendingRequests.values())});switch(C.type){case"skip":return;case"remember_approved_target":g.approvedTargets.set(C.target.port,C.target);return;case"revoke_and_prompt":await Gh(g,C.revoked.port,C.reason),await Lw(g,x);return;case"replace_pending":g.pendingRequests.delete(C.expired.requestId),await Se.push(Pe,"forward_port_resolved",{instanceId:Je,requestId:C.expired.requestId,port:C.expired.port,pid:C.expired.pid,command:C.expired.command,...C.expired.cwd===void 0?{}:{cwd:C.expired.cwd},sourceSeq:C.expired.sourceSeq,decision:"expired",reason:C.reason,agentProvider:"claude-code",capabilities:V()}),await ri(Se,Pe,{workspace:g.workspace,channel:g.channel,threadId:g.threadId,sourceSeq:C.expired.sourceSeq,status:"failed",reason:"port_forward_listener_changed",sessionId:g.sessionId}),await Lw(g,C.candidate);return;case"prompt":await Lw(g,x);return}},Ane=(g,x)=>{let C=g.queuedCandidates.get(x.port);if(C!==void 0&&qr(C,x)){g.queuedCandidates.delete(x.port),g.approvedPorts.has(x.port)&&Gh(g,x.port,"listener_exited").catch(O=>{n("port_forward.claude_code_revoke_failed",{message:O instanceof Error?O.message:String(O)})});return}let T=Array.from(g.pendingRequests.values()).find(O=>qr(mr(O),x));if(T!==void 0){g.pendingRequests.delete(T.requestId),Se.push(Pe,"forward_port_resolved",{instanceId:Je,requestId:T.requestId,port:T.port,pid:T.pid,command:T.command,...T.cwd===void 0?{}:{cwd:T.cwd},sourceSeq:T.sourceSeq,decision:"expired",reason:"listener_exited",agentProvider:"claude-code",capabilities:V()}).then(()=>ri(Se,Pe,{workspace:g.workspace,channel:g.channel,threadId:g.threadId,sourceSeq:T.sourceSeq,status:"failed",reason:"port_forward_listener_exited",sessionId:g.sessionId})).then(()=>$w(g)).catch(O=>{n("port_forward.claude_code_expire_failed",{message:O instanceof Error?O.message:String(O)})});return}g.approvedPorts.has(x.port)&&Gh(g,x.port,"listener_exited").catch(O=>{n("port_forward.claude_code_revoke_failed",{message:O instanceof Error?O.message:String(O)})})},One=g=>{for(let x of Eu.values()){let C=x.pendingRequests.get(g.requestId);if(C===void 0)continue;if(x.pendingRequests.delete(g.requestId),g.decision==="deny")return x.dismissedTargets.set(C.port,mr(C)),Promise.all([Se.push(Pe,"forward_port_resolved",{instanceId:Je,requestId:C.requestId,port:C.port,pid:C.pid,command:C.command,...C.cwd===void 0?{}:{cwd:C.cwd},sourceSeq:C.sourceSeq,decision:"deny",agentProvider:"claude-code",capabilities:V()}),ri(Se,Pe,{workspace:x.workspace,channel:x.channel,threadId:x.threadId,sourceSeq:C.sourceSeq,status:"failed",reason:"port_forward_denied",sessionId:x.sessionId})]).then(()=>$w(x)).catch(O=>{n("port_forward.claude_code_deny_failed",{message:O instanceof Error?O.message:String(O)})}),{instanceId:Je,ok:!0,agentProvider:"claude-code"};x.approvedPorts.add(C.port),x.approvedTargets.set(C.port,mr(C)),R.add(C.port);let T=vi(C.command);return E(C.port,{kandanThreadId:x.threadId,codexThreadId:x.sessionId,channelSlug:x.channel,processName:T?.appName??null,processIconKey:T?.iconKey??null,agentProvider:"claude-code",linzumiCliManaged:C.portKind==="commander_bound"}),Promise.all([Se.push(Pe,"forward_port_resolved",{instanceId:Je,requestId:C.requestId,port:C.port,pid:C.pid,command:C.command,...C.cwd===void 0?{}:{cwd:C.cwd},sourceSeq:C.sourceSeq,decision:"approve",agentProvider:"claude-code",capabilities:V()}),ri(Se,Pe,{workspace:x.workspace,channel:x.channel,threadId:x.threadId,sourceSeq:C.sourceSeq,status:"processed",reason:"Claude Code preview port approved",sessionId:x.sessionId})]).then(()=>$w(x)).catch(O=>{n("port_forward.claude_code_approve_failed",{message:O instanceof Error?O.message:String(O)})}),{instanceId:Je,ok:!0,agentProvider:"claude-code",port:C.port}}},o6=g=>{if(Eu.has(g.sessionId))return;let x=e.portForwardWatcher??(J=>ec({rootPid:process.pid,commanderBoundPids:[process.pid],commanderBoundPorts:Array.from(P),watchPorts:k,extraWatchPorts:my(Za(e.runnerId)),...J})),C={value:void 0},T;try{T=x({onCandidate:J=>C.value===void 0?void 0:r6(C.value,J),onCandidateLost:J=>C.value===void 0?void 0:Ane(C.value,J),onListenersObserved:J=>ag(`claude-session:${g.sessionId}`,J.filter(ke=>ke.portKind!=="commander_bound")),onError:J=>{n("port_forward.claude_code_watch_failed",{message:J.message,claude_session_id:g.sessionId})}})}catch(J){n("port_forward.claude_code_watch_skipped",{reason:"watch_start_failed",message:J instanceof Error?J.message:String(J),claude_session_id:g.sessionId});return}n("port_forward.claude_code_watch_started",{claude_session_id:g.sessionId,root_pid:e.portForwardWatcher===void 0?process.pid:null,injected:e.portForwardWatcher!==void 0});let O={...g,watcher:T,approvedPorts:new Set,approvedTargets:new Map,dismissedTargets:new Map,pendingRequests:new Map,queuedCandidates:new Map};C.value=O,Eu.set(g.sessionId,O)},jw=async(g,x="wait_for_connection")=>{let C=Eu.get(g);if(C===void 0)return;let T=Array.from(C.pendingRequests.values()),O=Array.from(C.approvedPorts);C.watcher.close(),C.pendingRequests.clear(),C.queuedCandidates.clear(),C.dismissedTargets.clear(),Eu.delete(g),await Promise.all([...T.map(async J=>{try{let ke=x==="connected_only"?Se.pushIfConnected:Se.push;await Promise.all([ke(Pe,"forward_port_resolved",{instanceId:Je,requestId:J.requestId,port:J.port,pid:J.pid,command:J.command,...J.cwd===void 0?{}:{cwd:J.cwd},sourceSeq:J.sourceSeq,decision:"expired",reason:"session_ended",agentProvider:"claude-code",capabilities:V()}),ri(Se,Pe,{workspace:C.workspace,channel:C.channel,threadId:C.threadId,sourceSeq:J.sourceSeq,status:"failed",reason:"port_forward_session_ended",sessionId:C.sessionId,publishMode:x})])}catch(ke){n("port_forward.claude_code_dispose_prompt_failed",{message:ke instanceof Error?ke.message:String(ke)})}}),...O.map(async J=>{try{await Gh(C,J,"session_ended",x)}catch(ke){n("port_forward.claude_code_dispose_revoke_failed",{message:ke instanceof Error?ke.message:String(ke)})}})])},$ne=(g,x,C)=>{let T=()=>{if(Y.value!==x||pe.value.status!=="running"||pe.value.process!==g.process)return;pe.value={status:"disabled"};let J=n6("editor_exited");R.delete(g.port),P.delete(g.port),g.collaboration!==void 0&&(R.delete(g.collaboration.serverPort),P.delete(g.collaboration.serverPort)),Ine({instanceId:Je,ok:!0,cwd:g.cwd,capabilities:{...V(),revokedPorts:g.collaboration===void 0?[g.port,...J]:[g.port,g.collaboration.serverPort,...J]}})},O=()=>{C.then(T).catch(J=>{n("kandan.local_editor_initial_status_failed",{message:J instanceof Error?J.message:String(J)})})};g.exited.then(O)},Zt=s?.codex??(Pt===void 0?void 0:await Tf(Pt));if(Zt!==void 0&&t.actions.push(()=>Zt.close()),e.channelSession!==void 0&&Zt===void 0)throw new Error("channel session requires a Codex app-server connection");let i6=CIe({codexUrl:e.codexUrl,threadProcessRole:e.threadProcess?.role,ownsStartedAppServer:jr!==void 0}),Fw={value:0},s6={value:[]},Iu=pm(e),Lne={instanceId:Je,clientId:Da,...Pt===void 0?{}:{codexUrl:Pt},tuiLaunched:e.launchTui,cwd:e.cwd,hostname:sp,codexThreads:s6.value,workspace:Br(e)??null,channel:e.channelSession?.channelSlug??null,model:Iu.model??null,reasoningEffort:Iu.reasoningEffort??null,allowPortForwardingByDefault:Iu.allowPortForwardingByDefault??null,fast:e.fast??!1};await Se.push(Pe,"instance_started",Lne),n("runner.instance_started",{runnerId:e.runnerId,hostname:sp,workspace:Br(e)??null,version:jt,instanceId:Je,codexUrl:Pt??null,replacedRunners:Wh});let a6=Br(e),d6={...a6===void 0?{}:{workspace:a6},launch_source:e.launchSource??"cli"};Vc({name:"commander.connected",attributes:d6},{apiUrl:e.kandanUrl}),t.actions.push(()=>Vc({name:"commander.exited",attributes:d6},{apiUrl:e.kandanUrl}));let Qt=e.channelSession===void 0||Zt===void 0?void 0:await cf({kandan:Se,codex:Zt,topic:Pe,instanceId:Je,leaseEpochFor:g=>ue.current(g),escalateEngineHalt:jr===void 0?void 0:()=>{jr.stop()},options:{kandanUrl:e.kandanUrl,token:e.token,runnerId:e.runnerId,cwd:e.cwd,codexBin:e.codexBin,fetch:e.fetch,fast:e.fast,launchTui:e.launchTui,pipelinePersistDir:om(),enablePortForwardWatch:!0,initialForwardPorts:k,portForwardWatcher:YB({rootPid:jr?.process.pid,start:e.portForwardWatcher}),suppressedForwardPorts:D,onForwardPortApproved:(g,x)=>(R.add(g),E(g,{...x,agentProvider:"codex"}),V()),onForwardPortRevoked:g=>(R.delete(g),B(g),V()),onUnroutedThreadMessage:g=>g6(g),onLiveSourceSeqAccepted:Jo,onLiveSourceSeqSettled:N,channelSession:e.channelSession},log:n});Qt!==void 0&&(t.actions.push(()=>Qt.close()),Se.onReconnect(()=>Qt.handleKandanReconnect()));let Xt=new Map,cp=new Map,Aa=new Map,jne=(g,x)=>{let C=Aa.get(g);if(C!==void 0){Aa.delete(g);for(let T of C)T.resolve(x)}},Zh=(g,x)=>{let C=Aa.get(g);if(C!==void 0){Aa.delete(g);for(let T of C)T.reject(x)}},Qi=Lq(),Fne=new Set(["kandan.reconnect_thread_resume_failed","kandan.reconnect_thread_rehydrate_forced","kandan.reconnect_thread_rehydration_ir_emitted","kandan.reconnect_thread_rehydration_failed","kandan.reconnect_thread_rehydrated","kandan.reconnect_thread_unarchive_started","kandan.reconnect_thread_unarchive_resumed","kandan.reconnect_thread_unarchive_failed"]),qne=(g,x)=>{if(!Fne.has(g))return;let C=x.codex_thread_id;typeof C=="string"&&C!==""&&Qi.note(C,g)},zne=g=>()=>jq(fC(),g),u6=Object.assign((g,x)=>{qne(g,x),n(g,x)},{close:()=>n.close()}),qw=g=>Fq({method:"thread/attach",codexThreadId:g.codexThreadId,kandanThreadId:g.kandanThreadId,wait:g.wait,tracker:Qi,log:n,rolloutBytes:zne(g.codexThreadId),noProgressTimeoutMs:Iy()}),Xi=new Map,Ru=new Map,c6=[],zw=g=>{let x=Ru.get(g);if(x!==void 0)return x;let C=DIe({sessions:()=>[...g===Zt&&Qt!==void 0?[Qt]:[],...Array.from(Xt.entries()).filter(([T])=>Xi.get(T)===g).map(([,T])=>T)],log:n,onActiveThreadsFailed:i6?T=>{for(let O of T)c6.push(Se.push(Pe,"session:app_server_lost",{codex_thread_id:O}).then(()=>{},J=>{n("kandan.session_app_server_lost_push_failed",{codex_thread_id:O,message:J instanceof Error?J.message:String(J)})}))}:void 0});return Ru.set(g,C),C},ro=new Map,Nw=new Map,Nne={record:(g,x)=>{let C=Nw.get(g),T={approvalPolicy:x.approvalPolicy??C?.approvalPolicy,sandbox:x.sandbox??C?.sandbox};T.approvalPolicy===void 0&&T.sandbox===void 0||Nw.set(g,T)},resolve:g=>Nw.get(g)},Qh=new Map,lp=new Map,Eu=new Map;Se.onReconnect(()=>HIe(Xt.values())),Se.onDisconnect?.(()=>{for(let g of ro.values())g.pauseOutbox()}),Se.onReconnect(()=>{for(let[g,x]of ro)n("claude_code.outbox_resumed_on_reconnect",{claude_session_id:g,linzumi_thread_id:x.threadId}),x.resumeOutbox()}),o.interruptInFlightTurns=async()=>{let g=[...ro.entries()].flatMap(([C,T])=>{let O=T.currentSourceSeq();return O===void 0?[]:[{sessionId:C,session:T,sourceSeq:O}]});if(g.length===0)return;let x=new Promise(C=>{setTimeout(C,UIe).unref?.()});await Promise.race([Promise.all(g.map(async({sessionId:C,session:T,sourceSeq:O})=>{n("runner.drain_turn_interrupted_state",{claude_session_id:C,linzumi_thread_id:T.threadId,source_seq:O});try{await ri(Se,Pe,{workspace:T.workspace,channel:T.channel,threadId:T.threadId,sourceSeq:O,status:"interrupted",reason:NIe,sessionId:C})}catch(J){n("runner.drain_turn_interrupted_state_push_failed",{linzumi_thread_id:T.threadId,source_seq:O,message:J instanceof Error?J.message:String(J)})}})).then(()=>{}),x])};let l6=async()=>{let g=Eq(Xe.list(),Date.now());if(g.length!==0)try{await Se.push(Pe,"session:reannounce_threads",{threads:g.map(x=>({...x}))}),n("kandan.thread_sessions_reannounced",{count:g.length})}catch(x){n("kandan.thread_sessions_reannounce_failed",{count:g.length,message:x instanceof Error?x.message:String(x)})}};Se.onReconnect(()=>l6()),l6(),t.actions.push(async()=>{await Promise.all(Array.from(Xt.values(),x=>x.close())),Xt.clear(),Xi.clear(),Aa.clear();let g=[...ro.values()];for(let x of g)try{x.closeInput()}catch(C){n("claude_code.session_input_close_failed",{linzumi_thread_id:x.threadId,message:C instanceof Error?C.message:String(C)})}await Promise.race([Promise.allSettled(g.flatMap(x=>{let C=x.sessionWork();return C===void 0?[]:[C]})),new Promise(x=>{setTimeout(x,1e4).unref?.()})]);for(let x of g)x.abortController.abort(new Error("local runner stopped"));ro.clear();for(let x of Qh.values())x.resolve({type:"deny",message:"Claude Code approval cancelled because the runner stopped"});Qh.clear();for(let x of lp.values())x.resolve({type:"deny",message:"Claude Code question cancelled because the runner stopped"});lp.clear(),await Promise.all(Array.from(Eu.keys(),x=>jw(x,"connected_only")))});let ht=new Map;t.actions.push(async()=>{await Promise.all(Array.from(ht.values(),vI)),ht.clear()});let Une=()=>{for(let[g,x]of Array.from(ht.entries()))R0(x)==="dead"&&ht.get(g)===x&&(ht.delete(g),n("runner.thread_process_stale_entry_reaped",{kandanThreadId:g,pid:x.kind==="running"?x.handle.processPid??null:null,prior_kind:x.kind}),vI(x).catch(()=>{}))};if(sm(e)){let g=e.threadRunnerReaperIntervalMs??LPe,x=setInterval(Une,g);x.unref?.(),t.actions.push(()=>clearInterval(x))}let Uw=new Map,Bne=z3(),Bw=async(g,x)=>{let C=Xt.get(g),T=Xi.get(g);if(C===void 0||x!==void 0&&T!==x||T?.isClosed?.()!==!0)return!1;Xt.delete(g),Xi.delete(g),cp.delete(g),n("runner.thread_session_evicted_dead_worker",{codex_thread_id:g,kandan_thread_id:C.currentKandanThreadId()??null});try{await C.close()}catch(O){n("runner.thread_session_evict_close_failed",{codex_thread_id:g,message:O instanceof Error?O.message:String(O)})}return!0},Jw=async(g,x={})=>{let C=Xt.get(g);if(C!==void 0)return C;let T=cp.get(g);if(T!==void 0){let J=await T;if(J!==void 0)return J}let O=Xt.get(g);return O!==void 0||x.waitForSiblingSpawn!==!0?O:await new Promise((J,ke)=>{let an=Aa.get(g)??[];an.push({resolve:J,reject:ke}),Aa.set(g,an)})},p6=async g=>{let{control:x,cwd:C,codexThreadId:T,sessionCodex:O}=g,J=g.portForwardWatcherRootPid,ke=pn(x,"workspace"),an=pn(x,"channel"),en=pn(x,"threadId");if(ke===void 0||an===void 0||en===void 0)return;let Cn=Xt.get(T);if(Cn!==void 0){let nt=Cn.currentKandanThreadId();if(nt!==void 0&&nt!==en)throw new ed({codexThreadId:T,ownerKandanThreadId:nt,requestingKandanThreadId:en});if(!await Bw(T))return Cn}let pr=Xe.list().find(nt=>nt.codexThreadId===T&&nt.kandanThreadId!==en);if(pr!==void 0)throw new ed({codexThreadId:T,ownerKandanThreadId:pr.kandanThreadId,requestingKandanThreadId:en});let Dn=cp.get(T);if(Dn!==void 0)return await Dn;let gi=(async()=>{Qi.note(T,"attach_started");let nt=e.channelSession?.listenUser??go(e.token).actorUsername;if(nt===void 0)throw new Error("missing listen user for Commander-started Codex session");let Ln=rl(e,x),Yt=sm(e)?async bn=>Bne.run(bn.kandanThreadId,async()=>{await Bw(bn.codexThreadId);let An=!1,yt=Uw.get(bn.kandanThreadId)??(x.modelProvider!==void 0||x.llmProxy!==void 0||x.linzumiAgent!==void 0?{...x.modelProvider===void 0?{}:{modelProvider:x.modelProvider},...x.llmProxy===void 0?{}:{llmProxy:x.llmProxy},...x.linzumiAgent===void 0?{}:{linzumiAgent:x.linzumiAgent}}:void 0),Du=X(x.rootSeq);for(let fr of bn.pendingMessages){let ng={type:"reconnect_thread",workspace:ke,channel:an,threadId:bn.kandanThreadId,codexThreadId:bn.codexThreadId,cwd:C,...x.linzumiContext===void 0?{}:{linzumiContext:x.linzumiContext},...x.type==="reconnect_thread"&&x.sessionRehydrate===!0?{sessionRehydrate:!0}:{},...Du===void 0?{}:{rootSeq:Du},...yt?.modelProvider===void 0?{}:{modelProvider:yt.modelProvider},...yt?.llmProxy===void 0?{}:{llmProxy:yt.llmProxy},...yt?.linzumiAgent===void 0?{}:{linzumiAgent:yt.linzumiAgent},sourceSeq:fr.seq,workDescription:fr.body,...Ln.model===void 0?{}:{model:Ln.model},...Ln.reasoningEffort===void 0?{}:{reasoningEffort:Ln.reasoningEffort},...Ln.sandbox===void 0?{}:{sandbox:Ln.sandbox},...Ln.approvalPolicy===void 0?{}:{approvalPolicy:Ln.approvalPolicy},...Ln.fast===void 0?{}:{fast:Ln.fast}},I6=async $a=>{let R6=await qw({codexThreadId:bn.codexThreadId,kandanThreadId:bn.kandanThreadId,wait:Jw(bn.codexThreadId,{waitForSiblingSpawn:$a.waitForSiblingSpawn})});if(R6===void 0)throw new Error(`dead-worker rebuild could not resolve a live session for codex thread ${bn.codexThreadId}`);await R6.startThreadMessageTurn({seq:fr.seq,body:fr.body,actorSlug:fr.actorSlug,actorUserId:fr.actorUserId,boundStartTimeout:!0})};try{if(An)await I6({waitForSiblingSpawn:!1});else{let $a=await Vw(ng,C);mI($a)&&(n("runner.thread_dead_worker_rebuild_replay_on_sibling",{codex_thread_id:bn.codexThreadId,kandan_thread_id:bn.kandanThreadId,seq:fr.seq}),await I6({waitForSiblingSpawn:!0}))}An=!0}catch($a){return n("runner.thread_dead_worker_rebuild_failed",{codex_thread_id:bn.codexThreadId,kandan_thread_id:bn.kandanThreadId,seq:fr.seq,message:$a instanceof Error?$a.message:String($a)}),!1}}return An}):void 0,jn=x.linzumiAgent?.mcpToken??e.linzumiAgentMcpToken,er=$0(x),Yi=er.type==="provider"?er.runtime:void 0,nr=mRe({env:process.env,kandanUrl:e.kandanUrl,workspaceSlug:ke,linzumiAgentMcpToken:jn,ownerUsername:U0(e),modelProviderRuntime:Yi}),Vo=await cf({kandan:Se,codex:O,topic:Pe,instanceId:Je,leaseEpochFor:bn=>ue.current(bn),options:{kandanUrl:e.kandanUrl,token:e.token,runnerId:e.runnerId,cwd:C,codexBin:e.codexBin,mcpAvailable:!oa(e)||$I(e),devServicesAvailable:!oa(e),fetch:e.fetch,fast:x.fast??e.fast,launchTui:!1,rebuildOnDeadCodexWorker:Yt,onUnroutedThreadMessage:bn=>g6(bn),onCodexThreadRebound:({kandanThreadId:bn,oldCodexThreadId:An,newCodexThreadId:yt})=>{if(An!==void 0&&An!==yt){let fr=Xt.get(An),ng=Xi.get(An);fr!==void 0&&(Xt.delete(An),Xt.set(yt,fr)),ng!==void 0&&(Xi.delete(An),Xi.set(yt,ng)),Qi.clear(An)}let Du=Xe.rebindCodexThread(bn,yt);n("runner.codex_thread_rebind_propagated",{kandan_thread_id:bn,old_codex_thread_id:An??null,new_codex_thread_id:yt,registry_outcome:Du.outcome})},onLiveSourceSeqAccepted:Jo,onLiveSourceSeqSettled:N,...nr===void 0?{}:{cloudAgentTurn:nr},pipelinePersistDir:om(),enablePortForwardWatch:!0,initialForwardPorts:k,portForwardWatcher:YB({rootPid:J,start:e.portForwardWatcher,commanderBoundPids:g.commanderBoundPids,commanderBoundPorts:g.commanderBoundPorts}),suppressedForwardPorts:D,onForwardPortApproved:(bn,An)=>(R.add(bn),E(bn,{...An,agentProvider:"codex"}),V()),onForwardPortRevoked:bn=>(R.delete(bn),B(bn),V()),channelSession:{workspaceSlug:ke,channelSlug:an,kandanThreadId:en,rootSeq:X(x.rootSeq),codexThreadId:T,linzumiContext:x.linzumiContext,listenUser:nt,linzumiAgentSession:x.linzumiAgent!==void 0||e.threadProcess?.role==="thread"&&e.linzumiAgentMcpToken!==void 0,modelProvider:Ln.modelProvider,model:Ln.model,reasoningEffort:Ln.reasoningEffort,sandbox:Ln.sandbox,approvalPolicy:Ln.approvalPolicy,sandboxedApprovalNeverDefault:Ln.sandboxedApprovalNeverDefault,allowPortForwardingByDefault:Ln.allowPortForwardingByDefault}},log:n});return Xt.set(T,Vo),Xi.set(T,O),Qi.note(T,"attached"),jne(T,Vo),Xe.upsert({workspace:ke,channel:an,kandanThreadId:en,codexThreadId:T,cwd:C,agentProvider:"codex",control:vJ({workspaceSlug:ke,channelSlug:an,kandanThreadId:en,codexThreadId:T,cwd:C,rootSeq:X(x.rootSeq),runtimeSettings:Ln}),updatedAtMs:Date.now()}),O!==Zt&&O.onNotification(bn=>{Fw.value+=1;let An=bn.params??{};n("codex.notification",qT(bn.method,An)),zw(O).observeNotification(bn.method,An),D0(Vo,bn.method,An,n)}),Vo})();cp.set(T,gi);try{let nt=await gi;return nt===void 0&&Zh(T,new Error(`attach for codex thread ${T} resolved without a live session`)),nt}catch(nt){let Ln=nt instanceof Error?nt.message:String(nt);throw Qi.fail(T,Ln),Zh(T,nt instanceof Error?nt:new Error(Ln)),nt}finally{cp.delete(T)}},Kw=async(g,x,C)=>{if(Zt===void 0)throw new Error("cannot attach a thread session without a codex app-server connection");return await p6({control:g,cwd:x,codexThreadId:C,sessionCodex:Zt,portForwardWatcherRootPid:jr?.process.pid})},f6=g=>{let x=Nt(g.channel,g.kandanThreadId),C=xs(at(),g.channel,g.kandanThreadId),T=$r.initial(C),O=Te.get(g.kandanThreadId)??[],J=tm(T,O)??T,ke="";try{ke=kd(Ku(om(),lf({workspaceSlug:g.workspace,channelSlug:g.channel},g.kandanThreadId,Je)),"utf8")}catch{}return{pendingInboundSeqs:x.entries().map(an=>an.sourceSeq),ackedInboundSeqs:x.ackedEntries().map(an=>an.sourceSeq),inboundHighWaterSeq:x.highWaterSourceSeq(),appliedFloorSeq:J,outboxTurnSignals:F7(ke)}},Jne=g=>{try{return YP(f6(g),{nowMs:Date.now()}).unfinished}catch(x){return n("runner.resume_scan_inspect_failed",{thread_id:g.kandanThreadId,phase:"rehydration_retire_guard",message:x instanceof Error?x.message:String(x)}),!0}},m6=(async()=>{let g=Xe.list();if(g.length===0)return;let x=await Rq({records:g,nowMs:Date.now(),maxAgeMs:bk,pendingDurableRowCount:C=>Lg(Ku(om(),lf({workspaceSlug:C.workspace,channelSlug:C.channel},C.kandanThreadId,Je)),n).pendingEntries.length,hasUnfinishedWork:Jne,attach:async C=>{if(t.closePromise!==void 0)return n("session_registry.rehydrate_aborted_shutdown",{thread_id:C.kandanThreadId}),"failed";let T=zr(C.cwd,_e.value);return T.ok?await Kw(Gc(C),T.cwd,C.codexThreadId)!==void 0?"attached":"failed":(n("session_registry.rehydrate_cwd_rejected",{thread_id:C.kandanThreadId,cwd:C.cwd,reason:T.reason}),"retire")},retire:C=>Xe.remove(C.kandanThreadId),log:n});n("session_registry.rehydrate_complete",{records:g.length,rehydrated:x.rehydrated,retired_drained:x.retiredDrained,retired_stale:x.retiredStale,retired_unattachable:x.retiredUnattachable,kept_unfinished:x.keptUnfinished,failed:x.failed})})().catch(g=>{n("session_registry.rehydrate_failed",{message:g instanceof Error?g.message:String(g)})});t.actions.push(()=>m6);let Vw=async(g,x)=>{if(e.threadProcess?.role==="thread")return;let C=dm(g);if(C.type!=="ok"||C.provider!=="codex")return;let T=pn(g,"workspace"),O=pn(g,"channel"),J=pn(g,"threadId");if(T===void 0||O===void 0||J===void 0)return;let ke=$0(g);(g.modelProvider!==void 0||g.llmProxy!==void 0||g.linzumiAgent!==void 0)&&Uw.set(J,{...g.modelProvider===void 0?{}:{modelProvider:g.modelProvider},...g.llmProxy===void 0?{}:{llmProxy:g.llmProxy},...g.linzumiAgent===void 0?{}:{linzumiAgent:g.linzumiAgent}});let an=gJ(ke);if(an!==void 0)return{instanceId:Je,controlType:g.type,ok:!1,error:an,kandanThreadId:J,cwd:x};let en=ht.get(J);if(en!==void 0){if(R0(en)!=="dead")return{instanceId:Je,controlType:g.type,ok:!0,delegated:!0,threadProcess:"already_started",kandanThreadId:J,cwd:x};n("runner.thread_process_stale_entry_evicted",{kandanThreadId:J,codex_thread_id:g.type==="reconnect_thread"?h(g.codexThreadId)??null:null,prior_kind:en.kind,pid:en.kind==="running"?en.handle.processPid??null:null,control_type:g.type}),ht.get(J)===en&&ht.delete(J),vI(en).catch(()=>{})}let Cn=MJ(e.allowedCwds);Cn.missing.length>0&&n("runner.stale_allowed_cwd_roots_pruned",{kandanThreadId:J,control_type:g.type,pruned_roots:Cn.missing,remaining_root_count:Cn.existing.length}),re("thread_process_spawn",{kandanThreadId:J})&&js();let pr=Ez(mn,x);if(pr!==void 0)throw n("runner.cwd_stillbirth_circuit_open_start_refused",{kandanThreadId:J,cwd:x,control_type:g.type,consecutive_stillbirths:pr.count,last_stillbirth_at:pr.lastAt}),new Error($z(x,pr));let Dn=e.spawnThreadRunner??dEe,gi=PJ(e);n("runner.thread_process_starting",{kandanThreadId:J,cwd:x,readyTimeoutMs:gi});let nt=GRe({options:Cn.missing.length>0?{...e,allowedCwds:Cn.existing}:e,control:g,cwd:x,workspaceSlug:T,channelSlug:O,kandanThreadId:J});if(oa(nt)){let jn=await Yn(),er=ZPe(e.runnerId),Yi=await ZEe({dependencyStatusRef:c,connectTimeStatus:e.dependencyStatus,machineVmUnready:jn!==void 0&&!jn.ready,cwd:x});Yi.confirmation!=="not_needed"&&n("runner.vm_preflight_host_codex_reverified",{kandanThreadId:J,confirmed_available:Yi.hostCodexAvailable,probe_failure:Yi.probedCodex?.failure??null,probe_detail:Yi.probedCodex?.failureDetail??null});let nr=HEe({vmRouted:!0,readiness:jn,hostCodexAvailable:Yi.hostCodexAvailable,hostCodexProbeDetail:Yi.probedCodex?.failureDetail,explicitLocalVmOptIn:nt.executionMode==="local_vm",freshStart:g.type==="start_instance",lastNoticedReadinessFingerprint:QPe(er,n)});if(nr.route==="vm"&&jn?.ready===!0&&AB(er,void 0,n),nr.route==="host_fallback"){if(nt={...nt,executionMode:"raw"},n("runner.local_vm_unready_host_fallback",{kandanThreadId:J,control_type:g.type,blockers:[...nr.blockers],notice_posted:nr.postThreadNotice,readiness_fingerprint:nr.readinessFingerprint}),nr.postThreadNotice)try{await Se.push(Pe,"session:post_thread_message",{workspace:T,channel:O,thread_id:J,body:nr.notice,client_message_id:`local-vm-host-fallback-${J}`,payload:{metadata:{local_codex_runner:{event_type:"local_vm_host_fallback_notice"}}}}),AB(er,nr.readinessFingerprint,n)}catch(Vo){n("runner.local_vm_unready_notice_post_failed",{kandanThreadId:J,message:Vo instanceof Error?Vo.message:String(Vo)})}}else if(nr.route==="fail_loud")throw n("runner.local_vm_unready_start_refused",{kandanThreadId:J,control_type:g.type,blockers:[...nr.blockers]}),new Error(nr.reason)}let Ln={kind:"starting",promise:hEe(Dn(nt),{kandanThreadId:J,timeoutMs:gi})};ht.set(J,Ln);let Yt;try{Yt=await Ln.promise}catch(jn){if(ht.get(J)===Ln&&ht.delete(J),n("runner.thread_process_start_failed",{kandanThreadId:J,cwd:x,message:jn instanceof Error?jn.message:String(jn)}),re("thread_process_start_failed",{kandanThreadId:J})&&js(),tJ(jn)){let er=Iz(mn,x,jn,Date.now());n("runner.cwd_stillbirth_recorded",{kandanThreadId:J,cwd:x,consecutive_stillbirths:er.count,circuit_open:er.tripped})}throw jn}Rz(mn,x)&&n("runner.cwd_stillbirth_counter_cleared",{kandanThreadId:J,cwd:x});for(let jn of Yt.commanderManagedPorts??[])z(jn.port,{processName:jn.processName,processIconKey:jn.processIconKey,agentProvider:jn.agentProvider});try{let jn=Yt.codex,er=B0(()=>jn.close());Yt.onExit?.(er),Yt.onExit?.(()=>{t.closePromise===void 0&&zw(jn).failActiveTurns("codex thread worker exited")}),Yt.onExit?.(()=>{Bo.clearThread(xs(at(),O,J))});let nr={kind:"running",handle:{...Yt,close:async()=>{er(),await Yt.close()}}};ht.get(J)===Ln&&ht.set(J,nr),Yt.onExit?.(()=>{ht.get(J)===nr&&ht.delete(J)}),Yt.onExit?.(()=>{if(t.closePromise===void 0)for(let[An,yt]of Array.from(Xi.entries()))yt===jn&&Bw(An,jn)}),n("runner.thread_process_started",{kandanThreadId:J,cwd:x});let Vo=(An,yt,Du)=>p6({control:An,cwd:yt,codexThreadId:Du,sessionCodex:jn,portForwardWatcherRootPid:Yt.processPid,commanderBoundPids:(Yt.commanderManagedPorts??[]).flatMap(fr=>fr.pid===void 0?[]:[fr.pid]),commanderBoundPorts:(Yt.commanderManagedPorts??[]).map(fr=>fr.port)}),bn=async An=>{if(An!==void 0&&An.ok!==!1)return An;let yt=ht.get(J);return(yt===Ln||yt?.kind==="running")&&ht.delete(J),await(yt?.kind==="running"?yt.handle.close():Yt.close()).catch(()=>{}),An};switch(g.type){case"start_instance":{let An=await xJ({codex:jn,kandan:Se,topic:Pe,control:g,options:e,instanceId:Je,cwd:x,matchedRoot:x,onStartedThread:Vo,setStartupStage:()=>{},setStartedCodexThreadId:()=>{}});return await bn(An.controlResponse)}case"reconnect_thread":return await bn(await zB(jn,Se,Pe,Je,e,m(),_e,be,Re,ro,Qh,lp,o6,jw,g,u6,a,Vo,void 0,void 0,An=>ue.current(An),Jo,Cu,Tu,ne))}}catch(jn){let er=ht.get(J);throw(er===Ln||er?.kind==="running")&&ht.delete(J),await(er?.kind==="running"?er.handle.close():Yt.close()).catch(()=>{}),jn}},pp=new Map,Ww=new Map,h6=async(g,x,C)=>{try{n("runner.spawn_on_miss_replay_on_sibling",{kandanThreadId:g.threadId??null,codex_thread_id:x.codexThreadId,seq:g.seq});let T=await qw({codexThreadId:x.codexThreadId,kandanThreadId:g.threadId,wait:Jw(x.codexThreadId,{waitForSiblingSpawn:!0})});if(T===void 0)throw new Error(`spawn-on-miss could not resolve a live session for codex thread ${x.codexThreadId}`);let O=T.currentKandanThreadId();if(g.threadId!==void 0&&O!==void 0&&O!==g.threadId)throw new ed({codexThreadId:x.codexThreadId,ownerKandanThreadId:O,requestingKandanThreadId:g.threadId});return await T.startThreadMessageTurn({seq:g.seq,body:g.body,actorSlug:g.actorSlug,actorUserId:g.actorUserId,attachments:g.attachments,boundStartTimeout:!0}),"dispatched"}catch(T){return n("runner.spawn_on_miss_failed",{kandanThreadId:g.threadId??null,codex_thread_id:x.codexThreadId,seq:g.seq,message:T instanceof Error?T.message:String(T)}),await Ls(C,"failed",`could not resume the thread's coding session: ${T instanceof Error?T.message:String(T)}`,x.codexThreadId,{failureClass:"resume_transient"}),"transient_failed"}},g6=async g=>{let x=g.threadId;if(!sm(e)||x===void 0)return"ignored";let C=`${x}:${g.seq}`,T=Ww.get(C);if(T!==void 0){let J=await T;return J==="spawned"?"spawned_deduped":J}let O=Kne(g,x);Ww.set(C,O);try{return await O}finally{Ww.delete(C)}},Kne=async(g,x)=>{let C=ht.get(x);if((C===void 0?void 0:R0(C))==="live")return"ignored";let O=Xe.list().find(Cn=>Cn.kandanThreadId===x);if(O===void 0){let Cn=Cr();if(Cn===void 0||!Gt())return"ignored";let Dn=Nt(Cn,x).enqueue(g.seq,g.localRunnerEventType===void 0?"live":"replay",$u(g),Date.now());return n("runner.spawn_on_miss_enqueued_without_local_record",{kandanThreadId:x,channel:Cn,seq:g.seq,enqueued:Dn.accepted}),await ete(Cn,g),"spawned"}let J=O.channel,ke=xs(at(),J,x),an=Nt(J,x);if(!Gt()){let Cn=an.enqueue(g.seq,g.localRunnerEventType===void 0?"live":"replay",$u(g),Date.now());return n("runner.spawn_on_miss_drain_in_progress",{kandanThreadId:x,seq:g.seq,enqueued:Cn.accepted}),"spawned"}return await SB({queue:an,store:$r,lock:oe,leases:ue,threadId:x,watermarkKey:ke,sourceSeq:g.seq,kind:g.localRunnerEventType===void 0?"live":"replay",payload:$u(g),leaseEpoch:_B(g),dispatch:async(Cn,pr)=>{let Dn=vv(pr);return Dn===void 0?(n("runner.spawn_on_miss_bad_payload",{kandanThreadId:x,seq:Cn}),"permanent_failed"):await w6(Dn,O)},serverRows:Te.get(x)??[],onDeadLetter:S6(O),inFlightGuard:Bo,log:n})==="ignored"?"ignored":"spawned"},Xh=async(g,x=[])=>{if(!Gt())return;let C=g.kandanThreadId,T=g.channel,O=xs(at(),T,C),J=Nt(T,C);await kB({queue:J,store:$r,lock:oe,threadId:C,watermarkKey:O,serverRows:x,log:n,onlyDispatchUnattempted:x.length===0,onDeadLetter:S6(g),inFlightGuard:Bo,onTornTailUnrecoverable:async ke=>{let an=Gc(g);await Ls(an,"failed","a message may have been lost during an unexpected shutdown (power loss). Please resend your last message to continue this job.",g.codexThreadId,{failureClass:"resume_torn_tail"}),n("runner.inbound_torn_tail_resend_published",{kandanThreadId:ke})},dispatch:async(ke,an)=>{let en=vv(an);return en===void 0?(n("runner.inbound_drain_bad_payload",{kandanThreadId:C,seq:ke}),"permanent_failed"):await w6(en,g)}})},Vne=async(g,x)=>{if(x!==void 0&&x.ok===!1||!Gt())return;let C=Xe.list().find(O=>O.kandanThreadId===g);if(C===void 0)return;let T=Nt(C.channel,g);T.entries().length!==0&&(n("runner.inbound_drain_after_spawn",{kandanThreadId:g,channel:C.channel,pending:T.entries().length}),await Xh(C,Te.get(g)??[]).catch(O=>{n("runner.inbound_drain_after_spawn_failed",{kandanThreadId:g,message:O instanceof Error?O.message:String(O)})}))},Wne=async(g,x)=>{let C=await Vw(g,x),T=pn(g,"threadId");return T!==void 0&&await Vne(T,C),g.type==="reconnect_thread"&&mI(C)&&C!==void 0?await Hne(g,C):C},Hne=async(g,x)=>{let C=ao(g.workDescription),T=X(g.sourceSeq)??X(g.rootSeq),O=pn(g,"threadId"),J=pn(g,"channel"),ke=h(g.codexThreadId);if(C===void 0||T===void 0||O===void 0||ke===void 0)return x;if(J===void 0)n("runner.reconnect_follow_up_missing_channel",{kandanThreadId:O,codex_thread_id:ke,source_seq:T});else if(ne({channel:J,threadId:O,sourceSeq:T}))return n("runner.reconnect_follow_up_already_applied",{kandanThreadId:O,codex_thread_id:ke,source_seq:T}),{...x,followUp:"duplicate",sourceSeq:T};try{let an=await qw({codexThreadId:ke,kandanThreadId:O,wait:Jw(ke,{waitForSiblingSpawn:!0})});if(an===void 0)throw new Error(`no live session attached for codex thread ${ke}`);let en=an.currentKandanThreadId();if(en!==void 0&&en!==O)throw new ed({codexThreadId:ke,ownerKandanThreadId:en,requestingKandanThreadId:O});let Cn=go(e.token),pr=await an.startThreadMessageTurn({seq:T,body:C,actorSlug:Cn.actorUsername,actorUserId:Cn.actorUserId,attachments:Ho(ze(g.attachments)??[]),boundStartTimeout:!0,dedupBySeq:!0});return n("runner.reconnect_follow_up_routed_to_live_worker",{kandanThreadId:O,codex_thread_id:ke,source_seq:T,outcome:pr}),{...x,followUp:pr,sourceSeq:T}}catch(an){let en=an instanceof Error?an.message:String(an);return n("runner.reconnect_follow_up_route_failed",{kandanThreadId:O,codex_thread_id:ke,source_seq:T,message:en}),{...x,followUp:"route_failed",followUpError:en,sourceSeq:T}}},y6=g=>{let x=new Map,C=$7(g);for(let T of C){T.leaseEpoch!==void 0&&ue.adopt(T.threadId,T.leaseEpoch)&&n("runner.resume_reconcile_lease_adopted",{kandanThreadId:T.threadId,leaseEpoch:T.leaseEpoch});let O=L7(T);x.set(T.threadId,O),Te.set(T.threadId,O)}return C.length>0&&n("runner.resume_reconcile_consumed",{threadCount:C.length}),x},x6=async()=>{let g=GP(),x;try{x=dJ(g).filter(O=>O.endsWith(".log"))}catch(O){if(O?.code==="ENOENT")return;n("runner.inbound_orphan_scan_failed",{message:O instanceof Error?O.message:String(O)});return}let C=at(),T=new Set(Xe.list().map(O=>ZP(C,O.channel,O.kandanThreadId)));for(let O of x){let J=bt(g,O);if(!T.has(J))try{let ke=HP(J,n),an=ke.entries();if(an.length===0)continue;for(let en of an)ke.deadLetter(en.sourceSeq);ke.compact(),n("runner.inbound_orphan_dead_lettered",{path:J,strandedCount:an.length,strandedSeqs:an.map(en=>en.sourceSeq)})}catch(ke){n("runner.inbound_orphan_drain_failed",{path:J,message:ke instanceof Error?ke.message:String(ke)})}}},_6=async g=>{if(!Gt())return;let x=Xe.list();await Promise.all(x.map(C=>Xh(C,g?.get(C.kandanThreadId)??[]).catch(T=>{n("runner.inbound_drain_failed",{kandanThreadId:C.kandanThreadId,message:T instanceof Error?T.message:String(T)})}))),await x6()},Gne=g=>g==="accepted_never_framed"?"this message was accepted but a runner restart killed it before it ran. Resend it (or press retry) to run it now.":"interrupted by a runner restart before it finished. Resend your last message (or press retry) to continue this job.",Zne=async g=>{let x=Date.now()+g;for(;;){if(t.closePromise!==void 0)return;let C=x-Date.now();if(C<=0)return;await new Promise(T=>setTimeout(T,Math.min(500,C)))}},Qne=async()=>{!Gt()||t.closePromise!==void 0||(await q7({records:Xe.list(),threadId:g=>g.kandanThreadId,inspect:f6,resumePendingInbound:async g=>(await Xh(g,Te.get(g.kandanThreadId)??[]),Nt(g.channel,g.kandanThreadId).entries().length===0?"clear":"retry"),respawnWorker:async g=>{if(t.closePromise!==void 0)return!1;let x=zr(g.cwd,_e.value);return x.ok?await Kw(Gc(g),x.cwd,g.codexThreadId)!==void 0:(n("runner.resume_respawn_cwd_rejected",{thread_id:g.kandanThreadId,cwd:g.cwd,reason:x.reason}),!1)},seqInFlight:(g,x)=>Bo.has(xs(at(),g.channel,g.kandanThreadId),x),publishInterruptedTurnState:async(g,x,C)=>{await Ls({...Gc(g),sourceSeq:x},"failed",Gne(C),g.codexThreadId,{failureClass:"resurrection_interrupted"})},shuttingDown:()=>t.closePromise!==void 0||!Gt(),sleep:Zne,log:n}),await x6())};y6(A(te)?.resume_reconcile);let Xne=m6.then(()=>Qne()).catch(g=>{n("runner.inbound_boot_drain_failed",{message:g instanceof Error?g.message:String(g)})});t.actions.push(()=>Xne),Se.onReconnect(g=>{let x=g.get(Pe),C=y6(x===void 0?void 0:x.resume_reconcile);_6(C).catch(T=>{n("runner.inbound_rejoin_drain_failed",{message:T instanceof Error?T.message:String(T)})})});let Oa=new Map,b6=(g,x)=>`${g}:${x}`,Yne={windowMs:Sf(process.env),recordWedge:(g,x)=>{let C=b6(g,x),T=(Oa.get(C)??0)+1;if(Oa.delete(C),Oa.size>=256){let O=Oa.keys().next().value;O!==void 0&&Oa.delete(O)}return Oa.set(C,T),T},clear:(g,x)=>{Oa.delete(b6(g,x))},killAndRespawn:async({threadId:g,claudeSessionId:x,reason:C})=>{let T=_s(ro,[x],[g]);if(T!==void 0){n("claude_code.dispatch_supervisor_killing_session",{linzumi_thread_id:g,claude_session_id:x,reason:C}),T.abortController.abort(new Error(C));let J=T.sessionWork();J!==void 0&&await Promise.race([J.catch(()=>{}),new Promise(ke=>{setTimeout(ke,1e4).unref?.()})])}let O=Xe.list().find(J=>J.kandanThreadId===g);return O===void 0?(n("claude_code.dispatch_supervisor_no_registry_record",{linzumi_thread_id:g,claude_session_id:x}),"no_replay_path"):(await Xh(O,Te.get(g)??[]),"respawn_dispatched")}},w6=async(g,x)=>{let C=x.kandanThreadId,T=Gc(x),O=Uw.get(C),J={...T,sourceSeq:g.seq,workDescription:g.body,...g.attachments.length===0?{}:{attachments:fg(g.attachments)},...O?.modelProvider===void 0?{}:{modelProvider:O.modelProvider},...O?.llmProxy===void 0?{}:{llmProxy:O.llmProxy},...O?.linzumiAgent===void 0?{}:{linzumiAgent:O.linzumiAgent}},ke=zr(x.cwd,_e.value);if(!ke.ok)return n("runner.spawn_on_miss_cwd_rejected",{kandanThreadId:C,cwd:x.cwd,reason:ke.reason,seq:g.seq}),await Ls(J,"failed",`could not resume the thread's coding session: working directory ${x.cwd} is not an allowed root (${ke.reason})`,x.codexThreadId,{failureClass:"resume_cwd_not_allowed"}),"permanent_failed";let an=ke.cwd,en=pp.get(C);if(en!==void 0)return n("runner.spawn_on_miss_resuming",{kandanThreadId:C,codex_thread_id:x.codexThreadId,provider_session_key:x.codexThreadId,seq:g.seq,decision:"await_in_flight_spawn"}),await en==="no_session"?(await Ls(J,"failed","could not resume the thread's coding session: no live session after spawn",x.codexThreadId,{failureClass:"resume_transient"}),"transient_failed"):await h6(g,x,J);n("runner.spawn_on_miss_resuming",{kandanThreadId:C,codex_thread_id:x.codexThreadId,provider_session_key:x.codexThreadId,seq:g.seq,decision:"spawned_resume"}),Qi.note(x.codexThreadId,"spawn_requested");let Cn=()=>{},pr=new Promise(Dn=>{Cn=Dn});pp.set(C,pr);try{let Dn=await Vw(J,an);if(mI(Dn))return Cn("spawned"),await h6(g,x,J);if(Dn===void 0||Dn.ok===!1){Cn("no_session");let gi=Dn!==void 0&&typeof Dn.error=="string"?Dn.error:"the thread could not be resumed (no resumable codex session)";return Qi.fail(x.codexThreadId,gi),Zh(x.codexThreadId,new Error(gi)),n("runner.spawn_on_miss_failed",{kandanThreadId:C,codex_thread_id:x.codexThreadId,seq:g.seq,message:gi}),await Ls(J,"failed",`could not resume the thread's coding session: ${gi}`,x.codexThreadId,{failureClass:"resume_transient"}),"transient_failed"}return Cn("spawned"),"dispatched"}catch(Dn){return Cn("no_session"),Qi.fail(x.codexThreadId,Dn instanceof Error?Dn.message:String(Dn)),Zh(x.codexThreadId,Dn instanceof Error?Dn:new Error(String(Dn))),n("runner.spawn_on_miss_failed",{kandanThreadId:C,codex_thread_id:x.codexThreadId,seq:g.seq,message:Dn instanceof Error?Dn.message:String(Dn)}),await Ls(J,"failed",`could not resume the thread's coding session: ${Dn instanceof Error?Dn.message:String(Dn)}`,x.codexThreadId,{failureClass:"resume_transient"}),"transient_failed"}finally{Cn("spawned"),pp.get(C)===pr&&pp.delete(C)}},Ls=async(g,x,C,T,O={})=>{let J=ra(g,x,C,{instanceId:Je,codexThreadId:T,...Uu(O.failureClass)});if(J!==void 0)try{await Se.push(Pe,"message_state",J)}catch(ke){n("runner.spawn_on_miss_state_push_failed",{thread_id:pn(g,"threadId")??null,status:x,message:ke instanceof Error?ke.message:String(ke)})}},v6=async(g,x)=>{let{reason:C,failureClass:T}=rEe(x),O=ra(g,"failed",C,{instanceId:Je,...Uu(T)});if(O===void 0){n("runner.stillborn_worker_failed_state_unpublishable",{thread_id:pn(g,"threadId")??null,control_type:g.type,reason:C,cause:"missing_source_seq"});return}try{await Se.push(Pe,"message_state",O),n("runner.stillborn_worker_failed_state_published",{thread_id:pn(g,"threadId")??null,control_type:g.type,reason:C})}catch(J){n("runner.stillborn_worker_failed_state_push_failed",{thread_id:pn(g,"threadId")??null,control_type:g.type,message:J instanceof Error?J.message:String(J)})}},ete=async(g,x)=>{if(x.threadId===void 0)return;let C={workspace:at(),channel:g,thread_id:x.threadId,instance_id:Je,seq:x.seq,status:"queued",reason:"queued for durable resume"};try{await Se.push(Pe,"message_state",C)}catch(T){n("runner.spawn_on_miss_state_push_failed",{thread_id:x.threadId,status:"queued",message:T instanceof Error?T.message:String(T)})}},Yh=[],Hw=H7(process.env),nte=async g=>{try{let x=pn(g,"threadId"),C=NRe({control:g,hasRegistryRecord:x!==void 0&&Xe.list().some(J=>J.kandanThreadId===x),runtimeSettings:rl(e,g),identity:go(e.token),nowMs:Date.now()});if(C===void 0)return!1;let T=ra(g,"queued",V7,{instanceId:Je,...C.codexThreadId===void 0?{}:{codexThreadId:C.codexThreadId}}),O=await URe({plan:C,queuedStatePayload:T,queue:Nt(C.channel,C.threadId),upsertRegistryRecord:J=>Xe.upsert(J),pushQueuedState:async J=>{await Se.push(Pe,"message_state",J)},trackHeld:J=>{Yh.push({control:g,...J})},log:n,nowMs:Date.now()});return O.held?(n("runner.update_restart_drain_start_held",{control_type:g.type,thread_id:C.threadId,source_seq:C.sourceSeq,enqueued:O.enqueuedFresh,registry_record_synthesized:C.registryRecord!==void 0,max_wait_ms:Hw}),!0):!1}catch(x){return n("runner.update_restart_drain_hold_failed",{control_type:g.type,thread_id:pn(g,"threadId")??null,message:x instanceof Error?x.message:String(x)}),!1}},tte=async()=>{let g=Date.now();for(let x of[...Yh]){if(g-x.heldAtMs<Hw)continue;let C=Yh.indexOf(x);C!==-1&&Yh.splice(C,1);let T=Nt(x.channel,x.threadId);T.entries().find(J=>J.sourceSeq===x.sourceSeq)!==void 0&&(T.deadLetter(x.sourceSeq),n("runner.update_restart_drain_held_turn_expired",{thread_id:x.threadId,source_seq:x.sourceSeq,held_for_ms:g-x.heldAtMs,max_wait_ms:Hw}),await v6(x.control,new Error(tI)))}},fp,rte=()=>{fp===void 0&&(fp=setInterval(()=>{tte().catch(g=>{n("runner.update_restart_drain_held_sweep_failed",{message:g instanceof Error?g.message:String(g)})})},W7))};t.actions.push(()=>{fp!==void 0&&(clearInterval(fp),fp=void 0)});let S6=g=>async({sourceSeq:x,reason:C,attempts:T,alreadyPublished:O})=>{n("runner.inbound_dead_lettered",{kandanThreadId:g.kandanThreadId,seq:x,reason:C,attempts:T,alreadyPublished:O}),!O&&await Ls(Gc(g),"failed",qRe(C),g.codexThreadId,{failureClass:zRe(C)})},Gw=()=>{if(Qt!==void 0)return!1;for(let g of Ru.values())if(g.activeTurnCount()>0)return!1;for(let g of ro.values())if(g.hasActiveTurn())return!1;for(let g of ht.values())if(g.kind==="starting")return!1;return!(pp.size>0||Re.size>0)},ote=()=>{if(!Gw())return!1;for(let g of ye.values())if(g.entries().length>0)return!1;return!0},k6=F3(process.env),Zw=q3({currentVersion:jt,strategy:$3({env:process.env,entrypointPath:process.argv[1]}),isIdle:ote,...k6===void 0?{}:{drain:{timing:k6,hooks:{begin:()=>{et=!0},end:({redispatchHeldWork:g})=>{et=!1,g&&_6().catch(x=>{n("runner.update_drain_requeue_failed",{message:x instanceof Error?x.message:String(x)})})},isQuiescent:Gw,isEligible:()=>Qt===void 0}}},performRestart:j3({currentVersion:jt,argv:process.argv.slice(2),cwd:e.cwd,close:r,exit:g=>process.exit(g),log:n}),log:n,restartAttemptStore:v0(L3())});t.actions.push(()=>Zw.stop()),i.beginDraining=()=>{if(d?.outgoingDrainActive()===!0){n("runner.generation_outgoing_gate_open",{pinned:d.outgoingPins.size()});return}At=!0,et=!0,rte()},i.onTurnCompleted=g=>{if(!(d===void 0||!d.outgoingDrainActive())&&d.outgoingPins.release(g.threadId)){let x=d.sendToSupervisor({type:"generation_pin_released",epoch:d.epoch,threadId:g.threadId});n("runner.generation_pin_released_sent",{threadId:g.threadId,remaining:d.outgoingPins.size(),delivered:x})}},i.isQuiescent=Gw,i.isWaitEligible=()=>Qt===void 0,i.inFlightTurns=()=>[...Array.from(Ru.values()).flatMap(g=>g.activeTurns().map(x=>({threadId:x.threadId,turnId:x.turnId,engine:"codex"}))),...Array.from(ro.values()).filter(g=>g.hasActiveTurn()).map(g=>({threadId:g.threadId,engine:"claude_code"}))],i.lastActivityAtMs=()=>{let g;for(let x of Ru.values()){let C=x.lastActivityAtMs();C!==void 0&&(g===void 0||C>g)&&(g=C)}for(let x of ro.values()){let C=x.lastSdkActivityMs();C>0&&(g===void 0||C>g)&&(g=C)}return g},i.publishForcedKillTerminalStates=g=>{n("runner.drain_forced_kill_states_publishing",{turn_count:g.length,thread_ids:g.map(T=>T.threadId)});let x=new Set(g.filter(T=>T.engine==="codex").map(T=>T.threadId)),C=new Set([Qt,...Xt.values()].filter(T=>T!==void 0).flatMap(T=>T.pendingApprovalTurnIds()));for(let T of Ru.values())T.activeTurns().some(O=>x.has(O.threadId))&&T.failActiveTurns(O=>C.has(O.turnId)?X7:Q7);return Promise.resolve()};let ite=()=>({instanceId:Je,clientId:Da,...Pt===void 0?{}:{codexUrl:Pt},cwd:e.cwd,hostname:sp,workspace:Br(e)??null,channel:e.channelSession?.channelSlug??null,threadId:Qt?.currentKandanThreadId()??null,codexThreadId:Qt?.currentCodexThreadId()??null,codexThreads:s6.value,model:Iu.model??null,reasoningEffort:Iu.reasoningEffort??null,allowPortForwardingByDefault:Iu.allowPortForwardingByDefault??null,fast:e.fast??!1,capabilities:V(),updateNudge:Zw.status()??null}),js=()=>Se.push(Pe,"heartbeat",ite()).then(()=>{Jh.recordServerAck();for(let g of ro.values())g.resumeOutbox()}).catch(g=>{n("kandan.heartbeat_push_failed",{message:g instanceof Error?g.message:String(g)})}),ste=setInterval(()=>{Jh.check(),b(()=>{js()}),js()},15e3);if(t.actions.push(()=>clearInterval(ste)),Se.onReconnect(()=>js().then(()=>{})),js(),e.threadProcess?.role!=="thread"&&cx()){let g=BU(JU({kandanUrl:e.kandanUrl,token:e.token,computeKey:Dx(e.kandanUrl),query:cT({kandanUrl:e.kandanUrl,token:e.token}),log:x=>n("vm.golden_gc",{line:x})}));t.actions.push(g)}let C6=C8(Se,Pe,()=>Array.from(R));t.actions.push(()=>C6.close());let Qw=Qt?.currentCodexThreadId();if(e.launchTui&&Zt===void 0)throw new Error("Codex TUI requires a Codex app-server connection");e.launchTui&&Zt!==void 0&&Qw!==void 0&&await YIe(Zt,Qw);let T6=e.launchTui&&Pt!==void 0?WIe(e.codexBin,Pt,e.cwd,Qw,e.channelSession,e.fast):void 0;T6!==void 0&&t.actions.push(()=>{T6.kill("SIGINT")});let Xw=Zt===void 0?void 0:zw(Zt);if(Zt?.onNotification(g=>{Fw.value+=1;let x=g.params??{},C=qT(g.method,x);Qt===void 0&&Se.push(Pe,"codex_notification",{instanceId:Je,seq:Fw.value,method:g.method,params:x,metadata:C.metadata,receivedAt:new Date().toISOString()}).catch(T=>{n("kandan.codex_notification_push_failed",{message:T instanceof Error?T.message:String(T)})}),n("codex.notification",C),Xw?.observeNotification(g.method,x),D0(Qt,g.method,x,n);for(let T of Xt.values())D0(T,g.method,x,n)}),Xw!==void 0){let g={handled:!1},x=C=>{if(t.closePromise===void 0&&(n("codex.app_server_connection_lost",{cause:C}),Xw.failActiveTurns(C),jr?.stop(),i6&&!g.handled)){g.handled=!0;let T=EIe(IIe($B(e.runnerId),en=>{n("runner.app_server_exit_loop_stamp_write_failed",{message:en,statePath:$B(e.runnerId)}),console.error(`Warning: could not persist the app-server crash-loop stamp (${en}); the exit-code-${hI} give-up bound cannot take effect across restarts until the state path is writable.`)}),Date.now()),O=T.crashLoop?hI:75,J=RIe(e.cwd),ke=J===void 0?"":` Likely trigger: ${J}.`;if(T.crashLoop){let en=e.logFile??ug();n("runner.app_server_crash_loop_gave_up",{cause:C,exitsInWindow:T.count,windowMs:hJ,exitCode:O,cwd_missing_diagnosis:J??null}),console.error(`The Codex app-server has died ${T.count} times in rapid succession (latest cause: ${C}).${ke} Restarting the runner is not fixing it, so this exit uses code ${hI} (instead of the restart-requesting 75) to stop the crash loop. Diagnose before reconnecting: the runner log is at ${en} and the CLI audit log at ${xv()} (look for the app-server's exit reason/stderr). Once resolved, run \`linzumi connect\` to reconnect.`)}else console.error(`Codex app-server connection was lost (${C}); exiting so a fresh runner can relaunch it.${ke} Run \`linzumi connect\` to reconnect.`);let an=[...Qt!==void 0?[Qt]:[],...Xt.values()].map(en=>en.close().catch(Cn=>{n("codex.app_server_lost_session_drain_failed",{message:Cn instanceof Error?Cn.message:String(Cn)})}));TIe({pushes:[...c6,...an],exit:()=>process.exit(O),safetyCapMs:5e3})}};Zt?.onClose?.(C=>x(C.message)),jr?.process.once("exit",(C,T)=>x(`codex app-server process exited (${C??T??"unknown"})`))}let ate=g=>{let x=Dx(e.kandanUrl),C=g.cwd!==void 0&&g.cwd.trim()!==""?g.cwd:e.cwd;if(KEe(C)){let O=`cwd_dangerous: golden build refused - resolved build cwd ${JSON.stringify(C)} is not a safe project directory (empty, filesystem root, or non-absolute). Re-run from the project's repository checkout.`;return n("vm.golden_build_failed",{runnerId:e.runnerId,goldenImagePublicId:g.goldenImagePublicId,projectPublicId:g.projectPublicId??null,computeKey:x,cwdDangerous:!0,failureReason:O}),Se.push(Pe,"golden_image_build_result",{golden_image_public_id:g.goldenImagePublicId,build_claim_token:g.buildClaimToken,project_public_id:g.projectPublicId??null,status:"failed",checksum:null,size_bytes:null,artifact_ref:null,source_commits:{},lockfile_hashes:{},toolchain_versions:{},compute_key:x,failure_reason:O})}n("vm.golden_build_started",{runnerId:e.runnerId,goldenImagePublicId:g.goldenImagePublicId,projectPublicId:g.projectPublicId??null,computeKey:x,sourceThreadId:g.sourceThreadId??null,cwd:C});try{fN(dT({projectPublicId:g.projectPublicId??void 0,computeKey:x,cwd:C}))}catch(O){n("vm.golden_build_register_failed",{goldenImagePublicId:g.goldenImagePublicId,message:O instanceof Error?O.message:String(O)})}let T=g.sourceThreadId===void 0?void 0:{threadId:g.sourceThreadId,sourceMachineName:lx({cwd:C,kandanThreadId:g.sourceThreadId})};return Y5({cwd:C,projectPublicId:g.projectPublicId??void 0,computeKey:x,name:g.name,...T===void 0?{}:{sourceThread:T},log:O=>n("vm.golden_build",{line:O})}).then(O=>(n("vm.golden_build_ready",{runnerId:e.runnerId,goldenImagePublicId:g.goldenImagePublicId,checksum:O.checksum,sizeBytes:O.sizeBytes,artifactRef:O.artifactRef,artifactKind:O.artifactKind,snapshotFallbackReason:O.snapshotFallbackReason??null}),Se.push(Pe,"golden_image_build_result",{golden_image_public_id:g.goldenImagePublicId,build_claim_token:g.buildClaimToken,project_public_id:g.projectPublicId??null,status:"ready",checksum:O.checksum,size_bytes:O.sizeBytes,artifact_ref:O.artifactRef,artifact_kind:O.artifactKind,source_commits:O.sourceCommits,lockfile_hashes:O.lockfileHashes,toolchain_versions:O.toolchainVersions,compute_key:x,failure_reason:null,metadata:O.snapshotFallbackReason===void 0?{}:{snapshot_fallback_reason:O.snapshotFallbackReason}}))).catch(O=>{let J=O instanceof Ec||O instanceof Error?O.message:String(O);return n("vm.golden_build_failed",{runnerId:e.runnerId,goldenImagePublicId:g.goldenImagePublicId,captureUnavailable:O instanceof Ec,failureReason:J}),Se.push(Pe,"golden_image_build_result",{golden_image_public_id:g.goldenImagePublicId,build_claim_token:g.buildClaimToken,project_public_id:g.projectPublicId??null,status:"failed",checksum:null,size_bytes:null,artifact_ref:null,source_commits:{},lockfile_hashes:{},toolchain_versions:{},compute_key:x,failure_reason:J})}).catch(O=>{throw n("vm.golden_build_result_push_failed",{goldenImagePublicId:g.goldenImagePublicId,message:O instanceof Error?O.message:String(O)}),O})},dte=g=>{if(n("kandan.control",{control:g}),a?.record("kandan","control.received",{controlType:g.type,control:g}),!_Ie(e,g)&&!bIe(e,g,lp)){let T=ti(g)??null,O=e.threadProcess?.kandanThreadId??null;n("kandan.control_ignored",{reason:"thread_process_mismatch",controlType:g.type,controlThreadId:T,threadProcessId:O}),a?.record("kandan","control.ignored",{reason:"thread_process_mismatch",controlType:g.type,controlThreadId:T,threadProcessId:O});return}if(g.type==="replace_runner"){n("runner.replaced",{runnerId:e.runnerId,reason:g.reason,replacementRunnerId:g.replacementRunnerId,replacementVersion:g.replacementVersion}),r().catch(T=>{n("runner.replace_close_failed",{message:T instanceof Error?T.message:String(T)})});return}if(g.type==="update_available"){Zw.handleUpdateAvailable(g);return}let x=vIe(g);if(x!==void 0)return ate(x);if(!hIe(g,Je)){n("kandan.control_ignored",{reason:"instance_id_mismatch",instanceId:Je,controlInstanceId:gIe(g),controlType:g.type});return}if(S8(g)){v8(g,Array.from(R)).then(T=>(n("kandan.forward_response",{requestId:g.requestId,port:g.port,path:g.path,status:T.status,ok:T.ok,location:GIe(T.headers,"location")}),Se.push(Pe,"forward:http_response",T))).catch(T=>Se.push(Pe,"forward:http_response",{requestId:g.requestId,ok:!1,error:T instanceof Error?T.message:String(T)})).catch(T=>{n("kandan.forward_response_push_failed",{message:T instanceof Error?T.message:String(T)})});return}if(k8(g)){C6.handle(g);return}if(D8(g)){A8(g,{codeServerBin:e.codeServerBin,editorRuntime:e.editorRuntime,allowedCwds:_e.value,currentState:pe.value,browserBaseUrl:g.browserBaseUrl??process.env.KANDAN_LOCAL_RUNNER_PUBLIC_BASE_URL,runnerId:e.runnerId,platform:e.localEditorPlatform}).then(T=>{if(T.ok){Y.value+=1;let O=Y.value,J=pe.value.status==="running"?[pe.value.port,...pe.value.collaboration===void 0?[]:[pe.value.collaboration.serverPort],...n6("editor_restarted")]:[];pe.value.status==="running"&&(R.delete(pe.value.port),P.delete(pe.value.port),pe.value.collaboration!==void 0&&(R.delete(pe.value.collaboration.serverPort),P.delete(pe.value.collaboration.serverPort))),pe.value=T.state,R.add(T.event.port),P.add(T.event.port),T.event.collaboration!==void 0&&(R.add(T.event.collaboration.serverPort),P.add(T.event.collaboration.serverPort));let ke=Se.push(Pe,"local_editor_status",{instanceId:Je,requestId:g.requestId,ok:!0,capabilities:{...V(),...J.length===0?{}:{revokedPorts:J}},...T.event});return T.state.status==="running"&&(Mne(T.state),$ne(T.state,O,ke)),ke}return pe.value=T.state,Se.push(Pe,"local_editor_status",{instanceId:Je,requestId:g.requestId,ok:!1,reason:T.reason,capabilities:V()})}).catch(T=>Se.push(Pe,"local_editor_status",{instanceId:Je,requestId:g.requestId,ok:!1,reason:tf(T),capabilities:V()})).catch(T=>{n("kandan.local_editor_status_push_failed",{message:T instanceof Error?T.message:String(T)})});return}if(t2e(g)){K({allowedCwds:g.allowedCwds,configVersion:g.configVersion??null},{includeStartupAllowedCwds:!0,source:"control"}),js();return}if(r2e(g)){let T=mj(g);n("runner.fleet_breaker_state",{source:"control",outcome:T.outcome,state:T.snapshot?.state??null,fate:T.snapshot?.fate??null,version:T.snapshot?.version??null});return}if(i2e(g)){let T=Dne(g);if(T!==void 0){Se.push(Pe,"codex_response",T).catch(J=>{n("kandan.control_response_push_failed",{message:J instanceof Error?J.message:String(J)})});return}let O=One(g);if(O!==void 0){Se.push(Pe,"codex_response",O).catch(J=>{n("kandan.control_response_push_failed",{message:J instanceof Error?J.message:String(J)})});return}}if(o2e(g)){switch(g.enabled){case!0:R.add(g.port);break;case!1:R.delete(g.port),P.delete(g.port),B(g.port),ie.approvedPorts.delete(g.port),ie.approvedTargets.delete(g.port),Se.push(Pe,"forward_port_revoked",{instanceId:Je,port:g.port,reason:"user_disabled",capabilities:Us(V(),g.port)}).catch(T=>{n("kandan.forward_port_revoked_push_failed",{message:T instanceof Error?T.message:String(T)})});break}js();return}if(g.type==="import_onboarding_conversations")return wEe(e,n,g).catch(T=>{throw n("onboarding.conversation_import_failed",{runnerId:e.runnerId,message:T instanceof Error?T.message:String(T)}),T});if(g.type==="scan_onboarding_projects"){let T=CEe(g.paths);return RJ(e,n,{workspaceSlug:h(g.workspace),selectedScanRoots:T,sourceRoots:T,workerId:"projects-selected-folders",workerLabel:"Selected folders",startingMessage:"Checking selected folders",emptyMessage:"No Git projects found in selected folders",foundMessage:"Selected folder projects found",failedMessage:"Selected folder project scan failed",currentPlace:T[0]??e.cwd,requireTerminalStatusWrite:!0,includeRuntimeCwdHint:!1}).catch(O=>{throw n("onboarding.project_scan_failed",{runnerId:e.runnerId,message:O instanceof Error?O.message:String(O)}),O})}if(g.type==="start_instance"){if(nIe(g,O=>Xe.list().some(J=>J.kandanThreadId===O)))return U+=1,n("kandan.start_instance_skipped_known_session",{threadId:ti(g)??null,controlSeq:g.control_seq??null,issuedAt:im(g)??null,reason:"thread_already_has_known_session",skippedStaleStartInstances:U}),Se.push(Pe,"codex_response",{instanceId:Je,controlType:g.type,threadId:ti(g)??null,ok:!1,skipped:!0,error:"start_instance_thread_already_has_session",issuedAt:im(g)??null}).catch(O=>{n("kandan.control_response_push_failed",{message:O instanceof Error?O.message:String(O)})});let T=eIe(g,Date.now());if(T!==void 0)return U+=1,n("kandan.start_instance_stale_skipped",{threadId:ti(g)??null,controlSeq:g.control_seq??null,issuedAt:im(g)??null,ageMs:T,staleWindowMs:lJ,skippedStaleStartInstances:U}),Se.push(Pe,"codex_response",{instanceId:Je,controlType:g.type,threadId:ti(g)??null,ok:!1,skipped:!0,error:"stale_start_instance",issuedAt:im(g)??null,ageMs:T}).catch(O=>{n("kandan.control_response_push_failed",{message:O instanceof Error?O.message:String(O)})})}let C;if(g.type==="start_turn"){let T=g.control_seq;if(T!==void 0){let O=YPe(Pe,g.threadId),J=Be.initial(O);if(tIe(J,T))return Kh+=1,n("kandan.start_turn_replay_skipped",{controlType:g.type,threadId:g.threadId,controlSeq:T,appliedControlSeq:J,skippedReplayedStartTurns:Kh}),{instanceId:Je,controlType:g.type,threadId:g.threadId,skipped:!0};C=()=>rIe(Be,O,T)}}return oIe(()=>{if(At&&(g.type==="start_instance"||g.type==="reconnect_thread")){let T=pn(g,"threadId"),O=g.type==="reconnect_thread"?ao(g.codexThreadId):void 0,J=T!==void 0?ht.get(T):void 0,ke=g.type==="reconnect_thread"&&(O!==void 0&&ro.has(O)||J!==void 0&&R0(J)!=="dead");if(g.type==="start_instance"||g.type==="reconnect_thread"&&!ke)return nte(g).then(en=>{if(en)return{instanceId:Je,controlType:g.type,threadId:T??null,held:!0,reason:"runner_updating_queued"};throw n("runner.update_restart_drain_start_refused",{control_type:g.type,thread_id:T??null}),new Error(tI)})}return SIe(Qt,Xt,g).then(T=>T!==void 0?T:zB(Zt,Se,Pe,Je,e,m(),_e,be,Re,ro,Qh,lp,o6,jw,g,u6,a,Kw,sm(e)?Wne:void 0,s?.playCodex,O=>ue.current(O),Jo,Cu,Tu,ne,Yne,Nne))},C).then(T=>Se.push(Pe,"codex_response",T)).catch(async T=>((g.type==="start_instance"||g.type==="reconnect_thread")&&(tJ(T)||Uk(T)||rI(T))&&await v6(g,T),Se.push(Pe,"codex_error",{instanceId:Je,message:tf(T)}))).catch(T=>{n("kandan.control_response_push_failed",{message:T instanceof Error?T.message:String(T)})})},ute=gz({store:hz(fz(tl(),e.runnerId),g=>n("runner.control_quarantine_state_write_failed",{message:g})),quarantineFilePath:mz(tl(),e.runnerId),currentEpoch:()=>Bh.current(Pe),log:n,emitRunnerEvent:g=>{Se.push(Pe,"runner.control_quarantined",g).catch(x=>{n("runner.control_quarantined_event_push_failed",{message:x instanceof Error?x.message:String(x)})})}}),P6=(g,x)=>{sIe(g.type,()=>dte(g),x,n,C=>ute.onControlRejected(g,C))},eg=d===void 0?void 0:E9({runtime:d,threadIdOf:g=>ti(g),controlTypeOf:g=>g.type,dispatch:P6,log:n});return d!==void 0&&eg!==void 0&&(d.hooks.onOverlapDrain=g=>{let x=[...new Set(i.inFlightTurns().map(T=>T.threadId).filter(T=>T!==""))];d.beginOutgoingDrain(x);let C=d.sendToSupervisor({type:"generation_pin_snapshot",epoch:d.epoch,threadIds:x});n("runner.generation_outgoing_drain_started",{incomingEpoch:g,pinned:x.length,threadIds:x,snapshotDelivered:C}),d.requestUpdateDrain("generation_overlap")},d.hooks.onOverlapAbort=()=>{let g=d.cancelUpdateDrain("generation_overlap_abort"),x=eg.redispatchDeferredToIncoming();n("runner.generation_overlap_abort_applied",{drainCancelled:g,redispatched:x})},d.hooks.onPinsReleased=()=>{eg.dispatchUnpinned()},d.hooks.onPromote=()=>{let C;t.actions.push(()=>{C!==void 0&&(clearTimeout(C),C=void 0)});let T=O=>{if(C=void 0,d.promoteRunnerLock()){n("runner.generation_lock_promoted",{attempt:O});return}if(O>=10){n("runner.generation_lock_promote_gave_up",{attempts:O});return}C=setTimeout(()=>T(O+1),5e3),C.unref()};T(1)}),WPe(zEe(e,_e.value,Ae.value,I.value),n,up,qe,eg?.dispatch??P6,async()=>{await y(),await _(),p.value==="probe_failed"&&await v()}),{instanceId:Je,codexUrl:Pt,close:r}}function WPe(e,n,t,r,o,i){r.value=o,t.splice(0).forEach(({control:s,ack:a})=>o(s,a)),xEe(e,n,i)}function om(){let e=process.env.LINZUMI_COMMANDER_OUTBOX_DIR?.trim();return e!==void 0&&e!==""?e:bt(II(),".linzumi","commander-outbox")}function tl(){let e=process.env.LINZUMI_CONTROL_CURSOR_DIR?.trim();return e!==void 0&&e!==""?e:bt(II(),".linzumi","control-cursors")}function HPe(e){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^[-.]+|[-.]+$/g,"").slice(0,80),t=Sd("sha256").update(e).digest("hex").slice(0,8),r=n===""?"runner":n;return bt(tl(),`${r}.${t}.json`)}function GPe(e){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^[-.]+|[-.]+$/g,"").slice(0,80),t=Sd("sha256").update(e).digest("hex").slice(0,8),r=n===""?"runner":n;return bt(tl(),`${r}.${t}.start-turn.json`)}function ZPe(e){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^[-.]+|[-.]+$/g,"").slice(0,80),t=Sd("sha256").update(e).digest("hex").slice(0,8),r=n===""?"runner":n;return bt(tl(),`${r}.${t}.vm-fallback-notice.json`)}function QPe(e,n){let t;try{if(!Yc(e))return;t=kd(e,"utf8")}catch(r){n("vm_fallback_notice_store.read_failed",{path:e,message:r instanceof Error?r.message:String(r)});return}try{let r=JSON.parse(t);if(typeof r=="object"&&r!==null){let o=r.readinessFingerprint;if(typeof o=="string"&&o!=="")return o}}catch{}}function AB(e,n,t){try{if(n===void 0){PI(e,{force:!0});return}el(Cd(e),{recursive:!0});let r=`${e}.tmp`;A0(r,`${JSON.stringify({readinessFingerprint:n})}
1518
1518
  `,"utf8"),kI(r,e)}catch(r){t("vm_fallback_notice_store.write_failed",{path:e,message:r instanceof Error?r.message:String(r)})}}function XPe(e){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^[-.]+|[-.]+$/g,"").slice(0,80),t=Sd("sha256").update(e).digest("hex").slice(0,8),r=n===""?"runner":n;return bt(tl(),`${r}.${t}.source-seq.json`)}function YPe(e,n){return`${e} ${n}`}function im(e){let n=e.issued_at;return typeof n=="string"&&n!==""?n:void 0}function pJ(e){return e.replayed===!0}function eIe(e,n){if(!pJ(e))return;let t=im(e);if(t===void 0)return;let r=Date.parse(t);if(Number.isNaN(r))return;let o=n-r;return o>lJ?o:void 0}function nIe(e,n){if(e.type!=="start_instance"||!pJ(e))return!1;let t=ti(e);return t===void 0?!1:n(t)}function tIe(e,n){return e!==void 0&&n<=e}function rIe(e,n,t){e.onAdvance(n,t),e.flush()}function oIe(e,n){return e().then(t=>(n?.(),t))}function iIe(e){return"then"in e&&typeof e.then=="function"}function sIe(e,n,t,r,o){let i;try{i=n()}catch(s){r("kandan.control_handler_threw",{controlType:e,message:s instanceof Error?s.message:String(s)}),t();return}if(i===void 0||!iIe(i)){t();return}i.then(t,s=>{if(o?.(s)==="quarantine"){t();return}r("kandan.control_ack_withheld_on_failure",{controlType:e,message:s instanceof Error?s.message:String(s)})})}function cIe(e,n=Date.now,t=fJ,r){let o=r?.afterMs??uIe,i=r?.forcedReconnectAfterMs??aIe,s=r?.forcedReconnectRetryMs??dIe,a=n(),d=!1,u,c=!1,l=0,p,m=0,f=0;return{recordServerAck:()=>{a=n(),u=void 0,c=!1,l=0,p=void 0,m=0,f=0,d&&(d=!1,e("kandan.connection_recovered",{staleThresholdMs:t}))},check:()=>{let y=n(),_=y-a;!d&&_>t&&(d=!0,u=y,e("kandan.connection_stale",{lastServerAckAgoMs:_,staleThresholdMs:t}));let w=u===void 0?0:y-u;if(d&&r?.onReconnectNeeded!==void 0&&u!==void 0&&w>=i&&(p===void 0||y-p>=s)&&(l+=1,p=y,e("kandan.connection_force_reconnect",{staleForMs:w,lastServerAckAgoMs:_,attempt:l,forcedReconnectAfterMs:i}),r.onReconnectNeeded({staleForMs:w,lastServerAckAgoMs:_,attempt:l})===!1?m+=1:m=0,r.onHardResetNeeded!==void 0&&m>=pI)){if(m=0,f>=OB)c||(c=!0,e("kandan.connection_hard_reset_exhausted",{staleForMs:w,lastServerAckAgoMs:_,attempt:l,hardResets:f,hardResetFailureLimit:OB}),r.onUnrecoverable({staleForMs:w,lastServerAckAgoMs:_}));else if(w<o){f+=1;let v=r.onHardResetNeeded({staleForMs:w,lastServerAckAgoMs:_,attempt:l,uninitiatedDispatches:pI,hardResets:f});e("kandan.connection_hard_reset",{staleForMs:w,lastServerAckAgoMs:_,attempt:l,uninitiatedDispatches:pI,hardResets:f,initiated:v!==!1})}}d&&!c&&r!==void 0&&u!==void 0&&w>=o&&(c=!0,e("kandan.connection_unrecoverable",{staleForMs:w,lastServerAckAgoMs:_,escalateAfterMs:o}),r.onUnrecoverable({staleForMs:w,lastServerAckAgoMs:_}))},isStale:()=>d}}function fI(e,n,t){let r=t?.discardSeqsOnFirstEpochAdoption===!0,o=t?.fsyncOnWrite===!0,{cursors:i,epoch:s}=mIe(e,n),a=s,d=!1,u,c=()=>{if(d){d=!1;try{el(Cd(e),{recursive:!0});let m=`${e}.tmp`,f=`${JSON.stringify({...a===void 0?{}:{[mJ]:a},...Object.fromEntries(i)})}
1519
1519
  `;if(o){let y=EB(m,"w");try{A0(y,f,"utf8"),RB(y)}finally{IB(y)}kI(m,e);let _=EB(Cd(e),"r");try{RB(_)}finally{IB(_)}}else A0(m,f,"utf8"),kI(m,e)}catch(m){n("control_cursor_store.write_failed",{path:e,message:m instanceof Error?m.message:String(m)})}}},l=()=>{d=!0,u===void 0&&(u=setTimeout(()=>{u=void 0,c()},lIe),u.unref?.())},p=()=>{u!==void 0&&(clearTimeout(u),u=void 0),c()};return{initial:m=>i.get(m),onAdvance:(m,f)=>{let y=i.get(m);y!==void 0&&f<=y||(i.set(m,f),l())},reset:(m,f)=>{i.get(m)!==f&&(i.set(m,f),l())},flush:p,epoch:()=>a,adoptEpoch:m=>{if(a===m)return!1;let f=a!==void 0,y=!f&&r&&i.size>0;return a=m,(f||y)&&(y&&n("control_cursor_store.pre_epoch_seqs_discarded",{path:e,epoch:m,discardedSeqs:i.size}),i.clear()),l(),(f||y)&&p(),f}}}function pIe(e,n,t,r){return{current:()=>e.epoch(),adopt:(o,i)=>{let s=e.epoch(),a=e.adoptEpoch(i),d=n.adoptEpoch(i),u=a||d;return u&&t("kandan.control_epoch_changed",{runnerId:r.runnerId,kandanUrl:r.kandanUrl,topic:o,previousEpoch:s??null,epoch:i,controlCursorCleared:a,startTurnWatermarksCleared:d}),u}}}function fIe(e,n){return typeof e=="object"&&e!==null&&e.code===n}function mIe(e,n){let t=new Map,r;try{r=kd(e,"utf8")}catch(s){return fIe(s,"ENOENT")||n("control_cursor_store.read_failed",{path:e,message:s instanceof Error?s.message:String(s)}),{cursors:t,epoch:void 0}}let o;try{o=JSON.parse(r)}catch{o=void 0}if(o===null||typeof o!="object"||Array.isArray(o))return n("control_cursor_store.corrupt_ignored",{path:e}),{cursors:t,epoch:void 0};let i;for(let[s,a]of Object.entries(o)){if(s===mJ){typeof a=="string"&&a!==""&&(i=a);continue}typeof a=="number"&&Number.isInteger(a)&&a>=0&&t.set(s,a)}return{cursors:t,epoch:i}}function hIe(e,n){return e.type==="replace_runner"?!0:!("instanceId"in e)||e.instanceId===void 0||e.instanceId===n}function gIe(e){return"instanceId"in e?e.instanceId:void 0}function yIe(e,n){let t=new URL(n);if(t.protocol!=="https:"&&t.protocol!=="http:")throw new Error("workspace viewport URL must use http or https");let r=new URL(Fn(e)).origin;if(t.origin!==r)throw new Error("workspace viewport URL must stay on the configured Linzumi origin")}function xIe(e,n){yIe(e,n)}function mI(e){return e!==void 0&&e.delegated===!0&&e.threadProcess==="already_started"}function sm(e){return e.threadProcess?.role==="thread"||e.agentReplay!==void 0?!1:e.spawnThreadRunner!==void 0||e.codexUrl===void 0}function _Ie(e,n){let t=e.threadProcess,r=ti(n);return t?.role!=="thread"?!(sm(e)&&r!==void 0&&wIe(n)):r!==void 0?r===t.kandanThreadId:"instanceId"in n&&n.instanceId!==void 0&&n.instanceId!==""||n.type==="replace_runner"}function bIe(e,n,t){switch(e.threadProcess?.role){case"thread":return!1;default:switch(n.type){case"resolve_claude_user_input_request":case"deny_claude_user_input_request":return t.has(n.requestId);default:return!1}}}function wIe(e){switch(e.type){case"forward_http_request":case"forward_tcp_open":case"forward_tcp_send":case"forward_tcp_close":case"resolve_claude_user_input_request":case"deny_claude_user_input_request":return!0;default:return!1}}function vIe(e){let n=e;if(n.kind!=="build_golden_image"&&n.type!=="build_golden_image")return;let t=wd(n.golden_image_public_id),r=wd(n.build_claim_token);if(!(t===void 0||r===void 0))return{goldenImagePublicId:t,buildClaimToken:r,projectPublicId:wd(n.project_public_id),computeKey:wd(n.compute_key),name:wd(n.name),sourceThreadId:wd(n.source_thread_id),cwd:wd(n.cwd)}}function wd(e){return typeof e=="string"&&e!==""?e:void 0}function ti(e){switch(e.type){case"start_instance":case"reconnect_thread":case"forward_http_request":case"forward_tcp_open":case"forward_tcp_send":case"forward_tcp_close":case"remote_codex_exec":case"remote_codex_exec_cancel":case"stop_turn":case"steer_turn":case"list_agent_slash_commands":case"resolve_claude_user_input_request":case"deny_claude_user_input_request":case"update_thread_interaction_access":{let n=h(e.threadId)?.trim();return n===void 0||n===""?void 0:n}default:return}}async function SIe(e,n,t){let r=ti(t);if(r!==void 0){let i=n.get(r),s=Array.from(new Set([...i===void 0?[]:[i],...Array.from(n.values()).filter(d=>d.currentKandanThreadId()===r)])),a=[...e?.currentKandanThreadId()===r?[e]:[],...s.filter(d=>d!==e)].filter(d=>d!==void 0);if(t.type==="update_thread_interaction_access"){let d,u;for(let c of a){let l=await c.handleControl(t);l!==void 0&&(d??=l,l.ok===!0&&(u??=l))}return u??d}for(let d of a){let u=await d.handleControl(t);if(u!==void 0)return u}return}let o=await(e?.handleControl(t)??Promise.resolve(void 0));if(o!==void 0)return o;for(let i of n.values()){let s=await i.handleControl(t);if(s!==void 0)return s}}function CIe(e){return e.codexUrl===void 0&&e.threadProcessRole!=="thread"&&e.ownsStartedAppServer}async function TIe(e){let n=e.setTimeoutFn??setTimeout,t=Promise.allSettled(e.pushes).then(()=>{}),r=new Promise(o=>{n(()=>o(),e.safetyCapMs)?.unref?.()});await Promise.race([t,r]),e.exit()}function $B(e,n=process.env){let t=n.LINZUMI_APP_SERVER_EXIT_LOOP_STATE_FILE?.trim();return t!==void 0&&t!==""?t:bt(II(),".linzumi","app-server-exit-loop",`${fc(e)}.json`)}function IIe(e,n){return{load:()=>{try{let t=JSON.parse(kd(e,"utf8"));return typeof t.count=="number"&&Number.isFinite(t.count)&&typeof t.lastExitAt=="string"?{count:t.count,lastExitAt:t.lastExitAt}:void 0}catch{return}},save:t=>{try{el(Cd(e),{recursive:!0}),A0(e,`${JSON.stringify(t,null,2)}
1520
1520
  `)}catch(r){n?.(r instanceof Error?r.message:String(r))}}}}function RIe(e,n=Yc){try{if(n(e))return}catch{return}return`the runner's working directory ${e} no longer exists (deleted, or its disk/volume is unmounted); remount the volume or reconnect from an existing folder`}function EIe(e,n,t=hJ,r=PIe){let o=e.load(),i=o===void 0?Number.NaN:Date.parse(o.lastExitAt),s=n-i,d=o!==void 0&&Number.isFinite(i)&&s>=0&&s<=t?o.count+1:1;return e.save({count:d,lastExitAt:new Date(n).toISOString()}),{count:d,crashLoop:d>=r}}function DIe(e){let n=new Map,t={failed:!1},r;return{observeNotification:(o,i)=>{if(t.failed)return;let s=MIe(i);if(s===void 0)return;r=Date.now();let a=AIe(i);if(kIe.has(o)){for(let[d,u]of n)u===s&&(a===void 0||a===d)&&n.delete(d);return}a!==void 0&&n.set(a,s)},failActiveTurns:o=>{if(t.failed)return;t.failed=!0;let i=Array.from(n);if(n.clear(),i.length===0)return;e.onActiveThreadsFailed?.(i.map(([d])=>d));let s=Array.from(e.sessions()),a=typeof o=="function"?o:d=>o;for(let[d,u]of i){let c=a({threadId:d,turnId:u});e.log("codex.active_turn_failed_on_connection_loss",{thread_id:d,turn_id:u,cause:c});for(let l of s)D0(l,"turn/failed",{threadId:d,turnId:u,reason:c,...Uu("infra_turn_kill")},e.log)}},activeTurnCount:()=>n.size,activeTurns:()=>Array.from(n,([o,i])=>({threadId:o,turnId:i})),lastActivityAtMs:()=>r}}function MIe(e){let n=A(e.turn),t=A(e.item),r=A(t?.turn);return h(n?.id)??h(e.turnId)??h(e.turn_id)??h(t?.turnId)??h(t?.turn_id)??h(r?.id)}function AIe(e){let n=A(e.thread),t=A(e.turn);return h(e.threadId)??h(e.thread_id)??h(n?.id)??h(t?.threadId)??h(t?.thread_id)}function D0(e,n,t,r){if(e!==void 0)try{e.handleCodexNotification(n,t)}catch(o){r("codex.notification_session_dispatch_failed",{method:n,message:o instanceof Error?o.message:String(o)})}}async function OIe(e){return e.closePromise!==void 0||(e.closePromise=(async()=>{let n=[];e.removeHandlers?.(),e.removeHandlers=void 0;for(let t of[...e.actions].reverse())try{await t()}catch(r){n.push(r instanceof Error?r:new Error(String(r)))}if(e.actions.splice(0),n[0]!==void 0)throw n[0]})()),e.closePromise}function $Ie(e){if("error"in e)throw new Error(`thread/start failed: ${e.error.message}`);return h(A(A(e.result)?.thread)?.id)}function ao(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function EI(e){let n=ao(e.projectSharedInstructions),t=ao(e.projectPersonalInstructions),r=ao(e.projectMemory);return{projectBound:e.projectId!==void 0||e.projectPublicId!==void 0||n!==void 0||t!==void 0||r!==void 0,projectSharedInstructions:n,projectPersonalInstructions:t,projectMemory:r}}function LIe(e){return(ze(e)??[]).flatMap(t=>{let r=A(t),o=h(r?.runnerId);return o===void 0?[]:[{runnerId:o,version:h(r?.version)??null}]})}function LB(e){if(e===void 0)return{type:"missing"};let n=A(e);if(n===void 0)return{type:"invalid",reason:"runner_config_not_object"};let t=ze(n.allowedCwds);if(t===void 0)return{type:"invalid",reason:"allowed_cwds_not_array"};let r=[];for(let[s,a]of t.entries()){let d=h(a);if(d===void 0)return{type:"invalid",reason:`allowed_cwd_${s}_not_string`};r.push(d)}let o=n.configVersion,i=o==null?null:X(o);return i===void 0?{type:"invalid",reason:"config_version_not_integer"}:{type:"ok",config:{allowedCwds:r,configVersion:i}}}function jIe(e){let n=A(e);if(A(n?.runner_config)?.rosterEnabled!==!0)return;let r=A(n?.roster),o=r===void 0?void 0:ze(r.threads);if(o===void 0)return;let i=[],s=0;for(let a of o){let d=A(a),u=h(d?.kandan_thread_id);if(u===void 0){s+=1;continue}let c=h(d?.last_activity_at),l=c===void 0?Number.NaN:Date.parse(c),p=d?.channel_id,m=X(p),f=h(p)??(m===void 0?null:String(m));i.push({kandanThreadId:u,providerSessionKey:h(d?.provider_session_key)??null,channelId:f,lastActivityAtMs:Number.isNaN(l)?null:l})}return{threads:i,truncated:r?.truncated===!0,skippedEntries:s}}function FIe(e){return e.appliedModel!==void 0||e.appliedApprovalPolicy!==void 0||e.appliedReasoningEffort!==void 0||e.controlSandbox!==void 0}function qIe(e){if(e.debugTrace===void 0)return;let n=new Date().toISOString();return vO({dir:e.debugTrace.dir,contentMode:e.debugTrace.contentMode,runId:[n,"pid",String(process.pid),"runner",e.runnerId].join("-"),manifest:{pid:process.pid,argv:kO(process.argv),runnerId:e.runnerId,cwd:e.cwd,kandanUrl:e.kandanUrl,workspaceSlug:e.workspaceSlug??null,threadProcess:e.threadProcess??null,fast:e.fast===!0,startedAt:n}})}function DI(e){let n=e.launchTui&&e.consoleReporter===void 0?void 0:(r,o)=>{e.launchTui||h0(r,o),e.consoleReporter?.(r,o)},t=e.logFile??ug();return FO(t),OO(t,n)}function BIe(e,n,t,r){let o=U7({steps:{stopAccepting:()=>{n.stopAccepting()},interruptInFlightTurns:()=>n.interruptInFlightTurns().catch(s=>{t("runner.drain_interrupt_states_failed",{message:s instanceof Error?s.message:String(s)})}),checkpointCurrentTurn:()=>{},flushInboundQueues:()=>{n.flushInboundQueues()},flushOutbox:()=>e().catch(()=>{})},deadlineMs:zIe,log:(s,a)=>t(s,a),exit:(s,a)=>{let d=Z9(a),u={log:(c,l)=>t(c,l)};vP({trigger:d},u),X9(s,{trigger:d,stdinWasTty:process.stdin.isTTY===!0,stdoutWasTty:process.stdout.isTTY===!0},{sinks:u})},signals:r?.signals??["SIGTERM","SIGINT","SIGHUP"]}),i=()=>{e().catch(()=>{})};return process.once("exit",i),{uninstall:()=>{o.uninstall(),process.off("exit",i)},triggerFastExitDrain:s=>o.trigger(s)}}async function JIe(e,n,t){try{return e()}catch(r){if(!rP(r))throw r;t("runner.lock_held_by_live_process",{runnerId:n.runnerId,heldByRunnerId:r.heldBy.runnerId,heldByPid:r.heldBy.pid,lockPath:r.lockPath});let o=n.lockTakeover,i=FB(r.lockPath,o?.takeover,t),s=hd(r.heldBy,i.isPidAlive,()=>new Date(i.now()));if(_9(r.heldBy,jt,n.launchSource,s)){t("runner.lock_auto_takeover_for_update",{runnerId:n.runnerId,heldByRunnerId:r.heldBy.runnerId,heldByPid:r.heldBy.pid,lockPath:r.lockPath,fromVersion:r.heldBy.cliVersion,toVersion:jt,launchSource:a0,holderState:s.state});let c=o?.prompt??jB(o);return await lP({holder:r.heldBy,lockPath:r.lockPath,baseMessage:r.message,takeOverWithoutPrompt:!0,prompt:c,takeover:i}),e()}if(!q9(o))throw r;let a=o.prompt??jB(o),d=FB(r.lockPath,o.takeover,t);if((await lP({holder:r.heldBy,lockPath:r.lockPath,baseMessage:r.message,takeOverWithoutPrompt:o.takeOverWithoutPrompt===!0,prompt:a,takeover:d})).outcome==="declined")throw new Jf;return t("runner.lock_takeover_interactive",{runnerId:n.runnerId,heldByRunnerId:r.heldBy.runnerId,heldByPid:r.heldBy.pid,lockPath:r.lockPath}),e()}}function jB(e){return{isInteractive:()=>e?.forceNonInteractive!==!0&&process.stdin.isTTY===!0&&process.stderr.isTTY===!0,writeReport:n=>{process.stderr.write(`${n}
1521
- `)},promptYesNo:n=>KIe(n)}}function KIe(e){return new Promise(n=>{let t=DPe({input:process.stdin,output:process.stderr});t.question(e,r=>{t.close(),n(/^y(es)?$/i.test(r.trim()))})})}function FB(e,n,t){return{isPidAlive:n?.isPidAlive??VIe,signalPid:n?.signalPid??((r,o)=>{process.kill(r,o)}),lockReleased:n?.lockReleased??(()=>!Yc(e)),currentLockOwner:n?.currentLockOwner??(()=>fd(e)),sleep:n?.sleep??L9,now:n?.now??(()=>Date.now()),log:n?.log??((r,o)=>{t(r,o),me(r,o)})}}function VIe(e){try{return process.kill(e,0),!0}catch(n){return(n!==null&&typeof n=="object"&&"code"in n?n.code:void 0)!=="ESRCH"}}function WIe(e,n,t,r,o,i){let s=ZIe(n,r,o,i);me("process.spawn",{command:e,args:s,cwd:t,purpose:"codex.tui"});let a=q0(e,s,{cwd:t,env:process.env,stdio:"inherit"});return me("process.spawned",{command:e,args:s,cwd:t,pid:a.pid,purpose:"codex.tui"}),a.once("exit",(d,u)=>{me("process.exit",{command:e,args:s,cwd:t,pid:a.pid,code:d,signal:u,purpose:"codex.tui"})}),a}async function HIe(e){await Promise.all(Array.from(e,n=>n.handleKandanReconnect()))}function GIe(e,n){if(!Array.isArray(e))return;let t=e.find(r=>Q(r)&&typeof r.name=="string"&&r.name.toLowerCase()===n.toLowerCase()&&typeof r.value=="string");return Q(t)&&typeof t.value=="string"?t.value:void 0}function ZIe(e,n,t,r){let o=XIe(t,r);return n===void 0?["--remote",e,...o]:["resume","--remote",e,...o,n]}function QIe(e,n){let t=new Set(n);return e!==void 0&&t.add(e),Array.from(t).sort((r,o)=>r-o)}function CI(e){let n=new URL(e);if(n.port==="")return;let t=Number.parseInt(n.port,10);if(!Number.isInteger(t)||t<=0||t>65535)throw new Error(`invalid Kandan URL port: ${e}`);return t}function XIe(e,n){let t=e?.model===void 0?[]:["--model",e.model],r=e?.reasoningEffort===void 0?[]:["-c",`model_reasoning_effort="${e.reasoningEffort}"`],o=n===!0?["-c",'service_tier="fast"']:[];return[...t,...r,...o]}async function YIe(e,n){let t=await e.request("thread/resume",{threadId:n});if(!("error"in t))return;if(!t.error.message.includes("no rollout found"))throw new Error(`failed to prepare Codex TUI resume: ${t.error.message}`);let r=await e.request("thread/inject_items",{threadId:n,items:[{type:"agentMessage",text:""}]});if("error"in r)throw new Error(`failed to prepare Codex TUI resume: ${r.error.message}`);let o=await e.request("thread/resume",{threadId:n});if("error"in o)throw new Error(`failed to verify Codex TUI resume: ${o.error.message}`)}async function eRe(e,n,t,r){if(t.workspace===void 0||t.channel===void 0||t.threadId===void 0)return[];try{let o=await e.push(n,"session:thread_context",{workspace:t.workspace,channel:t.channel,thread_id:t.threadId});if(Q(o)&&o.status==="ok"&&Q(o.response))return ty(o.response.messages);r("kandan.reconnect_thread_context_fetch_failed",{thread_id:t.threadId,reply:JSON.stringify(o).slice(0,300)})}catch(o){r("kandan.reconnect_thread_context_fetch_failed",{thread_id:t.threadId,message:o instanceof Error?o.message:String(o)})}return[]}async function tRe(e,n,t,r){if(!(t.workspace===void 0||t.channel===void 0||t.threadId===void 0))try{let o=[],i,s,a,d=0;for(let u=0;u<nRe;u+=1){let c=await e.push(n,"session:thread_transcript",{workspace:t.workspace,channel:t.channel,thread_id:t.threadId,...a===void 0?{}:{cursor:a}});if(!Q(c)||c.status!=="ok"||!Q(c.response))return r("kandan.reconnect_thread_transcript_fetch_failed",{thread_id:t.threadId,page:u,reply:JSON.stringify(c).slice(0,300)}),u===0?void 0:{nodes:o,budget:i,threadTitle:s};let l=a8(c.response);if(l===void 0)return u===0?void 0:{nodes:o,budget:i,threadTitle:s};i=i??l.budget,s=s??l.threadTitle,o=[...l.nodes,...o],d+=l.nodes.reduce((f,y)=>y.kind==="reasoning"?f:f+y.body.length,0);let p=i?.maxEmissionTokens,m=p!==void 0&&d/4>=p;if(!l.hasMore||l.cursor===void 0||m)break;a=l.cursor}return{nodes:o,budget:i,threadTitle:s}}catch(o){r("kandan.reconnect_thread_transcript_fetch_failed",{thread_id:t.threadId,message:o instanceof Error?o.message:String(o)})}}async function qB(e,n,t,r,o,i){i("kandan.reconnect_thread_unarchive_started",{codex_thread_id:n,discovered_by:r,message:o});try{let s=await Qo("thread/unarchive",e.request("thread/unarchive",{threadId:n}));if("error"in s)throw new Error(`thread/unarchive failed: ${s.error.message}`);let a=await Qo("thread/resume",e.request("thread/resume",t));if("error"in a)throw new Error(`thread/resume after unarchive failed: ${a.error.message}`);return i("kandan.reconnect_thread_unarchive_resumed",{codex_thread_id:n,discovered_by:r}),{mode:"resumed"}}catch(s){let a=s instanceof Error?s.message:String(s);throw i("kandan.reconnect_thread_unarchive_failed",{codex_thread_id:n,discovered_by:r,archive_error:o,message:a}),new Error(r==="forced_inject_not_found"?`thread/inject_items failed: ${o}; archive recovery failed: ${a}`:a)}}async function iRe(e,n,t,r){let o={threadId:n,...t},i;if(r.forceRehydrate===!0)i="the server marked the durable engine session dead after an acknowledged-but-unexecuted turn";else{let a=await Qo("thread/resume",e.request("thread/resume",o));if(!("error"in a))return{mode:"resumed"};if(rRe(a.error.message))return await qB(e,n,o,"resume_archived",a.error.message,r.log);i=a.error.message}r.log(r.forceRehydrate===!0?"kandan.reconnect_thread_rehydrate_forced":"kandan.reconnect_thread_resume_failed",{codex_thread_id:n,message:i,forced:r.forceRehydrate===!0,rehydrating:!0});let s;try{let a;try{a=await r.buildRehydrationItems?.(i)}catch(c){r.log("kandan.reconnect_thread_rehydration_items_failed",{codex_thread_id:n,message:c instanceof Error?c.message:String(c)}),a=void 0}let d=a!==void 0&&a.length>0?[...a]:[{type:"agentMessage",text:await r.buildRehydrationText(i)}],u=await Qo("thread/inject_items",e.request("thread/inject_items",{threadId:n,items:d}));if("error"in u){if(r.forceRehydrate===!0&&oRe(u.error.message))return await qB(e,n,o,"forced_inject_not_found",u.error.message,r.log);s=`thread/inject_items failed: ${u.error.message}`}else{let c=await Qo("thread/resume",e.request("thread/resume",o));"error"in c&&(s=`rehydrated thread/resume failed: ${c.error.message}`)}}catch(a){s=a instanceof Error?a.message:String(a)}if(s!==void 0)throw r.log("kandan.reconnect_thread_rehydration_failed",{codex_thread_id:n,resume_failure:i,rehydration_failure:s}),new Error(`could not resume this thread's engine session (${i}) and rebuilding a fresh session from the thread transcript also failed (${s})`);return r.log("kandan.reconnect_thread_rehydrated",{codex_thread_id:n,resume_failure:i}),{mode:"rehydrated",resumeFailure:i}}async function sRe(e,n,t,r,o){let i="agent_provider_unavailable:codex";if(o("kandan.start_instance_codex_app_server_unavailable",{controlType:r.type,thread_id:ti(r)??null,instanceId:t}),r.type==="start_instance"||r.type==="reconnect_thread")try{await vo(e,n,r,"failed",i,{instanceId:t,failureClass:"engine_unavailable"})}catch(s){o("kandan.start_instance_unavailable_state_push_failed",{agent_provider:"codex",message:s instanceof Error?s.message:String(s)})}throw new Error(i)}async function zB(e,n,t,r,o,i,s,a,d,u,c,l,p,m,f,y,_,w,S,v,b,k,R,P,L,D,j){if(e===void 0)switch(f.type){case"remote_codex_exec":case"remote_codex_exec_cancel":return await gI(f,r,s.value,a,d,y);case"list_agent_slash_commands":case"resolve_claude_user_input_request":case"deny_claude_user_input_request":case"clone_repository":break;case"set_workspace_viewport":break;case"start_instance":case"reconnect_thread":{let E=dm(f);if(E.type==="ok"&&E.provider==="claude-code"||S!==void 0)break;return await sRe(n,t,r,f,y)}default:return{instanceId:r,controlType:f.type,requestId:"requestId"in f?h(f.requestId)??null:null,ok:!1,error:"agent_provider_unavailable:codex"}}let q=()=>{if(e===void 0)throw new Error("shared codex app-server connection is unavailable");return e};switch(f.type){case"set_workspace_viewport":return xIe(o.kandanUrl,f.url),{instanceId:r,controlType:f.type,ok:!0,url:f.url};case"start_instance":{let E=zr(f.cwd,s.value),B=dm(f),z="starting_codex_session",W;switch(B.type){case"ok":break;case"unsupported":return{instanceId:r,controlType:f.type,ok:!1,error:`agent_provider_unsupported:${B.value}`}}let Z=B.provider;if(!E.ok){y("kandan.start_instance_cwd_rejected",{thread_id:ti(f)??null,reason:E.reason,allowedCwdCount:s.value.length});try{await XB(n,t,f,E.reason,s.value,{instanceId:r})}catch(De){y("kandan.start_instance_cwd_failed_state_push_failed",{reason:E.reason,message:De instanceof Error?De.message:String(De)})}return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:E.reason,allowedCwds:s.value}}if(!i.includes(Z)){try{await vo(n,t,f,"failed",BB(Z),{instanceId:r,failureClass:"engine_unavailable"})}catch(De){y("kandan.start_instance_unavailable_state_push_failed",{agent_provider:Z,message:De instanceof Error?De.message:String(De)})}return{instanceId:r,controlType:f.type,ok:!1,error:`agent_provider_unavailable:${Z}`}}let fe=ra(f,"processing",`starting ${fRe(Z)} session`,{instanceId:r});fe!==void 0&&n.push(t,"message_state",fe).catch(De=>{y("kandan.start_instance_processing_state_push_failed",{message:De instanceof Error?De.message:String(De)})});try{let De=await S?.(f,E.cwd);if(De!==void 0)return De;if(Z==="codex"){let ge=KB(o,f);if(ge!==void 0){try{await vo(n,t,f,"failed",ge,{instanceId:r,failureClass:"provider_binding_rejected"})}catch(Re){y("kandan.start_instance_wafer_state_push_failed",{message:Re instanceof Error?Re.message:String(Re)})}return{instanceId:r,controlType:f.type,ok:!1,error:ge}}}return Z==="claude-code"?(z="starting_claude_code_session",(await WB({kandan:n,topic:t,control:f,options:o,log:y,debugTrace:_,instanceId:r,cwd:E.cwd,matchedRoot:E.matchedRoot,activeClaudeCodeSessions:u,pendingClaudeCodeApprovals:c,pendingClaudeCodeUserQuestions:l,ensureClaudeCodeForwardPortSession:p,disposeClaudeCodeForwardPortSession:m,resumeSessionId:ao(f.resumeSessionId),leaseEpochFor:b,onLiveSourceSeqAccepted:k,onUndeliveredFollowUpsAtClose:P,claudeThreadAccessStore:j,setStartupStage:Re=>{z=Re}})).controlResponse):(await xJ({codex:q(),kandan:n,topic:t,control:f,options:o,instanceId:r,cwd:E.cwd,matchedRoot:E.matchedRoot,onStartedThread:w,startAgentReplayCodex:v,setStartupStage:ge=>{z=ge},setStartedCodexThreadId:ge=>{W=ge}})).controlResponse}catch(De){let ke=NB(z,De);y("kandan.start_instance_failed",{stage:z,message:De instanceof Error?De.message:String(De),thread_id:pn(f,"threadId")??null,source_seq:X(f.sourceSeq)??X(f.rootSeq)??null,codex_thread_id:W??null});try{await vo(n,t,f,"failed",ke,{codexThreadId:W,instanceId:r,failureClass:UB(z)})}catch{}throw De}}case"reconnect_thread":{let E=zr(f.cwd,s.value),B=dm(f),z="starting_codex_session";if(!E.ok){try{await XB(n,t,f,E.reason,s.value,{instanceId:r})}catch(Re){y("kandan.reconnect_thread_cwd_failed_state_push_failed",{reason:E.reason,message:Re instanceof Error?Re.message:String(Re)})}return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:E.reason,allowedCwds:s.value}}switch(B.type){case"ok":break;case"unsupported":return{instanceId:r,controlType:f.type,ok:!1,error:`agent_provider_unsupported:${B.value}`}}let W=B.provider;if(!i.includes(W)){try{await vo(n,t,f,"failed",BB(W),{instanceId:r,failureClass:"engine_unavailable"})}catch(Re){y("kandan.reconnect_thread_unavailable_state_push_failed",{agent_provider:W,message:Re instanceof Error?Re.message:String(Re)})}return{instanceId:r,controlType:f.type,ok:!1,error:`agent_provider_unavailable:${W}`}}let Z=ao(f.codexThreadId);if(Z===void 0)return{instanceId:r,controlType:f.type,ok:!1,error:"missing_codex_thread_id"};let fe=ao(f.workDescription),De=await S?.(f,E.cwd);if(De!==void 0)return De;if(W==="codex"){let Re=KB(o,f);if(Re!==void 0)return{instanceId:r,controlType:f.type,ok:!1,error:Re}}if(W==="claude-code"){let Re=u.get(Z);if(Re!==void 0&&fe!==void 0){let Ee=X(f.rootSeq),I=X(f.sourceSeq)??Ee,$=oe=>{let Fe=oe.disposition==="parked"?ra(f,"queued",Zu(oe.queuePosition),{instanceId:r,codexThreadId:Z}):ra(f,"processing","queued Claude Code input",{instanceId:r,codexThreadId:Z});Fe!==void 0&&n.push(t,"message_state",Fe).catch(ae=>{y("kandan.reconnect_thread_queue_state_push_failed",{message:ae instanceof Error?ae.message:String(ae)})})},K=Ho(ze(f.attachments)??[]),ie=await Av({cwd:E.cwd,kandanUrl:o.kandanUrl,token:o.token,fetch:o.fetch,attachmentDirectoryName:"local-claude-code-attachments"},{seq:I,body:fe,attachments:K}).then(oe=>({ok:!0,content:oe})).catch(oe=>({ok:!1,error:oe}));if(!ie.ok){let oe=ie.error instanceof Error?ie.error.message:String(ie.error),Fe=`Claude Code input attachment download failed: ${oe}`;try{await vo(n,t,f,"failed",Fe,{instanceId:r,codexThreadId:Z,failureClass:"attachment_download_failed"})}catch(ae){y("kandan.reconnect_thread_queue_failed_state_push_failed",{message:ae instanceof Error?ae.message:String(ae)})}return{instanceId:r,controlType:f.type,agentProvider:"claude-code",ok:!1,error:"claude_code_attachment_download_failed",message:oe}}let pe=pn(f,"threadId"),Y=pn(f,"channel");if(I!==void 0&&pe!==void 0&&Y!==void 0&&R?.(Y,pe,{seq:I,type:"thread.message",actorKind:void 0,actorSlug:void 0,actorUserId:void 0,threadId:pe,threadTitle:void 0,replyToSeq:X(f.rootSeq),localRunnerEventType:void 0,body:fe,attachments:K,traceparent:h(f.traceparent)}),Y!==void 0&&pe!==void 0&&L?.({channel:Y,threadId:pe,sourceSeq:I})===!0)return y("claude_code.message_duplicate_ignored",{linzumi_thread_id:pe,claude_session_id:Z,body_preview:vd(fe),source_seq:I??null}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",cwd:E.cwd,matchedRoot:E.matchedRoot,codexThreadId:Z,queuedInput:!0,duplicate:!0};await Fp({cwd:E.cwd,threadKey:Re.threadId,turnRef:I===void 0?`followup-${Date.now()}`:`seq-${I}`,log:(oe,Fe)=>y(oe,Fe)});try{let oe=Re.enqueueInput({content:ie.content,sourceSeq:I});if(oe==="duplicate")return y("claude_code.message_duplicate_ignored",{linzumi_thread_id:pn(f,"threadId")??null,claude_session_id:Z,body_preview:vd(fe),source_seq:I??null}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",cwd:E.cwd,matchedRoot:E.matchedRoot,codexThreadId:Z,queuedInput:!0,duplicate:!0};$(oe),y("claude_code.message_queued",{linzumi_thread_id:pn(f,"threadId")??null,claude_session_id:Z,body_preview:vd(fe),message_received_at_ms:Date.now(),source_seq:I??null}),_?.record("commander","claude.input_queued",{linzumiThreadId:pn(f,"threadId")??null,claudeSessionId:Z,sourceSeq:I??null,bodyPreview:vd(fe)})}catch(oe){let Fe=oe instanceof Error?oe.message:String(oe),ae=`Claude Code input queue closed: ${Fe}`;try{await vo(n,t,f,"failed",ae,{instanceId:r,codexThreadId:Z,failureClass:"claude_input_queue_closed"})}catch(Ce){y("kandan.reconnect_thread_queue_closed_state_push_failed",{message:Ce instanceof Error?Ce.message:String(Ce)})}return{instanceId:r,controlType:f.type,agentProvider:"claude-code",ok:!1,error:"claude_code_session_closed",message:Fe}}if(I!==void 0){let oe=I,Fe=Re,ae="Claude Code session did not respond after resume - send your message again to start fresh",Ce=D;ex({windowMs:Ce?.windowMs??Sf(process.env),isDelivered:()=>Fe.inputDelivered(oe),isSessionClosed:()=>_s(u,[Z],[Fe.threadId])===void 0,lastSdkActivityMs:()=>Fe.lastSdkActivityMs(),hasPendingBlockingRequest:()=>um({threadId:Fe.threadId,pendingApprovals:c,pendingQuestions:l}),log:y,onWedged:Yn=>{let Jn=Ce?.recordWedge(Fe.threadId,oe)??Number.MAX_SAFE_INTEGER;y("claude_code.dispatch_liveness_wedged",{linzumi_thread_id:Fe.threadId,claude_session_id:Z,source_seq:oe,waited_ms:Yn.waitedMs,cause:Yn.cause,attempt:Ce===void 0?null:Jn,dispatch:"queued_input"});let Dt=()=>{Ce?.clear(Fe.threadId,oe),vo(n,t,f,"failed",ae,{instanceId:r,codexThreadId:Z,failureClass:"claude_dispatch_wedged"}).catch(V=>{y("claude_code.dispatch_wedged_state_push_failed",{linzumi_thread_id:Fe.threadId,source_seq:oe,message:V instanceof Error?V.message:String(V)})})};if(Ce!==void 0&&Jn===1){vo(n,t,f,"processing","restarting Claude Code session to recover this message",{instanceId:r,codexThreadId:Z}).catch(()=>{}),Ce.killAndRespawn({threadId:Fe.threadId,claudeSessionId:Z,reason:`claude_dispatch_liveness: no SDK output within ${Yn.waitedMs}ms of queued input (seq ${oe})`}).then(V=>{V==="no_replay_path"&&Dt()}).catch(V=>{y("claude_code.dispatch_supervisor_respawn_failed",{linzumi_thread_id:Fe.threadId,source_seq:oe,message:V instanceof Error?V.message:String(V)}),Dt()});return}Dt()}})}return{instanceId:r,controlType:f.type,agentProvider:"claude-code",cwd:E.cwd,matchedRoot:E.matchedRoot,codexThreadId:Z,queuedInput:!0}}if(Re!==void 0)return{instanceId:r,controlType:f.type,agentProvider:"claude-code",ok:!1,error:"claude_code_active_session_requires_work_description"};{let Ee=pn(f,"threadId"),I=pn(f,"channel"),$=X(f.sourceSeq)??X(f.rootSeq);if(fe!==void 0&&Ee!==void 0&&I!==void 0&&$!==void 0&&L?.({channel:I,threadId:Ee,sourceSeq:$})===!0)return y("claude_code.replayed_turn_already_applied_ignored",{linzumi_thread_id:Ee,claude_session_id:Z,body_preview:vd(fe),source_seq:$,replayed:f.replayed===!0}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",cwd:E.cwd,matchedRoot:E.matchedRoot,codexThreadId:Z,queuedInput:!0,duplicate:!0}}try{let Ee=ra(f,"processing","resuming Claude Code session",{instanceId:r,codexThreadId:Z});return Ee!==void 0&&n.push(t,"message_state",Ee).catch($=>{y("kandan.reconnect_thread_processing_state_push_failed",{message:$ instanceof Error?$.message:String($)})}),z="starting_claude_code_session",(await WB({kandan:n,topic:t,control:f,options:o,log:y,debugTrace:_,instanceId:r,cwd:E.cwd,matchedRoot:E.matchedRoot,resumeSessionId:Z,activeClaudeCodeSessions:u,pendingClaudeCodeApprovals:c,pendingClaudeCodeUserQuestions:l,ensureClaudeCodeForwardPortSession:p,disposeClaudeCodeForwardPortSession:m,leaseEpochFor:b,onLiveSourceSeqAccepted:k,onUndeliveredFollowUpsAtClose:P,claudeThreadAccessStore:j,setStartupStage:$=>{z=$}})).controlResponse}catch(Ee){let I=NB(z,Ee);y("kandan.reconnect_thread_failed",{stage:z,message:Ee instanceof Error?Ee.message:String(Ee),thread_id:pn(f,"threadId")??null,source_seq:X(f.sourceSeq)??X(f.rootSeq)??null,agent_provider:W,provider_session_key:Z});try{await vo(n,t,f,"failed",I,{codexThreadId:Z,instanceId:r,failureClass:UB(z)})}catch{}throw Ee}}o.codexUrl===void 0&&ax(E.cwd,{configHome:Ws()});let ke=rl(o,f),ge=w===void 0?void 0:await Qo("thread/attach",w(f,E.cwd,Z));if(fe!==void 0){let Re=X(f.rootSeq),Ee=X(f.sourceSeq)??Re;if(ge===void 0||Ee===void 0)throw new Error("cannot reconnect a Kandan thread without a session");let I=pn(f,"channel"),$=pn(f,"threadId");if(I!==void 0&&$!==void 0&&L?.({channel:I,threadId:$,sourceSeq:Ee})===!0)return y("kandan.reconnect_thread_seq_already_applied",{linzumi_thread_id:$,codex_thread_id:Z,source_seq:Ee}),{instanceId:r,controlType:f.type,cwd:E.cwd,matchedRoot:E.matchedRoot,codexThreadId:Z,duplicate:!0};let K=pn(f,"workspace"),ie=await iRe(q(),Z,bp({cwd:E.cwd,fast:ke.fast,channelSession:{model:ke.model,reasoningEffort:ke.reasoningEffort,approvalPolicy:ke.approvalPolicy,sandbox:ke.sandbox,sandboxedApprovalNeverDefault:ke.sandboxedApprovalNeverDefault}}),{forceRehydrate:f.sessionRehydrate===!0,log:y,buildRehydrationItems:async oe=>{let Fe=await tRe(n,t,{workspace:K,channel:I,threadId:$},y);if(Fe===void 0||Fe.nodes.length===0)return;let ae=d8({nodes:Fe.nodes,budget:Fe.budget,resumeFailure:oe,threadTitle:Fe.threadTitle,linzumiContext:qs(f.linzumiContext)});return y("kandan.reconnect_thread_rehydration_ir_emitted",{linzumi_thread_id:$,codex_thread_id:Z,emitted_nodes:ae.emittedNodeCount,omitted_nodes:ae.omittedNodeCount,redacted_reasoning:ae.redactedReasoningCount,emitted_token_estimate:ae.emittedTokenEstimate,max_emission_tokens:ae.maxEmissionTokens}),ae.items},buildRehydrationText:async oe=>uj({messages:await eRe(n,t,{workspace:K,channel:I,threadId:$},y),resumeFailure:oe,linzumiContext:qs(f.linzumiContext)})});if(ie.mode==="rehydrated"){me("runner.thread_resume_rehydrated",{purpose:"linzumi.thread_runner",threadId:$??null,codexThreadId:Z,sourceSeq:Ee,resumeFailure:ie.resumeFailure});try{await vo(n,t,f,"processing","rebuilt the coding session from durable thread history after an unresumable engine session",{codexThreadId:Z,instanceId:r})}catch(oe){y("kandan.reconnect_thread_rehydrated_state_push_failed",{message:oe instanceof Error?oe.message:String(oe)})}}let pe=go(o.token),Y=Ho(ze(f.attachments)??[]);await ge.startThreadMessageTurn({seq:Ee,body:fe,actorSlug:pe.actorUsername,actorUserId:pe.actorUserId,attachments:Y,boundStartTimeout:!0})}return{instanceId:r,controlType:f.type,cwd:E.cwd,matchedRoot:E.matchedRoot,codexThreadId:Z}}case"list_claude_code_sessions":{let E=zr(f.cwd,s.value);if(!E.ok)return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:E.reason};if(!i.includes("claude-code"))return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:"agent_provider_unavailable:claude-code"};let B;try{B=await _4({cwd:E.cwd,limit:X(f.limit),messagesPerSession:X(f.messagesPerSession),provider:o.claudeCodeSessionHistoryProvider})}catch(z){return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:z instanceof Error?`claude_code_session_history_failed:${z.message}`:"claude_code_session_history_failed"}}return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!0,cwd:E.cwd,matchedRoot:E.matchedRoot,sessions:B}}case"list_agent_slash_commands":{let E=zr(f.cwd,s.value);if(!E.ok)return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:E.reason};let B=h(f.agentProvider)??"claude-code";if(B!=="claude-code")return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:`agent_provider_unsupported:${B}`};if(!i.includes("claude-code"))return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:"agent_provider_unavailable:claude-code"};let z=h(f.providerSessionKey),W=z===void 0?void 0:u.get(z);if(W===void 0)return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:"no_active_claude_session"};try{return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!0,cwd:E.cwd,matchedRoot:E.matchedRoot,provider:"claude-code",providerSessionKey:z,commands:await W.slashCommands()}}catch(Z){return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:Z instanceof Error?`agent_slash_commands_failed:${Z.message}`:"agent_slash_commands_failed"}}}case"browse_directory":return f2e(f,o);case"create_project":return y2e(f,o,s);case"clone_repository":return await w2e(f,o,s);case"suggest_tasks":return S2e(f,o,s.value,{kandan:n,topic:t});case"remote_codex_exec":return await gI(f,r,s.value,a,d,y);case"remote_codex_exec_cancel":return await gI(f,r,s.value,a,d,y);case"start_turn":{let E=await q().request("turn/start",{threadId:f.threadId,input:f.input});return{instanceId:r,controlType:f.type,response:E}}case"steer_turn":{let E=_s(u,[f.providerSessionKey,f.threadId],[f.threadId]);if(E!==void 0){let Z=CRe(f.input);if(Z===void 0)return{instanceId:r,controlType:f.type,agentProvider:"claude-code",ok:!1,error:"claude_code_steer_requires_text_input"};let fe;try{fe=E.steerTurn(Z)}catch(Ee){let I=Ee instanceof Error?Ee.message:String(Ee);return y("claude_code.steer_failed",{thread_id:f.threadId,message:I}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",ok:!1,error:"claude_code_steer_failed",message:I,threadId:f.threadId}}if(!await lRe(fe.applied))return y("claude_code.steer_not_applied",{thread_id:f.threadId,steered:fe.steered}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",ok:!1,error:"claude_code_steer_not_applied",message:"The turn finished before the steering message could be applied. Linzumi will retry it as its own message automatically; if nothing happens shortly, send it as a new message.",threadId:f.threadId};let ke=X(f.sourceSeq),ge=h(f.workspace),Re=h(f.channel);return ke!==void 0&&ge!==void 0&&Re!==void 0&&n.push(t,"message_state",{workspace:ge,channel:Re,thread_id:f.threadId,instance_id:r,seq:ke,status:"processed",reason:qp,agent_provider:"claude-code"}).catch(Ee=>{y("claude_code.steer_terminal_state_push_failed",{thread_id:f.threadId,seq:ke,message:Ee instanceof Error?Ee.message:String(Ee)})}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",steered:fe.steered,threadId:f.threadId}}let B=f.providerSessionKey??f.threadId,z=h(f.turnId);if(z===void 0)return{instanceId:r,controlType:f.type,agentProvider:"codex",threadId:f.threadId,ok:!1,error:"codex_steer_target_turn_unknown",message:"No live session tracks this thread, so the running turn cannot be steered from here. Linzumi will run the message as its own turn instead."};let W=await q().request("turn/steer",{threadId:B,expectedTurnId:z,input:Yg(f.input)});return{instanceId:r,controlType:f.type,response:W}}case"interrupt_turn":{let E=_s(u,[f.threadId]);if(E!==void 0){let z=await E.interruptTurn("Interrupted by Linzumi");return{instanceId:r,controlType:f.type,agentProvider:"claude-code",interrupted:z,threadId:f.threadId}}let B=await q().request("turn/interrupt",{threadId:f.threadId,turnId:f.turnId??null});return{instanceId:r,controlType:f.type,response:B}}case"rewind_thread":return u.get(f.threadId)!==void 0||f.agentProvider==="claude-code"?{instanceId:r,controlType:f.type,agentProvider:"claude-code",requestId:h(f.requestId)??null,threadId:f.threadId,ok:!1,error:"claude_code_rewind_unsupported",message:"Claude Code does not support rewind yet"}:{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,threadId:f.threadId,ok:!1,error:"rewind_not_supported",message:"This runner does not support rewinding threads yet"};case"interrupt_queued_messages":{let E=h(f.agentProvider)?.trim();if(E!=="claude-code"){let W=await q().request("turn/interrupt",{threadId:f.threadId,turnId:null});return{instanceId:r,controlType:f.type,response:W}}let B=_s(u,[f.threadId]);if(B===void 0)return{instanceId:r,controlType:f.type,agentProvider:E,ok:!1,error:"claude_code_session_not_active"};await B.interruptTurn("Claude Code interrupted by Linzumi"),B.abortController.abort(new Error("Claude Code interrupted by Linzumi"));let z=X(f.throughSeq)??B.currentSourceSeq();if(z!==void 0)try{await ri(n,t,{workspace:B.workspace,channel:B.channel,threadId:B.threadId,sourceSeq:z,status:"failed",reason:"Claude Code interrupted by Linzumi",sessionId:f.threadId})}catch(W){y("kandan.claude_code_interrupt_state_push_failed",{message:W instanceof Error?W.message:String(W),thread_id:B.threadId,source_seq:z,claude_session_id:f.threadId})}return{instanceId:r,controlType:f.type,agentProvider:E,interrupted:!0,threadId:f.threadId}}case"stop_turn":{let E=_s(u,[f.threadId,f.providerSessionKey],[f.threadId]);if(E!==void 0){let z=await uRe({activeSession:E,sessionKey:f.providerSessionKey??f.threadId,publishMessageState:W=>ri(n,t,W),log:y});return y("claude_code.turn_stopped",{thread_id:E.threadId,claude_session_id:f.providerSessionKey??f.threadId,discarded_queued_source_seqs:z}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",threadId:f.threadId,ok:!0,stopped:!0,confirmedHalt:!0}}let B=h(f.agentProvider)?.trim();if(B!=="claude-code")try{let z=await q().request("turn/interrupt",{threadId:f.providerSessionKey??f.threadId,turnId:f.turnId??null});return{instanceId:r,controlType:f.type,agentProvider:"codex",threadId:f.threadId,ok:!0,stopped:!0,confirmedHalt:!0,response:z}}catch(z){y("codex.stop_turn_no_session_interrupt_failed",{thread_id:f.threadId,message:z instanceof Error?z.message:String(z)})}return{instanceId:r,controlType:f.type,agentProvider:B??null,threadId:f.threadId,ok:!1,error:"stop_turn_session_not_active"}}case"resolve_codex_approval_request":{let E=c.get(f.requestId);if(E===void 0){if(f.agentProvider==="claude-code")return{instanceId:r,controlType:f.type,skipped:!0};let z=await q().request("resolve_codex_approval_request",{...f});return{instanceId:r,controlType:f.type,response:z}}if(f.agentProvider!==void 0&&f.agentProvider!=="claude-code")return{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_approval_provider_mismatch"};if(E.sessionId!==void 0&&f.threadId!==E.sessionId)return{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_approval_session_mismatch"};let B=E.decisions.get(f.decision);return B===void 0?(y("runner.claude_code_approval_unknown_decision",{instanceId:r,requestId:f.requestId,decision:f.decision,threadId:E.threadId,claudeSessionId:E.sessionId}),{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_approval_unknown_decision",decision:f.decision}):(E.resolve(B),await ri(n,t,{workspace:E.workspace,channel:E.channel,threadId:E.threadId,sourceSeq:E.sourceSeq,status:B.type==="allow"?"processing":"failed",reason:B.type==="allow"?"Claude Code tool approved":"Claude Code tool denied by Linzumi",sessionId:E.sessionId}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",requestId:f.requestId,decision:f.decision,resolved:!0})}case"resolve_claude_user_input_request":{let E=l.get(f.requestId);if(E===void 0)return{instanceId:r,controlType:f.type,agentProvider:"claude-code",threadId:f.threadId,requestId:f.requestId,ok:!1,error:"claude_code_user_input_continuation_not_found"};if(f.agentProvider!==void 0&&f.agentProvider!=="claude-code")return{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_user_input_provider_mismatch"};if(f.threadId!==E.threadId)return{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_user_input_thread_mismatch"};if(E.sessionId!==void 0&&f.sessionId!==void 0&&f.sessionId!==E.sessionId)return{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_user_input_session_mismatch"};let B=f.answers.map(W=>({questionId:W.questionId,selectedLabels:W.selectedLabels??[],freeText:h(W.freeText)})),z=_Re({pending:E,answers:B,actorUserId:f.actorUserId,actorSlug:f.actorSlug,answeredAt:new Date().toISOString()});switch(z.type){case"error":{y("runner.claude_code_user_input_resolution_failed",{instanceId:r,requestId:f.requestId,error:z.error,selectedLabels:[...z.selectedLabels],threadId:E.threadId,claudeSessionId:E.sessionId,kind:E.kind}),E.resolve({type:"deny",message:z.error});try{await Qc(n,t,{workspace:E.workspace,channel:E.channel,threadId:E.threadId,sourceSeq:E.sourceSeq,sessionId:E.sessionId,leaseEpoch:E.leaseEpoch,request:E.request,answerState:{kind:"Denied",reason:z.error,answers:B.map(W=>({questionId:W.questionId,selectedLabels:[...W.selectedLabels],freeText:W.freeText})),actorUserId:f.actorUserId,actorSlug:f.actorSlug,answeredAt:new Date().toISOString()},streamState:"completed"})}catch(W){throw y("kandan.claude_code_user_question_completed_publish_failed",{requestId:f.requestId,message:W instanceof Error?W.message:String(W)}),W}return{instanceId:r,controlType:f.type,agentProvider:"claude-code",threadId:E.threadId,requestId:f.requestId,ok:!1,error:z.error,selectedLabels:[...z.selectedLabels],requestKind:E.kind,denied:!0}}case"resolved":E.resolve(z.decision);break}{let W=_s(u,[E.sessionId,h(f.sessionId)],[E.threadId]);if(W!==void 0){let Z=E.threadId,fe=E.sourceSeq,De=E.sessionId;ex({windowMs:D?.windowMs??Sf(process.env),isDelivered:()=>E.resolved(),isSessionClosed:()=>_s(u,[De],[Z])===void 0,lastSdkActivityMs:()=>W.lastSdkActivityMs(),hasPendingBlockingRequest:()=>um({threadId:Z,pendingApprovals:c,pendingQuestions:l}),log:y,onWedged:ke=>{let ge="Claude Code did not continue after your answer - the runner restarted the session; send your message again to continue";y("claude_code.dispatch_liveness_wedged",{linzumi_thread_id:Z,claude_session_id:De??null,source_seq:fe,waited_ms:ke.waitedMs,cause:ke.cause,dispatch:z.dispatch}),W.abortController.abort(new Error(ge)),(async()=>{let Re=W.sessionWork();Re!==void 0&&await Promise.race([Re.catch(()=>{}),new Promise(Ee=>{setTimeout(Ee,1e4).unref?.()})]),await ri(n,t,{workspace:E.workspace,channel:E.channel,threadId:Z,sourceSeq:fe,status:"failed",reason:ge,sessionId:De,failureClass:"claude_dispatch_wedged"})})().catch(Re=>{y("claude_code.dispatch_wedged_state_push_failed",{linzumi_thread_id:Z,source_seq:fe,message:Re instanceof Error?Re.message:String(Re)})})}})}}try{await Qc(n,t,{workspace:E.workspace,channel:E.channel,threadId:E.threadId,sourceSeq:E.sourceSeq,sessionId:E.sessionId,leaseEpoch:E.leaseEpoch,request:E.request,answerState:z.answerState,streamState:"completed"})}catch(W){throw y("kandan.claude_code_user_question_completed_publish_failed",{requestId:f.requestId,message:W instanceof Error?W.message:String(W)}),W}return{instanceId:r,controlType:f.type,agentProvider:"claude-code",threadId:E.threadId,requestId:f.requestId,answers:B.map(W=>({questionId:W.questionId,selectedLabels:[...W.selectedLabels],...h(W.freeText)===void 0?{}:{freeText:h(W.freeText)}})),actorUserId:f.actorUserId,actorSlug:f.actorSlug,requestKind:E.kind,resolved:!0}}case"deny_claude_user_input_request":{let E=l.get(f.requestId);if(E===void 0)return{instanceId:r,controlType:f.type,agentProvider:"claude-code",threadId:f.threadId,requestId:f.requestId,ok:!1,error:"claude_code_user_input_continuation_not_found"};if(f.agentProvider!==void 0&&f.agentProvider!=="claude-code")return{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_user_input_provider_mismatch"};if(f.threadId!==E.threadId)return{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_user_input_thread_mismatch"};if(E.sessionId!==void 0&&f.sessionId!==void 0&&f.sessionId!==E.sessionId)return{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_user_input_session_mismatch"};E.resolve({type:"deny",message:f.reason??"Denied by Linzumi"});try{await Qc(n,t,{workspace:E.workspace,channel:E.channel,threadId:E.threadId,sourceSeq:E.sourceSeq,sessionId:E.sessionId,leaseEpoch:E.leaseEpoch,request:E.request,answerState:{kind:"Denied",reason:f.reason??"Denied by Linzumi",actorUserId:f.actorUserId,actorSlug:f.actorSlug,answeredAt:new Date().toISOString()},streamState:"completed"})}catch(B){throw y("kandan.claude_code_user_question_completed_publish_failed",{requestId:f.requestId,message:B instanceof Error?B.message:String(B)}),B}return{instanceId:r,controlType:f.type,agentProvider:"claude-code",threadId:E.threadId,requestId:f.requestId,reason:f.reason??"Denied by Linzumi",actorUserId:f.actorUserId,actorSlug:f.actorSlug,denied:!0}}case"read_thread":{let E=await q().request("thread/read",{threadId:f.threadId,includeTurns:f.includeTurns??!0});return{instanceId:r,controlType:f.type,response:E}}case"update_session_settings":{let E=h(f.threadId),B=_s(u,[E],[E]),z=h(f.approvalPolicy)??void 0,W=h(f.sandbox)??void 0;if(B===void 0)return{instanceId:r,controlType:f.type,skipped:!0};let Z=await B.updateSettings({model:h(f.model)??void 0,approvalPolicy:z,reasoningEffort:h(f.reasoningEffort)??void 0}),fe=h(Z.model),De=h(Z.approval_policy),ke=h(Z.reasoning_effort),ge=h(f.sandbox);if(FIe({appliedModel:fe,appliedApprovalPolicy:De,appliedReasoningEffort:ke,controlSandbox:ge})){let Re={workspace:B.workspace,channel:B.channel,thread_id:B.threadId,codex_thread_id:f.threadId,updated_at:new Date().toISOString(),...fe!==void 0?{model:fe}:{},...De!==void 0?{approvalPolicy:De}:{},...ke!==void 0?{reasoningEffort:ke}:{},...ge!==void 0?{sandbox:ge}:{}},Ee=await n.push(t,"session:settings",Re);if(!(Q(Ee)&&Ee.status==="ok"))throw new Error(`kandan push failed: session:settings: ${JSON.stringify(Ee).slice(0,500)}`)}return De!==void 0&&j?.record(B.threadId,{approvalPolicy:De,sandbox:W}),Z.approval_policy==="never"&&await bJ({kandan:n,topic:t,pendingClaudeCodeApprovals:c,pendingClaudeCodeUserQuestions:l,sessionThreadId:B.threadId,actorUserId:f.actorUserId,actorSlug:f.actorSlug,log:y,reason:"full_access_enabled"}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",threadId:f.threadId,applied:Z}}case"stop_instance":case"kill_instance":{let E="threadId"in f&&typeof f.threadId=="string"?f.threadId:void 0,B=E===void 0?void 0:u.get(E);return B!==void 0?(await B.interruptTurn("Claude Code stopped by Linzumi"),B.abortController.abort(new Error("Claude Code stopped by Linzumi")),{instanceId:r,controlType:f.type,agentProvider:"claude-code",threadId:E,stopped:!0}):{instanceId:r,controlType:f.type,skipped:!0}}case"resolve_port_forward_request":case"update_thread_interaction_access":case"set_port_forward_enabled":case"forward_http_request":case"forward_tcp_open":case"forward_tcp_send":case"forward_tcp_close":case"start_local_editor":case"update_runner_config":case"fleet_breaker_state":case"replace_runner":return{instanceId:r,controlType:f.type,skipped:!0}}}async function gI(e,n,t,r,o,i){switch(e.type){case"remote_codex_exec":{let s=h(e.requestId)?.trim(),a=new AbortController;s!==void 0&&s!==""&&o.set(s,a);let d=await m8(e,{instanceId:n,allowedCwds:t,sandboxRunner:r,abortSignal:a.signal});return s!==void 0&&s!==""&&o.delete(s),i("remote_codex_exec.handled",{requestId:h(e.requestId)??null,ok:d.ok===!0,error:typeof d.error=="string"?d.error:null}),d}case"remote_codex_exec_cancel":{let s=h(e.requestId)?.trim();if(s===void 0||s==="")return{instanceId:n,controlType:e.type,ok:!1,error:"request_id_required"};let a=o.get(s);return a!==void 0&&(a.abort(new Error("remote_codex_exec_cancelled")),o.delete(s)),{instanceId:n,controlType:e.type,requestId:s,ok:!0,cancelled:a!==void 0}}}}function NB(e,n){let t=aRe(n instanceof Error?n.message:String(n));switch(e){case"checking_project_trust":return`Codex could not start because this folder is not trusted locally. Trust the folder with linzumi paths add, or restart the runner from a trusted folder. Detail: ${t}`;case"starting_claude_code_session":return`Claude Code did not create a session. Restart the local runner and try again. Detail: ${t}`;case"claude_code_session_failed":return`Claude Code created a session, but the session failed before completing. Try starting the agent again; if it repeats, share this failed message with the runner owner. Detail: ${t}`;case"posting_claude_code_output":return`Claude Code created a session, but Linzumi could not post its response to this thread. Try starting the agent again; if it repeats, reconnect the local runner. Detail: ${t}`;case"starting_codex_session":return`Codex did not create a session. Restart the local runner and try again. Detail: ${t}`;case"binding_kandan_thread":return`Codex started, but Linzumi could not attach it to this thread. Try starting the agent again; if it repeats, share this failed message with the runner owner. Detail: ${t}`;case"starting_first_turn":return`Codex started, but the first prompt could not be delivered. Try sending the message again; if it repeats, reconnect the local runner. Detail: ${t}`}}function UB(e){return e==="checking_project_trust"?"project_untrusted":"start_stage_transient"}function BB(e){switch(e){case"claude-code":return"Claude Code is not available on this computer. Reconnect a local runner with Claude Code auth and try again.";case"codex":return"Codex is not available on this computer. Reconnect a local runner with Codex support and try again."}}function O0(e,n){let t=e.trim();if(t.length<=n)return t;let r=" ... ";if(n<r.length+2)return t.slice(t.length-Math.max(1,n));let o=Math.max(1,Math.floor((n-r.length)/3)),i=Math.max(1,n-r.length-o);return`${t.slice(0,o)}${r}${t.slice(t.length-i)}`}function aRe(e){return O0(e,240)}function dRe(e){let n=e.interruptActiveTurn(e.reason),t=e.interruptSessionControls;if(t!==void 0)try{t().catch(r=>{e.log("claude_code.session_control_interrupt_failed",{thread_id:e.threadId,message:r instanceof Error?r.message:String(r)})})}catch(r){e.log("claude_code.session_control_interrupt_failed",{thread_id:e.threadId,message:r instanceof Error?r.message:String(r)})}return n}async function uRe(e){let{activeSession:n}=e;n.interruptTurnBeforeAbort("stopped by user");let t=n.discardQueuedFollowUpsForStop();n.abortController.abort(new Error("stopped by user"));let r=n.currentSourceSeq(),o=[...new Set([r,...t].filter(s=>s!==void 0))],i=new Set(t);for(let s of o)try{await e.publishMessageState({workspace:n.workspace,channel:n.channel,threadId:n.threadId,sourceSeq:s,status:"interrupted",reason:"stopped by user",sessionId:e.sessionKey}),i.has(s)&&n.markFollowUpSeqDiscarded(s)}catch(a){e.log("kandan.claude_code_stop_state_push_failed",{message:a instanceof Error?a.message:String(a),thread_id:n.threadId,source_seq:s})}return t}function _s(e,n,t=[]){let r=n.filter(i=>i!==void 0&&i!=="");for(let i of r){let s=e.get(i);if(s!==void 0)return s}let o=t.filter(i=>i!==void 0&&i!=="");if(o.length>0){for(let i of e.values())if(o.includes(i.threadId))return i}}async function lRe(e){let n;try{return await Promise.race([e,new Promise(t=>{n=setTimeout(()=>t(!0),cRe),n.unref?.()})])}finally{n!==void 0&&clearTimeout(n)}}function JB(e,n){switch(e.agentReplay?.provider){case"codex":return["codex"];case"claude-code":return["claude-code"];case"auto":case void 0:break}switch(e.claudeCodeRunner!==void 0||(n===void 0?e.claudeCodeAvailable===!0:n==="logged_in")){case!0:return["codex","claude-code"];case!1:return["codex"]}}function pRe(e){if(e.agentReplay?.provider==="codex"||e.codexUrl!==void 0||oa(e))return!0;switch(e.dependencyStatus?.codex.available){case!1:return!1;case!0:case void 0:return!0}}function dm(e){let n=h(e.agentProvider)?.trim();switch(n){case void 0:case"":case"codex":return{type:"ok",provider:"codex"};case"claude-code":return{type:"ok",provider:"claude-code"};default:return{type:"unsupported",value:n}}}function fRe(e){switch(e){case"codex":return"Codex";case"claude-code":return"Claude Code"}}function $0(e){let n=h(e.modelProvider)?.trim(),t=A(e.llmProxy),r=h(t?.baseUrl)?.trim(),o=h(t?.token)?.trim(),i=r!==void 0&&r!==""&&o!==void 0&&o!==""?{baseUrl:r,token:o}:void 0;return n===void 0||n===""?i===void 0?{type:"none"}:{type:"provider",runtime:{provider:"openai-proxy",llmProxyBaseUrl:i.baseUrl,llmProxyToken:i.token}}:n!=="wafer"?{type:"error",error:`model_provider_unsupported:${n}`}:i===void 0?{type:"error",error:"wafer_model_provider_missing_llm_proxy"}:{type:"provider",runtime:{provider:"wafer",llmProxyBaseUrl:i.baseUrl,llmProxyToken:i.token}}}function gJ(e){if(e.type==="error")return e.error;if(e.type==="provider"&&e.runtime.provider==="openai-proxy"&&us()===void 0)return"codex_llm_proxy_requires_openai_api_key"}function KB(e,n){let t=$0(n);switch(t.type){case"none":return;case"error":return t.error;case"provider":{let r=gJ(t);return r!==void 0?r:e.codexModelProvider?.provider===t.runtime.provider?void 0:t.runtime.provider==="wafer"?"wafer_model_provider_requires_thread_worker":"llm_proxy_model_provider_requires_thread_worker"}}}function mRe(e){if(e.linzumiAgentMcpToken===void 0||e.linzumiAgentMcpToken===""||mT(e.env))return;let n=hRe(e.env,e.kandanUrl);if(n===void 0||n==="")return yI("cloud agent turn requires a server URL (kandanUrl) and none was configured; refusing to run the @linzumi agent turn on the host");if(gRe(n))return yI(`cloud agent turn requires a PUBLICLY reachable server URL for the guest VM, got loopback ${n}; set LINZUMI_CLOUD_AGENT_PUBLIC_URL to the server's public base URL (e.g. https://serve.linzumi.com)`);if(!ud(e.env))return yI("smolcloud is the required execution path for @linzumi agent turns but no smolcloud API key resolved (SMOLCLOUD_API_KEY / cloud.apiKeyFile / SMOL_CLOUD_TOKEN); refusing to run the agent on the render host (set LINZUMI_VM_CLOUD_AGENT=0 only to explicitly opt back into host execution)");let t;try{t=ls()}catch{throw new Error("workspace-agent cloud vm.json is present but invalid; refusing to arm the cloud agent turn on a corrupt config")}let r=NU({env:e.env,config:t});if(r===void 0)throw new Error("workspace-agent cloud execution is enabled but no smolcloud API key resolved");let o=t?.agent,i={...o?.image===void 0?{}:{image:o.image},...o?.allowCidrs===void 0?{}:{allowCidrs:o.allowCidrs},...o?.autoStopSeconds===void 0?{}:{autoStopSeconds:o.autoStopSeconds}},s=e.modelProviderRuntime===void 0?void 0:(()=>{let a=N0(e.modelProviderRuntime);return{id:a.id,name:a.name,baseUrl:a.baseUrl,envKey:a.envKey,wireApi:a.wireApi,...a.httpHeaders===void 0?{}:{httpHeaders:a.httpHeaders},...a.envHttpHeaders===void 0?{}:{envHttpHeaders:a.envHttpHeaders}}})();return zU({connection:r,workspaceSlug:e.workspaceSlug,kandanUrl:n,linzumiAgentMcpToken:e.linzumiAgentMcpToken,ownerUsername:e.ownerUsername,modelProvider:s,llmProxyToken:e.modelProviderRuntime?.llmProxyToken,agentSpec:i,prewarm:!0})}function yI(e){return()=>Promise.reject(new _t(e))}function hRe(e,n){let t=e.LINZUMI_CLOUD_AGENT_PUBLIC_URL?.trim();return t!==void 0&&t!==""?t:n}function gRe(e){try{let n=new URL(e).hostname.toLowerCase();return n==="localhost"||n==="127.0.0.1"||n==="::1"||n==="0.0.0.0"}catch{return!1}}function N0(e){let n=`${e.llmProxyBaseUrl.replace(/\/+$/,"")}/v1`;switch(e.provider){case"wafer":return{id:"linzumi",name:"Linzumi Proxy",baseUrl:n,envKey:"LINZUMI_LLM_PROXY_TOKEN",wireApi:"responses"};case"openai-proxy":return{id:"linzumi",name:"Linzumi Proxy",baseUrl:n,envKey:"OPENAI_API_KEY",wireApi:"responses",envHttpHeaders:{"x-linzumi-llm-proxy-token":"LINZUMI_LLM_PROXY_TOKEN"}}}}function yJ(e){switch(e.provider){case"wafer":return{LINZUMI_LLM_PROXY_TOKEN:e.llmProxyToken};case"openai-proxy":{let n=us();if(n===void 0)throw new Error("codex llm proxy requires API-key auth (OPENAI_API_KEY in the environment or $CODEX_HOME/auth.json); ChatGPT OAuth credentials cannot be forwarded");return{LINZUMI_LLM_PROXY_TOKEN:e.llmProxyToken,OPENAI_API_KEY:n}}}}async function xJ(e){e.options.codexUrl===void 0&&(e.setStartupStage("checking_project_trust"),ax(e.cwd,{configHome:Ws()})),e.setStartupStage("starting_codex_session");let n=ao(e.control.developerPrompt),t=qs(e.control.linzumiContext),r=rl(e.options,e.control),o=await Qo("thread/start",e.codex.request("thread/start",{cwd:e.cwd,serviceName:"kandan-local-runner",personality:"pragmatic",developerInstructions:vp({cwd:e.cwd,planTool:"linzumi-mcp",mcpAvailable:!oa(e.options)||$I(e.options),devServicesAvailable:!oa(e.options),developerPrompt:n,...EI(e.control),linzumiContext:t}),...FRe(r)})),i=$Ie(o);e.setStartedCodexThreadId(i);let s=ao(e.control.workDescription);i!==void 0&&n!==void 0&&await ORe(e.kandan,e.topic,e.control,n,i);let a;if(i!==void 0&&e.onStartedThread!==void 0&&(e.setStartupStage("binding_kandan_thread"),a=await Qo("thread/attach",e.onStartedThread(e.control,e.cwd,i))),i!==void 0&&s!==void 0){e.setStartupStage("starting_first_turn");let d=X(e.control.rootSeq),u=X(e.control.sourceSeq)??d,c=Ho(ze(e.control.attachments)??[]);if(a!==void 0&&u!==void 0){let l=go(e.options.token);e.startAgentReplayCodex?.(),await a.startThreadMessageTurn({seq:u,body:s,actorSlug:l.actorUsername,actorUserId:l.actorUserId,attachments:c,boundStartTimeout:!0})}else{let l=e.codex.request("turn/start",{threadId:i,input:[{type:"text",text:s}]});e.startAgentReplayCodex?.(),await Qo("turn/start",l)}}return{controlResponse:{instanceId:e.instanceId,controlType:e.control.type,cwd:e.cwd,matchedRoot:e.matchedRoot,response:o},providerSession:{provider:"codex",cwd:e.cwd,matchedRoot:e.matchedRoot,sessionId:i}}}function yRe(e){let n=e.LINZUMI_CLAUDE_TURN_STALL_MS?.trim();if(n===void 0||n==="")return 6e5;let t=Number.parseInt(n,10);return Number.isFinite(t)&&t>0?t:6e5}function xRe(e){let n=e.onInputDelivered,t=e.isLiveSteerAllowed,r=e.onInputWait,o=e.onSourceSeqDelivered,i=[xI(e.content)],s=[e.sourceSeq],a=[],d=new Set,u=[],c=new Map,l=v=>new Promise(b=>{c.set(v,b)}),p=(v,b)=>{let k=c.get(v);k!==void 0&&(c.delete(v),k(b))},m={closed:!1},f=()=>{for(;m.closed;){let v=u.shift();if(v===void 0)return;v({done:!0,value:void 0})}},y=(v,b)=>{s.push(b),n?.(),b!==void 0&&o!==void 0&&!d.has(b)&&(d.add(b),o(b));let k=u.shift();if(k===void 0){i.push(v);return}p(v,!0),k({done:!1,value:v})},_=(v,b)=>s.length>0?(a.push({message:v,sourceSeq:b}),{disposition:"parked",queuePosition:a.length}):(y(v,b),{disposition:"delivered"}),w=v=>{if(m.closed)throw new Error("Claude Code streaming input is closed");let b=xI(v.content);return _(b,v.sourceSeq)},S=v=>{if(m.closed)throw new Error("Claude Code streaming input is closed");let b=xI(v),k=l(b);if(s.length===0)return _(b,void 0),{steered:"steered_queued",applied:k};if(t?.()===!1)return _(b,void 0),{steered:"steered_queued",applied:k};let R=u.shift();return R===void 0?i.push(b):(p(b,!0),R({done:!1,value:b})),{steered:"steered_live",applied:k}};return{messages:{[Symbol.asyncIterator](){return{next(){let v=i.shift();return v!==void 0?(p(v,!0),Promise.resolve({done:!1,value:v})):m.closed?Promise.resolve({done:!0,value:void 0}):(r?.(s[0]),new Promise(b=>{u.push(b)}))}}}},close:()=>{if(s.length===0)for(;a.length>0;){let v=a.shift();v!==void 0&&y(v.message,v.sourceSeq)}m.closed=!0,f();for(let[v,b]of c)c.delete(v),b(!1)},enqueue:w,enqueueSteer:S,drainUndeliveredFollowUps:()=>a.splice(0),completeTurn:()=>{let v=s.shift();if(!m.closed&&s.length===0){let b=a.shift();b!==void 0&&y(b.message,b.sourceSeq)}return v},currentSourceSeq:()=>s[0]}}function xI(e){return{type:"user",message:{role:"user",content:e},parent_tool_use_id:null}}function _Re(e){let n=e.answers.map(t=>({questionId:t.questionId,selectedLabels:[...t.selectedLabels],freeText:t.freeText}));switch(e.pending.kind){case"question":return{type:"resolved",decision:{type:"answer_question",updatedInput:v4(e.pending.originalInput,e.pending.request,e.answers)},answerState:{kind:"Answered",answers:n,actorUserId:e.actorUserId,actorSlug:e.actorSlug,answeredAt:e.answeredAt},dispatch:"user_question_answer"};case"tool_approval":case"plan_review":{let t=e.answers.flatMap(i=>i.selectedLabels),r=t[0];if(r===void 0)return{type:"error",error:"claude_code_user_input_decision_missing",selectedLabels:t};let o=e.pending.approvalDecisions.get(r);return o===void 0?{type:"error",error:"claude_code_user_input_unknown_decision",selectedLabels:t}:{type:"resolved",decision:o,answerState:o.type==="deny"?{kind:"Denied",reason:o.message,answers:n,actorUserId:e.actorUserId,actorSlug:e.actorSlug,answeredAt:e.answeredAt}:{kind:"Answered",answers:n,actorUserId:e.actorUserId,actorSlug:e.actorSlug,answeredAt:e.answeredAt},dispatch:"user_input_decision"}}}}async function _J(e){let n=e.sourceSeq;if(n===void 0)return{type:"deny",message:"Claude Code user input request had no source message"};if(e.pendingQuestions.has(e.questionRequest.requestId))return{type:"deny",message:"Claude Code user input request id was already pending"};if(um({threadId:e.threadId,pendingApprovals:e.pendingApprovals,pendingQuestions:e.pendingQuestions}))return{type:"deny",message:"Claude Code already has a pending user input request"};if(e.signal.aborted)return{type:"deny",message:"Claude Code user input request cancelled by Linzumi"};let t="Claude Code user input request cancelled by Linzumi",r=e.approvalDecisions??new Map,o,i,s=!1,a=new Promise(d=>{let u=!1,c=()=>{i!==void 0&&e.signal.removeEventListener("abort",i),e.pendingQuestions.delete(e.questionRequest.requestId)},l=m=>{u||(u=!0,c(),d(m))};o=l,i=()=>{s||(s=!0,(async()=>{try{await Qc(e.kandan,e.topic,{workspace:e.workspace,channel:e.channel,threadId:e.threadId,sourceSeq:n,sessionId:e.sessionId,leaseEpoch:e.leaseEpoch,request:e.questionRequest,answerState:{kind:"Denied",reason:t,answeredAt:new Date().toISOString()},streamState:"interrupted"})}catch(m){console.error("kandan.claude_code_user_input_abort_publish_failed",e.questionRequest.requestId,m instanceof Error?m.message:String(m))}finally{l({type:"deny",message:t})}})())};let p={sessionId:e.sessionId,workspace:e.workspace,channel:e.channel,threadId:e.threadId,sourceSeq:n,leaseEpoch:e.leaseEpoch,request:e.questionRequest,resolve:l,resolved:()=>u};switch(e.kind){case"question":e.pendingQuestions.set(e.questionRequest.requestId,{...p,kind:"question",originalInput:e.request.input});break;case"tool_approval":case"plan_review":e.pendingQuestions.set(e.questionRequest.requestId,{...p,kind:e.kind,approvalDecisions:r});break}});if(i!==void 0&&(e.signal.addEventListener("abort",i,{once:!0}),e.signal.aborted))return i(),a;try{await Qc(e.kandan,e.topic,{workspace:e.workspace,channel:e.channel,threadId:e.threadId,sourceSeq:n,sessionId:e.sessionId,leaseEpoch:e.leaseEpoch,request:e.questionRequest,answerState:{kind:"NeedsAnswer"},streamState:"streaming"})}catch(d){return o?.({type:"deny",message:d instanceof Error?`Claude Code user input request push failed: ${d.message}`:"Claude Code user input request push failed"}),a}return a}async function Qc(e,n,t){await e.push(n,"session:stream_thread_message",{workspace:t.workspace,channel:t.channel,thread_id:t.threadId,stream_key:k4(t.request.requestId),body:t.request.title,...t.leaseEpoch===void 0?{}:{lease_epoch:t.leaseEpoch},payload:{source_message_seq:t.sourceSeq,agent_provider:"claude-code",...t.sessionId===void 0?{}:{codex_thread_id:t.sessionId,provider_session_key:t.sessionId,claude_session_id:t.sessionId},structured:S4({request:t.request,sessionId:t.sessionId,sourceSeq:t.sourceSeq,answerState:t.answerState,streamState:t.streamState})}})}function um(e){return[...e.pendingApprovals.values()].some(n=>n.threadId===e.threadId)||[...e.pendingQuestions.values()].some(n=>n.threadId===e.threadId)}async function bRe(e){let n=w4(e.request),t=new Map(n.choices.map(r=>[r.label,r.permissionDecision]));return _J({kandan:e.kandan,topic:e.topic,pendingApprovals:e.pendingApprovals,pendingQuestions:e.pendingQuestions,workspace:e.workspace,channel:e.channel,threadId:e.threadId,sessionId:e.sessionId,sourceSeq:e.sourceSeq,request:e.request,questionRequest:n.request,kind:n.request.requestSource==="claude_code_plan_review"?"plan_review":"tool_approval",approvalDecisions:t,leaseEpoch:e.leaseEpoch,signal:e.signal})}function VB(){return _I.value===void 0&&(_I.value=aq(sq(process.env))),_I.value}async function WB(e){try{return await HB(e)}catch(n){if(!(n instanceof Vs))throw n;e.log("claude_code.dispatch_liveness_respawn_retry",{thread_id:pn(e.control,"threadId")??null,resume_session_id:e.resumeSessionId??null,waited_ms:n.waitedMs});try{return await HB(e)}catch(t){throw t instanceof Vs?new Error(wRe):t}}}async function HB(e){let n=Xc(e.control,"workspace"),t=Xc(e.control,"channel"),r=Xc(e.control,"threadId"),o=X(e.control.rootSeq),i=X(e.control.sourceSeq)??o,s=ao(e.control.workDescription);if(e.debugTrace?.record("commander","claude.provider_start",{controlType:e.control.type,instanceId:e.instanceId,workspace:n,channel:t,threadId:r,rootSeq:o??null,sourceSeq:i??null,resumeSessionId:e.resumeSessionId??null,cwd:e.cwd}),s===void 0)throw new Error("start_instance control missing workDescription");if(e.log("claude_code.turn_starting",{linzumi_thread_id:r,claude_session_id:e.resumeSessionId??null,body_preview:vd(s),message_received_at_ms:Date.now()}),e.resumeSessionId!==void 0){let U=await VB().acquire();(U.waitedMs>0||U.timedOut)&&e.log("claude_code.resume_start_throttled",{linzumi_thread_id:r,claude_session_id:e.resumeSessionId,waited_ms:U.waitedMs,timed_out:U.timedOut})}let a=U=>{e.log("claude_code.turn_terminal",{turn_id:null,outcome:"failed",reason:U,thread_id:r,claude_session_id:e.resumeSessionId??null})},d,u=!1,c=!1,l,p=!1,m,f=0,y=!1,_=!1,w=!1,S,v=!1,b=U=>({workspace:n,channel:t,thread_id:r,codex_thread_id:U,provider_session_key:U,agent_provider:"claude-code",claude_session_id:U,cwd:e.cwd,instance_id:e.instanceId}),k=()=>{if(!u||!c||d===void 0)return;let U=()=>{let qe=d;if(p||!u||!c||qe===void 0)return;p=!0;let te=e.kandan.push(e.topic,"session:typing_start",b(qe)).then(()=>{}).catch(be=>{e.log("kandan.claude_code_typing_heartbeat_failed",{thread_id:r,claude_session_id:qe,message:be instanceof Error?be.message:String(be)})}).finally(()=>{p=!1});m=te,te.finally(()=>{m===te&&(m=void 0)})};U(),l===void 0&&(l=setInterval(U,FPe),l.unref?.())},R=()=>{if(y){_=!0;return}u=!0,f+=1,k()},P=()=>{_&&(_=!1,R())},L=()=>{if(y){w=!0;return}ge.completeTurn()},D=()=>{w&&(w=!1,L())},j=()=>{w=!1,v=!0,ge.completeTurn()},q=async(U,qe)=>{let te,be=new Promise(Lr=>{te=setTimeout(()=>Lr("timeout"),zPe),te.unref?.()}),sn=await Promise.race([U.then(()=>"processed"),be]);te!==void 0&&clearTimeout(te),sn==="timeout"&&e.log("claude_code.terminal_processing_timeout",{linzumi_thread_id:r,claude_session_id:qe.sessionId,event_type:qe.type})},E=async(U,qe)=>{let te,be=new Promise(Lr=>{te=setTimeout(()=>Lr("timed_out"),qPe),te.unref?.()}),sn=await Promise.race([U.then(()=>"settled"),be]);return te!==void 0&&clearTimeout(te),sn==="timed_out"&&e.log("kandan.claude_code_typing_start_wait_timeout",{thread_id:r,claude_session_id:qe}),sn},B=async()=>{let U=u,qe=d,te=f;if(u=!1,l!==void 0&&(clearInterval(l),l=void 0),!(!U||!c||qe===void 0))try{let be=m;if(be!==void 0&&await E(be,qe)==="timed_out"&&m===be&&(m=void 0,p=!1),u||f!==te)return;await e.kandan.push(e.topic,"session:typing_stop",b(qe))}catch(be){e.log("kandan.claude_code_typing_stop_failed",{thread_id:r,claude_session_id:qe,message:be instanceof Error?be.message:String(be)})}},z=Ho(ze(e.control.attachments)??[]),W=await Av({cwd:e.cwd,kandanUrl:e.options.kandanUrl,token:e.options.token,fetch:e.options.fetch,attachmentDirectoryName:"local-claude-code-attachments"},{seq:i,body:s,attachments:z}).then(U=>({ok:!0,content:U})).catch(U=>({ok:!1,error:U}));if(!W.ok){let U=W.error instanceof Error?W.error.message:String(W.error),qe=`Claude Code input attachment download failed: ${U}`;a(qe);try{await vo(e.kandan,e.topic,e.control,"failed",qe,{instanceId:e.instanceId,failureClass:"attachment_download_failed"})}catch(te){e.log("kandan.start_instance_claude_code_attachment_failed_state_push_failed",{message:te instanceof Error?te.message:String(te)})}return{controlResponse:{instanceId:e.instanceId,controlType:e.control.type,agentProvider:"claude-code",ok:!1,error:"claude_code_attachment_download_failed",message:U}}}let Z=()=>{},fe=!1,De=new Promise(U=>{Z=U}),ke=()=>{fe||(fe=!0,setImmediate(Z))},ge=xRe({content:W.content,sourceSeq:i,onInputDelivered:R,isLiveSteerAllowed:()=>!y,onInputWait:U=>{U===void 0&&ke()},onSourceSeqDelivered:U=>{Re.add(U),e.onLiveSourceSeqAccepted?.({channel:t,threadId:r,sourceSeq:U})}}),Re=new Set,Ee=new Set,I=0,$=ao(e.control.developerPrompt),K=qs(e.control.linzumiContext),ie=rl(e.options,e.control),pe=h(e.control.approvalPolicy)!==void 0,Y=e.claudeThreadAccessStore?.resolve(r),oe=pm(e.options),Fe=pe?ie.approvalPolicy:Y?.approvalPolicy??oe.approvalPolicy,ae=pe?ie.sandbox:Y?.sandbox??oe.sandbox,Ce=Fe===void 0?void 0:wp(Fe,ae),Yn=Ce!==void 0?bI(Ce):ie.approvalPolicy===void 0?void 0:bI(ie.approvalPolicy);if(Ce!==void 0&&e.claudeThreadAccessStore?.record(r,{approvalPolicy:Ce,sandbox:ae}),e.resumeSessionId!==void 0)try{await x4({cwd:e.cwd,sessionId:e.resumeSessionId,validator:e.options.claudeCodeSessionValidator})}catch(U){throw a(U instanceof Error?U.message:String(U)),U}let Jn={runnerIdentity:go(e.options.token),codexVersion:void 0},Dt=new AbortController,V=xp({stop:()=>{Dt.signal.aborted||Dt.abort(new Error("engine child reaper teardown"))},pid:void 0,ownProcessGroup:!1,kind:"claude_code"}),ce=new Set(i===void 0?[]:[i]),$e={value:void 0},_n=!1,mn,Be=[],Xe=!1,Mt,$r=ys({kandanUrl:e.options.kandanUrl,accessToken:e.options.token,fetchImpl:e.options.fetch,operatingMode:"text"}),Bo=s.trim().slice(0,2e3),Jo=iz({replacePlanSteps:$r.replaceCodingJobPlanSteps,threadId:r,goal:Bo,log:e.log}),N=async()=>{if(e.resumeSessionId!==void 0)return;let U=5e3,qe=new AbortController,te,be=new Promise(sn=>{te=setTimeout(()=>{qe.abort(new Error("claude goal seed timed out")),e.log("claude_code.goal_seed_timeout",{thread_id:r,timeout_ms:U}),sn()},U)});try{await Promise.race([sz({upsertCodingJobPlan:$r.upsertCodingJobPlan,threadId:r,goal:Bo,log:e.log,signal:qe.signal}),be])}finally{te!==void 0&&clearTimeout(te)}},ne=ez({instanceId:e.instanceId,cwd:e.cwd,threadKey:`${n}:${t}:${r}`,persistDir:e.options.claudeCodeRunner===void 0?om():void 0,wire:()=>({workspaceSlug:n,channelSlug:t,kandanThreadId:r,codexThreadId:d??e.resumeSessionId,rootSeq:o,leaseEpoch:e.leaseEpochFor?.(r)}),push:async(U,qe,te,be)=>{let sn=await e.kandan.push(e.topic,U,qe,be);if(Q(sn)&&sn.status==="ok")return sn;throw new Error(`kandan push failed: ${U}: ${JSON.stringify(sn).slice(0,500)}`)},preparePush:(U,qe)=>gg({kandan:e.kandan,topic:e.topic,workspace:n,channel:t,cwd:e.cwd,kandanUrl:e.options.kandanUrl,token:e.options.token,fetch:e.options.fetch,log:(te,be)=>e.log(te,be)},U,qe),runnerPayload:(U,qe,te,be)=>Ba({...e.options,cwd:e.cwd},e.instanceId,U,qe,Jn,te,be),currentSourceSeq:ge.currentSourceSeq,onTurnTerminal:(U,qe,te,be,sn)=>{e.log("claude_code.turn_terminal",{turn_id:U,outcome:qe,reason:te??null,thread_id:r,claude_session_id:d??null}),qe==="completed"&&sn!==void 0&&e.onLiveSourceSeqAccepted?.({channel:t,threadId:r,sourceSeq:sn}),S?.(),S=void 0},onTodoWriteCompleted:Jo.handleTodoWrite,suppressProcessingState:()=>{for(let U of e.pendingClaudeCodeApprovals.values())if(U.threadId===r)return!0;for(let U of e.pendingClaudeCodeUserQuestions.values())if(U.threadId===r)return!0;return!1},log:e.log,debugTrace:e.debugTrace}),re=e.options.claudeCodeRunner===void 0&&Nz(process.env)?Uz({captureDir:bt(uJ(),`linzumi-claude-live-bash-${e.instanceId}`),onOutputDelta:(U,qe)=>{d!==void 0&&ne.handleTranscriptEvent({type:"command_output_delta",sessionId:d,itemKey:U,delta:qe})},log:(U,qe)=>e.log(U,qe)}):void 0,ue,xe;try{let U=DJ(),qe=jI(e.options);ue=qe.cleanup;let te=ds({command:U.command,argsPrefix:U.argsPrefix,kandanUrl:e.options.kandanUrl,authFilePath:qe.path,ownerUsername:U0(e.options),operatingMode:"text",cwd:e.cwd,threadId:r,toolScope:e.options.codingJobToolScope,devServices:{scope:e.options.runnerId,ownerPid:LI(e.options)}});xe={[te.name]:{type:"stdio",command:te.command,args:[...te.args],env:{...te.env}}}}catch(U){ue?.(),ue=void 0,e.log("claude_code.mcp_config_failed",{message:U instanceof Error?U.message:String(U),thread_id:r})}let Te={kandan:e.kandan,topic:e.topic,workspace:n,channel:t,threadId:r,cwd:e.cwd,initialPrompt:s,rootSeq:o,log:e.log},on=new Map,et=async U=>{let qe=Date.now(),te=iC(U.rateLimit,qe);e.log("claude_code.rate_limit",{linzumi_thread_id:r,claude_session_id:U.sessionId??d??null,rate_limit_summary:`claude/${U.rateLimit.rateLimitType??"account"} ${te}`,status:U.rateLimit.status??null,utilization_percent:U.rateLimit.utilizationPercent??null,resets_at_ms:U.rateLimit.resetsAtMs??null});let be=U.rateLimit.rateLimitType??"account",sn=$Re(U.rateLimit);if(sn!==on.get(be))try{await LRe({kandan:e.kandan,topic:e.topic,workspace:n,channel:t,threadId:r,claudeSessionId:U.sessionId??d,rateLimit:U.rateLimit}),on.set(be,sn)}catch(Lr){e.log("claude_code.rate_limit_post_failed",{thread_id:r,message:Lr instanceof Error?Lr.message:String(Lr)})}},At=async U=>{if(I=Date.now(),e.debugTrace?.record("claude-transcript","transcript.event",{eventType:U.type,threadId:r,activeSessionId:d??null,event:U}),ku.observeTranscriptEvent(U),U.type==="tool_call"&&U.toolName==="Bash"){let te=h(U.input.command);te!==void 0&&Zg(r,te)}try{await TRe(Te,U)}catch(te){e.log("claude_code.session_store_mirror_failed",{session_id:U.sessionId??null,event_type:U.type,message:te instanceof Error?te.message:String(te)})}if(U.type==="session_started"){d=U.sessionId,e.log("claude_code.session_started",{linzumi_thread_id:r,claude_session_id:U.sessionId}),e.activeClaudeCodeSessions.set(U.sessionId,{abortController:Dt,workspace:n,channel:t,threadId:r,currentSourceSeq:ge.currentSourceSeq,pauseOutbox:()=>ne.pauseOutbox(),resumeOutbox:()=>ne.resumeOutbox(),inputDelivered:te=>Re.has(te)||Ee.has(te),lastSdkActivityMs:()=>I,enqueueInput:te=>{if(te.sourceSeq!==void 0&&ce.has(te.sourceSeq))return"duplicate";let be=ge.enqueue(te);return te.sourceSeq!==void 0&&ce.add(te.sourceSeq),be},closeInput:ge.close,hasActiveTurn:()=>ne.activeTurnId()!==void 0,sessionWork:()=>$e.value,steerTurn:ge.enqueueSteer,interruptTurn:async te=>{let be=ne.interruptActiveTurn(te);return await mn?.interrupt(),be},interruptTurnBeforeAbort:te=>{let be=mn;return dRe({reason:te,threadId:r,interruptActiveTurn:sn=>ne.interruptActiveTurn(sn),interruptSessionControls:be===void 0?void 0:()=>be.interrupt(),log:e.log})},discardQueuedFollowUpsForStop:()=>ge.drainUndeliveredFollowUps().map(be=>be.sourceSeq).filter(be=>be!==void 0),markFollowUpSeqDiscarded:te=>{Ee.add(te)},slashCommands:async()=>{if(Xe)return Be;let te=await mn?.supportedCommands();return Xe||te!==void 0&&(Be=te),Be},updateSettings:async te=>{let be={};if(te.model!==void 0&&(await mn?.setModel(wI(te.model)),be.model=te.model),te.approvalPolicy!==void 0){let sn=bI(te.approvalPolicy);sn!==void 0&&(await mn?.setPermissionMode(sn),be.approval_policy=te.approvalPolicy)}if(te.reasoningEffort!==void 0){let sn=GB(te.reasoningEffort);sn!==void 0&&(await mn?.setEffort?.(sn),be.reasoning_effort=te.reasoningEffort)}return be}}),e.ensureClaudeCodeForwardPortSession?.({sessionId:U.sessionId,workspace:n,channel:t,threadId:r,cwd:e.cwd,rootSeq:o,currentSourceSeq:ge.currentSourceSeq}),ne.handleTranscriptEvent(U),await e.kandan.push(e.topic,"session:bind",{workspace:n,channel:t,thread_id:r,codex_thread_id:U.sessionId,provider_session_key:U.sessionId,agent_provider:"claude-code",claude_session_id:U.sessionId,cwd:e.cwd,instance_id:e.instanceId}),c=!0,R();return}if(U.type==="slash_command_catalog"){Be=U.commands,U.source==="commands_changed"&&(Xe=!0);return}let qe=U.type==="turn_completed"||U.type==="turn_interrupted"||U.type==="session_completed"||U.type==="session_failed";if(qe){y=!0;let te=ne.activeTurnId(),be=!1,sn=()=>{},Lr=()=>{be=!0,sn()},Vh=new Promise(Pt=>{sn=Pt});S=Lr,ne.handleTranscriptEvent(U);let Wh=U.type==="turn_completed"||U.type==="turn_interrupted",jr=Wh||te!==void 0||be;try{jr?(await q(Vh,U),await ne.flush(NPe)):S===Lr&&(S=void 0)}catch(Pt){e.log("claude_code.terminal_typing_flush_timeout",{linzumi_thread_id:r,claude_session_id:U.sessionId,event_type:U.type,message:Pt instanceof Error?Pt.message:String(Pt)})}S===Lr&&(S=void 0),Wh&&(j(),ge.currentSourceSeq()!==void 0&&ke()),(U.type==="session_completed"||U.type==="session_failed")&&d!==void 0&&(e.activeClaudeCodeSessions.delete(d),await e.disposeClaudeCodeForwardPortSession?.(d)),U.type==="session_completed"&&ke(),y=!1,await B(),D(),P(),await Qg({threadKey:r,workspace:n,channel:t,threadId:r,push:(Pt,Je)=>e.kandan.push(e.topic,Pt,Je),log:(Pt,Je)=>e.log(Pt,Je)})}if((U.type==="turn_completed"||U.type==="session_completed")&&e.log("claude_code.turn_completed",{linzumi_thread_id:r,claude_session_id:U.sessionId,body_source:U.bodySource??null,body_preview:vd(U.body)}),U.type==="rate_limit"&&await et(U),U.type==="tool_result"&&re?.settleTool(U.itemKey),(U.type==="turn_interrupted"||U.type==="session_failed")&&re?.settleAll(),U.type==="session_failed"&&e.log("claude_code.session_failed",{linzumi_thread_id:r,claude_session_id:U.sessionId??null,model_transport_lane:Nt.lane,reason:U.reason,api_error_status:U.apiErrorProvenance?.status??null,api_error_request_id:U.apiErrorProvenance?.requestId??null,api_error_message:U.apiErrorProvenance?.message??null}),U.type==="usage"){let te=m4(U.usage);te!==void 0&&e.log("claude_code.token_usage",{linzumi_thread_id:r,claude_session_id:U.sessionId,token_usage_summary:te})}qe||ne.handleTranscriptEvent(U)},Gt=A(e.control.llmProxy),at=h(Gt?.baseUrl)?.trim(),Cr=h(Gt?.token)?.trim(),Nt=yq({env:process.env,llmProxyBindingPresent:at!==void 0&&at!==""&&Cr!==void 0&&Cr!=="",hostedLinzumiAgentContext:e.control.linzumiAgent!==void 0||e.options.threadProcess?.role==="thread"&&e.options.linzumiAgentMcpToken!==void 0,routedNonAnthropicModel:wJ(ie.model)!==void 0});e.log("claude_code.model_transport_lane",{linzumi_thread_id:r,lane:Nt.lane,credential_class:Nt.credentialClass,reason:Nt.reason});let ku=wq({lane:Nt.lane,workspace:n,channel:t,threadId:r,model:wI(ie.model),push:(U,qe)=>e.kandan.push(e.topic,U,qe),log:e.log}),Ko,Cu,Tu;if(Nt.lane==="llm_proxy"&&at!==void 0&&at!==""&&Cr!==void 0&&Cr!==""){try{Ko=await fq({upstreamBaseUrl:at,initialToken:Cr,log:(qe,te)=>e.log(qe,{linzumi_thread_id:r,...te}),debugTrace:e.debugTrace,debugTraceId:e.debugTrace===void 0?void 0:`claude-code:${e.instanceId}`,dispatcher:Xo()?.dispatcher,onUpstreamRateLimited:({retryAfterMs:qe})=>VB().notifyRateLimited({retryAfterMs:qe})});let U=Ko;Cu=mq({relay:Ko,mint:()=>MRe(e.kandan,e.topic,U.currentToken()),log:(qe,te)=>e.log(qe,{linzumi_thread_id:r,...te})})}catch(U){e.log("llm_proxy_relay.start_failed_fallback_to_env_token",{linzumi_thread_id:r,message:U instanceof Error?U.message:String(U)}),Ko=void 0,Cu=void 0}Tu=Ko!==void 0?QB(process.env,{baseUrl:Ko.baseUrl},ie.model):QB(process.env,{baseUrl:at,token:Cr},ie.model)}else Tu=DRe(process.env);let Bh=BPe(Tu),ip=()=>ge.currentSourceSeq()!==void 0&&!um({threadId:r,pendingApprovals:e.pendingClaudeCodeApprovals,pendingQuestions:e.pendingClaudeCodeUserQuestions}),ve=(U,qe)=>{if(vRe(U.toolName))return Promise.resolve({type:"allow"});let te=b4(U);switch(te.type){case"question":return(async()=>{await B();let be=await _J({kandan:e.kandan,topic:e.topic,pendingApprovals:e.pendingClaudeCodeApprovals,pendingQuestions:e.pendingClaudeCodeUserQuestions,workspace:n,channel:t,threadId:r,sessionId:d??e.resumeSessionId,sourceSeq:ge.currentSourceSeq(),request:U,questionRequest:te.request,kind:"question",approvalDecisions:void 0,leaseEpoch:e.leaseEpochFor?.(r),signal:qe});return R(),be})();case"invalid":return Promise.resolve({type:"deny",message:te.message});case"not_question":return bRe({kandan:e.kandan,topic:e.topic,pendingApprovals:e.pendingClaudeCodeApprovals,pendingQuestions:e.pendingClaudeCodeUserQuestions,workspace:n,channel:t,threadId:r,sessionId:d??e.resumeSessionId,sourceSeq:ge.currentSourceSeq(),request:U,leaseEpoch:e.leaseEpochFor?.(r),signal:qe})}},Pe=(async()=>{let U;await N(),await Fp({cwd:e.cwd,threadKey:r,turnRef:i===void 0?"session-start":`seq-${i}`,log:(te,be)=>e.log(te,be)});let qe=GB(ie.reasoningEffort);try{try{U=await y4({cwd:e.cwd,prompt:s,includeHookEvents:!0,developerInstructions:vp({cwd:e.cwd,agentLabel:"Claude Code",planTool:"todo-write",devServicesAvailable:!0,developerPrompt:$,...EI(e.control),linzumiContext:K}),model:wI(ie.model),...typeof qe=="string"?{effort:qe}:{},...e.debugTrace===void 0?{}:{claudeCodeDebugFile:bt(e.debugTrace.runDir,"claude-code-debug.log")},...Yn===void 0?{}:{permissionMode:Yn},resumeSessionId:e.resumeSessionId,abortController:Dt,streamingInput:ge,...e.options.claudeCodeRunner===void 0?{turnStallThresholdMs:yRe(process.env),turnStallIsActive:ip,apiWaitStatusThresholdMs:1e4,apiWaitStatusItemKey:te=>{let be=ge.currentSourceSeq();return be===void 0?void 0:`system:claude-api-wait:${be}:${te}`}}:{},runner:e.options.claudeCodeRunner,debugTrace:e.debugTrace,canUseTool:ve,...xe===void 0?{}:{mcpServers:xe},...re===void 0?{}:{preToolUseHookMatchers:re.hookMatchers,wrapApprovedToolInput:(te,be,sn)=>be==="Bash"?re.wrapApprovedTool(te,sn):void 0},env:Bh,allowedTools:["mcp__linzumi__*"],onSessionControls:te=>{mn=te,Yn==="bypassPermissions"&&(Mt=bJ({kandan:e.kandan,topic:e.topic,pendingClaudeCodeApprovals:e.pendingClaudeCodeApprovals,pendingClaudeCodeUserQuestions:e.pendingClaudeCodeUserQuestions,sessionThreadId:r,log:e.log,reason:"full_access_started"}).catch(be=>{e.log("claude_code.startup_approval_drain_failed",{linzumi_thread_id:r,claude_session_id:d??null,message:be instanceof Error?be.message:String(be)})}))},onTurnCompleted:()=>{v?v=!1:L(),ge.currentSourceSeq()!==void 0&&ke()},onTranscriptEvent:At})}finally{let be=ge.drainUndeliveredFollowUps().map(sn=>sn.sourceSeq).filter(sn=>sn!==void 0);be.length>0&&e.onUndeliveredFollowUpsAtClose!==void 0&&e.onUndeliveredFollowUpsAtClose({channel:t,threadId:r,sourceSeqs:be}),d!==void 0&&(e.activeClaudeCodeSessions.delete(d),await e.disposeClaudeCodeForwardPortSession?.(d)),await B(),ge.close(),ue?.(),re?.close()}}catch(te){throw ne.submitLifecycle("codexDied",te instanceof Error?te.message:String(te)),await ne.close(5e3).catch(()=>{}),await Promise.race([Jo.settle().catch(()=>{}),new Promise(be=>{setTimeout(be,5e3).unref?.()})]),a(te instanceof Error?te.message:String(te)),_n||e.setStartupStage("claude_code_session_failed"),te}return _n||e.setStartupStage("posting_claude_code_output"),await ne.awaitTurnsSettled(3e4),await ne.close(3e4),await Promise.race([Jo.settle(),new Promise(te=>{setTimeout(te,1e4).unref?.()})]),U})();Pe.finally(()=>V.unregister()).catch(()=>{}),Pe.finally(()=>{Cu?.stop(),Ko?.close()}).catch(()=>{}),$e.value=Pe;let Da,ap=e.options.claudeCodeRunner===void 0||process.env.LINZUMI_CLAUDE_DISPATCH_LIVENESS_MS!==void 0?ex({windowMs:Sf(process.env),isDelivered:()=>I>0,isSessionClosed:()=>!1,lastSdkActivityMs:()=>I,hasPendingBlockingRequest:()=>um({threadId:r,pendingApprovals:e.pendingClaudeCodeApprovals,pendingQuestions:e.pendingClaudeCodeUserQuestions}),log:e.log,onWedged:U=>{Da={waitedMs:U.waitedMs},e.log("claude_code.dispatch_liveness_wedged",{linzumi_thread_id:r,claude_session_id:d??e.resumeSessionId??null,waited_ms:U.waitedMs,cause:U.cause,dispatch:e.resumeSessionId===void 0?"initial_turn":"resume_turn"}),Dt.abort(new Vs(U.waitedMs))}}):void 0;Pe.finally(()=>ap?.stop()).catch(()=>{});let Pu;try{Pu=await Promise.race([Pe.then(U=>({type:"session_ended",result:U})),De.then(()=>({type:"first_turn_settled"}))])}catch(U){throw Da!==void 0&&!(U instanceof Vs)?new Vs(Da.waitedMs):U}finally{ap?.stop()}let ho=U=>({controlResponse:{instanceId:e.instanceId,controlType:e.control.type,agentProvider:"claude-code",cwd:e.cwd,matchedRoot:e.matchedRoot,response:{session:{id:U}}},providerSession:{provider:"claude-code",cwd:e.cwd,matchedRoot:e.matchedRoot,sessionId:U}});if(Pu.type==="session_ended")return ho(Pu.result.sessionId);e.setStartupStage("posting_claude_code_output"),_n=!0,await ne.awaitTurnsSettled(3e4);try{await ne.flush(3e4)}catch(U){e.log("claude_code.first_turn_flush_timeout",{linzumi_thread_id:r,claude_session_id:d??null,message:U instanceof Error?U.message:String(U)})}Mt!==void 0&&await Mt;let dp=await Promise.race([Pe.then(U=>({type:"session_ended",result:U}),()=>{}),new Promise(U=>{setImmediate(()=>U(void 0))})]);if(dp!==void 0)return ho(dp.result.sessionId);Pe.then(()=>{e.log("claude_code.session_loop_ended",{linzumi_thread_id:r,claude_session_id:d??null})},U=>{e.log("claude_code.session_loop_failed",{linzumi_thread_id:r,claude_session_id:d??null,message:U instanceof Error?U.message:String(U)})});let up=d??e.resumeSessionId;if(up!==void 0)return ho(up);let Kh=await Pe;return ho(Kh.sessionId)}function vRe(e){return e.startsWith("mcp__linzumi__")}function bI(e){switch(e){case"never":return"bypassPermissions";case"on-request":case"untrusted":return"default";case"on-failure":return"acceptEdits";default:return}}function GB(e){switch(e?.trim().toLowerCase()){case"default":return null;case"low":return"low";case"medium":return"medium";case"high":return"high";case"xhigh":return"xhigh";default:return}}function SRe(e,n){return[...e.entries()].filter(([,t])=>t.threadId===n)}function kRe(e,n){return[...e.entries()].flatMap(([t,r])=>{switch(r.kind){case"question":return[];case"tool_approval":case"plan_review":return r.threadId===n?[[t,r]]:[]}})}async function bJ(e){let n=SRe(e.pendingClaudeCodeApprovals,e.sessionThreadId);for(let[r,o]of n)o.resolve({type:"allow"}),await ri(e.kandan,e.topic,{workspace:o.workspace,channel:o.channel,threadId:o.threadId,sourceSeq:o.sourceSeq,status:"processing",reason:"Claude Code tool approved",sessionId:o.sessionId??e.sessionThreadId}),e.log("claude_code.approval_request_auto_approved",{request_id:r,source_seq:o.sourceSeq,session_id:o.sessionId??e.sessionThreadId,reason:e.reason});let t=kRe(e.pendingClaudeCodeUserQuestions,e.sessionThreadId);for(let[r,o]of t){let i=o.approvalDecisions.get("Allow")??{type:"allow"};o.resolve(i),await Qc(e.kandan,e.topic,{workspace:o.workspace,channel:o.channel,threadId:o.threadId,sourceSeq:o.sourceSeq,sessionId:o.sessionId,leaseEpoch:o.leaseEpoch,request:o.request,answerState:i.type==="deny"?{kind:"Denied",reason:i.message,actorUserId:e.actorUserId,actorSlug:e.actorSlug,answeredAt:new Date().toISOString()}:{kind:"Answered",answers:[{questionId:o.request.questions[0]?.questionId??`${r}:decision`,selectedLabels:["Allow"]}],actorUserId:e.actorUserId,actorSlug:e.actorSlug,answeredAt:new Date().toISOString()},streamState:"completed"}),e.log("claude_code.user_input_request_auto_approved",{request_id:r,source_seq:o.sourceSeq,session_id:o.sessionId??e.sessionThreadId,kind:o.kind,reason:e.reason})}}function CRe(e){return ey(e)}async function TRe(e,n){let t=IRe(n);if(t===void 0)return;let r=RRe(e,n);if(r===void 0)return;let o="root",i=PRe(`${e.workspace}:${e.cwd}:${t}:${o}`);await e.kandan.push(e.topic,"claude_session_store_append",{workspace:e.workspace,channel:e.channel,thread_id:e.threadId,cwd:e.cwd,sessionId:t,subkey:o,sequence:i,entryType:n.type,payload:r})}function PRe(e){let n=ZB.get(e),t=Date.now()*1e3,r=n===void 0?t:Math.max(n+1,t);return ZB.set(e,r),r}function IRe(e){switch(e.type){case"unknown":case"session_failed":return e.sessionId;default:return e.sessionId}}function RRe(e,n){switch(n.type){case"assistant_delta":case"slash_command_catalog":return;case"session_started":return{prompt:e.initialPrompt,threadId:e.threadId,rootSeq:e.rootSeq??null};case"assistant_message":return{itemKey:n.itemKey,body:n.content,streamState:n.streamState};case"tool_call":return{itemKey:n.itemKey,toolName:n.toolName,input:n.input};case"tool_result":return{itemKey:n.itemKey,toolName:n.toolName??null,body:n.content,isError:n.isError};case"reasoning_delta":return;case"reasoning_message":return{itemKey:n.itemKey,body:n.content};case"command_output":return{itemKey:n.itemKey,body:n.content};case"command_output_delta":return;case"usage":return{usage:n.usage};case"rate_limit":return{body:`Claude Code rate limit: ${iC(n.rateLimit,Date.now())}`,status:n.rateLimit.status??null,rate_limit_type:n.rateLimit.rateLimitType??null,utilization_percent:n.rateLimit.utilizationPercent??null,resets_at_ms:n.rateLimit.resetsAtMs??null};case"unknown":return{itemKey:n.itemKey,body:n.summary};case"turn_completed":case"session_completed":return{body:n.body,bodySource:n.bodySource??null,usage:n.usage??null};case"turn_interrupted":return{body:"Claude Code turn interrupted"};case"session_failed":return{body:n.reason};case"agent_status":case"agent_task_update":case"permission_mode_changed":return}}function DRe(e){let n={};for(let[t,r]of Object.entries(e))r!==void 0&&(n[t]=r);return n}async function MRe(e,n,t){let r=await e.push(n,"llm_proxy:mint_session_token",t!==void 0&&t!==""?{currentToken:t}:{});if(Q(r)&&r.status==="ok"&&Q(r.response)&&typeof r.response.token=="string"&&r.response.token!==""){let o=r.response.max_age_seconds;return{token:r.response.token,...typeof o=="number"&&Number.isFinite(o)&&o>0?{maxAgeMs:o*1e3}:{}}}}function QB(e,n,t){let r={};for(let[i,s]of Object.entries(e))s!==void 0&&(i==="ANTHROPIC_BASE_URL"||i==="ANTHROPIC_CUSTOM_HEADERS"||i.startsWith("CLAUDE_CODE_USE_")||(r[i]=s));r.ANTHROPIC_BASE_URL=n.baseUrl,n.token!==void 0&&(r.ANTHROPIC_CUSTOM_HEADERS=`${ERe}: ${n.token}`);let o=wJ(t);return o!==void 0&&(r.ANTHROPIC_DEFAULT_OPUS_MODEL=o,r.ANTHROPIC_DEFAULT_SONNET_MODEL=o,r.ANTHROPIC_DEFAULT_HAIKU_MODEL=o,r.CLAUDE_CODE_SUBAGENT_MODEL=o),r}function wJ(e){let n=e?.trim();switch(n){case void 0:case"":case"default":case"haiku":case"sonnet":case"opus":case"fable-5":return;default:return n.startsWith("claude")?void 0:n}}function wI(e){let n=e?.trim();switch(n){case void 0:case"":case"default":return;case"haiku":case"sonnet":case"opus":return n;case"fable-5":return"claude-fable-5";default:return ARe(n)?"sonnet":n}}function ARe(e){let n=e.toLowerCase();return n.startsWith("gpt-")||n.startsWith("o1")||n.startsWith("o3")||n.startsWith("o4")||n.startsWith("o5")||n.startsWith("codex")}async function ORe(e,n,t,r,o){let i=pn(t,"workspace"),s=pn(t,"channel"),a=pn(t,"threadId"),d=h(t.modelProvider)?.trim(),u=h(t.model)?.trim();i===void 0||s===void 0||a===void 0||await e.push(n,"session:post_thread_message",{workspace:i,channel:s,thread_id:a,body:`Starting a new Codex thread with instructions:
1521
+ `)},promptYesNo:n=>KIe(n)}}function KIe(e){return new Promise(n=>{let t=DPe({input:process.stdin,output:process.stderr});t.question(e,r=>{t.close(),n(/^y(es)?$/i.test(r.trim()))})})}function FB(e,n,t){return{isPidAlive:n?.isPidAlive??VIe,signalPid:n?.signalPid??((r,o)=>{process.kill(r,o)}),lockReleased:n?.lockReleased??(()=>!Yc(e)),currentLockOwner:n?.currentLockOwner??(()=>fd(e)),sleep:n?.sleep??L9,now:n?.now??(()=>Date.now()),log:n?.log??((r,o)=>{t(r,o),me(r,o)})}}function VIe(e){try{return process.kill(e,0),!0}catch(n){return(n!==null&&typeof n=="object"&&"code"in n?n.code:void 0)!=="ESRCH"}}function WIe(e,n,t,r,o,i){let s=ZIe(n,r,o,i);me("process.spawn",{command:e,args:s,cwd:t,purpose:"codex.tui"});let a=q0(e,s,{cwd:t,env:process.env,stdio:"inherit"});return me("process.spawned",{command:e,args:s,cwd:t,pid:a.pid,purpose:"codex.tui"}),a.once("exit",(d,u)=>{me("process.exit",{command:e,args:s,cwd:t,pid:a.pid,code:d,signal:u,purpose:"codex.tui"})}),a}async function HIe(e){await Promise.all(Array.from(e,n=>n.handleKandanReconnect()))}function GIe(e,n){if(!Array.isArray(e))return;let t=e.find(r=>Q(r)&&typeof r.name=="string"&&r.name.toLowerCase()===n.toLowerCase()&&typeof r.value=="string");return Q(t)&&typeof t.value=="string"?t.value:void 0}function ZIe(e,n,t,r){let o=XIe(t,r);return n===void 0?["--remote",e,...o]:["resume","--remote",e,...o,n]}function QIe(e,n){let t=new Set(n);return e!==void 0&&t.add(e),Array.from(t).sort((r,o)=>r-o)}function CI(e){let n=new URL(e);if(n.port==="")return;let t=Number.parseInt(n.port,10);if(!Number.isInteger(t)||t<=0||t>65535)throw new Error(`invalid Kandan URL port: ${e}`);return t}function XIe(e,n){let t=e?.model===void 0?[]:["--model",e.model],r=e?.reasoningEffort===void 0?[]:["-c",`model_reasoning_effort="${e.reasoningEffort}"`],o=n===!0?["-c",'service_tier="fast"']:[];return[...t,...r,...o]}async function YIe(e,n){let t=await e.request("thread/resume",{threadId:n});if(!("error"in t))return;if(!t.error.message.includes("no rollout found"))throw new Error(`failed to prepare Codex TUI resume: ${t.error.message}`);let r=await e.request("thread/inject_items",{threadId:n,items:[{type:"agentMessage",text:""}]});if("error"in r)throw new Error(`failed to prepare Codex TUI resume: ${r.error.message}`);let o=await e.request("thread/resume",{threadId:n});if("error"in o)throw new Error(`failed to verify Codex TUI resume: ${o.error.message}`)}async function eRe(e,n,t,r){if(t.workspace===void 0||t.channel===void 0||t.threadId===void 0)return[];try{let o=await e.push(n,"session:thread_context",{workspace:t.workspace,channel:t.channel,thread_id:t.threadId});if(Q(o)&&o.status==="ok"&&Q(o.response))return ty(o.response.messages);r("kandan.reconnect_thread_context_fetch_failed",{thread_id:t.threadId,reply:JSON.stringify(o).slice(0,300)})}catch(o){r("kandan.reconnect_thread_context_fetch_failed",{thread_id:t.threadId,message:o instanceof Error?o.message:String(o)})}return[]}async function tRe(e,n,t,r){if(!(t.workspace===void 0||t.channel===void 0||t.threadId===void 0))try{let o=[],i,s,a,d=0;for(let u=0;u<nRe;u+=1){let c=await e.push(n,"session:thread_transcript",{workspace:t.workspace,channel:t.channel,thread_id:t.threadId,...a===void 0?{}:{cursor:a}});if(!Q(c)||c.status!=="ok"||!Q(c.response))return r("kandan.reconnect_thread_transcript_fetch_failed",{thread_id:t.threadId,page:u,reply:JSON.stringify(c).slice(0,300)}),u===0?void 0:{nodes:o,budget:i,threadTitle:s};let l=a8(c.response);if(l===void 0)return u===0?void 0:{nodes:o,budget:i,threadTitle:s};i=i??l.budget,s=s??l.threadTitle,o=[...l.nodes,...o],d+=l.nodes.reduce((f,y)=>y.kind==="reasoning"?f:f+y.body.length,0);let p=i?.maxEmissionTokens,m=p!==void 0&&d/4>=p;if(!l.hasMore||l.cursor===void 0||m)break;a=l.cursor}return{nodes:o,budget:i,threadTitle:s}}catch(o){r("kandan.reconnect_thread_transcript_fetch_failed",{thread_id:t.threadId,message:o instanceof Error?o.message:String(o)})}}async function qB(e,n,t,r,o,i){i("kandan.reconnect_thread_unarchive_started",{codex_thread_id:n,discovered_by:r,message:o});try{let s=await Qo("thread/unarchive",e.request("thread/unarchive",{threadId:n}));if("error"in s)throw new Error(`thread/unarchive failed: ${s.error.message}`);let a=await Qo("thread/resume",e.request("thread/resume",t));if("error"in a)throw new Error(`thread/resume after unarchive failed: ${a.error.message}`);return i("kandan.reconnect_thread_unarchive_resumed",{codex_thread_id:n,discovered_by:r}),{mode:"resumed"}}catch(s){let a=s instanceof Error?s.message:String(s);throw i("kandan.reconnect_thread_unarchive_failed",{codex_thread_id:n,discovered_by:r,archive_error:o,message:a}),new Error(r==="forced_inject_not_found"?`thread/inject_items failed: ${o}; archive recovery failed: ${a}`:a)}}async function iRe(e,n,t,r){let o={threadId:n,...t},i;if(r.forceRehydrate===!0)i="the server marked the durable engine session dead after an acknowledged-but-unexecuted turn";else{let a=await Qo("thread/resume",e.request("thread/resume",o));if(!("error"in a))return{mode:"resumed"};if(rRe(a.error.message))return await qB(e,n,o,"resume_archived",a.error.message,r.log);i=a.error.message}r.log(r.forceRehydrate===!0?"kandan.reconnect_thread_rehydrate_forced":"kandan.reconnect_thread_resume_failed",{codex_thread_id:n,message:i,forced:r.forceRehydrate===!0,rehydrating:!0});let s;try{let a;try{a=await r.buildRehydrationItems?.(i)}catch(c){r.log("kandan.reconnect_thread_rehydration_items_failed",{codex_thread_id:n,message:c instanceof Error?c.message:String(c)}),a=void 0}let d=a!==void 0&&a.length>0?[...a]:[{type:"agentMessage",text:await r.buildRehydrationText(i)}],u=await Qo("thread/inject_items",e.request("thread/inject_items",{threadId:n,items:d}));if("error"in u){if(r.forceRehydrate===!0&&oRe(u.error.message))return await qB(e,n,o,"forced_inject_not_found",u.error.message,r.log);s=`thread/inject_items failed: ${u.error.message}`}else{let c=await Qo("thread/resume",e.request("thread/resume",o));"error"in c&&(s=`rehydrated thread/resume failed: ${c.error.message}`)}}catch(a){s=a instanceof Error?a.message:String(a)}if(s!==void 0)throw r.log("kandan.reconnect_thread_rehydration_failed",{codex_thread_id:n,resume_failure:i,rehydration_failure:s}),new Error(`could not resume this thread's engine session (${i}) and rebuilding a fresh session from the thread transcript also failed (${s})`);return r.log("kandan.reconnect_thread_rehydrated",{codex_thread_id:n,resume_failure:i}),{mode:"rehydrated",resumeFailure:i}}async function sRe(e,n,t,r,o){let i="agent_provider_unavailable:codex";if(o("kandan.start_instance_codex_app_server_unavailable",{controlType:r.type,thread_id:ti(r)??null,instanceId:t}),r.type==="start_instance"||r.type==="reconnect_thread")try{await vo(e,n,r,"failed",i,{instanceId:t,failureClass:"engine_unavailable"})}catch(s){o("kandan.start_instance_unavailable_state_push_failed",{agent_provider:"codex",message:s instanceof Error?s.message:String(s)})}throw new Error(i)}async function zB(e,n,t,r,o,i,s,a,d,u,c,l,p,m,f,y,_,w,S,v,b,k,R,P,L,D,j){if(e===void 0)switch(f.type){case"remote_codex_exec":case"remote_codex_exec_cancel":return await gI(f,r,s.value,a,d,y);case"list_agent_slash_commands":case"resolve_claude_user_input_request":case"deny_claude_user_input_request":case"clone_repository":break;case"set_workspace_viewport":break;case"start_instance":case"reconnect_thread":{let E=dm(f);if(E.type==="ok"&&E.provider==="claude-code"||S!==void 0)break;return await sRe(n,t,r,f,y)}default:return{instanceId:r,controlType:f.type,requestId:"requestId"in f?h(f.requestId)??null:null,ok:!1,error:"agent_provider_unavailable:codex"}}let q=()=>{if(e===void 0)throw new Error("shared codex app-server connection is unavailable");return e};switch(f.type){case"set_workspace_viewport":return xIe(o.kandanUrl,f.url),{instanceId:r,controlType:f.type,ok:!0,url:f.url};case"start_instance":{let E=zr(f.cwd,s.value),B=dm(f),z="starting_codex_session",W;switch(B.type){case"ok":break;case"unsupported":return{instanceId:r,controlType:f.type,ok:!1,error:`agent_provider_unsupported:${B.value}`}}let Z=B.provider;if(!E.ok){y("kandan.start_instance_cwd_rejected",{thread_id:ti(f)??null,reason:E.reason,allowedCwdCount:s.value.length});try{await XB(n,t,f,E.reason,s.value,{instanceId:r})}catch(Ee){y("kandan.start_instance_cwd_failed_state_push_failed",{reason:E.reason,message:Ee instanceof Error?Ee.message:String(Ee)})}return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:E.reason,allowedCwds:s.value}}if(!i.includes(Z)){try{await vo(n,t,f,"failed",BB(Z),{instanceId:r,failureClass:"engine_unavailable"})}catch(Ee){y("kandan.start_instance_unavailable_state_push_failed",{agent_provider:Z,message:Ee instanceof Error?Ee.message:String(Ee)})}return{instanceId:r,controlType:f.type,ok:!1,error:`agent_provider_unavailable:${Z}`}}let fe=ra(f,"processing",`starting ${fRe(Z)} session`,{instanceId:r});fe!==void 0&&n.push(t,"message_state",fe).catch(Ee=>{y("kandan.start_instance_processing_state_push_failed",{message:Ee instanceof Error?Ee.message:String(Ee)})});try{let Ee=await S?.(f,E.cwd);if(Ee!==void 0)return Ee;if(Z==="codex"){let be=KB(o,f);if(be!==void 0){try{await vo(n,t,f,"failed",be,{instanceId:r,failureClass:"provider_binding_rejected"})}catch(Re){y("kandan.start_instance_wafer_state_push_failed",{message:Re instanceof Error?Re.message:String(Re)})}return{instanceId:r,controlType:f.type,ok:!1,error:be}}}return Z==="claude-code"?(z="starting_claude_code_session",(await WB({kandan:n,topic:t,control:f,options:o,log:y,debugTrace:_,instanceId:r,cwd:E.cwd,matchedRoot:E.matchedRoot,activeClaudeCodeSessions:u,pendingClaudeCodeApprovals:c,pendingClaudeCodeUserQuestions:l,ensureClaudeCodeForwardPortSession:p,disposeClaudeCodeForwardPortSession:m,resumeSessionId:ao(f.resumeSessionId),leaseEpochFor:b,onLiveSourceSeqAccepted:k,onUndeliveredFollowUpsAtClose:P,claudeThreadAccessStore:j,setStartupStage:Re=>{z=Re}})).controlResponse):(await xJ({codex:q(),kandan:n,topic:t,control:f,options:o,instanceId:r,cwd:E.cwd,matchedRoot:E.matchedRoot,onStartedThread:w,startAgentReplayCodex:v,setStartupStage:be=>{z=be},setStartedCodexThreadId:be=>{W=be}})).controlResponse}catch(Ee){let _e=NB(z,Ee);y("kandan.start_instance_failed",{stage:z,message:Ee instanceof Error?Ee.message:String(Ee),thread_id:pn(f,"threadId")??null,source_seq:X(f.sourceSeq)??X(f.rootSeq)??null,codex_thread_id:W??null});try{await vo(n,t,f,"failed",_e,{codexThreadId:W,instanceId:r,failureClass:UB(z)})}catch{}throw Ee}}case"reconnect_thread":{let E=zr(f.cwd,s.value),B=dm(f),z="starting_codex_session";if(!E.ok){try{await XB(n,t,f,E.reason,s.value,{instanceId:r})}catch(Re){y("kandan.reconnect_thread_cwd_failed_state_push_failed",{reason:E.reason,message:Re instanceof Error?Re.message:String(Re)})}return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:E.reason,allowedCwds:s.value}}switch(B.type){case"ok":break;case"unsupported":return{instanceId:r,controlType:f.type,ok:!1,error:`agent_provider_unsupported:${B.value}`}}let W=B.provider;if(!i.includes(W)){try{await vo(n,t,f,"failed",BB(W),{instanceId:r,failureClass:"engine_unavailable"})}catch(Re){y("kandan.reconnect_thread_unavailable_state_push_failed",{agent_provider:W,message:Re instanceof Error?Re.message:String(Re)})}return{instanceId:r,controlType:f.type,ok:!1,error:`agent_provider_unavailable:${W}`}}let Z=ao(f.codexThreadId);if(Z===void 0)return{instanceId:r,controlType:f.type,ok:!1,error:"missing_codex_thread_id"};let fe=ao(f.workDescription),Ee=await S?.(f,E.cwd);if(Ee!==void 0)return Ee;if(W==="codex"){let Re=KB(o,f);if(Re!==void 0)return{instanceId:r,controlType:f.type,ok:!1,error:Re}}if(W==="claude-code"){let Re=u.get(Z);if(Re!==void 0&&fe!==void 0){let Ae=X(f.rootSeq),I=X(f.sourceSeq)??Ae,$=ie=>{let Fe=ie.disposition==="parked"?ra(f,"queued",Zu(ie.queuePosition),{instanceId:r,codexThreadId:Z}):ra(f,"processing","queued Claude Code input",{instanceId:r,codexThreadId:Z});Fe!==void 0&&n.push(t,"message_state",Fe).catch(ae=>{y("kandan.reconnect_thread_queue_state_push_failed",{message:ae instanceof Error?ae.message:String(ae)})})},K=Ho(ze(f.attachments)??[]),re=await Av({cwd:E.cwd,kandanUrl:o.kandanUrl,token:o.token,fetch:o.fetch,attachmentDirectoryName:"local-claude-code-attachments"},{seq:I,body:fe,attachments:K}).then(ie=>({ok:!0,content:ie})).catch(ie=>({ok:!1,error:ie}));if(!re.ok){let ie=re.error instanceof Error?re.error.message:String(re.error),Fe=`Claude Code input attachment download failed: ${ie}`;try{await vo(n,t,f,"failed",Fe,{instanceId:r,codexThreadId:Z,failureClass:"attachment_download_failed"})}catch(ae){y("kandan.reconnect_thread_queue_failed_state_push_failed",{message:ae instanceof Error?ae.message:String(ae)})}return{instanceId:r,controlType:f.type,agentProvider:"claude-code",ok:!1,error:"claude_code_attachment_download_failed",message:ie}}let pe=pn(f,"threadId"),Y=pn(f,"channel");if(I!==void 0&&pe!==void 0&&Y!==void 0&&R?.(Y,pe,{seq:I,type:"thread.message",actorKind:void 0,actorSlug:void 0,actorUserId:void 0,threadId:pe,threadTitle:void 0,replyToSeq:X(f.rootSeq),localRunnerEventType:void 0,body:fe,attachments:K,traceparent:h(f.traceparent)}),Y!==void 0&&pe!==void 0&&L?.({channel:Y,threadId:pe,sourceSeq:I})===!0)return y("claude_code.message_duplicate_ignored",{linzumi_thread_id:pe,claude_session_id:Z,body_preview:vd(fe),source_seq:I??null}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",cwd:E.cwd,matchedRoot:E.matchedRoot,codexThreadId:Z,queuedInput:!0,duplicate:!0};await Fp({cwd:E.cwd,threadKey:Re.threadId,turnRef:I===void 0?`followup-${Date.now()}`:`seq-${I}`,log:(ie,Fe)=>y(ie,Fe)});try{let ie=Re.enqueueInput({content:re.content,sourceSeq:I});if(ie==="duplicate")return y("claude_code.message_duplicate_ignored",{linzumi_thread_id:pn(f,"threadId")??null,claude_session_id:Z,body_preview:vd(fe),source_seq:I??null}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",cwd:E.cwd,matchedRoot:E.matchedRoot,codexThreadId:Z,queuedInput:!0,duplicate:!0};$(ie),y("claude_code.message_queued",{linzumi_thread_id:pn(f,"threadId")??null,claude_session_id:Z,body_preview:vd(fe),message_received_at_ms:Date.now(),source_seq:I??null}),_?.record("commander","claude.input_queued",{linzumiThreadId:pn(f,"threadId")??null,claudeSessionId:Z,sourceSeq:I??null,bodyPreview:vd(fe)})}catch(ie){let Fe=ie instanceof Error?ie.message:String(ie),ae=`Claude Code input queue closed: ${Fe}`;try{await vo(n,t,f,"failed",ae,{instanceId:r,codexThreadId:Z,failureClass:"claude_input_queue_closed"})}catch(Ce){y("kandan.reconnect_thread_queue_closed_state_push_failed",{message:Ce instanceof Error?Ce.message:String(Ce)})}return{instanceId:r,controlType:f.type,agentProvider:"claude-code",ok:!1,error:"claude_code_session_closed",message:Fe}}if(I!==void 0){let ie=I,Fe=Re,ae="Claude Code session did not respond after resume - send your message again to start fresh",Ce=D;ex({windowMs:Ce?.windowMs??Sf(process.env),isDelivered:()=>Fe.inputDelivered(ie),isSessionClosed:()=>_s(u,[Z],[Fe.threadId])===void 0,lastSdkActivityMs:()=>Fe.lastSdkActivityMs(),hasPendingBlockingRequest:()=>um({threadId:Fe.threadId,pendingApprovals:c,pendingQuestions:l}),log:y,onWedged:Yn=>{let Jn=Ce?.recordWedge(Fe.threadId,ie)??Number.MAX_SAFE_INTEGER;y("claude_code.dispatch_liveness_wedged",{linzumi_thread_id:Fe.threadId,claude_session_id:Z,source_seq:ie,waited_ms:Yn.waitedMs,cause:Yn.cause,attempt:Ce===void 0?null:Jn,dispatch:"queued_input"});let Dt=()=>{Ce?.clear(Fe.threadId,ie),vo(n,t,f,"failed",ae,{instanceId:r,codexThreadId:Z,failureClass:"claude_dispatch_wedged"}).catch(V=>{y("claude_code.dispatch_wedged_state_push_failed",{linzumi_thread_id:Fe.threadId,source_seq:ie,message:V instanceof Error?V.message:String(V)})})};if(Ce!==void 0&&Jn===1){vo(n,t,f,"processing","restarting Claude Code session to recover this message",{instanceId:r,codexThreadId:Z}).catch(()=>{}),Ce.killAndRespawn({threadId:Fe.threadId,claudeSessionId:Z,reason:`claude_dispatch_liveness: no SDK output within ${Yn.waitedMs}ms of queued input (seq ${ie})`}).then(V=>{V==="no_replay_path"&&Dt()}).catch(V=>{y("claude_code.dispatch_supervisor_respawn_failed",{linzumi_thread_id:Fe.threadId,source_seq:ie,message:V instanceof Error?V.message:String(V)}),Dt()});return}Dt()}})}return{instanceId:r,controlType:f.type,agentProvider:"claude-code",cwd:E.cwd,matchedRoot:E.matchedRoot,codexThreadId:Z,queuedInput:!0}}if(Re!==void 0)return{instanceId:r,controlType:f.type,agentProvider:"claude-code",ok:!1,error:"claude_code_active_session_requires_work_description"};{let Ae=pn(f,"threadId"),I=pn(f,"channel"),$=X(f.sourceSeq)??X(f.rootSeq);if(fe!==void 0&&Ae!==void 0&&I!==void 0&&$!==void 0&&L?.({channel:I,threadId:Ae,sourceSeq:$})===!0)return y("claude_code.replayed_turn_already_applied_ignored",{linzumi_thread_id:Ae,claude_session_id:Z,body_preview:vd(fe),source_seq:$,replayed:f.replayed===!0}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",cwd:E.cwd,matchedRoot:E.matchedRoot,codexThreadId:Z,queuedInput:!0,duplicate:!0}}try{let Ae=ra(f,"processing","resuming Claude Code session",{instanceId:r,codexThreadId:Z});return Ae!==void 0&&n.push(t,"message_state",Ae).catch($=>{y("kandan.reconnect_thread_processing_state_push_failed",{message:$ instanceof Error?$.message:String($)})}),z="starting_claude_code_session",(await WB({kandan:n,topic:t,control:f,options:o,log:y,debugTrace:_,instanceId:r,cwd:E.cwd,matchedRoot:E.matchedRoot,resumeSessionId:Z,activeClaudeCodeSessions:u,pendingClaudeCodeApprovals:c,pendingClaudeCodeUserQuestions:l,ensureClaudeCodeForwardPortSession:p,disposeClaudeCodeForwardPortSession:m,leaseEpochFor:b,onLiveSourceSeqAccepted:k,onUndeliveredFollowUpsAtClose:P,claudeThreadAccessStore:j,setStartupStage:$=>{z=$}})).controlResponse}catch(Ae){let I=NB(z,Ae);y("kandan.reconnect_thread_failed",{stage:z,message:Ae instanceof Error?Ae.message:String(Ae),thread_id:pn(f,"threadId")??null,source_seq:X(f.sourceSeq)??X(f.rootSeq)??null,agent_provider:W,provider_session_key:Z});try{await vo(n,t,f,"failed",I,{codexThreadId:Z,instanceId:r,failureClass:UB(z)})}catch{}throw Ae}}o.codexUrl===void 0&&ax(E.cwd,{configHome:Ws()});let _e=rl(o,f),be=w===void 0?void 0:await Qo("thread/attach",w(f,E.cwd,Z));if(fe!==void 0){let Re=X(f.rootSeq),Ae=X(f.sourceSeq)??Re;if(be===void 0||Ae===void 0)throw new Error("cannot reconnect a Kandan thread without a session");let I=pn(f,"channel"),$=pn(f,"threadId");if(I!==void 0&&$!==void 0&&L?.({channel:I,threadId:$,sourceSeq:Ae})===!0)return y("kandan.reconnect_thread_seq_already_applied",{linzumi_thread_id:$,codex_thread_id:Z,source_seq:Ae}),{instanceId:r,controlType:f.type,cwd:E.cwd,matchedRoot:E.matchedRoot,codexThreadId:Z,duplicate:!0};let K=pn(f,"workspace"),re=await iRe(q(),Z,bp({cwd:E.cwd,fast:_e.fast,channelSession:{model:_e.model,reasoningEffort:_e.reasoningEffort,approvalPolicy:_e.approvalPolicy,sandbox:_e.sandbox,sandboxedApprovalNeverDefault:_e.sandboxedApprovalNeverDefault}}),{forceRehydrate:f.sessionRehydrate===!0,log:y,buildRehydrationItems:async ie=>{let Fe=await tRe(n,t,{workspace:K,channel:I,threadId:$},y);if(Fe===void 0||Fe.nodes.length===0)return;let ae=d8({nodes:Fe.nodes,budget:Fe.budget,resumeFailure:ie,threadTitle:Fe.threadTitle,linzumiContext:qs(f.linzumiContext)});return y("kandan.reconnect_thread_rehydration_ir_emitted",{linzumi_thread_id:$,codex_thread_id:Z,emitted_nodes:ae.emittedNodeCount,omitted_nodes:ae.omittedNodeCount,redacted_reasoning:ae.redactedReasoningCount,emitted_token_estimate:ae.emittedTokenEstimate,max_emission_tokens:ae.maxEmissionTokens}),ae.items},buildRehydrationText:async ie=>uj({messages:await eRe(n,t,{workspace:K,channel:I,threadId:$},y),resumeFailure:ie,linzumiContext:qs(f.linzumiContext)})});if(re.mode==="rehydrated"){me("runner.thread_resume_rehydrated",{purpose:"linzumi.thread_runner",threadId:$??null,codexThreadId:Z,sourceSeq:Ae,resumeFailure:re.resumeFailure});try{await vo(n,t,f,"processing","rebuilt the coding session from durable thread history after an unresumable engine session",{codexThreadId:Z,instanceId:r})}catch(ie){y("kandan.reconnect_thread_rehydrated_state_push_failed",{message:ie instanceof Error?ie.message:String(ie)})}}let pe=go(o.token),Y=Ho(ze(f.attachments)??[]);await be.startThreadMessageTurn({seq:Ae,body:fe,actorSlug:pe.actorUsername,actorUserId:pe.actorUserId,attachments:Y,boundStartTimeout:!0})}return{instanceId:r,controlType:f.type,cwd:E.cwd,matchedRoot:E.matchedRoot,codexThreadId:Z}}case"list_claude_code_sessions":{let E=zr(f.cwd,s.value);if(!E.ok)return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:E.reason};if(!i.includes("claude-code"))return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:"agent_provider_unavailable:claude-code"};let B;try{B=await _4({cwd:E.cwd,limit:X(f.limit),messagesPerSession:X(f.messagesPerSession),provider:o.claudeCodeSessionHistoryProvider})}catch(z){return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:z instanceof Error?`claude_code_session_history_failed:${z.message}`:"claude_code_session_history_failed"}}return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!0,cwd:E.cwd,matchedRoot:E.matchedRoot,sessions:B}}case"list_agent_slash_commands":{let E=zr(f.cwd,s.value);if(!E.ok)return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:E.reason};let B=h(f.agentProvider)??"claude-code";if(B!=="claude-code")return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:`agent_provider_unsupported:${B}`};if(!i.includes("claude-code"))return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:"agent_provider_unavailable:claude-code"};let z=h(f.providerSessionKey),W=z===void 0?void 0:u.get(z);if(W===void 0)return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:"no_active_claude_session"};try{return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!0,cwd:E.cwd,matchedRoot:E.matchedRoot,provider:"claude-code",providerSessionKey:z,commands:await W.slashCommands()}}catch(Z){return{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,ok:!1,error:Z instanceof Error?`agent_slash_commands_failed:${Z.message}`:"agent_slash_commands_failed"}}}case"browse_directory":return f2e(f,o);case"create_project":return y2e(f,o,s);case"clone_repository":return await w2e(f,o,s);case"suggest_tasks":return S2e(f,o,s.value,{kandan:n,topic:t});case"remote_codex_exec":return await gI(f,r,s.value,a,d,y);case"remote_codex_exec_cancel":return await gI(f,r,s.value,a,d,y);case"start_turn":{let E=await q().request("turn/start",{threadId:f.threadId,input:f.input});return{instanceId:r,controlType:f.type,response:E}}case"steer_turn":{let E=_s(u,[f.providerSessionKey,f.threadId],[f.threadId]);if(E!==void 0){let Z=CRe(f.input);if(Z===void 0)return{instanceId:r,controlType:f.type,agentProvider:"claude-code",ok:!1,error:"claude_code_steer_requires_text_input"};let fe;try{fe=E.steerTurn(Z)}catch(Ae){let I=Ae instanceof Error?Ae.message:String(Ae);return y("claude_code.steer_failed",{thread_id:f.threadId,message:I}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",ok:!1,error:"claude_code_steer_failed",message:I,threadId:f.threadId}}if(!await lRe(fe.applied))return y("claude_code.steer_not_applied",{thread_id:f.threadId,steered:fe.steered}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",ok:!1,error:"claude_code_steer_not_applied",message:"The turn finished before the steering message could be applied. Linzumi will retry it as its own message automatically; if nothing happens shortly, send it as a new message.",threadId:f.threadId};let _e=X(f.sourceSeq),be=h(f.workspace),Re=h(f.channel);return _e!==void 0&&be!==void 0&&Re!==void 0&&n.push(t,"message_state",{workspace:be,channel:Re,thread_id:f.threadId,instance_id:r,seq:_e,status:"processed",reason:qp,agent_provider:"claude-code"}).catch(Ae=>{y("claude_code.steer_terminal_state_push_failed",{thread_id:f.threadId,seq:_e,message:Ae instanceof Error?Ae.message:String(Ae)})}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",steered:fe.steered,threadId:f.threadId}}let B=f.providerSessionKey??f.threadId,z=h(f.turnId);if(z===void 0)return{instanceId:r,controlType:f.type,agentProvider:"codex",threadId:f.threadId,ok:!1,error:"codex_steer_target_turn_unknown",message:"No live session tracks this thread, so the running turn cannot be steered from here. Linzumi will run the message as its own turn instead."};let W=await q().request("turn/steer",{threadId:B,expectedTurnId:z,input:Yg(f.input)});return{instanceId:r,controlType:f.type,response:W}}case"interrupt_turn":{let E=_s(u,[f.threadId]);if(E!==void 0){let z=await E.interruptTurn("Interrupted by Linzumi");return{instanceId:r,controlType:f.type,agentProvider:"claude-code",interrupted:z,threadId:f.threadId}}let B=await q().request("turn/interrupt",{threadId:f.threadId,turnId:f.turnId??null});return{instanceId:r,controlType:f.type,response:B}}case"rewind_thread":return u.get(f.threadId)!==void 0||f.agentProvider==="claude-code"?{instanceId:r,controlType:f.type,agentProvider:"claude-code",requestId:h(f.requestId)??null,threadId:f.threadId,ok:!1,error:"claude_code_rewind_unsupported",message:"Claude Code does not support rewind yet"}:{instanceId:r,controlType:f.type,requestId:h(f.requestId)??null,threadId:f.threadId,ok:!1,error:"rewind_not_supported",message:"This runner does not support rewinding threads yet"};case"interrupt_queued_messages":{let E=h(f.agentProvider)?.trim();if(E!=="claude-code"){let W=await q().request("turn/interrupt",{threadId:f.threadId,turnId:null});return{instanceId:r,controlType:f.type,response:W}}let B=_s(u,[f.threadId]);if(B===void 0)return{instanceId:r,controlType:f.type,agentProvider:E,ok:!1,error:"claude_code_session_not_active"};await B.interruptTurn("Claude Code interrupted by Linzumi"),B.abortController.abort(new Error("Claude Code interrupted by Linzumi"));let z=X(f.throughSeq)??B.currentSourceSeq();if(z!==void 0)try{await ri(n,t,{workspace:B.workspace,channel:B.channel,threadId:B.threadId,sourceSeq:z,status:"failed",reason:"Claude Code interrupted by Linzumi",sessionId:f.threadId})}catch(W){y("kandan.claude_code_interrupt_state_push_failed",{message:W instanceof Error?W.message:String(W),thread_id:B.threadId,source_seq:z,claude_session_id:f.threadId})}return{instanceId:r,controlType:f.type,agentProvider:E,interrupted:!0,threadId:f.threadId}}case"stop_turn":{let E=_s(u,[f.threadId,f.providerSessionKey],[f.threadId]);if(E!==void 0){let z=await uRe({activeSession:E,sessionKey:f.providerSessionKey??f.threadId,publishMessageState:W=>ri(n,t,W),log:y});return y("claude_code.turn_stopped",{thread_id:E.threadId,claude_session_id:f.providerSessionKey??f.threadId,discarded_queued_source_seqs:z}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",threadId:f.threadId,ok:!0,stopped:!0,confirmedHalt:!0}}let B=h(f.agentProvider)?.trim();if(B!=="claude-code")try{let z=await q().request("turn/interrupt",{threadId:f.providerSessionKey??f.threadId,turnId:f.turnId??null});return{instanceId:r,controlType:f.type,agentProvider:"codex",threadId:f.threadId,ok:!0,stopped:!0,confirmedHalt:!0,response:z}}catch(z){y("codex.stop_turn_no_session_interrupt_failed",{thread_id:f.threadId,message:z instanceof Error?z.message:String(z)})}return{instanceId:r,controlType:f.type,agentProvider:B??null,threadId:f.threadId,ok:!1,error:"stop_turn_session_not_active"}}case"resolve_codex_approval_request":{let E=c.get(f.requestId);if(E===void 0){if(f.agentProvider==="claude-code")return{instanceId:r,controlType:f.type,skipped:!0};let z=await q().request("resolve_codex_approval_request",{...f});return{instanceId:r,controlType:f.type,response:z}}if(f.agentProvider!==void 0&&f.agentProvider!=="claude-code")return{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_approval_provider_mismatch"};if(E.sessionId!==void 0&&f.threadId!==E.sessionId)return{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_approval_session_mismatch"};let B=E.decisions.get(f.decision);return B===void 0?(y("runner.claude_code_approval_unknown_decision",{instanceId:r,requestId:f.requestId,decision:f.decision,threadId:E.threadId,claudeSessionId:E.sessionId}),{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_approval_unknown_decision",decision:f.decision}):(E.resolve(B),await ri(n,t,{workspace:E.workspace,channel:E.channel,threadId:E.threadId,sourceSeq:E.sourceSeq,status:B.type==="allow"?"processing":"failed",reason:B.type==="allow"?"Claude Code tool approved":"Claude Code tool denied by Linzumi",sessionId:E.sessionId}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",requestId:f.requestId,decision:f.decision,resolved:!0})}case"resolve_claude_user_input_request":{let E=l.get(f.requestId);if(E===void 0)return{instanceId:r,controlType:f.type,agentProvider:"claude-code",threadId:f.threadId,requestId:f.requestId,ok:!1,error:"claude_code_user_input_continuation_not_found"};if(f.agentProvider!==void 0&&f.agentProvider!=="claude-code")return{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_user_input_provider_mismatch"};if(f.threadId!==E.threadId)return{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_user_input_thread_mismatch"};if(E.sessionId!==void 0&&f.sessionId!==void 0&&f.sessionId!==E.sessionId)return{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_user_input_session_mismatch"};let B=f.answers.map(W=>({questionId:W.questionId,selectedLabels:W.selectedLabels??[],freeText:h(W.freeText)})),z=_Re({pending:E,answers:B,actorUserId:f.actorUserId,actorSlug:f.actorSlug,answeredAt:new Date().toISOString()});switch(z.type){case"error":{y("runner.claude_code_user_input_resolution_failed",{instanceId:r,requestId:f.requestId,error:z.error,selectedLabels:[...z.selectedLabels],threadId:E.threadId,claudeSessionId:E.sessionId,kind:E.kind}),E.resolve({type:"deny",message:z.error});try{await Qc(n,t,{workspace:E.workspace,channel:E.channel,threadId:E.threadId,sourceSeq:E.sourceSeq,sessionId:E.sessionId,leaseEpoch:E.leaseEpoch,request:E.request,answerState:{kind:"Denied",reason:z.error,answers:B.map(W=>({questionId:W.questionId,selectedLabels:[...W.selectedLabels],freeText:W.freeText})),actorUserId:f.actorUserId,actorSlug:f.actorSlug,answeredAt:new Date().toISOString()},streamState:"completed"})}catch(W){throw y("kandan.claude_code_user_question_completed_publish_failed",{requestId:f.requestId,message:W instanceof Error?W.message:String(W)}),W}return{instanceId:r,controlType:f.type,agentProvider:"claude-code",threadId:E.threadId,requestId:f.requestId,ok:!1,error:z.error,selectedLabels:[...z.selectedLabels],requestKind:E.kind,denied:!0}}case"resolved":E.resolve(z.decision);break}{let W=_s(u,[E.sessionId,h(f.sessionId)],[E.threadId]);if(W!==void 0){let Z=E.threadId,fe=E.sourceSeq,Ee=E.sessionId;ex({windowMs:D?.windowMs??Sf(process.env),isDelivered:()=>E.resolved(),isSessionClosed:()=>_s(u,[Ee],[Z])===void 0,lastSdkActivityMs:()=>W.lastSdkActivityMs(),hasPendingBlockingRequest:()=>um({threadId:Z,pendingApprovals:c,pendingQuestions:l}),log:y,onWedged:_e=>{let be="Claude Code did not continue after your answer - the runner restarted the session; send your message again to continue";y("claude_code.dispatch_liveness_wedged",{linzumi_thread_id:Z,claude_session_id:Ee??null,source_seq:fe,waited_ms:_e.waitedMs,cause:_e.cause,dispatch:z.dispatch}),W.abortController.abort(new Error(be)),(async()=>{let Re=W.sessionWork();Re!==void 0&&await Promise.race([Re.catch(()=>{}),new Promise(Ae=>{setTimeout(Ae,1e4).unref?.()})]),await ri(n,t,{workspace:E.workspace,channel:E.channel,threadId:Z,sourceSeq:fe,status:"failed",reason:be,sessionId:Ee,failureClass:"claude_dispatch_wedged"})})().catch(Re=>{y("claude_code.dispatch_wedged_state_push_failed",{linzumi_thread_id:Z,source_seq:fe,message:Re instanceof Error?Re.message:String(Re)})})}})}}try{await Qc(n,t,{workspace:E.workspace,channel:E.channel,threadId:E.threadId,sourceSeq:E.sourceSeq,sessionId:E.sessionId,leaseEpoch:E.leaseEpoch,request:E.request,answerState:z.answerState,streamState:"completed"})}catch(W){throw y("kandan.claude_code_user_question_completed_publish_failed",{requestId:f.requestId,message:W instanceof Error?W.message:String(W)}),W}return{instanceId:r,controlType:f.type,agentProvider:"claude-code",threadId:E.threadId,requestId:f.requestId,answers:B.map(W=>({questionId:W.questionId,selectedLabels:[...W.selectedLabels],...h(W.freeText)===void 0?{}:{freeText:h(W.freeText)}})),actorUserId:f.actorUserId,actorSlug:f.actorSlug,requestKind:E.kind,resolved:!0}}case"deny_claude_user_input_request":{let E=l.get(f.requestId);if(E===void 0)return{instanceId:r,controlType:f.type,agentProvider:"claude-code",threadId:f.threadId,requestId:f.requestId,ok:!1,error:"claude_code_user_input_continuation_not_found"};if(f.agentProvider!==void 0&&f.agentProvider!=="claude-code")return{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_user_input_provider_mismatch"};if(f.threadId!==E.threadId)return{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_user_input_thread_mismatch"};if(E.sessionId!==void 0&&f.sessionId!==void 0&&f.sessionId!==E.sessionId)return{instanceId:r,controlType:f.type,ok:!1,error:"claude_code_user_input_session_mismatch"};E.resolve({type:"deny",message:f.reason??"Denied by Linzumi"});try{await Qc(n,t,{workspace:E.workspace,channel:E.channel,threadId:E.threadId,sourceSeq:E.sourceSeq,sessionId:E.sessionId,leaseEpoch:E.leaseEpoch,request:E.request,answerState:{kind:"Denied",reason:f.reason??"Denied by Linzumi",actorUserId:f.actorUserId,actorSlug:f.actorSlug,answeredAt:new Date().toISOString()},streamState:"completed"})}catch(B){throw y("kandan.claude_code_user_question_completed_publish_failed",{requestId:f.requestId,message:B instanceof Error?B.message:String(B)}),B}return{instanceId:r,controlType:f.type,agentProvider:"claude-code",threadId:E.threadId,requestId:f.requestId,reason:f.reason??"Denied by Linzumi",actorUserId:f.actorUserId,actorSlug:f.actorSlug,denied:!0}}case"read_thread":{let E=await q().request("thread/read",{threadId:f.threadId,includeTurns:f.includeTurns??!0});return{instanceId:r,controlType:f.type,response:E}}case"update_session_settings":{let E=h(f.threadId),B=_s(u,[E],[E]),z=h(f.approvalPolicy)??void 0,W=h(f.sandbox)??void 0;if(B===void 0)return{instanceId:r,controlType:f.type,skipped:!0};let Z=await B.updateSettings({model:h(f.model)??void 0,approvalPolicy:z,reasoningEffort:h(f.reasoningEffort)??void 0}),fe=h(Z.model),Ee=h(Z.approval_policy),_e=h(Z.reasoning_effort),be=h(f.sandbox);if(FIe({appliedModel:fe,appliedApprovalPolicy:Ee,appliedReasoningEffort:_e,controlSandbox:be})){let Re={workspace:B.workspace,channel:B.channel,thread_id:B.threadId,codex_thread_id:f.threadId,updated_at:new Date().toISOString(),...fe!==void 0?{model:fe}:{},...Ee!==void 0?{approvalPolicy:Ee}:{},..._e!==void 0?{reasoningEffort:_e}:{},...be!==void 0?{sandbox:be}:{}},Ae=await n.push(t,"session:settings",Re);if(!(Q(Ae)&&Ae.status==="ok"))throw new Error(`kandan push failed: session:settings: ${JSON.stringify(Ae).slice(0,500)}`)}return Ee!==void 0&&j?.record(B.threadId,{approvalPolicy:Ee,sandbox:W}),Z.approval_policy==="never"&&await bJ({kandan:n,topic:t,pendingClaudeCodeApprovals:c,pendingClaudeCodeUserQuestions:l,sessionThreadId:B.threadId,actorUserId:f.actorUserId,actorSlug:f.actorSlug,log:y,reason:"full_access_enabled"}),{instanceId:r,controlType:f.type,agentProvider:"claude-code",threadId:f.threadId,applied:Z}}case"stop_instance":case"kill_instance":{let E="threadId"in f&&typeof f.threadId=="string"?f.threadId:void 0,B=E===void 0?void 0:u.get(E);return B!==void 0?(await B.interruptTurn("Claude Code stopped by Linzumi"),B.abortController.abort(new Error("Claude Code stopped by Linzumi")),{instanceId:r,controlType:f.type,agentProvider:"claude-code",threadId:E,stopped:!0}):{instanceId:r,controlType:f.type,skipped:!0}}case"resolve_port_forward_request":case"update_thread_interaction_access":case"set_port_forward_enabled":case"forward_http_request":case"forward_tcp_open":case"forward_tcp_send":case"forward_tcp_close":case"start_local_editor":case"update_runner_config":case"fleet_breaker_state":case"replace_runner":return{instanceId:r,controlType:f.type,skipped:!0}}}async function gI(e,n,t,r,o,i){switch(e.type){case"remote_codex_exec":{let s=h(e.requestId)?.trim(),a=new AbortController;s!==void 0&&s!==""&&o.set(s,a);let d=await m8(e,{instanceId:n,allowedCwds:t,sandboxRunner:r,abortSignal:a.signal});return s!==void 0&&s!==""&&o.delete(s),i("remote_codex_exec.handled",{requestId:h(e.requestId)??null,ok:d.ok===!0,error:typeof d.error=="string"?d.error:null}),d}case"remote_codex_exec_cancel":{let s=h(e.requestId)?.trim();if(s===void 0||s==="")return{instanceId:n,controlType:e.type,ok:!1,error:"request_id_required"};let a=o.get(s);return a!==void 0&&(a.abort(new Error("remote_codex_exec_cancelled")),o.delete(s)),{instanceId:n,controlType:e.type,requestId:s,ok:!0,cancelled:a!==void 0}}}}function NB(e,n){let t=aRe(n instanceof Error?n.message:String(n));switch(e){case"checking_project_trust":return`Codex could not start because this folder is not trusted locally. Trust the folder with linzumi paths add, or restart the runner from a trusted folder. Detail: ${t}`;case"starting_claude_code_session":return`Claude Code did not create a session. Restart the local runner and try again. Detail: ${t}`;case"claude_code_session_failed":return`Claude Code created a session, but the session failed before completing. Try starting the agent again; if it repeats, share this failed message with the runner owner. Detail: ${t}`;case"posting_claude_code_output":return`Claude Code created a session, but Linzumi could not post its response to this thread. Try starting the agent again; if it repeats, reconnect the local runner. Detail: ${t}`;case"starting_codex_session":return`Codex did not create a session. Restart the local runner and try again. Detail: ${t}`;case"binding_kandan_thread":return`Codex started, but Linzumi could not attach it to this thread. Try starting the agent again; if it repeats, share this failed message with the runner owner. Detail: ${t}`;case"starting_first_turn":return`Codex started, but the first prompt could not be delivered. Try sending the message again; if it repeats, reconnect the local runner. Detail: ${t}`}}function UB(e){return e==="checking_project_trust"?"project_untrusted":"start_stage_transient"}function BB(e){switch(e){case"claude-code":return"Claude Code is not available on this computer. Reconnect a local runner with Claude Code auth and try again.";case"codex":return"Codex is not available on this computer. Reconnect a local runner with Codex support and try again."}}function O0(e,n){let t=e.trim();if(t.length<=n)return t;let r=" ... ";if(n<r.length+2)return t.slice(t.length-Math.max(1,n));let o=Math.max(1,Math.floor((n-r.length)/3)),i=Math.max(1,n-r.length-o);return`${t.slice(0,o)}${r}${t.slice(t.length-i)}`}function aRe(e){return O0(e,240)}function dRe(e){let n=e.interruptActiveTurn(e.reason),t=e.interruptSessionControls;if(t!==void 0)try{t().catch(r=>{e.log("claude_code.session_control_interrupt_failed",{thread_id:e.threadId,message:r instanceof Error?r.message:String(r)})})}catch(r){e.log("claude_code.session_control_interrupt_failed",{thread_id:e.threadId,message:r instanceof Error?r.message:String(r)})}return n}async function uRe(e){let{activeSession:n}=e;n.interruptTurnBeforeAbort("stopped by user");let t=n.discardQueuedFollowUpsForStop();n.abortController.abort(new Error("stopped by user"));let r=n.currentSourceSeq(),o=[...new Set([r,...t].filter(s=>s!==void 0))],i=new Set(t);for(let s of o)try{await e.publishMessageState({workspace:n.workspace,channel:n.channel,threadId:n.threadId,sourceSeq:s,status:"interrupted",reason:"stopped by user",sessionId:e.sessionKey}),i.has(s)&&n.markFollowUpSeqDiscarded(s)}catch(a){e.log("kandan.claude_code_stop_state_push_failed",{message:a instanceof Error?a.message:String(a),thread_id:n.threadId,source_seq:s})}return t}function _s(e,n,t=[]){let r=n.filter(i=>i!==void 0&&i!=="");for(let i of r){let s=e.get(i);if(s!==void 0)return s}let o=t.filter(i=>i!==void 0&&i!=="");if(o.length>0){for(let i of e.values())if(o.includes(i.threadId))return i}}async function lRe(e){let n;try{return await Promise.race([e,new Promise(t=>{n=setTimeout(()=>t(!0),cRe),n.unref?.()})])}finally{n!==void 0&&clearTimeout(n)}}function JB(e,n){switch(e.agentReplay?.provider){case"codex":return["codex"];case"claude-code":return["claude-code"];case"auto":case void 0:break}switch(e.claudeCodeRunner!==void 0||(n===void 0?e.claudeCodeAvailable===!0:n==="logged_in")){case!0:return["codex","claude-code"];case!1:return["codex"]}}function pRe(e){if(e.agentReplay?.provider==="codex"||e.codexUrl!==void 0||oa(e))return!0;switch(e.dependencyStatus?.codex.available){case!1:return!1;case!0:case void 0:return!0}}function dm(e){let n=h(e.agentProvider)?.trim();switch(n){case void 0:case"":case"codex":return{type:"ok",provider:"codex"};case"claude-code":return{type:"ok",provider:"claude-code"};default:return{type:"unsupported",value:n}}}function fRe(e){switch(e){case"codex":return"Codex";case"claude-code":return"Claude Code"}}function $0(e){let n=h(e.modelProvider)?.trim(),t=A(e.llmProxy),r=h(t?.baseUrl)?.trim(),o=h(t?.token)?.trim(),i=r!==void 0&&r!==""&&o!==void 0&&o!==""?{baseUrl:r,token:o}:void 0;return n===void 0||n===""?i===void 0?{type:"none"}:{type:"provider",runtime:{provider:"openai-proxy",llmProxyBaseUrl:i.baseUrl,llmProxyToken:i.token}}:n!=="wafer"?{type:"error",error:`model_provider_unsupported:${n}`}:i===void 0?{type:"error",error:"wafer_model_provider_missing_llm_proxy"}:{type:"provider",runtime:{provider:"wafer",llmProxyBaseUrl:i.baseUrl,llmProxyToken:i.token}}}function gJ(e){if(e.type==="error")return e.error;if(e.type==="provider"&&e.runtime.provider==="openai-proxy"&&us()===void 0)return"codex_llm_proxy_requires_openai_api_key"}function KB(e,n){let t=$0(n);switch(t.type){case"none":return;case"error":return t.error;case"provider":{let r=gJ(t);return r!==void 0?r:e.codexModelProvider?.provider===t.runtime.provider?void 0:t.runtime.provider==="wafer"?"wafer_model_provider_requires_thread_worker":"llm_proxy_model_provider_requires_thread_worker"}}}function mRe(e){if(e.linzumiAgentMcpToken===void 0||e.linzumiAgentMcpToken===""||mT(e.env))return;let n=hRe(e.env,e.kandanUrl);if(n===void 0||n==="")return yI("cloud agent turn requires a server URL (kandanUrl) and none was configured; refusing to run the @linzumi agent turn on the host");if(gRe(n))return yI(`cloud agent turn requires a PUBLICLY reachable server URL for the guest VM, got loopback ${n}; set LINZUMI_CLOUD_AGENT_PUBLIC_URL to the server's public base URL (e.g. https://serve.linzumi.com)`);if(!ud(e.env))return yI("smolcloud is the required execution path for @linzumi agent turns but no smolcloud API key resolved (SMOLCLOUD_API_KEY / cloud.apiKeyFile / SMOL_CLOUD_TOKEN); refusing to run the agent on the render host (set LINZUMI_VM_CLOUD_AGENT=0 only to explicitly opt back into host execution)");let t;try{t=ls()}catch{throw new Error("workspace-agent cloud vm.json is present but invalid; refusing to arm the cloud agent turn on a corrupt config")}let r=NU({env:e.env,config:t});if(r===void 0)throw new Error("workspace-agent cloud execution is enabled but no smolcloud API key resolved");let o=t?.agent,i={...o?.image===void 0?{}:{image:o.image},...o?.allowCidrs===void 0?{}:{allowCidrs:o.allowCidrs},...o?.autoStopSeconds===void 0?{}:{autoStopSeconds:o.autoStopSeconds}},s=e.modelProviderRuntime===void 0?void 0:(()=>{let a=N0(e.modelProviderRuntime);return{id:a.id,name:a.name,baseUrl:a.baseUrl,envKey:a.envKey,wireApi:a.wireApi,...a.httpHeaders===void 0?{}:{httpHeaders:a.httpHeaders},...a.envHttpHeaders===void 0?{}:{envHttpHeaders:a.envHttpHeaders}}})();return zU({connection:r,workspaceSlug:e.workspaceSlug,kandanUrl:n,linzumiAgentMcpToken:e.linzumiAgentMcpToken,ownerUsername:e.ownerUsername,modelProvider:s,llmProxyToken:e.modelProviderRuntime?.llmProxyToken,agentSpec:i,prewarm:!0})}function yI(e){return()=>Promise.reject(new _t(e))}function hRe(e,n){let t=e.LINZUMI_CLOUD_AGENT_PUBLIC_URL?.trim();return t!==void 0&&t!==""?t:n}function gRe(e){try{let n=new URL(e).hostname.toLowerCase();return n==="localhost"||n==="127.0.0.1"||n==="::1"||n==="0.0.0.0"}catch{return!1}}function N0(e){let n=`${e.llmProxyBaseUrl.replace(/\/+$/,"")}/v1`;switch(e.provider){case"wafer":return{id:"linzumi",name:"Linzumi Proxy",baseUrl:n,envKey:"LINZUMI_LLM_PROXY_TOKEN",wireApi:"responses"};case"openai-proxy":return{id:"linzumi",name:"Linzumi Proxy",baseUrl:n,envKey:"OPENAI_API_KEY",wireApi:"responses",envHttpHeaders:{"x-linzumi-llm-proxy-token":"LINZUMI_LLM_PROXY_TOKEN"}}}}function yJ(e){switch(e.provider){case"wafer":return{LINZUMI_LLM_PROXY_TOKEN:e.llmProxyToken};case"openai-proxy":{let n=us();if(n===void 0)throw new Error("codex llm proxy requires API-key auth (OPENAI_API_KEY in the environment or $CODEX_HOME/auth.json); ChatGPT OAuth credentials cannot be forwarded");return{LINZUMI_LLM_PROXY_TOKEN:e.llmProxyToken,OPENAI_API_KEY:n}}}}async function xJ(e){e.options.codexUrl===void 0&&(e.setStartupStage("checking_project_trust"),ax(e.cwd,{configHome:Ws()})),e.setStartupStage("starting_codex_session");let n=ao(e.control.developerPrompt),t=qs(e.control.linzumiContext),r=rl(e.options,e.control),o=await Qo("thread/start",e.codex.request("thread/start",{cwd:e.cwd,serviceName:"kandan-local-runner",personality:"pragmatic",developerInstructions:vp({cwd:e.cwd,planTool:"linzumi-mcp",mcpAvailable:!oa(e.options)||$I(e.options),devServicesAvailable:!oa(e.options),developerPrompt:n,...EI(e.control),linzumiContext:t}),...FRe(r)})),i=$Ie(o);e.setStartedCodexThreadId(i);let s=ao(e.control.workDescription);i!==void 0&&n!==void 0&&await ORe(e.kandan,e.topic,e.control,n,i);let a;if(i!==void 0&&e.onStartedThread!==void 0&&(e.setStartupStage("binding_kandan_thread"),a=await Qo("thread/attach",e.onStartedThread(e.control,e.cwd,i))),i!==void 0&&s!==void 0){e.setStartupStage("starting_first_turn");let d=X(e.control.rootSeq),u=X(e.control.sourceSeq)??d,c=Ho(ze(e.control.attachments)??[]);if(a!==void 0&&u!==void 0){let l=go(e.options.token);e.startAgentReplayCodex?.(),await a.startThreadMessageTurn({seq:u,body:s,actorSlug:l.actorUsername,actorUserId:l.actorUserId,attachments:c,boundStartTimeout:!0})}else{let l=e.codex.request("turn/start",{threadId:i,input:[{type:"text",text:s}]});e.startAgentReplayCodex?.(),await Qo("turn/start",l)}}return{controlResponse:{instanceId:e.instanceId,controlType:e.control.type,cwd:e.cwd,matchedRoot:e.matchedRoot,response:o},providerSession:{provider:"codex",cwd:e.cwd,matchedRoot:e.matchedRoot,sessionId:i}}}function yRe(e){let n=e.LINZUMI_CLAUDE_TURN_STALL_MS?.trim();if(n===void 0||n==="")return 6e5;let t=Number.parseInt(n,10);return Number.isFinite(t)&&t>0?t:6e5}function xRe(e){let n=e.onInputDelivered,t=e.isLiveSteerAllowed,r=e.onInputWait,o=e.onSourceSeqDelivered,i=[xI(e.content)],s=[e.sourceSeq],a=[],d=new Set,u=[],c=new Map,l=v=>new Promise(b=>{c.set(v,b)}),p=(v,b)=>{let k=c.get(v);k!==void 0&&(c.delete(v),k(b))},m={closed:!1},f=()=>{for(;m.closed;){let v=u.shift();if(v===void 0)return;v({done:!0,value:void 0})}},y=(v,b)=>{s.push(b),n?.(),b!==void 0&&o!==void 0&&!d.has(b)&&(d.add(b),o(b));let k=u.shift();if(k===void 0){i.push(v);return}p(v,!0),k({done:!1,value:v})},_=(v,b)=>s.length>0?(a.push({message:v,sourceSeq:b}),{disposition:"parked",queuePosition:a.length}):(y(v,b),{disposition:"delivered"}),w=v=>{if(m.closed)throw new Error("Claude Code streaming input is closed");let b=xI(v.content);return _(b,v.sourceSeq)},S=v=>{if(m.closed)throw new Error("Claude Code streaming input is closed");let b=xI(v),k=l(b);if(s.length===0)return _(b,void 0),{steered:"steered_queued",applied:k};if(t?.()===!1)return _(b,void 0),{steered:"steered_queued",applied:k};let R=u.shift();return R===void 0?i.push(b):(p(b,!0),R({done:!1,value:b})),{steered:"steered_live",applied:k}};return{messages:{[Symbol.asyncIterator](){return{next(){let v=i.shift();return v!==void 0?(p(v,!0),Promise.resolve({done:!1,value:v})):m.closed?Promise.resolve({done:!0,value:void 0}):(r?.(s[0]),new Promise(b=>{u.push(b)}))}}}},close:()=>{if(s.length===0)for(;a.length>0;){let v=a.shift();v!==void 0&&y(v.message,v.sourceSeq)}m.closed=!0,f();for(let[v,b]of c)c.delete(v),b(!1)},enqueue:w,enqueueSteer:S,drainUndeliveredFollowUps:()=>a.splice(0),completeTurn:()=>{let v=s.shift();if(!m.closed&&s.length===0){let b=a.shift();b!==void 0&&y(b.message,b.sourceSeq)}return v},currentSourceSeq:()=>s[0]}}function xI(e){return{type:"user",message:{role:"user",content:e},parent_tool_use_id:null}}function _Re(e){let n=e.answers.map(t=>({questionId:t.questionId,selectedLabels:[...t.selectedLabels],freeText:t.freeText}));switch(e.pending.kind){case"question":return{type:"resolved",decision:{type:"answer_question",updatedInput:v4(e.pending.originalInput,e.pending.request,e.answers)},answerState:{kind:"Answered",answers:n,actorUserId:e.actorUserId,actorSlug:e.actorSlug,answeredAt:e.answeredAt},dispatch:"user_question_answer"};case"tool_approval":case"plan_review":{let t=e.answers.flatMap(i=>i.selectedLabels),r=t[0];if(r===void 0)return{type:"error",error:"claude_code_user_input_decision_missing",selectedLabels:t};let o=e.pending.approvalDecisions.get(r);return o===void 0?{type:"error",error:"claude_code_user_input_unknown_decision",selectedLabels:t}:{type:"resolved",decision:o,answerState:o.type==="deny"?{kind:"Denied",reason:o.message,answers:n,actorUserId:e.actorUserId,actorSlug:e.actorSlug,answeredAt:e.answeredAt}:{kind:"Answered",answers:n,actorUserId:e.actorUserId,actorSlug:e.actorSlug,answeredAt:e.answeredAt},dispatch:"user_input_decision"}}}}async function _J(e){let n=e.sourceSeq;if(n===void 0)return{type:"deny",message:"Claude Code user input request had no source message"};if(e.pendingQuestions.has(e.questionRequest.requestId))return{type:"deny",message:"Claude Code user input request id was already pending"};if(um({threadId:e.threadId,pendingApprovals:e.pendingApprovals,pendingQuestions:e.pendingQuestions}))return{type:"deny",message:"Claude Code already has a pending user input request"};if(e.signal.aborted)return{type:"deny",message:"Claude Code user input request cancelled by Linzumi"};let t="Claude Code user input request cancelled by Linzumi",r=e.approvalDecisions??new Map,o,i,s=!1,a=new Promise(d=>{let u=!1,c=()=>{i!==void 0&&e.signal.removeEventListener("abort",i),e.pendingQuestions.delete(e.questionRequest.requestId)},l=m=>{u||(u=!0,c(),d(m))};o=l,i=()=>{s||(s=!0,(async()=>{try{await Qc(e.kandan,e.topic,{workspace:e.workspace,channel:e.channel,threadId:e.threadId,sourceSeq:n,sessionId:e.sessionId,leaseEpoch:e.leaseEpoch,request:e.questionRequest,answerState:{kind:"Denied",reason:t,answeredAt:new Date().toISOString()},streamState:"interrupted"})}catch(m){console.error("kandan.claude_code_user_input_abort_publish_failed",e.questionRequest.requestId,m instanceof Error?m.message:String(m))}finally{l({type:"deny",message:t})}})())};let p={sessionId:e.sessionId,workspace:e.workspace,channel:e.channel,threadId:e.threadId,sourceSeq:n,leaseEpoch:e.leaseEpoch,request:e.questionRequest,resolve:l,resolved:()=>u};switch(e.kind){case"question":e.pendingQuestions.set(e.questionRequest.requestId,{...p,kind:"question",originalInput:e.request.input});break;case"tool_approval":case"plan_review":e.pendingQuestions.set(e.questionRequest.requestId,{...p,kind:e.kind,approvalDecisions:r});break}});if(i!==void 0&&(e.signal.addEventListener("abort",i,{once:!0}),e.signal.aborted))return i(),a;try{await Qc(e.kandan,e.topic,{workspace:e.workspace,channel:e.channel,threadId:e.threadId,sourceSeq:n,sessionId:e.sessionId,leaseEpoch:e.leaseEpoch,request:e.questionRequest,answerState:{kind:"NeedsAnswer"},streamState:"streaming"})}catch(d){return o?.({type:"deny",message:d instanceof Error?`Claude Code user input request push failed: ${d.message}`:"Claude Code user input request push failed"}),a}return a}async function Qc(e,n,t){await e.push(n,"session:stream_thread_message",{workspace:t.workspace,channel:t.channel,thread_id:t.threadId,stream_key:k4(t.request.requestId),body:t.request.title,...t.leaseEpoch===void 0?{}:{lease_epoch:t.leaseEpoch},payload:{source_message_seq:t.sourceSeq,agent_provider:"claude-code",...t.sessionId===void 0?{}:{codex_thread_id:t.sessionId,provider_session_key:t.sessionId,claude_session_id:t.sessionId},structured:S4({request:t.request,sessionId:t.sessionId,sourceSeq:t.sourceSeq,answerState:t.answerState,streamState:t.streamState})}})}function um(e){return[...e.pendingApprovals.values()].some(n=>n.threadId===e.threadId)||[...e.pendingQuestions.values()].some(n=>n.threadId===e.threadId)}async function bRe(e){let n=w4(e.request),t=new Map(n.choices.map(r=>[r.label,r.permissionDecision]));return _J({kandan:e.kandan,topic:e.topic,pendingApprovals:e.pendingApprovals,pendingQuestions:e.pendingQuestions,workspace:e.workspace,channel:e.channel,threadId:e.threadId,sessionId:e.sessionId,sourceSeq:e.sourceSeq,request:e.request,questionRequest:n.request,kind:n.request.requestSource==="claude_code_plan_review"?"plan_review":"tool_approval",approvalDecisions:t,leaseEpoch:e.leaseEpoch,signal:e.signal})}function VB(){return _I.value===void 0&&(_I.value=aq(sq(process.env))),_I.value}async function WB(e){try{return await HB(e)}catch(n){if(!(n instanceof Vs))throw n;e.log("claude_code.dispatch_liveness_respawn_retry",{thread_id:pn(e.control,"threadId")??null,resume_session_id:e.resumeSessionId??null,waited_ms:n.waitedMs});try{return await HB(e)}catch(t){throw t instanceof Vs?new Error(wRe):t}}}async function HB(e){let n=Xc(e.control,"workspace"),t=Xc(e.control,"channel"),r=Xc(e.control,"threadId"),o=X(e.control.rootSeq),i=X(e.control.sourceSeq)??o,s=ao(e.control.workDescription);if(e.debugTrace?.record("commander","claude.provider_start",{controlType:e.control.type,instanceId:e.instanceId,workspace:n,channel:t,threadId:r,rootSeq:o??null,sourceSeq:i??null,resumeSessionId:e.resumeSessionId??null,cwd:e.cwd}),s===void 0)throw new Error("start_instance control missing workDescription");if(e.log("claude_code.turn_starting",{linzumi_thread_id:r,claude_session_id:e.resumeSessionId??null,body_preview:vd(s),message_received_at_ms:Date.now()}),e.resumeSessionId!==void 0){let U=await VB().acquire();(U.waitedMs>0||U.timedOut)&&e.log("claude_code.resume_start_throttled",{linzumi_thread_id:r,claude_session_id:e.resumeSessionId,waited_ms:U.waitedMs,timed_out:U.timedOut})}let a=U=>{e.log("claude_code.turn_terminal",{turn_id:null,outcome:"failed",reason:U,thread_id:r,claude_session_id:e.resumeSessionId??null})},d,u=!1,c=!1,l,p=!1,m,f=0,y=!1,_=!1,w=!1,S,v=!1,b=U=>({workspace:n,channel:t,thread_id:r,codex_thread_id:U,provider_session_key:U,agent_provider:"claude-code",claude_session_id:U,cwd:e.cwd,instance_id:e.instanceId}),k=()=>{if(!u||!c||d===void 0)return;let U=()=>{let qe=d;if(p||!u||!c||qe===void 0)return;p=!0;let te=e.kandan.push(e.topic,"session:typing_start",b(qe)).then(()=>{}).catch(we=>{e.log("kandan.claude_code_typing_heartbeat_failed",{thread_id:r,claude_session_id:qe,message:we instanceof Error?we.message:String(we)})}).finally(()=>{p=!1});m=te,te.finally(()=>{m===te&&(m=void 0)})};U(),l===void 0&&(l=setInterval(U,FPe),l.unref?.())},R=()=>{if(y){_=!0;return}u=!0,f+=1,k()},P=()=>{_&&(_=!1,R())},L=()=>{if(y){w=!0;return}be.completeTurn()},D=()=>{w&&(w=!1,L())},j=()=>{w=!1,v=!0,be.completeTurn()},q=async(U,qe)=>{let te,we=new Promise(Lr=>{te=setTimeout(()=>Lr("timeout"),zPe),te.unref?.()}),sn=await Promise.race([U.then(()=>"processed"),we]);te!==void 0&&clearTimeout(te),sn==="timeout"&&e.log("claude_code.terminal_processing_timeout",{linzumi_thread_id:r,claude_session_id:qe.sessionId,event_type:qe.type})},E=async(U,qe)=>{let te,we=new Promise(Lr=>{te=setTimeout(()=>Lr("timed_out"),qPe),te.unref?.()}),sn=await Promise.race([U.then(()=>"settled"),we]);return te!==void 0&&clearTimeout(te),sn==="timed_out"&&e.log("kandan.claude_code_typing_start_wait_timeout",{thread_id:r,claude_session_id:qe}),sn},B=async()=>{let U=u,qe=d,te=f;if(u=!1,l!==void 0&&(clearInterval(l),l=void 0),!(!U||!c||qe===void 0))try{let we=m;if(we!==void 0&&await E(we,qe)==="timed_out"&&m===we&&(m=void 0,p=!1),u||f!==te)return;await e.kandan.push(e.topic,"session:typing_stop",b(qe))}catch(we){e.log("kandan.claude_code_typing_stop_failed",{thread_id:r,claude_session_id:qe,message:we instanceof Error?we.message:String(we)})}},z=Ho(ze(e.control.attachments)??[]),W=await Av({cwd:e.cwd,kandanUrl:e.options.kandanUrl,token:e.options.token,fetch:e.options.fetch,attachmentDirectoryName:"local-claude-code-attachments"},{seq:i,body:s,attachments:z}).then(U=>({ok:!0,content:U})).catch(U=>({ok:!1,error:U}));if(!W.ok){let U=W.error instanceof Error?W.error.message:String(W.error),qe=`Claude Code input attachment download failed: ${U}`;a(qe);try{await vo(e.kandan,e.topic,e.control,"failed",qe,{instanceId:e.instanceId,failureClass:"attachment_download_failed"})}catch(te){e.log("kandan.start_instance_claude_code_attachment_failed_state_push_failed",{message:te instanceof Error?te.message:String(te)})}return{controlResponse:{instanceId:e.instanceId,controlType:e.control.type,agentProvider:"claude-code",ok:!1,error:"claude_code_attachment_download_failed",message:U}}}let Z=()=>{},fe=!1,Ee=new Promise(U=>{Z=U}),_e=()=>{fe||(fe=!0,setImmediate(Z))},be=xRe({content:W.content,sourceSeq:i,onInputDelivered:R,isLiveSteerAllowed:()=>!y,onInputWait:U=>{U===void 0&&_e()},onSourceSeqDelivered:U=>{Re.add(U),e.onLiveSourceSeqAccepted?.({channel:t,threadId:r,sourceSeq:U})}}),Re=new Set,Ae=new Set,I=0,$=ao(e.control.developerPrompt),K=qs(e.control.linzumiContext),re=rl(e.options,e.control),pe=h(e.control.approvalPolicy)!==void 0,Y=e.claudeThreadAccessStore?.resolve(r),ie=pm(e.options),Fe=pe?re.approvalPolicy:Y?.approvalPolicy??ie.approvalPolicy,ae=pe?re.sandbox:Y?.sandbox??ie.sandbox,Ce=Fe===void 0?void 0:wp(Fe,ae),Yn=Ce!==void 0?bI(Ce):re.approvalPolicy===void 0?void 0:bI(re.approvalPolicy);if(Ce!==void 0&&e.claudeThreadAccessStore?.record(r,{approvalPolicy:Ce,sandbox:ae}),e.resumeSessionId!==void 0)try{await x4({cwd:e.cwd,sessionId:e.resumeSessionId,validator:e.options.claudeCodeSessionValidator})}catch(U){throw a(U instanceof Error?U.message:String(U)),U}let Jn={runnerIdentity:go(e.options.token),codexVersion:void 0},Dt=new AbortController,V=xp({stop:()=>{Dt.signal.aborted||Dt.abort(new Error("engine child reaper teardown"))},pid:void 0,ownProcessGroup:!1,kind:"claude_code"}),ce=new Set(i===void 0?[]:[i]),$e={value:void 0},_n=!1,mn,Be=[],Xe=!1,Mt,$r=ys({kandanUrl:e.options.kandanUrl,accessToken:e.options.token,fetchImpl:e.options.fetch,operatingMode:"text"}),Bo=s.trim().slice(0,2e3),Jo=iz({replacePlanSteps:$r.replaceCodingJobPlanSteps,threadId:r,goal:Bo,log:e.log}),N=async()=>{if(e.resumeSessionId!==void 0)return;let U=5e3,qe=new AbortController,te,we=new Promise(sn=>{te=setTimeout(()=>{qe.abort(new Error("claude goal seed timed out")),e.log("claude_code.goal_seed_timeout",{thread_id:r,timeout_ms:U}),sn()},U)});try{await Promise.race([sz({upsertCodingJobPlan:$r.upsertCodingJobPlan,threadId:r,goal:Bo,log:e.log,signal:qe.signal}),we])}finally{te!==void 0&&clearTimeout(te)}},ne=ez({instanceId:e.instanceId,cwd:e.cwd,threadKey:`${n}:${t}:${r}`,persistDir:e.options.claudeCodeRunner===void 0?om():void 0,wire:()=>({workspaceSlug:n,channelSlug:t,kandanThreadId:r,codexThreadId:d??e.resumeSessionId,rootSeq:o,leaseEpoch:e.leaseEpochFor?.(r)}),push:async(U,qe,te,we)=>{let sn=await e.kandan.push(e.topic,U,qe,we);if(Q(sn)&&sn.status==="ok")return sn;throw new Error(`kandan push failed: ${U}: ${JSON.stringify(sn).slice(0,500)}`)},preparePush:(U,qe)=>gg({kandan:e.kandan,topic:e.topic,workspace:n,channel:t,cwd:e.cwd,kandanUrl:e.options.kandanUrl,token:e.options.token,fetch:e.options.fetch,log:(te,we)=>e.log(te,we)},U,qe),runnerPayload:(U,qe,te,we)=>Ba({...e.options,cwd:e.cwd},e.instanceId,U,qe,Jn,te,we),currentSourceSeq:be.currentSourceSeq,onTurnTerminal:(U,qe,te,we,sn)=>{e.log("claude_code.turn_terminal",{turn_id:U,outcome:qe,reason:te??null,thread_id:r,claude_session_id:d??null}),qe==="completed"&&sn!==void 0&&e.onLiveSourceSeqAccepted?.({channel:t,threadId:r,sourceSeq:sn}),S?.(),S=void 0},onTodoWriteCompleted:Jo.handleTodoWrite,suppressProcessingState:()=>{for(let U of e.pendingClaudeCodeApprovals.values())if(U.threadId===r)return!0;for(let U of e.pendingClaudeCodeUserQuestions.values())if(U.threadId===r)return!0;return!1},log:e.log,debugTrace:e.debugTrace}),oe=e.options.claudeCodeRunner===void 0&&Nz(process.env)?Uz({captureDir:bt(uJ(),`linzumi-claude-live-bash-${e.instanceId}`),onOutputDelta:(U,qe)=>{d!==void 0&&ne.handleTranscriptEvent({type:"command_output_delta",sessionId:d,itemKey:U,delta:qe})},log:(U,qe)=>e.log(U,qe)}):void 0,ue,ye;try{let U=DJ(),qe=jI(e.options);ue=qe.cleanup;let te=ds({command:U.command,argsPrefix:U.argsPrefix,kandanUrl:e.options.kandanUrl,authFilePath:qe.path,ownerUsername:U0(e.options),operatingMode:"text",cwd:e.cwd,threadId:r,toolScope:e.options.codingJobToolScope,devServices:{scope:e.options.runnerId,ownerPid:LI(e.options)}});ye={[te.name]:{type:"stdio",command:te.command,args:[...te.args],env:{...te.env}}}}catch(U){ue?.(),ue=void 0,e.log("claude_code.mcp_config_failed",{message:U instanceof Error?U.message:String(U),thread_id:r})}let Te={kandan:e.kandan,topic:e.topic,workspace:n,channel:t,threadId:r,cwd:e.cwd,initialPrompt:s,rootSeq:o,log:e.log},on=new Map,et=async U=>{let qe=Date.now(),te=iC(U.rateLimit,qe);e.log("claude_code.rate_limit",{linzumi_thread_id:r,claude_session_id:U.sessionId??d??null,rate_limit_summary:`claude/${U.rateLimit.rateLimitType??"account"} ${te}`,status:U.rateLimit.status??null,utilization_percent:U.rateLimit.utilizationPercent??null,resets_at_ms:U.rateLimit.resetsAtMs??null});let we=U.rateLimit.rateLimitType??"account",sn=$Re(U.rateLimit);if(sn!==on.get(we))try{await LRe({kandan:e.kandan,topic:e.topic,workspace:n,channel:t,threadId:r,claudeSessionId:U.sessionId??d,rateLimit:U.rateLimit}),on.set(we,sn)}catch(Lr){e.log("claude_code.rate_limit_post_failed",{thread_id:r,message:Lr instanceof Error?Lr.message:String(Lr)})}},At=async U=>{if(I=Date.now(),e.debugTrace?.record("claude-transcript","transcript.event",{eventType:U.type,threadId:r,activeSessionId:d??null,event:U}),ku.observeTranscriptEvent(U),U.type==="tool_call"&&U.toolName==="Bash"){let te=h(U.input.command);te!==void 0&&Zg(r,te)}try{await TRe(Te,U)}catch(te){e.log("claude_code.session_store_mirror_failed",{session_id:U.sessionId??null,event_type:U.type,message:te instanceof Error?te.message:String(te)})}if(U.type==="session_started"){d=U.sessionId,e.log("claude_code.session_started",{linzumi_thread_id:r,claude_session_id:U.sessionId}),e.activeClaudeCodeSessions.set(U.sessionId,{abortController:Dt,workspace:n,channel:t,threadId:r,currentSourceSeq:be.currentSourceSeq,pauseOutbox:()=>ne.pauseOutbox(),resumeOutbox:()=>ne.resumeOutbox(),inputDelivered:te=>Re.has(te)||Ae.has(te),lastSdkActivityMs:()=>I,enqueueInput:te=>{if(te.sourceSeq!==void 0&&ce.has(te.sourceSeq))return"duplicate";let we=be.enqueue(te);return te.sourceSeq!==void 0&&ce.add(te.sourceSeq),we},closeInput:be.close,hasActiveTurn:()=>ne.activeTurnId()!==void 0,sessionWork:()=>$e.value,steerTurn:be.enqueueSteer,interruptTurn:async te=>{let we=ne.interruptActiveTurn(te);return await mn?.interrupt(),we},interruptTurnBeforeAbort:te=>{let we=mn;return dRe({reason:te,threadId:r,interruptActiveTurn:sn=>ne.interruptActiveTurn(sn),interruptSessionControls:we===void 0?void 0:()=>we.interrupt(),log:e.log})},discardQueuedFollowUpsForStop:()=>be.drainUndeliveredFollowUps().map(we=>we.sourceSeq).filter(we=>we!==void 0),markFollowUpSeqDiscarded:te=>{Ae.add(te)},slashCommands:async()=>{if(Xe)return Be;let te=await mn?.supportedCommands();return Xe||te!==void 0&&(Be=te),Be},updateSettings:async te=>{let we={};if(te.model!==void 0&&(await mn?.setModel(wI(te.model)),we.model=te.model),te.approvalPolicy!==void 0){let sn=bI(te.approvalPolicy);sn!==void 0&&(await mn?.setPermissionMode(sn),we.approval_policy=te.approvalPolicy)}if(te.reasoningEffort!==void 0){let sn=GB(te.reasoningEffort);sn!==void 0&&(await mn?.setEffort?.(sn),we.reasoning_effort=te.reasoningEffort)}return we}}),e.ensureClaudeCodeForwardPortSession?.({sessionId:U.sessionId,workspace:n,channel:t,threadId:r,cwd:e.cwd,rootSeq:o,currentSourceSeq:be.currentSourceSeq}),ne.handleTranscriptEvent(U),await e.kandan.push(e.topic,"session:bind",{workspace:n,channel:t,thread_id:r,codex_thread_id:U.sessionId,provider_session_key:U.sessionId,agent_provider:"claude-code",claude_session_id:U.sessionId,cwd:e.cwd,instance_id:e.instanceId}),c=!0,R();return}if(U.type==="slash_command_catalog"){Be=U.commands,U.source==="commands_changed"&&(Xe=!0);return}let qe=U.type==="turn_completed"||U.type==="turn_interrupted"||U.type==="session_completed"||U.type==="session_failed";if(qe){y=!0;let te=ne.activeTurnId(),we=!1,sn=()=>{},Lr=()=>{we=!0,sn()},Vh=new Promise(Pt=>{sn=Pt});S=Lr,ne.handleTranscriptEvent(U);let Wh=U.type==="turn_completed"||U.type==="turn_interrupted",jr=Wh||te!==void 0||we;try{jr?(await q(Vh,U),await ne.flush(NPe)):S===Lr&&(S=void 0)}catch(Pt){e.log("claude_code.terminal_typing_flush_timeout",{linzumi_thread_id:r,claude_session_id:U.sessionId,event_type:U.type,message:Pt instanceof Error?Pt.message:String(Pt)})}S===Lr&&(S=void 0),Wh&&(j(),be.currentSourceSeq()!==void 0&&_e()),(U.type==="session_completed"||U.type==="session_failed")&&d!==void 0&&(e.activeClaudeCodeSessions.delete(d),await e.disposeClaudeCodeForwardPortSession?.(d)),U.type==="session_completed"&&_e(),y=!1,await B(),D(),P(),await Qg({threadKey:r,workspace:n,channel:t,threadId:r,push:(Pt,Je)=>e.kandan.push(e.topic,Pt,Je),log:(Pt,Je)=>e.log(Pt,Je)})}if((U.type==="turn_completed"||U.type==="session_completed")&&e.log("claude_code.turn_completed",{linzumi_thread_id:r,claude_session_id:U.sessionId,body_source:U.bodySource??null,body_preview:vd(U.body)}),U.type==="rate_limit"&&await et(U),U.type==="tool_result"&&oe?.settleTool(U.itemKey),(U.type==="turn_interrupted"||U.type==="session_failed")&&oe?.settleAll(),U.type==="session_failed"&&e.log("claude_code.session_failed",{linzumi_thread_id:r,claude_session_id:U.sessionId??null,model_transport_lane:Nt.lane,reason:U.reason,api_error_status:U.apiErrorProvenance?.status??null,api_error_request_id:U.apiErrorProvenance?.requestId??null,api_error_message:U.apiErrorProvenance?.message??null}),U.type==="usage"){let te=m4(U.usage);te!==void 0&&e.log("claude_code.token_usage",{linzumi_thread_id:r,claude_session_id:U.sessionId,token_usage_summary:te})}qe||ne.handleTranscriptEvent(U)},Gt=A(e.control.llmProxy),at=h(Gt?.baseUrl)?.trim(),Cr=h(Gt?.token)?.trim(),Nt=yq({env:process.env,llmProxyBindingPresent:at!==void 0&&at!==""&&Cr!==void 0&&Cr!=="",hostedLinzumiAgentContext:e.control.linzumiAgent!==void 0||e.options.threadProcess?.role==="thread"&&e.options.linzumiAgentMcpToken!==void 0,routedNonAnthropicModel:wJ(re.model)!==void 0});e.log("claude_code.model_transport_lane",{linzumi_thread_id:r,lane:Nt.lane,credential_class:Nt.credentialClass,reason:Nt.reason});let ku=wq({lane:Nt.lane,workspace:n,channel:t,threadId:r,model:wI(re.model),push:(U,qe)=>e.kandan.push(e.topic,U,qe),log:e.log}),Ko,Cu,Tu;if(Nt.lane==="llm_proxy"&&at!==void 0&&at!==""&&Cr!==void 0&&Cr!==""){try{Ko=await fq({upstreamBaseUrl:at,initialToken:Cr,log:(qe,te)=>e.log(qe,{linzumi_thread_id:r,...te}),debugTrace:e.debugTrace,debugTraceId:e.debugTrace===void 0?void 0:`claude-code:${e.instanceId}`,dispatcher:Xo()?.dispatcher,onUpstreamRateLimited:({retryAfterMs:qe})=>VB().notifyRateLimited({retryAfterMs:qe})});let U=Ko;Cu=mq({relay:Ko,mint:()=>MRe(e.kandan,e.topic,U.currentToken()),log:(qe,te)=>e.log(qe,{linzumi_thread_id:r,...te})})}catch(U){e.log("llm_proxy_relay.start_failed_fallback_to_env_token",{linzumi_thread_id:r,message:U instanceof Error?U.message:String(U)}),Ko=void 0,Cu=void 0}Tu=Ko!==void 0?QB(process.env,{baseUrl:Ko.baseUrl},re.model):QB(process.env,{baseUrl:at,token:Cr},re.model)}else Tu=DRe(process.env);let Bh=BPe(Tu),ip=()=>be.currentSourceSeq()!==void 0&&!um({threadId:r,pendingApprovals:e.pendingClaudeCodeApprovals,pendingQuestions:e.pendingClaudeCodeUserQuestions}),Se=(U,qe)=>{if(vRe(U.toolName))return Promise.resolve({type:"allow"});let te=b4(U);switch(te.type){case"question":return(async()=>{await B();let we=await _J({kandan:e.kandan,topic:e.topic,pendingApprovals:e.pendingClaudeCodeApprovals,pendingQuestions:e.pendingClaudeCodeUserQuestions,workspace:n,channel:t,threadId:r,sessionId:d??e.resumeSessionId,sourceSeq:be.currentSourceSeq(),request:U,questionRequest:te.request,kind:"question",approvalDecisions:void 0,leaseEpoch:e.leaseEpochFor?.(r),signal:qe});return R(),we})();case"invalid":return Promise.resolve({type:"deny",message:te.message});case"not_question":return bRe({kandan:e.kandan,topic:e.topic,pendingApprovals:e.pendingClaudeCodeApprovals,pendingQuestions:e.pendingClaudeCodeUserQuestions,workspace:n,channel:t,threadId:r,sessionId:d??e.resumeSessionId,sourceSeq:be.currentSourceSeq(),request:U,leaseEpoch:e.leaseEpochFor?.(r),signal:qe})}},Pe=(async()=>{let U;await N(),await Fp({cwd:e.cwd,threadKey:r,turnRef:i===void 0?"session-start":`seq-${i}`,log:(te,we)=>e.log(te,we)});let qe=GB(re.reasoningEffort);try{try{U=await y4({cwd:e.cwd,prompt:s,includeHookEvents:!0,developerInstructions:vp({cwd:e.cwd,agentLabel:"Claude Code",planTool:"todo-write",devServicesAvailable:!0,developerPrompt:$,...EI(e.control),linzumiContext:K}),model:wI(re.model),...typeof qe=="string"?{effort:qe}:{},...e.debugTrace===void 0?{}:{claudeCodeDebugFile:bt(e.debugTrace.runDir,"claude-code-debug.log")},...Yn===void 0?{}:{permissionMode:Yn},resumeSessionId:e.resumeSessionId,abortController:Dt,streamingInput:be,...e.options.claudeCodeRunner===void 0?{turnStallThresholdMs:yRe(process.env),turnStallIsActive:ip,apiWaitStatusThresholdMs:1e4,apiWaitStatusItemKey:te=>{let we=be.currentSourceSeq();return we===void 0?void 0:`system:claude-api-wait:${we}:${te}`}}:{},runner:e.options.claudeCodeRunner,debugTrace:e.debugTrace,canUseTool:Se,...ye===void 0?{}:{mcpServers:ye},...oe===void 0?{}:{preToolUseHookMatchers:oe.hookMatchers,wrapApprovedToolInput:(te,we,sn)=>we==="Bash"?oe.wrapApprovedTool(te,sn):void 0},env:Bh,allowedTools:["mcp__linzumi__*"],onSessionControls:te=>{mn=te,Yn==="bypassPermissions"&&(Mt=bJ({kandan:e.kandan,topic:e.topic,pendingClaudeCodeApprovals:e.pendingClaudeCodeApprovals,pendingClaudeCodeUserQuestions:e.pendingClaudeCodeUserQuestions,sessionThreadId:r,log:e.log,reason:"full_access_started"}).catch(we=>{e.log("claude_code.startup_approval_drain_failed",{linzumi_thread_id:r,claude_session_id:d??null,message:we instanceof Error?we.message:String(we)})}))},onTurnCompleted:()=>{v?v=!1:L(),be.currentSourceSeq()!==void 0&&_e()},onTranscriptEvent:At})}finally{let we=be.drainUndeliveredFollowUps().map(sn=>sn.sourceSeq).filter(sn=>sn!==void 0);we.length>0&&e.onUndeliveredFollowUpsAtClose!==void 0&&e.onUndeliveredFollowUpsAtClose({channel:t,threadId:r,sourceSeqs:we}),d!==void 0&&(e.activeClaudeCodeSessions.delete(d),await e.disposeClaudeCodeForwardPortSession?.(d)),await B(),be.close(),ue?.(),oe?.close()}}catch(te){throw ne.submitLifecycle("codexDied",te instanceof Error?te.message:String(te)),await ne.close(5e3).catch(()=>{}),await Promise.race([Jo.settle().catch(()=>{}),new Promise(we=>{setTimeout(we,5e3).unref?.()})]),a(te instanceof Error?te.message:String(te)),_n||e.setStartupStage("claude_code_session_failed"),te}return _n||e.setStartupStage("posting_claude_code_output"),await ne.awaitTurnsSettled(3e4),await ne.close(3e4),await Promise.race([Jo.settle(),new Promise(te=>{setTimeout(te,1e4).unref?.()})]),U})();Pe.finally(()=>V.unregister()).catch(()=>{}),Pe.finally(()=>{Cu?.stop(),Ko?.close()}).catch(()=>{}),$e.value=Pe;let Da,ap=e.options.claudeCodeRunner===void 0||process.env.LINZUMI_CLAUDE_DISPATCH_LIVENESS_MS!==void 0?ex({windowMs:Sf(process.env),isDelivered:()=>I>0,isSessionClosed:()=>!1,lastSdkActivityMs:()=>I,hasPendingBlockingRequest:()=>um({threadId:r,pendingApprovals:e.pendingClaudeCodeApprovals,pendingQuestions:e.pendingClaudeCodeUserQuestions}),log:e.log,onWedged:U=>{Da={waitedMs:U.waitedMs},e.log("claude_code.dispatch_liveness_wedged",{linzumi_thread_id:r,claude_session_id:d??e.resumeSessionId??null,waited_ms:U.waitedMs,cause:U.cause,dispatch:e.resumeSessionId===void 0?"initial_turn":"resume_turn"}),Dt.abort(new Vs(U.waitedMs))}}):void 0;Pe.finally(()=>ap?.stop()).catch(()=>{});let Pu;try{Pu=await Promise.race([Pe.then(U=>({type:"session_ended",result:U})),Ee.then(()=>({type:"first_turn_settled"}))])}catch(U){throw Da!==void 0&&!(U instanceof Vs)?new Vs(Da.waitedMs):U}finally{ap?.stop()}let ho=U=>({controlResponse:{instanceId:e.instanceId,controlType:e.control.type,agentProvider:"claude-code",cwd:e.cwd,matchedRoot:e.matchedRoot,response:{session:{id:U}}},providerSession:{provider:"claude-code",cwd:e.cwd,matchedRoot:e.matchedRoot,sessionId:U}});if(Pu.type==="session_ended")return ho(Pu.result.sessionId);e.setStartupStage("posting_claude_code_output"),_n=!0,await ne.awaitTurnsSettled(3e4);try{await ne.flush(3e4)}catch(U){e.log("claude_code.first_turn_flush_timeout",{linzumi_thread_id:r,claude_session_id:d??null,message:U instanceof Error?U.message:String(U)})}Mt!==void 0&&await Mt;let dp=await Promise.race([Pe.then(U=>({type:"session_ended",result:U}),()=>{}),new Promise(U=>{setImmediate(()=>U(void 0))})]);if(dp!==void 0)return ho(dp.result.sessionId);Pe.then(()=>{e.log("claude_code.session_loop_ended",{linzumi_thread_id:r,claude_session_id:d??null})},U=>{e.log("claude_code.session_loop_failed",{linzumi_thread_id:r,claude_session_id:d??null,message:U instanceof Error?U.message:String(U)})});let up=d??e.resumeSessionId;if(up!==void 0)return ho(up);let Kh=await Pe;return ho(Kh.sessionId)}function vRe(e){return e.startsWith("mcp__linzumi__")}function bI(e){switch(e){case"never":return"bypassPermissions";case"on-request":case"untrusted":return"default";case"on-failure":return"acceptEdits";default:return}}function GB(e){switch(e?.trim().toLowerCase()){case"default":return null;case"low":return"low";case"medium":return"medium";case"high":return"high";case"xhigh":return"xhigh";default:return}}function SRe(e,n){return[...e.entries()].filter(([,t])=>t.threadId===n)}function kRe(e,n){return[...e.entries()].flatMap(([t,r])=>{switch(r.kind){case"question":return[];case"tool_approval":case"plan_review":return r.threadId===n?[[t,r]]:[]}})}async function bJ(e){let n=SRe(e.pendingClaudeCodeApprovals,e.sessionThreadId);for(let[r,o]of n)o.resolve({type:"allow"}),await ri(e.kandan,e.topic,{workspace:o.workspace,channel:o.channel,threadId:o.threadId,sourceSeq:o.sourceSeq,status:"processing",reason:"Claude Code tool approved",sessionId:o.sessionId??e.sessionThreadId}),e.log("claude_code.approval_request_auto_approved",{request_id:r,source_seq:o.sourceSeq,session_id:o.sessionId??e.sessionThreadId,reason:e.reason});let t=kRe(e.pendingClaudeCodeUserQuestions,e.sessionThreadId);for(let[r,o]of t){let i=o.approvalDecisions.get("Allow")??{type:"allow"};o.resolve(i),await Qc(e.kandan,e.topic,{workspace:o.workspace,channel:o.channel,threadId:o.threadId,sourceSeq:o.sourceSeq,sessionId:o.sessionId,leaseEpoch:o.leaseEpoch,request:o.request,answerState:i.type==="deny"?{kind:"Denied",reason:i.message,actorUserId:e.actorUserId,actorSlug:e.actorSlug,answeredAt:new Date().toISOString()}:{kind:"Answered",answers:[{questionId:o.request.questions[0]?.questionId??`${r}:decision`,selectedLabels:["Allow"]}],actorUserId:e.actorUserId,actorSlug:e.actorSlug,answeredAt:new Date().toISOString()},streamState:"completed"}),e.log("claude_code.user_input_request_auto_approved",{request_id:r,source_seq:o.sourceSeq,session_id:o.sessionId??e.sessionThreadId,kind:o.kind,reason:e.reason})}}function CRe(e){return ey(e)}async function TRe(e,n){let t=IRe(n);if(t===void 0)return;let r=RRe(e,n);if(r===void 0)return;let o="root",i=PRe(`${e.workspace}:${e.cwd}:${t}:${o}`);await e.kandan.push(e.topic,"claude_session_store_append",{workspace:e.workspace,channel:e.channel,thread_id:e.threadId,cwd:e.cwd,sessionId:t,subkey:o,sequence:i,entryType:n.type,payload:r})}function PRe(e){let n=ZB.get(e),t=Date.now()*1e3,r=n===void 0?t:Math.max(n+1,t);return ZB.set(e,r),r}function IRe(e){switch(e.type){case"unknown":case"session_failed":return e.sessionId;default:return e.sessionId}}function RRe(e,n){switch(n.type){case"assistant_delta":case"slash_command_catalog":return;case"session_started":return{prompt:e.initialPrompt,threadId:e.threadId,rootSeq:e.rootSeq??null};case"assistant_message":return{itemKey:n.itemKey,body:n.content,streamState:n.streamState};case"tool_call":return{itemKey:n.itemKey,toolName:n.toolName,input:n.input};case"tool_result":return{itemKey:n.itemKey,toolName:n.toolName??null,body:n.content,isError:n.isError};case"reasoning_delta":return;case"reasoning_message":return{itemKey:n.itemKey,body:n.content};case"command_output":return{itemKey:n.itemKey,body:n.content};case"command_output_delta":return;case"usage":return{usage:n.usage};case"rate_limit":return{body:`Claude Code rate limit: ${iC(n.rateLimit,Date.now())}`,status:n.rateLimit.status??null,rate_limit_type:n.rateLimit.rateLimitType??null,utilization_percent:n.rateLimit.utilizationPercent??null,resets_at_ms:n.rateLimit.resetsAtMs??null};case"unknown":return{itemKey:n.itemKey,body:n.summary};case"turn_completed":case"session_completed":return{body:n.body,bodySource:n.bodySource??null,usage:n.usage??null};case"turn_interrupted":return{body:"Claude Code turn interrupted"};case"session_failed":return{body:n.reason};case"agent_status":case"agent_task_update":case"permission_mode_changed":return}}function DRe(e){let n={};for(let[t,r]of Object.entries(e))r!==void 0&&(n[t]=r);return n}async function MRe(e,n,t){let r=await e.push(n,"llm_proxy:mint_session_token",t!==void 0&&t!==""?{currentToken:t}:{});if(Q(r)&&r.status==="ok"&&Q(r.response)&&typeof r.response.token=="string"&&r.response.token!==""){let o=r.response.max_age_seconds;return{token:r.response.token,...typeof o=="number"&&Number.isFinite(o)&&o>0?{maxAgeMs:o*1e3}:{}}}}function QB(e,n,t){let r={};for(let[i,s]of Object.entries(e))s!==void 0&&(i==="ANTHROPIC_BASE_URL"||i==="ANTHROPIC_CUSTOM_HEADERS"||i.startsWith("CLAUDE_CODE_USE_")||(r[i]=s));r.ANTHROPIC_BASE_URL=n.baseUrl,n.token!==void 0&&(r.ANTHROPIC_CUSTOM_HEADERS=`${ERe}: ${n.token}`);let o=wJ(t);return o!==void 0&&(r.ANTHROPIC_DEFAULT_OPUS_MODEL=o,r.ANTHROPIC_DEFAULT_SONNET_MODEL=o,r.ANTHROPIC_DEFAULT_HAIKU_MODEL=o,r.CLAUDE_CODE_SUBAGENT_MODEL=o),r}function wJ(e){let n=e?.trim();switch(n){case void 0:case"":case"default":case"haiku":case"sonnet":case"opus":case"fable-5":return;default:return n.startsWith("claude")?void 0:n}}function wI(e){let n=e?.trim();switch(n){case void 0:case"":case"default":return;case"haiku":case"sonnet":case"opus":return n;case"fable-5":return"claude-fable-5";default:return ARe(n)?"sonnet":n}}function ARe(e){let n=e.toLowerCase();return n.startsWith("gpt-")||n.startsWith("o1")||n.startsWith("o3")||n.startsWith("o4")||n.startsWith("o5")||n.startsWith("codex")}async function ORe(e,n,t,r,o){let i=pn(t,"workspace"),s=pn(t,"channel"),a=pn(t,"threadId"),d=h(t.modelProvider)?.trim(),u=h(t.model)?.trim();i===void 0||s===void 0||a===void 0||await e.push(n,"session:post_thread_message",{workspace:i,channel:s,thread_id:a,body:`Starting a new Codex thread with instructions:
1522
1522
 
1523
1523
  ${r}`,payload:{metadata:{local_codex_runner:{event_type:"codex_start_instructions",codex_thread_id:o,instructions_body:r,...d===void 0||d===""?{}:{model_provider:d},...u===void 0||u===""?{}:{model:u}}}},client_message_id:`codex-start-instructions-${a}`})}function vd(e){let n=e.replace(/\s+/g," ").trim();return n.length<=50?n:`${n.slice(0,47)}...`}function $Re(e){return[e.status??"na",e.rateLimitType??"na",e.utilizationPercent??"na",e.resetsAtMs??"na"].join(":")}async function LRe(e){await e.kandan.push(e.topic,"claude_rate_limit_state",{workspace:e.workspace,channel:e.channel,thread_id:e.threadId,agent_provider:"claude-code",...e.claudeSessionId===void 0?{}:{claude_session_id:e.claudeSessionId},rate_limit_type:e.rateLimit.rateLimitType??"account",status:e.rateLimit.status??"allowed",...e.rateLimit.utilizationPercent===void 0?{}:{utilization_percent:Math.min(100,Math.max(0,Math.round(e.rateLimit.utilizationPercent)))},...e.rateLimit.resetsAtMs===void 0?{}:{resets_at_ms:e.rateLimit.resetsAtMs}})}async function vo(e,n,t,r,o,i={}){let{failureClass:s,...a}=i,d=ra(t,r,o,{...a,...r==="failed"?Uu(s):{}});d!==void 0&&await e.push(n,"message_state",d)}async function XB(e,n,t,r,o,i={}){let s=X(t.rootSeq),a=X(t.sourceSeq)??s;if(a===void 0)return;let d=pn(t,"workspace"),u=pn(t,"channel"),c=pn(t,"threadId");d===void 0||u===void 0||c===void 0||await e.push(n,"message_state",{workspace:d,channel:u,thread_id:c,...i.instanceId===void 0?{}:{instance_id:i.instanceId},seq:a,status:"failed",reason:r,allowed_cwds:o})}async function ri(e,n,t){if(t.sourceSeq===void 0)return;await(t.publishMode==="connected_only"?e.pushIfConnected:e.push)(n,"message_state",{workspace:t.workspace,channel:t.channel,thread_id:t.threadId,seq:t.sourceSeq,status:t.status,reason:t.reason,...t.status==="failed"?Uu(t.failureClass):{},...t.sessionId===void 0?{}:{codex_thread_id:t.sessionId},agent_provider:"claude-code"})}function ra(e,n,t,r={}){let o=X(e.rootSeq),i=X(e.sourceSeq)??o;if(i===void 0)return;let s=Xc(e,"workspace"),a=Xc(e,"channel"),d=Xc(e,"threadId"),u=dm(e),c=u.type==="ok"&&u.provider!=="codex"?u.provider:void 0;return{workspace:s,channel:a,thread_id:d,...r.instanceId===void 0?{}:{instance_id:r.instanceId},seq:i,status:n,reason:t,...r.codexThreadId===void 0?{}:{codex_thread_id:r.codexThreadId},...r.retryable===!0?{retryable:!0}:{},...r.fate!==void 0&&yo(r.fate)?{fate:r.fate}:{},...c===void 0?{}:{agent_provider:c}}}function Xc(e,n){return jRe(e,n)}function jRe(e,n){let t=pn(e,n);if(t===void 0)throw new Error(`${e.type} control missing ${n}`);return t}function pn(e,n){let t=h(e[n])?.trim();if(!(t===void 0||t===""))return t}function rl(e,n){let t=pm(e),r=n.sandbox??t.sandbox,o=h(n.modelProvider)?.trim(),i=n.sandboxedApprovalNeverDefault===!0?!0:void 0;return{model:n.model??t.model,modelProvider:o===void 0||o===""?void 0:o,reasoningEffort:n.reasoningEffort??t.reasoningEffort,approvalPolicy:wp(n.approvalPolicy??t.approvalPolicy,r,{sandboxedNeverDefault:i}),sandbox:r,sandboxedApprovalNeverDefault:i,fast:n.fast??e.fast,allowPortForwardingByDefault:!0}}function FRe(e){return{...e.model===void 0?{}:{model:e.model},...e.reasoningEffort===void 0?{}:{reasoningEffort:e.reasoningEffort},...e.approvalPolicy===void 0?{}:{approvalPolicy:Sg(e.approvalPolicy,e.sandbox,{sandboxedNeverDefault:e.sandboxedApprovalNeverDefault})},...e.sandbox===void 0?{}:{sandbox:e.sandbox},...e.fast===!0?{serviceTier:"fast"}:{}}}function vJ(e){let{runtimeSettings:n}=e;return{type:"reconnect_thread",workspace:e.workspaceSlug,channel:e.channelSlug,threadId:e.kandanThreadId,codexThreadId:e.codexThreadId,cwd:e.cwd,agentProvider:"codex",...e.rootSeq===void 0?{}:{rootSeq:e.rootSeq},...n.model===void 0?{}:{model:n.model},...n.reasoningEffort===void 0?{}:{reasoningEffort:n.reasoningEffort},...n.sandbox===void 0?{}:{sandbox:n.sandbox},...n.approvalPolicy===void 0?{}:{approvalPolicy:n.approvalPolicy},...n.fast===void 0?{}:{fast:n.fast}}}function qRe(e){switch(e){case"exhausted":return"couldn't resume this job after several attempts; please resend your last message to continue.";case"withheld":return"this message may have already run before an unexpected shutdown; it was not re-run to avoid duplicating work. Please resend if it did not complete.";case"permanent":return"couldn't resume this job's coding session."}}function zRe(e){switch(e){case"exhausted":return"dead_letter_exhausted";case"withheld":return"dead_letter_withheld";case"permanent":return"dead_letter_permanent"}}function Gc(e){let n=e.control,t=X(n.rootSeq),r=h(n.model),o=h(n.reasoningEffort),i=h(n.sandbox),s=h(n.approvalPolicy),a=typeof n.fast=="boolean"?n.fast:void 0;return{type:"reconnect_thread",workspace:e.workspace,channel:e.channel,threadId:e.kandanThreadId,codexThreadId:e.codexThreadId,cwd:e.cwd,agentProvider:"codex",...t===void 0?{}:{rootSeq:t},...r===void 0?{}:{model:r},...o===void 0?{}:{reasoningEffort:o},...i===void 0?{}:{sandbox:i},...s===void 0?{}:{approvalPolicy:s},...a===void 0?{}:{fast:a}}}function NRe(e){let{control:n}=e;if(n.type!=="reconnect_thread")return;let t=pn(n,"channel"),r=pn(n,"threadId"),o=pn(n,"workspace"),i=X(n.rootSeq),s=X(n.sourceSeq)??i,a=ao(n.workDescription),d=h(n.codexThreadId),u=h(n.cwd);if(!G7({controlType:n.type,channel:t,threadId:r,sourceSeq:s,workDescription:a,workspace:o,codexThreadId:d,cwd:u,agentProvider:n.agentProvider,hasRegistryRecord:e.hasRegistryRecord}).hold||t===void 0||r===void 0||s===void 0||a===void 0)return;let l={seq:s,type:"thread.message",actorKind:void 0,actorSlug:e.identity.actorUsername,actorUserId:e.identity.actorUserId,threadId:r,threadTitle:void 0,replyToSeq:i,localRunnerEventType:void 0,body:a,attachments:Ho(ze(n.attachments)??[]),traceparent:h(n.traceparent)},p=e.hasRegistryRecord||o===void 0||d===void 0||u===void 0?void 0:{workspace:o,channel:t,kandanThreadId:r,codexThreadId:d,cwd:u,agentProvider:"codex",control:vJ({workspaceSlug:o,channelSlug:t,kandanThreadId:r,codexThreadId:d,cwd:u,rootSeq:i,runtimeSettings:e.runtimeSettings}),updatedAtMs:e.nowMs};return{channel:t,threadId:r,sourceSeq:s,codexThreadId:d,queuePayload:$u(l),registryRecord:p}}async function URe(e){let{plan:n}=e,t=e.queue.enqueue(n.sourceSeq,"replay",n.queuePayload,e.nowMs);try{if(n.registryRecord!==void 0&&e.upsertRegistryRecord(n.registryRecord),e.queuedStatePayload!==void 0)try{await e.pushQueuedState(e.queuedStatePayload)}catch(r){e.log("runner.update_restart_drain_held_state_push_failed",{thread_id:n.threadId,source_seq:n.sourceSeq,message:r instanceof Error?r.message:String(r)})}e.trackHeld({channel:n.channel,threadId:n.threadId,sourceSeq:n.sourceSeq,heldAtMs:e.nowMs})}catch(r){return e.log("runner.update_restart_drain_hold_compensated",{thread_id:n.threadId,source_seq:n.sourceSeq,residual_duplicate_entry:!t.accepted,message:r instanceof Error?r.message:String(r)}),t.accepted&&e.queue.deadLetter(n.sourceSeq),{held:!1}}return{held:!0,enqueuedFresh:t.accepted}}function YB(e){if(e.rootPid===void 0&&e.start===void 0)return;let n=[process.pid,...e.rootPid===void 0?[]:[e.rootPid],...e.commanderBoundPids??[]],t=e.commanderBoundPorts??[];return{...e.rootPid===void 0?{}:{rootPid:e.rootPid},...n.length===0?{}:{commanderBoundPids:n},...t.length===0?{}:{commanderBoundPorts:t},...e.start===void 0?{}:{start:e.start}}}function eJ(e){return e.threadProcess?.role!=="thread"&&e.codexUrl===void 0}async function BRe(e){let n=process.env.LINZUMI_E2E_COMMANDER_BOUND_HTTP_PORT;if(n===void 0||n.trim()==="")return;let t=JRe(n,"LINZUMI_E2E_COMMANDER_BOUND_HTTP_PORT"),r=RPe((o,i)=>{i.writeHead(200,{"content-type":"text/plain; charset=utf-8"}),i.end(`linzumi commander-bound probe
1524
1524
  `)});return await KRe(r,t),e("runner.e2e_commander_bound_http_probe_started",{port:t}),{port:t,close:()=>VRe(r)}}function JRe(e,n){let t=e.trim(),r=Number.parseInt(t,10);if(!/^\d+$/u.test(t)||!Number.isInteger(r))throw new Error(`${n} must be an integer TCP port`);if(r<=0||r>65535)throw new Error(`${n} must be between 1 and 65535`);return r}function KRe(e,n){return new Promise((t,r)=>{let o=s=>{e.off("listening",i),r(s)},i=()=>{e.off("error",o),t()};e.once("error",o),e.once("listening",i),e.listen(n,"127.0.0.1")})}function VRe(e){return e.listening?new Promise((n,t)=>{e.close(r=>{if(r!==void 0){t(r);return}n()})}):Promise.resolve()}function WRe(e){return ec({rootPid:process.pid,commanderBoundPids:[process.pid],onCandidate:n=>{if(n.portKind!=="commander_bound"||e.managedForwardPorts.has(n.port))return;let t=vi(n.command);e.markCommanderManagedForwardPort(n.port,{processName:t?.appName??nf(n),processIconKey:t?.iconKey??"terminal"}),e.pushForwardPortEvent("forward_port_resolved",{instanceId:e.instanceId,requestId:`commander-bound-${n.pid}-${n.port}`,port:n.port,decision:"approve",capabilities:e.capabilitiesPayload()})},onCandidateLost:n=>{n.portKind==="commander_bound"&&e.managedForwardPorts.has(n.port)&&(e.clearCommanderManagedForwardPort(n.port),e.pushForwardPortEvent("forward_port_revoked",{instanceId:e.instanceId,requestId:`commander-bound-${n.pid}-${n.port}`,port:n.port,decision:"revoked",reason:"listener_exited",capabilities:Us(e.capabilitiesPayload(),n.port)}))},onError:n=>e.log("port_forward.commander_bound_watch_failed",{message:n.message})})}function HRe(e){if(e.codingJobToolScope==="coding"&&e.linzumiAgent?.mcpToken===void 0&&!EI(e).projectBound)return"coding"}function GRe(e){let n=rl(e.options,e.control),t=$0(e.control);return{...e.options,clientId:void 0,machineId:void 0,runnerLockConfigPath:void 0,workspaceSlug:e.workspaceSlug,cwd:e.cwd,codexUrl:void 0,launchTui:!1,allowedCwds:Array.from(new Set([e.cwd,...e.options.allowedCwds])),codeServerBin:e.options.editorRuntime?.mode==="server_managed"?void 0:e.options.codeServerBin,editorRuntime:void 0,threadProcess:{role:"thread",kandanThreadId:e.kandanThreadId},codexModelProvider:t.type==="provider"?t.runtime:void 0,linzumiAgentMcpToken:e.control.linzumiAgent?.mcpToken??e.options.linzumiAgentMcpToken,codingJobToolScope:HRe(e.control),vmExecution:e.options.vmExecution,executionMode:e.control.type==="start_instance"?AI(e.control.executionMode):e.options.executionMode,egressMode:e.control.type==="start_instance"?OI(e.control.egressMode):e.options.egressMode,projectId:e.control.type==="start_instance"?JEe(e.control.projectId):e.options.projectId,projectPublicId:e.control.type==="start_instance"?cm(e.control.projectPublicId):e.options.projectPublicId,goldenImagePublicId:e.control.type==="start_instance"?cm(e.control.goldenImagePublicId):e.options.goldenImagePublicId,spawnThreadRunner:void 0,localVmReadinessProbe:void 0,threadRunnerReadyTimeoutMs:e.options.threadRunnerReadyTimeoutMs,runtimeDefaults:{model:n.model,reasoningEffort:n.reasoningEffort,sandbox:n.sandbox,approvalPolicy:n.approvalPolicy,allowPortForwardingByDefault:n.allowPortForwardingByDefault},channelSession:void 0}}function ZRe(e){if(e===void 0||!Number.isInteger(e)||e<=0)return!0;try{return process.kill(e,0),!0}catch(n){return n?.code==="EPERM"}}function R0(e){if(e.kind==="starting")return"starting";let n=e.handle;return n.codex.isClosed?.()===!0||n.sessionClosed?.()===!0?"dead":ZRe(n.processPid)?"live":"dead"}async function vI(e){switch(e.kind){case"running":await e.handle.close();return;case"starting":try{await(await e.promise).close()}catch{return}return}}function XRe(e){return e.length>nJ?e.slice(e.length-nJ):e}function tJ(e){let n=e instanceof Error?e.message:String(e??"");return YRe.test(n)}function eEe(e){let n=zr(e.cwd,e.allowedCwds);if(n.ok)return;let t=e.allowedCwds.length===0?"none":e.allowedCwds.join(", ");return{reason:n.reason,message:`${kJ} (${n.reason}): working directory ${e.cwd} cannot start a coding session on this runner (allowed roots: ${t})`}}function nEe(e){return e.split(`
@@ -1549,7 +1549,7 @@ Open: ${e.verificationUri}
1549
1549
  || ${s} === "boolean" || ${o} === null`).assign(a,(0,dn._)`[${o}]`)}}}function I$e({gen:e,parentData:n,parentDataProperty:t},r){e.if((0,dn._)`${n} !== undefined`,()=>e.assign((0,dn._)`${n}[${t}]`,r))}function Z2(e,n,t,r=Rl.Correct){let o=r===Rl.Correct?dn.operators.EQ:dn.operators.NEQ,i;switch(e){case"null":return(0,dn._)`${n} ${o} null`;case"array":i=(0,dn._)`Array.isArray(${n})`;break;case"object":i=(0,dn._)`${n} && typeof ${n} == "object" && !Array.isArray(${n})`;break;case"integer":i=s((0,dn._)`!(${n} % 1) && !isNaN(${n})`);break;case"number":i=s();break;default:return(0,dn._)`typeof ${n} ${o} ${e}`}return r===Rl.Correct?i:(0,dn.not)(i);function s(a=dn.nil){return(0,dn.and)((0,dn._)`typeof ${n} == "number"`,a,t?(0,dn._)`isFinite(${n})`:dn.nil)}}Sr.checkDataType=Z2;function Q2(e,n,t,r){if(e.length===1)return Z2(e[0],n,t,r);let o,i=(0,TH.toHash)(e);if(i.array&&i.object){let s=(0,dn._)`typeof ${n} != "object"`;o=i.null?s:(0,dn._)`!${n} || ${s}`,delete i.null,delete i.array,delete i.object}else o=dn.nil;i.number&&delete i.integer;for(let s in i)o=(0,dn.and)(o,Z2(s,n,t,r));return o}Sr.checkDataTypes=Q2;var R$e={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:n})=>typeof e=="string"?(0,dn._)`{type: ${e}}`:(0,dn._)`{type: ${n}}`};function X2(e){let n=E$e(e);(0,S$e.reportError)(n,R$e)}Sr.reportTypeError=X2;function E$e(e){let{gen:n,data:t,schema:r}=e,o=(0,TH.schemaRefOrVal)(e,r,"type");return{gen:n,keyword:"type",data:t,schema:r.type,schemaCode:o,schemaValue:o,parentSchema:r,params:{},it:e}}});var EH=ee(eb=>{"use strict";Object.defineProperty(eb,"__esModule",{value:!0});eb.assignDefaults=void 0;var El=ln(),D$e=Rn();function M$e(e,n){let{properties:t,items:r}=e.schema;if(n==="object"&&t)for(let o in t)RH(e,o,t[o].default);else n==="array"&&Array.isArray(r)&&r.forEach((o,i)=>RH(e,i,o.default))}eb.assignDefaults=M$e;function RH(e,n,t){let{gen:r,compositeRule:o,data:i,opts:s}=e;if(t===void 0)return;let a=(0,El._)`${i}${(0,El.getProperty)(n)}`;if(o){(0,D$e.checkStrictMode)(e,`default is ignored for: ${a}`);return}let d=(0,El._)`${a} === undefined`;s.useDefaults==="empty"&&(d=(0,El._)`${d} || ${a} === null || ${a} === ""`),r.if(d,(0,El._)`${a} = ${(0,El.stringify)(t)}`)}});var Mo=ee(Nn=>{"use strict";Object.defineProperty(Nn,"__esModule",{value:!0});Nn.validateUnion=Nn.validateArray=Nn.usePattern=Nn.callValidateCode=Nn.schemaProperties=Nn.allSchemaProperties=Nn.noPropertyInData=Nn.propertyInData=Nn.isOwnProperty=Nn.hasPropFunc=Nn.reportMissingProp=Nn.checkMissingProp=Nn.checkReportMissingProp=void 0;var it=ln(),Y2=Rn(),ya=Is(),A$e=Rn();function O$e(e,n){let{gen:t,data:r,it:o}=e;t.if(n1(t,r,n,o.opts.ownProperties),()=>{e.setParams({missingProperty:(0,it._)`${n}`},!0),e.error()})}Nn.checkReportMissingProp=O$e;function $$e({gen:e,data:n,it:{opts:t}},r,o){return(0,it.or)(...r.map(i=>(0,it.and)(n1(e,n,i,t.ownProperties),(0,it._)`${o} = ${i}`)))}Nn.checkMissingProp=$$e;function L$e(e,n){e.setParams({missingProperty:n},!0),e.error()}Nn.reportMissingProp=L$e;function DH(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,it._)`Object.prototype.hasOwnProperty`})}Nn.hasPropFunc=DH;function e1(e,n,t){return(0,it._)`${DH(e)}.call(${n}, ${t})`}Nn.isOwnProperty=e1;function j$e(e,n,t,r){let o=(0,it._)`${n}${(0,it.getProperty)(t)} !== undefined`;return r?(0,it._)`${o} && ${e1(e,n,t)}`:o}Nn.propertyInData=j$e;function n1(e,n,t,r){let o=(0,it._)`${n}${(0,it.getProperty)(t)} === undefined`;return r?(0,it.or)(o,(0,it.not)(e1(e,n,t))):o}Nn.noPropertyInData=n1;function MH(e){return e?Object.keys(e).filter(n=>n!=="__proto__"):[]}Nn.allSchemaProperties=MH;function F$e(e,n){return MH(n).filter(t=>!(0,Y2.alwaysValidSchema)(e,n[t]))}Nn.schemaProperties=F$e;function q$e({schemaCode:e,data:n,it:{gen:t,topSchemaRef:r,schemaPath:o,errorPath:i},it:s},a,d,u){let c=u?(0,it._)`${e}, ${n}, ${r}${o}`:n,l=[[ya.default.instancePath,(0,it.strConcat)(ya.default.instancePath,i)],[ya.default.parentData,s.parentData],[ya.default.parentDataProperty,s.parentDataProperty],[ya.default.rootData,ya.default.rootData]];s.opts.dynamicRef&&l.push([ya.default.dynamicAnchors,ya.default.dynamicAnchors]);let p=(0,it._)`${c}, ${t.object(...l)}`;return d!==it.nil?(0,it._)`${a}.call(${d}, ${p})`:(0,it._)`${a}(${p})`}Nn.callValidateCode=q$e;var z$e=(0,it._)`new RegExp`;function N$e({gen:e,it:{opts:n}},t){let r=n.unicodeRegExp?"u":"",{regExp:o}=n.code,i=o(t,r);return e.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,it._)`${o.code==="new RegExp"?z$e:(0,A$e.useFunc)(e,o)}(${t}, ${r})`})}Nn.usePattern=N$e;function U$e(e){let{gen:n,data:t,keyword:r,it:o}=e,i=n.name("valid");if(o.allErrors){let a=n.let("valid",!0);return s(()=>n.assign(a,!1)),a}return n.var(i,!0),s(()=>n.break()),i;function s(a){let d=n.const("len",(0,it._)`${t}.length`);n.forRange("i",0,d,u=>{e.subschema({keyword:r,dataProp:u,dataPropType:Y2.Type.Num},i),n.if((0,it.not)(i),a)})}}Nn.validateArray=U$e;function B$e(e){let{gen:n,schema:t,keyword:r,it:o}=e;if(!Array.isArray(t))throw new Error("ajv implementation error");if(t.some(d=>(0,Y2.alwaysValidSchema)(o,d))&&!o.opts.unevaluated)return;let s=n.let("valid",!1),a=n.name("_valid");n.block(()=>t.forEach((d,u)=>{let c=e.subschema({keyword:r,schemaProp:u,compositeRule:!0},a);n.assign(s,(0,it._)`${s} || ${a}`),e.mergeValidEvaluated(c,a)||n.if((0,it.not)(s))})),e.result(s,()=>e.reset(),()=>e.error(!0))}Nn.validateUnion=B$e});var $H=ee(Fi=>{"use strict";Object.defineProperty(Fi,"__esModule",{value:!0});Fi.validateKeywordUsage=Fi.validSchemaType=Fi.funcKeywordCode=Fi.macroKeywordCode=void 0;var Ar=ln(),ru=Is(),J$e=Mo(),K$e=Gm();function V$e(e,n){let{gen:t,keyword:r,schema:o,parentSchema:i,it:s}=e,a=n.macro.call(s.self,o,i,s),d=OH(t,r,a);s.opts.validateSchema!==!1&&s.self.validateSchema(a,!0);let u=t.name("valid");e.subschema({schema:a,schemaPath:Ar.nil,errSchemaPath:`${s.errSchemaPath}/${r}`,topSchemaRef:d,compositeRule:!0},u),e.pass(u,()=>e.error(!0))}Fi.macroKeywordCode=V$e;function W$e(e,n){var t;let{gen:r,keyword:o,schema:i,parentSchema:s,$data:a,it:d}=e;G$e(d,n);let u=!a&&n.compile?n.compile.call(d.self,i,s,d):n.validate,c=OH(r,o,u),l=r.let("valid");e.block$data(l,p),e.ok((t=n.valid)!==null&&t!==void 0?t:l);function p(){if(n.errors===!1)y(),n.modifying&&AH(e),_(()=>e.error());else{let w=n.async?m():f();n.modifying&&AH(e),_(()=>H$e(e,w))}}function m(){let w=r.let("ruleErrs",null);return r.try(()=>y((0,Ar._)`await `),S=>r.assign(l,!1).if((0,Ar._)`${S} instanceof ${d.ValidationError}`,()=>r.assign(w,(0,Ar._)`${S}.errors`),()=>r.throw(S))),w}function f(){let w=(0,Ar._)`${c}.errors`;return r.assign(w,null),y(Ar.nil),w}function y(w=n.async?(0,Ar._)`await `:Ar.nil){let S=d.opts.passContext?ru.default.this:ru.default.self,v=!("compile"in n&&!a||n.schema===!1);r.assign(l,(0,Ar._)`${w}${(0,J$e.callValidateCode)(e,c,S,v)}`,n.modifying)}function _(w){var S;r.if((0,Ar.not)((S=n.valid)!==null&&S!==void 0?S:l),w)}}Fi.funcKeywordCode=W$e;function AH(e){let{gen:n,data:t,it:r}=e;n.if(r.parentData,()=>n.assign(t,(0,Ar._)`${r.parentData}[${r.parentDataProperty}]`))}function H$e(e,n){let{gen:t}=e;t.if((0,Ar._)`Array.isArray(${n})`,()=>{t.assign(ru.default.vErrors,(0,Ar._)`${ru.default.vErrors} === null ? ${n} : ${ru.default.vErrors}.concat(${n})`).assign(ru.default.errors,(0,Ar._)`${ru.default.vErrors}.length`),(0,K$e.extendErrors)(e)},()=>e.error())}function G$e({schemaEnv:e},n){if(n.async&&!e.$async)throw new Error("async keyword in sync schema")}function OH(e,n,t){if(t===void 0)throw new Error(`keyword "${n}" failed to compile`);return e.scopeValue("keyword",typeof t=="function"?{ref:t}:{ref:t,code:(0,Ar.stringify)(t)})}function Z$e(e,n,t=!1){return!n.length||n.some(r=>r==="array"?Array.isArray(e):r==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==r||t&&typeof e>"u")}Fi.validSchemaType=Z$e;function Q$e({schema:e,opts:n,self:t,errSchemaPath:r},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");let s=o.dependencies;if(s?.some(a=>!Object.prototype.hasOwnProperty.call(e,a)))throw new Error(`parent schema must have dependencies of ${i}: ${s.join(",")}`);if(o.validateSchema&&!o.validateSchema(e[i])){let d=`keyword "${i}" value is invalid at path "${r}": `+t.errorsText(o.validateSchema.errors);if(n.validateSchema==="log")t.logger.error(d);else throw new Error(d)}}Fi.validateKeywordUsage=Q$e});var jH=ee(xa=>{"use strict";Object.defineProperty(xa,"__esModule",{value:!0});xa.extendSubschemaMode=xa.extendSubschemaData=xa.getSubschema=void 0;var qi=ln(),LH=Rn();function X$e(e,{keyword:n,schemaProp:t,schema:r,schemaPath:o,errSchemaPath:i,topSchemaRef:s}){if(n!==void 0&&r!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(n!==void 0){let a=e.schema[n];return t===void 0?{schema:a,schemaPath:(0,qi._)`${e.schemaPath}${(0,qi.getProperty)(n)}`,errSchemaPath:`${e.errSchemaPath}/${n}`}:{schema:a[t],schemaPath:(0,qi._)`${e.schemaPath}${(0,qi.getProperty)(n)}${(0,qi.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${n}/${(0,LH.escapeFragment)(t)}`}}if(r!==void 0){if(o===void 0||i===void 0||s===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:r,schemaPath:o,topSchemaRef:s,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}xa.getSubschema=X$e;function Y$e(e,n,{dataProp:t,dataPropType:r,data:o,dataTypes:i,propertyName:s}){if(o!==void 0&&t!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:a}=n;if(t!==void 0){let{errorPath:u,dataPathArr:c,opts:l}=n,p=a.let("data",(0,qi._)`${n.data}${(0,qi.getProperty)(t)}`,!0);d(p),e.errorPath=(0,qi.str)`${u}${(0,LH.getErrorPath)(t,r,l.jsPropertySyntax)}`,e.parentDataProperty=(0,qi._)`${t}`,e.dataPathArr=[...c,e.parentDataProperty]}if(o!==void 0){let u=o instanceof qi.Name?o:a.let("data",o,!0);d(u),s!==void 0&&(e.propertyName=s)}i&&(e.dataTypes=i);function d(u){e.data=u,e.dataLevel=n.dataLevel+1,e.dataTypes=[],n.definedProperties=new Set,e.parentData=n.data,e.dataNames=[...n.dataNames,u]}}xa.extendSubschemaData=Y$e;function eLe(e,{jtdDiscriminator:n,jtdMetadata:t,compositeRule:r,createErrors:o,allErrors:i}){r!==void 0&&(e.compositeRule=r),o!==void 0&&(e.createErrors=o),i!==void 0&&(e.allErrors=i),e.jtdDiscriminator=n,e.jtdMetadata=t}xa.extendSubschemaMode=eLe});var t1=ee((jan,FH)=>{"use strict";FH.exports=function e(n,t){if(n===t)return!0;if(n&&t&&typeof n=="object"&&typeof t=="object"){if(n.constructor!==t.constructor)return!1;var r,o,i;if(Array.isArray(n)){if(r=n.length,r!=t.length)return!1;for(o=r;o--!==0;)if(!e(n[o],t[o]))return!1;return!0}if(n.constructor===RegExp)return n.source===t.source&&n.flags===t.flags;if(n.valueOf!==Object.prototype.valueOf)return n.valueOf()===t.valueOf();if(n.toString!==Object.prototype.toString)return n.toString()===t.toString();if(i=Object.keys(n),r=i.length,r!==Object.keys(t).length)return!1;for(o=r;o--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[o]))return!1;for(o=r;o--!==0;){var s=i[o];if(!e(n[s],t[s]))return!1}return!0}return n!==n&&t!==t}});var zH=ee((Fan,qH)=>{"use strict";var _a=qH.exports=function(e,n,t){typeof n=="function"&&(t=n,n={}),t=n.cb||t;var r=typeof t=="function"?t:t.pre||function(){},o=t.post||function(){};nb(n,r,o,e,"",e)};_a.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};_a.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};_a.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};_a.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function nb(e,n,t,r,o,i,s,a,d,u){if(r&&typeof r=="object"&&!Array.isArray(r)){n(r,o,i,s,a,d,u);for(var c in r){var l=r[c];if(Array.isArray(l)){if(c in _a.arrayKeywords)for(var p=0;p<l.length;p++)nb(e,n,t,l[p],o+"/"+c+"/"+p,i,o,c,r,p)}else if(c in _a.propsKeywords){if(l&&typeof l=="object")for(var m in l)nb(e,n,t,l[m],o+"/"+c+"/"+nLe(m),i,o,c,r,m)}else(c in _a.keywords||e.allKeys&&!(c in _a.skipKeywords))&&nb(e,n,t,l,o+"/"+c,i,o,c,r)}t(r,o,i,s,a,d,u)}}function nLe(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var Qm=ee(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});Zr.getSchemaRefs=Zr.resolveUrl=Zr.normalizeId=Zr._getFullPath=Zr.getFullPath=Zr.inlineRef=void 0;var tLe=Rn(),rLe=t1(),oLe=zH(),iLe=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function sLe(e,n=!0){return typeof e=="boolean"?!0:n===!0?!r1(e):n?NH(e)<=n:!1}Zr.inlineRef=sLe;var aLe=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function r1(e){for(let n in e){if(aLe.has(n))return!0;let t=e[n];if(Array.isArray(t)&&t.some(r1)||typeof t=="object"&&r1(t))return!0}return!1}function NH(e){let n=0;for(let t in e){if(t==="$ref")return 1/0;if(n++,!iLe.has(t)&&(typeof e[t]=="object"&&(0,tLe.eachItem)(e[t],r=>n+=NH(r)),n===1/0))return 1/0}return n}function UH(e,n="",t){t!==!1&&(n=Dl(n));let r=e.parse(n);return BH(e,r)}Zr.getFullPath=UH;function BH(e,n){return e.serialize(n).split("#")[0]+"#"}Zr._getFullPath=BH;var dLe=/#\/?$/;function Dl(e){return e?e.replace(dLe,""):""}Zr.normalizeId=Dl;function uLe(e,n,t){return t=Dl(t),e.resolve(n,t)}Zr.resolveUrl=uLe;var cLe=/^[a-z_][-a-z0-9._]*$/i;function lLe(e,n){if(typeof e=="boolean")return{};let{schemaId:t,uriResolver:r}=this.opts,o=Dl(e[t]||n),i={"":o},s=UH(r,o,!1),a={},d=new Set;return oLe(e,{allKeys:!0},(l,p,m,f)=>{if(f===void 0)return;let y=s+p,_=i[f];typeof l[t]=="string"&&(_=w.call(this,l[t])),S.call(this,l.$anchor),S.call(this,l.$dynamicAnchor),i[p]=_;function w(v){let b=this.opts.uriResolver.resolve;if(v=Dl(_?b(_,v):v),d.has(v))throw c(v);d.add(v);let k=this.refs[v];return typeof k=="string"&&(k=this.refs[k]),typeof k=="object"?u(l,k.schema,v):v!==Dl(y)&&(v[0]==="#"?(u(l,a[v],v),a[v]=l):this.refs[v]=y),v}function S(v){if(typeof v=="string"){if(!cLe.test(v))throw new Error(`invalid anchor "${v}"`);w.call(this,`#${v}`)}}}),a;function u(l,p,m){if(p!==void 0&&!rLe(l,p))throw c(m)}function c(l){return new Error(`reference "${l}" resolves to more than one schema`)}}Zr.getSchemaRefs=lLe});var eh=ee(ba=>{"use strict";Object.defineProperty(ba,"__esModule",{value:!0});ba.getData=ba.KeywordCxt=ba.validateFunctionCode=void 0;var HH=SH(),JH=Zm(),i1=G2(),tb=Zm(),pLe=EH(),Ym=$H(),o1=jH(),je=ln(),Qe=Is(),fLe=Qm(),Rs=Rn(),Xm=Gm();function mLe(e){if(QH(e)&&(XH(e),ZH(e))){yLe(e);return}GH(e,()=>(0,HH.topBoolOrEmptySchema)(e))}ba.validateFunctionCode=mLe;function GH({gen:e,validateName:n,schema:t,schemaEnv:r,opts:o},i){o.code.es5?e.func(n,(0,je._)`${Qe.default.data}, ${Qe.default.valCxt}`,r.$async,()=>{e.code((0,je._)`"use strict"; ${KH(t,o)}`),gLe(e,o),e.code(i)}):e.func(n,(0,je._)`${Qe.default.data}, ${hLe(o)}`,r.$async,()=>e.code(KH(t,o)).code(i))}function hLe(e){return(0,je._)`{${Qe.default.instancePath}="", ${Qe.default.parentData}, ${Qe.default.parentDataProperty}, ${Qe.default.rootData}=${Qe.default.data}${e.dynamicRef?(0,je._)`, ${Qe.default.dynamicAnchors}={}`:je.nil}}={}`}function gLe(e,n){e.if(Qe.default.valCxt,()=>{e.var(Qe.default.instancePath,(0,je._)`${Qe.default.valCxt}.${Qe.default.instancePath}`),e.var(Qe.default.parentData,(0,je._)`${Qe.default.valCxt}.${Qe.default.parentData}`),e.var(Qe.default.parentDataProperty,(0,je._)`${Qe.default.valCxt}.${Qe.default.parentDataProperty}`),e.var(Qe.default.rootData,(0,je._)`${Qe.default.valCxt}.${Qe.default.rootData}`),n.dynamicRef&&e.var(Qe.default.dynamicAnchors,(0,je._)`${Qe.default.valCxt}.${Qe.default.dynamicAnchors}`)},()=>{e.var(Qe.default.instancePath,(0,je._)`""`),e.var(Qe.default.parentData,(0,je._)`undefined`),e.var(Qe.default.parentDataProperty,(0,je._)`undefined`),e.var(Qe.default.rootData,Qe.default.data),n.dynamicRef&&e.var(Qe.default.dynamicAnchors,(0,je._)`{}`)})}function yLe(e){let{schema:n,opts:t,gen:r}=e;GH(e,()=>{t.$comment&&n.$comment&&eG(e),vLe(e),r.let(Qe.default.vErrors,null),r.let(Qe.default.errors,0),t.unevaluated&&xLe(e),YH(e),CLe(e)})}function xLe(e){let{gen:n,validateName:t}=e;e.evaluated=n.const("evaluated",(0,je._)`${t}.evaluated`),n.if((0,je._)`${e.evaluated}.dynamicProps`,()=>n.assign((0,je._)`${e.evaluated}.props`,(0,je._)`undefined`)),n.if((0,je._)`${e.evaluated}.dynamicItems`,()=>n.assign((0,je._)`${e.evaluated}.items`,(0,je._)`undefined`))}function KH(e,n){let t=typeof e=="object"&&e[n.schemaId];return t&&(n.code.source||n.code.process)?(0,je._)`/*# sourceURL=${t} */`:je.nil}function _Le(e,n){if(QH(e)&&(XH(e),ZH(e))){bLe(e,n);return}(0,HH.boolOrEmptySchema)(e,n)}function ZH({schema:e,self:n}){if(typeof e=="boolean")return!e;for(let t in e)if(n.RULES.all[t])return!0;return!1}function QH(e){return typeof e.schema!="boolean"}function bLe(e,n){let{schema:t,gen:r,opts:o}=e;o.$comment&&t.$comment&&eG(e),SLe(e),kLe(e);let i=r.const("_errs",Qe.default.errors);YH(e,i),r.var(n,(0,je._)`${i} === ${Qe.default.errors}`)}function XH(e){(0,Rs.checkUnknownRules)(e),wLe(e)}function YH(e,n){if(e.opts.jtd)return VH(e,[],!1,n);let t=(0,JH.getSchemaTypes)(e.schema),r=(0,JH.coerceAndCheckDataType)(e,t);VH(e,t,!r,n)}function wLe(e){let{schema:n,errSchemaPath:t,opts:r,self:o}=e;n.$ref&&r.ignoreKeywordsWithRef&&(0,Rs.schemaHasRulesButRef)(n,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${t}"`)}function vLe(e){let{schema:n,opts:t}=e;n.default!==void 0&&t.useDefaults&&t.strictSchema&&(0,Rs.checkStrictMode)(e,"default is ignored in the schema root")}function SLe(e){let n=e.schema[e.opts.schemaId];n&&(e.baseId=(0,fLe.resolveUrl)(e.opts.uriResolver,e.baseId,n))}function kLe(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function eG({gen:e,schemaEnv:n,schema:t,errSchemaPath:r,opts:o}){let i=t.$comment;if(o.$comment===!0)e.code((0,je._)`${Qe.default.self}.logger.log(${i})`);else if(typeof o.$comment=="function"){let s=(0,je.str)`${r}/$comment`,a=e.scopeValue("root",{ref:n.root});e.code((0,je._)`${Qe.default.self}.opts.$comment(${i}, ${s}, ${a}.schema)`)}}function CLe(e){let{gen:n,schemaEnv:t,validateName:r,ValidationError:o,opts:i}=e;t.$async?n.if((0,je._)`${Qe.default.errors} === 0`,()=>n.return(Qe.default.data),()=>n.throw((0,je._)`new ${o}(${Qe.default.vErrors})`)):(n.assign((0,je._)`${r}.errors`,Qe.default.vErrors),i.unevaluated&&TLe(e),n.return((0,je._)`${Qe.default.errors} === 0`))}function TLe({gen:e,evaluated:n,props:t,items:r}){t instanceof je.Name&&e.assign((0,je._)`${n}.props`,t),r instanceof je.Name&&e.assign((0,je._)`${n}.items`,r)}function VH(e,n,t,r){let{gen:o,schema:i,data:s,allErrors:a,opts:d,self:u}=e,{RULES:c}=u;if(i.$ref&&(d.ignoreKeywordsWithRef||!(0,Rs.schemaHasRulesButRef)(i,c))){o.block(()=>tG(e,"$ref",c.all.$ref.definition));return}d.jtd||PLe(e,n),o.block(()=>{for(let p of c.rules)l(p);l(c.post)});function l(p){(0,i1.shouldUseGroup)(i,p)&&(p.type?(o.if((0,tb.checkDataType)(p.type,s,d.strictNumbers)),WH(e,p),n.length===1&&n[0]===p.type&&t&&(o.else(),(0,tb.reportTypeError)(e)),o.endIf()):WH(e,p),a||o.if((0,je._)`${Qe.default.errors} === ${r||0}`))}}function WH(e,n){let{gen:t,schema:r,opts:{useDefaults:o}}=e;o&&(0,pLe.assignDefaults)(e,n.type),t.block(()=>{for(let i of n.rules)(0,i1.shouldUseRule)(r,i)&&tG(e,i.keyword,i.definition,n.type)})}function PLe(e,n){e.schemaEnv.meta||!e.opts.strictTypes||(ILe(e,n),e.opts.allowUnionTypes||RLe(e,n),ELe(e,e.dataTypes))}function ILe(e,n){if(n.length){if(!e.dataTypes.length){e.dataTypes=n;return}n.forEach(t=>{nG(e.dataTypes,t)||s1(e,`type "${t}" not allowed by context "${e.dataTypes.join(",")}"`)}),MLe(e,n)}}function RLe(e,n){n.length>1&&!(n.length===2&&n.includes("null"))&&s1(e,"use allowUnionTypes to allow union type keyword")}function ELe(e,n){let t=e.self.RULES.all;for(let r in t){let o=t[r];if(typeof o=="object"&&(0,i1.shouldUseRule)(e.schema,o)){let{type:i}=o.definition;i.length&&!i.some(s=>DLe(n,s))&&s1(e,`missing type "${i.join(",")}" for keyword "${r}"`)}}}function DLe(e,n){return e.includes(n)||n==="number"&&e.includes("integer")}function nG(e,n){return e.includes(n)||n==="integer"&&e.includes("number")}function MLe(e,n){let t=[];for(let r of e.dataTypes)nG(n,r)?t.push(r):n.includes("integer")&&r==="number"&&t.push("integer");e.dataTypes=t}function s1(e,n){let t=e.schemaEnv.baseId+e.errSchemaPath;n+=` at "${t}" (strictTypes)`,(0,Rs.checkStrictMode)(e,n,e.opts.strictTypes)}var rb=class{constructor(n,t,r){if((0,Ym.validateKeywordUsage)(n,t,r),this.gen=n.gen,this.allErrors=n.allErrors,this.keyword=r,this.data=n.data,this.schema=n.schema[r],this.$data=t.$data&&n.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Rs.schemaRefOrVal)(n,this.schema,r,this.$data),this.schemaType=t.schemaType,this.parentSchema=n.schema,this.params={},this.it=n,this.def=t,this.$data)this.schemaCode=n.gen.const("vSchema",rG(this.$data,n));else if(this.schemaCode=this.schemaValue,!(0,Ym.validSchemaType)(this.schema,t.schemaType,t.allowUndefined))throw new Error(`${r} value must be ${JSON.stringify(t.schemaType)}`);("code"in t?t.trackErrors:t.errors!==!1)&&(this.errsCount=n.gen.const("_errs",Qe.default.errors))}result(n,t,r){this.failResult((0,je.not)(n),t,r)}failResult(n,t,r){this.gen.if(n),r?r():this.error(),t?(this.gen.else(),t(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(n,t){this.failResult((0,je.not)(n),void 0,t)}fail(n){if(n===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(n),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(n){if(!this.$data)return this.fail(n);let{schemaCode:t}=this;this.fail((0,je._)`${t} !== undefined && (${(0,je.or)(this.invalid$data(),n)})`)}error(n,t,r){if(t){this.setParams(t),this._error(n,r),this.setParams({});return}this._error(n,r)}_error(n,t){(n?Xm.reportExtraError:Xm.reportError)(this,this.def.error,t)}$dataError(){(0,Xm.reportError)(this,this.def.$dataError||Xm.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Xm.resetErrorsCount)(this.gen,this.errsCount)}ok(n){this.allErrors||this.gen.if(n)}setParams(n,t){t?Object.assign(this.params,n):this.params=n}block$data(n,t,r=je.nil){this.gen.block(()=>{this.check$data(n,r),t()})}check$data(n=je.nil,t=je.nil){if(!this.$data)return;let{gen:r,schemaCode:o,schemaType:i,def:s}=this;r.if((0,je.or)((0,je._)`${o} === undefined`,t)),n!==je.nil&&r.assign(n,!0),(i.length||s.validateSchema)&&(r.elseIf(this.invalid$data()),this.$dataError(),n!==je.nil&&r.assign(n,!1)),r.else()}invalid$data(){let{gen:n,schemaCode:t,schemaType:r,def:o,it:i}=this;return(0,je.or)(s(),a());function s(){if(r.length){if(!(t instanceof je.Name))throw new Error("ajv implementation error");let d=Array.isArray(r)?r:[r];return(0,je._)`${(0,tb.checkDataTypes)(d,t,i.opts.strictNumbers,tb.DataType.Wrong)}`}return je.nil}function a(){if(o.validateSchema){let d=n.scopeValue("validate$data",{ref:o.validateSchema});return(0,je._)`!${d}(${t})`}return je.nil}}subschema(n,t){let r=(0,o1.getSubschema)(this.it,n);(0,o1.extendSubschemaData)(r,this.it,n),(0,o1.extendSubschemaMode)(r,n);let o={...this.it,...r,items:void 0,props:void 0};return _Le(o,t),o}mergeEvaluated(n,t){let{it:r,gen:o}=this;r.opts.unevaluated&&(r.props!==!0&&n.props!==void 0&&(r.props=Rs.mergeEvaluated.props(o,n.props,r.props,t)),r.items!==!0&&n.items!==void 0&&(r.items=Rs.mergeEvaluated.items(o,n.items,r.items,t)))}mergeValidEvaluated(n,t){let{it:r,gen:o}=this;if(r.opts.unevaluated&&(r.props!==!0||r.items!==!0))return o.if(t,()=>this.mergeEvaluated(n,je.Name)),!0}};ba.KeywordCxt=rb;function tG(e,n,t,r){let o=new rb(e,t,n);"code"in t?t.code(o,r):o.$data&&t.validate?(0,Ym.funcKeywordCode)(o,t):"macro"in t?(0,Ym.macroKeywordCode)(o,t):(t.compile||t.validate)&&(0,Ym.funcKeywordCode)(o,t)}var ALe=/^\/(?:[^~]|~0|~1)*$/,OLe=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function rG(e,{dataLevel:n,dataNames:t,dataPathArr:r}){let o,i;if(e==="")return Qe.default.rootData;if(e[0]==="/"){if(!ALe.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);o=e,i=Qe.default.rootData}else{let u=OLe.exec(e);if(!u)throw new Error(`Invalid JSON-pointer: ${e}`);let c=+u[1];if(o=u[2],o==="#"){if(c>=n)throw new Error(d("property/index",c));return r[n-c]}if(c>n)throw new Error(d("data",c));if(i=t[n-c],!o)return i}let s=i,a=o.split("/");for(let u of a)u&&(i=(0,je._)`${i}${(0,je.getProperty)((0,Rs.unescapeJsonPointer)(u))}`,s=(0,je._)`${s} && ${i}`);return s;function d(u,c){return`Cannot access ${u} ${c} levels up, current level is ${n}`}}ba.getData=rG});var ob=ee(d1=>{"use strict";Object.defineProperty(d1,"__esModule",{value:!0});var a1=class extends Error{constructor(n){super("validation failed"),this.errors=n,this.ajv=this.validation=!0}};d1.default=a1});var nh=ee(l1=>{"use strict";Object.defineProperty(l1,"__esModule",{value:!0});var u1=Qm(),c1=class extends Error{constructor(n,t,r,o){super(o||`can't resolve reference ${r} from id ${t}`),this.missingRef=(0,u1.resolveUrl)(n,t,r),this.missingSchema=(0,u1.normalizeId)((0,u1.getFullPath)(n,this.missingRef))}};l1.default=c1});var sb=ee(Ao=>{"use strict";Object.defineProperty(Ao,"__esModule",{value:!0});Ao.resolveSchema=Ao.getCompilingSchema=Ao.resolveRef=Ao.compileSchema=Ao.SchemaEnv=void 0;var ci=ln(),$Le=ob(),ou=Is(),li=Qm(),oG=Rn(),LLe=eh(),Ml=class{constructor(n){var t;this.refs={},this.dynamicAnchors={};let r;typeof n.schema=="object"&&(r=n.schema),this.schema=n.schema,this.schemaId=n.schemaId,this.root=n.root||this,this.baseId=(t=n.baseId)!==null&&t!==void 0?t:(0,li.normalizeId)(r?.[n.schemaId||"$id"]),this.schemaPath=n.schemaPath,this.localRefs=n.localRefs,this.meta=n.meta,this.$async=r?.$async,this.refs={}}};Ao.SchemaEnv=Ml;function f1(e){let n=iG.call(this,e);if(n)return n;let t=(0,li.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:r,lines:o}=this.opts.code,{ownProperties:i}=this.opts,s=new ci.CodeGen(this.scope,{es5:r,lines:o,ownProperties:i}),a;e.$async&&(a=s.scopeValue("Error",{ref:$Le.default,code:(0,ci._)`require("ajv/dist/runtime/validation_error").default`}));let d=s.scopeName("validate");e.validateName=d;let u={gen:s,allErrors:this.opts.allErrors,data:ou.default.data,parentData:ou.default.parentData,parentDataProperty:ou.default.parentDataProperty,dataNames:[ou.default.data],dataPathArr:[ci.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:s.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,ci.stringify)(e.schema)}:{ref:e.schema}),validateName:d,ValidationError:a,schema:e.schema,schemaEnv:e,rootId:t,baseId:e.baseId||t,schemaPath:ci.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,ci._)`""`,opts:this.opts,self:this},c;try{this._compilations.add(e),(0,LLe.validateFunctionCode)(u),s.optimize(this.opts.code.optimize);let l=s.toString();c=`${s.scopeRefs(ou.default.scope)}return ${l}`,this.opts.code.process&&(c=this.opts.code.process(c,e));let m=new Function(`${ou.default.self}`,`${ou.default.scope}`,c)(this,this.scope.get());if(this.scope.value(d,{ref:m}),m.errors=null,m.schema=e.schema,m.schemaEnv=e,e.$async&&(m.$async=!0),this.opts.code.source===!0&&(m.source={validateName:d,validateCode:l,scopeValues:s._values}),this.opts.unevaluated){let{props:f,items:y}=u;m.evaluated={props:f instanceof ci.Name?void 0:f,items:y instanceof ci.Name?void 0:y,dynamicProps:f instanceof ci.Name,dynamicItems:y instanceof ci.Name},m.source&&(m.source.evaluated=(0,ci.stringify)(m.evaluated))}return e.validate=m,e}catch(l){throw delete e.validate,delete e.validateName,c&&this.logger.error("Error compiling schema, function code:",c),l}finally{this._compilations.delete(e)}}Ao.compileSchema=f1;function jLe(e,n,t){var r;t=(0,li.resolveUrl)(this.opts.uriResolver,n,t);let o=e.refs[t];if(o)return o;let i=zLe.call(this,e,t);if(i===void 0){let s=(r=e.localRefs)===null||r===void 0?void 0:r[t],{schemaId:a}=this.opts;s&&(i=new Ml({schema:s,schemaId:a,root:e,baseId:n}))}if(i!==void 0)return e.refs[t]=FLe.call(this,i)}Ao.resolveRef=jLe;function FLe(e){return(0,li.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:f1.call(this,e)}function iG(e){for(let n of this._compilations)if(qLe(n,e))return n}Ao.getCompilingSchema=iG;function qLe(e,n){return e.schema===n.schema&&e.root===n.root&&e.baseId===n.baseId}function zLe(e,n){let t;for(;typeof(t=this.refs[n])=="string";)n=t;return t||this.schemas[n]||ib.call(this,e,n)}function ib(e,n){let t=this.opts.uriResolver.parse(n),r=(0,li._getFullPath)(this.opts.uriResolver,t),o=(0,li.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&r===o)return p1.call(this,t,e);let i=(0,li.normalizeId)(r),s=this.refs[i]||this.schemas[i];if(typeof s=="string"){let a=ib.call(this,e,s);return typeof a?.schema!="object"?void 0:p1.call(this,t,a)}if(typeof s?.schema=="object"){if(s.validate||f1.call(this,s),i===(0,li.normalizeId)(n)){let{schema:a}=s,{schemaId:d}=this.opts,u=a[d];return u&&(o=(0,li.resolveUrl)(this.opts.uriResolver,o,u)),new Ml({schema:a,schemaId:d,root:e,baseId:o})}return p1.call(this,t,s)}}Ao.resolveSchema=ib;var NLe=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function p1(e,{baseId:n,schema:t,root:r}){var o;if(((o=e.fragment)===null||o===void 0?void 0:o[0])!=="/")return;for(let a of e.fragment.slice(1).split("/")){if(typeof t=="boolean")return;let d=t[(0,oG.unescapeFragment)(a)];if(d===void 0)return;t=d;let u=typeof t=="object"&&t[this.opts.schemaId];!NLe.has(a)&&u&&(n=(0,li.resolveUrl)(this.opts.uriResolver,n,u))}let i;if(typeof t!="boolean"&&t.$ref&&!(0,oG.schemaHasRulesButRef)(t,this.RULES)){let a=(0,li.resolveUrl)(this.opts.uriResolver,n,t.$ref);i=ib.call(this,r,a)}let{schemaId:s}=this.opts;if(i=i||new Ml({schema:t,schemaId:s,root:r,baseId:n}),i.schema!==i.root.schema)return i}});var sG=ee((Jan,ULe)=>{ULe.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var h1=ee((Kan,cG)=>{"use strict";var BLe=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),dG=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function m1(e){let n="",t=0,r=0;for(r=0;r<e.length;r++)if(t=e[r].charCodeAt(0),t!==48){if(!(t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102))return"";n+=e[r];break}for(r+=1;r<e.length;r++){if(t=e[r].charCodeAt(0),!(t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102))return"";n+=e[r]}return n}var JLe=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function aG(e){return e.length=0,!0}function KLe(e,n,t){if(e.length){let r=m1(e);if(r!=="")n.push(r);else return t.error=!0,!1;e.length=0}return!0}function VLe(e){let n=0,t={error:!1,address:"",zone:""},r=[],o=[],i=!1,s=!1,a=KLe;for(let d=0;d<e.length;d++){let u=e[d];if(!(u==="["||u==="]"))if(u===":"){if(i===!0&&(s=!0),!a(o,r,t))break;if(++n>7){t.error=!0;break}d>0&&e[d-1]===":"&&(i=!0),r.push(":");continue}else if(u==="%"){if(!a(o,r,t))break;a=aG}else{o.push(u);continue}}return o.length&&(a===aG?t.zone=o.join(""):s?r.push(o.join("")):r.push(m1(o))),t.address=r.join(""),t}function uG(e){if(WLe(e,":")<2)return{host:e,isIPV6:!1};let n=VLe(e);if(n.error)return{host:e,isIPV6:!1};{let t=n.address,r=n.address;return n.zone&&(t+="%"+n.zone,r+="%25"+n.zone),{host:t,isIPV6:!0,escapedHost:r}}}function WLe(e,n){let t=0;for(let r=0;r<e.length;r++)e[r]===n&&t++;return t}function HLe(e){let n=e,t=[],r=-1,o=0;for(;o=n.length;){if(o===1){if(n===".")break;if(n==="/"){t.push("/");break}else{t.push(n);break}}else if(o===2){if(n[0]==="."){if(n[1]===".")break;if(n[1]==="/"){n=n.slice(2);continue}}else if(n[0]==="/"&&(n[1]==="."||n[1]==="/")){t.push("/");break}}else if(o===3&&n==="/.."){t.length!==0&&t.pop(),t.push("/");break}if(n[0]==="."){if(n[1]==="."){if(n[2]==="/"){n=n.slice(3);continue}}else if(n[1]==="/"){n=n.slice(2);continue}}else if(n[0]==="/"&&n[1]==="."){if(n[2]==="/"){n=n.slice(2);continue}else if(n[2]==="."&&n[3]==="/"){n=n.slice(3),t.length!==0&&t.pop();continue}}if((r=n.indexOf("/",1))===-1){t.push(n);break}else t.push(n.slice(0,r)),n=n.slice(r)}return t.join("")}function GLe(e,n){let t=n!==!0?escape:unescape;return e.scheme!==void 0&&(e.scheme=t(e.scheme)),e.userinfo!==void 0&&(e.userinfo=t(e.userinfo)),e.host!==void 0&&(e.host=t(e.host)),e.path!==void 0&&(e.path=t(e.path)),e.query!==void 0&&(e.query=t(e.query)),e.fragment!==void 0&&(e.fragment=t(e.fragment)),e}function ZLe(e){let n=[];if(e.userinfo!==void 0&&(n.push(e.userinfo),n.push("@")),e.host!==void 0){let t=unescape(e.host);if(!dG(t)){let r=uG(t);r.isIPV6===!0?t=`[${r.escapedHost}]`:t=e.host}n.push(t)}return(typeof e.port=="number"||typeof e.port=="string")&&(n.push(":"),n.push(String(e.port))),n.length?n.join(""):void 0}cG.exports={nonSimpleDomain:JLe,recomposeAuthority:ZLe,normalizeComponentEncoding:GLe,removeDotSegments:HLe,isIPv4:dG,isUUID:BLe,normalizeIPv6:uG,stringArrayToHexStripped:m1}});var hG=ee((Van,mG)=>{"use strict";var{isUUID:QLe}=h1(),XLe=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,YLe=["http","https","ws","wss","urn","urn:uuid"];function eje(e){return YLe.indexOf(e)!==-1}function g1(e){return e.secure===!0?!0:e.secure===!1?!1:e.scheme?e.scheme.length===3&&(e.scheme[0]==="w"||e.scheme[0]==="W")&&(e.scheme[1]==="s"||e.scheme[1]==="S")&&(e.scheme[2]==="s"||e.scheme[2]==="S"):!1}function lG(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function pG(e){let n=String(e.scheme).toLowerCase()==="https";return(e.port===(n?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function nje(e){return e.secure=g1(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function tje(e){if((e.port===(g1(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[n,t]=e.resourceName.split("?");e.path=n&&n!=="/"?n:void 0,e.query=t,e.resourceName=void 0}return e.fragment=void 0,e}function rje(e,n){if(!e.path)return e.error="URN can not be parsed",e;let t=e.path.match(XLe);if(t){let r=n.scheme||e.scheme||"urn";e.nid=t[1].toLowerCase(),e.nss=t[2];let o=`${r}:${n.nid||e.nid}`,i=y1(o);e.path=void 0,i&&(e=i.parse(e,n))}else e.error=e.error||"URN can not be parsed.";return e}function oje(e,n){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let t=n.scheme||e.scheme||"urn",r=e.nid.toLowerCase(),o=`${t}:${n.nid||r}`,i=y1(o);i&&(e=i.serialize(e,n));let s=e,a=e.nss;return s.path=`${r||n.nid}:${a}`,n.skipEscape=!0,s}function ije(e,n){let t=e;return t.uuid=t.nss,t.nss=void 0,!n.tolerant&&(!t.uuid||!QLe(t.uuid))&&(t.error=t.error||"UUID is not valid."),t}function sje(e){let n=e;return n.nss=(e.uuid||"").toLowerCase(),n}var fG={scheme:"http",domainHost:!0,parse:lG,serialize:pG},aje={scheme:"https",domainHost:fG.domainHost,parse:lG,serialize:pG},ab={scheme:"ws",domainHost:!0,parse:nje,serialize:tje},dje={scheme:"wss",domainHost:ab.domainHost,parse:ab.parse,serialize:ab.serialize},uje={scheme:"urn",parse:rje,serialize:oje,skipNormalize:!0},cje={scheme:"urn:uuid",parse:ije,serialize:sje,skipNormalize:!0},db={http:fG,https:aje,ws:ab,wss:dje,urn:uje,"urn:uuid":cje};Object.setPrototypeOf(db,null);function y1(e){return e&&(db[e]||db[e.toLowerCase()])||void 0}mG.exports={wsIsSecure:g1,SCHEMES:db,isValidSchemeName:eje,getSchemeHandler:y1}});var xG=ee((Wan,cb)=>{"use strict";var{normalizeIPv6:lje,removeDotSegments:th,recomposeAuthority:pje,normalizeComponentEncoding:ub,isIPv4:fje,nonSimpleDomain:mje}=h1(),{SCHEMES:hje,getSchemeHandler:gG}=hG();function gje(e,n){return typeof e=="string"?e=zi(Es(e,n),n):typeof e=="object"&&(e=Es(zi(e,n),n)),e}function yje(e,n,t){let r=t?Object.assign({scheme:"null"},t):{scheme:"null"},o=yG(Es(e,r),Es(n,r),r,!0);return r.skipEscape=!0,zi(o,r)}function yG(e,n,t,r){let o={};return r||(e=Es(zi(e,t),t),n=Es(zi(n,t),t)),t=t||{},!t.tolerant&&n.scheme?(o.scheme=n.scheme,o.userinfo=n.userinfo,o.host=n.host,o.port=n.port,o.path=th(n.path||""),o.query=n.query):(n.userinfo!==void 0||n.host!==void 0||n.port!==void 0?(o.userinfo=n.userinfo,o.host=n.host,o.port=n.port,o.path=th(n.path||""),o.query=n.query):(n.path?(n.path[0]==="/"?o.path=th(n.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?o.path="/"+n.path:e.path?o.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+n.path:o.path=n.path,o.path=th(o.path)),o.query=n.query):(o.path=e.path,n.query!==void 0?o.query=n.query:o.query=e.query),o.userinfo=e.userinfo,o.host=e.host,o.port=e.port),o.scheme=e.scheme),o.fragment=n.fragment,o}function xje(e,n,t){return typeof e=="string"?(e=unescape(e),e=zi(ub(Es(e,t),!0),{...t,skipEscape:!0})):typeof e=="object"&&(e=zi(ub(e,!0),{...t,skipEscape:!0})),typeof n=="string"?(n=unescape(n),n=zi(ub(Es(n,t),!0),{...t,skipEscape:!0})):typeof n=="object"&&(n=zi(ub(n,!0),{...t,skipEscape:!0})),e.toLowerCase()===n.toLowerCase()}function zi(e,n){let t={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},r=Object.assign({},n),o=[],i=gG(r.scheme||t.scheme);i&&i.serialize&&i.serialize(t,r),t.path!==void 0&&(r.skipEscape?t.path=unescape(t.path):(t.path=escape(t.path),t.scheme!==void 0&&(t.path=t.path.split("%3A").join(":")))),r.reference!=="suffix"&&t.scheme&&o.push(t.scheme,":");let s=pje(t);if(s!==void 0&&(r.reference!=="suffix"&&o.push("//"),o.push(s),t.path&&t.path[0]!=="/"&&o.push("/")),t.path!==void 0){let a=t.path;!r.absolutePath&&(!i||!i.absolutePath)&&(a=th(a)),s===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),o.push(a)}return t.query!==void 0&&o.push("?",t.query),t.fragment!==void 0&&o.push("#",t.fragment),o.join("")}var _je=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Es(e,n){let t=Object.assign({},n),r={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},o=!1;t.reference==="suffix"&&(t.scheme?e=t.scheme+":"+e:e="//"+e);let i=e.match(_je);if(i){if(r.scheme=i[1],r.userinfo=i[3],r.host=i[4],r.port=parseInt(i[5],10),r.path=i[6]||"",r.query=i[7],r.fragment=i[8],isNaN(r.port)&&(r.port=i[5]),r.host)if(fje(r.host)===!1){let d=lje(r.host);r.host=d.host.toLowerCase(),o=d.isIPV6}else o=!0;r.scheme===void 0&&r.userinfo===void 0&&r.host===void 0&&r.port===void 0&&r.query===void 0&&!r.path?r.reference="same-document":r.scheme===void 0?r.reference="relative":r.fragment===void 0?r.reference="absolute":r.reference="uri",t.reference&&t.reference!=="suffix"&&t.reference!==r.reference&&(r.error=r.error||"URI is not a "+t.reference+" reference.");let s=gG(t.scheme||r.scheme);if(!t.unicodeSupport&&(!s||!s.unicodeSupport)&&r.host&&(t.domainHost||s&&s.domainHost)&&o===!1&&mje(r.host))try{r.host=URL.domainToASCII(r.host.toLowerCase())}catch(a){r.error=r.error||"Host's domain name can not be converted to ASCII: "+a}(!s||s&&!s.skipNormalize)&&(e.indexOf("%")!==-1&&(r.scheme!==void 0&&(r.scheme=unescape(r.scheme)),r.host!==void 0&&(r.host=unescape(r.host))),r.path&&(r.path=escape(unescape(r.path))),r.fragment&&(r.fragment=encodeURI(decodeURIComponent(r.fragment)))),s&&s.parse&&s.parse(r,t)}else r.error=r.error||"URI can not be parsed.";return r}var x1={SCHEMES:hje,normalize:gje,resolve:yje,resolveComponent:yG,equal:xje,serialize:zi,parse:Es};cb.exports=x1;cb.exports.default=x1;cb.exports.fastUri=x1});var bG=ee(_1=>{"use strict";Object.defineProperty(_1,"__esModule",{value:!0});var _G=xG();_G.code='require("ajv/dist/runtime/uri").default';_1.default=_G});var IG=ee(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});dr.CodeGen=dr.Name=dr.nil=dr.stringify=dr.str=dr._=dr.KeywordCxt=void 0;var bje=eh();Object.defineProperty(dr,"KeywordCxt",{enumerable:!0,get:function(){return bje.KeywordCxt}});var Al=ln();Object.defineProperty(dr,"_",{enumerable:!0,get:function(){return Al._}});Object.defineProperty(dr,"str",{enumerable:!0,get:function(){return Al.str}});Object.defineProperty(dr,"stringify",{enumerable:!0,get:function(){return Al.stringify}});Object.defineProperty(dr,"nil",{enumerable:!0,get:function(){return Al.nil}});Object.defineProperty(dr,"Name",{enumerable:!0,get:function(){return Al.Name}});Object.defineProperty(dr,"CodeGen",{enumerable:!0,get:function(){return Al.CodeGen}});var wje=ob(),CG=nh(),vje=H2(),rh=sb(),Sje=ln(),oh=Qm(),lb=Zm(),w1=Rn(),wG=sG(),kje=bG(),TG=(e,n)=>new RegExp(e,n);TG.code="new RegExp";var Cje=["removeAdditional","useDefaults","coerceTypes"],Tje=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),Pje={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},Ije={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},vG=200;function Rje(e){var n,t,r,o,i,s,a,d,u,c,l,p,m,f,y,_,w,S,v,b,k,R,P,L,D;let j=e.strict,q=(n=e.code)===null||n===void 0?void 0:n.optimize,E=q===!0||q===void 0?1:q||0,B=(r=(t=e.code)===null||t===void 0?void 0:t.regExp)!==null&&r!==void 0?r:TG,z=(o=e.uriResolver)!==null&&o!==void 0?o:kje.default;return{strictSchema:(s=(i=e.strictSchema)!==null&&i!==void 0?i:j)!==null&&s!==void 0?s:!0,strictNumbers:(d=(a=e.strictNumbers)!==null&&a!==void 0?a:j)!==null&&d!==void 0?d:!0,strictTypes:(c=(u=e.strictTypes)!==null&&u!==void 0?u:j)!==null&&c!==void 0?c:"log",strictTuples:(p=(l=e.strictTuples)!==null&&l!==void 0?l:j)!==null&&p!==void 0?p:"log",strictRequired:(f=(m=e.strictRequired)!==null&&m!==void 0?m:j)!==null&&f!==void 0?f:!1,code:e.code?{...e.code,optimize:E,regExp:B}:{optimize:E,regExp:B},loopRequired:(y=e.loopRequired)!==null&&y!==void 0?y:vG,loopEnum:(_=e.loopEnum)!==null&&_!==void 0?_:vG,meta:(w=e.meta)!==null&&w!==void 0?w:!0,messages:(S=e.messages)!==null&&S!==void 0?S:!0,inlineRefs:(v=e.inlineRefs)!==null&&v!==void 0?v:!0,schemaId:(b=e.schemaId)!==null&&b!==void 0?b:"$id",addUsedSchema:(k=e.addUsedSchema)!==null&&k!==void 0?k:!0,validateSchema:(R=e.validateSchema)!==null&&R!==void 0?R:!0,validateFormats:(P=e.validateFormats)!==null&&P!==void 0?P:!0,unicodeRegExp:(L=e.unicodeRegExp)!==null&&L!==void 0?L:!0,int32range:(D=e.int32range)!==null&&D!==void 0?D:!0,uriResolver:z}}var ih=class{constructor(n={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,n=this.opts={...n,...Rje(n)};let{es5:t,lines:r}=this.opts.code;this.scope=new Sje.ValueScope({scope:{},prefixes:Tje,es5:t,lines:r}),this.logger=$je(n.logger);let o=n.validateFormats;n.validateFormats=!1,this.RULES=(0,vje.getRules)(),SG.call(this,Pje,n,"NOT SUPPORTED"),SG.call(this,Ije,n,"DEPRECATED","warn"),this._metaOpts=Aje.call(this),n.formats&&Dje.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),n.keywords&&Mje.call(this,n.keywords),typeof n.meta=="object"&&this.addMetaSchema(n.meta),Eje.call(this),n.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:n,meta:t,schemaId:r}=this.opts,o=wG;r==="id"&&(o={...wG},o.id=o.$id,delete o.$id),t&&n&&this.addMetaSchema(o,o[r],!1)}defaultMeta(){let{meta:n,schemaId:t}=this.opts;return this.opts.defaultMeta=typeof n=="object"?n[t]||n:void 0}validate(n,t){let r;if(typeof n=="string"){if(r=this.getSchema(n),!r)throw new Error(`no schema with key or ref "${n}"`)}else r=this.compile(n);let o=r(t);return"$async"in r||(this.errors=r.errors),o}compile(n,t){let r=this._addSchema(n,t);return r.validate||this._compileSchemaEnv(r)}compileAsync(n,t){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:r}=this.opts;return o.call(this,n,t);async function o(c,l){await i.call(this,c.$schema);let p=this._addSchema(c,l);return p.validate||s.call(this,p)}async function i(c){c&&!this.getSchema(c)&&await o.call(this,{$ref:c},!0)}async function s(c){try{return this._compileSchemaEnv(c)}catch(l){if(!(l instanceof CG.default))throw l;return a.call(this,l),await d.call(this,l.missingSchema),s.call(this,c)}}function a({missingSchema:c,missingRef:l}){if(this.refs[c])throw new Error(`AnySchema ${c} is loaded but ${l} cannot be resolved`)}async function d(c){let l=await u.call(this,c);this.refs[c]||await i.call(this,l.$schema),this.refs[c]||this.addSchema(l,c,t)}async function u(c){let l=this._loading[c];if(l)return l;try{return await(this._loading[c]=r(c))}finally{delete this._loading[c]}}}addSchema(n,t,r,o=this.opts.validateSchema){if(Array.isArray(n)){for(let s of n)this.addSchema(s,void 0,r,o);return this}let i;if(typeof n=="object"){let{schemaId:s}=this.opts;if(i=n[s],i!==void 0&&typeof i!="string")throw new Error(`schema ${s} must be string`)}return t=(0,oh.normalizeId)(t||i),this._checkUnique(t),this.schemas[t]=this._addSchema(n,r,t,o,!0),this}addMetaSchema(n,t,r=this.opts.validateSchema){return this.addSchema(n,t,!0,r),this}validateSchema(n,t){if(typeof n=="boolean")return!0;let r;if(r=n.$schema,r!==void 0&&typeof r!="string")throw new Error("$schema must be a string");if(r=r||this.opts.defaultMeta||this.defaultMeta(),!r)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let o=this.validate(r,n);if(!o&&t){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return o}getSchema(n){let t;for(;typeof(t=kG.call(this,n))=="string";)n=t;if(t===void 0){let{schemaId:r}=this.opts,o=new rh.SchemaEnv({schema:{},schemaId:r});if(t=rh.resolveSchema.call(this,o,n),!t)return;this.refs[n]=t}return t.validate||this._compileSchemaEnv(t)}removeSchema(n){if(n instanceof RegExp)return this._removeAllSchemas(this.schemas,n),this._removeAllSchemas(this.refs,n),this;switch(typeof n){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let t=kG.call(this,n);return typeof t=="object"&&this._cache.delete(t.schema),delete this.schemas[n],delete this.refs[n],this}case"object":{let t=n;this._cache.delete(t);let r=n[this.opts.schemaId];return r&&(r=(0,oh.normalizeId)(r),delete this.schemas[r],delete this.refs[r]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(n){for(let t of n)this.addKeyword(t);return this}addKeyword(n,t){let r;if(typeof n=="string")r=n,typeof t=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),t.keyword=r);else if(typeof n=="object"&&t===void 0){if(t=n,r=t.keyword,Array.isArray(r)&&!r.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(jje.call(this,r,t),!t)return(0,w1.eachItem)(r,i=>b1.call(this,i)),this;qje.call(this,t);let o={...t,type:(0,lb.getJSONTypes)(t.type),schemaType:(0,lb.getJSONTypes)(t.schemaType)};return(0,w1.eachItem)(r,o.type.length===0?i=>b1.call(this,i,o):i=>o.type.forEach(s=>b1.call(this,i,o,s))),this}getKeyword(n){let t=this.RULES.all[n];return typeof t=="object"?t.definition:!!t}removeKeyword(n){let{RULES:t}=this;delete t.keywords[n],delete t.all[n];for(let r of t.rules){let o=r.rules.findIndex(i=>i.keyword===n);o>=0&&r.rules.splice(o,1)}return this}addFormat(n,t){return typeof t=="string"&&(t=new RegExp(t)),this.formats[n]=t,this}errorsText(n=this.errors,{separator:t=", ",dataVar:r="data"}={}){return!n||n.length===0?"No errors":n.map(o=>`${r}${o.instancePath} ${o.message}`).reduce((o,i)=>o+t+i)}$dataMetaSchema(n,t){let r=this.RULES.all;n=JSON.parse(JSON.stringify(n));for(let o of t){let i=o.split("/").slice(1),s=n;for(let a of i)s=s[a];for(let a in r){let d=r[a];if(typeof d!="object")continue;let{$data:u}=d.definition,c=s[a];u&&c&&(s[a]=PG(c))}}return n}_removeAllSchemas(n,t){for(let r in n){let o=n[r];(!t||t.test(r))&&(typeof o=="string"?delete n[r]:o&&!o.meta&&(this._cache.delete(o.schema),delete n[r]))}}_addSchema(n,t,r,o=this.opts.validateSchema,i=this.opts.addUsedSchema){let s,{schemaId:a}=this.opts;if(typeof n=="object")s=n[a];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof n!="boolean")throw new Error("schema must be object or boolean")}let d=this._cache.get(n);if(d!==void 0)return d;r=(0,oh.normalizeId)(s||r);let u=oh.getSchemaRefs.call(this,n,r);return d=new rh.SchemaEnv({schema:n,schemaId:a,meta:t,baseId:r,localRefs:u}),this._cache.set(d.schema,d),i&&!r.startsWith("#")&&(r&&this._checkUnique(r),this.refs[r]=d),o&&this.validateSchema(n,!0),d}_checkUnique(n){if(this.schemas[n]||this.refs[n])throw new Error(`schema with key or id "${n}" already exists`)}_compileSchemaEnv(n){if(n.meta?this._compileMetaSchema(n):rh.compileSchema.call(this,n),!n.validate)throw new Error("ajv implementation error");return n.validate}_compileMetaSchema(n){let t=this.opts;this.opts=this._metaOpts;try{rh.compileSchema.call(this,n)}finally{this.opts=t}}};ih.ValidationError=wje.default;ih.MissingRefError=CG.default;dr.default=ih;function SG(e,n,t,r="error"){for(let o in e){let i=o;i in n&&this.logger[r](`${t}: option ${o}. ${e[i]}`)}}function kG(e){return e=(0,oh.normalizeId)(e),this.schemas[e]||this.refs[e]}function Eje(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let n in e)this.addSchema(e[n],n)}function Dje(){for(let e in this.opts.formats){let n=this.opts.formats[e];n&&this.addFormat(e,n)}}function Mje(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let n in e){let t=e[n];t.keyword||(t.keyword=n),this.addKeyword(t)}}function Aje(){let e={...this.opts};for(let n of Cje)delete e[n];return e}var Oje={log(){},warn(){},error(){}};function $je(e){if(e===!1)return Oje;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var Lje=/^[a-z_$][a-z0-9_$:-]*$/i;function jje(e,n){let{RULES:t}=this;if((0,w1.eachItem)(e,r=>{if(t.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!Lje.test(r))throw new Error(`Keyword ${r} has invalid name`)}),!!n&&n.$data&&!("code"in n||"validate"in n))throw new Error('$data keyword must have "code" or "validate" function')}function b1(e,n,t){var r;let o=n?.post;if(t&&o)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,s=o?i.post:i.rules.find(({type:d})=>d===t);if(s||(s={type:t,rules:[]},i.rules.push(s)),i.keywords[e]=!0,!n)return;let a={keyword:e,definition:{...n,type:(0,lb.getJSONTypes)(n.type),schemaType:(0,lb.getJSONTypes)(n.schemaType)}};n.before?Fje.call(this,s,a,n.before):s.rules.push(a),i.all[e]=a,(r=n.implements)===null||r===void 0||r.forEach(d=>this.addKeyword(d))}function Fje(e,n,t){let r=e.rules.findIndex(o=>o.keyword===t);r>=0?e.rules.splice(r,0,n):(e.rules.push(n),this.logger.warn(`rule ${t} is not defined`))}function qje(e){let{metaSchema:n}=e;n!==void 0&&(e.$data&&this.opts.$data&&(n=PG(n)),e.validateSchema=this.compile(n,!0))}var zje={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function PG(e){return{anyOf:[e,zje]}}});var RG=ee(v1=>{"use strict";Object.defineProperty(v1,"__esModule",{value:!0});var Nje={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};v1.default=Nje});var AG=ee(iu=>{"use strict";Object.defineProperty(iu,"__esModule",{value:!0});iu.callRef=iu.getValidate=void 0;var Uje=nh(),EG=Mo(),Qr=ln(),Ol=Is(),DG=sb(),pb=Rn(),Bje={keyword:"$ref",schemaType:"string",code(e){let{gen:n,schema:t,it:r}=e,{baseId:o,schemaEnv:i,validateName:s,opts:a,self:d}=r,{root:u}=i;if((t==="#"||t==="#/")&&o===u.baseId)return l();let c=DG.resolveRef.call(d,u,o,t);if(c===void 0)throw new Uje.default(r.opts.uriResolver,o,t);if(c instanceof DG.SchemaEnv)return p(c);return m(c);function l(){if(i===u)return fb(e,s,i,i.$async);let f=n.scopeValue("root",{ref:u});return fb(e,(0,Qr._)`${f}.validate`,u,u.$async)}function p(f){let y=MG(e,f);fb(e,y,f,f.$async)}function m(f){let y=n.scopeValue("schema",a.code.source===!0?{ref:f,code:(0,Qr.stringify)(f)}:{ref:f}),_=n.name("valid"),w=e.subschema({schema:f,dataTypes:[],schemaPath:Qr.nil,topSchemaRef:y,errSchemaPath:t},_);e.mergeEvaluated(w),e.ok(_)}}};function MG(e,n){let{gen:t}=e;return n.validate?t.scopeValue("validate",{ref:n.validate}):(0,Qr._)`${t.scopeValue("wrapper",{ref:n})}.validate`}iu.getValidate=MG;function fb(e,n,t,r){let{gen:o,it:i}=e,{allErrors:s,schemaEnv:a,opts:d}=i,u=d.passContext?Ol.default.this:Qr.nil;r?c():l();function c(){if(!a.$async)throw new Error("async schema referenced by sync schema");let f=o.let("valid");o.try(()=>{o.code((0,Qr._)`await ${(0,EG.callValidateCode)(e,n,u)}`),m(n),s||o.assign(f,!0)},y=>{o.if((0,Qr._)`!(${y} instanceof ${i.ValidationError})`,()=>o.throw(y)),p(y),s||o.assign(f,!1)}),e.ok(f)}function l(){e.result((0,EG.callValidateCode)(e,n,u),()=>m(n),()=>p(n))}function p(f){let y=(0,Qr._)`${f}.errors`;o.assign(Ol.default.vErrors,(0,Qr._)`${Ol.default.vErrors} === null ? ${y} : ${Ol.default.vErrors}.concat(${y})`),o.assign(Ol.default.errors,(0,Qr._)`${Ol.default.vErrors}.length`)}function m(f){var y;if(!i.opts.unevaluated)return;let _=(y=t?.validate)===null||y===void 0?void 0:y.evaluated;if(i.props!==!0)if(_&&!_.dynamicProps)_.props!==void 0&&(i.props=pb.mergeEvaluated.props(o,_.props,i.props));else{let w=o.var("props",(0,Qr._)`${f}.evaluated.props`);i.props=pb.mergeEvaluated.props(o,w,i.props,Qr.Name)}if(i.items!==!0)if(_&&!_.dynamicItems)_.items!==void 0&&(i.items=pb.mergeEvaluated.items(o,_.items,i.items));else{let w=o.var("items",(0,Qr._)`${f}.evaluated.items`);i.items=pb.mergeEvaluated.items(o,w,i.items,Qr.Name)}}}iu.callRef=fb;iu.default=Bje});var OG=ee(S1=>{"use strict";Object.defineProperty(S1,"__esModule",{value:!0});var Jje=RG(),Kje=AG(),Vje=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Jje.default,Kje.default];S1.default=Vje});var $G=ee(k1=>{"use strict";Object.defineProperty(k1,"__esModule",{value:!0});var mb=ln(),wa=mb.operators,hb={maximum:{okStr:"<=",ok:wa.LTE,fail:wa.GT},minimum:{okStr:">=",ok:wa.GTE,fail:wa.LT},exclusiveMaximum:{okStr:"<",ok:wa.LT,fail:wa.GTE},exclusiveMinimum:{okStr:">",ok:wa.GT,fail:wa.LTE}},Wje={message:({keyword:e,schemaCode:n})=>(0,mb.str)`must be ${hb[e].okStr} ${n}`,params:({keyword:e,schemaCode:n})=>(0,mb._)`{comparison: ${hb[e].okStr}, limit: ${n}}`},Hje={keyword:Object.keys(hb),type:"number",schemaType:"number",$data:!0,error:Wje,code(e){let{keyword:n,data:t,schemaCode:r}=e;e.fail$data((0,mb._)`${t} ${hb[n].fail} ${r} || isNaN(${t})`)}};k1.default=Hje});var LG=ee(C1=>{"use strict";Object.defineProperty(C1,"__esModule",{value:!0});var sh=ln(),Gje={message:({schemaCode:e})=>(0,sh.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,sh._)`{multipleOf: ${e}}`},Zje={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Gje,code(e){let{gen:n,data:t,schemaCode:r,it:o}=e,i=o.opts.multipleOfPrecision,s=n.let("res"),a=i?(0,sh._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:(0,sh._)`${s} !== parseInt(${s})`;e.fail$data((0,sh._)`(${r} === 0 || (${s} = ${t}/${r}, ${a}))`)}};C1.default=Zje});var FG=ee(T1=>{"use strict";Object.defineProperty(T1,"__esModule",{value:!0});function jG(e){let n=e.length,t=0,r=0,o;for(;r<n;)t++,o=e.charCodeAt(r++),o>=55296&&o<=56319&&r<n&&(o=e.charCodeAt(r),(o&64512)===56320&&r++);return t}T1.default=jG;jG.code='require("ajv/dist/runtime/ucs2length").default'});var qG=ee(P1=>{"use strict";Object.defineProperty(P1,"__esModule",{value:!0});var su=ln(),Qje=Rn(),Xje=FG(),Yje={message({keyword:e,schemaCode:n}){let t=e==="maxLength"?"more":"fewer";return(0,su.str)`must NOT have ${t} than ${n} characters`},params:({schemaCode:e})=>(0,su._)`{limit: ${e}}`},eFe={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Yje,code(e){let{keyword:n,data:t,schemaCode:r,it:o}=e,i=n==="maxLength"?su.operators.GT:su.operators.LT,s=o.opts.unicode===!1?(0,su._)`${t}.length`:(0,su._)`${(0,Qje.useFunc)(e.gen,Xje.default)}(${t})`;e.fail$data((0,su._)`${s} ${i} ${r}`)}};P1.default=eFe});var zG=ee(I1=>{"use strict";Object.defineProperty(I1,"__esModule",{value:!0});var nFe=Mo(),gb=ln(),tFe={message:({schemaCode:e})=>(0,gb.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,gb._)`{pattern: ${e}}`},rFe={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:tFe,code(e){let{data:n,$data:t,schema:r,schemaCode:o,it:i}=e,s=i.opts.unicodeRegExp?"u":"",a=t?(0,gb._)`(new RegExp(${o}, ${s}))`:(0,nFe.usePattern)(e,r);e.fail$data((0,gb._)`!${a}.test(${n})`)}};I1.default=rFe});var NG=ee(R1=>{"use strict";Object.defineProperty(R1,"__esModule",{value:!0});var ah=ln(),oFe={message({keyword:e,schemaCode:n}){let t=e==="maxProperties"?"more":"fewer";return(0,ah.str)`must NOT have ${t} than ${n} properties`},params:({schemaCode:e})=>(0,ah._)`{limit: ${e}}`},iFe={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:oFe,code(e){let{keyword:n,data:t,schemaCode:r}=e,o=n==="maxProperties"?ah.operators.GT:ah.operators.LT;e.fail$data((0,ah._)`Object.keys(${t}).length ${o} ${r}`)}};R1.default=iFe});var UG=ee(E1=>{"use strict";Object.defineProperty(E1,"__esModule",{value:!0});var dh=Mo(),uh=ln(),sFe=Rn(),aFe={message:({params:{missingProperty:e}})=>(0,uh.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,uh._)`{missingProperty: ${e}}`},dFe={keyword:"required",type:"object",schemaType:"array",$data:!0,error:aFe,code(e){let{gen:n,schema:t,schemaCode:r,data:o,$data:i,it:s}=e,{opts:a}=s;if(!i&&t.length===0)return;let d=t.length>=a.loopRequired;if(s.allErrors?u():c(),a.strictRequired){let m=e.parentSchema.properties,{definedProperties:f}=e.it;for(let y of t)if(m?.[y]===void 0&&!f.has(y)){let _=s.schemaEnv.baseId+s.errSchemaPath,w=`required property "${y}" is not defined at "${_}" (strictRequired)`;(0,sFe.checkStrictMode)(s,w,s.opts.strictRequired)}}function u(){if(d||i)e.block$data(uh.nil,l);else for(let m of t)(0,dh.checkReportMissingProp)(e,m)}function c(){let m=n.let("missing");if(d||i){let f=n.let("valid",!0);e.block$data(f,()=>p(m,f)),e.ok(f)}else n.if((0,dh.checkMissingProp)(e,t,m)),(0,dh.reportMissingProp)(e,m),n.else()}function l(){n.forOf("prop",r,m=>{e.setParams({missingProperty:m}),n.if((0,dh.noPropertyInData)(n,o,m,a.ownProperties),()=>e.error())})}function p(m,f){e.setParams({missingProperty:m}),n.forOf(m,r,()=>{n.assign(f,(0,dh.propertyInData)(n,o,m,a.ownProperties)),n.if((0,uh.not)(f),()=>{e.error(),n.break()})},uh.nil)}}};E1.default=dFe});var BG=ee(D1=>{"use strict";Object.defineProperty(D1,"__esModule",{value:!0});var ch=ln(),uFe={message({keyword:e,schemaCode:n}){let t=e==="maxItems"?"more":"fewer";return(0,ch.str)`must NOT have ${t} than ${n} items`},params:({schemaCode:e})=>(0,ch._)`{limit: ${e}}`},cFe={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:uFe,code(e){let{keyword:n,data:t,schemaCode:r}=e,o=n==="maxItems"?ch.operators.GT:ch.operators.LT;e.fail$data((0,ch._)`${t}.length ${o} ${r}`)}};D1.default=cFe});var yb=ee(M1=>{"use strict";Object.defineProperty(M1,"__esModule",{value:!0});var JG=t1();JG.code='require("ajv/dist/runtime/equal").default';M1.default=JG});var KG=ee(O1=>{"use strict";Object.defineProperty(O1,"__esModule",{value:!0});var A1=Zm(),ur=ln(),lFe=Rn(),pFe=yb(),fFe={message:({params:{i:e,j:n}})=>(0,ur.str)`must NOT have duplicate items (items ## ${n} and ${e} are identical)`,params:({params:{i:e,j:n}})=>(0,ur._)`{i: ${e}, j: ${n}}`},mFe={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:fFe,code(e){let{gen:n,data:t,$data:r,schema:o,parentSchema:i,schemaCode:s,it:a}=e;if(!r&&!o)return;let d=n.let("valid"),u=i.items?(0,A1.getSchemaTypes)(i.items):[];e.block$data(d,c,(0,ur._)`${s} === false`),e.ok(d);function c(){let f=n.let("i",(0,ur._)`${t}.length`),y=n.let("j");e.setParams({i:f,j:y}),n.assign(d,!0),n.if((0,ur._)`${f} > 1`,()=>(l()?p:m)(f,y))}function l(){return u.length>0&&!u.some(f=>f==="object"||f==="array")}function p(f,y){let _=n.name("item"),w=(0,A1.checkDataTypes)(u,_,a.opts.strictNumbers,A1.DataType.Wrong),S=n.const("indices",(0,ur._)`{}`);n.for((0,ur._)`;${f}--;`,()=>{n.let(_,(0,ur._)`${t}[${f}]`),n.if(w,(0,ur._)`continue`),u.length>1&&n.if((0,ur._)`typeof ${_} == "string"`,(0,ur._)`${_} += "_"`),n.if((0,ur._)`typeof ${S}[${_}] == "number"`,()=>{n.assign(y,(0,ur._)`${S}[${_}]`),e.error(),n.assign(d,!1).break()}).code((0,ur._)`${S}[${_}] = ${f}`)})}function m(f,y){let _=(0,lFe.useFunc)(n,pFe.default),w=n.name("outer");n.label(w).for((0,ur._)`;${f}--;`,()=>n.for((0,ur._)`${y} = ${f}; ${y}--;`,()=>n.if((0,ur._)`${_}(${t}[${f}], ${t}[${y}])`,()=>{e.error(),n.assign(d,!1).break(w)})))}}};O1.default=mFe});var VG=ee(L1=>{"use strict";Object.defineProperty(L1,"__esModule",{value:!0});var $1=ln(),hFe=Rn(),gFe=yb(),yFe={message:"must be equal to constant",params:({schemaCode:e})=>(0,$1._)`{allowedValue: ${e}}`},xFe={keyword:"const",$data:!0,error:yFe,code(e){let{gen:n,data:t,$data:r,schemaCode:o,schema:i}=e;r||i&&typeof i=="object"?e.fail$data((0,$1._)`!${(0,hFe.useFunc)(n,gFe.default)}(${t}, ${o})`):e.fail((0,$1._)`${i} !== ${t}`)}};L1.default=xFe});var WG=ee(j1=>{"use strict";Object.defineProperty(j1,"__esModule",{value:!0});var lh=ln(),_Fe=Rn(),bFe=yb(),wFe={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,lh._)`{allowedValues: ${e}}`},vFe={keyword:"enum",schemaType:"array",$data:!0,error:wFe,code(e){let{gen:n,data:t,$data:r,schema:o,schemaCode:i,it:s}=e;if(!r&&o.length===0)throw new Error("enum must have non-empty array");let a=o.length>=s.opts.loopEnum,d,u=()=>d??(d=(0,_Fe.useFunc)(n,bFe.default)),c;if(a||r)c=n.let("valid"),e.block$data(c,l);else{if(!Array.isArray(o))throw new Error("ajv implementation error");let m=n.const("vSchema",i);c=(0,lh.or)(...o.map((f,y)=>p(m,y)))}e.pass(c);function l(){n.assign(c,!1),n.forOf("v",i,m=>n.if((0,lh._)`${u()}(${t}, ${m})`,()=>n.assign(c,!0).break()))}function p(m,f){let y=o[f];return typeof y=="object"&&y!==null?(0,lh._)`${u()}(${t}, ${m}[${f}])`:(0,lh._)`${t} === ${y}`}}};j1.default=vFe});var HG=ee(F1=>{"use strict";Object.defineProperty(F1,"__esModule",{value:!0});var SFe=$G(),kFe=LG(),CFe=qG(),TFe=zG(),PFe=NG(),IFe=UG(),RFe=BG(),EFe=KG(),DFe=VG(),MFe=WG(),AFe=[SFe.default,kFe.default,CFe.default,TFe.default,PFe.default,IFe.default,RFe.default,EFe.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},DFe.default,MFe.default];F1.default=AFe});var z1=ee(ph=>{"use strict";Object.defineProperty(ph,"__esModule",{value:!0});ph.validateAdditionalItems=void 0;var au=ln(),q1=Rn(),OFe={message:({params:{len:e}})=>(0,au.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,au._)`{limit: ${e}}`},$Fe={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:OFe,code(e){let{parentSchema:n,it:t}=e,{items:r}=n;if(!Array.isArray(r)){(0,q1.checkStrictMode)(t,'"additionalItems" is ignored when "items" is not an array of schemas');return}GG(e,r)}};function GG(e,n){let{gen:t,schema:r,data:o,keyword:i,it:s}=e;s.items=!0;let a=t.const("len",(0,au._)`${o}.length`);if(r===!1)e.setParams({len:n.length}),e.pass((0,au._)`${a} <= ${n.length}`);else if(typeof r=="object"&&!(0,q1.alwaysValidSchema)(s,r)){let u=t.var("valid",(0,au._)`${a} <= ${n.length}`);t.if((0,au.not)(u),()=>d(u)),e.ok(u)}function d(u){t.forRange("i",n.length,a,c=>{e.subschema({keyword:i,dataProp:c,dataPropType:q1.Type.Num},u),s.allErrors||t.if((0,au.not)(u),()=>t.break())})}}ph.validateAdditionalItems=GG;ph.default=$Fe});var N1=ee(fh=>{"use strict";Object.defineProperty(fh,"__esModule",{value:!0});fh.validateTuple=void 0;var ZG=ln(),xb=Rn(),LFe=Mo(),jFe={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:n,it:t}=e;if(Array.isArray(n))return QG(e,"additionalItems",n);t.items=!0,!(0,xb.alwaysValidSchema)(t,n)&&e.ok((0,LFe.validateArray)(e))}};function QG(e,n,t=e.schema){let{gen:r,parentSchema:o,data:i,keyword:s,it:a}=e;c(o),a.opts.unevaluated&&t.length&&a.items!==!0&&(a.items=xb.mergeEvaluated.items(r,t.length,a.items));let d=r.name("valid"),u=r.const("len",(0,ZG._)`${i}.length`);t.forEach((l,p)=>{(0,xb.alwaysValidSchema)(a,l)||(r.if((0,ZG._)`${u} > ${p}`,()=>e.subschema({keyword:s,schemaProp:p,dataProp:p},d)),e.ok(d))});function c(l){let{opts:p,errSchemaPath:m}=a,f=t.length,y=f===l.minItems&&(f===l.maxItems||l[n]===!1);if(p.strictTuples&&!y){let _=`"${s}" is ${f}-tuple, but minItems or maxItems/${n} are not specified or different at path "${m}"`;(0,xb.checkStrictMode)(a,_,p.strictTuples)}}}fh.validateTuple=QG;fh.default=jFe});var XG=ee(U1=>{"use strict";Object.defineProperty(U1,"__esModule",{value:!0});var FFe=N1(),qFe={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,FFe.validateTuple)(e,"items")};U1.default=qFe});var eZ=ee(B1=>{"use strict";Object.defineProperty(B1,"__esModule",{value:!0});var YG=ln(),zFe=Rn(),NFe=Mo(),UFe=z1(),BFe={message:({params:{len:e}})=>(0,YG.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,YG._)`{limit: ${e}}`},JFe={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:BFe,code(e){let{schema:n,parentSchema:t,it:r}=e,{prefixItems:o}=t;r.items=!0,!(0,zFe.alwaysValidSchema)(r,n)&&(o?(0,UFe.validateAdditionalItems)(e,o):e.ok((0,NFe.validateArray)(e)))}};B1.default=JFe});var nZ=ee(J1=>{"use strict";Object.defineProperty(J1,"__esModule",{value:!0});var Oo=ln(),_b=Rn(),KFe={message:({params:{min:e,max:n}})=>n===void 0?(0,Oo.str)`must contain at least ${e} valid item(s)`:(0,Oo.str)`must contain at least ${e} and no more than ${n} valid item(s)`,params:({params:{min:e,max:n}})=>n===void 0?(0,Oo._)`{minContains: ${e}}`:(0,Oo._)`{minContains: ${e}, maxContains: ${n}}`},VFe={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:KFe,code(e){let{gen:n,schema:t,parentSchema:r,data:o,it:i}=e,s,a,{minContains:d,maxContains:u}=r;i.opts.next?(s=d===void 0?1:d,a=u):s=1;let c=n.const("len",(0,Oo._)`${o}.length`);if(e.setParams({min:s,max:a}),a===void 0&&s===0){(0,_b.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&s>a){(0,_b.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,_b.alwaysValidSchema)(i,t)){let y=(0,Oo._)`${c} >= ${s}`;a!==void 0&&(y=(0,Oo._)`${y} && ${c} <= ${a}`),e.pass(y);return}i.items=!0;let l=n.name("valid");a===void 0&&s===1?m(l,()=>n.if(l,()=>n.break())):s===0?(n.let(l,!0),a!==void 0&&n.if((0,Oo._)`${o}.length > 0`,p)):(n.let(l,!1),p()),e.result(l,()=>e.reset());function p(){let y=n.name("_valid"),_=n.let("count",0);m(y,()=>n.if(y,()=>f(_)))}function m(y,_){n.forRange("i",0,c,w=>{e.subschema({keyword:"contains",dataProp:w,dataPropType:_b.Type.Num,compositeRule:!0},y),_()})}function f(y){n.code((0,Oo._)`${y}++`),a===void 0?n.if((0,Oo._)`${y} >= ${s}`,()=>n.assign(l,!0).break()):(n.if((0,Oo._)`${y} > ${a}`,()=>n.assign(l,!1).break()),s===1?n.assign(l,!0):n.if((0,Oo._)`${y} >= ${s}`,()=>n.assign(l,!0)))}}};J1.default=VFe});var oZ=ee(Ni=>{"use strict";Object.defineProperty(Ni,"__esModule",{value:!0});Ni.validateSchemaDeps=Ni.validatePropertyDeps=Ni.error=void 0;var K1=ln(),WFe=Rn(),mh=Mo();Ni.error={message:({params:{property:e,depsCount:n,deps:t}})=>{let r=n===1?"property":"properties";return(0,K1.str)`must have ${r} ${t} when property ${e} is present`},params:({params:{property:e,depsCount:n,deps:t,missingProperty:r}})=>(0,K1._)`{property: ${e},
1550
1550
  missingProperty: ${r},
1551
1551
  depsCount: ${n},
1552
- deps: ${t}}`};var HFe={keyword:"dependencies",type:"object",schemaType:"object",error:Ni.error,code(e){let[n,t]=GFe(e);tZ(e,n),rZ(e,t)}};function GFe({schema:e}){let n={},t={};for(let r in e){if(r==="__proto__")continue;let o=Array.isArray(e[r])?n:t;o[r]=e[r]}return[n,t]}function tZ(e,n=e.schema){let{gen:t,data:r,it:o}=e;if(Object.keys(n).length===0)return;let i=t.let("missing");for(let s in n){let a=n[s];if(a.length===0)continue;let d=(0,mh.propertyInData)(t,r,s,o.opts.ownProperties);e.setParams({property:s,depsCount:a.length,deps:a.join(", ")}),o.allErrors?t.if(d,()=>{for(let u of a)(0,mh.checkReportMissingProp)(e,u)}):(t.if((0,K1._)`${d} && (${(0,mh.checkMissingProp)(e,a,i)})`),(0,mh.reportMissingProp)(e,i),t.else())}}Ni.validatePropertyDeps=tZ;function rZ(e,n=e.schema){let{gen:t,data:r,keyword:o,it:i}=e,s=t.name("valid");for(let a in n)(0,WFe.alwaysValidSchema)(i,n[a])||(t.if((0,mh.propertyInData)(t,r,a,i.opts.ownProperties),()=>{let d=e.subschema({keyword:o,schemaProp:a},s);e.mergeValidEvaluated(d,s)},()=>t.var(s,!0)),e.ok(s))}Ni.validateSchemaDeps=rZ;Ni.default=HFe});var sZ=ee(V1=>{"use strict";Object.defineProperty(V1,"__esModule",{value:!0});var iZ=ln(),ZFe=Rn(),QFe={message:"property name must be valid",params:({params:e})=>(0,iZ._)`{propertyName: ${e.propertyName}}`},XFe={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:QFe,code(e){let{gen:n,schema:t,data:r,it:o}=e;if((0,ZFe.alwaysValidSchema)(o,t))return;let i=n.name("valid");n.forIn("key",r,s=>{e.setParams({propertyName:s}),e.subschema({keyword:"propertyNames",data:s,dataTypes:["string"],propertyName:s,compositeRule:!0},i),n.if((0,iZ.not)(i),()=>{e.error(!0),o.allErrors||n.break()})}),e.ok(i)}};V1.default=XFe});var H1=ee(W1=>{"use strict";Object.defineProperty(W1,"__esModule",{value:!0});var bb=Mo(),pi=ln(),YFe=Is(),wb=Rn(),eqe={message:"must NOT have additional properties",params:({params:e})=>(0,pi._)`{additionalProperty: ${e.additionalProperty}}`},nqe={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:eqe,code(e){let{gen:n,schema:t,parentSchema:r,data:o,errsCount:i,it:s}=e;if(!i)throw new Error("ajv implementation error");let{allErrors:a,opts:d}=s;if(s.props=!0,d.removeAdditional!=="all"&&(0,wb.alwaysValidSchema)(s,t))return;let u=(0,bb.allSchemaProperties)(r.properties),c=(0,bb.allSchemaProperties)(r.patternProperties);l(),e.ok((0,pi._)`${i} === ${YFe.default.errors}`);function l(){n.forIn("key",o,_=>{!u.length&&!c.length?f(_):n.if(p(_),()=>f(_))})}function p(_){let w;if(u.length>8){let S=(0,wb.schemaRefOrVal)(s,r.properties,"properties");w=(0,bb.isOwnProperty)(n,S,_)}else u.length?w=(0,pi.or)(...u.map(S=>(0,pi._)`${_} === ${S}`)):w=pi.nil;return c.length&&(w=(0,pi.or)(w,...c.map(S=>(0,pi._)`${(0,bb.usePattern)(e,S)}.test(${_})`))),(0,pi.not)(w)}function m(_){n.code((0,pi._)`delete ${o}[${_}]`)}function f(_){if(d.removeAdditional==="all"||d.removeAdditional&&t===!1){m(_);return}if(t===!1){e.setParams({additionalProperty:_}),e.error(),a||n.break();return}if(typeof t=="object"&&!(0,wb.alwaysValidSchema)(s,t)){let w=n.name("valid");d.removeAdditional==="failing"?(y(_,w,!1),n.if((0,pi.not)(w),()=>{e.reset(),m(_)})):(y(_,w),a||n.if((0,pi.not)(w),()=>n.break()))}}function y(_,w,S){let v={keyword:"additionalProperties",dataProp:_,dataPropType:wb.Type.Str};S===!1&&Object.assign(v,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(v,w)}}};W1.default=nqe});var uZ=ee(Z1=>{"use strict";Object.defineProperty(Z1,"__esModule",{value:!0});var tqe=eh(),aZ=Mo(),G1=Rn(),dZ=H1(),rqe={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:n,schema:t,parentSchema:r,data:o,it:i}=e;i.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&dZ.default.code(new tqe.KeywordCxt(i,dZ.default,"additionalProperties"));let s=(0,aZ.allSchemaProperties)(t);for(let l of s)i.definedProperties.add(l);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=G1.mergeEvaluated.props(n,(0,G1.toHash)(s),i.props));let a=s.filter(l=>!(0,G1.alwaysValidSchema)(i,t[l]));if(a.length===0)return;let d=n.name("valid");for(let l of a)u(l)?c(l):(n.if((0,aZ.propertyInData)(n,o,l,i.opts.ownProperties)),c(l),i.allErrors||n.else().var(d,!0),n.endIf()),e.it.definedProperties.add(l),e.ok(d);function u(l){return i.opts.useDefaults&&!i.compositeRule&&t[l].default!==void 0}function c(l){e.subschema({keyword:"properties",schemaProp:l,dataProp:l},d)}}};Z1.default=rqe});var fZ=ee(Q1=>{"use strict";Object.defineProperty(Q1,"__esModule",{value:!0});var cZ=Mo(),vb=ln(),lZ=Rn(),pZ=Rn(),oqe={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:n,schema:t,data:r,parentSchema:o,it:i}=e,{opts:s}=i,a=(0,cZ.allSchemaProperties)(t),d=a.filter(y=>(0,lZ.alwaysValidSchema)(i,t[y]));if(a.length===0||d.length===a.length&&(!i.opts.unevaluated||i.props===!0))return;let u=s.strictSchema&&!s.allowMatchingProperties&&o.properties,c=n.name("valid");i.props!==!0&&!(i.props instanceof vb.Name)&&(i.props=(0,pZ.evaluatedPropsToName)(n,i.props));let{props:l}=i;p();function p(){for(let y of a)u&&m(y),i.allErrors?f(y):(n.var(c,!0),f(y),n.if(c))}function m(y){for(let _ in u)new RegExp(y).test(_)&&(0,lZ.checkStrictMode)(i,`property ${_} matches pattern ${y} (use allowMatchingProperties)`)}function f(y){n.forIn("key",r,_=>{n.if((0,vb._)`${(0,cZ.usePattern)(e,y)}.test(${_})`,()=>{let w=d.includes(y);w||e.subschema({keyword:"patternProperties",schemaProp:y,dataProp:_,dataPropType:pZ.Type.Str},c),i.opts.unevaluated&&l!==!0?n.assign((0,vb._)`${l}[${_}]`,!0):!w&&!i.allErrors&&n.if((0,vb.not)(c),()=>n.break())})})}}};Q1.default=oqe});var mZ=ee(X1=>{"use strict";Object.defineProperty(X1,"__esModule",{value:!0});var iqe=Rn(),sqe={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:n,schema:t,it:r}=e;if((0,iqe.alwaysValidSchema)(r,t)){e.fail();return}let o=n.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),e.failResult(o,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};X1.default=sqe});var hZ=ee(Y1=>{"use strict";Object.defineProperty(Y1,"__esModule",{value:!0});var aqe=Mo(),dqe={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:aqe.validateUnion,error:{message:"must match a schema in anyOf"}};Y1.default=dqe});var gZ=ee(eD=>{"use strict";Object.defineProperty(eD,"__esModule",{value:!0});var Sb=ln(),uqe=Rn(),cqe={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,Sb._)`{passingSchemas: ${e.passing}}`},lqe={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:cqe,code(e){let{gen:n,schema:t,parentSchema:r,it:o}=e;if(!Array.isArray(t))throw new Error("ajv implementation error");if(o.opts.discriminator&&r.discriminator)return;let i=t,s=n.let("valid",!1),a=n.let("passing",null),d=n.name("_valid");e.setParams({passing:a}),n.block(u),e.result(s,()=>e.reset(),()=>e.error(!0));function u(){i.forEach((c,l)=>{let p;(0,uqe.alwaysValidSchema)(o,c)?n.var(d,!0):p=e.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},d),l>0&&n.if((0,Sb._)`${d} && ${s}`).assign(s,!1).assign(a,(0,Sb._)`[${a}, ${l}]`).else(),n.if(d,()=>{n.assign(s,!0),n.assign(a,l),p&&e.mergeEvaluated(p,Sb.Name)})})}}};eD.default=lqe});var yZ=ee(nD=>{"use strict";Object.defineProperty(nD,"__esModule",{value:!0});var pqe=Rn(),fqe={keyword:"allOf",schemaType:"array",code(e){let{gen:n,schema:t,it:r}=e;if(!Array.isArray(t))throw new Error("ajv implementation error");let o=n.name("valid");t.forEach((i,s)=>{if((0,pqe.alwaysValidSchema)(r,i))return;let a=e.subschema({keyword:"allOf",schemaProp:s},o);e.ok(o),e.mergeEvaluated(a)})}};nD.default=fqe});var bZ=ee(tD=>{"use strict";Object.defineProperty(tD,"__esModule",{value:!0});var kb=ln(),_Z=Rn(),mqe={message:({params:e})=>(0,kb.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,kb._)`{failingKeyword: ${e.ifClause}}`},hqe={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:mqe,code(e){let{gen:n,parentSchema:t,it:r}=e;t.then===void 0&&t.else===void 0&&(0,_Z.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let o=xZ(r,"then"),i=xZ(r,"else");if(!o&&!i)return;let s=n.let("valid",!0),a=n.name("_valid");if(d(),e.reset(),o&&i){let c=n.let("ifClause");e.setParams({ifClause:c}),n.if(a,u("then",c),u("else",c))}else o?n.if(a,u("then")):n.if((0,kb.not)(a),u("else"));e.pass(s,()=>e.error(!0));function d(){let c=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);e.mergeEvaluated(c)}function u(c,l){return()=>{let p=e.subschema({keyword:c},a);n.assign(s,a),e.mergeValidEvaluated(p,s),l?n.assign(l,(0,kb._)`${c}`):e.setParams({ifClause:c})}}}};function xZ(e,n){let t=e.schema[n];return t!==void 0&&!(0,_Z.alwaysValidSchema)(e,t)}tD.default=hqe});var wZ=ee(rD=>{"use strict";Object.defineProperty(rD,"__esModule",{value:!0});var gqe=Rn(),yqe={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:n,it:t}){n.if===void 0&&(0,gqe.checkStrictMode)(t,`"${e}" without "if" is ignored`)}};rD.default=yqe});var vZ=ee(oD=>{"use strict";Object.defineProperty(oD,"__esModule",{value:!0});var xqe=z1(),_qe=XG(),bqe=N1(),wqe=eZ(),vqe=nZ(),Sqe=oZ(),kqe=sZ(),Cqe=H1(),Tqe=uZ(),Pqe=fZ(),Iqe=mZ(),Rqe=hZ(),Eqe=gZ(),Dqe=yZ(),Mqe=bZ(),Aqe=wZ();function Oqe(e=!1){let n=[Iqe.default,Rqe.default,Eqe.default,Dqe.default,Mqe.default,Aqe.default,kqe.default,Cqe.default,Sqe.default,Tqe.default,Pqe.default];return e?n.push(_qe.default,wqe.default):n.push(xqe.default,bqe.default),n.push(vqe.default),n}oD.default=Oqe});var SZ=ee(iD=>{"use strict";Object.defineProperty(iD,"__esModule",{value:!0});var wt=ln(),$qe={message:({schemaCode:e})=>(0,wt.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,wt._)`{format: ${e}}`},Lqe={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:$qe,code(e,n){let{gen:t,data:r,$data:o,schema:i,schemaCode:s,it:a}=e,{opts:d,errSchemaPath:u,schemaEnv:c,self:l}=a;if(!d.validateFormats)return;o?p():m();function p(){let f=t.scopeValue("formats",{ref:l.formats,code:d.code.formats}),y=t.const("fDef",(0,wt._)`${f}[${s}]`),_=t.let("fType"),w=t.let("format");t.if((0,wt._)`typeof ${y} == "object" && !(${y} instanceof RegExp)`,()=>t.assign(_,(0,wt._)`${y}.type || "string"`).assign(w,(0,wt._)`${y}.validate`),()=>t.assign(_,(0,wt._)`"string"`).assign(w,y)),e.fail$data((0,wt.or)(S(),v()));function S(){return d.strictSchema===!1?wt.nil:(0,wt._)`${s} && !${w}`}function v(){let b=c.$async?(0,wt._)`(${y}.async ? await ${w}(${r}) : ${w}(${r}))`:(0,wt._)`${w}(${r})`,k=(0,wt._)`(typeof ${w} == "function" ? ${b} : ${w}.test(${r}))`;return(0,wt._)`${w} && ${w} !== true && ${_} === ${n} && !${k}`}}function m(){let f=l.formats[i];if(!f){S();return}if(f===!0)return;let[y,_,w]=v(f);y===n&&e.pass(b());function S(){if(d.strictSchema===!1){l.logger.warn(k());return}throw new Error(k());function k(){return`unknown format "${i}" ignored in schema at path "${u}"`}}function v(k){let R=k instanceof RegExp?(0,wt.regexpCode)(k):d.code.formats?(0,wt._)`${d.code.formats}${(0,wt.getProperty)(i)}`:void 0,P=t.scopeValue("formats",{key:i,ref:k,code:R});return typeof k=="object"&&!(k instanceof RegExp)?[k.type||"string",k.validate,(0,wt._)`${P}.validate`]:["string",k,P]}function b(){if(typeof f=="object"&&!(f instanceof RegExp)&&f.async){if(!c.$async)throw new Error("async format in sync schema");return(0,wt._)`await ${w}(${r})`}return typeof _=="function"?(0,wt._)`${w}(${r})`:(0,wt._)`${w}.test(${r})`}}}};iD.default=Lqe});var kZ=ee(sD=>{"use strict";Object.defineProperty(sD,"__esModule",{value:!0});var jqe=SZ(),Fqe=[jqe.default];sD.default=Fqe});var CZ=ee($l=>{"use strict";Object.defineProperty($l,"__esModule",{value:!0});$l.contentVocabulary=$l.metadataVocabulary=void 0;$l.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];$l.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var PZ=ee(aD=>{"use strict";Object.defineProperty(aD,"__esModule",{value:!0});var qqe=OG(),zqe=HG(),Nqe=vZ(),Uqe=kZ(),TZ=CZ(),Bqe=[qqe.default,zqe.default,(0,Nqe.default)(),Uqe.default,TZ.metadataVocabulary,TZ.contentVocabulary];aD.default=Bqe});var RZ=ee(Cb=>{"use strict";Object.defineProperty(Cb,"__esModule",{value:!0});Cb.DiscrError=void 0;var IZ;(function(e){e.Tag="tag",e.Mapping="mapping"})(IZ||(Cb.DiscrError=IZ={}))});var DZ=ee(uD=>{"use strict";Object.defineProperty(uD,"__esModule",{value:!0});var Ll=ln(),dD=RZ(),EZ=sb(),Jqe=nh(),Kqe=Rn(),Vqe={message:({params:{discrError:e,tagName:n}})=>e===dD.DiscrError.Tag?`tag "${n}" must be string`:`value of tag "${n}" must be in oneOf`,params:({params:{discrError:e,tag:n,tagName:t}})=>(0,Ll._)`{error: ${e}, tag: ${t}, tagValue: ${n}}`},Wqe={keyword:"discriminator",type:"object",schemaType:"object",error:Vqe,code(e){let{gen:n,data:t,schema:r,parentSchema:o,it:i}=e,{oneOf:s}=o;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=r.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!s)throw new Error("discriminator: requires oneOf keyword");let d=n.let("valid",!1),u=n.const("tag",(0,Ll._)`${t}${(0,Ll.getProperty)(a)}`);n.if((0,Ll._)`typeof ${u} == "string"`,()=>c(),()=>e.error(!1,{discrError:dD.DiscrError.Tag,tag:u,tagName:a})),e.ok(d);function c(){let m=p();n.if(!1);for(let f in m)n.elseIf((0,Ll._)`${u} === ${f}`),n.assign(d,l(m[f]));n.else(),e.error(!1,{discrError:dD.DiscrError.Mapping,tag:u,tagName:a}),n.endIf()}function l(m){let f=n.name("valid"),y=e.subschema({keyword:"oneOf",schemaProp:m},f);return e.mergeEvaluated(y,Ll.Name),f}function p(){var m;let f={},y=w(o),_=!0;for(let b=0;b<s.length;b++){let k=s[b];if(k?.$ref&&!(0,Kqe.schemaHasRulesButRef)(k,i.self.RULES)){let P=k.$ref;if(k=EZ.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,P),k instanceof EZ.SchemaEnv&&(k=k.schema),k===void 0)throw new Jqe.default(i.opts.uriResolver,i.baseId,P)}let R=(m=k?.properties)===null||m===void 0?void 0:m[a];if(typeof R!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${a}"`);_=_&&(y||w(k)),S(R,b)}if(!_)throw new Error(`discriminator: "${a}" must be required`);return f;function w({required:b}){return Array.isArray(b)&&b.includes(a)}function S(b,k){if(b.const)v(b.const,k);else if(b.enum)for(let R of b.enum)v(R,k);else throw new Error(`discriminator: "properties/${a}" must have "const" or "enum"`)}function v(b,k){if(typeof b!="string"||b in f)throw new Error(`discriminator: "${a}" values must be unique strings`);f[b]=k}}}};uD.default=Wqe});var MZ=ee(($dn,Hqe)=>{Hqe.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var lD=ee((st,cD)=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.MissingRefError=st.ValidationError=st.CodeGen=st.Name=st.nil=st.stringify=st.str=st._=st.KeywordCxt=st.Ajv=void 0;var Gqe=IG(),Zqe=PZ(),Qqe=DZ(),AZ=MZ(),Xqe=["/properties"],Tb="http://json-schema.org/draft-07/schema",jl=class extends Gqe.default{_addVocabularies(){super._addVocabularies(),Zqe.default.forEach(n=>this.addVocabulary(n)),this.opts.discriminator&&this.addKeyword(Qqe.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let n=this.opts.$data?this.$dataMetaSchema(AZ,Xqe):AZ;this.addMetaSchema(n,Tb,!1),this.refs["http://json-schema.org/schema"]=Tb}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Tb)?Tb:void 0)}};st.Ajv=jl;cD.exports=st=jl;cD.exports.Ajv=jl;Object.defineProperty(st,"__esModule",{value:!0});st.default=jl;var Yqe=eh();Object.defineProperty(st,"KeywordCxt",{enumerable:!0,get:function(){return Yqe.KeywordCxt}});var Fl=ln();Object.defineProperty(st,"_",{enumerable:!0,get:function(){return Fl._}});Object.defineProperty(st,"str",{enumerable:!0,get:function(){return Fl.str}});Object.defineProperty(st,"stringify",{enumerable:!0,get:function(){return Fl.stringify}});Object.defineProperty(st,"nil",{enumerable:!0,get:function(){return Fl.nil}});Object.defineProperty(st,"Name",{enumerable:!0,get:function(){return Fl.Name}});Object.defineProperty(st,"CodeGen",{enumerable:!0,get:function(){return Fl.CodeGen}});var eze=ob();Object.defineProperty(st,"ValidationError",{enumerable:!0,get:function(){return eze.default}});var nze=nh();Object.defineProperty(st,"MissingRefError",{enumerable:!0,get:function(){return nze.default}})});var NZ=ee(Bi=>{"use strict";Object.defineProperty(Bi,"__esModule",{value:!0});Bi.formatNames=Bi.fastFormats=Bi.fullFormats=void 0;function Ui(e,n){return{validate:e,compare:n}}Bi.fullFormats={date:Ui(jZ,hD),time:Ui(fD(!0),gD),"date-time":Ui(OZ(!0),qZ),"iso-time":Ui(fD(),FZ),"iso-date-time":Ui(OZ(),zZ),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:aze,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:mze,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:dze,int32:{type:"number",validate:lze},int64:{type:"number",validate:pze},float:{type:"number",validate:LZ},double:{type:"number",validate:LZ},password:!0,binary:!0};Bi.fastFormats={...Bi.fullFormats,date:Ui(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,hD),time:Ui(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,gD),"date-time":Ui(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,qZ),"iso-time":Ui(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,FZ),"iso-date-time":Ui(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,zZ),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};Bi.formatNames=Object.keys(Bi.fullFormats);function tze(e){return e%4===0&&(e%100!==0||e%400===0)}var rze=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,oze=[0,31,28,31,30,31,30,31,31,30,31,30,31];function jZ(e){let n=rze.exec(e);if(!n)return!1;let t=+n[1],r=+n[2],o=+n[3];return r>=1&&r<=12&&o>=1&&o<=(r===2&&tze(t)?29:oze[r])}function hD(e,n){if(e&&n)return e>n?1:e<n?-1:0}var pD=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function fD(e){return function(t){let r=pD.exec(t);if(!r)return!1;let o=+r[1],i=+r[2],s=+r[3],a=r[4],d=r[5]==="-"?-1:1,u=+(r[6]||0),c=+(r[7]||0);if(u>23||c>59||e&&!a)return!1;if(o<=23&&i<=59&&s<60)return!0;let l=i-c*d,p=o-u*d-(l<0?1:0);return(p===23||p===-1)&&(l===59||l===-1)&&s<61}}function gD(e,n){if(!(e&&n))return;let t=new Date("2020-01-01T"+e).valueOf(),r=new Date("2020-01-01T"+n).valueOf();if(t&&r)return t-r}function FZ(e,n){if(!(e&&n))return;let t=pD.exec(e),r=pD.exec(n);if(t&&r)return e=t[1]+t[2]+t[3],n=r[1]+r[2]+r[3],e>n?1:e<n?-1:0}var mD=/t|\s/i;function OZ(e){let n=fD(e);return function(r){let o=r.split(mD);return o.length===2&&jZ(o[0])&&n(o[1])}}function qZ(e,n){if(!(e&&n))return;let t=new Date(e).valueOf(),r=new Date(n).valueOf();if(t&&r)return t-r}function zZ(e,n){if(!(e&&n))return;let[t,r]=e.split(mD),[o,i]=n.split(mD),s=hD(t,o);if(s!==void 0)return s||gD(r,i)}var ize=/\/|:/,sze=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function aze(e){return ize.test(e)&&sze.test(e)}var $Z=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function dze(e){return $Z.lastIndex=0,$Z.test(e)}var uze=-(2**31),cze=2**31-1;function lze(e){return Number.isInteger(e)&&e<=cze&&e>=uze}function pze(e){return Number.isInteger(e)}function LZ(){return!0}var fze=/[^\\]\\Z/;function mze(e){if(fze.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var UZ=ee(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});ql.formatLimitDefinition=void 0;var hze=lD(),fi=ln(),va=fi.operators,Pb={formatMaximum:{okStr:"<=",ok:va.LTE,fail:va.GT},formatMinimum:{okStr:">=",ok:va.GTE,fail:va.LT},formatExclusiveMaximum:{okStr:"<",ok:va.LT,fail:va.GTE},formatExclusiveMinimum:{okStr:">",ok:va.GT,fail:va.LTE}},gze={message:({keyword:e,schemaCode:n})=>(0,fi.str)`should be ${Pb[e].okStr} ${n}`,params:({keyword:e,schemaCode:n})=>(0,fi._)`{comparison: ${Pb[e].okStr}, limit: ${n}}`};ql.formatLimitDefinition={keyword:Object.keys(Pb),type:"string",schemaType:"string",$data:!0,error:gze,code(e){let{gen:n,data:t,schemaCode:r,keyword:o,it:i}=e,{opts:s,self:a}=i;if(!s.validateFormats)return;let d=new hze.KeywordCxt(i,a.RULES.all.format.definition,"format");d.$data?u():c();function u(){let p=n.scopeValue("formats",{ref:a.formats,code:s.code.formats}),m=n.const("fmt",(0,fi._)`${p}[${d.schemaCode}]`);e.fail$data((0,fi.or)((0,fi._)`typeof ${m} != "object"`,(0,fi._)`${m} instanceof RegExp`,(0,fi._)`typeof ${m}.compare != "function"`,l(m)))}function c(){let p=d.schema,m=a.formats[p];if(!m||m===!0)return;if(typeof m!="object"||m instanceof RegExp||typeof m.compare!="function")throw new Error(`"${o}": format "${p}" does not define "compare" function`);let f=n.scopeValue("formats",{key:p,ref:m,code:s.code.formats?(0,fi._)`${s.code.formats}${(0,fi.getProperty)(p)}`:void 0});e.fail$data(l(f))}function l(p){return(0,fi._)`${p}.compare(${t}, ${r}) ${Pb[o].fail} 0`}},dependencies:["format"]};var yze=e=>(e.addKeyword(ql.formatLimitDefinition),e);ql.default=yze});var VZ=ee((hh,KZ)=>{"use strict";Object.defineProperty(hh,"__esModule",{value:!0});var zl=NZ(),xze=UZ(),yD=ln(),BZ=new yD.Name("fullFormats"),_ze=new yD.Name("fastFormats"),xD=(e,n={keywords:!0})=>{if(Array.isArray(n))return JZ(e,n,zl.fullFormats,BZ),e;let[t,r]=n.mode==="fast"?[zl.fastFormats,_ze]:[zl.fullFormats,BZ],o=n.formats||zl.formatNames;return JZ(e,o,t,r),n.keywords&&(0,xze.default)(e),e};xD.get=(e,n="full")=>{let r=(n==="fast"?zl.fastFormats:zl.fullFormats)[e];if(!r)throw new Error(`Unknown format "${e}"`);return r};function JZ(e,n,t,r){var o,i;(o=(i=e.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,yD._)`require("ajv-formats/dist/formats").${r}`);for(let s of n)e.addFormat(s,t[s])}KZ.exports=hh=xD;Object.defineProperty(hh,"__esModule",{value:!0});hh.default=xD});var cr,Yr,PD,du,Ds,_h,vt,AQ=F(()=>{cr=(e,n=[])=>e.name==="up"||n.includes("vim")&&e.name==="k"||n.includes("emacs")&&e.ctrl&&e.name==="p",Yr=(e,n=[])=>e.name==="down"||n.includes("vim")&&e.name==="j"||n.includes("emacs")&&e.ctrl&&e.name==="n",PD=e=>e.name==="space",du=e=>e.name==="backspace",Ds=e=>e.name==="tab",_h=e=>"1234567890".includes(e.name),vt=e=>e.name==="enter"||e.name==="return"});var jb,Fb,bh,qb,Ki,zb=F(()=>{jb=class extends Error{name="AbortPromptError";message="Prompt was aborted";constructor(n){super(),this.cause=n?.cause}},Fb=class extends Error{name="CancelPromptError";message="Prompt was canceled"},bh=class extends Error{name="ExitPromptError"},qb=class extends Error{name="HookError"},Ki=class extends Error{name="ValidationError"}});import{AsyncLocalStorage as O4e,AsyncResource as $4e}from"node:async_hooks";function L4e(e){return{rl:e,hooks:[],hooksCleanup:[],hooksEffect:[],index:0,handleChange(){}}}function $Q(e,n){let t=L4e(e);return OQ.run(t,()=>{function r(o){t.handleChange=()=>{t.index=0,o()},t.handleChange()}return n(r)})}function uu(){let e=OQ.getStore();if(!e)throw new qb("[Inquirer] Hook functions can only be called from within a prompt");return e}function ID(){return uu().rl}function RD(e){let n=(...t)=>{let r=uu(),o=!1,i=r.handleChange;r.handleChange=()=>{o=!0};let s=e(...t);return o&&i(),r.handleChange=i,s};return $4e.bind(n)}function Bl(e){let n=uu(),{index:t}=n,r={get(){return n.hooks[t]},set(i){n.hooks[t]=i},initialized:t in n.hooks},o=e(r);return n.index++,o}function LQ(){uu().handleChange()}var OQ,cu,lu=F(()=>{zb();OQ=new O4e;cu={queue(e){let n=uu(),{index:t}=n;n.hooksEffect.push(()=>{n.hooksCleanup[t]?.();let r=e(ID());if(r!=null&&typeof r!="function")throw new Ki("useEffect return value must be a cleanup function or nothing.");n.hooksCleanup[t]=r})},run(){let e=uu();RD(()=>{e.hooksEffect.forEach(n=>{n()}),e.hooksEffect.length=0})()},clearAll(){let e=uu();e.hooksCleanup.forEach(n=>{n?.()}),e.hooksEffect.length=0,e.hooksCleanup.length=0}}});import{AsyncResource as j4e}from"node:async_hooks";function We(e){return Bl(n=>{let t=j4e.bind(function(i){n.get()!==i&&(n.set(i),LQ())});if(n.initialized)return[n.get(),t];let r=typeof e=="function"?e():e;return n.set(r),[r,t]})}var Nb=F(()=>{lu()});function po(e,n){Bl(t=>{let r=t.get();(!Array.isArray(r)||n.some((i,s)=>!Object.is(i,r[s])))&&cu.queue(e),t.set(n)})}var Ub=F(()=>{lu()});var Ca=ee((acn,jQ)=>{var F4e=La("node:tty"),q4e=F4e?.WriteStream?.prototype?.hasColors?.()??!1,un=(e,n)=>{if(!q4e)return o=>o;let t=`\x1B[${e}m`,r=`\x1B[${n}m`;return o=>{let i=o+"",s=i.indexOf(r);if(s===-1)return t+i+r;let a=t,d=0,c=(n===22?r:"")+t;for(;s!==-1;)a+=i.slice(d,s)+c,d=s+r.length,s=i.indexOf(r,d);return a+=i.slice(d)+r,a}},rn={};rn.reset=un(0,0);rn.bold=un(1,22);rn.dim=un(2,22);rn.italic=un(3,23);rn.underline=un(4,24);rn.overline=un(53,55);rn.inverse=un(7,27);rn.hidden=un(8,28);rn.strikethrough=un(9,29);rn.black=un(30,39);rn.red=un(31,39);rn.green=un(32,39);rn.yellow=un(33,39);rn.blue=un(34,39);rn.magenta=un(35,39);rn.cyan=un(36,39);rn.white=un(37,39);rn.gray=un(90,39);rn.bgBlack=un(40,49);rn.bgRed=un(41,49);rn.bgGreen=un(42,49);rn.bgYellow=un(43,49);rn.bgBlue=un(44,49);rn.bgMagenta=un(45,49);rn.bgCyan=un(46,49);rn.bgWhite=un(47,49);rn.bgGray=un(100,49);rn.redBright=un(91,39);rn.greenBright=un(92,39);rn.yellowBright=un(93,39);rn.blueBright=un(94,39);rn.magentaBright=un(95,39);rn.cyanBright=un(96,39);rn.whiteBright=un(97,39);rn.bgRedBright=un(101,49);rn.bgGreenBright=un(102,49);rn.bgYellowBright=un(103,49);rn.bgBlueBright=un(104,49);rn.bgMagentaBright=un(105,49);rn.bgCyanBright=un(106,49);rn.bgWhiteBright=un(107,49);jQ.exports=rn});import Vi from"node:process";function z4e(){return Vi.platform!=="win32"?Vi.env.TERM!=="linux":!!Vi.env.WT_SESSION||!!Vi.env.TERMINUS_SUBLIME||Vi.env.ConEmuTask==="{cmd::Cmder}"||Vi.env.TERM_PROGRAM==="Terminus-Sublime"||Vi.env.TERM_PROGRAM==="vscode"||Vi.env.TERM==="xterm-256color"||Vi.env.TERM==="alacritty"||Vi.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var FQ,qQ,N4e,U4e,B4e,J4e,K4e,$o,ucn,Jl=F(()=>{FQ={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},qQ={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},N4e={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},U4e={...FQ,...qQ},B4e={...FQ,...N4e},J4e=z4e(),K4e=J4e?U4e:B4e,$o=K4e,ucn=Object.entries(qQ)});var Lo,zQ,NQ=F(()=>{Lo=Fr(Ca(),1);Jl();zQ={prefix:{idle:Lo.default.blue("?"),done:Lo.default.green($o.tick)},spinner:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"].map(e=>Lo.default.yellow(e))},style:{answer:Lo.default.cyan,message:Lo.default.bold,error:e=>Lo.default.red(`> ${e}`),defaultAnswer:e=>Lo.default.dim(`(${e})`),help:Lo.default.dim,highlight:Lo.default.cyan,key:e=>Lo.default.cyan(Lo.default.bold(`<${e}>`))}}});function UQ(e){if(typeof e!="object"||e===null)return!1;let n=e;for(;Object.getPrototypeOf(n)!==null;)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(e)===n}function BQ(...e){let n={};for(let t of e)for(let[r,o]of Object.entries(t)){let i=n[r];n[r]=UQ(i)&&UQ(o)?BQ(i,o):o}return n}function mt(...e){let n=[zQ,...e.filter(t=>t!=null)];return BQ(...n)}var ED=F(()=>{NQ()});function St({status:e="idle",theme:n}){let[t,r]=We(!1),[o,i]=We(0),{prefix:s,spinner:a}=mt(n);return po(()=>{if(e==="loading"){let u,c=-1,l=setTimeout(()=>{r(!0),u=setInterval(()=>{c=c+1,i(c%a.frames.length)},a.interval)},300);return()=>{clearTimeout(l),clearInterval(u)}}else r(!1)},[e]),t?a.frames[o]:typeof s=="string"?s:s[e==="loading"?"idle":e]??s.idle}var JQ=F(()=>{Nb();Ub();ED()});function eo(e,n){return Bl(t=>{let r=t.get();if(!r||r.dependencies.length!==n.length||r.dependencies.some((o,i)=>o!==n[i])){let o=e();return t.set({value:o,dependencies:n}),o}return r.value})}var KQ=F(()=>{lu()});function pu(e){return We({current:e})[0]}var Bb=F(()=>{Nb()});function kt(e){let n=pu(e);n.current=e,po(t=>{let r=!1,o=RD((i,s)=>{r||n.current(s,t)});return t.input.on("keypress",o),()=>{r=!0,t.input.removeListener("keypress",o)}},[])}var VQ=F(()=>{Bb();Ub();lu()});var HQ=ee((Pcn,WQ)=>{"use strict";WQ.exports=W4e;function V4e(e){let n={defaultWidth:0,output:process.stdout,tty:La("tty")};return e?(Object.keys(n).forEach(function(t){e[t]||(e[t]=n[t])}),e):n}function W4e(e){let n=V4e(e);if(n.output.getWindowSize)return n.output.getWindowSize()[0]||n.defaultWidth;if(n.tty.getWindowSize)return n.tty.getWindowSize()[1]||n.defaultWidth;if(n.output.columns)return n.output.columns;if(process.env.CLI_WIDTH){let t=parseInt(process.env.CLI_WIDTH,10);if(!isNaN(t)&&t!==0)return t}return n.defaultWidth}});var ZQ=ee((Icn,GQ)=>{"use strict";GQ.exports=({onlyFirst:e=!1}={})=>{let n=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(n,e?void 0:"g")}});var DD=ee((Rcn,QQ)=>{"use strict";var H4e=ZQ();QQ.exports=e=>typeof e=="string"?e.replace(H4e(),""):e});var YQ=ee((Ecn,MD)=>{"use strict";var XQ=e=>Number.isNaN(e)?!1:e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141);MD.exports=XQ;MD.exports.default=XQ});var nX=ee((Dcn,eX)=>{"use strict";eX.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var rX=ee((Mcn,AD)=>{"use strict";var G4e=DD(),Z4e=YQ(),Q4e=nX(),tX=e=>{if(typeof e!="string"||e.length===0||(e=G4e(e),e.length===0))return 0;e=e.replace(Q4e()," ");let n=0;for(let t=0;t<e.length;t++){let r=e.codePointAt(t);r<=31||r>=127&&r<=159||r>=768&&r<=879||(r>65535&&t++,n+=Z4e(r)?2:1)}return n};AD.exports=tX;AD.exports.default=tX});var iX=ee((Acn,oX)=>{"use strict";oX.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var OD=ee((Ocn,aX)=>{var wh=iX(),sX={};for(let e of Object.keys(wh))sX[wh[e]]=e;var Ae={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};aX.exports=Ae;for(let e of Object.keys(Ae)){if(!("channels"in Ae[e]))throw new Error("missing channels property: "+e);if(!("labels"in Ae[e]))throw new Error("missing channel labels property: "+e);if(Ae[e].labels.length!==Ae[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:n,labels:t}=Ae[e];delete Ae[e].channels,delete Ae[e].labels,Object.defineProperty(Ae[e],"channels",{value:n}),Object.defineProperty(Ae[e],"labels",{value:t})}Ae.rgb.hsl=function(e){let n=e[0]/255,t=e[1]/255,r=e[2]/255,o=Math.min(n,t,r),i=Math.max(n,t,r),s=i-o,a,d;i===o?a=0:n===i?a=(t-r)/s:t===i?a=2+(r-n)/s:r===i&&(a=4+(n-t)/s),a=Math.min(a*60,360),a<0&&(a+=360);let u=(o+i)/2;return i===o?d=0:u<=.5?d=s/(i+o):d=s/(2-i-o),[a,d*100,u*100]};Ae.rgb.hsv=function(e){let n,t,r,o,i,s=e[0]/255,a=e[1]/255,d=e[2]/255,u=Math.max(s,a,d),c=u-Math.min(s,a,d),l=function(p){return(u-p)/6/c+1/2};return c===0?(o=0,i=0):(i=c/u,n=l(s),t=l(a),r=l(d),s===u?o=r-t:a===u?o=1/3+n-r:d===u&&(o=2/3+t-n),o<0?o+=1:o>1&&(o-=1)),[o*360,i*100,u*100]};Ae.rgb.hwb=function(e){let n=e[0],t=e[1],r=e[2],o=Ae.rgb.hsl(e)[0],i=1/255*Math.min(n,Math.min(t,r));return r=1-1/255*Math.max(n,Math.max(t,r)),[o,i*100,r*100]};Ae.rgb.cmyk=function(e){let n=e[0]/255,t=e[1]/255,r=e[2]/255,o=Math.min(1-n,1-t,1-r),i=(1-n-o)/(1-o)||0,s=(1-t-o)/(1-o)||0,a=(1-r-o)/(1-o)||0;return[i*100,s*100,a*100,o*100]};function X4e(e,n){return(e[0]-n[0])**2+(e[1]-n[1])**2+(e[2]-n[2])**2}Ae.rgb.keyword=function(e){let n=sX[e];if(n)return n;let t=1/0,r;for(let o of Object.keys(wh)){let i=wh[o],s=X4e(e,i);s<t&&(t=s,r=o)}return r};Ae.keyword.rgb=function(e){return wh[e]};Ae.rgb.xyz=function(e){let n=e[0]/255,t=e[1]/255,r=e[2]/255;n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let o=n*.4124+t*.3576+r*.1805,i=n*.2126+t*.7152+r*.0722,s=n*.0193+t*.1192+r*.9505;return[o*100,i*100,s*100]};Ae.rgb.lab=function(e){let n=Ae.rgb.xyz(e),t=n[0],r=n[1],o=n[2];t/=95.047,r/=100,o/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;let i=116*r-16,s=500*(t-r),a=200*(r-o);return[i,s,a]};Ae.hsl.rgb=function(e){let n=e[0]/360,t=e[1]/100,r=e[2]/100,o,i,s;if(t===0)return s=r*255,[s,s,s];r<.5?o=r*(1+t):o=r+t-r*t;let a=2*r-o,d=[0,0,0];for(let u=0;u<3;u++)i=n+1/3*-(u-1),i<0&&i++,i>1&&i--,6*i<1?s=a+(o-a)*6*i:2*i<1?s=o:3*i<2?s=a+(o-a)*(2/3-i)*6:s=a,d[u]=s*255;return d};Ae.hsl.hsv=function(e){let n=e[0],t=e[1]/100,r=e[2]/100,o=t,i=Math.max(r,.01);r*=2,t*=r<=1?r:2-r,o*=i<=1?i:2-i;let s=(r+t)/2,a=r===0?2*o/(i+o):2*t/(r+t);return[n,a*100,s*100]};Ae.hsv.rgb=function(e){let n=e[0]/60,t=e[1]/100,r=e[2]/100,o=Math.floor(n)%6,i=n-Math.floor(n),s=255*r*(1-t),a=255*r*(1-t*i),d=255*r*(1-t*(1-i));switch(r*=255,o){case 0:return[r,d,s];case 1:return[a,r,s];case 2:return[s,r,d];case 3:return[s,a,r];case 4:return[d,s,r];case 5:return[r,s,a]}};Ae.hsv.hsl=function(e){let n=e[0],t=e[1]/100,r=e[2]/100,o=Math.max(r,.01),i,s;s=(2-t)*r;let a=(2-t)*o;return i=t*o,i/=a<=1?a:2-a,i=i||0,s/=2,[n,i*100,s*100]};Ae.hwb.rgb=function(e){let n=e[0]/360,t=e[1]/100,r=e[2]/100,o=t+r,i;o>1&&(t/=o,r/=o);let s=Math.floor(6*n),a=1-r;i=6*n-s,(s&1)!==0&&(i=1-i);let d=t+i*(a-t),u,c,l;switch(s){default:case 6:case 0:u=a,c=d,l=t;break;case 1:u=d,c=a,l=t;break;case 2:u=t,c=a,l=d;break;case 3:u=t,c=d,l=a;break;case 4:u=d,c=t,l=a;break;case 5:u=a,c=t,l=d;break}return[u*255,c*255,l*255]};Ae.cmyk.rgb=function(e){let n=e[0]/100,t=e[1]/100,r=e[2]/100,o=e[3]/100,i=1-Math.min(1,n*(1-o)+o),s=1-Math.min(1,t*(1-o)+o),a=1-Math.min(1,r*(1-o)+o);return[i*255,s*255,a*255]};Ae.xyz.rgb=function(e){let n=e[0]/100,t=e[1]/100,r=e[2]/100,o,i,s;return o=n*3.2406+t*-1.5372+r*-.4986,i=n*-.9689+t*1.8758+r*.0415,s=n*.0557+t*-.204+r*1.057,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,i=i>.0031308?1.055*i**(1/2.4)-.055:i*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=Math.min(Math.max(0,o),1),i=Math.min(Math.max(0,i),1),s=Math.min(Math.max(0,s),1),[o*255,i*255,s*255]};Ae.xyz.lab=function(e){let n=e[0],t=e[1],r=e[2];n/=95.047,t/=100,r/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;let o=116*t-16,i=500*(n-t),s=200*(t-r);return[o,i,s]};Ae.lab.xyz=function(e){let n=e[0],t=e[1],r=e[2],o,i,s;i=(n+16)/116,o=t/500+i,s=i-r/200;let a=i**3,d=o**3,u=s**3;return i=a>.008856?a:(i-16/116)/7.787,o=d>.008856?d:(o-16/116)/7.787,s=u>.008856?u:(s-16/116)/7.787,o*=95.047,i*=100,s*=108.883,[o,i,s]};Ae.lab.lch=function(e){let n=e[0],t=e[1],r=e[2],o;o=Math.atan2(r,t)*360/2/Math.PI,o<0&&(o+=360);let s=Math.sqrt(t*t+r*r);return[n,s,o]};Ae.lch.lab=function(e){let n=e[0],t=e[1],o=e[2]/360*2*Math.PI,i=t*Math.cos(o),s=t*Math.sin(o);return[n,i,s]};Ae.rgb.ansi16=function(e,n=null){let[t,r,o]=e,i=n===null?Ae.rgb.hsv(e)[2]:n;if(i=Math.round(i/50),i===0)return 30;let s=30+(Math.round(o/255)<<2|Math.round(r/255)<<1|Math.round(t/255));return i===2&&(s+=60),s};Ae.hsv.ansi16=function(e){return Ae.rgb.ansi16(Ae.hsv.rgb(e),e[2])};Ae.rgb.ansi256=function(e){let n=e[0],t=e[1],r=e[2];return n===t&&t===r?n<8?16:n>248?231:Math.round((n-8)/247*24)+232:16+36*Math.round(n/255*5)+6*Math.round(t/255*5)+Math.round(r/255*5)};Ae.ansi16.rgb=function(e){let n=e%10;if(n===0||n===7)return e>50&&(n+=3.5),n=n/10.5*255,[n,n,n];let t=(~~(e>50)+1)*.5,r=(n&1)*t*255,o=(n>>1&1)*t*255,i=(n>>2&1)*t*255;return[r,o,i]};Ae.ansi256.rgb=function(e){if(e>=232){let i=(e-232)*10+8;return[i,i,i]}e-=16;let n,t=Math.floor(e/36)/5*255,r=Math.floor((n=e%36)/6)/5*255,o=n%6/5*255;return[t,r,o]};Ae.rgb.hex=function(e){let t=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};Ae.hex.rgb=function(e){let n=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!n)return[0,0,0];let t=n[0];n[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let r=parseInt(t,16),o=r>>16&255,i=r>>8&255,s=r&255;return[o,i,s]};Ae.rgb.hcg=function(e){let n=e[0]/255,t=e[1]/255,r=e[2]/255,o=Math.max(Math.max(n,t),r),i=Math.min(Math.min(n,t),r),s=o-i,a,d;return s<1?a=i/(1-s):a=0,s<=0?d=0:o===n?d=(t-r)/s%6:o===t?d=2+(r-n)/s:d=4+(n-t)/s,d/=6,d%=1,[d*360,s*100,a*100]};Ae.hsl.hcg=function(e){let n=e[1]/100,t=e[2]/100,r=t<.5?2*n*t:2*n*(1-t),o=0;return r<1&&(o=(t-.5*r)/(1-r)),[e[0],r*100,o*100]};Ae.hsv.hcg=function(e){let n=e[1]/100,t=e[2]/100,r=n*t,o=0;return r<1&&(o=(t-r)/(1-r)),[e[0],r*100,o*100]};Ae.hcg.rgb=function(e){let n=e[0]/360,t=e[1]/100,r=e[2]/100;if(t===0)return[r*255,r*255,r*255];let o=[0,0,0],i=n%1*6,s=i%1,a=1-s,d=0;switch(Math.floor(i)){case 0:o[0]=1,o[1]=s,o[2]=0;break;case 1:o[0]=a,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=s;break;case 3:o[0]=0,o[1]=a,o[2]=1;break;case 4:o[0]=s,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=a}return d=(1-t)*r,[(t*o[0]+d)*255,(t*o[1]+d)*255,(t*o[2]+d)*255]};Ae.hcg.hsv=function(e){let n=e[1]/100,t=e[2]/100,r=n+t*(1-n),o=0;return r>0&&(o=n/r),[e[0],o*100,r*100]};Ae.hcg.hsl=function(e){let n=e[1]/100,r=e[2]/100*(1-n)+.5*n,o=0;return r>0&&r<.5?o=n/(2*r):r>=.5&&r<1&&(o=n/(2*(1-r))),[e[0],o*100,r*100]};Ae.hcg.hwb=function(e){let n=e[1]/100,t=e[2]/100,r=n+t*(1-n);return[e[0],(r-n)*100,(1-r)*100]};Ae.hwb.hcg=function(e){let n=e[1]/100,r=1-e[2]/100,o=r-n,i=0;return o<1&&(i=(r-o)/(1-o)),[e[0],o*100,i*100]};Ae.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};Ae.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};Ae.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};Ae.gray.hsl=function(e){return[0,0,e[0]]};Ae.gray.hsv=Ae.gray.hsl;Ae.gray.hwb=function(e){return[0,100,e[0]]};Ae.gray.cmyk=function(e){return[0,0,0,e[0]]};Ae.gray.lab=function(e){return[e[0],0,0]};Ae.gray.hex=function(e){let n=Math.round(e[0]/100*255)&255,r=((n<<16)+(n<<8)+n).toString(16).toUpperCase();return"000000".substring(r.length)+r};Ae.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}});var uX=ee(($cn,dX)=>{var Jb=OD();function Y4e(){let e={},n=Object.keys(Jb);for(let t=n.length,r=0;r<t;r++)e[n[r]]={distance:-1,parent:null};return e}function eNe(e){let n=Y4e(),t=[e];for(n[e].distance=0;t.length;){let r=t.pop(),o=Object.keys(Jb[r]);for(let i=o.length,s=0;s<i;s++){let a=o[s],d=n[a];d.distance===-1&&(d.distance=n[r].distance+1,d.parent=r,t.unshift(a))}}return n}function nNe(e,n){return function(t){return n(e(t))}}function tNe(e,n){let t=[n[e].parent,e],r=Jb[n[e].parent][e],o=n[e].parent;for(;n[o].parent;)t.unshift(n[o].parent),r=nNe(Jb[n[o].parent][o],r),o=n[o].parent;return r.conversion=t,r}dX.exports=function(e){let n=eNe(e),t={},r=Object.keys(n);for(let o=r.length,i=0;i<o;i++){let s=r[i];n[s].parent!==null&&(t[s]=tNe(s,n))}return t}});var lX=ee((Lcn,cX)=>{var $D=OD(),rNe=uX(),Kl={},oNe=Object.keys($D);function iNe(e){let n=function(...t){let r=t[0];return r==null?r:(r.length>1&&(t=r),e(t))};return"conversion"in e&&(n.conversion=e.conversion),n}function sNe(e){let n=function(...t){let r=t[0];if(r==null)return r;r.length>1&&(t=r);let o=e(t);if(typeof o=="object")for(let i=o.length,s=0;s<i;s++)o[s]=Math.round(o[s]);return o};return"conversion"in e&&(n.conversion=e.conversion),n}oNe.forEach(e=>{Kl[e]={},Object.defineProperty(Kl[e],"channels",{value:$D[e].channels}),Object.defineProperty(Kl[e],"labels",{value:$D[e].labels});let n=rNe(e);Object.keys(n).forEach(r=>{let o=n[r];Kl[e][r]=sNe(o),Kl[e][r].raw=iNe(o)})});cX.exports=Kl});var yX=ee((jcn,gX)=>{"use strict";var pX=(e,n)=>(...t)=>`\x1B[${e(...t)+n}m`,fX=(e,n)=>(...t)=>{let r=e(...t);return`\x1B[${38+n};5;${r}m`},mX=(e,n)=>(...t)=>{let r=e(...t);return`\x1B[${38+n};2;${r[0]};${r[1]};${r[2]}m`},Kb=e=>e,hX=(e,n,t)=>[e,n,t],Vl=(e,n,t)=>{Object.defineProperty(e,n,{get:()=>{let r=t();return Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0}),r},enumerable:!0,configurable:!0})},LD,Wl=(e,n,t,r)=>{LD===void 0&&(LD=lX());let o=r?10:0,i={};for(let[s,a]of Object.entries(LD)){let d=s==="ansi16"?"ansi":s;s===n?i[d]=e(t,o):typeof a=="object"&&(i[d]=e(a[n],o))}return i};function aNe(){let e=new Map,n={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};n.color.gray=n.color.blackBright,n.bgColor.bgGray=n.bgColor.bgBlackBright,n.color.grey=n.color.blackBright,n.bgColor.bgGrey=n.bgColor.bgBlackBright;for(let[t,r]of Object.entries(n)){for(let[o,i]of Object.entries(r))n[o]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[o]=n[o],e.set(i[0],i[1]);Object.defineProperty(n,t,{value:r,enumerable:!1})}return Object.defineProperty(n,"codes",{value:e,enumerable:!1}),n.color.close="\x1B[39m",n.bgColor.close="\x1B[49m",Vl(n.color,"ansi",()=>Wl(pX,"ansi16",Kb,!1)),Vl(n.color,"ansi256",()=>Wl(fX,"ansi256",Kb,!1)),Vl(n.color,"ansi16m",()=>Wl(mX,"rgb",hX,!1)),Vl(n.bgColor,"ansi",()=>Wl(pX,"ansi16",Kb,!0)),Vl(n.bgColor,"ansi256",()=>Wl(fX,"ansi256",Kb,!0)),Vl(n.bgColor,"ansi16m",()=>Wl(mX,"rgb",hX,!0)),n}Object.defineProperty(gX,"exports",{enumerable:!0,get:aNe})});var bX=ee((Fcn,_X)=>{"use strict";var vh=rX(),dNe=DD(),uNe=yX(),FD=new Set(["\x1B","\x9B"]),cNe=39,xX=e=>`${FD.values().next().value}[${e}m`,lNe=e=>e.split(" ").map(n=>vh(n)),jD=(e,n,t)=>{let r=[...n],o=!1,i=vh(dNe(e[e.length-1]));for(let[s,a]of r.entries()){let d=vh(a);if(i+d<=t?e[e.length-1]+=a:(e.push(a),i=0),FD.has(a))o=!0;else if(o&&a==="m"){o=!1;continue}o||(i+=d,i===t&&s<r.length-1&&(e.push(""),i=0))}!i&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},pNe=e=>{let n=e.split(" "),t=n.length;for(;t>0&&!(vh(n[t-1])>0);)t--;return t===n.length?e:n.slice(0,t).join(" ")+n.slice(t).join("")},fNe=(e,n,t={})=>{if(t.trim!==!1&&e.trim()==="")return"";let r="",o="",i,s=lNe(e),a=[""];for(let[d,u]of e.split(" ").entries()){t.trim!==!1&&(a[a.length-1]=a[a.length-1].trimLeft());let c=vh(a[a.length-1]);if(d!==0&&(c>=n&&(t.wordWrap===!1||t.trim===!1)&&(a.push(""),c=0),(c>0||t.trim===!1)&&(a[a.length-1]+=" ",c++)),t.hard&&s[d]>n){let l=n-c,p=1+Math.floor((s[d]-l-1)/n);Math.floor((s[d]-1)/n)<p&&a.push(""),jD(a,u,n);continue}if(c+s[d]>n&&c>0&&s[d]>0){if(t.wordWrap===!1&&c<n){jD(a,u,n);continue}a.push("")}if(c+s[d]>n&&t.wordWrap===!1){jD(a,u,n);continue}a[a.length-1]+=u}t.trim!==!1&&(a=a.map(pNe)),r=a.join(`
1552
+ deps: ${t}}`};var HFe={keyword:"dependencies",type:"object",schemaType:"object",error:Ni.error,code(e){let[n,t]=GFe(e);tZ(e,n),rZ(e,t)}};function GFe({schema:e}){let n={},t={};for(let r in e){if(r==="__proto__")continue;let o=Array.isArray(e[r])?n:t;o[r]=e[r]}return[n,t]}function tZ(e,n=e.schema){let{gen:t,data:r,it:o}=e;if(Object.keys(n).length===0)return;let i=t.let("missing");for(let s in n){let a=n[s];if(a.length===0)continue;let d=(0,mh.propertyInData)(t,r,s,o.opts.ownProperties);e.setParams({property:s,depsCount:a.length,deps:a.join(", ")}),o.allErrors?t.if(d,()=>{for(let u of a)(0,mh.checkReportMissingProp)(e,u)}):(t.if((0,K1._)`${d} && (${(0,mh.checkMissingProp)(e,a,i)})`),(0,mh.reportMissingProp)(e,i),t.else())}}Ni.validatePropertyDeps=tZ;function rZ(e,n=e.schema){let{gen:t,data:r,keyword:o,it:i}=e,s=t.name("valid");for(let a in n)(0,WFe.alwaysValidSchema)(i,n[a])||(t.if((0,mh.propertyInData)(t,r,a,i.opts.ownProperties),()=>{let d=e.subschema({keyword:o,schemaProp:a},s);e.mergeValidEvaluated(d,s)},()=>t.var(s,!0)),e.ok(s))}Ni.validateSchemaDeps=rZ;Ni.default=HFe});var sZ=ee(V1=>{"use strict";Object.defineProperty(V1,"__esModule",{value:!0});var iZ=ln(),ZFe=Rn(),QFe={message:"property name must be valid",params:({params:e})=>(0,iZ._)`{propertyName: ${e.propertyName}}`},XFe={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:QFe,code(e){let{gen:n,schema:t,data:r,it:o}=e;if((0,ZFe.alwaysValidSchema)(o,t))return;let i=n.name("valid");n.forIn("key",r,s=>{e.setParams({propertyName:s}),e.subschema({keyword:"propertyNames",data:s,dataTypes:["string"],propertyName:s,compositeRule:!0},i),n.if((0,iZ.not)(i),()=>{e.error(!0),o.allErrors||n.break()})}),e.ok(i)}};V1.default=XFe});var H1=ee(W1=>{"use strict";Object.defineProperty(W1,"__esModule",{value:!0});var bb=Mo(),pi=ln(),YFe=Is(),wb=Rn(),eqe={message:"must NOT have additional properties",params:({params:e})=>(0,pi._)`{additionalProperty: ${e.additionalProperty}}`},nqe={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:eqe,code(e){let{gen:n,schema:t,parentSchema:r,data:o,errsCount:i,it:s}=e;if(!i)throw new Error("ajv implementation error");let{allErrors:a,opts:d}=s;if(s.props=!0,d.removeAdditional!=="all"&&(0,wb.alwaysValidSchema)(s,t))return;let u=(0,bb.allSchemaProperties)(r.properties),c=(0,bb.allSchemaProperties)(r.patternProperties);l(),e.ok((0,pi._)`${i} === ${YFe.default.errors}`);function l(){n.forIn("key",o,_=>{!u.length&&!c.length?f(_):n.if(p(_),()=>f(_))})}function p(_){let w;if(u.length>8){let S=(0,wb.schemaRefOrVal)(s,r.properties,"properties");w=(0,bb.isOwnProperty)(n,S,_)}else u.length?w=(0,pi.or)(...u.map(S=>(0,pi._)`${_} === ${S}`)):w=pi.nil;return c.length&&(w=(0,pi.or)(w,...c.map(S=>(0,pi._)`${(0,bb.usePattern)(e,S)}.test(${_})`))),(0,pi.not)(w)}function m(_){n.code((0,pi._)`delete ${o}[${_}]`)}function f(_){if(d.removeAdditional==="all"||d.removeAdditional&&t===!1){m(_);return}if(t===!1){e.setParams({additionalProperty:_}),e.error(),a||n.break();return}if(typeof t=="object"&&!(0,wb.alwaysValidSchema)(s,t)){let w=n.name("valid");d.removeAdditional==="failing"?(y(_,w,!1),n.if((0,pi.not)(w),()=>{e.reset(),m(_)})):(y(_,w),a||n.if((0,pi.not)(w),()=>n.break()))}}function y(_,w,S){let v={keyword:"additionalProperties",dataProp:_,dataPropType:wb.Type.Str};S===!1&&Object.assign(v,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(v,w)}}};W1.default=nqe});var uZ=ee(Z1=>{"use strict";Object.defineProperty(Z1,"__esModule",{value:!0});var tqe=eh(),aZ=Mo(),G1=Rn(),dZ=H1(),rqe={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:n,schema:t,parentSchema:r,data:o,it:i}=e;i.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&dZ.default.code(new tqe.KeywordCxt(i,dZ.default,"additionalProperties"));let s=(0,aZ.allSchemaProperties)(t);for(let l of s)i.definedProperties.add(l);i.opts.unevaluated&&s.length&&i.props!==!0&&(i.props=G1.mergeEvaluated.props(n,(0,G1.toHash)(s),i.props));let a=s.filter(l=>!(0,G1.alwaysValidSchema)(i,t[l]));if(a.length===0)return;let d=n.name("valid");for(let l of a)u(l)?c(l):(n.if((0,aZ.propertyInData)(n,o,l,i.opts.ownProperties)),c(l),i.allErrors||n.else().var(d,!0),n.endIf()),e.it.definedProperties.add(l),e.ok(d);function u(l){return i.opts.useDefaults&&!i.compositeRule&&t[l].default!==void 0}function c(l){e.subschema({keyword:"properties",schemaProp:l,dataProp:l},d)}}};Z1.default=rqe});var fZ=ee(Q1=>{"use strict";Object.defineProperty(Q1,"__esModule",{value:!0});var cZ=Mo(),vb=ln(),lZ=Rn(),pZ=Rn(),oqe={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:n,schema:t,data:r,parentSchema:o,it:i}=e,{opts:s}=i,a=(0,cZ.allSchemaProperties)(t),d=a.filter(y=>(0,lZ.alwaysValidSchema)(i,t[y]));if(a.length===0||d.length===a.length&&(!i.opts.unevaluated||i.props===!0))return;let u=s.strictSchema&&!s.allowMatchingProperties&&o.properties,c=n.name("valid");i.props!==!0&&!(i.props instanceof vb.Name)&&(i.props=(0,pZ.evaluatedPropsToName)(n,i.props));let{props:l}=i;p();function p(){for(let y of a)u&&m(y),i.allErrors?f(y):(n.var(c,!0),f(y),n.if(c))}function m(y){for(let _ in u)new RegExp(y).test(_)&&(0,lZ.checkStrictMode)(i,`property ${_} matches pattern ${y} (use allowMatchingProperties)`)}function f(y){n.forIn("key",r,_=>{n.if((0,vb._)`${(0,cZ.usePattern)(e,y)}.test(${_})`,()=>{let w=d.includes(y);w||e.subschema({keyword:"patternProperties",schemaProp:y,dataProp:_,dataPropType:pZ.Type.Str},c),i.opts.unevaluated&&l!==!0?n.assign((0,vb._)`${l}[${_}]`,!0):!w&&!i.allErrors&&n.if((0,vb.not)(c),()=>n.break())})})}}};Q1.default=oqe});var mZ=ee(X1=>{"use strict";Object.defineProperty(X1,"__esModule",{value:!0});var iqe=Rn(),sqe={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:n,schema:t,it:r}=e;if((0,iqe.alwaysValidSchema)(r,t)){e.fail();return}let o=n.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),e.failResult(o,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};X1.default=sqe});var hZ=ee(Y1=>{"use strict";Object.defineProperty(Y1,"__esModule",{value:!0});var aqe=Mo(),dqe={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:aqe.validateUnion,error:{message:"must match a schema in anyOf"}};Y1.default=dqe});var gZ=ee(eD=>{"use strict";Object.defineProperty(eD,"__esModule",{value:!0});var Sb=ln(),uqe=Rn(),cqe={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,Sb._)`{passingSchemas: ${e.passing}}`},lqe={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:cqe,code(e){let{gen:n,schema:t,parentSchema:r,it:o}=e;if(!Array.isArray(t))throw new Error("ajv implementation error");if(o.opts.discriminator&&r.discriminator)return;let i=t,s=n.let("valid",!1),a=n.let("passing",null),d=n.name("_valid");e.setParams({passing:a}),n.block(u),e.result(s,()=>e.reset(),()=>e.error(!0));function u(){i.forEach((c,l)=>{let p;(0,uqe.alwaysValidSchema)(o,c)?n.var(d,!0):p=e.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},d),l>0&&n.if((0,Sb._)`${d} && ${s}`).assign(s,!1).assign(a,(0,Sb._)`[${a}, ${l}]`).else(),n.if(d,()=>{n.assign(s,!0),n.assign(a,l),p&&e.mergeEvaluated(p,Sb.Name)})})}}};eD.default=lqe});var yZ=ee(nD=>{"use strict";Object.defineProperty(nD,"__esModule",{value:!0});var pqe=Rn(),fqe={keyword:"allOf",schemaType:"array",code(e){let{gen:n,schema:t,it:r}=e;if(!Array.isArray(t))throw new Error("ajv implementation error");let o=n.name("valid");t.forEach((i,s)=>{if((0,pqe.alwaysValidSchema)(r,i))return;let a=e.subschema({keyword:"allOf",schemaProp:s},o);e.ok(o),e.mergeEvaluated(a)})}};nD.default=fqe});var bZ=ee(tD=>{"use strict";Object.defineProperty(tD,"__esModule",{value:!0});var kb=ln(),_Z=Rn(),mqe={message:({params:e})=>(0,kb.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,kb._)`{failingKeyword: ${e.ifClause}}`},hqe={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:mqe,code(e){let{gen:n,parentSchema:t,it:r}=e;t.then===void 0&&t.else===void 0&&(0,_Z.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let o=xZ(r,"then"),i=xZ(r,"else");if(!o&&!i)return;let s=n.let("valid",!0),a=n.name("_valid");if(d(),e.reset(),o&&i){let c=n.let("ifClause");e.setParams({ifClause:c}),n.if(a,u("then",c),u("else",c))}else o?n.if(a,u("then")):n.if((0,kb.not)(a),u("else"));e.pass(s,()=>e.error(!0));function d(){let c=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);e.mergeEvaluated(c)}function u(c,l){return()=>{let p=e.subschema({keyword:c},a);n.assign(s,a),e.mergeValidEvaluated(p,s),l?n.assign(l,(0,kb._)`${c}`):e.setParams({ifClause:c})}}}};function xZ(e,n){let t=e.schema[n];return t!==void 0&&!(0,_Z.alwaysValidSchema)(e,t)}tD.default=hqe});var wZ=ee(rD=>{"use strict";Object.defineProperty(rD,"__esModule",{value:!0});var gqe=Rn(),yqe={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:n,it:t}){n.if===void 0&&(0,gqe.checkStrictMode)(t,`"${e}" without "if" is ignored`)}};rD.default=yqe});var vZ=ee(oD=>{"use strict";Object.defineProperty(oD,"__esModule",{value:!0});var xqe=z1(),_qe=XG(),bqe=N1(),wqe=eZ(),vqe=nZ(),Sqe=oZ(),kqe=sZ(),Cqe=H1(),Tqe=uZ(),Pqe=fZ(),Iqe=mZ(),Rqe=hZ(),Eqe=gZ(),Dqe=yZ(),Mqe=bZ(),Aqe=wZ();function Oqe(e=!1){let n=[Iqe.default,Rqe.default,Eqe.default,Dqe.default,Mqe.default,Aqe.default,kqe.default,Cqe.default,Sqe.default,Tqe.default,Pqe.default];return e?n.push(_qe.default,wqe.default):n.push(xqe.default,bqe.default),n.push(vqe.default),n}oD.default=Oqe});var SZ=ee(iD=>{"use strict";Object.defineProperty(iD,"__esModule",{value:!0});var wt=ln(),$qe={message:({schemaCode:e})=>(0,wt.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,wt._)`{format: ${e}}`},Lqe={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:$qe,code(e,n){let{gen:t,data:r,$data:o,schema:i,schemaCode:s,it:a}=e,{opts:d,errSchemaPath:u,schemaEnv:c,self:l}=a;if(!d.validateFormats)return;o?p():m();function p(){let f=t.scopeValue("formats",{ref:l.formats,code:d.code.formats}),y=t.const("fDef",(0,wt._)`${f}[${s}]`),_=t.let("fType"),w=t.let("format");t.if((0,wt._)`typeof ${y} == "object" && !(${y} instanceof RegExp)`,()=>t.assign(_,(0,wt._)`${y}.type || "string"`).assign(w,(0,wt._)`${y}.validate`),()=>t.assign(_,(0,wt._)`"string"`).assign(w,y)),e.fail$data((0,wt.or)(S(),v()));function S(){return d.strictSchema===!1?wt.nil:(0,wt._)`${s} && !${w}`}function v(){let b=c.$async?(0,wt._)`(${y}.async ? await ${w}(${r}) : ${w}(${r}))`:(0,wt._)`${w}(${r})`,k=(0,wt._)`(typeof ${w} == "function" ? ${b} : ${w}.test(${r}))`;return(0,wt._)`${w} && ${w} !== true && ${_} === ${n} && !${k}`}}function m(){let f=l.formats[i];if(!f){S();return}if(f===!0)return;let[y,_,w]=v(f);y===n&&e.pass(b());function S(){if(d.strictSchema===!1){l.logger.warn(k());return}throw new Error(k());function k(){return`unknown format "${i}" ignored in schema at path "${u}"`}}function v(k){let R=k instanceof RegExp?(0,wt.regexpCode)(k):d.code.formats?(0,wt._)`${d.code.formats}${(0,wt.getProperty)(i)}`:void 0,P=t.scopeValue("formats",{key:i,ref:k,code:R});return typeof k=="object"&&!(k instanceof RegExp)?[k.type||"string",k.validate,(0,wt._)`${P}.validate`]:["string",k,P]}function b(){if(typeof f=="object"&&!(f instanceof RegExp)&&f.async){if(!c.$async)throw new Error("async format in sync schema");return(0,wt._)`await ${w}(${r})`}return typeof _=="function"?(0,wt._)`${w}(${r})`:(0,wt._)`${w}.test(${r})`}}}};iD.default=Lqe});var kZ=ee(sD=>{"use strict";Object.defineProperty(sD,"__esModule",{value:!0});var jqe=SZ(),Fqe=[jqe.default];sD.default=Fqe});var CZ=ee($l=>{"use strict";Object.defineProperty($l,"__esModule",{value:!0});$l.contentVocabulary=$l.metadataVocabulary=void 0;$l.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];$l.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var PZ=ee(aD=>{"use strict";Object.defineProperty(aD,"__esModule",{value:!0});var qqe=OG(),zqe=HG(),Nqe=vZ(),Uqe=kZ(),TZ=CZ(),Bqe=[qqe.default,zqe.default,(0,Nqe.default)(),Uqe.default,TZ.metadataVocabulary,TZ.contentVocabulary];aD.default=Bqe});var RZ=ee(Cb=>{"use strict";Object.defineProperty(Cb,"__esModule",{value:!0});Cb.DiscrError=void 0;var IZ;(function(e){e.Tag="tag",e.Mapping="mapping"})(IZ||(Cb.DiscrError=IZ={}))});var DZ=ee(uD=>{"use strict";Object.defineProperty(uD,"__esModule",{value:!0});var Ll=ln(),dD=RZ(),EZ=sb(),Jqe=nh(),Kqe=Rn(),Vqe={message:({params:{discrError:e,tagName:n}})=>e===dD.DiscrError.Tag?`tag "${n}" must be string`:`value of tag "${n}" must be in oneOf`,params:({params:{discrError:e,tag:n,tagName:t}})=>(0,Ll._)`{error: ${e}, tag: ${t}, tagValue: ${n}}`},Wqe={keyword:"discriminator",type:"object",schemaType:"object",error:Vqe,code(e){let{gen:n,data:t,schema:r,parentSchema:o,it:i}=e,{oneOf:s}=o;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=r.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!s)throw new Error("discriminator: requires oneOf keyword");let d=n.let("valid",!1),u=n.const("tag",(0,Ll._)`${t}${(0,Ll.getProperty)(a)}`);n.if((0,Ll._)`typeof ${u} == "string"`,()=>c(),()=>e.error(!1,{discrError:dD.DiscrError.Tag,tag:u,tagName:a})),e.ok(d);function c(){let m=p();n.if(!1);for(let f in m)n.elseIf((0,Ll._)`${u} === ${f}`),n.assign(d,l(m[f]));n.else(),e.error(!1,{discrError:dD.DiscrError.Mapping,tag:u,tagName:a}),n.endIf()}function l(m){let f=n.name("valid"),y=e.subschema({keyword:"oneOf",schemaProp:m},f);return e.mergeEvaluated(y,Ll.Name),f}function p(){var m;let f={},y=w(o),_=!0;for(let b=0;b<s.length;b++){let k=s[b];if(k?.$ref&&!(0,Kqe.schemaHasRulesButRef)(k,i.self.RULES)){let P=k.$ref;if(k=EZ.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,P),k instanceof EZ.SchemaEnv&&(k=k.schema),k===void 0)throw new Jqe.default(i.opts.uriResolver,i.baseId,P)}let R=(m=k?.properties)===null||m===void 0?void 0:m[a];if(typeof R!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${a}"`);_=_&&(y||w(k)),S(R,b)}if(!_)throw new Error(`discriminator: "${a}" must be required`);return f;function w({required:b}){return Array.isArray(b)&&b.includes(a)}function S(b,k){if(b.const)v(b.const,k);else if(b.enum)for(let R of b.enum)v(R,k);else throw new Error(`discriminator: "properties/${a}" must have "const" or "enum"`)}function v(b,k){if(typeof b!="string"||b in f)throw new Error(`discriminator: "${a}" values must be unique strings`);f[b]=k}}}};uD.default=Wqe});var MZ=ee(($dn,Hqe)=>{Hqe.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var lD=ee((st,cD)=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.MissingRefError=st.ValidationError=st.CodeGen=st.Name=st.nil=st.stringify=st.str=st._=st.KeywordCxt=st.Ajv=void 0;var Gqe=IG(),Zqe=PZ(),Qqe=DZ(),AZ=MZ(),Xqe=["/properties"],Tb="http://json-schema.org/draft-07/schema",jl=class extends Gqe.default{_addVocabularies(){super._addVocabularies(),Zqe.default.forEach(n=>this.addVocabulary(n)),this.opts.discriminator&&this.addKeyword(Qqe.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let n=this.opts.$data?this.$dataMetaSchema(AZ,Xqe):AZ;this.addMetaSchema(n,Tb,!1),this.refs["http://json-schema.org/schema"]=Tb}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Tb)?Tb:void 0)}};st.Ajv=jl;cD.exports=st=jl;cD.exports.Ajv=jl;Object.defineProperty(st,"__esModule",{value:!0});st.default=jl;var Yqe=eh();Object.defineProperty(st,"KeywordCxt",{enumerable:!0,get:function(){return Yqe.KeywordCxt}});var Fl=ln();Object.defineProperty(st,"_",{enumerable:!0,get:function(){return Fl._}});Object.defineProperty(st,"str",{enumerable:!0,get:function(){return Fl.str}});Object.defineProperty(st,"stringify",{enumerable:!0,get:function(){return Fl.stringify}});Object.defineProperty(st,"nil",{enumerable:!0,get:function(){return Fl.nil}});Object.defineProperty(st,"Name",{enumerable:!0,get:function(){return Fl.Name}});Object.defineProperty(st,"CodeGen",{enumerable:!0,get:function(){return Fl.CodeGen}});var eze=ob();Object.defineProperty(st,"ValidationError",{enumerable:!0,get:function(){return eze.default}});var nze=nh();Object.defineProperty(st,"MissingRefError",{enumerable:!0,get:function(){return nze.default}})});var NZ=ee(Bi=>{"use strict";Object.defineProperty(Bi,"__esModule",{value:!0});Bi.formatNames=Bi.fastFormats=Bi.fullFormats=void 0;function Ui(e,n){return{validate:e,compare:n}}Bi.fullFormats={date:Ui(jZ,hD),time:Ui(fD(!0),gD),"date-time":Ui(OZ(!0),qZ),"iso-time":Ui(fD(),FZ),"iso-date-time":Ui(OZ(),zZ),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:aze,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:mze,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:dze,int32:{type:"number",validate:lze},int64:{type:"number",validate:pze},float:{type:"number",validate:LZ},double:{type:"number",validate:LZ},password:!0,binary:!0};Bi.fastFormats={...Bi.fullFormats,date:Ui(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,hD),time:Ui(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,gD),"date-time":Ui(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,qZ),"iso-time":Ui(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,FZ),"iso-date-time":Ui(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,zZ),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};Bi.formatNames=Object.keys(Bi.fullFormats);function tze(e){return e%4===0&&(e%100!==0||e%400===0)}var rze=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,oze=[0,31,28,31,30,31,30,31,31,30,31,30,31];function jZ(e){let n=rze.exec(e);if(!n)return!1;let t=+n[1],r=+n[2],o=+n[3];return r>=1&&r<=12&&o>=1&&o<=(r===2&&tze(t)?29:oze[r])}function hD(e,n){if(e&&n)return e>n?1:e<n?-1:0}var pD=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function fD(e){return function(t){let r=pD.exec(t);if(!r)return!1;let o=+r[1],i=+r[2],s=+r[3],a=r[4],d=r[5]==="-"?-1:1,u=+(r[6]||0),c=+(r[7]||0);if(u>23||c>59||e&&!a)return!1;if(o<=23&&i<=59&&s<60)return!0;let l=i-c*d,p=o-u*d-(l<0?1:0);return(p===23||p===-1)&&(l===59||l===-1)&&s<61}}function gD(e,n){if(!(e&&n))return;let t=new Date("2020-01-01T"+e).valueOf(),r=new Date("2020-01-01T"+n).valueOf();if(t&&r)return t-r}function FZ(e,n){if(!(e&&n))return;let t=pD.exec(e),r=pD.exec(n);if(t&&r)return e=t[1]+t[2]+t[3],n=r[1]+r[2]+r[3],e>n?1:e<n?-1:0}var mD=/t|\s/i;function OZ(e){let n=fD(e);return function(r){let o=r.split(mD);return o.length===2&&jZ(o[0])&&n(o[1])}}function qZ(e,n){if(!(e&&n))return;let t=new Date(e).valueOf(),r=new Date(n).valueOf();if(t&&r)return t-r}function zZ(e,n){if(!(e&&n))return;let[t,r]=e.split(mD),[o,i]=n.split(mD),s=hD(t,o);if(s!==void 0)return s||gD(r,i)}var ize=/\/|:/,sze=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function aze(e){return ize.test(e)&&sze.test(e)}var $Z=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function dze(e){return $Z.lastIndex=0,$Z.test(e)}var uze=-(2**31),cze=2**31-1;function lze(e){return Number.isInteger(e)&&e<=cze&&e>=uze}function pze(e){return Number.isInteger(e)}function LZ(){return!0}var fze=/[^\\]\\Z/;function mze(e){if(fze.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var UZ=ee(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});ql.formatLimitDefinition=void 0;var hze=lD(),fi=ln(),va=fi.operators,Pb={formatMaximum:{okStr:"<=",ok:va.LTE,fail:va.GT},formatMinimum:{okStr:">=",ok:va.GTE,fail:va.LT},formatExclusiveMaximum:{okStr:"<",ok:va.LT,fail:va.GTE},formatExclusiveMinimum:{okStr:">",ok:va.GT,fail:va.LTE}},gze={message:({keyword:e,schemaCode:n})=>(0,fi.str)`should be ${Pb[e].okStr} ${n}`,params:({keyword:e,schemaCode:n})=>(0,fi._)`{comparison: ${Pb[e].okStr}, limit: ${n}}`};ql.formatLimitDefinition={keyword:Object.keys(Pb),type:"string",schemaType:"string",$data:!0,error:gze,code(e){let{gen:n,data:t,schemaCode:r,keyword:o,it:i}=e,{opts:s,self:a}=i;if(!s.validateFormats)return;let d=new hze.KeywordCxt(i,a.RULES.all.format.definition,"format");d.$data?u():c();function u(){let p=n.scopeValue("formats",{ref:a.formats,code:s.code.formats}),m=n.const("fmt",(0,fi._)`${p}[${d.schemaCode}]`);e.fail$data((0,fi.or)((0,fi._)`typeof ${m} != "object"`,(0,fi._)`${m} instanceof RegExp`,(0,fi._)`typeof ${m}.compare != "function"`,l(m)))}function c(){let p=d.schema,m=a.formats[p];if(!m||m===!0)return;if(typeof m!="object"||m instanceof RegExp||typeof m.compare!="function")throw new Error(`"${o}": format "${p}" does not define "compare" function`);let f=n.scopeValue("formats",{key:p,ref:m,code:s.code.formats?(0,fi._)`${s.code.formats}${(0,fi.getProperty)(p)}`:void 0});e.fail$data(l(f))}function l(p){return(0,fi._)`${p}.compare(${t}, ${r}) ${Pb[o].fail} 0`}},dependencies:["format"]};var yze=e=>(e.addKeyword(ql.formatLimitDefinition),e);ql.default=yze});var VZ=ee((hh,KZ)=>{"use strict";Object.defineProperty(hh,"__esModule",{value:!0});var zl=NZ(),xze=UZ(),yD=ln(),BZ=new yD.Name("fullFormats"),_ze=new yD.Name("fastFormats"),xD=(e,n={keywords:!0})=>{if(Array.isArray(n))return JZ(e,n,zl.fullFormats,BZ),e;let[t,r]=n.mode==="fast"?[zl.fastFormats,_ze]:[zl.fullFormats,BZ],o=n.formats||zl.formatNames;return JZ(e,o,t,r),n.keywords&&(0,xze.default)(e),e};xD.get=(e,n="full")=>{let r=(n==="fast"?zl.fastFormats:zl.fullFormats)[e];if(!r)throw new Error(`Unknown format "${e}"`);return r};function JZ(e,n,t,r){var o,i;(o=(i=e.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,yD._)`require("ajv-formats/dist/formats").${r}`);for(let s of n)e.addFormat(s,t[s])}KZ.exports=hh=xD;Object.defineProperty(hh,"__esModule",{value:!0});hh.default=xD});var cr,Yr,PD,du,Ds,_h,vt,AQ=F(()=>{cr=(e,n=[])=>e.name==="up"||n.includes("vim")&&e.name==="k"||n.includes("emacs")&&e.ctrl&&e.name==="p",Yr=(e,n=[])=>e.name==="down"||n.includes("vim")&&e.name==="j"||n.includes("emacs")&&e.ctrl&&e.name==="n",PD=e=>e.name==="space",du=e=>e.name==="backspace",Ds=e=>e.name==="tab",_h=e=>"1234567890".includes(e.name),vt=e=>e.name==="enter"||e.name==="return"});var jb,Fb,bh,qb,Ki,zb=F(()=>{jb=class extends Error{name="AbortPromptError";message="Prompt was aborted";constructor(n){super(),this.cause=n?.cause}},Fb=class extends Error{name="CancelPromptError";message="Prompt was canceled"},bh=class extends Error{name="ExitPromptError"},qb=class extends Error{name="HookError"},Ki=class extends Error{name="ValidationError"}});import{AsyncLocalStorage as O4e,AsyncResource as $4e}from"node:async_hooks";function L4e(e){return{rl:e,hooks:[],hooksCleanup:[],hooksEffect:[],index:0,handleChange(){}}}function $Q(e,n){let t=L4e(e);return OQ.run(t,()=>{function r(o){t.handleChange=()=>{t.index=0,o()},t.handleChange()}return n(r)})}function uu(){let e=OQ.getStore();if(!e)throw new qb("[Inquirer] Hook functions can only be called from within a prompt");return e}function ID(){return uu().rl}function RD(e){let n=(...t)=>{let r=uu(),o=!1,i=r.handleChange;r.handleChange=()=>{o=!0};let s=e(...t);return o&&i(),r.handleChange=i,s};return $4e.bind(n)}function Bl(e){let n=uu(),{index:t}=n,r={get(){return n.hooks[t]},set(i){n.hooks[t]=i},initialized:t in n.hooks},o=e(r);return n.index++,o}function LQ(){uu().handleChange()}var OQ,cu,lu=F(()=>{zb();OQ=new O4e;cu={queue(e){let n=uu(),{index:t}=n;n.hooksEffect.push(()=>{n.hooksCleanup[t]?.();let r=e(ID());if(r!=null&&typeof r!="function")throw new Ki("useEffect return value must be a cleanup function or nothing.");n.hooksCleanup[t]=r})},run(){let e=uu();RD(()=>{e.hooksEffect.forEach(n=>{n()}),e.hooksEffect.length=0})()},clearAll(){let e=uu();e.hooksCleanup.forEach(n=>{n?.()}),e.hooksEffect.length=0,e.hooksCleanup.length=0}}});import{AsyncResource as j4e}from"node:async_hooks";function We(e){return Bl(n=>{let t=j4e.bind(function(i){n.get()!==i&&(n.set(i),LQ())});if(n.initialized)return[n.get(),t];let r=typeof e=="function"?e():e;return n.set(r),[r,t]})}var Nb=F(()=>{lu()});function po(e,n){Bl(t=>{let r=t.get();(!Array.isArray(r)||n.some((i,s)=>!Object.is(i,r[s])))&&cu.queue(e),t.set(n)})}var Ub=F(()=>{lu()});var Ca=ee((acn,jQ)=>{var F4e=La("node:tty"),q4e=F4e?.WriteStream?.prototype?.hasColors?.()??!1,un=(e,n)=>{if(!q4e)return o=>o;let t=`\x1B[${e}m`,r=`\x1B[${n}m`;return o=>{let i=o+"",s=i.indexOf(r);if(s===-1)return t+i+r;let a=t,d=0,c=(n===22?r:"")+t;for(;s!==-1;)a+=i.slice(d,s)+c,d=s+r.length,s=i.indexOf(r,d);return a+=i.slice(d)+r,a}},rn={};rn.reset=un(0,0);rn.bold=un(1,22);rn.dim=un(2,22);rn.italic=un(3,23);rn.underline=un(4,24);rn.overline=un(53,55);rn.inverse=un(7,27);rn.hidden=un(8,28);rn.strikethrough=un(9,29);rn.black=un(30,39);rn.red=un(31,39);rn.green=un(32,39);rn.yellow=un(33,39);rn.blue=un(34,39);rn.magenta=un(35,39);rn.cyan=un(36,39);rn.white=un(37,39);rn.gray=un(90,39);rn.bgBlack=un(40,49);rn.bgRed=un(41,49);rn.bgGreen=un(42,49);rn.bgYellow=un(43,49);rn.bgBlue=un(44,49);rn.bgMagenta=un(45,49);rn.bgCyan=un(46,49);rn.bgWhite=un(47,49);rn.bgGray=un(100,49);rn.redBright=un(91,39);rn.greenBright=un(92,39);rn.yellowBright=un(93,39);rn.blueBright=un(94,39);rn.magentaBright=un(95,39);rn.cyanBright=un(96,39);rn.whiteBright=un(97,39);rn.bgRedBright=un(101,49);rn.bgGreenBright=un(102,49);rn.bgYellowBright=un(103,49);rn.bgBlueBright=un(104,49);rn.bgMagentaBright=un(105,49);rn.bgCyanBright=un(106,49);rn.bgWhiteBright=un(107,49);jQ.exports=rn});import Vi from"node:process";function z4e(){return Vi.platform!=="win32"?Vi.env.TERM!=="linux":!!Vi.env.WT_SESSION||!!Vi.env.TERMINUS_SUBLIME||Vi.env.ConEmuTask==="{cmd::Cmder}"||Vi.env.TERM_PROGRAM==="Terminus-Sublime"||Vi.env.TERM_PROGRAM==="vscode"||Vi.env.TERM==="xterm-256color"||Vi.env.TERM==="alacritty"||Vi.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var FQ,qQ,N4e,U4e,B4e,J4e,K4e,$o,ucn,Jl=F(()=>{FQ={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},qQ={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},N4e={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},U4e={...FQ,...qQ},B4e={...FQ,...N4e},J4e=z4e(),K4e=J4e?U4e:B4e,$o=K4e,ucn=Object.entries(qQ)});var Lo,zQ,NQ=F(()=>{Lo=Fr(Ca(),1);Jl();zQ={prefix:{idle:Lo.default.blue("?"),done:Lo.default.green($o.tick)},spinner:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"].map(e=>Lo.default.yellow(e))},style:{answer:Lo.default.cyan,message:Lo.default.bold,error:e=>Lo.default.red(`> ${e}`),defaultAnswer:e=>Lo.default.dim(`(${e})`),help:Lo.default.dim,highlight:Lo.default.cyan,key:e=>Lo.default.cyan(Lo.default.bold(`<${e}>`))}}});function UQ(e){if(typeof e!="object"||e===null)return!1;let n=e;for(;Object.getPrototypeOf(n)!==null;)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(e)===n}function BQ(...e){let n={};for(let t of e)for(let[r,o]of Object.entries(t)){let i=n[r];n[r]=UQ(i)&&UQ(o)?BQ(i,o):o}return n}function mt(...e){let n=[zQ,...e.filter(t=>t!=null)];return BQ(...n)}var ED=F(()=>{NQ()});function St({status:e="idle",theme:n}){let[t,r]=We(!1),[o,i]=We(0),{prefix:s,spinner:a}=mt(n);return po(()=>{if(e==="loading"){let u,c=-1,l=setTimeout(()=>{r(!0),u=setInterval(()=>{c=c+1,i(c%a.frames.length)},a.interval)},300);return()=>{clearTimeout(l),clearInterval(u)}}else r(!1)},[e]),t?a.frames[o]:typeof s=="string"?s:s[e==="loading"?"idle":e]??s.idle}var JQ=F(()=>{Nb();Ub();ED()});function eo(e,n){return Bl(t=>{let r=t.get();if(!r||r.dependencies.length!==n.length||r.dependencies.some((o,i)=>o!==n[i])){let o=e();return t.set({value:o,dependencies:n}),o}return r.value})}var KQ=F(()=>{lu()});function pu(e){return We({current:e})[0]}var Bb=F(()=>{Nb()});function kt(e){let n=pu(e);n.current=e,po(t=>{let r=!1,o=RD((i,s)=>{r||n.current(s,t)});return t.input.on("keypress",o),()=>{r=!0,t.input.removeListener("keypress",o)}},[])}var VQ=F(()=>{Bb();Ub();lu()});var HQ=ee((Pcn,WQ)=>{"use strict";WQ.exports=W4e;function V4e(e){let n={defaultWidth:0,output:process.stdout,tty:La("tty")};return e?(Object.keys(n).forEach(function(t){e[t]||(e[t]=n[t])}),e):n}function W4e(e){let n=V4e(e);if(n.output.getWindowSize)return n.output.getWindowSize()[0]||n.defaultWidth;if(n.tty.getWindowSize)return n.tty.getWindowSize()[1]||n.defaultWidth;if(n.output.columns)return n.output.columns;if(process.env.CLI_WIDTH){let t=parseInt(process.env.CLI_WIDTH,10);if(!isNaN(t)&&t!==0)return t}return n.defaultWidth}});var ZQ=ee((Icn,GQ)=>{"use strict";GQ.exports=({onlyFirst:e=!1}={})=>{let n=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(n,e?void 0:"g")}});var DD=ee((Rcn,QQ)=>{"use strict";var H4e=ZQ();QQ.exports=e=>typeof e=="string"?e.replace(H4e(),""):e});var YQ=ee((Ecn,MD)=>{"use strict";var XQ=e=>Number.isNaN(e)?!1:e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141);MD.exports=XQ;MD.exports.default=XQ});var nX=ee((Dcn,eX)=>{"use strict";eX.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var rX=ee((Mcn,AD)=>{"use strict";var G4e=DD(),Z4e=YQ(),Q4e=nX(),tX=e=>{if(typeof e!="string"||e.length===0||(e=G4e(e),e.length===0))return 0;e=e.replace(Q4e()," ");let n=0;for(let t=0;t<e.length;t++){let r=e.codePointAt(t);r<=31||r>=127&&r<=159||r>=768&&r<=879||(r>65535&&t++,n+=Z4e(r)?2:1)}return n};AD.exports=tX;AD.exports.default=tX});var iX=ee((Acn,oX)=>{"use strict";oX.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var OD=ee((Ocn,aX)=>{var wh=iX(),sX={};for(let e of Object.keys(wh))sX[wh[e]]=e;var Me={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};aX.exports=Me;for(let e of Object.keys(Me)){if(!("channels"in Me[e]))throw new Error("missing channels property: "+e);if(!("labels"in Me[e]))throw new Error("missing channel labels property: "+e);if(Me[e].labels.length!==Me[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:n,labels:t}=Me[e];delete Me[e].channels,delete Me[e].labels,Object.defineProperty(Me[e],"channels",{value:n}),Object.defineProperty(Me[e],"labels",{value:t})}Me.rgb.hsl=function(e){let n=e[0]/255,t=e[1]/255,r=e[2]/255,o=Math.min(n,t,r),i=Math.max(n,t,r),s=i-o,a,d;i===o?a=0:n===i?a=(t-r)/s:t===i?a=2+(r-n)/s:r===i&&(a=4+(n-t)/s),a=Math.min(a*60,360),a<0&&(a+=360);let u=(o+i)/2;return i===o?d=0:u<=.5?d=s/(i+o):d=s/(2-i-o),[a,d*100,u*100]};Me.rgb.hsv=function(e){let n,t,r,o,i,s=e[0]/255,a=e[1]/255,d=e[2]/255,u=Math.max(s,a,d),c=u-Math.min(s,a,d),l=function(p){return(u-p)/6/c+1/2};return c===0?(o=0,i=0):(i=c/u,n=l(s),t=l(a),r=l(d),s===u?o=r-t:a===u?o=1/3+n-r:d===u&&(o=2/3+t-n),o<0?o+=1:o>1&&(o-=1)),[o*360,i*100,u*100]};Me.rgb.hwb=function(e){let n=e[0],t=e[1],r=e[2],o=Me.rgb.hsl(e)[0],i=1/255*Math.min(n,Math.min(t,r));return r=1-1/255*Math.max(n,Math.max(t,r)),[o,i*100,r*100]};Me.rgb.cmyk=function(e){let n=e[0]/255,t=e[1]/255,r=e[2]/255,o=Math.min(1-n,1-t,1-r),i=(1-n-o)/(1-o)||0,s=(1-t-o)/(1-o)||0,a=(1-r-o)/(1-o)||0;return[i*100,s*100,a*100,o*100]};function X4e(e,n){return(e[0]-n[0])**2+(e[1]-n[1])**2+(e[2]-n[2])**2}Me.rgb.keyword=function(e){let n=sX[e];if(n)return n;let t=1/0,r;for(let o of Object.keys(wh)){let i=wh[o],s=X4e(e,i);s<t&&(t=s,r=o)}return r};Me.keyword.rgb=function(e){return wh[e]};Me.rgb.xyz=function(e){let n=e[0]/255,t=e[1]/255,r=e[2]/255;n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let o=n*.4124+t*.3576+r*.1805,i=n*.2126+t*.7152+r*.0722,s=n*.0193+t*.1192+r*.9505;return[o*100,i*100,s*100]};Me.rgb.lab=function(e){let n=Me.rgb.xyz(e),t=n[0],r=n[1],o=n[2];t/=95.047,r/=100,o/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;let i=116*r-16,s=500*(t-r),a=200*(r-o);return[i,s,a]};Me.hsl.rgb=function(e){let n=e[0]/360,t=e[1]/100,r=e[2]/100,o,i,s;if(t===0)return s=r*255,[s,s,s];r<.5?o=r*(1+t):o=r+t-r*t;let a=2*r-o,d=[0,0,0];for(let u=0;u<3;u++)i=n+1/3*-(u-1),i<0&&i++,i>1&&i--,6*i<1?s=a+(o-a)*6*i:2*i<1?s=o:3*i<2?s=a+(o-a)*(2/3-i)*6:s=a,d[u]=s*255;return d};Me.hsl.hsv=function(e){let n=e[0],t=e[1]/100,r=e[2]/100,o=t,i=Math.max(r,.01);r*=2,t*=r<=1?r:2-r,o*=i<=1?i:2-i;let s=(r+t)/2,a=r===0?2*o/(i+o):2*t/(r+t);return[n,a*100,s*100]};Me.hsv.rgb=function(e){let n=e[0]/60,t=e[1]/100,r=e[2]/100,o=Math.floor(n)%6,i=n-Math.floor(n),s=255*r*(1-t),a=255*r*(1-t*i),d=255*r*(1-t*(1-i));switch(r*=255,o){case 0:return[r,d,s];case 1:return[a,r,s];case 2:return[s,r,d];case 3:return[s,a,r];case 4:return[d,s,r];case 5:return[r,s,a]}};Me.hsv.hsl=function(e){let n=e[0],t=e[1]/100,r=e[2]/100,o=Math.max(r,.01),i,s;s=(2-t)*r;let a=(2-t)*o;return i=t*o,i/=a<=1?a:2-a,i=i||0,s/=2,[n,i*100,s*100]};Me.hwb.rgb=function(e){let n=e[0]/360,t=e[1]/100,r=e[2]/100,o=t+r,i;o>1&&(t/=o,r/=o);let s=Math.floor(6*n),a=1-r;i=6*n-s,(s&1)!==0&&(i=1-i);let d=t+i*(a-t),u,c,l;switch(s){default:case 6:case 0:u=a,c=d,l=t;break;case 1:u=d,c=a,l=t;break;case 2:u=t,c=a,l=d;break;case 3:u=t,c=d,l=a;break;case 4:u=d,c=t,l=a;break;case 5:u=a,c=t,l=d;break}return[u*255,c*255,l*255]};Me.cmyk.rgb=function(e){let n=e[0]/100,t=e[1]/100,r=e[2]/100,o=e[3]/100,i=1-Math.min(1,n*(1-o)+o),s=1-Math.min(1,t*(1-o)+o),a=1-Math.min(1,r*(1-o)+o);return[i*255,s*255,a*255]};Me.xyz.rgb=function(e){let n=e[0]/100,t=e[1]/100,r=e[2]/100,o,i,s;return o=n*3.2406+t*-1.5372+r*-.4986,i=n*-.9689+t*1.8758+r*.0415,s=n*.0557+t*-.204+r*1.057,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,i=i>.0031308?1.055*i**(1/2.4)-.055:i*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=Math.min(Math.max(0,o),1),i=Math.min(Math.max(0,i),1),s=Math.min(Math.max(0,s),1),[o*255,i*255,s*255]};Me.xyz.lab=function(e){let n=e[0],t=e[1],r=e[2];n/=95.047,t/=100,r/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;let o=116*t-16,i=500*(n-t),s=200*(t-r);return[o,i,s]};Me.lab.xyz=function(e){let n=e[0],t=e[1],r=e[2],o,i,s;i=(n+16)/116,o=t/500+i,s=i-r/200;let a=i**3,d=o**3,u=s**3;return i=a>.008856?a:(i-16/116)/7.787,o=d>.008856?d:(o-16/116)/7.787,s=u>.008856?u:(s-16/116)/7.787,o*=95.047,i*=100,s*=108.883,[o,i,s]};Me.lab.lch=function(e){let n=e[0],t=e[1],r=e[2],o;o=Math.atan2(r,t)*360/2/Math.PI,o<0&&(o+=360);let s=Math.sqrt(t*t+r*r);return[n,s,o]};Me.lch.lab=function(e){let n=e[0],t=e[1],o=e[2]/360*2*Math.PI,i=t*Math.cos(o),s=t*Math.sin(o);return[n,i,s]};Me.rgb.ansi16=function(e,n=null){let[t,r,o]=e,i=n===null?Me.rgb.hsv(e)[2]:n;if(i=Math.round(i/50),i===0)return 30;let s=30+(Math.round(o/255)<<2|Math.round(r/255)<<1|Math.round(t/255));return i===2&&(s+=60),s};Me.hsv.ansi16=function(e){return Me.rgb.ansi16(Me.hsv.rgb(e),e[2])};Me.rgb.ansi256=function(e){let n=e[0],t=e[1],r=e[2];return n===t&&t===r?n<8?16:n>248?231:Math.round((n-8)/247*24)+232:16+36*Math.round(n/255*5)+6*Math.round(t/255*5)+Math.round(r/255*5)};Me.ansi16.rgb=function(e){let n=e%10;if(n===0||n===7)return e>50&&(n+=3.5),n=n/10.5*255,[n,n,n];let t=(~~(e>50)+1)*.5,r=(n&1)*t*255,o=(n>>1&1)*t*255,i=(n>>2&1)*t*255;return[r,o,i]};Me.ansi256.rgb=function(e){if(e>=232){let i=(e-232)*10+8;return[i,i,i]}e-=16;let n,t=Math.floor(e/36)/5*255,r=Math.floor((n=e%36)/6)/5*255,o=n%6/5*255;return[t,r,o]};Me.rgb.hex=function(e){let t=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};Me.hex.rgb=function(e){let n=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!n)return[0,0,0];let t=n[0];n[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let r=parseInt(t,16),o=r>>16&255,i=r>>8&255,s=r&255;return[o,i,s]};Me.rgb.hcg=function(e){let n=e[0]/255,t=e[1]/255,r=e[2]/255,o=Math.max(Math.max(n,t),r),i=Math.min(Math.min(n,t),r),s=o-i,a,d;return s<1?a=i/(1-s):a=0,s<=0?d=0:o===n?d=(t-r)/s%6:o===t?d=2+(r-n)/s:d=4+(n-t)/s,d/=6,d%=1,[d*360,s*100,a*100]};Me.hsl.hcg=function(e){let n=e[1]/100,t=e[2]/100,r=t<.5?2*n*t:2*n*(1-t),o=0;return r<1&&(o=(t-.5*r)/(1-r)),[e[0],r*100,o*100]};Me.hsv.hcg=function(e){let n=e[1]/100,t=e[2]/100,r=n*t,o=0;return r<1&&(o=(t-r)/(1-r)),[e[0],r*100,o*100]};Me.hcg.rgb=function(e){let n=e[0]/360,t=e[1]/100,r=e[2]/100;if(t===0)return[r*255,r*255,r*255];let o=[0,0,0],i=n%1*6,s=i%1,a=1-s,d=0;switch(Math.floor(i)){case 0:o[0]=1,o[1]=s,o[2]=0;break;case 1:o[0]=a,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=s;break;case 3:o[0]=0,o[1]=a,o[2]=1;break;case 4:o[0]=s,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=a}return d=(1-t)*r,[(t*o[0]+d)*255,(t*o[1]+d)*255,(t*o[2]+d)*255]};Me.hcg.hsv=function(e){let n=e[1]/100,t=e[2]/100,r=n+t*(1-n),o=0;return r>0&&(o=n/r),[e[0],o*100,r*100]};Me.hcg.hsl=function(e){let n=e[1]/100,r=e[2]/100*(1-n)+.5*n,o=0;return r>0&&r<.5?o=n/(2*r):r>=.5&&r<1&&(o=n/(2*(1-r))),[e[0],o*100,r*100]};Me.hcg.hwb=function(e){let n=e[1]/100,t=e[2]/100,r=n+t*(1-n);return[e[0],(r-n)*100,(1-r)*100]};Me.hwb.hcg=function(e){let n=e[1]/100,r=1-e[2]/100,o=r-n,i=0;return o<1&&(i=(r-o)/(1-o)),[e[0],o*100,i*100]};Me.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};Me.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};Me.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};Me.gray.hsl=function(e){return[0,0,e[0]]};Me.gray.hsv=Me.gray.hsl;Me.gray.hwb=function(e){return[0,100,e[0]]};Me.gray.cmyk=function(e){return[0,0,0,e[0]]};Me.gray.lab=function(e){return[e[0],0,0]};Me.gray.hex=function(e){let n=Math.round(e[0]/100*255)&255,r=((n<<16)+(n<<8)+n).toString(16).toUpperCase();return"000000".substring(r.length)+r};Me.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}});var uX=ee(($cn,dX)=>{var Jb=OD();function Y4e(){let e={},n=Object.keys(Jb);for(let t=n.length,r=0;r<t;r++)e[n[r]]={distance:-1,parent:null};return e}function eNe(e){let n=Y4e(),t=[e];for(n[e].distance=0;t.length;){let r=t.pop(),o=Object.keys(Jb[r]);for(let i=o.length,s=0;s<i;s++){let a=o[s],d=n[a];d.distance===-1&&(d.distance=n[r].distance+1,d.parent=r,t.unshift(a))}}return n}function nNe(e,n){return function(t){return n(e(t))}}function tNe(e,n){let t=[n[e].parent,e],r=Jb[n[e].parent][e],o=n[e].parent;for(;n[o].parent;)t.unshift(n[o].parent),r=nNe(Jb[n[o].parent][o],r),o=n[o].parent;return r.conversion=t,r}dX.exports=function(e){let n=eNe(e),t={},r=Object.keys(n);for(let o=r.length,i=0;i<o;i++){let s=r[i];n[s].parent!==null&&(t[s]=tNe(s,n))}return t}});var lX=ee((Lcn,cX)=>{var $D=OD(),rNe=uX(),Kl={},oNe=Object.keys($D);function iNe(e){let n=function(...t){let r=t[0];return r==null?r:(r.length>1&&(t=r),e(t))};return"conversion"in e&&(n.conversion=e.conversion),n}function sNe(e){let n=function(...t){let r=t[0];if(r==null)return r;r.length>1&&(t=r);let o=e(t);if(typeof o=="object")for(let i=o.length,s=0;s<i;s++)o[s]=Math.round(o[s]);return o};return"conversion"in e&&(n.conversion=e.conversion),n}oNe.forEach(e=>{Kl[e]={},Object.defineProperty(Kl[e],"channels",{value:$D[e].channels}),Object.defineProperty(Kl[e],"labels",{value:$D[e].labels});let n=rNe(e);Object.keys(n).forEach(r=>{let o=n[r];Kl[e][r]=sNe(o),Kl[e][r].raw=iNe(o)})});cX.exports=Kl});var yX=ee((jcn,gX)=>{"use strict";var pX=(e,n)=>(...t)=>`\x1B[${e(...t)+n}m`,fX=(e,n)=>(...t)=>{let r=e(...t);return`\x1B[${38+n};5;${r}m`},mX=(e,n)=>(...t)=>{let r=e(...t);return`\x1B[${38+n};2;${r[0]};${r[1]};${r[2]}m`},Kb=e=>e,hX=(e,n,t)=>[e,n,t],Vl=(e,n,t)=>{Object.defineProperty(e,n,{get:()=>{let r=t();return Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0}),r},enumerable:!0,configurable:!0})},LD,Wl=(e,n,t,r)=>{LD===void 0&&(LD=lX());let o=r?10:0,i={};for(let[s,a]of Object.entries(LD)){let d=s==="ansi16"?"ansi":s;s===n?i[d]=e(t,o):typeof a=="object"&&(i[d]=e(a[n],o))}return i};function aNe(){let e=new Map,n={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};n.color.gray=n.color.blackBright,n.bgColor.bgGray=n.bgColor.bgBlackBright,n.color.grey=n.color.blackBright,n.bgColor.bgGrey=n.bgColor.bgBlackBright;for(let[t,r]of Object.entries(n)){for(let[o,i]of Object.entries(r))n[o]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[o]=n[o],e.set(i[0],i[1]);Object.defineProperty(n,t,{value:r,enumerable:!1})}return Object.defineProperty(n,"codes",{value:e,enumerable:!1}),n.color.close="\x1B[39m",n.bgColor.close="\x1B[49m",Vl(n.color,"ansi",()=>Wl(pX,"ansi16",Kb,!1)),Vl(n.color,"ansi256",()=>Wl(fX,"ansi256",Kb,!1)),Vl(n.color,"ansi16m",()=>Wl(mX,"rgb",hX,!1)),Vl(n.bgColor,"ansi",()=>Wl(pX,"ansi16",Kb,!0)),Vl(n.bgColor,"ansi256",()=>Wl(fX,"ansi256",Kb,!0)),Vl(n.bgColor,"ansi16m",()=>Wl(mX,"rgb",hX,!0)),n}Object.defineProperty(gX,"exports",{enumerable:!0,get:aNe})});var bX=ee((Fcn,_X)=>{"use strict";var vh=rX(),dNe=DD(),uNe=yX(),FD=new Set(["\x1B","\x9B"]),cNe=39,xX=e=>`${FD.values().next().value}[${e}m`,lNe=e=>e.split(" ").map(n=>vh(n)),jD=(e,n,t)=>{let r=[...n],o=!1,i=vh(dNe(e[e.length-1]));for(let[s,a]of r.entries()){let d=vh(a);if(i+d<=t?e[e.length-1]+=a:(e.push(a),i=0),FD.has(a))o=!0;else if(o&&a==="m"){o=!1;continue}o||(i+=d,i===t&&s<r.length-1&&(e.push(""),i=0))}!i&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},pNe=e=>{let n=e.split(" "),t=n.length;for(;t>0&&!(vh(n[t-1])>0);)t--;return t===n.length?e:n.slice(0,t).join(" ")+n.slice(t).join("")},fNe=(e,n,t={})=>{if(t.trim!==!1&&e.trim()==="")return"";let r="",o="",i,s=lNe(e),a=[""];for(let[d,u]of e.split(" ").entries()){t.trim!==!1&&(a[a.length-1]=a[a.length-1].trimLeft());let c=vh(a[a.length-1]);if(d!==0&&(c>=n&&(t.wordWrap===!1||t.trim===!1)&&(a.push(""),c=0),(c>0||t.trim===!1)&&(a[a.length-1]+=" ",c++)),t.hard&&s[d]>n){let l=n-c,p=1+Math.floor((s[d]-l-1)/n);Math.floor((s[d]-1)/n)<p&&a.push(""),jD(a,u,n);continue}if(c+s[d]>n&&c>0&&s[d]>0){if(t.wordWrap===!1&&c<n){jD(a,u,n);continue}a.push("")}if(c+s[d]>n&&t.wordWrap===!1){jD(a,u,n);continue}a[a.length-1]+=u}t.trim!==!1&&(a=a.map(pNe)),r=a.join(`
1553
1553
  `);for(let[d,u]of[...r].entries()){if(o+=u,FD.has(u)){let l=parseFloat(/\d[^m]*/.exec(r.slice(d,d+4)));i=l===cNe?null:l}let c=uNe.codes.get(Number(i));i&&c&&(r[d+1]===`
1554
1554
  `?o+=xX(c):u===`
1555
1555
  `&&(o+=xX(i)))}return o};_X.exports=(e,n,t)=>String(e).normalize().replace(/\r\n/g,`
@@ -1581,7 +1581,7 @@ Open: ${e.verificationUri}
1581
1581
  `).trimEnd()}${Hl}`})});var aee=F(()=>{qX();WY();ZY();QY();YY();eee();ree();oee();iee();see()});function uee(e){let n=e.serviceUrl??Bt,t=e.fetchImpl??fetch;return{startEmailCode:async r=>Ah({serviceUrl:n,fetchImpl:t,path:"/api/v2/signup/email-code/start",method:"POST",body:{email:r.email,mode:r.mode,selected_tasks:r.selectedTasks??[]},render:q5e}),verifyEmailCode:async r=>Ah({serviceUrl:n,fetchImpl:t,path:"/api/v2/signup/email-code/verify",method:"POST",body:{pending_id:r.pendingId,code:r.code},render:z5e}),validateAuth:async r=>Ah({serviceUrl:n,fetchImpl:t,path:"/api/v2/signup/auth/validate",method:"GET",accessToken:r.accessToken,render:N5e}),completeMissionControl:async r=>Ah({serviceUrl:n,fetchImpl:t,path:"/api/v2/signup/mission-control/complete",method:"POST",accessToken:r.accessToken,body:{workspace_name:r.workspaceName,selected_project_paths:r.selectedProjectPaths,starter_project_path:r.starterProjectPath,selected_tasks:r.selectedTasks},render:U5e}),startMissionControlTasks:async r=>Ah({serviceUrl:n,fetchImpl:t,path:"/api/v2/signup/mission-control/start-tasks",method:"POST",accessToken:r.accessToken,body:{workspace_slug:r.workspaceSlug,office_channel_slug:r.officeChannelSlug,runner_id:r.runnerId,starter_project_path:r.starterProjectPath,threads:r.threads.map(o=>({thread_id:o.threadId,title:o.title,root_seq:o.rootSeq,thread_seq:o.threadSeq})),model:r.model,reasoning_effort:r.reasoningEffort},render:B5e})}}async function Ah(e){let n={accept:"application/json"};e.body!==void 0&&(n["content-type"]="application/json"),e.accessToken!==void 0&&(n.authorization=`Bearer ${e.accessToken}`);let t=await e.fetchImpl(new URL(e.path,e.serviceUrl),{method:e.method,headers:n,...e.body===void 0?{}:{body:JSON.stringify(e.body)}}),r=await t.text();if(!t.ok)throw j5e(t.status,r);let o=$5e(r,"Linzumi signup response");return e.render(o)}function $5e(e,n){try{return JSON.parse(e)}catch{throw new Error(`${n} was not valid JSON`)}}function L5e(e){let n=e.trim();return n===""?"":`: ${n.slice(0,240)}`}function j5e(e,n){let t=F5e(n);return t!==void 0?new Oh({status:e,code:t,message:t}):new Error(`Linzumi signup request failed with HTTP ${e}${L5e(n)}`)}function F5e(e){let n=e.trim();if(n!=="")try{let t=JSON.parse(n);if(typeof t!="object"||t===null||Array.isArray(t))return;let r=t.error;return typeof r=="string"&&r.trim()!==""?r:void 0}catch{return}}function q5e(e){let n=fo(e,"signup email-code start response");return{pendingId:Ht(n,"pending_id"),email:Ht(n,"email")}}function z5e(e){let n=fo(e,"signup email-code verify response");return{accessToken:Ht(n,"access_token"),refreshToken:Ht(n,"refresh_token"),expiresInSeconds:ep(n,"expires_in"),user:cee(to(n,"user")),isNewUser:H5e(n,"is_new_user"),privateWorkspaceDefault:wA(to(n,"private_workspace_default"))}}function N5e(e){let n=fo(e,"signup auth validate response");return{user:cee(to(n,"user")),privateWorkspaceDefault:wA(to(n,"private_workspace_default"))}}function U5e(e){let n=fo(e,"signup mission-control response"),t=fo(to(n,"channels"),"signup channels"),r=fo(to(n,"config"),"signup config"),o=Zi(r,"starter_project_path"),i=Zi(n,"mission_control_url");return{workspace:wA(to(n,"workspace")),channels:{office:dee(to(t,"office")),sayHi:dee(to(t,"say_hi"))},threads:bA(n,"threads").map(V5e),localRunnerToken:J5e(to(n,"local_runner_token")),launchUrl:Ht(n,"launch_url"),...i===void 0?{}:{missionControlUrl:i},config:{allowedCwds:bA(r,"allowed_cwds").map(s=>vA(s,"signup allowed cwd")),...o===void 0?{}:{starterProjectPath:o}}}}function B5e(e){let n=fo(e,"signup mission-control start-tasks response");return{tasks:bA(n,"tasks").map(K5e)}}function J5e(e){let n=fo(e,"signup local runner token"),t=W5e(n,"expires_in");return{accessToken:Ht(n,"access_token"),...t===void 0?{}:{expiresInSeconds:t},workspaceSlug:Ht(n,"workspace"),channelSlug:Ht(n,"channel")}}function K5e(e){let n=fo(e,"signup task start"),t=Ht(n,"status");if(t!=="queued"&&t!=="started"&&t!=="failed")throw new Error("signup task start status was incomplete");return{threadId:Ht(n,"thread_id"),title:Ht(n,"title"),status:t,...Zi(n,"runner_id")===void 0?{}:{runnerId:Zi(n,"runner_id")},...Zi(n,"error")===void 0?{}:{error:Zi(n,"error")}}}function cee(e){let n=fo(e,"signup user");return{id:ep(n,"id"),username:Ht(n,"username"),...Zi(n,"display_name")===void 0?{}:{displayName:Zi(n,"display_name")},...Zi(n,"primary_email")===void 0?{}:{primaryEmail:Zi(n,"primary_email")}}}function wA(e){let n=fo(e,"signup workspace");return{id:ep(n,"id"),slug:Ht(n,"slug"),name:Ht(n,"name")}}function dee(e){let n=fo(e,"signup channel");return{id:ep(n,"id"),slug:Ht(n,"slug"),name:Ht(n,"name")}}function V5e(e){let n=fo(e,"signup thread");return{threadId:Ht(n,"thread_id"),title:Ht(n,"title"),rootSeq:ep(n,"root_seq"),threadSeq:ep(n,"thread_seq")}}function fo(e,n){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e;throw new Error(`${n} was incomplete`)}function to(e,n){let t=e[n];if(t==null)throw new Error(`signup response missing ${n}`);return t}function Ht(e,n){return vA(to(e,n),`signup ${n}`)}function Zi(e,n){let t=e[n];if(t!=null)return vA(t,`signup ${n}`)}function bA(e,n){let t=to(e,n);if(Array.isArray(t))return t;throw new Error(`signup ${n} was incomplete`)}function vA(e,n){if(typeof e=="string"&&e.trim()!=="")return e;throw new Error(`${n} was incomplete`)}function ep(e,n){let t=to(e,n);if(Number.isInteger(t)&&Number(t)>0)return Number(t);throw new Error(`signup ${n} was incomplete`)}function W5e(e,n){let t=e[n];if(t!=null){if(Number.isInteger(t)&&Number(t)>0)return Number(t);throw new Error(`signup ${n} was incomplete`)}}function H5e(e,n){let t=to(e,n);if(typeof t=="boolean")return t;throw new Error(`signup ${n} was incomplete`)}var Oh,lee=F(()=>{"use strict";ki();Oh=class extends Error{status;code;constructor(n){super(n.message),this.name="SignupServerError",this.status=n.status,this.code=n.code}}});var zh={};Wo(zh,{autocompletePathSuggestions:()=>Lee,clearSignupGitHeadSummaryCacheForTest:()=>x9e,comparableServiceUrl:()=>Fh,parseSignupTuiOptions:()=>lUe,projectPickerKeyIsPrintableForTest:()=>b8e,resolveSignupCodexCommandForTest:()=>Q8e,runSignupFlow:()=>kUe,signupAuthFromVerification:()=>OA,signupAuthMatchesServiceUrl:()=>bee,signupCodexTaskSuggestionProcessForTest:()=>Z8e,signupCommanderAllowedCwdsForTest:()=>XUe,signupDiscoverProjectsForStartForTest:()=>S9e,signupEmailPickerChoiceNamesForTest:()=>u8e,signupHelpText:()=>uUe,signupLaunchPayloadForTest:()=>o8e,signupProjectGitHeadForPathForTest:()=>_9e,signupProjectPickerFrameForTest:()=>p8e,signupPromptCancelMessage:()=>cUe,signupReadTaskCacheForTest:()=>xUe,signupSpinnerLinesForTest:()=>W8e,signupSuggestTasksForProjectForTest:()=>U8e,signupSuggestedEmailIsUsefulForTest:()=>A8e,signupTaskCheckboxThemeForTest:()=>d8e,signupTaskSuggestionWaitMessageForTest:()=>K8e,toggleProjectPickerSelectionForTest:()=>w8e});import{spawn as kw,spawnSync as G5e}from"node:child_process";import{existsSync as Uo,constants as Z5e,mkdirSync as gee,mkdtempSync as Q5e,readFileSync as Cw,readdirSync as DA,rmSync as yee,statSync as X5e,writeFileSync as MA}from"node:fs";import{access as Y5e}from"node:fs/promises";import{homedir as Sw,tmpdir as eUe}from"node:os";import{delimiter as nUe,dirname as Tw,join as Un,resolve as xee}from"node:path";import{stdin as tUe,stdout as rUe}from"node:process";import{emitKeypressEvents as oUe}from"node:readline";function uUe(){return["Usage:"," linzumi signup","","Starts the one-command Linzumi Mission Control onboarding flow.","","Options:"," --api-url <url> Linzumi HTTP origin, default https://serve.linzumi.com"," --code-server-bin <path> Custom development code-server executable"," --force-signup Ignore existing local signup auth and create a fresh login"," --no-open Print the launch URL without opening the browser"," --debug-signup Print the collected launch payload JSON after signup"," --mock Run the local replay without calling the Linzumi server","","The default flow refreshes or creates auth with an email code, runs","read-only preflight checks, finds useful first work, writes","the local config, and opens Linzumi Mission Control.",""].join(`
1582
1582
  `)}function cUe(e){let n=e instanceof Error?e.message:String(e);return n==="User force closed the prompt with SIGINT"||n==="signup project picker cancelled"?dUe:void 0}function lUe(e){let n=Bt,t=!1,r,o=!0,i=!1;for(let s=0;s<e.length;s+=1){let a=e[s];switch(a){case"--force-signup":t=!0;break;case"--no-open":o=!1;break;case"--debug-signup":i=!0;break;case"--mock":break;case"--api-url":{let d=e[s+1];if(d===void 0||d.startsWith("--"))throw new Error("missing value for --api-url");n=d,s+=1;break}case"--code-server-bin":{let d=e[s+1];if(d===void 0||d.startsWith("--"))throw new Error("missing value for --code-server-bin");r=d,s+=1;break}default:throw new Error(`invalid signup flag: ${a??""}`)}}return{serviceUrl:n,forceSignup:t,...r===void 0?{}:{codeServerBin:r},openBrowser:o,debugLaunchPayload:i}}function bee(e,n){return Fh(e.serviceUrl)===Fh(n)}function Fh(e){let n=e.trim();try{return new URL(n).toString().replace(/\/+$/u,"")}catch{return n.replace(/\/+$/u,"")}}function pUe(e,n){if(e===void 0||e.selectedTasks.length===0)return n;let t=new Set(e.selectedTasks);return n.map(r=>({...r,selected:t.has(r.title)}))}function $h(e,n,t){e?.write({version:1,serviceUrl:n,selectedProjectPaths:t.selectedProjectPaths,selectedTasks:tp(t),...t.starterProjectPath===void 0?{}:{starterProjectPath:t.starterProjectPath},...t.customTask===void 0?{}:{customTask:t.customTask},...t.email===void 0?{}:{email:t.email},...t.workspaceName===void 0?{}:{workspaceName:t.workspaceName},updatedAt:new Date().toISOString()})}function fUe(e){let n=mUe(e);return{read:()=>{if(!Uo(n))return;let t;try{t=JSON.parse(Cw(n,"utf8"))}catch{return}if(hUe(t))return Fh(t.serviceUrl)===Fh(e)?t:void 0},write:t=>{gee(Tw(n),{recursive:!0}),MA(n,`${JSON.stringify(t,null,2)}
1583
1583
  `,{encoding:"utf8",mode:384})},clear:()=>{yee(n,{force:!0})}}}function mUe(e){return Un(Tw(Vn()),`signup-draft.${ad(e)}.json`)}function hUe(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let n=e;return n.version===1&&typeof n.serviceUrl=="string"&&Array.isArray(n.selectedProjectPaths)&&n.selectedProjectPaths.every(t=>typeof t=="string")&&Array.isArray(n.selectedTasks)&&n.selectedTasks.every(t=>typeof t=="string")&&_w(n.starterProjectPath)&&_w(n.customTask)&&_w(n.email)&&_w(n.workspaceName)&&typeof n.updatedAt=="string"&&!Number.isNaN(Date.parse(n.updatedAt))}function _w(e){return e===void 0||typeof e=="string"}function gUe(e){let n=yUe(e);return{read:t=>TA(n).entries[t]?.tasks,write:(t,r)=>{let i={version:1,entries:{...TA(n).entries,[t]:{tasks:r,updatedAt:new Date().toISOString()}}};gee(Tw(n),{recursive:!0}),MA(n,`${JSON.stringify(i,null,2)}
1584
- `,{encoding:"utf8",mode:384})}}}function yUe(e){return Un(Tw(Vn()),`signup-task-cache.${ad(e)}.json`)}function TA(e){if(!Uo(e))return{version:1,entries:{}};let n;try{n=JSON.parse(Cw(e,"utf8"))}catch{return{version:1,entries:{}}}return _Ue(n)?n:{version:1,entries:{}}}function xUe(e){return TA(e)}function _Ue(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let n=e;return n.version===1&&typeof n.entries=="object"&&n.entries!==null&&!Array.isArray(n.entries)&&Object.values(n.entries).every(bUe)}function bUe(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let n=e;return Array.isArray(n.tasks)&&n.tasks.every(wUe)&&typeof n.updatedAt=="string"&&!Number.isNaN(Date.parse(n.updatedAt))}function wUe(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let n=e;return typeof n.title=="string"&&typeof n.selected=="boolean"}function vUe(e,n){return{delayMs:15e3,maxFailuresBeforePrompt:10,waitBeforeRetry:async({label:t,delayMs:r,failureCount:o,maxFailuresBeforePrompt:i,error:s})=>{let a=Math.ceil(r/1e3);a<=0||(He(n,En(` ${t} failed (${o}/${i}): ${s.message}. Retrying in ${a}s...`)),await new Promise(d=>{let u=Date.now(),c=setInterval(()=>{let p=Date.now()-u,m=Math.max(0,Math.ceil((r-p)/1e3));m>0&&He(n,En(` ${t}: retrying in ${m}s...`))},1e3),l=setTimeout(()=>{clearInterval(c),d()},r)}))},shouldKeepTrying:async({label:t,failureCount:r,error:o})=>(He(n,En(` ${t} is still failing after ${r} attempts: ${o.message}`)),e.confirm({message:"Try again?",defaultValue:!0}))}}async function wee(e,n,t){if(t===void 0)return n();let r=0;for(;;)try{return await n()}catch(o){let i=SUe(o);r+=1;let s=r;if(r>=t.maxFailuresBeforePrompt){if(!await t.shouldKeepTrying({label:e,failureCount:r,error:i}))throw i;r=0;continue}await t.waitBeforeRetry({label:e,delayMs:t.delayMs,failureCount:s,maxFailuresBeforePrompt:t.maxFailuresBeforePrompt,error:i})}}function SUe(e){return e instanceof Error?e:new Error(String(e))}async function kUe(e={}){let n=e.input??tUe,t=e.output??rUe,r=e.prompts??s8e(n,t),o=e.preflight??F8e(),i=e.forceSignup===!0,s=e.serviceUrl??Bt,a=e.codeServerBin,d=e.openBrowser!==!1,u=e.debugLaunchPayload===!0,c=e.openUrl??t8e,l=e.retryPolicy===!1?void 0:e.retryPolicy??vUe(r,t),p=e.projectDiscovery??z8e(),m=e.signupTaskCacheStore===!1?void 0:e.signupTaskCacheStore??gUe(s),f=e.taskSuggestion??N8e({retryPolicy:l,taskCacheStore:m}),y=e.signupDraftStore===!1?void 0:e.signupDraftStore??fUe(s),_=i?void 0:y?.read(),w=e.readSignupAuth??D5,S=e.readConfiguredProjectPaths??h8e,v=e.writeSignupAuth??(ae=>rT({email:ae.email,serviceUrl:s})),b=e.writeSignupCompletion??(ae=>A5(ae)),k=e.commanderLauncher??GUe,R=e.signupServerClient===!1?void 0:e.signupServerClient??uee({serviceUrl:s}),P=L8e(),L;np(t,P);let D=i?void 0:w(),j=D!==void 0&&bee(D,s)?D:void 0;if(P=Tt(P,{existingSignupAuth:j}),j!==void 0){let ae=await DUe(R,j,l);P=Tt(P,{validatedSignupAuth:ae});let Ce=await EUe(r,t,j,v,R,s);if(Ce.type==="failed"){P=Tt(P,{currentStep:"launch",email:j.email,launchFailure:Ce.message}),pee(t,Ce.message),wu(t,P,u);return}L=Ce.verifiedAuth,P=Tt(P,{reusedSignupAuth:Ce.auth,storedSignupAuth:Ce.auth,email:Ce.auth.email,verificationCode:Ce.code})}let q=i8e().map(ae=>({...ae,detail:"checking...",status:"pending"}));P=Tt(P,{currentStep:"preflight",preflightChecks:q});let B=await j8e(o);P=Tt(P,{currentStep:"project",preflightChecks:B}),UUe(t,q,B),np(t,P),Lh(t,P);let z="recent local git projects";P=Tt(P,{projectDiscovery:{type:"scanning",codeRoot:z}}),jUe(t,P);let W=await p.discoverProjects(o.homeDir);P=Tt(P,{projectDiscovery:{type:"ready",codeRoot:z,projects:W}});let Z=await r.projectPicker({message:"Pick the first folders where Linzumi should start agents",projects:W,defaultSelectedPaths:m8e(_?.selectedProjectPaths.length===0||_?.selectedProjectPaths===void 0?i?[]:S(s):_.selectedProjectPaths)}),fe=g8e(Z,W);if(fe.type==="failed"){qUe(t,fe.message),wu(t,P,u);return}let De=fe.selectedProjectPaths;if(De.length===0){FUe(t),wu(t,P,u);return}P=Tt(P,{currentStep:"tasks",selectedProjectPaths:De}),$h(y,s,P),np(t,P),Lh(t,P),bw(t,P);let ke=$A(P),ge=await BUe(r,t,ke,_?.starterProjectPath);if(ge===void 0){wu(t,P,u);return}let Re=R8e(ke);P=Tt(P,{starterProjectPath:ge.path}),$h(y,s,P);let Ee=e.prompts===void 0&&!ww(n)?a8e():await f.suggestTasks(ge,t),I=pUe(_,Ee);P=Tt(P,{tasks:I});let $=await JUe(r,t,I),K=new Set($.filter(ae=>Ee.some(Ce=>Ce.title===ae)));P=Tt(P,{currentStep:"email",tasks:I.map(ae=>({...ae,selected:K.has(ae.title)})),selectedTasks:[...K],customTask:$.find(ae=>Ee.every(Ce=>Ce.title!==ae))}),$h(y,s,P),np(t,P),Lh(t,P),bw(t,P),SA(t,P);let ie=await Re,pe=O8e(P.preflightChecks),Y=pe!==void 0&&jA(pe)?pe:void 0,oe=Y===void 0?M8e(ie):[];P=Tt(P,{projectGitEmails:ie,emailCandidates:oe});let Fe=P.reusedSignupAuth;if(Fe!==void 0)P=Tt(P,{currentStep:R===void 0?"launch":"email",email:Fe.email});else{let ae=await MUe(r,t,oe,_?.email??Y??"dev@example.com");P=Tt(P,{currentStep:"code",email:ae}),$h(y,s,P);let Ce=R===void 0?{type:"sent",request:{pendingId:"mock",email:ae}}:await vee(R,{email:ae,mode:"existing_or_create",selectedTasks:tp(P)});if(Ce.type==="failed"){P=Tt(P,{currentStep:"launch",launchFailure:Ce.message}),pee(t,Ce.message),wu(t,P,u);return}let Yn=await kee({prompts:r,output:t,signupServerClient:R,pendingId:Ce.request.pendingId,email:Ce.request.email});if(Yn.type==="failed"){P=Tt(P,{currentStep:"launch",verificationCode:Yn.code,launchFailure:Yn.message}),np(t,P),Lh(t,P),bw(t,P),SA(t,P),fee(t,P),wu(t,P,u);return}L=Yn.verifiedAuth;let Jn=L===void 0?v({email:ae}):OA(L,s);P=Tt(P,{currentStep:"launch",storedSignupAuth:Jn,verificationCode:Yn.code})}if(R!==void 0&&L!==void 0){let ae=L.privateWorkspaceDefault.name||r8e(L.user.primaryEmail??P.email??"dev"),Ce=await AUe(r,t,_?.workspaceName??ae);P=Tt(P,{workspaceName:Ce}),$h(y,s,P);let Yn=await PUe(R,{accessToken:L.accessToken,workspaceName:Ce,selectedProjectPaths:P.selectedProjectPaths,starterProjectPath:P.starterProjectPath,selectedTasks:tp(P)});if(Yn.type==="failed")P=Tt(P,{currentStep:"launch",workspaceName:Ce,launchFailure:Yn.message});else{let Jn=Yn.missionControl,Dt=Jn.threads.map(Be=>({threadId:Be.threadId,title:Be.title,rootSeq:Be.rootSeq,threadSeq:Be.threadSeq})),V=Jn.config.starterProjectPath??ge.path,ce=q8e(P.preflightChecks),$e=b({email:L.user.primaryEmail??P.email??L.user.username,serviceUrl:s,accessToken:L.accessToken,refreshToken:L.refreshToken,expiresInSeconds:L.expiresInSeconds,userId:L.user.id,workspaceSlug:Jn.workspace.slug,launchUrl:Jn.launchUrl,allowedCwds:Jn.config.allowedCwds}),_n=ce===void 0?ZUe({serviceUrl:s,workspaceSlug:Jn.workspace.slug,projectPath:V}):await TUe(k,{serviceUrl:s,localRunnerAccessToken:Jn.localRunnerToken.accessToken,localRunnerExpiresInSeconds:Jn.localRunnerToken.expiresInSeconds,workspaceSlug:Jn.workspace.slug,projectPath:V,selectedProjectPaths:Jn.config.allowedCwds,codexBin:ce,...a===void 0?{}:{codeServerBin:a}}),mn=await CUe(R,{accessToken:L.accessToken,missionControl:Jn,commanderLaunch:_n,starterProjectPath:V,threads:Dt});P=Tt(P,{currentStep:"launch",workspaceName:Ce,missionControl:Jn,commanderLaunch:_n,starterTaskLaunches:mn,launchUrl:Jn.launchUrl,storedSignupAuth:$e}),y?.clear()}}if(np(t,P),Lh(t,P),bw(t,P),SA(t,P),fee(t,P),P.launchUrl!==void 0&&d&&R!==void 0)try{await c(P.launchUrl)}catch{He(t,En(" Open this Mission Control URL if your browser did not open."))}wu(t,P,u)}async function CUe(e,n){switch(n.commanderLaunch.status){case"failed":return n.threads.map(t=>({threadId:t.threadId,title:t.title,status:"failed",error:"Local Commander did not start"}));case"started":try{return(await e.startMissionControlTasks({accessToken:n.accessToken,workspaceSlug:n.missionControl.workspace.slug,officeChannelSlug:n.missionControl.channels.office.slug,runnerId:n.commanderLaunch.runnerId,starterProjectPath:n.starterProjectPath,threads:n.missionControl.threads,model:process.env.LINZUMI_SIGNUP_AGENT_MODEL??"gpt-5.4-mini",reasoningEffort:process.env.LINZUMI_SIGNUP_AGENT_REASONING_EFFORT??"low"})).tasks.map(r=>({threadId:r.threadId,title:r.title,status:r.status,runnerId:r.runnerId??n.commanderLaunch.runnerId,...r.error===void 0?{}:{error:r.error}}))}catch(t){return n.threads.map(r=>({threadId:r.threadId,title:r.title,status:"failed",runnerId:n.commanderLaunch.runnerId,error:t instanceof Error?t.message:String(t)}))}}}async function TUe(e,n){try{return await e(n)}catch(t){return{status:"failed",runnerId:Pee(n.serviceUrl),restartCommand:AA(n),error:t instanceof Error?t.message:String(t)}}}async function PUe(e,n){try{return{type:"completed",missionControl:await e.completeMissionControl(n)}}catch(t){return{type:"failed",message:t instanceof Error?t.message:String(t)}}}async function vee(e,n){try{return{type:"sent",request:await e.startEmailCode(n)}}catch(t){return{type:"failed",message:See("We couldn't send your Linzumi email code",t)}}}async function IUe(e,n){try{return{type:"verified",auth:await e.verifyEmailCode(n)}}catch(t){return{type:"failed",message:See("We couldn't verify your Linzumi email code",t),code:RUe(t)}}}function See(e,n){let t=n instanceof Error?n.message:String(n);return`${e}: ${t}`}function RUe(e){if(e instanceof Oh)return e.code;if(e instanceof Error&&e.message==="invalid_signup_code")return"invalid_signup_code"}async function kee(e){return KUe(e.output,e.email),Cee(e,1)}async function Cee(e,n){let t=await e.prompts.input({message:"Enter your Linzumi verification code",defaultValue:e.signupServerClient===void 0?"482931":""}),r=e.signupServerClient===void 0?void 0:await IUe(e.signupServerClient,{pendingId:e.pendingId,code:t});return VUe(e.output,t),r?.type==="failed"?r.code==="invalid_signup_code"&&n<iUe?(He(e.output,En(" That code was not valid. Enter the newest 6-digit code from your email.")),Cee(e,n+1)):{type:"failed",message:r.message,code:t}:r===void 0?{type:"completed",code:t}:{type:"completed",code:t,verifiedAuth:r.auth}}async function EUe(e,n,t,r,o,i){n.write(`${mo("\u2713")} You're already logged in!
1584
+ `,{encoding:"utf8",mode:384})}}}function yUe(e){return Un(Tw(Vn()),`signup-task-cache.${ad(e)}.json`)}function TA(e){if(!Uo(e))return{version:1,entries:{}};let n;try{n=JSON.parse(Cw(e,"utf8"))}catch{return{version:1,entries:{}}}return _Ue(n)?n:{version:1,entries:{}}}function xUe(e){return TA(e)}function _Ue(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let n=e;return n.version===1&&typeof n.entries=="object"&&n.entries!==null&&!Array.isArray(n.entries)&&Object.values(n.entries).every(bUe)}function bUe(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let n=e;return Array.isArray(n.tasks)&&n.tasks.every(wUe)&&typeof n.updatedAt=="string"&&!Number.isNaN(Date.parse(n.updatedAt))}function wUe(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let n=e;return typeof n.title=="string"&&typeof n.selected=="boolean"}function vUe(e,n){return{delayMs:15e3,maxFailuresBeforePrompt:10,waitBeforeRetry:async({label:t,delayMs:r,failureCount:o,maxFailuresBeforePrompt:i,error:s})=>{let a=Math.ceil(r/1e3);a<=0||(He(n,En(` ${t} failed (${o}/${i}): ${s.message}. Retrying in ${a}s...`)),await new Promise(d=>{let u=Date.now(),c=setInterval(()=>{let p=Date.now()-u,m=Math.max(0,Math.ceil((r-p)/1e3));m>0&&He(n,En(` ${t}: retrying in ${m}s...`))},1e3),l=setTimeout(()=>{clearInterval(c),d()},r)}))},shouldKeepTrying:async({label:t,failureCount:r,error:o})=>(He(n,En(` ${t} is still failing after ${r} attempts: ${o.message}`)),e.confirm({message:"Try again?",defaultValue:!0}))}}async function wee(e,n,t){if(t===void 0)return n();let r=0;for(;;)try{return await n()}catch(o){let i=SUe(o);r+=1;let s=r;if(r>=t.maxFailuresBeforePrompt){if(!await t.shouldKeepTrying({label:e,failureCount:r,error:i}))throw i;r=0;continue}await t.waitBeforeRetry({label:e,delayMs:t.delayMs,failureCount:s,maxFailuresBeforePrompt:t.maxFailuresBeforePrompt,error:i})}}function SUe(e){return e instanceof Error?e:new Error(String(e))}async function kUe(e={}){let n=e.input??tUe,t=e.output??rUe,r=e.prompts??s8e(n,t),o=e.preflight??F8e(),i=e.forceSignup===!0,s=e.serviceUrl??Bt,a=e.codeServerBin,d=e.openBrowser!==!1,u=e.debugLaunchPayload===!0,c=e.openUrl??t8e,l=e.retryPolicy===!1?void 0:e.retryPolicy??vUe(r,t),p=e.projectDiscovery??z8e(),m=e.signupTaskCacheStore===!1?void 0:e.signupTaskCacheStore??gUe(s),f=e.taskSuggestion??N8e({retryPolicy:l,taskCacheStore:m}),y=e.signupDraftStore===!1?void 0:e.signupDraftStore??fUe(s),_=i?void 0:y?.read(),w=e.readSignupAuth??D5,S=e.readConfiguredProjectPaths??h8e,v=e.writeSignupAuth??(ae=>rT({email:ae.email,serviceUrl:s})),b=e.writeSignupCompletion??(ae=>A5(ae)),k=e.commanderLauncher??GUe,R=e.signupServerClient===!1?void 0:e.signupServerClient??uee({serviceUrl:s}),P=L8e(),L;np(t,P);let D=i?void 0:w(),j=D!==void 0&&bee(D,s)?D:void 0;if(P=Tt(P,{existingSignupAuth:j}),j!==void 0){let ae=await DUe(R,j,l);P=Tt(P,{validatedSignupAuth:ae});let Ce=await EUe(r,t,j,v,R,s);if(Ce.type==="failed"){P=Tt(P,{currentStep:"launch",email:j.email,launchFailure:Ce.message}),pee(t,Ce.message),wu(t,P,u);return}L=Ce.verifiedAuth,P=Tt(P,{reusedSignupAuth:Ce.auth,storedSignupAuth:Ce.auth,email:Ce.auth.email,verificationCode:Ce.code})}let q=i8e().map(ae=>({...ae,detail:"checking...",status:"pending"}));P=Tt(P,{currentStep:"preflight",preflightChecks:q});let B=await j8e(o);P=Tt(P,{currentStep:"project",preflightChecks:B}),UUe(t,q,B),np(t,P),Lh(t,P);let z="recent local git projects";P=Tt(P,{projectDiscovery:{type:"scanning",codeRoot:z}}),jUe(t,P);let W=await p.discoverProjects(o.homeDir);P=Tt(P,{projectDiscovery:{type:"ready",codeRoot:z,projects:W}});let Z=await r.projectPicker({message:"Pick the first folders where Linzumi should start agents",projects:W,defaultSelectedPaths:m8e(_?.selectedProjectPaths.length===0||_?.selectedProjectPaths===void 0?i?[]:S(s):_.selectedProjectPaths)}),fe=g8e(Z,W);if(fe.type==="failed"){qUe(t,fe.message),wu(t,P,u);return}let Ee=fe.selectedProjectPaths;if(Ee.length===0){FUe(t),wu(t,P,u);return}P=Tt(P,{currentStep:"tasks",selectedProjectPaths:Ee}),$h(y,s,P),np(t,P),Lh(t,P),bw(t,P);let _e=$A(P),be=await BUe(r,t,_e,_?.starterProjectPath);if(be===void 0){wu(t,P,u);return}let Re=R8e(_e);P=Tt(P,{starterProjectPath:be.path}),$h(y,s,P);let Ae=e.prompts===void 0&&!ww(n)?a8e():await f.suggestTasks(be,t),I=pUe(_,Ae);P=Tt(P,{tasks:I});let $=await JUe(r,t,I),K=new Set($.filter(ae=>Ae.some(Ce=>Ce.title===ae)));P=Tt(P,{currentStep:"email",tasks:I.map(ae=>({...ae,selected:K.has(ae.title)})),selectedTasks:[...K],customTask:$.find(ae=>Ae.every(Ce=>Ce.title!==ae))}),$h(y,s,P),np(t,P),Lh(t,P),bw(t,P),SA(t,P);let re=await Re,pe=O8e(P.preflightChecks),Y=pe!==void 0&&jA(pe)?pe:void 0,ie=Y===void 0?M8e(re):[];P=Tt(P,{projectGitEmails:re,emailCandidates:ie});let Fe=P.reusedSignupAuth;if(Fe!==void 0)P=Tt(P,{currentStep:R===void 0?"launch":"email",email:Fe.email});else{let ae=await MUe(r,t,ie,_?.email??Y??"dev@example.com");P=Tt(P,{currentStep:"code",email:ae}),$h(y,s,P);let Ce=R===void 0?{type:"sent",request:{pendingId:"mock",email:ae}}:await vee(R,{email:ae,mode:"existing_or_create",selectedTasks:tp(P)});if(Ce.type==="failed"){P=Tt(P,{currentStep:"launch",launchFailure:Ce.message}),pee(t,Ce.message),wu(t,P,u);return}let Yn=await kee({prompts:r,output:t,signupServerClient:R,pendingId:Ce.request.pendingId,email:Ce.request.email});if(Yn.type==="failed"){P=Tt(P,{currentStep:"launch",verificationCode:Yn.code,launchFailure:Yn.message}),np(t,P),Lh(t,P),bw(t,P),SA(t,P),fee(t,P),wu(t,P,u);return}L=Yn.verifiedAuth;let Jn=L===void 0?v({email:ae}):OA(L,s);P=Tt(P,{currentStep:"launch",storedSignupAuth:Jn,verificationCode:Yn.code})}if(R!==void 0&&L!==void 0){let ae=L.privateWorkspaceDefault.name||r8e(L.user.primaryEmail??P.email??"dev"),Ce=await AUe(r,t,_?.workspaceName??ae);P=Tt(P,{workspaceName:Ce}),$h(y,s,P);let Yn=await PUe(R,{accessToken:L.accessToken,workspaceName:Ce,selectedProjectPaths:P.selectedProjectPaths,starterProjectPath:P.starterProjectPath,selectedTasks:tp(P)});if(Yn.type==="failed")P=Tt(P,{currentStep:"launch",workspaceName:Ce,launchFailure:Yn.message});else{let Jn=Yn.missionControl,Dt=Jn.threads.map(Be=>({threadId:Be.threadId,title:Be.title,rootSeq:Be.rootSeq,threadSeq:Be.threadSeq})),V=Jn.config.starterProjectPath??be.path,ce=q8e(P.preflightChecks),$e=b({email:L.user.primaryEmail??P.email??L.user.username,serviceUrl:s,accessToken:L.accessToken,refreshToken:L.refreshToken,expiresInSeconds:L.expiresInSeconds,userId:L.user.id,workspaceSlug:Jn.workspace.slug,launchUrl:Jn.launchUrl,allowedCwds:Jn.config.allowedCwds}),_n=ce===void 0?ZUe({serviceUrl:s,workspaceSlug:Jn.workspace.slug,projectPath:V}):await TUe(k,{serviceUrl:s,localRunnerAccessToken:Jn.localRunnerToken.accessToken,localRunnerExpiresInSeconds:Jn.localRunnerToken.expiresInSeconds,workspaceSlug:Jn.workspace.slug,projectPath:V,selectedProjectPaths:Jn.config.allowedCwds,codexBin:ce,...a===void 0?{}:{codeServerBin:a}}),mn=await CUe(R,{accessToken:L.accessToken,missionControl:Jn,commanderLaunch:_n,starterProjectPath:V,threads:Dt});P=Tt(P,{currentStep:"launch",workspaceName:Ce,missionControl:Jn,commanderLaunch:_n,starterTaskLaunches:mn,launchUrl:Jn.launchUrl,storedSignupAuth:$e}),y?.clear()}}if(np(t,P),Lh(t,P),bw(t,P),SA(t,P),fee(t,P),P.launchUrl!==void 0&&d&&R!==void 0)try{await c(P.launchUrl)}catch{He(t,En(" Open this Mission Control URL if your browser did not open."))}wu(t,P,u)}async function CUe(e,n){switch(n.commanderLaunch.status){case"failed":return n.threads.map(t=>({threadId:t.threadId,title:t.title,status:"failed",error:"Local Commander did not start"}));case"started":try{return(await e.startMissionControlTasks({accessToken:n.accessToken,workspaceSlug:n.missionControl.workspace.slug,officeChannelSlug:n.missionControl.channels.office.slug,runnerId:n.commanderLaunch.runnerId,starterProjectPath:n.starterProjectPath,threads:n.missionControl.threads,model:process.env.LINZUMI_SIGNUP_AGENT_MODEL??"gpt-5.4-mini",reasoningEffort:process.env.LINZUMI_SIGNUP_AGENT_REASONING_EFFORT??"low"})).tasks.map(r=>({threadId:r.threadId,title:r.title,status:r.status,runnerId:r.runnerId??n.commanderLaunch.runnerId,...r.error===void 0?{}:{error:r.error}}))}catch(t){return n.threads.map(r=>({threadId:r.threadId,title:r.title,status:"failed",runnerId:n.commanderLaunch.runnerId,error:t instanceof Error?t.message:String(t)}))}}}async function TUe(e,n){try{return await e(n)}catch(t){return{status:"failed",runnerId:Pee(n.serviceUrl),restartCommand:AA(n),error:t instanceof Error?t.message:String(t)}}}async function PUe(e,n){try{return{type:"completed",missionControl:await e.completeMissionControl(n)}}catch(t){return{type:"failed",message:t instanceof Error?t.message:String(t)}}}async function vee(e,n){try{return{type:"sent",request:await e.startEmailCode(n)}}catch(t){return{type:"failed",message:See("We couldn't send your Linzumi email code",t)}}}async function IUe(e,n){try{return{type:"verified",auth:await e.verifyEmailCode(n)}}catch(t){return{type:"failed",message:See("We couldn't verify your Linzumi email code",t),code:RUe(t)}}}function See(e,n){let t=n instanceof Error?n.message:String(n);return`${e}: ${t}`}function RUe(e){if(e instanceof Oh)return e.code;if(e instanceof Error&&e.message==="invalid_signup_code")return"invalid_signup_code"}async function kee(e){return KUe(e.output,e.email),Cee(e,1)}async function Cee(e,n){let t=await e.prompts.input({message:"Enter your Linzumi verification code",defaultValue:e.signupServerClient===void 0?"482931":""}),r=e.signupServerClient===void 0?void 0:await IUe(e.signupServerClient,{pendingId:e.pendingId,code:t});return VUe(e.output,t),r?.type==="failed"?r.code==="invalid_signup_code"&&n<iUe?(He(e.output,En(" That code was not valid. Enter the newest 6-digit code from your email.")),Cee(e,n+1)):{type:"failed",message:r.message,code:t}:r===void 0?{type:"completed",code:t}:{type:"completed",code:t,verifiedAuth:r.auth}}async function EUe(e,n,t,r,o,i){n.write(`${mo("\u2713")} You're already logged in!
1585
1585
  ${En(" First we'll refresh your auth with an email code, and then configure your computer for Linzumi Mission Control.")}
1586
1586
  `);let s=o===void 0?{type:"sent",request:{pendingId:"mock",email:t.email}}:await vee(o,{email:t.email,mode:"existing_only"});if(s.type==="failed")return s;let a=await kee({prompts:e,output:n,signupServerClient:o,pendingId:s.request.pendingId,email:s.request.email});if(a.type==="failed")return n.write(`
1587
1587
  `),{type:"failed",message:a.message};let d=a.verifiedAuth,u=d===void 0?r({email:t.email}):OA(d,i);return n.write(`
@@ -1899,7 +1899,7 @@ Human login:
1899
1899
  Launch target:
1900
1900
  zero-to-hello-world-pr+editor in under 3 minutes.
1901
1901
  `}Wx();Ut();import{existsSync as oK,closeSync as nK,mkdirSync as tK,openSync as rK,readFileSync as iK,watch as b1e,writeFileSync as w1e}from"node:fs";import{homedir as sK}from"node:os";import{dirname as v1e,join as VI,resolve as S1e}from"node:path";import{execFileSync as k1e,spawn as C1e}from"node:child_process";import{fileURLToPath as T1e}from"node:url";var P1e=["Connected to Linzumi","Runner connected:"];function V0(){return VI(sK(),".linzumi","commanders")}function aK(e,n=V0()){return VI(n,`${pK(e)}.json`)}function I1e(e){return VI(sK(),".linzumi","logs",`${pK(e)}.log`)}function KI(e){return P1e.some(n=>e.includes(n))}function dK(e){let n=e.statusDir??V0(),t=aK(e.runnerId,n),r=S1e(e.logFile??I1e(e.runnerId)),o=e.entrypoint??R1e(),i=e.nodeBin??process.execPath,s=[o,"commander",...e.cwd===void 0?[]:[e.cwd],...e.args,"--log-file",r];tK(n,{recursive:!0}),tK(v1e(r),{recursive:!0});let a=rK(r,"a"),d=rK(r,"a");me("process.spawn",{command:i,args:s,cwd:e.cwd,purpose:"commander_daemon.start"},{sessionId:e.runnerId});let u=(e.spawnImpl??C1e)(i,s,{detached:!0,stdio:["ignore",a,d],env:process.env});if(me("process.spawned",{command:i,args:s,cwd:e.cwd,pid:u.pid,purpose:"commander_daemon.start"},{sessionId:e.runnerId}),nK(a),nK(d),u.unref(),u.pid===void 0)throw new Error("commander daemon did not report a pid");let c=lK(u.pid),l={runnerId:e.runnerId,pid:u.pid,...c?.startedAt===void 0?{}:{processStartedAt:c.startedAt},cwd:process.cwd(),...e.cwd===void 0?{}:{launchFolder:e.cwd},logFile:r,startedAt:new Date().toISOString(),command:[i,...s]};return w1e(t,`${JSON.stringify(l,null,2)}
1902
- `),l}function W0(e,n=V0(),t=lK){let r=aK(e,n);if(!oK(r))return{status:"missing",runnerId:e,statusFile:r};let o=E1e(iK(r,"utf8"));return D1e(o.pid)&&M1e(o,t)?{status:"running",record:o}:{status:"stopped",record:o}}async function uK(e){let n=e.now??(()=>Date.now()),t=e.readTextFile??(i=>oK(i)?iK(i,"utf8"):void 0),r=e.statusImpl??W0,o=n()+e.timeoutMs;for(;n()<=o;){let i=r(e.runnerId,e.statusDir);switch(i.status){case"missing":return{ok:!1,reason:"missing"};case"stopped":return{ok:!1,reason:"stopped"};case"running":{let s=t(i.record.logFile);if(s===void 0)return{ok:!1,reason:"timeout"};if(KI(s))return{ok:!0,record:i.record};if(await A1e(i.record.logFile,o,n,()=>{let d=t(i.record.logFile);return d!==void 0&&KI(d)})){let d=r(e.runnerId,e.statusDir);switch(d.status){case"missing":return{ok:!1,reason:"missing"};case"stopped":return{ok:!1,reason:"stopped"};case"running":{let u=t(d.record.logFile);if(u!==void 0&&KI(u))return{ok:!0,record:d.record}}}}}}}return{ok:!1,reason:"timeout"}}function cK(e,n=V0()){let t=W0(e,n);return t.status==="running"&&process.kill(t.record.pid,"SIGINT"),t}function R1e(){let e=process.argv[1];return e!==void 0?e:T1e(import.meta.url)}function E1e(e){let n=JSON.parse(e),t=typeof n=="object"&&n!==null?n:{},r=typeof t.pid=="number"?t.pid:void 0,o=il(t.runnerId),i=il(t.cwd),s=il(t.launchFolder),a=il(t.logFile),d=il(t.startedAt),u=il(t.processStartedAt),c=t.command,l=Array.isArray(c)?c.filter(p=>typeof p=="string"):[];if(r===void 0||o===void 0||i===void 0||a===void 0||d===void 0)throw new Error("commander daemon status file is invalid");return{pid:r,...u===void 0?{}:{processStartedAt:u},runnerId:o,cwd:i,...s===void 0?{}:{launchFolder:s},logFile:a,startedAt:d,command:l}}function il(e){return typeof e=="string"&&e.trim()!==""?e.trim():void 0}function D1e(e){try{return process.kill(e,0),!0}catch{return!1}}function M1e(e,n){let t=n(e.pid),r=t?.command;return r===void 0||r.trim()===""||!e.command.every(i=>r.includes(i))?!1:e.processStartedAt===void 0||t?.startedAt===e.processStartedAt}function lK(e){try{let t=["-p",String(e),"-o","lstart=","-o","command="];me("process.exec_file",{command:"ps",args:t,purpose:"commander_daemon.process_identity"});let r=k1e("ps",t,{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(me("process.exec_file_completed",{command:"ps",args:t,purpose:"commander_daemon.process_identity"}),r==="")return;let o=r.match(/^(\S+\s+\S+\s+\d+\s+\d{2}:\d{2}:\d{2}\s+\d{4})\s+(.+)$/);if(o===null)return{command:r};let i=o[1],s=o[2];return i===void 0||s===void 0?{command:r}:{startedAt:i,command:s}}catch{return}}function pK(e){let n=e.replace(/[^a-zA-Z0-9_.-]+/g,"-").replace(/^-+|-+$/g,"");if(n==="")throw new Error("runner id must contain a filesystem-safe character");return n}async function A1e(e,n,t,r=()=>!1){let o=Math.max(0,n-t());return new Promise(i=>{let s=!1,a,d=c=>{s||(s=!0,a?.close(),clearTimeout(u),i(c))},u=setTimeout(()=>d(!1),o);try{a=b1e(e,()=>d(r())),a.on("error",()=>d(r())),r()&&d(!0)}catch{if(r()){d(!0);return}d(!1)}})}ea();S0();var M={};Wo(M,{BRAND:()=>iDe,DIRTY:()=>Rd,EMPTY_PATH:()=>j1e,INVALID:()=>Ke,NEVER:()=>UDe,OK:()=>br,ParseStatus:()=>or,Schema:()=>cn,ZodAny:()=>aa,ZodArray:()=>ks,ZodBigInt:()=>Dd,ZodBoolean:()=>Md,ZodBranded:()=>mm,ZodCatch:()=>Bd,ZodDate:()=>Ad,ZodDefault:()=>Ud,ZodDiscriminatedUnion:()=>Z0,ZodEffects:()=>Po,ZodEnum:()=>zd,ZodError:()=>Jr,ZodFirstPartyTypeKind:()=>de,ZodFunction:()=>X0,ZodIntersection:()=>jd,ZodIssueCode:()=>se,ZodLazy:()=>Fd,ZodLiteral:()=>qd,ZodMap:()=>ll,ZodNaN:()=>fl,ZodNativeEnum:()=>Nd,ZodNever:()=>ii,ZodNull:()=>$d,ZodNullable:()=>Li,ZodNumber:()=>Ed,ZodObject:()=>Vr,ZodOptional:()=>Kr,ZodParsedType:()=>_e,ZodPipeline:()=>hm,ZodPromise:()=>da,ZodReadonly:()=>Jd,ZodRecord:()=>Q0,ZodSchema:()=>cn,ZodSet:()=>pl,ZodString:()=>sa,ZodSymbol:()=>ul,ZodTransformer:()=>Po,ZodTuple:()=>$i,ZodType:()=>cn,ZodUndefined:()=>Od,ZodUnion:()=>Ld,ZodUnknown:()=>Ss,ZodVoid:()=>cl,addIssueToContext:()=>he,any:()=>mDe,array:()=>xDe,bigint:()=>uDe,boolean:()=>SK,coerce:()=>NDe,custom:()=>bK,date:()=>cDe,datetimeRegex:()=>xK,defaultErrorMap:()=>ws,discriminatedUnion:()=>wDe,effect:()=>ADe,enum:()=>EDe,function:()=>PDe,getErrorMap:()=>sl,getParsedType:()=>Oi,instanceof:()=>aDe,intersection:()=>vDe,isAborted:()=>H0,isAsync:()=>al,isDirty:()=>G0,isValid:()=>ia,late:()=>sDe,lazy:()=>IDe,literal:()=>RDe,makeIssue:()=>fm,map:()=>CDe,nan:()=>dDe,nativeEnum:()=>DDe,never:()=>gDe,null:()=>fDe,nullable:()=>$De,number:()=>vK,object:()=>ZI,objectUtil:()=>WI,oboolean:()=>zDe,onumber:()=>qDe,optional:()=>ODe,ostring:()=>FDe,pipeline:()=>jDe,preprocess:()=>LDe,promise:()=>MDe,quotelessJson:()=>O1e,record:()=>kDe,set:()=>TDe,setErrorMap:()=>L1e,strictObject:()=>_De,string:()=>wK,symbol:()=>lDe,transformer:()=>ADe,tuple:()=>SDe,undefined:()=>pDe,union:()=>bDe,unknown:()=>hDe,util:()=>yn,void:()=>yDe});var yn;(function(e){e.assertEqual=o=>{};function n(o){}e.assertIs=n;function t(o){throw new Error}e.assertNever=t,e.arrayToEnum=o=>{let i={};for(let s of o)i[s]=s;return i},e.getValidEnumValues=o=>{let i=e.objectKeys(o).filter(a=>typeof o[o[a]]!="number"),s={};for(let a of i)s[a]=o[a];return e.objectValues(s)},e.objectValues=o=>e.objectKeys(o).map(function(i){return o[i]}),e.objectKeys=typeof Object.keys=="function"?o=>Object.keys(o):o=>{let i=[];for(let s in o)Object.prototype.hasOwnProperty.call(o,s)&&i.push(s);return i},e.find=(o,i)=>{for(let s of o)if(i(s))return s},e.isInteger=typeof Number.isInteger=="function"?o=>Number.isInteger(o):o=>typeof o=="number"&&Number.isFinite(o)&&Math.floor(o)===o;function r(o,i=" | "){return o.map(s=>typeof s=="string"?`'${s}'`:s).join(i)}e.joinValues=r,e.jsonStringifyReplacer=(o,i)=>typeof i=="bigint"?i.toString():i})(yn||(yn={}));var WI;(function(e){e.mergeShapes=(n,t)=>({...n,...t})})(WI||(WI={}));var _e=yn.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Oi=e=>{switch(typeof e){case"undefined":return _e.undefined;case"string":return _e.string;case"number":return Number.isNaN(e)?_e.nan:_e.number;case"boolean":return _e.boolean;case"function":return _e.function;case"bigint":return _e.bigint;case"symbol":return _e.symbol;case"object":return Array.isArray(e)?_e.array:e===null?_e.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?_e.promise:typeof Map<"u"&&e instanceof Map?_e.map:typeof Set<"u"&&e instanceof Set?_e.set:typeof Date<"u"&&e instanceof Date?_e.date:_e.object;default:return _e.unknown}};var se=yn.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),O1e=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),Jr=class e extends Error{get errors(){return this.issues}constructor(n){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=n}format(n){let t=n||function(i){return i.message},r={_errors:[]},o=i=>{for(let s of i.issues)if(s.code==="invalid_union")s.unionErrors.map(o);else if(s.code==="invalid_return_type")o(s.returnTypeError);else if(s.code==="invalid_arguments")o(s.argumentsError);else if(s.path.length===0)r._errors.push(t(s));else{let a=r,d=0;for(;d<s.path.length;){let u=s.path[d];d===s.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(t(s))):a[u]=a[u]||{_errors:[]},a=a[u],d++}}};return o(this),r}static assert(n){if(!(n instanceof e))throw new Error(`Not a ZodError: ${n}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,yn.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(n=t=>t.message){let t={},r=[];for(let o of this.issues)if(o.path.length>0){let i=o.path[0];t[i]=t[i]||[],t[i].push(n(o))}else r.push(n(o));return{formErrors:r,fieldErrors:t}}get formErrors(){return this.flatten()}};Jr.create=e=>new Jr(e);var $1e=(e,n)=>{let t;switch(e.code){case se.invalid_type:e.received===_e.undefined?t="Required":t=`Expected ${e.expected}, received ${e.received}`;break;case se.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(e.expected,yn.jsonStringifyReplacer)}`;break;case se.unrecognized_keys:t=`Unrecognized key(s) in object: ${yn.joinValues(e.keys,", ")}`;break;case se.invalid_union:t="Invalid input";break;case se.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${yn.joinValues(e.options)}`;break;case se.invalid_enum_value:t=`Invalid enum value. Expected ${yn.joinValues(e.options)}, received '${e.received}'`;break;case se.invalid_arguments:t="Invalid function arguments";break;case se.invalid_return_type:t="Invalid function return type";break;case se.invalid_date:t="Invalid date";break;case se.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(t=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?t=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?t=`Invalid input: must end with "${e.validation.endsWith}"`:yn.assertNever(e.validation):e.validation!=="regex"?t=`Invalid ${e.validation}`:t="Invalid";break;case se.too_small:e.type==="array"?t=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?t=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?t=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?t=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?t=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:t="Invalid input";break;case se.too_big:e.type==="array"?t=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?t=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?t=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?t=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?t=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:t="Invalid input";break;case se.custom:t="Invalid input";break;case se.invalid_intersection_types:t="Intersection results could not be merged";break;case se.not_multiple_of:t=`Number must be a multiple of ${e.multipleOf}`;break;case se.not_finite:t="Number must be finite";break;default:t=n.defaultError,yn.assertNever(e)}return{message:t}},ws=$1e;var fK=ws;function L1e(e){fK=e}function sl(){return fK}var fm=e=>{let{data:n,path:t,errorMaps:r,issueData:o}=e,i=[...t,...o.path||[]],s={...o,path:i};if(o.message!==void 0)return{...o,path:i,message:o.message};let a="",d=r.filter(u=>!!u).slice().reverse();for(let u of d)a=u(s,{data:n,defaultError:a}).message;return{...o,path:i,message:a}},j1e=[];function he(e,n){let t=sl(),r=fm({issueData:n,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,t,t===ws?void 0:ws].filter(o=>!!o)});e.common.issues.push(r)}var or=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(n,t){let r=[];for(let o of t){if(o.status==="aborted")return Ke;o.status==="dirty"&&n.dirty(),r.push(o.value)}return{status:n.value,value:r}}static async mergeObjectAsync(n,t){let r=[];for(let o of t){let i=await o.key,s=await o.value;r.push({key:i,value:s})}return e.mergeObjectSync(n,r)}static mergeObjectSync(n,t){let r={};for(let o of t){let{key:i,value:s}=o;if(i.status==="aborted"||s.status==="aborted")return Ke;i.status==="dirty"&&n.dirty(),s.status==="dirty"&&n.dirty(),i.value!=="__proto__"&&(typeof s.value<"u"||o.alwaysSet)&&(r[i.value]=s.value)}return{status:n.value,value:r}}},Ke=Object.freeze({status:"aborted"}),Rd=e=>({status:"dirty",value:e}),br=e=>({status:"valid",value:e}),H0=e=>e.status==="aborted",G0=e=>e.status==="dirty",ia=e=>e.status==="valid",al=e=>typeof Promise<"u"&&e instanceof Promise;var Me;(function(e){e.errToObj=n=>typeof n=="string"?{message:n}:n||{},e.toString=n=>typeof n=="string"?n:n?.message})(Me||(Me={}));var To=class{constructor(n,t,r,o){this._cachedPath=[],this.parent=n,this.data=t,this._path=r,this._key=o}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},mK=(e,n)=>{if(ia(n))return{success:!0,data:n.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let t=new Jr(e.common.issues);return this._error=t,this._error}}};function tn(e){if(!e)return{};let{errorMap:n,invalid_type_error:t,required_error:r,description:o}=e;if(n&&(t||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return n?{errorMap:n,description:o}:{errorMap:(s,a)=>{let{message:d}=e;return s.code==="invalid_enum_value"?{message:d??a.defaultError}:typeof a.data>"u"?{message:d??r??a.defaultError}:s.code!=="invalid_type"?{message:a.defaultError}:{message:d??t??a.defaultError}},description:o}}var cn=class{get description(){return this._def.description}_getType(n){return Oi(n.data)}_getOrReturnCtx(n,t){return t||{common:n.parent.common,data:n.data,parsedType:Oi(n.data),schemaErrorMap:this._def.errorMap,path:n.path,parent:n.parent}}_processInputParams(n){return{status:new or,ctx:{common:n.parent.common,data:n.data,parsedType:Oi(n.data),schemaErrorMap:this._def.errorMap,path:n.path,parent:n.parent}}}_parseSync(n){let t=this._parse(n);if(al(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(n){let t=this._parse(n);return Promise.resolve(t)}parse(n,t){let r=this.safeParse(n,t);if(r.success)return r.data;throw r.error}safeParse(n,t){let r={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Oi(n)},o=this._parseSync({data:n,path:r.path,parent:r});return mK(r,o)}"~validate"(n){let t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Oi(n)};if(!this["~standard"].async)try{let r=this._parseSync({data:n,path:[],parent:t});return ia(r)?{value:r.value}:{issues:t.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:n,path:[],parent:t}).then(r=>ia(r)?{value:r.value}:{issues:t.common.issues})}async parseAsync(n,t){let r=await this.safeParseAsync(n,t);if(r.success)return r.data;throw r.error}async safeParseAsync(n,t){let r={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Oi(n)},o=this._parse({data:n,path:r.path,parent:r}),i=await(al(o)?o:Promise.resolve(o));return mK(r,i)}refine(n,t){let r=o=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(o):t;return this._refinement((o,i)=>{let s=n(o),a=()=>i.addIssue({code:se.custom,...r(o)});return typeof Promise<"u"&&s instanceof Promise?s.then(d=>d?!0:(a(),!1)):s?!0:(a(),!1)})}refinement(n,t){return this._refinement((r,o)=>n(r)?!0:(o.addIssue(typeof t=="function"?t(r,o):t),!1))}_refinement(n){return new Po({schema:this,typeName:de.ZodEffects,effect:{type:"refinement",refinement:n}})}superRefine(n){return this._refinement(n)}constructor(n){this.spa=this.safeParseAsync,this._def=n,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:t=>this["~validate"](t)}}optional(){return Kr.create(this,this._def)}nullable(){return Li.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ks.create(this)}promise(){return da.create(this,this._def)}or(n){return Ld.create([this,n],this._def)}and(n){return jd.create(this,n,this._def)}transform(n){return new Po({...tn(this._def),schema:this,typeName:de.ZodEffects,effect:{type:"transform",transform:n}})}default(n){let t=typeof n=="function"?n:()=>n;return new Ud({...tn(this._def),innerType:this,defaultValue:t,typeName:de.ZodDefault})}brand(){return new mm({typeName:de.ZodBranded,type:this,...tn(this._def)})}catch(n){let t=typeof n=="function"?n:()=>n;return new Bd({...tn(this._def),innerType:this,catchValue:t,typeName:de.ZodCatch})}describe(n){let t=this.constructor;return new t({...this._def,description:n})}pipe(n){return hm.create(this,n)}readonly(){return Jd.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},F1e=/^c[^\s-]{8,}$/i,q1e=/^[0-9a-z]+$/,z1e=/^[0-9A-HJKMNP-TV-Z]{26}$/i,N1e=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,U1e=/^[a-z0-9_-]{21}$/i,B1e=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,J1e=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,K1e=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,V1e="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",HI,W1e=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,H1e=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,G1e=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Z1e=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Q1e=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,X1e=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,gK="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Y1e=new RegExp(`^${gK}$`);function yK(e){let n="[0-5]\\d";e.precision?n=`${n}\\.\\d{${e.precision}}`:e.precision==null&&(n=`${n}(\\.\\d+)?`);let t=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${n})${t}`}function eDe(e){return new RegExp(`^${yK(e)}$`)}function xK(e){let n=`${gK}T${yK(e)}`,t=[];return t.push(e.local?"Z?":"Z"),e.offset&&t.push("([+-]\\d{2}:?\\d{2})"),n=`${n}(${t.join("|")})`,new RegExp(`^${n}$`)}function nDe(e,n){return!!((n==="v4"||!n)&&W1e.test(e)||(n==="v6"||!n)&&G1e.test(e))}function tDe(e,n){if(!B1e.test(e))return!1;try{let[t]=e.split(".");if(!t)return!1;let r=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),o=JSON.parse(atob(r));return!(typeof o!="object"||o===null||"typ"in o&&o?.typ!=="JWT"||!o.alg||n&&o.alg!==n)}catch{return!1}}function rDe(e,n){return!!((n==="v4"||!n)&&H1e.test(e)||(n==="v6"||!n)&&Z1e.test(e))}var sa=class e extends cn{_parse(n){if(this._def.coerce&&(n.data=String(n.data)),this._getType(n)!==_e.string){let i=this._getOrReturnCtx(n);return he(i,{code:se.invalid_type,expected:_e.string,received:i.parsedType}),Ke}let r=new or,o;for(let i of this._def.checks)if(i.kind==="min")n.data.length<i.value&&(o=this._getOrReturnCtx(n,o),he(o,{code:se.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),r.dirty());else if(i.kind==="max")n.data.length>i.value&&(o=this._getOrReturnCtx(n,o),he(o,{code:se.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),r.dirty());else if(i.kind==="length"){let s=n.data.length>i.value,a=n.data.length<i.value;(s||a)&&(o=this._getOrReturnCtx(n,o),s?he(o,{code:se.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}):a&&he(o,{code:se.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}),r.dirty())}else if(i.kind==="email")K1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"email",code:se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="emoji")HI||(HI=new RegExp(V1e,"u")),HI.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"emoji",code:se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="uuid")N1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"uuid",code:se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="nanoid")U1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"nanoid",code:se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="cuid")F1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"cuid",code:se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="cuid2")q1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"cuid2",code:se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="ulid")z1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"ulid",code:se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="url")try{new URL(n.data)}catch{o=this._getOrReturnCtx(n,o),he(o,{validation:"url",code:se.invalid_string,message:i.message}),r.dirty()}else i.kind==="regex"?(i.regex.lastIndex=0,i.regex.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"regex",code:se.invalid_string,message:i.message}),r.dirty())):i.kind==="trim"?n.data=n.data.trim():i.kind==="includes"?n.data.includes(i.value,i.position)||(o=this._getOrReturnCtx(n,o),he(o,{code:se.invalid_string,validation:{includes:i.value,position:i.position},message:i.message}),r.dirty()):i.kind==="toLowerCase"?n.data=n.data.toLowerCase():i.kind==="toUpperCase"?n.data=n.data.toUpperCase():i.kind==="startsWith"?n.data.startsWith(i.value)||(o=this._getOrReturnCtx(n,o),he(o,{code:se.invalid_string,validation:{startsWith:i.value},message:i.message}),r.dirty()):i.kind==="endsWith"?n.data.endsWith(i.value)||(o=this._getOrReturnCtx(n,o),he(o,{code:se.invalid_string,validation:{endsWith:i.value},message:i.message}),r.dirty()):i.kind==="datetime"?xK(i).test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{code:se.invalid_string,validation:"datetime",message:i.message}),r.dirty()):i.kind==="date"?Y1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{code:se.invalid_string,validation:"date",message:i.message}),r.dirty()):i.kind==="time"?eDe(i).test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{code:se.invalid_string,validation:"time",message:i.message}),r.dirty()):i.kind==="duration"?J1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"duration",code:se.invalid_string,message:i.message}),r.dirty()):i.kind==="ip"?nDe(n.data,i.version)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"ip",code:se.invalid_string,message:i.message}),r.dirty()):i.kind==="jwt"?tDe(n.data,i.alg)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"jwt",code:se.invalid_string,message:i.message}),r.dirty()):i.kind==="cidr"?rDe(n.data,i.version)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"cidr",code:se.invalid_string,message:i.message}),r.dirty()):i.kind==="base64"?Q1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"base64",code:se.invalid_string,message:i.message}),r.dirty()):i.kind==="base64url"?X1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"base64url",code:se.invalid_string,message:i.message}),r.dirty()):yn.assertNever(i);return{status:r.value,value:n.data}}_regex(n,t,r){return this.refinement(o=>n.test(o),{validation:t,code:se.invalid_string,...Me.errToObj(r)})}_addCheck(n){return new e({...this._def,checks:[...this._def.checks,n]})}email(n){return this._addCheck({kind:"email",...Me.errToObj(n)})}url(n){return this._addCheck({kind:"url",...Me.errToObj(n)})}emoji(n){return this._addCheck({kind:"emoji",...Me.errToObj(n)})}uuid(n){return this._addCheck({kind:"uuid",...Me.errToObj(n)})}nanoid(n){return this._addCheck({kind:"nanoid",...Me.errToObj(n)})}cuid(n){return this._addCheck({kind:"cuid",...Me.errToObj(n)})}cuid2(n){return this._addCheck({kind:"cuid2",...Me.errToObj(n)})}ulid(n){return this._addCheck({kind:"ulid",...Me.errToObj(n)})}base64(n){return this._addCheck({kind:"base64",...Me.errToObj(n)})}base64url(n){return this._addCheck({kind:"base64url",...Me.errToObj(n)})}jwt(n){return this._addCheck({kind:"jwt",...Me.errToObj(n)})}ip(n){return this._addCheck({kind:"ip",...Me.errToObj(n)})}cidr(n){return this._addCheck({kind:"cidr",...Me.errToObj(n)})}datetime(n){return typeof n=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:n}):this._addCheck({kind:"datetime",precision:typeof n?.precision>"u"?null:n?.precision,offset:n?.offset??!1,local:n?.local??!1,...Me.errToObj(n?.message)})}date(n){return this._addCheck({kind:"date",message:n})}time(n){return typeof n=="string"?this._addCheck({kind:"time",precision:null,message:n}):this._addCheck({kind:"time",precision:typeof n?.precision>"u"?null:n?.precision,...Me.errToObj(n?.message)})}duration(n){return this._addCheck({kind:"duration",...Me.errToObj(n)})}regex(n,t){return this._addCheck({kind:"regex",regex:n,...Me.errToObj(t)})}includes(n,t){return this._addCheck({kind:"includes",value:n,position:t?.position,...Me.errToObj(t?.message)})}startsWith(n,t){return this._addCheck({kind:"startsWith",value:n,...Me.errToObj(t)})}endsWith(n,t){return this._addCheck({kind:"endsWith",value:n,...Me.errToObj(t)})}min(n,t){return this._addCheck({kind:"min",value:n,...Me.errToObj(t)})}max(n,t){return this._addCheck({kind:"max",value:n,...Me.errToObj(t)})}length(n,t){return this._addCheck({kind:"length",value:n,...Me.errToObj(t)})}nonempty(n){return this.min(1,Me.errToObj(n))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(n=>n.kind==="datetime")}get isDate(){return!!this._def.checks.find(n=>n.kind==="date")}get isTime(){return!!this._def.checks.find(n=>n.kind==="time")}get isDuration(){return!!this._def.checks.find(n=>n.kind==="duration")}get isEmail(){return!!this._def.checks.find(n=>n.kind==="email")}get isURL(){return!!this._def.checks.find(n=>n.kind==="url")}get isEmoji(){return!!this._def.checks.find(n=>n.kind==="emoji")}get isUUID(){return!!this._def.checks.find(n=>n.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(n=>n.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(n=>n.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(n=>n.kind==="cuid2")}get isULID(){return!!this._def.checks.find(n=>n.kind==="ulid")}get isIP(){return!!this._def.checks.find(n=>n.kind==="ip")}get isCIDR(){return!!this._def.checks.find(n=>n.kind==="cidr")}get isBase64(){return!!this._def.checks.find(n=>n.kind==="base64")}get isBase64url(){return!!this._def.checks.find(n=>n.kind==="base64url")}get minLength(){let n=null;for(let t of this._def.checks)t.kind==="min"&&(n===null||t.value>n)&&(n=t.value);return n}get maxLength(){let n=null;for(let t of this._def.checks)t.kind==="max"&&(n===null||t.value<n)&&(n=t.value);return n}};sa.create=e=>new sa({checks:[],typeName:de.ZodString,coerce:e?.coerce??!1,...tn(e)});function oDe(e,n){let t=(e.toString().split(".")[1]||"").length,r=(n.toString().split(".")[1]||"").length,o=t>r?t:r,i=Number.parseInt(e.toFixed(o).replace(".","")),s=Number.parseInt(n.toFixed(o).replace(".",""));return i%s/10**o}var Ed=class e extends cn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(n){if(this._def.coerce&&(n.data=Number(n.data)),this._getType(n)!==_e.number){let i=this._getOrReturnCtx(n);return he(i,{code:se.invalid_type,expected:_e.number,received:i.parsedType}),Ke}let r,o=new or;for(let i of this._def.checks)i.kind==="int"?yn.isInteger(n.data)||(r=this._getOrReturnCtx(n,r),he(r,{code:se.invalid_type,expected:"integer",received:"float",message:i.message}),o.dirty()):i.kind==="min"?(i.inclusive?n.data<i.value:n.data<=i.value)&&(r=this._getOrReturnCtx(n,r),he(r,{code:se.too_small,minimum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),o.dirty()):i.kind==="max"?(i.inclusive?n.data>i.value:n.data>=i.value)&&(r=this._getOrReturnCtx(n,r),he(r,{code:se.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),o.dirty()):i.kind==="multipleOf"?oDe(n.data,i.value)!==0&&(r=this._getOrReturnCtx(n,r),he(r,{code:se.not_multiple_of,multipleOf:i.value,message:i.message}),o.dirty()):i.kind==="finite"?Number.isFinite(n.data)||(r=this._getOrReturnCtx(n,r),he(r,{code:se.not_finite,message:i.message}),o.dirty()):yn.assertNever(i);return{status:o.value,value:n.data}}gte(n,t){return this.setLimit("min",n,!0,Me.toString(t))}gt(n,t){return this.setLimit("min",n,!1,Me.toString(t))}lte(n,t){return this.setLimit("max",n,!0,Me.toString(t))}lt(n,t){return this.setLimit("max",n,!1,Me.toString(t))}setLimit(n,t,r,o){return new e({...this._def,checks:[...this._def.checks,{kind:n,value:t,inclusive:r,message:Me.toString(o)}]})}_addCheck(n){return new e({...this._def,checks:[...this._def.checks,n]})}int(n){return this._addCheck({kind:"int",message:Me.toString(n)})}positive(n){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Me.toString(n)})}negative(n){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Me.toString(n)})}nonpositive(n){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Me.toString(n)})}nonnegative(n){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Me.toString(n)})}multipleOf(n,t){return this._addCheck({kind:"multipleOf",value:n,message:Me.toString(t)})}finite(n){return this._addCheck({kind:"finite",message:Me.toString(n)})}safe(n){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Me.toString(n)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Me.toString(n)})}get minValue(){let n=null;for(let t of this._def.checks)t.kind==="min"&&(n===null||t.value>n)&&(n=t.value);return n}get maxValue(){let n=null;for(let t of this._def.checks)t.kind==="max"&&(n===null||t.value<n)&&(n=t.value);return n}get isInt(){return!!this._def.checks.find(n=>n.kind==="int"||n.kind==="multipleOf"&&yn.isInteger(n.value))}get isFinite(){let n=null,t=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(t===null||r.value>t)&&(t=r.value):r.kind==="max"&&(n===null||r.value<n)&&(n=r.value)}return Number.isFinite(t)&&Number.isFinite(n)}};Ed.create=e=>new Ed({checks:[],typeName:de.ZodNumber,coerce:e?.coerce||!1,...tn(e)});var Dd=class e extends cn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(n){if(this._def.coerce)try{n.data=BigInt(n.data)}catch{return this._getInvalidInput(n)}if(this._getType(n)!==_e.bigint)return this._getInvalidInput(n);let r,o=new or;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?n.data<i.value:n.data<=i.value)&&(r=this._getOrReturnCtx(n,r),he(r,{code:se.too_small,type:"bigint",minimum:i.value,inclusive:i.inclusive,message:i.message}),o.dirty()):i.kind==="max"?(i.inclusive?n.data>i.value:n.data>=i.value)&&(r=this._getOrReturnCtx(n,r),he(r,{code:se.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),o.dirty()):i.kind==="multipleOf"?n.data%i.value!==BigInt(0)&&(r=this._getOrReturnCtx(n,r),he(r,{code:se.not_multiple_of,multipleOf:i.value,message:i.message}),o.dirty()):yn.assertNever(i);return{status:o.value,value:n.data}}_getInvalidInput(n){let t=this._getOrReturnCtx(n);return he(t,{code:se.invalid_type,expected:_e.bigint,received:t.parsedType}),Ke}gte(n,t){return this.setLimit("min",n,!0,Me.toString(t))}gt(n,t){return this.setLimit("min",n,!1,Me.toString(t))}lte(n,t){return this.setLimit("max",n,!0,Me.toString(t))}lt(n,t){return this.setLimit("max",n,!1,Me.toString(t))}setLimit(n,t,r,o){return new e({...this._def,checks:[...this._def.checks,{kind:n,value:t,inclusive:r,message:Me.toString(o)}]})}_addCheck(n){return new e({...this._def,checks:[...this._def.checks,n]})}positive(n){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Me.toString(n)})}negative(n){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Me.toString(n)})}nonpositive(n){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Me.toString(n)})}nonnegative(n){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Me.toString(n)})}multipleOf(n,t){return this._addCheck({kind:"multipleOf",value:n,message:Me.toString(t)})}get minValue(){let n=null;for(let t of this._def.checks)t.kind==="min"&&(n===null||t.value>n)&&(n=t.value);return n}get maxValue(){let n=null;for(let t of this._def.checks)t.kind==="max"&&(n===null||t.value<n)&&(n=t.value);return n}};Dd.create=e=>new Dd({checks:[],typeName:de.ZodBigInt,coerce:e?.coerce??!1,...tn(e)});var Md=class extends cn{_parse(n){if(this._def.coerce&&(n.data=!!n.data),this._getType(n)!==_e.boolean){let r=this._getOrReturnCtx(n);return he(r,{code:se.invalid_type,expected:_e.boolean,received:r.parsedType}),Ke}return br(n.data)}};Md.create=e=>new Md({typeName:de.ZodBoolean,coerce:e?.coerce||!1,...tn(e)});var Ad=class e extends cn{_parse(n){if(this._def.coerce&&(n.data=new Date(n.data)),this._getType(n)!==_e.date){let i=this._getOrReturnCtx(n);return he(i,{code:se.invalid_type,expected:_e.date,received:i.parsedType}),Ke}if(Number.isNaN(n.data.getTime())){let i=this._getOrReturnCtx(n);return he(i,{code:se.invalid_date}),Ke}let r=new or,o;for(let i of this._def.checks)i.kind==="min"?n.data.getTime()<i.value&&(o=this._getOrReturnCtx(n,o),he(o,{code:se.too_small,message:i.message,inclusive:!0,exact:!1,minimum:i.value,type:"date"}),r.dirty()):i.kind==="max"?n.data.getTime()>i.value&&(o=this._getOrReturnCtx(n,o),he(o,{code:se.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),r.dirty()):yn.assertNever(i);return{status:r.value,value:new Date(n.data.getTime())}}_addCheck(n){return new e({...this._def,checks:[...this._def.checks,n]})}min(n,t){return this._addCheck({kind:"min",value:n.getTime(),message:Me.toString(t)})}max(n,t){return this._addCheck({kind:"max",value:n.getTime(),message:Me.toString(t)})}get minDate(){let n=null;for(let t of this._def.checks)t.kind==="min"&&(n===null||t.value>n)&&(n=t.value);return n!=null?new Date(n):null}get maxDate(){let n=null;for(let t of this._def.checks)t.kind==="max"&&(n===null||t.value<n)&&(n=t.value);return n!=null?new Date(n):null}};Ad.create=e=>new Ad({checks:[],coerce:e?.coerce||!1,typeName:de.ZodDate,...tn(e)});var ul=class extends cn{_parse(n){if(this._getType(n)!==_e.symbol){let r=this._getOrReturnCtx(n);return he(r,{code:se.invalid_type,expected:_e.symbol,received:r.parsedType}),Ke}return br(n.data)}};ul.create=e=>new ul({typeName:de.ZodSymbol,...tn(e)});var Od=class extends cn{_parse(n){if(this._getType(n)!==_e.undefined){let r=this._getOrReturnCtx(n);return he(r,{code:se.invalid_type,expected:_e.undefined,received:r.parsedType}),Ke}return br(n.data)}};Od.create=e=>new Od({typeName:de.ZodUndefined,...tn(e)});var $d=class extends cn{_parse(n){if(this._getType(n)!==_e.null){let r=this._getOrReturnCtx(n);return he(r,{code:se.invalid_type,expected:_e.null,received:r.parsedType}),Ke}return br(n.data)}};$d.create=e=>new $d({typeName:de.ZodNull,...tn(e)});var aa=class extends cn{constructor(){super(...arguments),this._any=!0}_parse(n){return br(n.data)}};aa.create=e=>new aa({typeName:de.ZodAny,...tn(e)});var Ss=class extends cn{constructor(){super(...arguments),this._unknown=!0}_parse(n){return br(n.data)}};Ss.create=e=>new Ss({typeName:de.ZodUnknown,...tn(e)});var ii=class extends cn{_parse(n){let t=this._getOrReturnCtx(n);return he(t,{code:se.invalid_type,expected:_e.never,received:t.parsedType}),Ke}};ii.create=e=>new ii({typeName:de.ZodNever,...tn(e)});var cl=class extends cn{_parse(n){if(this._getType(n)!==_e.undefined){let r=this._getOrReturnCtx(n);return he(r,{code:se.invalid_type,expected:_e.void,received:r.parsedType}),Ke}return br(n.data)}};cl.create=e=>new cl({typeName:de.ZodVoid,...tn(e)});var ks=class e extends cn{_parse(n){let{ctx:t,status:r}=this._processInputParams(n),o=this._def;if(t.parsedType!==_e.array)return he(t,{code:se.invalid_type,expected:_e.array,received:t.parsedType}),Ke;if(o.exactLength!==null){let s=t.data.length>o.exactLength.value,a=t.data.length<o.exactLength.value;(s||a)&&(he(t,{code:s?se.too_big:se.too_small,minimum:a?o.exactLength.value:void 0,maximum:s?o.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:o.exactLength.message}),r.dirty())}if(o.minLength!==null&&t.data.length<o.minLength.value&&(he(t,{code:se.too_small,minimum:o.minLength.value,type:"array",inclusive:!0,exact:!1,message:o.minLength.message}),r.dirty()),o.maxLength!==null&&t.data.length>o.maxLength.value&&(he(t,{code:se.too_big,maximum:o.maxLength.value,type:"array",inclusive:!0,exact:!1,message:o.maxLength.message}),r.dirty()),t.common.async)return Promise.all([...t.data].map((s,a)=>o.type._parseAsync(new To(t,s,t.path,a)))).then(s=>or.mergeArray(r,s));let i=[...t.data].map((s,a)=>o.type._parseSync(new To(t,s,t.path,a)));return or.mergeArray(r,i)}get element(){return this._def.type}min(n,t){return new e({...this._def,minLength:{value:n,message:Me.toString(t)}})}max(n,t){return new e({...this._def,maxLength:{value:n,message:Me.toString(t)}})}length(n,t){return new e({...this._def,exactLength:{value:n,message:Me.toString(t)}})}nonempty(n){return this.min(1,n)}};ks.create=(e,n)=>new ks({type:e,minLength:null,maxLength:null,exactLength:null,typeName:de.ZodArray,...tn(n)});function dl(e){if(e instanceof Vr){let n={};for(let t in e.shape){let r=e.shape[t];n[t]=Kr.create(dl(r))}return new Vr({...e._def,shape:()=>n})}else return e instanceof ks?new ks({...e._def,type:dl(e.element)}):e instanceof Kr?Kr.create(dl(e.unwrap())):e instanceof Li?Li.create(dl(e.unwrap())):e instanceof $i?$i.create(e.items.map(n=>dl(n))):e}var Vr=class e extends cn{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let n=this._def.shape(),t=yn.objectKeys(n);return this._cached={shape:n,keys:t},this._cached}_parse(n){if(this._getType(n)!==_e.object){let u=this._getOrReturnCtx(n);return he(u,{code:se.invalid_type,expected:_e.object,received:u.parsedType}),Ke}let{status:r,ctx:o}=this._processInputParams(n),{shape:i,keys:s}=this._getCached(),a=[];if(!(this._def.catchall instanceof ii&&this._def.unknownKeys==="strip"))for(let u in o.data)s.includes(u)||a.push(u);let d=[];for(let u of s){let c=i[u],l=o.data[u];d.push({key:{status:"valid",value:u},value:c._parse(new To(o,l,o.path,u)),alwaysSet:u in o.data})}if(this._def.catchall instanceof ii){let u=this._def.unknownKeys;if(u==="passthrough")for(let c of a)d.push({key:{status:"valid",value:c},value:{status:"valid",value:o.data[c]}});else if(u==="strict")a.length>0&&(he(o,{code:se.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let c of a){let l=o.data[c];d.push({key:{status:"valid",value:c},value:u._parse(new To(o,l,o.path,c)),alwaysSet:c in o.data})}}return o.common.async?Promise.resolve().then(async()=>{let u=[];for(let c of d){let l=await c.key,p=await c.value;u.push({key:l,value:p,alwaysSet:c.alwaysSet})}return u}).then(u=>or.mergeObjectSync(r,u)):or.mergeObjectSync(r,d)}get shape(){return this._def.shape()}strict(n){return Me.errToObj,new e({...this._def,unknownKeys:"strict",...n!==void 0?{errorMap:(t,r)=>{let o=this._def.errorMap?.(t,r).message??r.defaultError;return t.code==="unrecognized_keys"?{message:Me.errToObj(n).message??o}:{message:o}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(n){return new e({...this._def,shape:()=>({...this._def.shape(),...n})})}merge(n){return new e({unknownKeys:n._def.unknownKeys,catchall:n._def.catchall,shape:()=>({...this._def.shape(),...n._def.shape()}),typeName:de.ZodObject})}setKey(n,t){return this.augment({[n]:t})}catchall(n){return new e({...this._def,catchall:n})}pick(n){let t={};for(let r of yn.objectKeys(n))n[r]&&this.shape[r]&&(t[r]=this.shape[r]);return new e({...this._def,shape:()=>t})}omit(n){let t={};for(let r of yn.objectKeys(this.shape))n[r]||(t[r]=this.shape[r]);return new e({...this._def,shape:()=>t})}deepPartial(){return dl(this)}partial(n){let t={};for(let r of yn.objectKeys(this.shape)){let o=this.shape[r];n&&!n[r]?t[r]=o:t[r]=o.optional()}return new e({...this._def,shape:()=>t})}required(n){let t={};for(let r of yn.objectKeys(this.shape))if(n&&!n[r])t[r]=this.shape[r];else{let i=this.shape[r];for(;i instanceof Kr;)i=i._def.innerType;t[r]=i}return new e({...this._def,shape:()=>t})}keyof(){return _K(yn.objectKeys(this.shape))}};Vr.create=(e,n)=>new Vr({shape:()=>e,unknownKeys:"strip",catchall:ii.create(),typeName:de.ZodObject,...tn(n)});Vr.strictCreate=(e,n)=>new Vr({shape:()=>e,unknownKeys:"strict",catchall:ii.create(),typeName:de.ZodObject,...tn(n)});Vr.lazycreate=(e,n)=>new Vr({shape:e,unknownKeys:"strip",catchall:ii.create(),typeName:de.ZodObject,...tn(n)});var Ld=class extends cn{_parse(n){let{ctx:t}=this._processInputParams(n),r=this._def.options;function o(i){for(let a of i)if(a.result.status==="valid")return a.result;for(let a of i)if(a.result.status==="dirty")return t.common.issues.push(...a.ctx.common.issues),a.result;let s=i.map(a=>new Jr(a.ctx.common.issues));return he(t,{code:se.invalid_union,unionErrors:s}),Ke}if(t.common.async)return Promise.all(r.map(async i=>{let s={...t,common:{...t.common,issues:[]},parent:null};return{result:await i._parseAsync({data:t.data,path:t.path,parent:s}),ctx:s}})).then(o);{let i,s=[];for(let d of r){let u={...t,common:{...t.common,issues:[]},parent:null},c=d._parseSync({data:t.data,path:t.path,parent:u});if(c.status==="valid")return c;c.status==="dirty"&&!i&&(i={result:c,ctx:u}),u.common.issues.length&&s.push(u.common.issues)}if(i)return t.common.issues.push(...i.ctx.common.issues),i.result;let a=s.map(d=>new Jr(d));return he(t,{code:se.invalid_union,unionErrors:a}),Ke}}get options(){return this._def.options}};Ld.create=(e,n)=>new Ld({options:e,typeName:de.ZodUnion,...tn(n)});var vs=e=>e instanceof Fd?vs(e.schema):e instanceof Po?vs(e.innerType()):e instanceof qd?[e.value]:e instanceof zd?e.options:e instanceof Nd?yn.objectValues(e.enum):e instanceof Ud?vs(e._def.innerType):e instanceof Od?[void 0]:e instanceof $d?[null]:e instanceof Kr?[void 0,...vs(e.unwrap())]:e instanceof Li?[null,...vs(e.unwrap())]:e instanceof mm||e instanceof Jd?vs(e.unwrap()):e instanceof Bd?vs(e._def.innerType):[],Z0=class e extends cn{_parse(n){let{ctx:t}=this._processInputParams(n);if(t.parsedType!==_e.object)return he(t,{code:se.invalid_type,expected:_e.object,received:t.parsedType}),Ke;let r=this.discriminator,o=t.data[r],i=this.optionsMap.get(o);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(he(t,{code:se.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Ke)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(n,t,r){let o=new Map;for(let i of t){let s=vs(i.shape[n]);if(!s.length)throw new Error(`A discriminator value for key \`${n}\` could not be extracted from all schema options`);for(let a of s){if(o.has(a))throw new Error(`Discriminator property ${String(n)} has duplicate value ${String(a)}`);o.set(a,i)}}return new e({typeName:de.ZodDiscriminatedUnion,discriminator:n,options:t,optionsMap:o,...tn(r)})}};function GI(e,n){let t=Oi(e),r=Oi(n);if(e===n)return{valid:!0,data:e};if(t===_e.object&&r===_e.object){let o=yn.objectKeys(n),i=yn.objectKeys(e).filter(a=>o.indexOf(a)!==-1),s={...e,...n};for(let a of i){let d=GI(e[a],n[a]);if(!d.valid)return{valid:!1};s[a]=d.data}return{valid:!0,data:s}}else if(t===_e.array&&r===_e.array){if(e.length!==n.length)return{valid:!1};let o=[];for(let i=0;i<e.length;i++){let s=e[i],a=n[i],d=GI(s,a);if(!d.valid)return{valid:!1};o.push(d.data)}return{valid:!0,data:o}}else return t===_e.date&&r===_e.date&&+e==+n?{valid:!0,data:e}:{valid:!1}}var jd=class extends cn{_parse(n){let{status:t,ctx:r}=this._processInputParams(n),o=(i,s)=>{if(H0(i)||H0(s))return Ke;let a=GI(i.value,s.value);return a.valid?((G0(i)||G0(s))&&t.dirty(),{status:t.value,value:a.data}):(he(r,{code:se.invalid_intersection_types}),Ke)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([i,s])=>o(i,s)):o(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};jd.create=(e,n,t)=>new jd({left:e,right:n,typeName:de.ZodIntersection,...tn(t)});var $i=class e extends cn{_parse(n){let{status:t,ctx:r}=this._processInputParams(n);if(r.parsedType!==_e.array)return he(r,{code:se.invalid_type,expected:_e.array,received:r.parsedType}),Ke;if(r.data.length<this._def.items.length)return he(r,{code:se.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Ke;!this._def.rest&&r.data.length>this._def.items.length&&(he(r,{code:se.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());let i=[...r.data].map((s,a)=>{let d=this._def.items[a]||this._def.rest;return d?d._parse(new To(r,s,r.path,a)):null}).filter(s=>!!s);return r.common.async?Promise.all(i).then(s=>or.mergeArray(t,s)):or.mergeArray(t,i)}get items(){return this._def.items}rest(n){return new e({...this._def,rest:n})}};$i.create=(e,n)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new $i({items:e,typeName:de.ZodTuple,rest:null,...tn(n)})};var Q0=class e extends cn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(n){let{status:t,ctx:r}=this._processInputParams(n);if(r.parsedType!==_e.object)return he(r,{code:se.invalid_type,expected:_e.object,received:r.parsedType}),Ke;let o=[],i=this._def.keyType,s=this._def.valueType;for(let a in r.data)o.push({key:i._parse(new To(r,a,r.path,a)),value:s._parse(new To(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?or.mergeObjectAsync(t,o):or.mergeObjectSync(t,o)}get element(){return this._def.valueType}static create(n,t,r){return t instanceof cn?new e({keyType:n,valueType:t,typeName:de.ZodRecord,...tn(r)}):new e({keyType:sa.create(),valueType:n,typeName:de.ZodRecord,...tn(t)})}},ll=class extends cn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(n){let{status:t,ctx:r}=this._processInputParams(n);if(r.parsedType!==_e.map)return he(r,{code:se.invalid_type,expected:_e.map,received:r.parsedType}),Ke;let o=this._def.keyType,i=this._def.valueType,s=[...r.data.entries()].map(([a,d],u)=>({key:o._parse(new To(r,a,r.path,[u,"key"])),value:i._parse(new To(r,d,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let d of s){let u=await d.key,c=await d.value;if(u.status==="aborted"||c.status==="aborted")return Ke;(u.status==="dirty"||c.status==="dirty")&&t.dirty(),a.set(u.value,c.value)}return{status:t.value,value:a}})}else{let a=new Map;for(let d of s){let u=d.key,c=d.value;if(u.status==="aborted"||c.status==="aborted")return Ke;(u.status==="dirty"||c.status==="dirty")&&t.dirty(),a.set(u.value,c.value)}return{status:t.value,value:a}}}};ll.create=(e,n,t)=>new ll({valueType:n,keyType:e,typeName:de.ZodMap,...tn(t)});var pl=class e extends cn{_parse(n){let{status:t,ctx:r}=this._processInputParams(n);if(r.parsedType!==_e.set)return he(r,{code:se.invalid_type,expected:_e.set,received:r.parsedType}),Ke;let o=this._def;o.minSize!==null&&r.data.size<o.minSize.value&&(he(r,{code:se.too_small,minimum:o.minSize.value,type:"set",inclusive:!0,exact:!1,message:o.minSize.message}),t.dirty()),o.maxSize!==null&&r.data.size>o.maxSize.value&&(he(r,{code:se.too_big,maximum:o.maxSize.value,type:"set",inclusive:!0,exact:!1,message:o.maxSize.message}),t.dirty());let i=this._def.valueType;function s(d){let u=new Set;for(let c of d){if(c.status==="aborted")return Ke;c.status==="dirty"&&t.dirty(),u.add(c.value)}return{status:t.value,value:u}}let a=[...r.data.values()].map((d,u)=>i._parse(new To(r,d,r.path,u)));return r.common.async?Promise.all(a).then(d=>s(d)):s(a)}min(n,t){return new e({...this._def,minSize:{value:n,message:Me.toString(t)}})}max(n,t){return new e({...this._def,maxSize:{value:n,message:Me.toString(t)}})}size(n,t){return this.min(n,t).max(n,t)}nonempty(n){return this.min(1,n)}};pl.create=(e,n)=>new pl({valueType:e,minSize:null,maxSize:null,typeName:de.ZodSet,...tn(n)});var X0=class e extends cn{constructor(){super(...arguments),this.validate=this.implement}_parse(n){let{ctx:t}=this._processInputParams(n);if(t.parsedType!==_e.function)return he(t,{code:se.invalid_type,expected:_e.function,received:t.parsedType}),Ke;function r(a,d){return fm({data:a,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,sl(),ws].filter(u=>!!u),issueData:{code:se.invalid_arguments,argumentsError:d}})}function o(a,d){return fm({data:a,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,sl(),ws].filter(u=>!!u),issueData:{code:se.invalid_return_type,returnTypeError:d}})}let i={errorMap:t.common.contextualErrorMap},s=t.data;if(this._def.returns instanceof da){let a=this;return br(async function(...d){let u=new Jr([]),c=await a._def.args.parseAsync(d,i).catch(m=>{throw u.addIssue(r(d,m)),u}),l=await Reflect.apply(s,this,c);return await a._def.returns._def.type.parseAsync(l,i).catch(m=>{throw u.addIssue(o(l,m)),u})})}else{let a=this;return br(function(...d){let u=a._def.args.safeParse(d,i);if(!u.success)throw new Jr([r(d,u.error)]);let c=Reflect.apply(s,this,u.data),l=a._def.returns.safeParse(c,i);if(!l.success)throw new Jr([o(c,l.error)]);return l.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...n){return new e({...this._def,args:$i.create(n).rest(Ss.create())})}returns(n){return new e({...this._def,returns:n})}implement(n){return this.parse(n)}strictImplement(n){return this.parse(n)}static create(n,t,r){return new e({args:n||$i.create([]).rest(Ss.create()),returns:t||Ss.create(),typeName:de.ZodFunction,...tn(r)})}},Fd=class extends cn{get schema(){return this._def.getter()}_parse(n){let{ctx:t}=this._processInputParams(n);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};Fd.create=(e,n)=>new Fd({getter:e,typeName:de.ZodLazy,...tn(n)});var qd=class extends cn{_parse(n){if(n.data!==this._def.value){let t=this._getOrReturnCtx(n);return he(t,{received:t.data,code:se.invalid_literal,expected:this._def.value}),Ke}return{status:"valid",value:n.data}}get value(){return this._def.value}};qd.create=(e,n)=>new qd({value:e,typeName:de.ZodLiteral,...tn(n)});function _K(e,n){return new zd({values:e,typeName:de.ZodEnum,...tn(n)})}var zd=class e extends cn{_parse(n){if(typeof n.data!="string"){let t=this._getOrReturnCtx(n),r=this._def.values;return he(t,{expected:yn.joinValues(r),received:t.parsedType,code:se.invalid_type}),Ke}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(n.data)){let t=this._getOrReturnCtx(n),r=this._def.values;return he(t,{received:t.data,code:se.invalid_enum_value,options:r}),Ke}return br(n.data)}get options(){return this._def.values}get enum(){let n={};for(let t of this._def.values)n[t]=t;return n}get Values(){let n={};for(let t of this._def.values)n[t]=t;return n}get Enum(){let n={};for(let t of this._def.values)n[t]=t;return n}extract(n,t=this._def){return e.create(n,{...this._def,...t})}exclude(n,t=this._def){return e.create(this.options.filter(r=>!n.includes(r)),{...this._def,...t})}};zd.create=_K;var Nd=class extends cn{_parse(n){let t=yn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(n);if(r.parsedType!==_e.string&&r.parsedType!==_e.number){let o=yn.objectValues(t);return he(r,{expected:yn.joinValues(o),received:r.parsedType,code:se.invalid_type}),Ke}if(this._cache||(this._cache=new Set(yn.getValidEnumValues(this._def.values))),!this._cache.has(n.data)){let o=yn.objectValues(t);return he(r,{received:r.data,code:se.invalid_enum_value,options:o}),Ke}return br(n.data)}get enum(){return this._def.values}};Nd.create=(e,n)=>new Nd({values:e,typeName:de.ZodNativeEnum,...tn(n)});var da=class extends cn{unwrap(){return this._def.type}_parse(n){let{ctx:t}=this._processInputParams(n);if(t.parsedType!==_e.promise&&t.common.async===!1)return he(t,{code:se.invalid_type,expected:_e.promise,received:t.parsedType}),Ke;let r=t.parsedType===_e.promise?t.data:Promise.resolve(t.data);return br(r.then(o=>this._def.type.parseAsync(o,{path:t.path,errorMap:t.common.contextualErrorMap})))}};da.create=(e,n)=>new da({type:e,typeName:de.ZodPromise,...tn(n)});var Po=class extends cn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===de.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(n){let{status:t,ctx:r}=this._processInputParams(n),o=this._def.effect||null,i={addIssue:s=>{he(r,s),s.fatal?t.abort():t.dirty()},get path(){return r.path}};if(i.addIssue=i.addIssue.bind(i),o.type==="preprocess"){let s=o.transform(r.data,i);if(r.common.async)return Promise.resolve(s).then(async a=>{if(t.value==="aborted")return Ke;let d=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return d.status==="aborted"?Ke:d.status==="dirty"?Rd(d.value):t.value==="dirty"?Rd(d.value):d});{if(t.value==="aborted")return Ke;let a=this._def.schema._parseSync({data:s,path:r.path,parent:r});return a.status==="aborted"?Ke:a.status==="dirty"?Rd(a.value):t.value==="dirty"?Rd(a.value):a}}if(o.type==="refinement"){let s=a=>{let d=o.refinement(a,i);if(r.common.async)return Promise.resolve(d);if(d instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?Ke:(a.status==="dirty"&&t.dirty(),s(a.value),{status:t.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?Ke:(a.status==="dirty"&&t.dirty(),s(a.value).then(()=>({status:t.value,value:a.value}))))}if(o.type==="transform")if(r.common.async===!1){let s=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!ia(s))return Ke;let a=o.transform(s.value,i);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(s=>ia(s)?Promise.resolve(o.transform(s.value,i)).then(a=>({status:t.value,value:a})):Ke);yn.assertNever(o)}};Po.create=(e,n,t)=>new Po({schema:e,typeName:de.ZodEffects,effect:n,...tn(t)});Po.createWithPreprocess=(e,n,t)=>new Po({schema:n,effect:{type:"preprocess",transform:e},typeName:de.ZodEffects,...tn(t)});var Kr=class extends cn{_parse(n){return this._getType(n)===_e.undefined?br(void 0):this._def.innerType._parse(n)}unwrap(){return this._def.innerType}};Kr.create=(e,n)=>new Kr({innerType:e,typeName:de.ZodOptional,...tn(n)});var Li=class extends cn{_parse(n){return this._getType(n)===_e.null?br(null):this._def.innerType._parse(n)}unwrap(){return this._def.innerType}};Li.create=(e,n)=>new Li({innerType:e,typeName:de.ZodNullable,...tn(n)});var Ud=class extends cn{_parse(n){let{ctx:t}=this._processInputParams(n),r=t.data;return t.parsedType===_e.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};Ud.create=(e,n)=>new Ud({innerType:e,typeName:de.ZodDefault,defaultValue:typeof n.default=="function"?n.default:()=>n.default,...tn(n)});var Bd=class extends cn{_parse(n){let{ctx:t}=this._processInputParams(n),r={...t,common:{...t.common,issues:[]}},o=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return al(o)?o.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Jr(r.common.issues)},input:r.data})})):{status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new Jr(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Bd.create=(e,n)=>new Bd({innerType:e,typeName:de.ZodCatch,catchValue:typeof n.catch=="function"?n.catch:()=>n.catch,...tn(n)});var fl=class extends cn{_parse(n){if(this._getType(n)!==_e.nan){let r=this._getOrReturnCtx(n);return he(r,{code:se.invalid_type,expected:_e.nan,received:r.parsedType}),Ke}return{status:"valid",value:n.data}}};fl.create=e=>new fl({typeName:de.ZodNaN,...tn(e)});var iDe=Symbol("zod_brand"),mm=class extends cn{_parse(n){let{ctx:t}=this._processInputParams(n),r=t.data;return this._def.type._parse({data:r,path:t.path,parent:t})}unwrap(){return this._def.type}},hm=class e extends cn{_parse(n){let{status:t,ctx:r}=this._processInputParams(n);if(r.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?Ke:i.status==="dirty"?(t.dirty(),Rd(i.value)):this._def.out._parseAsync({data:i.value,path:r.path,parent:r})})();{let o=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?Ke:o.status==="dirty"?(t.dirty(),{status:"dirty",value:o.value}):this._def.out._parseSync({data:o.value,path:r.path,parent:r})}}static create(n,t){return new e({in:n,out:t,typeName:de.ZodPipeline})}},Jd=class extends cn{_parse(n){let t=this._def.innerType._parse(n),r=o=>(ia(o)&&(o.value=Object.freeze(o.value)),o);return al(t)?t.then(o=>r(o)):r(t)}unwrap(){return this._def.innerType}};Jd.create=(e,n)=>new Jd({innerType:e,typeName:de.ZodReadonly,...tn(n)});function hK(e,n){let t=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e;return typeof t=="string"?{message:t}:t}function bK(e,n={},t){return e?aa.create().superRefine((r,o)=>{let i=e(r);if(i instanceof Promise)return i.then(s=>{if(!s){let a=hK(n,r),d=a.fatal??t??!0;o.addIssue({code:"custom",...a,fatal:d})}});if(!i){let s=hK(n,r),a=s.fatal??t??!0;o.addIssue({code:"custom",...s,fatal:a})}}):aa.create()}var sDe={object:Vr.lazycreate},de;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(de||(de={}));var aDe=(e,n={message:`Input not instance of ${e.name}`})=>bK(t=>t instanceof e,n),wK=sa.create,vK=Ed.create,dDe=fl.create,uDe=Dd.create,SK=Md.create,cDe=Ad.create,lDe=ul.create,pDe=Od.create,fDe=$d.create,mDe=aa.create,hDe=Ss.create,gDe=ii.create,yDe=cl.create,xDe=ks.create,ZI=Vr.create,_De=Vr.strictCreate,bDe=Ld.create,wDe=Z0.create,vDe=jd.create,SDe=$i.create,kDe=Q0.create,CDe=ll.create,TDe=pl.create,PDe=X0.create,IDe=Fd.create,RDe=qd.create,EDe=zd.create,DDe=Nd.create,MDe=da.create,ADe=Po.create,ODe=Kr.create,$De=Li.create,LDe=Po.createWithPreprocess,jDe=hm.create,FDe=()=>wK().optional(),qDe=()=>vK().optional(),zDe=()=>SK().optional(),NDe={string:(e=>sa.create({...e,coerce:!0})),number:(e=>Ed.create({...e,coerce:!0})),boolean:(e=>Md.create({...e,coerce:!0})),bigint:(e=>Dd.create({...e,coerce:!0})),date:(e=>Ad.create({...e,coerce:!0}))};var UDe=Ke;var JDe=Object.freeze({status:"aborted"});function G(e,n,t){function r(a,d){var u;Object.defineProperty(a,"_zod",{value:a._zod??{},enumerable:!1}),(u=a._zod).traits??(u.traits=new Set),a._zod.traits.add(e),n(a,d);for(let c in s.prototype)c in a||Object.defineProperty(a,c,{value:s.prototype[c].bind(a)});a._zod.constr=s,a._zod.def=d}let o=t?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:e});function s(a){var d;let u=t?.Parent?new i:this;r(u,a),(d=u._zod).deferred??(d.deferred=[]);for(let c of u._zod.deferred)c();return u}return Object.defineProperty(s,"init",{value:r}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>t?.Parent&&a instanceof t.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}var Cs=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Y0={};function uo(e){return e&&Object.assign(Y0,e),Y0}var xn={};Wo(xn,{BIGINT_FORMAT_RANGES:()=>CK,Class:()=>XI,NUMBER_FORMAT_RANGES:()=>iR,aborted:()=>Vd,allowsEval:()=>tR,assert:()=>GDe,assertEqual:()=>KDe,assertIs:()=>WDe,assertNever:()=>HDe,assertNotEqual:()=>VDe,assignProp:()=>nR,cached:()=>xm,captureStackTrace:()=>n_,cleanEnum:()=>dMe,cleanRegex:()=>bm,clone:()=>co,createTransparentProxy:()=>nMe,defineLazy:()=>Zn,esc:()=>Kd,escapeRegex:()=>ua,extend:()=>oMe,finalizeIssue:()=>si,floatSafeRemainder:()=>eR,getElementAtPath:()=>ZDe,getEnumValues:()=>ym,getLengthableOrigin:()=>wm,getParsedType:()=>eMe,getSizableOrigin:()=>TK,isObject:()=>ml,isPlainObject:()=>hl,issue:()=>sR,joinValues:()=>e_,jsonStringifyReplacer:()=>YI,merge:()=>iMe,normalizeParams:()=>Ve,nullish:()=>_m,numKeys:()=>YDe,omit:()=>rMe,optionalKeys:()=>oR,partial:()=>sMe,pick:()=>tMe,prefixIssues:()=>ji,primitiveTypes:()=>kK,promiseAllObject:()=>QDe,propertyKeyTypes:()=>rR,randomString:()=>XDe,required:()=>aMe,stringifyPrimitive:()=>t_,unwrapMessage:()=>gm});function KDe(e){return e}function VDe(e){return e}function WDe(e){}function HDe(e){throw new Error}function GDe(e){}function ym(e){let n=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,o])=>n.indexOf(+r)===-1).map(([r,o])=>o)}function e_(e,n="|"){return e.map(t=>t_(t)).join(n)}function YI(e,n){return typeof n=="bigint"?n.toString():n}function xm(e){return{get value(){{let t=e();return Object.defineProperty(this,"value",{value:t}),t}throw new Error("cached value already set")}}}function _m(e){return e==null}function bm(e){let n=e.startsWith("^")?1:0,t=e.endsWith("$")?e.length-1:e.length;return e.slice(n,t)}function eR(e,n){let t=(e.toString().split(".")[1]||"").length,r=(n.toString().split(".")[1]||"").length,o=t>r?t:r,i=Number.parseInt(e.toFixed(o).replace(".","")),s=Number.parseInt(n.toFixed(o).replace(".",""));return i%s/10**o}function Zn(e,n,t){Object.defineProperty(e,n,{get(){{let o=t();return e[n]=o,o}throw new Error("cached value already set")},set(o){Object.defineProperty(e,n,{value:o})},configurable:!0})}function nR(e,n,t){Object.defineProperty(e,n,{value:t,writable:!0,enumerable:!0,configurable:!0})}function ZDe(e,n){return n?n.reduce((t,r)=>t?.[r],e):e}function QDe(e){let n=Object.keys(e),t=n.map(r=>e[r]);return Promise.all(t).then(r=>{let o={};for(let i=0;i<n.length;i++)o[n[i]]=r[i];return o})}function XDe(e=10){let n="abcdefghijklmnopqrstuvwxyz",t="";for(let r=0;r<e;r++)t+=n[Math.floor(Math.random()*n.length)];return t}function Kd(e){return JSON.stringify(e)}var n_=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};function ml(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var tR=xm(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function hl(e){if(ml(e)===!1)return!1;let n=e.constructor;if(n===void 0)return!0;let t=n.prototype;return!(ml(t)===!1||Object.prototype.hasOwnProperty.call(t,"isPrototypeOf")===!1)}function YDe(e){let n=0;for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&n++;return n}var eMe=e=>{let n=typeof e;switch(n){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${n}`)}},rR=new Set(["string","number","symbol"]),kK=new Set(["string","number","bigint","boolean","symbol","undefined"]);function ua(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function co(e,n,t){let r=new e._zod.constr(n??e._zod.def);return(!n||t?.parent)&&(r._zod.parent=e),r}function Ve(e){let n=e;if(!n)return{};if(typeof n=="string")return{error:()=>n};if(n?.message!==void 0){if(n?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");n.error=n.message}return delete n.message,typeof n.error=="string"?{...n,error:()=>n.error}:n}function nMe(e){let n;return new Proxy({},{get(t,r,o){return n??(n=e()),Reflect.get(n,r,o)},set(t,r,o,i){return n??(n=e()),Reflect.set(n,r,o,i)},has(t,r){return n??(n=e()),Reflect.has(n,r)},deleteProperty(t,r){return n??(n=e()),Reflect.deleteProperty(n,r)},ownKeys(t){return n??(n=e()),Reflect.ownKeys(n)},getOwnPropertyDescriptor(t,r){return n??(n=e()),Reflect.getOwnPropertyDescriptor(n,r)},defineProperty(t,r,o){return n??(n=e()),Reflect.defineProperty(n,r,o)}})}function t_(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function oR(e){return Object.keys(e).filter(n=>e[n]._zod.optin==="optional"&&e[n]._zod.optout==="optional")}var iR={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},CK={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function tMe(e,n){let t={},r=e._zod.def;for(let o in n){if(!(o in r.shape))throw new Error(`Unrecognized key: "${o}"`);n[o]&&(t[o]=r.shape[o])}return co(e,{...e._zod.def,shape:t,checks:[]})}function rMe(e,n){let t={...e._zod.def.shape},r=e._zod.def;for(let o in n){if(!(o in r.shape))throw new Error(`Unrecognized key: "${o}"`);n[o]&&delete t[o]}return co(e,{...e._zod.def,shape:t,checks:[]})}function oMe(e,n){if(!hl(n))throw new Error("Invalid input to extend: expected a plain object");let t={...e._zod.def,get shape(){let r={...e._zod.def.shape,...n};return nR(this,"shape",r),r},checks:[]};return co(e,t)}function iMe(e,n){return co(e,{...e._zod.def,get shape(){let t={...e._zod.def.shape,...n._zod.def.shape};return nR(this,"shape",t),t},catchall:n._zod.def.catchall,checks:[]})}function sMe(e,n,t){let r=n._zod.def.shape,o={...r};if(t)for(let i in t){if(!(i in r))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(o[i]=e?new e({type:"optional",innerType:r[i]}):r[i])}else for(let i in r)o[i]=e?new e({type:"optional",innerType:r[i]}):r[i];return co(n,{...n._zod.def,shape:o,checks:[]})}function aMe(e,n,t){let r=n._zod.def.shape,o={...r};if(t)for(let i in t){if(!(i in o))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(o[i]=new e({type:"nonoptional",innerType:r[i]}))}else for(let i in r)o[i]=new e({type:"nonoptional",innerType:r[i]});return co(n,{...n._zod.def,shape:o,checks:[]})}function Vd(e,n=0){for(let t=n;t<e.issues.length;t++)if(e.issues[t]?.continue!==!0)return!0;return!1}function ji(e,n){return n.map(t=>{var r;return(r=t).path??(r.path=[]),t.path.unshift(e),t})}function gm(e){return typeof e=="string"?e:e?.message}function si(e,n,t){let r={...e,path:e.path??[]};if(!e.message){let o=gm(e.inst?._zod.def?.error?.(e))??gm(n?.error?.(e))??gm(t.customError?.(e))??gm(t.localeError?.(e))??"Invalid input";r.message=o}return delete r.inst,delete r.continue,n?.reportInput||delete r.input,r}function TK(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function wm(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function sR(...e){let[n,t,r]=e;return typeof n=="string"?{message:n,code:"custom",input:t,inst:r}:{...n}}function dMe(e){return Object.entries(e).filter(([n,t])=>Number.isNaN(Number.parseInt(n,10))).map(n=>n[1])}var XI=class{constructor(...n){}};var PK=(e,n)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:n,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(n,YI,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},r_=G("$ZodError",PK),vm=G("$ZodError",PK,{Parent:Error});function aR(e,n=t=>t.message){let t={},r=[];for(let o of e.issues)o.path.length>0?(t[o.path[0]]=t[o.path[0]]||[],t[o.path[0]].push(n(o))):r.push(n(o));return{formErrors:r,fieldErrors:t}}function dR(e,n){let t=n||function(i){return i.message},r={_errors:[]},o=i=>{for(let s of i.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(a=>o({issues:a}));else if(s.code==="invalid_key")o({issues:s.issues});else if(s.code==="invalid_element")o({issues:s.issues});else if(s.path.length===0)r._errors.push(t(s));else{let a=r,d=0;for(;d<s.path.length;){let u=s.path[d];d===s.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(t(s))):a[u]=a[u]||{_errors:[]},a=a[u],d++}}};return o(e),r}var uR=e=>(n,t,r,o)=>{let i=r?Object.assign(r,{async:!1}):{async:!1},s=n._zod.run({value:t,issues:[]},i);if(s instanceof Promise)throw new Cs;if(s.issues.length){let a=new(o?.Err??e)(s.issues.map(d=>si(d,i,uo())));throw n_(a,o?.callee),a}return s.value},cR=uR(vm),lR=e=>async(n,t,r,o)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},s=n._zod.run({value:t,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){let a=new(o?.Err??e)(s.issues.map(d=>si(d,i,uo())));throw n_(a,o?.callee),a}return s.value},pR=lR(vm),fR=e=>(n,t,r)=>{let o=r?{...r,async:!1}:{async:!1},i=n._zod.run({value:t,issues:[]},o);if(i instanceof Promise)throw new Cs;return i.issues.length?{success:!1,error:new(e??r_)(i.issues.map(s=>si(s,o,uo())))}:{success:!0,data:i.value}},Wd=fR(vm),mR=e=>async(n,t,r)=>{let o=r?Object.assign(r,{async:!0}):{async:!0},i=n._zod.run({value:t,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(s=>si(s,o,uo())))}:{success:!0,data:i.value}},Hd=mR(vm);var IK=/^[cC][^\s-]{8,}$/,RK=/^[0-9a-z]+$/,EK=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,DK=/^[0-9a-vA-V]{20}$/,MK=/^[A-Za-z0-9]{27}$/,AK=/^[a-zA-Z0-9_-]{21}$/,OK=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var $K=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,hR=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/;var LK=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var cMe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function jK(){return new RegExp(cMe,"u")}var FK=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,qK=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,zK=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,NK=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,UK=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,gR=/^[A-Za-z0-9_-]*$/,BK=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/;var JK=/^\+(?:[0-9]){6,14}[0-9]$/,KK="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",VK=new RegExp(`^${KK}$`);function WK(e){let n="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${n}`:e.precision===0?`${n}:[0-5]\\d`:`${n}:[0-5]\\d\\.\\d{${e.precision}}`:`${n}(?::[0-5]\\d(?:\\.\\d+)?)?`}function HK(e){return new RegExp(`^${WK(e)}$`)}function GK(e){let n=WK({precision:e.precision}),t=["Z"];e.local&&t.push(""),e.offset&&t.push("([+-]\\d{2}:\\d{2})");let r=`${n}(?:${t.join("|")})`;return new RegExp(`^${KK}T(?:${r})$`)}var ZK=e=>{let n=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${n}$`)};var QK=/^\d+$/,XK=/^-?\d+(?:\.\d+)?/i,YK=/true|false/i,eV=/null/i;var nV=/^[^A-Z]*$/,tV=/^[^a-z]*$/;var ir=G("$ZodCheck",(e,n)=>{var t;e._zod??(e._zod={}),e._zod.def=n,(t=e._zod).onattach??(t.onattach=[])}),rV={number:"number",bigint:"bigint",object:"date"},yR=G("$ZodCheckLessThan",(e,n)=>{ir.init(e,n);let t=rV[typeof n.value];e._zod.onattach.push(r=>{let o=r._zod.bag,i=(n.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;n.value<i&&(n.inclusive?o.maximum=n.value:o.exclusiveMaximum=n.value)}),e._zod.check=r=>{(n.inclusive?r.value<=n.value:r.value<n.value)||r.issues.push({origin:t,code:"too_big",maximum:n.value,input:r.value,inclusive:n.inclusive,inst:e,continue:!n.abort})}}),xR=G("$ZodCheckGreaterThan",(e,n)=>{ir.init(e,n);let t=rV[typeof n.value];e._zod.onattach.push(r=>{let o=r._zod.bag,i=(n.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;n.value>i&&(n.inclusive?o.minimum=n.value:o.exclusiveMinimum=n.value)}),e._zod.check=r=>{(n.inclusive?r.value>=n.value:r.value>n.value)||r.issues.push({origin:t,code:"too_small",minimum:n.value,input:r.value,inclusive:n.inclusive,inst:e,continue:!n.abort})}}),oV=G("$ZodCheckMultipleOf",(e,n)=>{ir.init(e,n),e._zod.onattach.push(t=>{var r;(r=t._zod.bag).multipleOf??(r.multipleOf=n.value)}),e._zod.check=t=>{if(typeof t.value!=typeof n.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof t.value=="bigint"?t.value%n.value===BigInt(0):eR(t.value,n.value)===0)||t.issues.push({origin:typeof t.value,code:"not_multiple_of",divisor:n.value,input:t.value,inst:e,continue:!n.abort})}}),iV=G("$ZodCheckNumberFormat",(e,n)=>{ir.init(e,n),n.format=n.format||"float64";let t=n.format?.includes("int"),r=t?"int":"number",[o,i]=iR[n.format];e._zod.onattach.push(s=>{let a=s._zod.bag;a.format=n.format,a.minimum=o,a.maximum=i,t&&(a.pattern=QK)}),e._zod.check=s=>{let a=s.value;if(t){if(!Number.isInteger(a)){s.issues.push({expected:r,format:n.format,code:"invalid_type",input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?s.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!n.abort}):s.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!n.abort});return}}a<o&&s.issues.push({origin:"number",input:a,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!n.abort}),a>i&&s.issues.push({origin:"number",input:a,code:"too_big",maximum:i,inst:e})}});var sV=G("$ZodCheckMaxLength",(e,n)=>{var t;ir.init(e,n),(t=e._zod.def).when??(t.when=r=>{let o=r.value;return!_m(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{let o=r._zod.bag.maximum??Number.POSITIVE_INFINITY;n.maximum<o&&(r._zod.bag.maximum=n.maximum)}),e._zod.check=r=>{let o=r.value;if(o.length<=n.maximum)return;let s=wm(o);r.issues.push({origin:s,code:"too_big",maximum:n.maximum,inclusive:!0,input:o,inst:e,continue:!n.abort})}}),aV=G("$ZodCheckMinLength",(e,n)=>{var t;ir.init(e,n),(t=e._zod.def).when??(t.when=r=>{let o=r.value;return!_m(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{let o=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;n.minimum>o&&(r._zod.bag.minimum=n.minimum)}),e._zod.check=r=>{let o=r.value;if(o.length>=n.minimum)return;let s=wm(o);r.issues.push({origin:s,code:"too_small",minimum:n.minimum,inclusive:!0,input:o,inst:e,continue:!n.abort})}}),dV=G("$ZodCheckLengthEquals",(e,n)=>{var t;ir.init(e,n),(t=e._zod.def).when??(t.when=r=>{let o=r.value;return!_m(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{let o=r._zod.bag;o.minimum=n.length,o.maximum=n.length,o.length=n.length}),e._zod.check=r=>{let o=r.value,i=o.length;if(i===n.length)return;let s=wm(o),a=i>n.length;r.issues.push({origin:s,...a?{code:"too_big",maximum:n.length}:{code:"too_small",minimum:n.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!n.abort})}}),Sm=G("$ZodCheckStringFormat",(e,n)=>{var t,r;ir.init(e,n),e._zod.onattach.push(o=>{let i=o._zod.bag;i.format=n.format,n.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(n.pattern))}),n.pattern?(t=e._zod).check??(t.check=o=>{n.pattern.lastIndex=0,!n.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:n.format,input:o.value,...n.pattern?{pattern:n.pattern.toString()}:{},inst:e,continue:!n.abort})}):(r=e._zod).check??(r.check=()=>{})}),uV=G("$ZodCheckRegex",(e,n)=>{Sm.init(e,n),e._zod.check=t=>{n.pattern.lastIndex=0,!n.pattern.test(t.value)&&t.issues.push({origin:"string",code:"invalid_format",format:"regex",input:t.value,pattern:n.pattern.toString(),inst:e,continue:!n.abort})}}),cV=G("$ZodCheckLowerCase",(e,n)=>{n.pattern??(n.pattern=nV),Sm.init(e,n)}),lV=G("$ZodCheckUpperCase",(e,n)=>{n.pattern??(n.pattern=tV),Sm.init(e,n)}),pV=G("$ZodCheckIncludes",(e,n)=>{ir.init(e,n);let t=ua(n.includes),r=new RegExp(typeof n.position=="number"?`^.{${n.position}}${t}`:t);n.pattern=r,e._zod.onattach.push(o=>{let i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(r)}),e._zod.check=o=>{o.value.includes(n.includes,n.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:n.includes,input:o.value,inst:e,continue:!n.abort})}}),fV=G("$ZodCheckStartsWith",(e,n)=>{ir.init(e,n);let t=new RegExp(`^${ua(n.prefix)}.*`);n.pattern??(n.pattern=t),e._zod.onattach.push(r=>{let o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(t)}),e._zod.check=r=>{r.value.startsWith(n.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:n.prefix,input:r.value,inst:e,continue:!n.abort})}}),mV=G("$ZodCheckEndsWith",(e,n)=>{ir.init(e,n);let t=new RegExp(`.*${ua(n.suffix)}$`);n.pattern??(n.pattern=t),e._zod.onattach.push(r=>{let o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(t)}),e._zod.check=r=>{r.value.endsWith(n.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:n.suffix,input:r.value,inst:e,continue:!n.abort})}});var hV=G("$ZodCheckOverwrite",(e,n)=>{ir.init(e,n),e._zod.check=t=>{t.value=n.tx(t.value)}});var i_=class{constructor(n=[]){this.content=[],this.indent=0,this&&(this.args=n)}indented(n){this.indent+=1,n(this),this.indent-=1}write(n){if(typeof n=="function"){n(this,{execution:"sync"}),n(this,{execution:"async"});return}let r=n.split(`
1902
+ `),l}function W0(e,n=V0(),t=lK){let r=aK(e,n);if(!oK(r))return{status:"missing",runnerId:e,statusFile:r};let o=E1e(iK(r,"utf8"));return D1e(o.pid)&&M1e(o,t)?{status:"running",record:o}:{status:"stopped",record:o}}async function uK(e){let n=e.now??(()=>Date.now()),t=e.readTextFile??(i=>oK(i)?iK(i,"utf8"):void 0),r=e.statusImpl??W0,o=n()+e.timeoutMs;for(;n()<=o;){let i=r(e.runnerId,e.statusDir);switch(i.status){case"missing":return{ok:!1,reason:"missing"};case"stopped":return{ok:!1,reason:"stopped"};case"running":{let s=t(i.record.logFile);if(s===void 0)return{ok:!1,reason:"timeout"};if(KI(s))return{ok:!0,record:i.record};if(await A1e(i.record.logFile,o,n,()=>{let d=t(i.record.logFile);return d!==void 0&&KI(d)})){let d=r(e.runnerId,e.statusDir);switch(d.status){case"missing":return{ok:!1,reason:"missing"};case"stopped":return{ok:!1,reason:"stopped"};case"running":{let u=t(d.record.logFile);if(u!==void 0&&KI(u))return{ok:!0,record:d.record}}}}}}}return{ok:!1,reason:"timeout"}}function cK(e,n=V0()){let t=W0(e,n);return t.status==="running"&&process.kill(t.record.pid,"SIGINT"),t}function R1e(){let e=process.argv[1];return e!==void 0?e:T1e(import.meta.url)}function E1e(e){let n=JSON.parse(e),t=typeof n=="object"&&n!==null?n:{},r=typeof t.pid=="number"?t.pid:void 0,o=il(t.runnerId),i=il(t.cwd),s=il(t.launchFolder),a=il(t.logFile),d=il(t.startedAt),u=il(t.processStartedAt),c=t.command,l=Array.isArray(c)?c.filter(p=>typeof p=="string"):[];if(r===void 0||o===void 0||i===void 0||a===void 0||d===void 0)throw new Error("commander daemon status file is invalid");return{pid:r,...u===void 0?{}:{processStartedAt:u},runnerId:o,cwd:i,...s===void 0?{}:{launchFolder:s},logFile:a,startedAt:d,command:l}}function il(e){return typeof e=="string"&&e.trim()!==""?e.trim():void 0}function D1e(e){try{return process.kill(e,0),!0}catch{return!1}}function M1e(e,n){let t=n(e.pid),r=t?.command;return r===void 0||r.trim()===""||!e.command.every(i=>r.includes(i))?!1:e.processStartedAt===void 0||t?.startedAt===e.processStartedAt}function lK(e){try{let t=["-p",String(e),"-o","lstart=","-o","command="];me("process.exec_file",{command:"ps",args:t,purpose:"commander_daemon.process_identity"});let r=k1e("ps",t,{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(me("process.exec_file_completed",{command:"ps",args:t,purpose:"commander_daemon.process_identity"}),r==="")return;let o=r.match(/^(\S+\s+\S+\s+\d+\s+\d{2}:\d{2}:\d{2}\s+\d{4})\s+(.+)$/);if(o===null)return{command:r};let i=o[1],s=o[2];return i===void 0||s===void 0?{command:r}:{startedAt:i,command:s}}catch{return}}function pK(e){let n=e.replace(/[^a-zA-Z0-9_.-]+/g,"-").replace(/^-+|-+$/g,"");if(n==="")throw new Error("runner id must contain a filesystem-safe character");return n}async function A1e(e,n,t,r=()=>!1){let o=Math.max(0,n-t());return new Promise(i=>{let s=!1,a,d=c=>{s||(s=!0,a?.close(),clearTimeout(u),i(c))},u=setTimeout(()=>d(!1),o);try{a=b1e(e,()=>d(r())),a.on("error",()=>d(r())),r()&&d(!0)}catch{if(r()){d(!0);return}d(!1)}})}ea();S0();var M={};Wo(M,{BRAND:()=>iDe,DIRTY:()=>Rd,EMPTY_PATH:()=>j1e,INVALID:()=>Ke,NEVER:()=>UDe,OK:()=>br,ParseStatus:()=>or,Schema:()=>cn,ZodAny:()=>aa,ZodArray:()=>ks,ZodBigInt:()=>Dd,ZodBoolean:()=>Md,ZodBranded:()=>mm,ZodCatch:()=>Bd,ZodDate:()=>Ad,ZodDefault:()=>Ud,ZodDiscriminatedUnion:()=>Z0,ZodEffects:()=>Po,ZodEnum:()=>zd,ZodError:()=>Jr,ZodFirstPartyTypeKind:()=>de,ZodFunction:()=>X0,ZodIntersection:()=>jd,ZodIssueCode:()=>se,ZodLazy:()=>Fd,ZodLiteral:()=>qd,ZodMap:()=>ll,ZodNaN:()=>fl,ZodNativeEnum:()=>Nd,ZodNever:()=>ii,ZodNull:()=>$d,ZodNullable:()=>Li,ZodNumber:()=>Ed,ZodObject:()=>Vr,ZodOptional:()=>Kr,ZodParsedType:()=>xe,ZodPipeline:()=>hm,ZodPromise:()=>da,ZodReadonly:()=>Jd,ZodRecord:()=>Q0,ZodSchema:()=>cn,ZodSet:()=>pl,ZodString:()=>sa,ZodSymbol:()=>ul,ZodTransformer:()=>Po,ZodTuple:()=>$i,ZodType:()=>cn,ZodUndefined:()=>Od,ZodUnion:()=>Ld,ZodUnknown:()=>Ss,ZodVoid:()=>cl,addIssueToContext:()=>he,any:()=>mDe,array:()=>xDe,bigint:()=>uDe,boolean:()=>SK,coerce:()=>NDe,custom:()=>bK,date:()=>cDe,datetimeRegex:()=>xK,defaultErrorMap:()=>ws,discriminatedUnion:()=>wDe,effect:()=>ADe,enum:()=>EDe,function:()=>PDe,getErrorMap:()=>sl,getParsedType:()=>Oi,instanceof:()=>aDe,intersection:()=>vDe,isAborted:()=>H0,isAsync:()=>al,isDirty:()=>G0,isValid:()=>ia,late:()=>sDe,lazy:()=>IDe,literal:()=>RDe,makeIssue:()=>fm,map:()=>CDe,nan:()=>dDe,nativeEnum:()=>DDe,never:()=>gDe,null:()=>fDe,nullable:()=>$De,number:()=>vK,object:()=>ZI,objectUtil:()=>WI,oboolean:()=>zDe,onumber:()=>qDe,optional:()=>ODe,ostring:()=>FDe,pipeline:()=>jDe,preprocess:()=>LDe,promise:()=>MDe,quotelessJson:()=>O1e,record:()=>kDe,set:()=>TDe,setErrorMap:()=>L1e,strictObject:()=>_De,string:()=>wK,symbol:()=>lDe,transformer:()=>ADe,tuple:()=>SDe,undefined:()=>pDe,union:()=>bDe,unknown:()=>hDe,util:()=>yn,void:()=>yDe});var yn;(function(e){e.assertEqual=o=>{};function n(o){}e.assertIs=n;function t(o){throw new Error}e.assertNever=t,e.arrayToEnum=o=>{let i={};for(let s of o)i[s]=s;return i},e.getValidEnumValues=o=>{let i=e.objectKeys(o).filter(a=>typeof o[o[a]]!="number"),s={};for(let a of i)s[a]=o[a];return e.objectValues(s)},e.objectValues=o=>e.objectKeys(o).map(function(i){return o[i]}),e.objectKeys=typeof Object.keys=="function"?o=>Object.keys(o):o=>{let i=[];for(let s in o)Object.prototype.hasOwnProperty.call(o,s)&&i.push(s);return i},e.find=(o,i)=>{for(let s of o)if(i(s))return s},e.isInteger=typeof Number.isInteger=="function"?o=>Number.isInteger(o):o=>typeof o=="number"&&Number.isFinite(o)&&Math.floor(o)===o;function r(o,i=" | "){return o.map(s=>typeof s=="string"?`'${s}'`:s).join(i)}e.joinValues=r,e.jsonStringifyReplacer=(o,i)=>typeof i=="bigint"?i.toString():i})(yn||(yn={}));var WI;(function(e){e.mergeShapes=(n,t)=>({...n,...t})})(WI||(WI={}));var xe=yn.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Oi=e=>{switch(typeof e){case"undefined":return xe.undefined;case"string":return xe.string;case"number":return Number.isNaN(e)?xe.nan:xe.number;case"boolean":return xe.boolean;case"function":return xe.function;case"bigint":return xe.bigint;case"symbol":return xe.symbol;case"object":return Array.isArray(e)?xe.array:e===null?xe.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?xe.promise:typeof Map<"u"&&e instanceof Map?xe.map:typeof Set<"u"&&e instanceof Set?xe.set:typeof Date<"u"&&e instanceof Date?xe.date:xe.object;default:return xe.unknown}};var se=yn.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),O1e=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),Jr=class e extends Error{get errors(){return this.issues}constructor(n){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=n}format(n){let t=n||function(i){return i.message},r={_errors:[]},o=i=>{for(let s of i.issues)if(s.code==="invalid_union")s.unionErrors.map(o);else if(s.code==="invalid_return_type")o(s.returnTypeError);else if(s.code==="invalid_arguments")o(s.argumentsError);else if(s.path.length===0)r._errors.push(t(s));else{let a=r,d=0;for(;d<s.path.length;){let u=s.path[d];d===s.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(t(s))):a[u]=a[u]||{_errors:[]},a=a[u],d++}}};return o(this),r}static assert(n){if(!(n instanceof e))throw new Error(`Not a ZodError: ${n}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,yn.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(n=t=>t.message){let t={},r=[];for(let o of this.issues)if(o.path.length>0){let i=o.path[0];t[i]=t[i]||[],t[i].push(n(o))}else r.push(n(o));return{formErrors:r,fieldErrors:t}}get formErrors(){return this.flatten()}};Jr.create=e=>new Jr(e);var $1e=(e,n)=>{let t;switch(e.code){case se.invalid_type:e.received===xe.undefined?t="Required":t=`Expected ${e.expected}, received ${e.received}`;break;case se.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(e.expected,yn.jsonStringifyReplacer)}`;break;case se.unrecognized_keys:t=`Unrecognized key(s) in object: ${yn.joinValues(e.keys,", ")}`;break;case se.invalid_union:t="Invalid input";break;case se.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${yn.joinValues(e.options)}`;break;case se.invalid_enum_value:t=`Invalid enum value. Expected ${yn.joinValues(e.options)}, received '${e.received}'`;break;case se.invalid_arguments:t="Invalid function arguments";break;case se.invalid_return_type:t="Invalid function return type";break;case se.invalid_date:t="Invalid date";break;case se.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(t=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?t=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?t=`Invalid input: must end with "${e.validation.endsWith}"`:yn.assertNever(e.validation):e.validation!=="regex"?t=`Invalid ${e.validation}`:t="Invalid";break;case se.too_small:e.type==="array"?t=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?t=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?t=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?t=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?t=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:t="Invalid input";break;case se.too_big:e.type==="array"?t=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?t=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?t=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?t=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?t=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:t="Invalid input";break;case se.custom:t="Invalid input";break;case se.invalid_intersection_types:t="Intersection results could not be merged";break;case se.not_multiple_of:t=`Number must be a multiple of ${e.multipleOf}`;break;case se.not_finite:t="Number must be finite";break;default:t=n.defaultError,yn.assertNever(e)}return{message:t}},ws=$1e;var fK=ws;function L1e(e){fK=e}function sl(){return fK}var fm=e=>{let{data:n,path:t,errorMaps:r,issueData:o}=e,i=[...t,...o.path||[]],s={...o,path:i};if(o.message!==void 0)return{...o,path:i,message:o.message};let a="",d=r.filter(u=>!!u).slice().reverse();for(let u of d)a=u(s,{data:n,defaultError:a}).message;return{...o,path:i,message:a}},j1e=[];function he(e,n){let t=sl(),r=fm({issueData:n,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,t,t===ws?void 0:ws].filter(o=>!!o)});e.common.issues.push(r)}var or=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(n,t){let r=[];for(let o of t){if(o.status==="aborted")return Ke;o.status==="dirty"&&n.dirty(),r.push(o.value)}return{status:n.value,value:r}}static async mergeObjectAsync(n,t){let r=[];for(let o of t){let i=await o.key,s=await o.value;r.push({key:i,value:s})}return e.mergeObjectSync(n,r)}static mergeObjectSync(n,t){let r={};for(let o of t){let{key:i,value:s}=o;if(i.status==="aborted"||s.status==="aborted")return Ke;i.status==="dirty"&&n.dirty(),s.status==="dirty"&&n.dirty(),i.value!=="__proto__"&&(typeof s.value<"u"||o.alwaysSet)&&(r[i.value]=s.value)}return{status:n.value,value:r}}},Ke=Object.freeze({status:"aborted"}),Rd=e=>({status:"dirty",value:e}),br=e=>({status:"valid",value:e}),H0=e=>e.status==="aborted",G0=e=>e.status==="dirty",ia=e=>e.status==="valid",al=e=>typeof Promise<"u"&&e instanceof Promise;var De;(function(e){e.errToObj=n=>typeof n=="string"?{message:n}:n||{},e.toString=n=>typeof n=="string"?n:n?.message})(De||(De={}));var To=class{constructor(n,t,r,o){this._cachedPath=[],this.parent=n,this.data=t,this._path=r,this._key=o}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},mK=(e,n)=>{if(ia(n))return{success:!0,data:n.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let t=new Jr(e.common.issues);return this._error=t,this._error}}};function tn(e){if(!e)return{};let{errorMap:n,invalid_type_error:t,required_error:r,description:o}=e;if(n&&(t||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return n?{errorMap:n,description:o}:{errorMap:(s,a)=>{let{message:d}=e;return s.code==="invalid_enum_value"?{message:d??a.defaultError}:typeof a.data>"u"?{message:d??r??a.defaultError}:s.code!=="invalid_type"?{message:a.defaultError}:{message:d??t??a.defaultError}},description:o}}var cn=class{get description(){return this._def.description}_getType(n){return Oi(n.data)}_getOrReturnCtx(n,t){return t||{common:n.parent.common,data:n.data,parsedType:Oi(n.data),schemaErrorMap:this._def.errorMap,path:n.path,parent:n.parent}}_processInputParams(n){return{status:new or,ctx:{common:n.parent.common,data:n.data,parsedType:Oi(n.data),schemaErrorMap:this._def.errorMap,path:n.path,parent:n.parent}}}_parseSync(n){let t=this._parse(n);if(al(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(n){let t=this._parse(n);return Promise.resolve(t)}parse(n,t){let r=this.safeParse(n,t);if(r.success)return r.data;throw r.error}safeParse(n,t){let r={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Oi(n)},o=this._parseSync({data:n,path:r.path,parent:r});return mK(r,o)}"~validate"(n){let t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Oi(n)};if(!this["~standard"].async)try{let r=this._parseSync({data:n,path:[],parent:t});return ia(r)?{value:r.value}:{issues:t.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:n,path:[],parent:t}).then(r=>ia(r)?{value:r.value}:{issues:t.common.issues})}async parseAsync(n,t){let r=await this.safeParseAsync(n,t);if(r.success)return r.data;throw r.error}async safeParseAsync(n,t){let r={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Oi(n)},o=this._parse({data:n,path:r.path,parent:r}),i=await(al(o)?o:Promise.resolve(o));return mK(r,i)}refine(n,t){let r=o=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(o):t;return this._refinement((o,i)=>{let s=n(o),a=()=>i.addIssue({code:se.custom,...r(o)});return typeof Promise<"u"&&s instanceof Promise?s.then(d=>d?!0:(a(),!1)):s?!0:(a(),!1)})}refinement(n,t){return this._refinement((r,o)=>n(r)?!0:(o.addIssue(typeof t=="function"?t(r,o):t),!1))}_refinement(n){return new Po({schema:this,typeName:de.ZodEffects,effect:{type:"refinement",refinement:n}})}superRefine(n){return this._refinement(n)}constructor(n){this.spa=this.safeParseAsync,this._def=n,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:t=>this["~validate"](t)}}optional(){return Kr.create(this,this._def)}nullable(){return Li.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ks.create(this)}promise(){return da.create(this,this._def)}or(n){return Ld.create([this,n],this._def)}and(n){return jd.create(this,n,this._def)}transform(n){return new Po({...tn(this._def),schema:this,typeName:de.ZodEffects,effect:{type:"transform",transform:n}})}default(n){let t=typeof n=="function"?n:()=>n;return new Ud({...tn(this._def),innerType:this,defaultValue:t,typeName:de.ZodDefault})}brand(){return new mm({typeName:de.ZodBranded,type:this,...tn(this._def)})}catch(n){let t=typeof n=="function"?n:()=>n;return new Bd({...tn(this._def),innerType:this,catchValue:t,typeName:de.ZodCatch})}describe(n){let t=this.constructor;return new t({...this._def,description:n})}pipe(n){return hm.create(this,n)}readonly(){return Jd.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},F1e=/^c[^\s-]{8,}$/i,q1e=/^[0-9a-z]+$/,z1e=/^[0-9A-HJKMNP-TV-Z]{26}$/i,N1e=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,U1e=/^[a-z0-9_-]{21}$/i,B1e=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,J1e=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,K1e=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,V1e="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",HI,W1e=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,H1e=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,G1e=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Z1e=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Q1e=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,X1e=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,gK="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Y1e=new RegExp(`^${gK}$`);function yK(e){let n="[0-5]\\d";e.precision?n=`${n}\\.\\d{${e.precision}}`:e.precision==null&&(n=`${n}(\\.\\d+)?`);let t=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${n})${t}`}function eDe(e){return new RegExp(`^${yK(e)}$`)}function xK(e){let n=`${gK}T${yK(e)}`,t=[];return t.push(e.local?"Z?":"Z"),e.offset&&t.push("([+-]\\d{2}:?\\d{2})"),n=`${n}(${t.join("|")})`,new RegExp(`^${n}$`)}function nDe(e,n){return!!((n==="v4"||!n)&&W1e.test(e)||(n==="v6"||!n)&&G1e.test(e))}function tDe(e,n){if(!B1e.test(e))return!1;try{let[t]=e.split(".");if(!t)return!1;let r=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),o=JSON.parse(atob(r));return!(typeof o!="object"||o===null||"typ"in o&&o?.typ!=="JWT"||!o.alg||n&&o.alg!==n)}catch{return!1}}function rDe(e,n){return!!((n==="v4"||!n)&&H1e.test(e)||(n==="v6"||!n)&&Z1e.test(e))}var sa=class e extends cn{_parse(n){if(this._def.coerce&&(n.data=String(n.data)),this._getType(n)!==xe.string){let i=this._getOrReturnCtx(n);return he(i,{code:se.invalid_type,expected:xe.string,received:i.parsedType}),Ke}let r=new or,o;for(let i of this._def.checks)if(i.kind==="min")n.data.length<i.value&&(o=this._getOrReturnCtx(n,o),he(o,{code:se.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),r.dirty());else if(i.kind==="max")n.data.length>i.value&&(o=this._getOrReturnCtx(n,o),he(o,{code:se.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),r.dirty());else if(i.kind==="length"){let s=n.data.length>i.value,a=n.data.length<i.value;(s||a)&&(o=this._getOrReturnCtx(n,o),s?he(o,{code:se.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}):a&&he(o,{code:se.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}),r.dirty())}else if(i.kind==="email")K1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"email",code:se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="emoji")HI||(HI=new RegExp(V1e,"u")),HI.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"emoji",code:se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="uuid")N1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"uuid",code:se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="nanoid")U1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"nanoid",code:se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="cuid")F1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"cuid",code:se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="cuid2")q1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"cuid2",code:se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="ulid")z1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"ulid",code:se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="url")try{new URL(n.data)}catch{o=this._getOrReturnCtx(n,o),he(o,{validation:"url",code:se.invalid_string,message:i.message}),r.dirty()}else i.kind==="regex"?(i.regex.lastIndex=0,i.regex.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"regex",code:se.invalid_string,message:i.message}),r.dirty())):i.kind==="trim"?n.data=n.data.trim():i.kind==="includes"?n.data.includes(i.value,i.position)||(o=this._getOrReturnCtx(n,o),he(o,{code:se.invalid_string,validation:{includes:i.value,position:i.position},message:i.message}),r.dirty()):i.kind==="toLowerCase"?n.data=n.data.toLowerCase():i.kind==="toUpperCase"?n.data=n.data.toUpperCase():i.kind==="startsWith"?n.data.startsWith(i.value)||(o=this._getOrReturnCtx(n,o),he(o,{code:se.invalid_string,validation:{startsWith:i.value},message:i.message}),r.dirty()):i.kind==="endsWith"?n.data.endsWith(i.value)||(o=this._getOrReturnCtx(n,o),he(o,{code:se.invalid_string,validation:{endsWith:i.value},message:i.message}),r.dirty()):i.kind==="datetime"?xK(i).test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{code:se.invalid_string,validation:"datetime",message:i.message}),r.dirty()):i.kind==="date"?Y1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{code:se.invalid_string,validation:"date",message:i.message}),r.dirty()):i.kind==="time"?eDe(i).test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{code:se.invalid_string,validation:"time",message:i.message}),r.dirty()):i.kind==="duration"?J1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"duration",code:se.invalid_string,message:i.message}),r.dirty()):i.kind==="ip"?nDe(n.data,i.version)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"ip",code:se.invalid_string,message:i.message}),r.dirty()):i.kind==="jwt"?tDe(n.data,i.alg)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"jwt",code:se.invalid_string,message:i.message}),r.dirty()):i.kind==="cidr"?rDe(n.data,i.version)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"cidr",code:se.invalid_string,message:i.message}),r.dirty()):i.kind==="base64"?Q1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"base64",code:se.invalid_string,message:i.message}),r.dirty()):i.kind==="base64url"?X1e.test(n.data)||(o=this._getOrReturnCtx(n,o),he(o,{validation:"base64url",code:se.invalid_string,message:i.message}),r.dirty()):yn.assertNever(i);return{status:r.value,value:n.data}}_regex(n,t,r){return this.refinement(o=>n.test(o),{validation:t,code:se.invalid_string,...De.errToObj(r)})}_addCheck(n){return new e({...this._def,checks:[...this._def.checks,n]})}email(n){return this._addCheck({kind:"email",...De.errToObj(n)})}url(n){return this._addCheck({kind:"url",...De.errToObj(n)})}emoji(n){return this._addCheck({kind:"emoji",...De.errToObj(n)})}uuid(n){return this._addCheck({kind:"uuid",...De.errToObj(n)})}nanoid(n){return this._addCheck({kind:"nanoid",...De.errToObj(n)})}cuid(n){return this._addCheck({kind:"cuid",...De.errToObj(n)})}cuid2(n){return this._addCheck({kind:"cuid2",...De.errToObj(n)})}ulid(n){return this._addCheck({kind:"ulid",...De.errToObj(n)})}base64(n){return this._addCheck({kind:"base64",...De.errToObj(n)})}base64url(n){return this._addCheck({kind:"base64url",...De.errToObj(n)})}jwt(n){return this._addCheck({kind:"jwt",...De.errToObj(n)})}ip(n){return this._addCheck({kind:"ip",...De.errToObj(n)})}cidr(n){return this._addCheck({kind:"cidr",...De.errToObj(n)})}datetime(n){return typeof n=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:n}):this._addCheck({kind:"datetime",precision:typeof n?.precision>"u"?null:n?.precision,offset:n?.offset??!1,local:n?.local??!1,...De.errToObj(n?.message)})}date(n){return this._addCheck({kind:"date",message:n})}time(n){return typeof n=="string"?this._addCheck({kind:"time",precision:null,message:n}):this._addCheck({kind:"time",precision:typeof n?.precision>"u"?null:n?.precision,...De.errToObj(n?.message)})}duration(n){return this._addCheck({kind:"duration",...De.errToObj(n)})}regex(n,t){return this._addCheck({kind:"regex",regex:n,...De.errToObj(t)})}includes(n,t){return this._addCheck({kind:"includes",value:n,position:t?.position,...De.errToObj(t?.message)})}startsWith(n,t){return this._addCheck({kind:"startsWith",value:n,...De.errToObj(t)})}endsWith(n,t){return this._addCheck({kind:"endsWith",value:n,...De.errToObj(t)})}min(n,t){return this._addCheck({kind:"min",value:n,...De.errToObj(t)})}max(n,t){return this._addCheck({kind:"max",value:n,...De.errToObj(t)})}length(n,t){return this._addCheck({kind:"length",value:n,...De.errToObj(t)})}nonempty(n){return this.min(1,De.errToObj(n))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(n=>n.kind==="datetime")}get isDate(){return!!this._def.checks.find(n=>n.kind==="date")}get isTime(){return!!this._def.checks.find(n=>n.kind==="time")}get isDuration(){return!!this._def.checks.find(n=>n.kind==="duration")}get isEmail(){return!!this._def.checks.find(n=>n.kind==="email")}get isURL(){return!!this._def.checks.find(n=>n.kind==="url")}get isEmoji(){return!!this._def.checks.find(n=>n.kind==="emoji")}get isUUID(){return!!this._def.checks.find(n=>n.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(n=>n.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(n=>n.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(n=>n.kind==="cuid2")}get isULID(){return!!this._def.checks.find(n=>n.kind==="ulid")}get isIP(){return!!this._def.checks.find(n=>n.kind==="ip")}get isCIDR(){return!!this._def.checks.find(n=>n.kind==="cidr")}get isBase64(){return!!this._def.checks.find(n=>n.kind==="base64")}get isBase64url(){return!!this._def.checks.find(n=>n.kind==="base64url")}get minLength(){let n=null;for(let t of this._def.checks)t.kind==="min"&&(n===null||t.value>n)&&(n=t.value);return n}get maxLength(){let n=null;for(let t of this._def.checks)t.kind==="max"&&(n===null||t.value<n)&&(n=t.value);return n}};sa.create=e=>new sa({checks:[],typeName:de.ZodString,coerce:e?.coerce??!1,...tn(e)});function oDe(e,n){let t=(e.toString().split(".")[1]||"").length,r=(n.toString().split(".")[1]||"").length,o=t>r?t:r,i=Number.parseInt(e.toFixed(o).replace(".","")),s=Number.parseInt(n.toFixed(o).replace(".",""));return i%s/10**o}var Ed=class e extends cn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(n){if(this._def.coerce&&(n.data=Number(n.data)),this._getType(n)!==xe.number){let i=this._getOrReturnCtx(n);return he(i,{code:se.invalid_type,expected:xe.number,received:i.parsedType}),Ke}let r,o=new or;for(let i of this._def.checks)i.kind==="int"?yn.isInteger(n.data)||(r=this._getOrReturnCtx(n,r),he(r,{code:se.invalid_type,expected:"integer",received:"float",message:i.message}),o.dirty()):i.kind==="min"?(i.inclusive?n.data<i.value:n.data<=i.value)&&(r=this._getOrReturnCtx(n,r),he(r,{code:se.too_small,minimum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),o.dirty()):i.kind==="max"?(i.inclusive?n.data>i.value:n.data>=i.value)&&(r=this._getOrReturnCtx(n,r),he(r,{code:se.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),o.dirty()):i.kind==="multipleOf"?oDe(n.data,i.value)!==0&&(r=this._getOrReturnCtx(n,r),he(r,{code:se.not_multiple_of,multipleOf:i.value,message:i.message}),o.dirty()):i.kind==="finite"?Number.isFinite(n.data)||(r=this._getOrReturnCtx(n,r),he(r,{code:se.not_finite,message:i.message}),o.dirty()):yn.assertNever(i);return{status:o.value,value:n.data}}gte(n,t){return this.setLimit("min",n,!0,De.toString(t))}gt(n,t){return this.setLimit("min",n,!1,De.toString(t))}lte(n,t){return this.setLimit("max",n,!0,De.toString(t))}lt(n,t){return this.setLimit("max",n,!1,De.toString(t))}setLimit(n,t,r,o){return new e({...this._def,checks:[...this._def.checks,{kind:n,value:t,inclusive:r,message:De.toString(o)}]})}_addCheck(n){return new e({...this._def,checks:[...this._def.checks,n]})}int(n){return this._addCheck({kind:"int",message:De.toString(n)})}positive(n){return this._addCheck({kind:"min",value:0,inclusive:!1,message:De.toString(n)})}negative(n){return this._addCheck({kind:"max",value:0,inclusive:!1,message:De.toString(n)})}nonpositive(n){return this._addCheck({kind:"max",value:0,inclusive:!0,message:De.toString(n)})}nonnegative(n){return this._addCheck({kind:"min",value:0,inclusive:!0,message:De.toString(n)})}multipleOf(n,t){return this._addCheck({kind:"multipleOf",value:n,message:De.toString(t)})}finite(n){return this._addCheck({kind:"finite",message:De.toString(n)})}safe(n){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:De.toString(n)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:De.toString(n)})}get minValue(){let n=null;for(let t of this._def.checks)t.kind==="min"&&(n===null||t.value>n)&&(n=t.value);return n}get maxValue(){let n=null;for(let t of this._def.checks)t.kind==="max"&&(n===null||t.value<n)&&(n=t.value);return n}get isInt(){return!!this._def.checks.find(n=>n.kind==="int"||n.kind==="multipleOf"&&yn.isInteger(n.value))}get isFinite(){let n=null,t=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(t===null||r.value>t)&&(t=r.value):r.kind==="max"&&(n===null||r.value<n)&&(n=r.value)}return Number.isFinite(t)&&Number.isFinite(n)}};Ed.create=e=>new Ed({checks:[],typeName:de.ZodNumber,coerce:e?.coerce||!1,...tn(e)});var Dd=class e extends cn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(n){if(this._def.coerce)try{n.data=BigInt(n.data)}catch{return this._getInvalidInput(n)}if(this._getType(n)!==xe.bigint)return this._getInvalidInput(n);let r,o=new or;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?n.data<i.value:n.data<=i.value)&&(r=this._getOrReturnCtx(n,r),he(r,{code:se.too_small,type:"bigint",minimum:i.value,inclusive:i.inclusive,message:i.message}),o.dirty()):i.kind==="max"?(i.inclusive?n.data>i.value:n.data>=i.value)&&(r=this._getOrReturnCtx(n,r),he(r,{code:se.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),o.dirty()):i.kind==="multipleOf"?n.data%i.value!==BigInt(0)&&(r=this._getOrReturnCtx(n,r),he(r,{code:se.not_multiple_of,multipleOf:i.value,message:i.message}),o.dirty()):yn.assertNever(i);return{status:o.value,value:n.data}}_getInvalidInput(n){let t=this._getOrReturnCtx(n);return he(t,{code:se.invalid_type,expected:xe.bigint,received:t.parsedType}),Ke}gte(n,t){return this.setLimit("min",n,!0,De.toString(t))}gt(n,t){return this.setLimit("min",n,!1,De.toString(t))}lte(n,t){return this.setLimit("max",n,!0,De.toString(t))}lt(n,t){return this.setLimit("max",n,!1,De.toString(t))}setLimit(n,t,r,o){return new e({...this._def,checks:[...this._def.checks,{kind:n,value:t,inclusive:r,message:De.toString(o)}]})}_addCheck(n){return new e({...this._def,checks:[...this._def.checks,n]})}positive(n){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:De.toString(n)})}negative(n){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:De.toString(n)})}nonpositive(n){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:De.toString(n)})}nonnegative(n){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:De.toString(n)})}multipleOf(n,t){return this._addCheck({kind:"multipleOf",value:n,message:De.toString(t)})}get minValue(){let n=null;for(let t of this._def.checks)t.kind==="min"&&(n===null||t.value>n)&&(n=t.value);return n}get maxValue(){let n=null;for(let t of this._def.checks)t.kind==="max"&&(n===null||t.value<n)&&(n=t.value);return n}};Dd.create=e=>new Dd({checks:[],typeName:de.ZodBigInt,coerce:e?.coerce??!1,...tn(e)});var Md=class extends cn{_parse(n){if(this._def.coerce&&(n.data=!!n.data),this._getType(n)!==xe.boolean){let r=this._getOrReturnCtx(n);return he(r,{code:se.invalid_type,expected:xe.boolean,received:r.parsedType}),Ke}return br(n.data)}};Md.create=e=>new Md({typeName:de.ZodBoolean,coerce:e?.coerce||!1,...tn(e)});var Ad=class e extends cn{_parse(n){if(this._def.coerce&&(n.data=new Date(n.data)),this._getType(n)!==xe.date){let i=this._getOrReturnCtx(n);return he(i,{code:se.invalid_type,expected:xe.date,received:i.parsedType}),Ke}if(Number.isNaN(n.data.getTime())){let i=this._getOrReturnCtx(n);return he(i,{code:se.invalid_date}),Ke}let r=new or,o;for(let i of this._def.checks)i.kind==="min"?n.data.getTime()<i.value&&(o=this._getOrReturnCtx(n,o),he(o,{code:se.too_small,message:i.message,inclusive:!0,exact:!1,minimum:i.value,type:"date"}),r.dirty()):i.kind==="max"?n.data.getTime()>i.value&&(o=this._getOrReturnCtx(n,o),he(o,{code:se.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),r.dirty()):yn.assertNever(i);return{status:r.value,value:new Date(n.data.getTime())}}_addCheck(n){return new e({...this._def,checks:[...this._def.checks,n]})}min(n,t){return this._addCheck({kind:"min",value:n.getTime(),message:De.toString(t)})}max(n,t){return this._addCheck({kind:"max",value:n.getTime(),message:De.toString(t)})}get minDate(){let n=null;for(let t of this._def.checks)t.kind==="min"&&(n===null||t.value>n)&&(n=t.value);return n!=null?new Date(n):null}get maxDate(){let n=null;for(let t of this._def.checks)t.kind==="max"&&(n===null||t.value<n)&&(n=t.value);return n!=null?new Date(n):null}};Ad.create=e=>new Ad({checks:[],coerce:e?.coerce||!1,typeName:de.ZodDate,...tn(e)});var ul=class extends cn{_parse(n){if(this._getType(n)!==xe.symbol){let r=this._getOrReturnCtx(n);return he(r,{code:se.invalid_type,expected:xe.symbol,received:r.parsedType}),Ke}return br(n.data)}};ul.create=e=>new ul({typeName:de.ZodSymbol,...tn(e)});var Od=class extends cn{_parse(n){if(this._getType(n)!==xe.undefined){let r=this._getOrReturnCtx(n);return he(r,{code:se.invalid_type,expected:xe.undefined,received:r.parsedType}),Ke}return br(n.data)}};Od.create=e=>new Od({typeName:de.ZodUndefined,...tn(e)});var $d=class extends cn{_parse(n){if(this._getType(n)!==xe.null){let r=this._getOrReturnCtx(n);return he(r,{code:se.invalid_type,expected:xe.null,received:r.parsedType}),Ke}return br(n.data)}};$d.create=e=>new $d({typeName:de.ZodNull,...tn(e)});var aa=class extends cn{constructor(){super(...arguments),this._any=!0}_parse(n){return br(n.data)}};aa.create=e=>new aa({typeName:de.ZodAny,...tn(e)});var Ss=class extends cn{constructor(){super(...arguments),this._unknown=!0}_parse(n){return br(n.data)}};Ss.create=e=>new Ss({typeName:de.ZodUnknown,...tn(e)});var ii=class extends cn{_parse(n){let t=this._getOrReturnCtx(n);return he(t,{code:se.invalid_type,expected:xe.never,received:t.parsedType}),Ke}};ii.create=e=>new ii({typeName:de.ZodNever,...tn(e)});var cl=class extends cn{_parse(n){if(this._getType(n)!==xe.undefined){let r=this._getOrReturnCtx(n);return he(r,{code:se.invalid_type,expected:xe.void,received:r.parsedType}),Ke}return br(n.data)}};cl.create=e=>new cl({typeName:de.ZodVoid,...tn(e)});var ks=class e extends cn{_parse(n){let{ctx:t,status:r}=this._processInputParams(n),o=this._def;if(t.parsedType!==xe.array)return he(t,{code:se.invalid_type,expected:xe.array,received:t.parsedType}),Ke;if(o.exactLength!==null){let s=t.data.length>o.exactLength.value,a=t.data.length<o.exactLength.value;(s||a)&&(he(t,{code:s?se.too_big:se.too_small,minimum:a?o.exactLength.value:void 0,maximum:s?o.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:o.exactLength.message}),r.dirty())}if(o.minLength!==null&&t.data.length<o.minLength.value&&(he(t,{code:se.too_small,minimum:o.minLength.value,type:"array",inclusive:!0,exact:!1,message:o.minLength.message}),r.dirty()),o.maxLength!==null&&t.data.length>o.maxLength.value&&(he(t,{code:se.too_big,maximum:o.maxLength.value,type:"array",inclusive:!0,exact:!1,message:o.maxLength.message}),r.dirty()),t.common.async)return Promise.all([...t.data].map((s,a)=>o.type._parseAsync(new To(t,s,t.path,a)))).then(s=>or.mergeArray(r,s));let i=[...t.data].map((s,a)=>o.type._parseSync(new To(t,s,t.path,a)));return or.mergeArray(r,i)}get element(){return this._def.type}min(n,t){return new e({...this._def,minLength:{value:n,message:De.toString(t)}})}max(n,t){return new e({...this._def,maxLength:{value:n,message:De.toString(t)}})}length(n,t){return new e({...this._def,exactLength:{value:n,message:De.toString(t)}})}nonempty(n){return this.min(1,n)}};ks.create=(e,n)=>new ks({type:e,minLength:null,maxLength:null,exactLength:null,typeName:de.ZodArray,...tn(n)});function dl(e){if(e instanceof Vr){let n={};for(let t in e.shape){let r=e.shape[t];n[t]=Kr.create(dl(r))}return new Vr({...e._def,shape:()=>n})}else return e instanceof ks?new ks({...e._def,type:dl(e.element)}):e instanceof Kr?Kr.create(dl(e.unwrap())):e instanceof Li?Li.create(dl(e.unwrap())):e instanceof $i?$i.create(e.items.map(n=>dl(n))):e}var Vr=class e extends cn{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let n=this._def.shape(),t=yn.objectKeys(n);return this._cached={shape:n,keys:t},this._cached}_parse(n){if(this._getType(n)!==xe.object){let u=this._getOrReturnCtx(n);return he(u,{code:se.invalid_type,expected:xe.object,received:u.parsedType}),Ke}let{status:r,ctx:o}=this._processInputParams(n),{shape:i,keys:s}=this._getCached(),a=[];if(!(this._def.catchall instanceof ii&&this._def.unknownKeys==="strip"))for(let u in o.data)s.includes(u)||a.push(u);let d=[];for(let u of s){let c=i[u],l=o.data[u];d.push({key:{status:"valid",value:u},value:c._parse(new To(o,l,o.path,u)),alwaysSet:u in o.data})}if(this._def.catchall instanceof ii){let u=this._def.unknownKeys;if(u==="passthrough")for(let c of a)d.push({key:{status:"valid",value:c},value:{status:"valid",value:o.data[c]}});else if(u==="strict")a.length>0&&(he(o,{code:se.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let c of a){let l=o.data[c];d.push({key:{status:"valid",value:c},value:u._parse(new To(o,l,o.path,c)),alwaysSet:c in o.data})}}return o.common.async?Promise.resolve().then(async()=>{let u=[];for(let c of d){let l=await c.key,p=await c.value;u.push({key:l,value:p,alwaysSet:c.alwaysSet})}return u}).then(u=>or.mergeObjectSync(r,u)):or.mergeObjectSync(r,d)}get shape(){return this._def.shape()}strict(n){return De.errToObj,new e({...this._def,unknownKeys:"strict",...n!==void 0?{errorMap:(t,r)=>{let o=this._def.errorMap?.(t,r).message??r.defaultError;return t.code==="unrecognized_keys"?{message:De.errToObj(n).message??o}:{message:o}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(n){return new e({...this._def,shape:()=>({...this._def.shape(),...n})})}merge(n){return new e({unknownKeys:n._def.unknownKeys,catchall:n._def.catchall,shape:()=>({...this._def.shape(),...n._def.shape()}),typeName:de.ZodObject})}setKey(n,t){return this.augment({[n]:t})}catchall(n){return new e({...this._def,catchall:n})}pick(n){let t={};for(let r of yn.objectKeys(n))n[r]&&this.shape[r]&&(t[r]=this.shape[r]);return new e({...this._def,shape:()=>t})}omit(n){let t={};for(let r of yn.objectKeys(this.shape))n[r]||(t[r]=this.shape[r]);return new e({...this._def,shape:()=>t})}deepPartial(){return dl(this)}partial(n){let t={};for(let r of yn.objectKeys(this.shape)){let o=this.shape[r];n&&!n[r]?t[r]=o:t[r]=o.optional()}return new e({...this._def,shape:()=>t})}required(n){let t={};for(let r of yn.objectKeys(this.shape))if(n&&!n[r])t[r]=this.shape[r];else{let i=this.shape[r];for(;i instanceof Kr;)i=i._def.innerType;t[r]=i}return new e({...this._def,shape:()=>t})}keyof(){return _K(yn.objectKeys(this.shape))}};Vr.create=(e,n)=>new Vr({shape:()=>e,unknownKeys:"strip",catchall:ii.create(),typeName:de.ZodObject,...tn(n)});Vr.strictCreate=(e,n)=>new Vr({shape:()=>e,unknownKeys:"strict",catchall:ii.create(),typeName:de.ZodObject,...tn(n)});Vr.lazycreate=(e,n)=>new Vr({shape:e,unknownKeys:"strip",catchall:ii.create(),typeName:de.ZodObject,...tn(n)});var Ld=class extends cn{_parse(n){let{ctx:t}=this._processInputParams(n),r=this._def.options;function o(i){for(let a of i)if(a.result.status==="valid")return a.result;for(let a of i)if(a.result.status==="dirty")return t.common.issues.push(...a.ctx.common.issues),a.result;let s=i.map(a=>new Jr(a.ctx.common.issues));return he(t,{code:se.invalid_union,unionErrors:s}),Ke}if(t.common.async)return Promise.all(r.map(async i=>{let s={...t,common:{...t.common,issues:[]},parent:null};return{result:await i._parseAsync({data:t.data,path:t.path,parent:s}),ctx:s}})).then(o);{let i,s=[];for(let d of r){let u={...t,common:{...t.common,issues:[]},parent:null},c=d._parseSync({data:t.data,path:t.path,parent:u});if(c.status==="valid")return c;c.status==="dirty"&&!i&&(i={result:c,ctx:u}),u.common.issues.length&&s.push(u.common.issues)}if(i)return t.common.issues.push(...i.ctx.common.issues),i.result;let a=s.map(d=>new Jr(d));return he(t,{code:se.invalid_union,unionErrors:a}),Ke}}get options(){return this._def.options}};Ld.create=(e,n)=>new Ld({options:e,typeName:de.ZodUnion,...tn(n)});var vs=e=>e instanceof Fd?vs(e.schema):e instanceof Po?vs(e.innerType()):e instanceof qd?[e.value]:e instanceof zd?e.options:e instanceof Nd?yn.objectValues(e.enum):e instanceof Ud?vs(e._def.innerType):e instanceof Od?[void 0]:e instanceof $d?[null]:e instanceof Kr?[void 0,...vs(e.unwrap())]:e instanceof Li?[null,...vs(e.unwrap())]:e instanceof mm||e instanceof Jd?vs(e.unwrap()):e instanceof Bd?vs(e._def.innerType):[],Z0=class e extends cn{_parse(n){let{ctx:t}=this._processInputParams(n);if(t.parsedType!==xe.object)return he(t,{code:se.invalid_type,expected:xe.object,received:t.parsedType}),Ke;let r=this.discriminator,o=t.data[r],i=this.optionsMap.get(o);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(he(t,{code:se.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Ke)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(n,t,r){let o=new Map;for(let i of t){let s=vs(i.shape[n]);if(!s.length)throw new Error(`A discriminator value for key \`${n}\` could not be extracted from all schema options`);for(let a of s){if(o.has(a))throw new Error(`Discriminator property ${String(n)} has duplicate value ${String(a)}`);o.set(a,i)}}return new e({typeName:de.ZodDiscriminatedUnion,discriminator:n,options:t,optionsMap:o,...tn(r)})}};function GI(e,n){let t=Oi(e),r=Oi(n);if(e===n)return{valid:!0,data:e};if(t===xe.object&&r===xe.object){let o=yn.objectKeys(n),i=yn.objectKeys(e).filter(a=>o.indexOf(a)!==-1),s={...e,...n};for(let a of i){let d=GI(e[a],n[a]);if(!d.valid)return{valid:!1};s[a]=d.data}return{valid:!0,data:s}}else if(t===xe.array&&r===xe.array){if(e.length!==n.length)return{valid:!1};let o=[];for(let i=0;i<e.length;i++){let s=e[i],a=n[i],d=GI(s,a);if(!d.valid)return{valid:!1};o.push(d.data)}return{valid:!0,data:o}}else return t===xe.date&&r===xe.date&&+e==+n?{valid:!0,data:e}:{valid:!1}}var jd=class extends cn{_parse(n){let{status:t,ctx:r}=this._processInputParams(n),o=(i,s)=>{if(H0(i)||H0(s))return Ke;let a=GI(i.value,s.value);return a.valid?((G0(i)||G0(s))&&t.dirty(),{status:t.value,value:a.data}):(he(r,{code:se.invalid_intersection_types}),Ke)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([i,s])=>o(i,s)):o(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};jd.create=(e,n,t)=>new jd({left:e,right:n,typeName:de.ZodIntersection,...tn(t)});var $i=class e extends cn{_parse(n){let{status:t,ctx:r}=this._processInputParams(n);if(r.parsedType!==xe.array)return he(r,{code:se.invalid_type,expected:xe.array,received:r.parsedType}),Ke;if(r.data.length<this._def.items.length)return he(r,{code:se.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Ke;!this._def.rest&&r.data.length>this._def.items.length&&(he(r,{code:se.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());let i=[...r.data].map((s,a)=>{let d=this._def.items[a]||this._def.rest;return d?d._parse(new To(r,s,r.path,a)):null}).filter(s=>!!s);return r.common.async?Promise.all(i).then(s=>or.mergeArray(t,s)):or.mergeArray(t,i)}get items(){return this._def.items}rest(n){return new e({...this._def,rest:n})}};$i.create=(e,n)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new $i({items:e,typeName:de.ZodTuple,rest:null,...tn(n)})};var Q0=class e extends cn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(n){let{status:t,ctx:r}=this._processInputParams(n);if(r.parsedType!==xe.object)return he(r,{code:se.invalid_type,expected:xe.object,received:r.parsedType}),Ke;let o=[],i=this._def.keyType,s=this._def.valueType;for(let a in r.data)o.push({key:i._parse(new To(r,a,r.path,a)),value:s._parse(new To(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?or.mergeObjectAsync(t,o):or.mergeObjectSync(t,o)}get element(){return this._def.valueType}static create(n,t,r){return t instanceof cn?new e({keyType:n,valueType:t,typeName:de.ZodRecord,...tn(r)}):new e({keyType:sa.create(),valueType:n,typeName:de.ZodRecord,...tn(t)})}},ll=class extends cn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(n){let{status:t,ctx:r}=this._processInputParams(n);if(r.parsedType!==xe.map)return he(r,{code:se.invalid_type,expected:xe.map,received:r.parsedType}),Ke;let o=this._def.keyType,i=this._def.valueType,s=[...r.data.entries()].map(([a,d],u)=>({key:o._parse(new To(r,a,r.path,[u,"key"])),value:i._parse(new To(r,d,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let d of s){let u=await d.key,c=await d.value;if(u.status==="aborted"||c.status==="aborted")return Ke;(u.status==="dirty"||c.status==="dirty")&&t.dirty(),a.set(u.value,c.value)}return{status:t.value,value:a}})}else{let a=new Map;for(let d of s){let u=d.key,c=d.value;if(u.status==="aborted"||c.status==="aborted")return Ke;(u.status==="dirty"||c.status==="dirty")&&t.dirty(),a.set(u.value,c.value)}return{status:t.value,value:a}}}};ll.create=(e,n,t)=>new ll({valueType:n,keyType:e,typeName:de.ZodMap,...tn(t)});var pl=class e extends cn{_parse(n){let{status:t,ctx:r}=this._processInputParams(n);if(r.parsedType!==xe.set)return he(r,{code:se.invalid_type,expected:xe.set,received:r.parsedType}),Ke;let o=this._def;o.minSize!==null&&r.data.size<o.minSize.value&&(he(r,{code:se.too_small,minimum:o.minSize.value,type:"set",inclusive:!0,exact:!1,message:o.minSize.message}),t.dirty()),o.maxSize!==null&&r.data.size>o.maxSize.value&&(he(r,{code:se.too_big,maximum:o.maxSize.value,type:"set",inclusive:!0,exact:!1,message:o.maxSize.message}),t.dirty());let i=this._def.valueType;function s(d){let u=new Set;for(let c of d){if(c.status==="aborted")return Ke;c.status==="dirty"&&t.dirty(),u.add(c.value)}return{status:t.value,value:u}}let a=[...r.data.values()].map((d,u)=>i._parse(new To(r,d,r.path,u)));return r.common.async?Promise.all(a).then(d=>s(d)):s(a)}min(n,t){return new e({...this._def,minSize:{value:n,message:De.toString(t)}})}max(n,t){return new e({...this._def,maxSize:{value:n,message:De.toString(t)}})}size(n,t){return this.min(n,t).max(n,t)}nonempty(n){return this.min(1,n)}};pl.create=(e,n)=>new pl({valueType:e,minSize:null,maxSize:null,typeName:de.ZodSet,...tn(n)});var X0=class e extends cn{constructor(){super(...arguments),this.validate=this.implement}_parse(n){let{ctx:t}=this._processInputParams(n);if(t.parsedType!==xe.function)return he(t,{code:se.invalid_type,expected:xe.function,received:t.parsedType}),Ke;function r(a,d){return fm({data:a,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,sl(),ws].filter(u=>!!u),issueData:{code:se.invalid_arguments,argumentsError:d}})}function o(a,d){return fm({data:a,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,sl(),ws].filter(u=>!!u),issueData:{code:se.invalid_return_type,returnTypeError:d}})}let i={errorMap:t.common.contextualErrorMap},s=t.data;if(this._def.returns instanceof da){let a=this;return br(async function(...d){let u=new Jr([]),c=await a._def.args.parseAsync(d,i).catch(m=>{throw u.addIssue(r(d,m)),u}),l=await Reflect.apply(s,this,c);return await a._def.returns._def.type.parseAsync(l,i).catch(m=>{throw u.addIssue(o(l,m)),u})})}else{let a=this;return br(function(...d){let u=a._def.args.safeParse(d,i);if(!u.success)throw new Jr([r(d,u.error)]);let c=Reflect.apply(s,this,u.data),l=a._def.returns.safeParse(c,i);if(!l.success)throw new Jr([o(c,l.error)]);return l.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...n){return new e({...this._def,args:$i.create(n).rest(Ss.create())})}returns(n){return new e({...this._def,returns:n})}implement(n){return this.parse(n)}strictImplement(n){return this.parse(n)}static create(n,t,r){return new e({args:n||$i.create([]).rest(Ss.create()),returns:t||Ss.create(),typeName:de.ZodFunction,...tn(r)})}},Fd=class extends cn{get schema(){return this._def.getter()}_parse(n){let{ctx:t}=this._processInputParams(n);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};Fd.create=(e,n)=>new Fd({getter:e,typeName:de.ZodLazy,...tn(n)});var qd=class extends cn{_parse(n){if(n.data!==this._def.value){let t=this._getOrReturnCtx(n);return he(t,{received:t.data,code:se.invalid_literal,expected:this._def.value}),Ke}return{status:"valid",value:n.data}}get value(){return this._def.value}};qd.create=(e,n)=>new qd({value:e,typeName:de.ZodLiteral,...tn(n)});function _K(e,n){return new zd({values:e,typeName:de.ZodEnum,...tn(n)})}var zd=class e extends cn{_parse(n){if(typeof n.data!="string"){let t=this._getOrReturnCtx(n),r=this._def.values;return he(t,{expected:yn.joinValues(r),received:t.parsedType,code:se.invalid_type}),Ke}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(n.data)){let t=this._getOrReturnCtx(n),r=this._def.values;return he(t,{received:t.data,code:se.invalid_enum_value,options:r}),Ke}return br(n.data)}get options(){return this._def.values}get enum(){let n={};for(let t of this._def.values)n[t]=t;return n}get Values(){let n={};for(let t of this._def.values)n[t]=t;return n}get Enum(){let n={};for(let t of this._def.values)n[t]=t;return n}extract(n,t=this._def){return e.create(n,{...this._def,...t})}exclude(n,t=this._def){return e.create(this.options.filter(r=>!n.includes(r)),{...this._def,...t})}};zd.create=_K;var Nd=class extends cn{_parse(n){let t=yn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(n);if(r.parsedType!==xe.string&&r.parsedType!==xe.number){let o=yn.objectValues(t);return he(r,{expected:yn.joinValues(o),received:r.parsedType,code:se.invalid_type}),Ke}if(this._cache||(this._cache=new Set(yn.getValidEnumValues(this._def.values))),!this._cache.has(n.data)){let o=yn.objectValues(t);return he(r,{received:r.data,code:se.invalid_enum_value,options:o}),Ke}return br(n.data)}get enum(){return this._def.values}};Nd.create=(e,n)=>new Nd({values:e,typeName:de.ZodNativeEnum,...tn(n)});var da=class extends cn{unwrap(){return this._def.type}_parse(n){let{ctx:t}=this._processInputParams(n);if(t.parsedType!==xe.promise&&t.common.async===!1)return he(t,{code:se.invalid_type,expected:xe.promise,received:t.parsedType}),Ke;let r=t.parsedType===xe.promise?t.data:Promise.resolve(t.data);return br(r.then(o=>this._def.type.parseAsync(o,{path:t.path,errorMap:t.common.contextualErrorMap})))}};da.create=(e,n)=>new da({type:e,typeName:de.ZodPromise,...tn(n)});var Po=class extends cn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===de.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(n){let{status:t,ctx:r}=this._processInputParams(n),o=this._def.effect||null,i={addIssue:s=>{he(r,s),s.fatal?t.abort():t.dirty()},get path(){return r.path}};if(i.addIssue=i.addIssue.bind(i),o.type==="preprocess"){let s=o.transform(r.data,i);if(r.common.async)return Promise.resolve(s).then(async a=>{if(t.value==="aborted")return Ke;let d=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return d.status==="aborted"?Ke:d.status==="dirty"?Rd(d.value):t.value==="dirty"?Rd(d.value):d});{if(t.value==="aborted")return Ke;let a=this._def.schema._parseSync({data:s,path:r.path,parent:r});return a.status==="aborted"?Ke:a.status==="dirty"?Rd(a.value):t.value==="dirty"?Rd(a.value):a}}if(o.type==="refinement"){let s=a=>{let d=o.refinement(a,i);if(r.common.async)return Promise.resolve(d);if(d instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?Ke:(a.status==="dirty"&&t.dirty(),s(a.value),{status:t.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?Ke:(a.status==="dirty"&&t.dirty(),s(a.value).then(()=>({status:t.value,value:a.value}))))}if(o.type==="transform")if(r.common.async===!1){let s=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!ia(s))return Ke;let a=o.transform(s.value,i);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(s=>ia(s)?Promise.resolve(o.transform(s.value,i)).then(a=>({status:t.value,value:a})):Ke);yn.assertNever(o)}};Po.create=(e,n,t)=>new Po({schema:e,typeName:de.ZodEffects,effect:n,...tn(t)});Po.createWithPreprocess=(e,n,t)=>new Po({schema:n,effect:{type:"preprocess",transform:e},typeName:de.ZodEffects,...tn(t)});var Kr=class extends cn{_parse(n){return this._getType(n)===xe.undefined?br(void 0):this._def.innerType._parse(n)}unwrap(){return this._def.innerType}};Kr.create=(e,n)=>new Kr({innerType:e,typeName:de.ZodOptional,...tn(n)});var Li=class extends cn{_parse(n){return this._getType(n)===xe.null?br(null):this._def.innerType._parse(n)}unwrap(){return this._def.innerType}};Li.create=(e,n)=>new Li({innerType:e,typeName:de.ZodNullable,...tn(n)});var Ud=class extends cn{_parse(n){let{ctx:t}=this._processInputParams(n),r=t.data;return t.parsedType===xe.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};Ud.create=(e,n)=>new Ud({innerType:e,typeName:de.ZodDefault,defaultValue:typeof n.default=="function"?n.default:()=>n.default,...tn(n)});var Bd=class extends cn{_parse(n){let{ctx:t}=this._processInputParams(n),r={...t,common:{...t.common,issues:[]}},o=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return al(o)?o.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Jr(r.common.issues)},input:r.data})})):{status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new Jr(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Bd.create=(e,n)=>new Bd({innerType:e,typeName:de.ZodCatch,catchValue:typeof n.catch=="function"?n.catch:()=>n.catch,...tn(n)});var fl=class extends cn{_parse(n){if(this._getType(n)!==xe.nan){let r=this._getOrReturnCtx(n);return he(r,{code:se.invalid_type,expected:xe.nan,received:r.parsedType}),Ke}return{status:"valid",value:n.data}}};fl.create=e=>new fl({typeName:de.ZodNaN,...tn(e)});var iDe=Symbol("zod_brand"),mm=class extends cn{_parse(n){let{ctx:t}=this._processInputParams(n),r=t.data;return this._def.type._parse({data:r,path:t.path,parent:t})}unwrap(){return this._def.type}},hm=class e extends cn{_parse(n){let{status:t,ctx:r}=this._processInputParams(n);if(r.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?Ke:i.status==="dirty"?(t.dirty(),Rd(i.value)):this._def.out._parseAsync({data:i.value,path:r.path,parent:r})})();{let o=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?Ke:o.status==="dirty"?(t.dirty(),{status:"dirty",value:o.value}):this._def.out._parseSync({data:o.value,path:r.path,parent:r})}}static create(n,t){return new e({in:n,out:t,typeName:de.ZodPipeline})}},Jd=class extends cn{_parse(n){let t=this._def.innerType._parse(n),r=o=>(ia(o)&&(o.value=Object.freeze(o.value)),o);return al(t)?t.then(o=>r(o)):r(t)}unwrap(){return this._def.innerType}};Jd.create=(e,n)=>new Jd({innerType:e,typeName:de.ZodReadonly,...tn(n)});function hK(e,n){let t=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e;return typeof t=="string"?{message:t}:t}function bK(e,n={},t){return e?aa.create().superRefine((r,o)=>{let i=e(r);if(i instanceof Promise)return i.then(s=>{if(!s){let a=hK(n,r),d=a.fatal??t??!0;o.addIssue({code:"custom",...a,fatal:d})}});if(!i){let s=hK(n,r),a=s.fatal??t??!0;o.addIssue({code:"custom",...s,fatal:a})}}):aa.create()}var sDe={object:Vr.lazycreate},de;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(de||(de={}));var aDe=(e,n={message:`Input not instance of ${e.name}`})=>bK(t=>t instanceof e,n),wK=sa.create,vK=Ed.create,dDe=fl.create,uDe=Dd.create,SK=Md.create,cDe=Ad.create,lDe=ul.create,pDe=Od.create,fDe=$d.create,mDe=aa.create,hDe=Ss.create,gDe=ii.create,yDe=cl.create,xDe=ks.create,ZI=Vr.create,_De=Vr.strictCreate,bDe=Ld.create,wDe=Z0.create,vDe=jd.create,SDe=$i.create,kDe=Q0.create,CDe=ll.create,TDe=pl.create,PDe=X0.create,IDe=Fd.create,RDe=qd.create,EDe=zd.create,DDe=Nd.create,MDe=da.create,ADe=Po.create,ODe=Kr.create,$De=Li.create,LDe=Po.createWithPreprocess,jDe=hm.create,FDe=()=>wK().optional(),qDe=()=>vK().optional(),zDe=()=>SK().optional(),NDe={string:(e=>sa.create({...e,coerce:!0})),number:(e=>Ed.create({...e,coerce:!0})),boolean:(e=>Md.create({...e,coerce:!0})),bigint:(e=>Dd.create({...e,coerce:!0})),date:(e=>Ad.create({...e,coerce:!0}))};var UDe=Ke;var JDe=Object.freeze({status:"aborted"});function G(e,n,t){function r(a,d){var u;Object.defineProperty(a,"_zod",{value:a._zod??{},enumerable:!1}),(u=a._zod).traits??(u.traits=new Set),a._zod.traits.add(e),n(a,d);for(let c in s.prototype)c in a||Object.defineProperty(a,c,{value:s.prototype[c].bind(a)});a._zod.constr=s,a._zod.def=d}let o=t?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:e});function s(a){var d;let u=t?.Parent?new i:this;r(u,a),(d=u._zod).deferred??(d.deferred=[]);for(let c of u._zod.deferred)c();return u}return Object.defineProperty(s,"init",{value:r}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>t?.Parent&&a instanceof t.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}var Cs=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Y0={};function uo(e){return e&&Object.assign(Y0,e),Y0}var xn={};Wo(xn,{BIGINT_FORMAT_RANGES:()=>CK,Class:()=>XI,NUMBER_FORMAT_RANGES:()=>iR,aborted:()=>Vd,allowsEval:()=>tR,assert:()=>GDe,assertEqual:()=>KDe,assertIs:()=>WDe,assertNever:()=>HDe,assertNotEqual:()=>VDe,assignProp:()=>nR,cached:()=>xm,captureStackTrace:()=>n_,cleanEnum:()=>dMe,cleanRegex:()=>bm,clone:()=>co,createTransparentProxy:()=>nMe,defineLazy:()=>Zn,esc:()=>Kd,escapeRegex:()=>ua,extend:()=>oMe,finalizeIssue:()=>si,floatSafeRemainder:()=>eR,getElementAtPath:()=>ZDe,getEnumValues:()=>ym,getLengthableOrigin:()=>wm,getParsedType:()=>eMe,getSizableOrigin:()=>TK,isObject:()=>ml,isPlainObject:()=>hl,issue:()=>sR,joinValues:()=>e_,jsonStringifyReplacer:()=>YI,merge:()=>iMe,normalizeParams:()=>Ve,nullish:()=>_m,numKeys:()=>YDe,omit:()=>rMe,optionalKeys:()=>oR,partial:()=>sMe,pick:()=>tMe,prefixIssues:()=>ji,primitiveTypes:()=>kK,promiseAllObject:()=>QDe,propertyKeyTypes:()=>rR,randomString:()=>XDe,required:()=>aMe,stringifyPrimitive:()=>t_,unwrapMessage:()=>gm});function KDe(e){return e}function VDe(e){return e}function WDe(e){}function HDe(e){throw new Error}function GDe(e){}function ym(e){let n=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,o])=>n.indexOf(+r)===-1).map(([r,o])=>o)}function e_(e,n="|"){return e.map(t=>t_(t)).join(n)}function YI(e,n){return typeof n=="bigint"?n.toString():n}function xm(e){return{get value(){{let t=e();return Object.defineProperty(this,"value",{value:t}),t}throw new Error("cached value already set")}}}function _m(e){return e==null}function bm(e){let n=e.startsWith("^")?1:0,t=e.endsWith("$")?e.length-1:e.length;return e.slice(n,t)}function eR(e,n){let t=(e.toString().split(".")[1]||"").length,r=(n.toString().split(".")[1]||"").length,o=t>r?t:r,i=Number.parseInt(e.toFixed(o).replace(".","")),s=Number.parseInt(n.toFixed(o).replace(".",""));return i%s/10**o}function Zn(e,n,t){Object.defineProperty(e,n,{get(){{let o=t();return e[n]=o,o}throw new Error("cached value already set")},set(o){Object.defineProperty(e,n,{value:o})},configurable:!0})}function nR(e,n,t){Object.defineProperty(e,n,{value:t,writable:!0,enumerable:!0,configurable:!0})}function ZDe(e,n){return n?n.reduce((t,r)=>t?.[r],e):e}function QDe(e){let n=Object.keys(e),t=n.map(r=>e[r]);return Promise.all(t).then(r=>{let o={};for(let i=0;i<n.length;i++)o[n[i]]=r[i];return o})}function XDe(e=10){let n="abcdefghijklmnopqrstuvwxyz",t="";for(let r=0;r<e;r++)t+=n[Math.floor(Math.random()*n.length)];return t}function Kd(e){return JSON.stringify(e)}var n_=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};function ml(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var tR=xm(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function hl(e){if(ml(e)===!1)return!1;let n=e.constructor;if(n===void 0)return!0;let t=n.prototype;return!(ml(t)===!1||Object.prototype.hasOwnProperty.call(t,"isPrototypeOf")===!1)}function YDe(e){let n=0;for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&n++;return n}var eMe=e=>{let n=typeof e;switch(n){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${n}`)}},rR=new Set(["string","number","symbol"]),kK=new Set(["string","number","bigint","boolean","symbol","undefined"]);function ua(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function co(e,n,t){let r=new e._zod.constr(n??e._zod.def);return(!n||t?.parent)&&(r._zod.parent=e),r}function Ve(e){let n=e;if(!n)return{};if(typeof n=="string")return{error:()=>n};if(n?.message!==void 0){if(n?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");n.error=n.message}return delete n.message,typeof n.error=="string"?{...n,error:()=>n.error}:n}function nMe(e){let n;return new Proxy({},{get(t,r,o){return n??(n=e()),Reflect.get(n,r,o)},set(t,r,o,i){return n??(n=e()),Reflect.set(n,r,o,i)},has(t,r){return n??(n=e()),Reflect.has(n,r)},deleteProperty(t,r){return n??(n=e()),Reflect.deleteProperty(n,r)},ownKeys(t){return n??(n=e()),Reflect.ownKeys(n)},getOwnPropertyDescriptor(t,r){return n??(n=e()),Reflect.getOwnPropertyDescriptor(n,r)},defineProperty(t,r,o){return n??(n=e()),Reflect.defineProperty(n,r,o)}})}function t_(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function oR(e){return Object.keys(e).filter(n=>e[n]._zod.optin==="optional"&&e[n]._zod.optout==="optional")}var iR={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},CK={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function tMe(e,n){let t={},r=e._zod.def;for(let o in n){if(!(o in r.shape))throw new Error(`Unrecognized key: "${o}"`);n[o]&&(t[o]=r.shape[o])}return co(e,{...e._zod.def,shape:t,checks:[]})}function rMe(e,n){let t={...e._zod.def.shape},r=e._zod.def;for(let o in n){if(!(o in r.shape))throw new Error(`Unrecognized key: "${o}"`);n[o]&&delete t[o]}return co(e,{...e._zod.def,shape:t,checks:[]})}function oMe(e,n){if(!hl(n))throw new Error("Invalid input to extend: expected a plain object");let t={...e._zod.def,get shape(){let r={...e._zod.def.shape,...n};return nR(this,"shape",r),r},checks:[]};return co(e,t)}function iMe(e,n){return co(e,{...e._zod.def,get shape(){let t={...e._zod.def.shape,...n._zod.def.shape};return nR(this,"shape",t),t},catchall:n._zod.def.catchall,checks:[]})}function sMe(e,n,t){let r=n._zod.def.shape,o={...r};if(t)for(let i in t){if(!(i in r))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(o[i]=e?new e({type:"optional",innerType:r[i]}):r[i])}else for(let i in r)o[i]=e?new e({type:"optional",innerType:r[i]}):r[i];return co(n,{...n._zod.def,shape:o,checks:[]})}function aMe(e,n,t){let r=n._zod.def.shape,o={...r};if(t)for(let i in t){if(!(i in o))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(o[i]=new e({type:"nonoptional",innerType:r[i]}))}else for(let i in r)o[i]=new e({type:"nonoptional",innerType:r[i]});return co(n,{...n._zod.def,shape:o,checks:[]})}function Vd(e,n=0){for(let t=n;t<e.issues.length;t++)if(e.issues[t]?.continue!==!0)return!0;return!1}function ji(e,n){return n.map(t=>{var r;return(r=t).path??(r.path=[]),t.path.unshift(e),t})}function gm(e){return typeof e=="string"?e:e?.message}function si(e,n,t){let r={...e,path:e.path??[]};if(!e.message){let o=gm(e.inst?._zod.def?.error?.(e))??gm(n?.error?.(e))??gm(t.customError?.(e))??gm(t.localeError?.(e))??"Invalid input";r.message=o}return delete r.inst,delete r.continue,n?.reportInput||delete r.input,r}function TK(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function wm(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function sR(...e){let[n,t,r]=e;return typeof n=="string"?{message:n,code:"custom",input:t,inst:r}:{...n}}function dMe(e){return Object.entries(e).filter(([n,t])=>Number.isNaN(Number.parseInt(n,10))).map(n=>n[1])}var XI=class{constructor(...n){}};var PK=(e,n)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:n,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(n,YI,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},r_=G("$ZodError",PK),vm=G("$ZodError",PK,{Parent:Error});function aR(e,n=t=>t.message){let t={},r=[];for(let o of e.issues)o.path.length>0?(t[o.path[0]]=t[o.path[0]]||[],t[o.path[0]].push(n(o))):r.push(n(o));return{formErrors:r,fieldErrors:t}}function dR(e,n){let t=n||function(i){return i.message},r={_errors:[]},o=i=>{for(let s of i.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(a=>o({issues:a}));else if(s.code==="invalid_key")o({issues:s.issues});else if(s.code==="invalid_element")o({issues:s.issues});else if(s.path.length===0)r._errors.push(t(s));else{let a=r,d=0;for(;d<s.path.length;){let u=s.path[d];d===s.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(t(s))):a[u]=a[u]||{_errors:[]},a=a[u],d++}}};return o(e),r}var uR=e=>(n,t,r,o)=>{let i=r?Object.assign(r,{async:!1}):{async:!1},s=n._zod.run({value:t,issues:[]},i);if(s instanceof Promise)throw new Cs;if(s.issues.length){let a=new(o?.Err??e)(s.issues.map(d=>si(d,i,uo())));throw n_(a,o?.callee),a}return s.value},cR=uR(vm),lR=e=>async(n,t,r,o)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},s=n._zod.run({value:t,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){let a=new(o?.Err??e)(s.issues.map(d=>si(d,i,uo())));throw n_(a,o?.callee),a}return s.value},pR=lR(vm),fR=e=>(n,t,r)=>{let o=r?{...r,async:!1}:{async:!1},i=n._zod.run({value:t,issues:[]},o);if(i instanceof Promise)throw new Cs;return i.issues.length?{success:!1,error:new(e??r_)(i.issues.map(s=>si(s,o,uo())))}:{success:!0,data:i.value}},Wd=fR(vm),mR=e=>async(n,t,r)=>{let o=r?Object.assign(r,{async:!0}):{async:!0},i=n._zod.run({value:t,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(s=>si(s,o,uo())))}:{success:!0,data:i.value}},Hd=mR(vm);var IK=/^[cC][^\s-]{8,}$/,RK=/^[0-9a-z]+$/,EK=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,DK=/^[0-9a-vA-V]{20}$/,MK=/^[A-Za-z0-9]{27}$/,AK=/^[a-zA-Z0-9_-]{21}$/,OK=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var $K=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,hR=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/;var LK=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var cMe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function jK(){return new RegExp(cMe,"u")}var FK=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,qK=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,zK=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,NK=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,UK=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,gR=/^[A-Za-z0-9_-]*$/,BK=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/;var JK=/^\+(?:[0-9]){6,14}[0-9]$/,KK="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",VK=new RegExp(`^${KK}$`);function WK(e){let n="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${n}`:e.precision===0?`${n}:[0-5]\\d`:`${n}:[0-5]\\d\\.\\d{${e.precision}}`:`${n}(?::[0-5]\\d(?:\\.\\d+)?)?`}function HK(e){return new RegExp(`^${WK(e)}$`)}function GK(e){let n=WK({precision:e.precision}),t=["Z"];e.local&&t.push(""),e.offset&&t.push("([+-]\\d{2}:\\d{2})");let r=`${n}(?:${t.join("|")})`;return new RegExp(`^${KK}T(?:${r})$`)}var ZK=e=>{let n=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${n}$`)};var QK=/^\d+$/,XK=/^-?\d+(?:\.\d+)?/i,YK=/true|false/i,eV=/null/i;var nV=/^[^A-Z]*$/,tV=/^[^a-z]*$/;var ir=G("$ZodCheck",(e,n)=>{var t;e._zod??(e._zod={}),e._zod.def=n,(t=e._zod).onattach??(t.onattach=[])}),rV={number:"number",bigint:"bigint",object:"date"},yR=G("$ZodCheckLessThan",(e,n)=>{ir.init(e,n);let t=rV[typeof n.value];e._zod.onattach.push(r=>{let o=r._zod.bag,i=(n.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;n.value<i&&(n.inclusive?o.maximum=n.value:o.exclusiveMaximum=n.value)}),e._zod.check=r=>{(n.inclusive?r.value<=n.value:r.value<n.value)||r.issues.push({origin:t,code:"too_big",maximum:n.value,input:r.value,inclusive:n.inclusive,inst:e,continue:!n.abort})}}),xR=G("$ZodCheckGreaterThan",(e,n)=>{ir.init(e,n);let t=rV[typeof n.value];e._zod.onattach.push(r=>{let o=r._zod.bag,i=(n.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;n.value>i&&(n.inclusive?o.minimum=n.value:o.exclusiveMinimum=n.value)}),e._zod.check=r=>{(n.inclusive?r.value>=n.value:r.value>n.value)||r.issues.push({origin:t,code:"too_small",minimum:n.value,input:r.value,inclusive:n.inclusive,inst:e,continue:!n.abort})}}),oV=G("$ZodCheckMultipleOf",(e,n)=>{ir.init(e,n),e._zod.onattach.push(t=>{var r;(r=t._zod.bag).multipleOf??(r.multipleOf=n.value)}),e._zod.check=t=>{if(typeof t.value!=typeof n.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof t.value=="bigint"?t.value%n.value===BigInt(0):eR(t.value,n.value)===0)||t.issues.push({origin:typeof t.value,code:"not_multiple_of",divisor:n.value,input:t.value,inst:e,continue:!n.abort})}}),iV=G("$ZodCheckNumberFormat",(e,n)=>{ir.init(e,n),n.format=n.format||"float64";let t=n.format?.includes("int"),r=t?"int":"number",[o,i]=iR[n.format];e._zod.onattach.push(s=>{let a=s._zod.bag;a.format=n.format,a.minimum=o,a.maximum=i,t&&(a.pattern=QK)}),e._zod.check=s=>{let a=s.value;if(t){if(!Number.isInteger(a)){s.issues.push({expected:r,format:n.format,code:"invalid_type",input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?s.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!n.abort}):s.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!n.abort});return}}a<o&&s.issues.push({origin:"number",input:a,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!n.abort}),a>i&&s.issues.push({origin:"number",input:a,code:"too_big",maximum:i,inst:e})}});var sV=G("$ZodCheckMaxLength",(e,n)=>{var t;ir.init(e,n),(t=e._zod.def).when??(t.when=r=>{let o=r.value;return!_m(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{let o=r._zod.bag.maximum??Number.POSITIVE_INFINITY;n.maximum<o&&(r._zod.bag.maximum=n.maximum)}),e._zod.check=r=>{let o=r.value;if(o.length<=n.maximum)return;let s=wm(o);r.issues.push({origin:s,code:"too_big",maximum:n.maximum,inclusive:!0,input:o,inst:e,continue:!n.abort})}}),aV=G("$ZodCheckMinLength",(e,n)=>{var t;ir.init(e,n),(t=e._zod.def).when??(t.when=r=>{let o=r.value;return!_m(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{let o=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;n.minimum>o&&(r._zod.bag.minimum=n.minimum)}),e._zod.check=r=>{let o=r.value;if(o.length>=n.minimum)return;let s=wm(o);r.issues.push({origin:s,code:"too_small",minimum:n.minimum,inclusive:!0,input:o,inst:e,continue:!n.abort})}}),dV=G("$ZodCheckLengthEquals",(e,n)=>{var t;ir.init(e,n),(t=e._zod.def).when??(t.when=r=>{let o=r.value;return!_m(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{let o=r._zod.bag;o.minimum=n.length,o.maximum=n.length,o.length=n.length}),e._zod.check=r=>{let o=r.value,i=o.length;if(i===n.length)return;let s=wm(o),a=i>n.length;r.issues.push({origin:s,...a?{code:"too_big",maximum:n.length}:{code:"too_small",minimum:n.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!n.abort})}}),Sm=G("$ZodCheckStringFormat",(e,n)=>{var t,r;ir.init(e,n),e._zod.onattach.push(o=>{let i=o._zod.bag;i.format=n.format,n.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(n.pattern))}),n.pattern?(t=e._zod).check??(t.check=o=>{n.pattern.lastIndex=0,!n.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:n.format,input:o.value,...n.pattern?{pattern:n.pattern.toString()}:{},inst:e,continue:!n.abort})}):(r=e._zod).check??(r.check=()=>{})}),uV=G("$ZodCheckRegex",(e,n)=>{Sm.init(e,n),e._zod.check=t=>{n.pattern.lastIndex=0,!n.pattern.test(t.value)&&t.issues.push({origin:"string",code:"invalid_format",format:"regex",input:t.value,pattern:n.pattern.toString(),inst:e,continue:!n.abort})}}),cV=G("$ZodCheckLowerCase",(e,n)=>{n.pattern??(n.pattern=nV),Sm.init(e,n)}),lV=G("$ZodCheckUpperCase",(e,n)=>{n.pattern??(n.pattern=tV),Sm.init(e,n)}),pV=G("$ZodCheckIncludes",(e,n)=>{ir.init(e,n);let t=ua(n.includes),r=new RegExp(typeof n.position=="number"?`^.{${n.position}}${t}`:t);n.pattern=r,e._zod.onattach.push(o=>{let i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(r)}),e._zod.check=o=>{o.value.includes(n.includes,n.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:n.includes,input:o.value,inst:e,continue:!n.abort})}}),fV=G("$ZodCheckStartsWith",(e,n)=>{ir.init(e,n);let t=new RegExp(`^${ua(n.prefix)}.*`);n.pattern??(n.pattern=t),e._zod.onattach.push(r=>{let o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(t)}),e._zod.check=r=>{r.value.startsWith(n.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:n.prefix,input:r.value,inst:e,continue:!n.abort})}}),mV=G("$ZodCheckEndsWith",(e,n)=>{ir.init(e,n);let t=new RegExp(`.*${ua(n.suffix)}$`);n.pattern??(n.pattern=t),e._zod.onattach.push(r=>{let o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(t)}),e._zod.check=r=>{r.value.endsWith(n.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:n.suffix,input:r.value,inst:e,continue:!n.abort})}});var hV=G("$ZodCheckOverwrite",(e,n)=>{ir.init(e,n),e._zod.check=t=>{t.value=n.tx(t.value)}});var i_=class{constructor(n=[]){this.content=[],this.indent=0,this&&(this.args=n)}indented(n){this.indent+=1,n(this),this.indent-=1}write(n){if(typeof n=="function"){n(this,{execution:"sync"}),n(this,{execution:"async"});return}let r=n.split(`
1903
1903
  `).filter(s=>s),o=Math.min(...r.map(s=>s.length-s.trimStart().length)),i=r.map(s=>s.slice(o)).map(s=>" ".repeat(this.indent*2)+s);for(let s of i)this.content.push(s)}compile(){let n=Function,t=this?.args,o=[...(this?.content??[""]).map(i=>` ${i}`)];return new n(...t,o.join(`
1904
1904
  `))}};var yV={major:4,minor:0,patch:0};var zn=G("$ZodType",(e,n)=>{var t;e??(e={}),e._zod.def=n,e._zod.bag=e._zod.bag||{},e._zod.version=yV;let r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(let o of r)for(let i of o._zod.onattach)i(e);if(r.length===0)(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let o=(i,s,a)=>{let d=Vd(i),u;for(let c of s){if(c._zod.def.when){if(!c._zod.def.when(i))continue}else if(d)continue;let l=i.issues.length,p=c._zod.check(i);if(p instanceof Promise&&a?.async===!1)throw new Cs;if(u||p instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await p,i.issues.length!==l&&(d||(d=Vd(i,l)))});else{if(i.issues.length===l)continue;d||(d=Vd(i,l))}}return u?u.then(()=>i):i};e._zod.run=(i,s)=>{let a=e._zod.parse(i,s);if(a instanceof Promise){if(s.async===!1)throw new Cs;return a.then(d=>o(d,r,s))}return o(a,r,s)}}e["~standard"]={validate:o=>{try{let i=Wd(e,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Hd(e,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}}),km=G("$ZodString",(e,n)=>{zn.init(e,n),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??ZK(e._zod.bag),e._zod.parse=(t,r)=>{if(n.coerce)try{t.value=String(t.value)}catch{}return typeof t.value=="string"||t.issues.push({expected:"string",code:"invalid_type",input:t.value,inst:e}),t}}),Qn=G("$ZodStringFormat",(e,n)=>{Sm.init(e,n),km.init(e,n)}),bR=G("$ZodGUID",(e,n)=>{n.pattern??(n.pattern=$K),Qn.init(e,n)}),wR=G("$ZodUUID",(e,n)=>{if(n.version){let r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[n.version];if(r===void 0)throw new Error(`Invalid UUID version: "${n.version}"`);n.pattern??(n.pattern=hR(r))}else n.pattern??(n.pattern=hR());Qn.init(e,n)}),vR=G("$ZodEmail",(e,n)=>{n.pattern??(n.pattern=LK),Qn.init(e,n)}),SR=G("$ZodURL",(e,n)=>{Qn.init(e,n),e._zod.check=t=>{try{let r=t.value,o=new URL(r),i=o.href;n.hostname&&(n.hostname.lastIndex=0,n.hostname.test(o.hostname)||t.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:BK.source,input:t.value,inst:e,continue:!n.abort})),n.protocol&&(n.protocol.lastIndex=0,n.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||t.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:n.protocol.source,input:t.value,inst:e,continue:!n.abort})),!r.endsWith("/")&&i.endsWith("/")?t.value=i.slice(0,-1):t.value=i;return}catch{t.issues.push({code:"invalid_format",format:"url",input:t.value,inst:e,continue:!n.abort})}}}),kR=G("$ZodEmoji",(e,n)=>{n.pattern??(n.pattern=jK()),Qn.init(e,n)}),CR=G("$ZodNanoID",(e,n)=>{n.pattern??(n.pattern=AK),Qn.init(e,n)}),TR=G("$ZodCUID",(e,n)=>{n.pattern??(n.pattern=IK),Qn.init(e,n)}),PR=G("$ZodCUID2",(e,n)=>{n.pattern??(n.pattern=RK),Qn.init(e,n)}),IR=G("$ZodULID",(e,n)=>{n.pattern??(n.pattern=EK),Qn.init(e,n)}),RR=G("$ZodXID",(e,n)=>{n.pattern??(n.pattern=DK),Qn.init(e,n)}),ER=G("$ZodKSUID",(e,n)=>{n.pattern??(n.pattern=MK),Qn.init(e,n)}),PV=G("$ZodISODateTime",(e,n)=>{n.pattern??(n.pattern=GK(n)),Qn.init(e,n)}),IV=G("$ZodISODate",(e,n)=>{n.pattern??(n.pattern=VK),Qn.init(e,n)}),RV=G("$ZodISOTime",(e,n)=>{n.pattern??(n.pattern=HK(n)),Qn.init(e,n)}),EV=G("$ZodISODuration",(e,n)=>{n.pattern??(n.pattern=OK),Qn.init(e,n)}),DR=G("$ZodIPv4",(e,n)=>{n.pattern??(n.pattern=FK),Qn.init(e,n),e._zod.onattach.push(t=>{let r=t._zod.bag;r.format="ipv4"})}),MR=G("$ZodIPv6",(e,n)=>{n.pattern??(n.pattern=qK),Qn.init(e,n),e._zod.onattach.push(t=>{let r=t._zod.bag;r.format="ipv6"}),e._zod.check=t=>{try{new URL(`http://[${t.value}]`)}catch{t.issues.push({code:"invalid_format",format:"ipv6",input:t.value,inst:e,continue:!n.abort})}}}),AR=G("$ZodCIDRv4",(e,n)=>{n.pattern??(n.pattern=zK),Qn.init(e,n)}),OR=G("$ZodCIDRv6",(e,n)=>{n.pattern??(n.pattern=NK),Qn.init(e,n),e._zod.check=t=>{let[r,o]=t.value.split("/");try{if(!o)throw new Error;let i=Number(o);if(`${i}`!==o)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${r}]`)}catch{t.issues.push({code:"invalid_format",format:"cidrv6",input:t.value,inst:e,continue:!n.abort})}}});function DV(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var $R=G("$ZodBase64",(e,n)=>{n.pattern??(n.pattern=UK),Qn.init(e,n),e._zod.onattach.push(t=>{t._zod.bag.contentEncoding="base64"}),e._zod.check=t=>{DV(t.value)||t.issues.push({code:"invalid_format",format:"base64",input:t.value,inst:e,continue:!n.abort})}});function lMe(e){if(!gR.test(e))return!1;let n=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),t=n.padEnd(Math.ceil(n.length/4)*4,"=");return DV(t)}var LR=G("$ZodBase64URL",(e,n)=>{n.pattern??(n.pattern=gR),Qn.init(e,n),e._zod.onattach.push(t=>{t._zod.bag.contentEncoding="base64url"}),e._zod.check=t=>{lMe(t.value)||t.issues.push({code:"invalid_format",format:"base64url",input:t.value,inst:e,continue:!n.abort})}}),jR=G("$ZodE164",(e,n)=>{n.pattern??(n.pattern=JK),Qn.init(e,n)});function pMe(e,n=null){try{let t=e.split(".");if(t.length!==3)return!1;let[r]=t;if(!r)return!1;let o=JSON.parse(atob(r));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||n&&(!("alg"in o)||o.alg!==n))}catch{return!1}}var FR=G("$ZodJWT",(e,n)=>{Qn.init(e,n),e._zod.check=t=>{pMe(t.value,n.alg)||t.issues.push({code:"invalid_format",format:"jwt",input:t.value,inst:e,continue:!n.abort})}});var a_=G("$ZodNumber",(e,n)=>{zn.init(e,n),e._zod.pattern=e._zod.bag.pattern??XK,e._zod.parse=(t,r)=>{if(n.coerce)try{t.value=Number(t.value)}catch{}let o=t.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return t;let i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return t.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),t}}),qR=G("$ZodNumber",(e,n)=>{iV.init(e,n),a_.init(e,n)}),zR=G("$ZodBoolean",(e,n)=>{zn.init(e,n),e._zod.pattern=YK,e._zod.parse=(t,r)=>{if(n.coerce)try{t.value=!!t.value}catch{}let o=t.value;return typeof o=="boolean"||t.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),t}});var NR=G("$ZodNull",(e,n)=>{zn.init(e,n),e._zod.pattern=eV,e._zod.values=new Set([null]),e._zod.parse=(t,r)=>{let o=t.value;return o===null||t.issues.push({expected:"null",code:"invalid_type",input:o,inst:e}),t}});var UR=G("$ZodUnknown",(e,n)=>{zn.init(e,n),e._zod.parse=t=>t}),BR=G("$ZodNever",(e,n)=>{zn.init(e,n),e._zod.parse=(t,r)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function xV(e,n,t){e.issues.length&&n.issues.push(...ji(t,e.issues)),n.value[t]=e.value}var JR=G("$ZodArray",(e,n)=>{zn.init(e,n),e._zod.parse=(t,r)=>{let o=t.value;if(!Array.isArray(o))return t.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),t;t.value=Array(o.length);let i=[];for(let s=0;s<o.length;s++){let a=o[s],d=n.element._zod.run({value:a,issues:[]},r);d instanceof Promise?i.push(d.then(u=>xV(u,t,s))):xV(d,t,s)}return i.length?Promise.all(i).then(()=>t):t}});function s_(e,n,t){e.issues.length&&n.issues.push(...ji(t,e.issues)),n.value[t]=e.value}function _V(e,n,t,r){e.issues.length?r[t]===void 0?t in r?n.value[t]=void 0:n.value[t]=e.value:n.issues.push(...ji(t,e.issues)):e.value===void 0?t in r&&(n.value[t]=void 0):n.value[t]=e.value}var d_=G("$ZodObject",(e,n)=>{zn.init(e,n);let t=xm(()=>{let l=Object.keys(n.shape);for(let m of l)if(!(n.shape[m]instanceof zn))throw new Error(`Invalid element at key "${m}": expected a Zod schema`);let p=oR(n.shape);return{shape:n.shape,keys:l,keySet:new Set(l),numKeys:l.length,optionalKeys:new Set(p)}});Zn(e._zod,"propValues",()=>{let l=n.shape,p={};for(let m in l){let f=l[m]._zod;if(f.values){p[m]??(p[m]=new Set);for(let y of f.values)p[m].add(y)}}return p});let r=l=>{let p=new i_(["shape","payload","ctx"]),m=t.value,f=S=>{let v=Kd(S);return`shape[${v}]._zod.run({ value: input[${v}], issues: [] }, ctx)`};p.write("const input = payload.value;");let y=Object.create(null),_=0;for(let S of m.keys)y[S]=`key_${_++}`;p.write("const newResult = {}");for(let S of m.keys)if(m.optionalKeys.has(S)){let v=y[S];p.write(`const ${v} = ${f(S)};`);let b=Kd(S);p.write(`
1905
1905
  if (${v}.issues.length) {
@@ -1926,7 +1926,7 @@ Launch target:
1926
1926
  path: iss.path ? [${Kd(S)}, ...iss.path] : [${Kd(S)}]
1927
1927
  })));`),p.write(`newResult[${Kd(S)}] = ${v}.value`)}p.write("payload.value = newResult;"),p.write("return payload;");let w=p.compile();return(S,v)=>w(l,S,v)},o,i=ml,s=!Y0.jitless,d=s&&tR.value,u=n.catchall,c;e._zod.parse=(l,p)=>{c??(c=t.value);let m=l.value;if(!i(m))return l.issues.push({expected:"object",code:"invalid_type",input:m,inst:e}),l;let f=[];if(s&&d&&p?.async===!1&&p.jitless!==!0)o||(o=r(n.shape)),l=o(l,p);else{l.value={};let v=c.shape;for(let b of c.keys){let k=v[b],R=k._zod.run({value:m[b],issues:[]},p),P=k._zod.optin==="optional"&&k._zod.optout==="optional";R instanceof Promise?f.push(R.then(L=>P?_V(L,l,b,m):s_(L,l,b))):P?_V(R,l,b,m):s_(R,l,b)}}if(!u)return f.length?Promise.all(f).then(()=>l):l;let y=[],_=c.keySet,w=u._zod,S=w.def.type;for(let v of Object.keys(m)){if(_.has(v))continue;if(S==="never"){y.push(v);continue}let b=w.run({value:m[v],issues:[]},p);b instanceof Promise?f.push(b.then(k=>s_(k,l,v))):s_(b,l,v)}return y.length&&l.issues.push({code:"unrecognized_keys",keys:y,input:m,inst:e}),f.length?Promise.all(f).then(()=>l):l}});function bV(e,n,t,r){for(let o of e)if(o.issues.length===0)return n.value=o.value,n;return n.issues.push({code:"invalid_union",input:n.value,inst:t,errors:e.map(o=>o.issues.map(i=>si(i,r,uo())))}),n}var u_=G("$ZodUnion",(e,n)=>{zn.init(e,n),Zn(e._zod,"optin",()=>n.options.some(t=>t._zod.optin==="optional")?"optional":void 0),Zn(e._zod,"optout",()=>n.options.some(t=>t._zod.optout==="optional")?"optional":void 0),Zn(e._zod,"values",()=>{if(n.options.every(t=>t._zod.values))return new Set(n.options.flatMap(t=>Array.from(t._zod.values)))}),Zn(e._zod,"pattern",()=>{if(n.options.every(t=>t._zod.pattern)){let t=n.options.map(r=>r._zod.pattern);return new RegExp(`^(${t.map(r=>bm(r.source)).join("|")})$`)}}),e._zod.parse=(t,r)=>{let o=!1,i=[];for(let s of n.options){let a=s._zod.run({value:t.value,issues:[]},r);if(a instanceof Promise)i.push(a),o=!0;else{if(a.issues.length===0)return a;i.push(a)}}return o?Promise.all(i).then(s=>bV(s,t,e,r)):bV(i,t,e,r)}}),KR=G("$ZodDiscriminatedUnion",(e,n)=>{u_.init(e,n);let t=e._zod.parse;Zn(e._zod,"propValues",()=>{let o={};for(let i of n.options){let s=i._zod.propValues;if(!s||Object.keys(s).length===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(i)}"`);for(let[a,d]of Object.entries(s)){o[a]||(o[a]=new Set);for(let u of d)o[a].add(u)}}return o});let r=xm(()=>{let o=n.options,i=new Map;for(let s of o){let a=s._zod.propValues[n.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(s)}"`);for(let d of a){if(i.has(d))throw new Error(`Duplicate discriminator value "${String(d)}"`);i.set(d,s)}}return i});e._zod.parse=(o,i)=>{let s=o.value;if(!ml(s))return o.issues.push({code:"invalid_type",expected:"object",input:s,inst:e}),o;let a=r.value.get(s?.[n.discriminator]);return a?a._zod.run(o,i):n.unionFallback?t(o,i):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:s,path:[n.discriminator],inst:e}),o)}}),VR=G("$ZodIntersection",(e,n)=>{zn.init(e,n),e._zod.parse=(t,r)=>{let o=t.value,i=n.left._zod.run({value:o,issues:[]},r),s=n.right._zod.run({value:o,issues:[]},r);return i instanceof Promise||s instanceof Promise?Promise.all([i,s]).then(([d,u])=>wV(t,d,u)):wV(t,i,s)}});function _R(e,n){if(e===n)return{valid:!0,data:e};if(e instanceof Date&&n instanceof Date&&+e==+n)return{valid:!0,data:e};if(hl(e)&&hl(n)){let t=Object.keys(n),r=Object.keys(e).filter(i=>t.indexOf(i)!==-1),o={...e,...n};for(let i of r){let s=_R(e[i],n[i]);if(!s.valid)return{valid:!1,mergeErrorPath:[i,...s.mergeErrorPath]};o[i]=s.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(n)){if(e.length!==n.length)return{valid:!1,mergeErrorPath:[]};let t=[];for(let r=0;r<e.length;r++){let o=e[r],i=n[r],s=_R(o,i);if(!s.valid)return{valid:!1,mergeErrorPath:[r,...s.mergeErrorPath]};t.push(s.data)}return{valid:!0,data:t}}return{valid:!1,mergeErrorPath:[]}}function wV(e,n,t){if(n.issues.length&&e.issues.push(...n.issues),t.issues.length&&e.issues.push(...t.issues),Vd(e))return e;let r=_R(n.value,t.value);if(!r.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}var WR=G("$ZodRecord",(e,n)=>{zn.init(e,n),e._zod.parse=(t,r)=>{let o=t.value;if(!hl(o))return t.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),t;let i=[];if(n.keyType._zod.values){let s=n.keyType._zod.values;t.value={};for(let d of s)if(typeof d=="string"||typeof d=="number"||typeof d=="symbol"){let u=n.valueType._zod.run({value:o[d],issues:[]},r);u instanceof Promise?i.push(u.then(c=>{c.issues.length&&t.issues.push(...ji(d,c.issues)),t.value[d]=c.value})):(u.issues.length&&t.issues.push(...ji(d,u.issues)),t.value[d]=u.value)}let a;for(let d in o)s.has(d)||(a=a??[],a.push(d));a&&a.length>0&&t.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:a})}else{t.value={};for(let s of Reflect.ownKeys(o)){if(s==="__proto__")continue;let a=n.keyType._zod.run({value:s,issues:[]},r);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){t.issues.push({origin:"record",code:"invalid_key",issues:a.issues.map(u=>si(u,r,uo())),input:s,path:[s],inst:e}),t.value[a.value]=a.value;continue}let d=n.valueType._zod.run({value:o[s],issues:[]},r);d instanceof Promise?i.push(d.then(u=>{u.issues.length&&t.issues.push(...ji(s,u.issues)),t.value[a.value]=u.value})):(d.issues.length&&t.issues.push(...ji(s,d.issues)),t.value[a.value]=d.value)}}return i.length?Promise.all(i).then(()=>t):t}});var HR=G("$ZodEnum",(e,n)=>{zn.init(e,n);let t=ym(n.entries);e._zod.values=new Set(t),e._zod.pattern=new RegExp(`^(${t.filter(r=>rR.has(typeof r)).map(r=>typeof r=="string"?ua(r):r.toString()).join("|")})$`),e._zod.parse=(r,o)=>{let i=r.value;return e._zod.values.has(i)||r.issues.push({code:"invalid_value",values:t,input:i,inst:e}),r}}),GR=G("$ZodLiteral",(e,n)=>{zn.init(e,n),e._zod.values=new Set(n.values),e._zod.pattern=new RegExp(`^(${n.values.map(t=>typeof t=="string"?ua(t):t?t.toString():String(t)).join("|")})$`),e._zod.parse=(t,r)=>{let o=t.value;return e._zod.values.has(o)||t.issues.push({code:"invalid_value",values:n.values,input:o,inst:e}),t}});var ZR=G("$ZodTransform",(e,n)=>{zn.init(e,n),e._zod.parse=(t,r)=>{let o=n.transform(t.value,t);if(r.async)return(o instanceof Promise?o:Promise.resolve(o)).then(s=>(t.value=s,t));if(o instanceof Promise)throw new Cs;return t.value=o,t}}),QR=G("$ZodOptional",(e,n)=>{zn.init(e,n),e._zod.optin="optional",e._zod.optout="optional",Zn(e._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,void 0]):void 0),Zn(e._zod,"pattern",()=>{let t=n.innerType._zod.pattern;return t?new RegExp(`^(${bm(t.source)})?$`):void 0}),e._zod.parse=(t,r)=>n.innerType._zod.optin==="optional"?n.innerType._zod.run(t,r):t.value===void 0?t:n.innerType._zod.run(t,r)}),XR=G("$ZodNullable",(e,n)=>{zn.init(e,n),Zn(e._zod,"optin",()=>n.innerType._zod.optin),Zn(e._zod,"optout",()=>n.innerType._zod.optout),Zn(e._zod,"pattern",()=>{let t=n.innerType._zod.pattern;return t?new RegExp(`^(${bm(t.source)}|null)$`):void 0}),Zn(e._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,null]):void 0),e._zod.parse=(t,r)=>t.value===null?t:n.innerType._zod.run(t,r)}),YR=G("$ZodDefault",(e,n)=>{zn.init(e,n),e._zod.optin="optional",Zn(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(t,r)=>{if(t.value===void 0)return t.value=n.defaultValue,t;let o=n.innerType._zod.run(t,r);return o instanceof Promise?o.then(i=>vV(i,n)):vV(o,n)}});function vV(e,n){return e.value===void 0&&(e.value=n.defaultValue),e}var eE=G("$ZodPrefault",(e,n)=>{zn.init(e,n),e._zod.optin="optional",Zn(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(t,r)=>(t.value===void 0&&(t.value=n.defaultValue),n.innerType._zod.run(t,r))}),nE=G("$ZodNonOptional",(e,n)=>{zn.init(e,n),Zn(e._zod,"values",()=>{let t=n.innerType._zod.values;return t?new Set([...t].filter(r=>r!==void 0)):void 0}),e._zod.parse=(t,r)=>{let o=n.innerType._zod.run(t,r);return o instanceof Promise?o.then(i=>SV(i,e)):SV(o,e)}});function SV(e,n){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:n}),e}var tE=G("$ZodCatch",(e,n)=>{zn.init(e,n),e._zod.optin="optional",Zn(e._zod,"optout",()=>n.innerType._zod.optout),Zn(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(t,r)=>{let o=n.innerType._zod.run(t,r);return o instanceof Promise?o.then(i=>(t.value=i.value,i.issues.length&&(t.value=n.catchValue({...t,error:{issues:i.issues.map(s=>si(s,r,uo()))},input:t.value}),t.issues=[]),t)):(t.value=o.value,o.issues.length&&(t.value=n.catchValue({...t,error:{issues:o.issues.map(i=>si(i,r,uo()))},input:t.value}),t.issues=[]),t)}});var rE=G("$ZodPipe",(e,n)=>{zn.init(e,n),Zn(e._zod,"values",()=>n.in._zod.values),Zn(e._zod,"optin",()=>n.in._zod.optin),Zn(e._zod,"optout",()=>n.out._zod.optout),e._zod.parse=(t,r)=>{let o=n.in._zod.run(t,r);return o instanceof Promise?o.then(i=>kV(i,n,r)):kV(o,n,r)}});function kV(e,n,t){return Vd(e)?e:n.out._zod.run({value:e.value,issues:e.issues},t)}var oE=G("$ZodReadonly",(e,n)=>{zn.init(e,n),Zn(e._zod,"propValues",()=>n.innerType._zod.propValues),Zn(e._zod,"values",()=>n.innerType._zod.values),Zn(e._zod,"optin",()=>n.innerType._zod.optin),Zn(e._zod,"optout",()=>n.innerType._zod.optout),e._zod.parse=(t,r)=>{let o=n.innerType._zod.run(t,r);return o instanceof Promise?o.then(CV):CV(o)}});function CV(e){return e.value=Object.freeze(e.value),e}var iE=G("$ZodCustom",(e,n)=>{ir.init(e,n),zn.init(e,n),e._zod.parse=(t,r)=>t,e._zod.check=t=>{let r=t.value,o=n.fn(r);if(o instanceof Promise)return o.then(i=>TV(i,t,r,e));TV(o,t,r,e)}});function TV(e,n,t,r){if(!e){let o={code:"custom",input:t,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(o.params=r._zod.def.params),n.issues.push(sR(o))}}var fMe=e=>{let n=typeof e;switch(n){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return n},mMe=()=>{let e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function n(r){return e[r]??null}let t={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${fMe(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${t_(r.values[0])}`:`Invalid option: expected one of ${e_(r.values,"|")}`;case"too_big":{let o=r.inclusive?"<=":"<",i=n(r.origin);return i?`Too big: expected ${r.origin??"value"} to have ${o}${r.maximum.toString()} ${i.unit??"elements"}`:`Too big: expected ${r.origin??"value"} to be ${o}${r.maximum.toString()}`}case"too_small":{let o=r.inclusive?">=":">",i=n(r.origin);return i?`Too small: expected ${r.origin} to have ${o}${r.minimum.toString()} ${i.unit}`:`Too small: expected ${r.origin} to be ${o}${r.minimum.toString()}`}case"invalid_format":{let o=r;return o.format==="starts_with"?`Invalid string: must start with "${o.prefix}"`:o.format==="ends_with"?`Invalid string: must end with "${o.suffix}"`:o.format==="includes"?`Invalid string: must include "${o.includes}"`:o.format==="regex"?`Invalid string: must match pattern ${o.pattern}`:`Invalid ${t[o.format]??r.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${r.divisor}`;case"unrecognized_keys":return`Unrecognized key${r.keys.length>1?"s":""}: ${e_(r.keys,", ")}`;case"invalid_key":return`Invalid key in ${r.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${r.origin}`;default:return"Invalid input"}}};function MV(){return{localeError:mMe()}}var Cm=class{constructor(){this._map=new Map,this._idmap=new Map}add(n,...t){let r=t[0];if(this._map.set(n,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,n)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(n){let t=this._map.get(n);return t&&typeof t=="object"&&"id"in t&&this._idmap.delete(t.id),this._map.delete(n),this}get(n){let t=n._zod.parent;if(t){let r={...this.get(t)??{}};return delete r.id,{...r,...this._map.get(n)}}return this._map.get(n)}has(n){return this._map.has(n)}};function AV(){return new Cm}var ca=AV();function sE(e,n){return new e({type:"string",...Ve(n)})}function aE(e,n){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Ve(n)})}function c_(e,n){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Ve(n)})}function dE(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Ve(n)})}function uE(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Ve(n)})}function cE(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Ve(n)})}function lE(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Ve(n)})}function pE(e,n){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Ve(n)})}function fE(e,n){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Ve(n)})}function mE(e,n){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Ve(n)})}function hE(e,n){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Ve(n)})}function gE(e,n){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Ve(n)})}function yE(e,n){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Ve(n)})}function xE(e,n){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Ve(n)})}function _E(e,n){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Ve(n)})}function bE(e,n){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Ve(n)})}function wE(e,n){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Ve(n)})}function vE(e,n){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Ve(n)})}function SE(e,n){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Ve(n)})}function kE(e,n){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Ve(n)})}function CE(e,n){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Ve(n)})}function TE(e,n){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Ve(n)})}function PE(e,n){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Ve(n)})}function OV(e,n){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Ve(n)})}function $V(e,n){return new e({type:"string",format:"date",check:"string_format",...Ve(n)})}function LV(e,n){return new e({type:"string",format:"time",check:"string_format",precision:null,...Ve(n)})}function jV(e,n){return new e({type:"string",format:"duration",check:"string_format",...Ve(n)})}function IE(e,n){return new e({type:"number",checks:[],...Ve(n)})}function RE(e,n){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Ve(n)})}function EE(e,n){return new e({type:"boolean",...Ve(n)})}function DE(e,n){return new e({type:"null",...Ve(n)})}function ME(e){return new e({type:"unknown"})}function AE(e,n){return new e({type:"never",...Ve(n)})}function l_(e,n){return new yR({check:"less_than",...Ve(n),value:e,inclusive:!1})}function Tm(e,n){return new yR({check:"less_than",...Ve(n),value:e,inclusive:!0})}function p_(e,n){return new xR({check:"greater_than",...Ve(n),value:e,inclusive:!1})}function Pm(e,n){return new xR({check:"greater_than",...Ve(n),value:e,inclusive:!0})}function f_(e,n){return new oV({check:"multiple_of",...Ve(n),value:e})}function m_(e,n){return new sV({check:"max_length",...Ve(n),maximum:e})}function gl(e,n){return new aV({check:"min_length",...Ve(n),minimum:e})}function h_(e,n){return new dV({check:"length_equals",...Ve(n),length:e})}function OE(e,n){return new uV({check:"string_format",format:"regex",...Ve(n),pattern:e})}function $E(e){return new cV({check:"string_format",format:"lowercase",...Ve(e)})}function LE(e){return new lV({check:"string_format",format:"uppercase",...Ve(e)})}function jE(e,n){return new pV({check:"string_format",format:"includes",...Ve(n),includes:e})}function FE(e,n){return new fV({check:"string_format",format:"starts_with",...Ve(n),prefix:e})}function qE(e,n){return new mV({check:"string_format",format:"ends_with",...Ve(n),suffix:e})}function Gd(e){return new hV({check:"overwrite",tx:e})}function zE(e){return Gd(n=>n.normalize(e))}function NE(){return Gd(e=>e.trim())}function UE(){return Gd(e=>e.toLowerCase())}function BE(){return Gd(e=>e.toUpperCase())}function FV(e,n,t){return new e({type:"array",element:n,...Ve(t)})}function JE(e,n,t){let r=Ve(t);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:n,...r})}function KE(e,n,t){return new e({type:"custom",check:"custom",fn:n,...Ve(t)})}var g_=class{constructor(n){this.counter=0,this.metadataRegistry=n?.metadata??ca,this.target=n?.target??"draft-2020-12",this.unrepresentable=n?.unrepresentable??"throw",this.override=n?.override??(()=>{}),this.io=n?.io??"output",this.seen=new Map}process(n,t={path:[],schemaPath:[]}){var r;let o=n._zod.def,i={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},s=this.seen.get(n);if(s)return s.count++,t.schemaPath.includes(n)&&(s.cycle=t.path),s.schema;let a={schema:{},count:1,cycle:void 0,path:t.path};this.seen.set(n,a);let d=n._zod.toJSONSchema?.();if(d)a.schema=d;else{let l={...t,schemaPath:[...t.schemaPath,n],path:t.path},p=n._zod.parent;if(p)a.ref=p,this.process(p,l),this.seen.get(p).isParent=!0;else{let m=a.schema;switch(o.type){case"string":{let f=m;f.type="string";let{minimum:y,maximum:_,format:w,patterns:S,contentEncoding:v}=n._zod.bag;if(typeof y=="number"&&(f.minLength=y),typeof _=="number"&&(f.maxLength=_),w&&(f.format=i[w]??w,f.format===""&&delete f.format),v&&(f.contentEncoding=v),S&&S.size>0){let b=[...S];b.length===1?f.pattern=b[0].source:b.length>1&&(a.schema.allOf=[...b.map(k=>({...this.target==="draft-7"?{type:"string"}:{},pattern:k.source}))])}break}case"number":{let f=m,{minimum:y,maximum:_,format:w,multipleOf:S,exclusiveMaximum:v,exclusiveMinimum:b}=n._zod.bag;typeof w=="string"&&w.includes("int")?f.type="integer":f.type="number",typeof b=="number"&&(f.exclusiveMinimum=b),typeof y=="number"&&(f.minimum=y,typeof b=="number"&&(b>=y?delete f.minimum:delete f.exclusiveMinimum)),typeof v=="number"&&(f.exclusiveMaximum=v),typeof _=="number"&&(f.maximum=_,typeof v=="number"&&(v<=_?delete f.maximum:delete f.exclusiveMaximum)),typeof S=="number"&&(f.multipleOf=S);break}case"boolean":{let f=m;f.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{m.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"never":{m.not={};break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{let f=m,{minimum:y,maximum:_}=n._zod.bag;typeof y=="number"&&(f.minItems=y),typeof _=="number"&&(f.maxItems=_),f.type="array",f.items=this.process(o.element,{...l,path:[...l.path,"items"]});break}case"object":{let f=m;f.type="object",f.properties={};let y=o.shape;for(let S in y)f.properties[S]=this.process(y[S],{...l,path:[...l.path,"properties",S]});let _=new Set(Object.keys(y)),w=new Set([..._].filter(S=>{let v=o.shape[S]._zod;return this.io==="input"?v.optin===void 0:v.optout===void 0}));w.size>0&&(f.required=Array.from(w)),o.catchall?._zod.def.type==="never"?f.additionalProperties=!1:o.catchall?o.catchall&&(f.additionalProperties=this.process(o.catchall,{...l,path:[...l.path,"additionalProperties"]})):this.io==="output"&&(f.additionalProperties=!1);break}case"union":{let f=m;f.anyOf=o.options.map((y,_)=>this.process(y,{...l,path:[...l.path,"anyOf",_]}));break}case"intersection":{let f=m,y=this.process(o.left,{...l,path:[...l.path,"allOf",0]}),_=this.process(o.right,{...l,path:[...l.path,"allOf",1]}),w=v=>"allOf"in v&&Object.keys(v).length===1,S=[...w(y)?y.allOf:[y],...w(_)?_.allOf:[_]];f.allOf=S;break}case"tuple":{let f=m;f.type="array";let y=o.items.map((S,v)=>this.process(S,{...l,path:[...l.path,"prefixItems",v]}));if(this.target==="draft-2020-12"?f.prefixItems=y:f.items=y,o.rest){let S=this.process(o.rest,{...l,path:[...l.path,"items"]});this.target==="draft-2020-12"?f.items=S:f.additionalItems=S}o.rest&&(f.items=this.process(o.rest,{...l,path:[...l.path,"items"]}));let{minimum:_,maximum:w}=n._zod.bag;typeof _=="number"&&(f.minItems=_),typeof w=="number"&&(f.maxItems=w);break}case"record":{let f=m;f.type="object",f.propertyNames=this.process(o.keyType,{...l,path:[...l.path,"propertyNames"]}),f.additionalProperties=this.process(o.valueType,{...l,path:[...l.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{let f=m,y=ym(o.entries);y.every(_=>typeof _=="number")&&(f.type="number"),y.every(_=>typeof _=="string")&&(f.type="string"),f.enum=y;break}case"literal":{let f=m,y=[];for(let _ of o.values)if(_===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof _=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");y.push(Number(_))}else y.push(_);if(y.length!==0)if(y.length===1){let _=y[0];f.type=_===null?"null":typeof _,f.const=_}else y.every(_=>typeof _=="number")&&(f.type="number"),y.every(_=>typeof _=="string")&&(f.type="string"),y.every(_=>typeof _=="boolean")&&(f.type="string"),y.every(_=>_===null)&&(f.type="null"),f.enum=y;break}case"file":{let f=m,y={type:"string",format:"binary",contentEncoding:"binary"},{minimum:_,maximum:w,mime:S}=n._zod.bag;_!==void 0&&(y.minLength=_),w!==void 0&&(y.maxLength=w),S?S.length===1?(y.contentMediaType=S[0],Object.assign(f,y)):f.anyOf=S.map(v=>({...y,contentMediaType:v})):Object.assign(f,y);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{let f=this.process(o.innerType,l);m.anyOf=[f,{type:"null"}];break}case"nonoptional":{this.process(o.innerType,l),a.ref=o.innerType;break}case"success":{let f=m;f.type="boolean";break}case"default":{this.process(o.innerType,l),a.ref=o.innerType,m.default=JSON.parse(JSON.stringify(o.defaultValue));break}case"prefault":{this.process(o.innerType,l),a.ref=o.innerType,this.io==="input"&&(m._prefault=JSON.parse(JSON.stringify(o.defaultValue)));break}case"catch":{this.process(o.innerType,l),a.ref=o.innerType;let f;try{f=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}m.default=f;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let f=m,y=n._zod.pattern;if(!y)throw new Error("Pattern not found in template literal");f.type="string",f.pattern=y.source;break}case"pipe":{let f=this.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;this.process(f,l),a.ref=f;break}case"readonly":{this.process(o.innerType,l),a.ref=o.innerType,m.readOnly=!0;break}case"promise":{this.process(o.innerType,l),a.ref=o.innerType;break}case"optional":{this.process(o.innerType,l),a.ref=o.innerType;break}case"lazy":{let f=n._zod.innerType;this.process(f,l),a.ref=f;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}default:}}}let u=this.metadataRegistry.get(n);return u&&Object.assign(a.schema,u),this.io==="input"&&qt(n)&&(delete a.schema.examples,delete a.schema.default),this.io==="input"&&a.schema._prefault&&((r=a.schema).default??(r.default=a.schema._prefault)),delete a.schema._prefault,this.seen.get(n).schema}emit(n,t){let r={cycles:t?.cycles??"ref",reused:t?.reused??"inline",external:t?.external??void 0},o=this.seen.get(n);if(!o)throw new Error("Unprocessed schema. This is a bug in Zod.");let i=c=>{let l=this.target==="draft-2020-12"?"$defs":"definitions";if(r.external){let y=r.external.registry.get(c[0])?.id,_=r.external.uri??(S=>S);if(y)return{ref:_(y)};let w=c[1].defId??c[1].schema.id??`schema${this.counter++}`;return c[1].defId=w,{defId:w,ref:`${_("__shared")}#/${l}/${w}`}}if(c[1]===o)return{ref:"#"};let m=`#/${l}/`,f=c[1].schema.id??`__schema${this.counter++}`;return{defId:f,ref:m+f}},s=c=>{if(c[1].schema.$ref)return;let l=c[1],{ref:p,defId:m}=i(c);l.def={...l.schema},m&&(l.defId=m);let f=l.schema;for(let y in f)delete f[y];f.$ref=p};if(r.cycles==="throw")for(let c of this.seen.entries()){let l=c[1];if(l.cycle)throw new Error(`Cycle detected: #/${l.cycle?.join("/")}/<root>
1928
1928
 
1929
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let c of this.seen.entries()){let l=c[1];if(n===c[0]){s(c);continue}if(r.external){let m=r.external.registry.get(c[0])?.id;if(n!==c[0]&&m){s(c);continue}}if(this.metadataRegistry.get(c[0])?.id){s(c);continue}if(l.cycle){s(c);continue}if(l.count>1&&r.reused==="ref"){s(c);continue}}let a=(c,l)=>{let p=this.seen.get(c),m=p.def??p.schema,f={...m};if(p.ref===null)return;let y=p.ref;if(p.ref=null,y){a(y,l);let _=this.seen.get(y).schema;_.$ref&&l.target==="draft-7"?(m.allOf=m.allOf??[],m.allOf.push(_)):(Object.assign(m,_),Object.assign(m,f))}p.isParent||this.override({zodSchema:c,jsonSchema:m,path:p.path??[]})};for(let c of[...this.seen.entries()].reverse())a(c[0],{target:this.target});let d={};if(this.target==="draft-2020-12"?d.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?d.$schema="http://json-schema.org/draft-07/schema#":console.warn(`Invalid target: ${this.target}`),r.external?.uri){let c=r.external.registry.get(n)?.id;if(!c)throw new Error("Schema is missing an `id` property");d.$id=r.external.uri(c)}Object.assign(d,o.def);let u=r.external?.defs??{};for(let c of this.seen.entries()){let l=c[1];l.def&&l.defId&&(u[l.defId]=l.def)}r.external||Object.keys(u).length>0&&(this.target==="draft-2020-12"?d.$defs=u:d.definitions=u);try{return JSON.parse(JSON.stringify(d))}catch{throw new Error("Error converting schema to JSON.")}}};function VE(e,n){if(e instanceof Cm){let r=new g_(n),o={};for(let a of e._idmap.entries()){let[d,u]=a;r.process(u)}let i={},s={registry:e,uri:n?.uri,defs:o};for(let a of e._idmap.entries()){let[d,u]=a;i[d]=r.emit(u,{...n,external:s})}if(Object.keys(o).length>0){let a=r.target==="draft-2020-12"?"$defs":"definitions";i.__shared={[a]:o}}return{schemas:i}}let t=new g_(n);return t.process(e),t.emit(e,n)}function qt(e,n){let t=n??{seen:new Set};if(t.seen.has(e))return!1;t.seen.add(e);let o=e._zod.def;switch(o.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return qt(o.element,t);case"object":{for(let i in o.shape)if(qt(o.shape[i],t))return!0;return!1}case"union":{for(let i of o.options)if(qt(i,t))return!0;return!1}case"intersection":return qt(o.left,t)||qt(o.right,t);case"tuple":{for(let i of o.items)if(qt(i,t))return!0;return!!(o.rest&&qt(o.rest,t))}case"record":return qt(o.keyType,t)||qt(o.valueType,t);case"map":return qt(o.keyType,t)||qt(o.valueType,t);case"set":return qt(o.valueType,t);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return qt(o.innerType,t);case"lazy":return qt(o.getter(),t);case"default":return qt(o.innerType,t);case"prefault":return qt(o.innerType,t);case"custom":return!1;case"transform":return!0;case"pipe":return qt(o.in,t)||qt(o.out,t);case"success":return!1;case"catch":return!1;default:}throw new Error(`Unknown schema type: ${o.type}`)}var GMe=G("ZodMiniType",(e,n)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");zn.init(e,n),e.def=n,e.parse=(t,r)=>cR(e,t,r,{callee:e.parse}),e.safeParse=(t,r)=>Wd(e,t,r),e.parseAsync=async(t,r)=>pR(e,t,r,{callee:e.parseAsync}),e.safeParseAsync=async(t,r)=>Hd(e,t,r),e.check=(...t)=>e.clone({...n,checks:[...n.checks??[],...t.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(t,r)=>co(e,t,r),e.brand=()=>e,e.register=((t,r)=>(t.add(e,r),e))});var ZMe=G("ZodMiniObject",(e,n)=>{d_.init(e,n),GMe.init(e,n),xn.defineLazy(e,"shape",()=>n.shape)});function WE(e,n){let t={type:"object",get shape(){return xn.assignProp(this,"shape",{...e}),this.shape},...xn.normalizeParams(n)};return new ZMe(t)}function Io(e){return!!e._zod}function Qd(e){let n=Object.values(e);if(n.length===0)return WE({});let t=n.every(Io),r=n.every(o=>!Io(o));if(t)return WE(e);if(r)return ZI(e);throw new Error("Mixed Zod versions detected in object shape.")}function la(e,n){return Io(e)?Wd(e,n):e.safeParse(n)}async function y_(e,n){return Io(e)?await Hd(e,n):await e.safeParseAsync(n)}function pa(e){if(!e)return;let n;if(Io(e)?n=e._zod?.def?.shape:n=e.shape,!!n){if(typeof n=="function")try{return n()}catch{return}return n}}function yl(e){if(e){if(typeof e=="object"){let n=e,t=e;if(!n._def&&!t._zod){let r=Object.values(e);if(r.length>0&&r.every(o=>typeof o=="object"&&o!==null&&(o._def!==void 0||o._zod!==void 0||typeof o.parse=="function")))return Qd(e)}}if(Io(e)){let t=e._zod?.def;if(t&&(t.type==="object"||t.shape!==void 0))return e}else if(e.shape!==void 0)return e}}function x_(e){if(e&&typeof e=="object"){if("message"in e&&typeof e.message=="string")return e.message;if("issues"in e&&Array.isArray(e.issues)&&e.issues.length>0){let n=e.issues[0];if(n&&typeof n=="object"&&"message"in n)return String(n.message)}try{return JSON.stringify(e)}catch{return String(e)}}return String(e)}function zV(e){return e.description}function NV(e){if(Io(e))return e._zod?.def?.type==="optional";let n=e;return typeof e.isOptional=="function"?e.isOptional():n._def?.typeName==="ZodOptional"}function __(e){if(Io(e)){let i=e._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}let t=e._def;if(t){if(t.value!==void 0)return t.value;if(Array.isArray(t.values)&&t.values.length>0)return t.values[0]}let r=e.value;if(r!==void 0)return r}var Im={};Wo(Im,{ZodISODate:()=>BV,ZodISODateTime:()=>UV,ZodISODuration:()=>KV,ZodISOTime:()=>JV,date:()=>GE,datetime:()=>HE,duration:()=>QE,time:()=>ZE});var UV=G("ZodISODateTime",(e,n)=>{PV.init(e,n),dt.init(e,n)});function HE(e){return OV(UV,e)}var BV=G("ZodISODate",(e,n)=>{IV.init(e,n),dt.init(e,n)});function GE(e){return $V(BV,e)}var JV=G("ZodISOTime",(e,n)=>{RV.init(e,n),dt.init(e,n)});function ZE(e){return LV(JV,e)}var KV=G("ZodISODuration",(e,n)=>{EV.init(e,n),dt.init(e,n)});function QE(e){return jV(KV,e)}var VV=(e,n)=>{r_.init(e,n),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>dR(e,t)},flatten:{value:t=>aR(e,t)},addIssue:{value:t=>e.issues.push(t)},addIssues:{value:t=>e.issues.push(...t)},isEmpty:{get(){return e.issues.length===0}}})},Qrn=G("ZodError",VV),Rm=G("ZodError",VV,{Parent:Error});var WV=uR(Rm),HV=lR(Rm),GV=fR(Rm),ZV=mR(Rm);var ft=G("ZodType",(e,n)=>(zn.init(e,n),e.def=n,Object.defineProperty(e,"_def",{value:n}),e.check=(...t)=>e.clone({...n,checks:[...n.checks??[],...t.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(t,r)=>co(e,t,r),e.brand=()=>e,e.register=((t,r)=>(t.add(e,r),e)),e.parse=(t,r)=>WV(e,t,r,{callee:e.parse}),e.safeParse=(t,r)=>GV(e,t,r),e.parseAsync=async(t,r)=>HV(e,t,r,{callee:e.parseAsync}),e.safeParseAsync=async(t,r)=>ZV(e,t,r),e.spa=e.safeParseAsync,e.refine=(t,r)=>e.check(WAe(t,r)),e.superRefine=t=>e.check(HAe(t)),e.overwrite=t=>e.check(Gd(t)),e.optional=()=>ct(e),e.nullable=()=>YV(e),e.nullish=()=>ct(YV(e)),e.nonoptional=t=>zAe(e,t),e.array=()=>wn(e),e.or=t=>ot([e,t]),e.and=t=>w_(e,t),e.transform=t=>YE(e,iW(t)),e.default=t=>jAe(e,t),e.prefault=t=>qAe(e,t),e.catch=t=>UAe(e,t),e.pipe=t=>YE(e,t),e.readonly=()=>KAe(e),e.describe=t=>{let r=e.clone();return ca.add(r,{description:t}),r},Object.defineProperty(e,"description",{get(){return ca.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return ca.get(e);let r=e.clone();return ca.add(r,t[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),eW=G("_ZodString",(e,n)=>{km.init(e,n),ft.init(e,n);let t=e._zod.bag;e.format=t.format??null,e.minLength=t.minimum??null,e.maxLength=t.maximum??null,e.regex=(...r)=>e.check(OE(...r)),e.includes=(...r)=>e.check(jE(...r)),e.startsWith=(...r)=>e.check(FE(...r)),e.endsWith=(...r)=>e.check(qE(...r)),e.min=(...r)=>e.check(gl(...r)),e.max=(...r)=>e.check(m_(...r)),e.length=(...r)=>e.check(h_(...r)),e.nonempty=(...r)=>e.check(gl(1,...r)),e.lowercase=r=>e.check($E(r)),e.uppercase=r=>e.check(LE(r)),e.trim=()=>e.check(NE()),e.normalize=(...r)=>e.check(zE(...r)),e.toLowerCase=()=>e.check(UE()),e.toUpperCase=()=>e.check(BE())}),iAe=G("ZodString",(e,n)=>{km.init(e,n),eW.init(e,n),e.email=t=>e.check(aE(sAe,t)),e.url=t=>e.check(pE(aAe,t)),e.jwt=t=>e.check(PE(vAe,t)),e.emoji=t=>e.check(fE(dAe,t)),e.guid=t=>e.check(c_(QV,t)),e.uuid=t=>e.check(dE(b_,t)),e.uuidv4=t=>e.check(uE(b_,t)),e.uuidv6=t=>e.check(cE(b_,t)),e.uuidv7=t=>e.check(lE(b_,t)),e.nanoid=t=>e.check(mE(uAe,t)),e.guid=t=>e.check(c_(QV,t)),e.cuid=t=>e.check(hE(cAe,t)),e.cuid2=t=>e.check(gE(lAe,t)),e.ulid=t=>e.check(yE(pAe,t)),e.base64=t=>e.check(kE(_Ae,t)),e.base64url=t=>e.check(CE(bAe,t)),e.xid=t=>e.check(xE(fAe,t)),e.ksuid=t=>e.check(_E(mAe,t)),e.ipv4=t=>e.check(bE(hAe,t)),e.ipv6=t=>e.check(wE(gAe,t)),e.cidrv4=t=>e.check(vE(yAe,t)),e.cidrv6=t=>e.check(SE(xAe,t)),e.e164=t=>e.check(TE(wAe,t)),e.datetime=t=>e.check(HE(t)),e.date=t=>e.check(GE(t)),e.time=t=>e.check(ZE(t)),e.duration=t=>e.check(QE(t))});function H(e){return sE(iAe,e)}var dt=G("ZodStringFormat",(e,n)=>{Qn.init(e,n),eW.init(e,n)}),sAe=G("ZodEmail",(e,n)=>{vR.init(e,n),dt.init(e,n)});var QV=G("ZodGUID",(e,n)=>{bR.init(e,n),dt.init(e,n)});var b_=G("ZodUUID",(e,n)=>{wR.init(e,n),dt.init(e,n)});var aAe=G("ZodURL",(e,n)=>{SR.init(e,n),dt.init(e,n)});var dAe=G("ZodEmoji",(e,n)=>{kR.init(e,n),dt.init(e,n)});var uAe=G("ZodNanoID",(e,n)=>{CR.init(e,n),dt.init(e,n)});var cAe=G("ZodCUID",(e,n)=>{TR.init(e,n),dt.init(e,n)});var lAe=G("ZodCUID2",(e,n)=>{PR.init(e,n),dt.init(e,n)});var pAe=G("ZodULID",(e,n)=>{IR.init(e,n),dt.init(e,n)});var fAe=G("ZodXID",(e,n)=>{RR.init(e,n),dt.init(e,n)});var mAe=G("ZodKSUID",(e,n)=>{ER.init(e,n),dt.init(e,n)});var hAe=G("ZodIPv4",(e,n)=>{DR.init(e,n),dt.init(e,n)});var gAe=G("ZodIPv6",(e,n)=>{MR.init(e,n),dt.init(e,n)});var yAe=G("ZodCIDRv4",(e,n)=>{AR.init(e,n),dt.init(e,n)});var xAe=G("ZodCIDRv6",(e,n)=>{OR.init(e,n),dt.init(e,n)});var _Ae=G("ZodBase64",(e,n)=>{$R.init(e,n),dt.init(e,n)});var bAe=G("ZodBase64URL",(e,n)=>{LR.init(e,n),dt.init(e,n)});var wAe=G("ZodE164",(e,n)=>{jR.init(e,n),dt.init(e,n)});var vAe=G("ZodJWT",(e,n)=>{FR.init(e,n),dt.init(e,n)});var nW=G("ZodNumber",(e,n)=>{a_.init(e,n),ft.init(e,n),e.gt=(r,o)=>e.check(p_(r,o)),e.gte=(r,o)=>e.check(Pm(r,o)),e.min=(r,o)=>e.check(Pm(r,o)),e.lt=(r,o)=>e.check(l_(r,o)),e.lte=(r,o)=>e.check(Tm(r,o)),e.max=(r,o)=>e.check(Tm(r,o)),e.int=r=>e.check(XV(r)),e.safe=r=>e.check(XV(r)),e.positive=r=>e.check(p_(0,r)),e.nonnegative=r=>e.check(Pm(0,r)),e.negative=r=>e.check(l_(0,r)),e.nonpositive=r=>e.check(Tm(0,r)),e.multipleOf=(r,o)=>e.check(f_(r,o)),e.step=(r,o)=>e.check(f_(r,o)),e.finite=()=>e;let t=e._zod.bag;e.minValue=Math.max(t.minimum??Number.NEGATIVE_INFINITY,t.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(t.maximum??Number.POSITIVE_INFINITY,t.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(t.format??"").includes("int")||Number.isSafeInteger(t.multipleOf??.5),e.isFinite=!0,e.format=t.format??null});function On(e){return IE(nW,e)}var SAe=G("ZodNumberFormat",(e,n)=>{qR.init(e,n),nW.init(e,n)});function XV(e){return RE(SAe,e)}var kAe=G("ZodBoolean",(e,n)=>{zR.init(e,n),ft.init(e,n)});function Vt(e){return EE(kAe,e)}var CAe=G("ZodNull",(e,n)=>{NR.init(e,n),ft.init(e,n)});function tW(e){return DE(CAe,e)}var TAe=G("ZodUnknown",(e,n)=>{UR.init(e,n),ft.init(e,n)});function ut(){return ME(TAe)}var PAe=G("ZodNever",(e,n)=>{BR.init(e,n),ft.init(e,n)});function IAe(e){return AE(PAe,e)}var RAe=G("ZodArray",(e,n)=>{JR.init(e,n),ft.init(e,n),e.element=n.element,e.min=(t,r)=>e.check(gl(t,r)),e.nonempty=t=>e.check(gl(1,t)),e.max=(t,r)=>e.check(m_(t,r)),e.length=(t,r)=>e.check(h_(t,r)),e.unwrap=()=>e.element});function wn(e,n){return FV(RAe,e,n)}var rW=G("ZodObject",(e,n)=>{d_.init(e,n),ft.init(e,n),xn.defineLazy(e,"shape",()=>n.shape),e.keyof=()=>Wr(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:ut()}),e.loose=()=>e.clone({...e._zod.def,catchall:ut()}),e.strict=()=>e.clone({...e._zod.def,catchall:IAe()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>xn.extend(e,t),e.merge=t=>xn.merge(e,t),e.pick=t=>xn.pick(e,t),e.omit=t=>xn.omit(e,t),e.partial=(...t)=>xn.partial(sW,e,t[0]),e.required=(...t)=>xn.required(aW,e,t[0])});function we(e,n){let t={type:"object",get shape(){return xn.assignProp(this,"shape",{...e}),this.shape},...xn.normalizeParams(n)};return new rW(t)}function Er(e,n){return new rW({type:"object",get shape(){return xn.assignProp(this,"shape",{...e}),this.shape},catchall:ut(),...xn.normalizeParams(n)})}var oW=G("ZodUnion",(e,n)=>{u_.init(e,n),ft.init(e,n),e.options=n.options});function ot(e,n){return new oW({type:"union",options:e,...xn.normalizeParams(n)})}var EAe=G("ZodDiscriminatedUnion",(e,n)=>{oW.init(e,n),KR.init(e,n)});function e2(e,n,t){return new EAe({type:"union",options:n,discriminator:e,...xn.normalizeParams(t)})}var DAe=G("ZodIntersection",(e,n)=>{VR.init(e,n),ft.init(e,n)});function w_(e,n){return new DAe({type:"intersection",left:e,right:n})}var MAe=G("ZodRecord",(e,n)=>{WR.init(e,n),ft.init(e,n),e.keyType=n.keyType,e.valueType=n.valueType});function Xn(e,n,t){return new MAe({type:"record",keyType:e,valueType:n,...xn.normalizeParams(t)})}var XE=G("ZodEnum",(e,n)=>{HR.init(e,n),ft.init(e,n),e.enum=n.entries,e.options=Object.values(n.entries);let t=new Set(Object.keys(n.entries));e.extract=(r,o)=>{let i={};for(let s of r)if(t.has(s))i[s]=n.entries[s];else throw new Error(`Key ${s} not found in enum`);return new XE({...n,checks:[],...xn.normalizeParams(o),entries:i})},e.exclude=(r,o)=>{let i={...n.entries};for(let s of r)if(t.has(s))delete i[s];else throw new Error(`Key ${s} not found in enum`);return new XE({...n,checks:[],...xn.normalizeParams(o),entries:i})}});function Wr(e,n){let t=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new XE({type:"enum",entries:t,...xn.normalizeParams(n)})}var AAe=G("ZodLiteral",(e,n)=>{GR.init(e,n),ft.init(e,n),e.values=new Set(n.values),Object.defineProperty(e,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}})});function Le(e,n){return new AAe({type:"literal",values:Array.isArray(e)?e:[e],...xn.normalizeParams(n)})}var OAe=G("ZodTransform",(e,n)=>{ZR.init(e,n),ft.init(e,n),e._zod.parse=(t,r)=>{t.addIssue=i=>{if(typeof i=="string")t.issues.push(xn.issue(i,t.value,n));else{let s=i;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=t.value),s.inst??(s.inst=e),s.continue??(s.continue=!0),t.issues.push(xn.issue(s))}};let o=n.transform(t.value,t);return o instanceof Promise?o.then(i=>(t.value=i,t)):(t.value=o,t)}});function iW(e){return new OAe({type:"transform",transform:e})}var sW=G("ZodOptional",(e,n)=>{QR.init(e,n),ft.init(e,n),e.unwrap=()=>e._zod.def.innerType});function ct(e){return new sW({type:"optional",innerType:e})}var $Ae=G("ZodNullable",(e,n)=>{XR.init(e,n),ft.init(e,n),e.unwrap=()=>e._zod.def.innerType});function YV(e){return new $Ae({type:"nullable",innerType:e})}var LAe=G("ZodDefault",(e,n)=>{YR.init(e,n),ft.init(e,n),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function jAe(e,n){return new LAe({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():n}})}var FAe=G("ZodPrefault",(e,n)=>{eE.init(e,n),ft.init(e,n),e.unwrap=()=>e._zod.def.innerType});function qAe(e,n){return new FAe({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():n}})}var aW=G("ZodNonOptional",(e,n)=>{nE.init(e,n),ft.init(e,n),e.unwrap=()=>e._zod.def.innerType});function zAe(e,n){return new aW({type:"nonoptional",innerType:e,...xn.normalizeParams(n)})}var NAe=G("ZodCatch",(e,n)=>{tE.init(e,n),ft.init(e,n),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function UAe(e,n){return new NAe({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}var BAe=G("ZodPipe",(e,n)=>{rE.init(e,n),ft.init(e,n),e.in=n.in,e.out=n.out});function YE(e,n){return new BAe({type:"pipe",in:e,out:n})}var JAe=G("ZodReadonly",(e,n)=>{oE.init(e,n),ft.init(e,n)});function KAe(e){return new JAe({type:"readonly",innerType:e})}var dW=G("ZodCustom",(e,n)=>{iE.init(e,n),ft.init(e,n)});function VAe(e){let n=new ir({check:"custom"});return n._zod.check=e,n}function uW(e,n){return JE(dW,e??(()=>!0),n)}function WAe(e,n={}){return KE(dW,e,n)}function HAe(e){let n=VAe(t=>(t.addIssue=r=>{if(typeof r=="string")t.issues.push(xn.issue(r,t.value,n._zod.def));else{let o=r;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=t.value),o.inst??(o.inst=n),o.continue??(o.continue=!n._zod.def.abort),t.issues.push(xn.issue(o))}},e(t.value,t)));return n}function n2(e,n){return YE(iW(e),n)}uo(MV());var r2="2025-11-25";var cW=[r2,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],fa="io.modelcontextprotocol/related-task",S_="2.0",zt=uW(e=>e!==null&&(typeof e=="object"||typeof e=="function")),lW=ot([H(),On().int()]),pW=H(),lon=Er({ttl:On().optional(),pollInterval:On().optional()}),GAe=we({ttl:On().optional()}),ZAe=we({taskId:H()}),o2=Er({progressToken:lW.optional(),[fa]:ZAe.optional()}),lo=we({_meta:o2.optional()}),Em=lo.extend({task:GAe.optional()}),fW=e=>Em.safeParse(e).success,sr=we({method:H(),params:lo.loose().optional()}),Ro=we({_meta:o2.optional()}),Eo=we({method:H(),params:Ro.loose().optional()}),ar=Er({_meta:o2.optional()}),k_=ot([H(),On().int()]),mW=we({jsonrpc:Le(S_),id:k_,...sr.shape}).strict(),i2=e=>mW.safeParse(e).success,hW=we({jsonrpc:Le(S_),...Eo.shape}).strict(),gW=e=>hW.safeParse(e).success,s2=we({jsonrpc:Le(S_),id:k_,result:ar}).strict(),Dm=e=>s2.safeParse(e).success;var Ue;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(Ue||(Ue={}));var a2=we({jsonrpc:Le(S_),id:k_.optional(),error:we({code:On().int(),message:H(),data:ut().optional()})}).strict();var yW=e=>a2.safeParse(e).success;var xW=ot([mW,hW,s2,a2]),pon=ot([s2,a2]),C_=ar.strict(),QAe=Ro.extend({requestId:k_.optional(),reason:H().optional()}),T_=Eo.extend({method:Le("notifications/cancelled"),params:QAe}),XAe=we({src:H(),mimeType:H().optional(),sizes:wn(H()).optional(),theme:Wr(["light","dark"]).optional()}),Mm=we({icons:wn(XAe).optional()}),xl=we({name:H(),title:H().optional()}),_W=xl.extend({...xl.shape,...Mm.shape,version:H(),websiteUrl:H().optional(),description:H().optional()}),YAe=w_(we({applyDefaults:Vt().optional()}),Xn(H(),ut())),e6e=n2(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,w_(we({form:YAe.optional(),url:zt.optional()}),Xn(H(),ut()).optional())),n6e=Er({list:zt.optional(),cancel:zt.optional(),requests:Er({sampling:Er({createMessage:zt.optional()}).optional(),elicitation:Er({create:zt.optional()}).optional()}).optional()}),t6e=Er({list:zt.optional(),cancel:zt.optional(),requests:Er({tools:Er({call:zt.optional()}).optional()}).optional()}),r6e=we({experimental:Xn(H(),zt).optional(),sampling:we({context:zt.optional(),tools:zt.optional()}).optional(),elicitation:e6e.optional(),roots:we({listChanged:Vt().optional()}).optional(),tasks:n6e.optional(),extensions:Xn(H(),zt).optional()}),o6e=lo.extend({protocolVersion:H(),capabilities:r6e,clientInfo:_W}),d2=sr.extend({method:Le("initialize"),params:o6e});var i6e=we({experimental:Xn(H(),zt).optional(),logging:zt.optional(),completions:zt.optional(),prompts:we({listChanged:Vt().optional()}).optional(),resources:we({subscribe:Vt().optional(),listChanged:Vt().optional()}).optional(),tools:we({listChanged:Vt().optional()}).optional(),tasks:t6e.optional(),extensions:Xn(H(),zt).optional()}),s6e=ar.extend({protocolVersion:H(),capabilities:i6e,serverInfo:_W,instructions:H().optional()}),u2=Eo.extend({method:Le("notifications/initialized"),params:Ro.optional()});var P_=sr.extend({method:Le("ping"),params:lo.optional()}),a6e=we({progress:On(),total:ct(On()),message:ct(H())}),d6e=we({...Ro.shape,...a6e.shape,progressToken:lW}),I_=Eo.extend({method:Le("notifications/progress"),params:d6e}),u6e=lo.extend({cursor:pW.optional()}),Am=sr.extend({params:u6e.optional()}),Om=ar.extend({nextCursor:pW.optional()}),c6e=Wr(["working","input_required","completed","failed","cancelled"]),$m=we({taskId:H(),status:c6e,ttl:ot([On(),tW()]),createdAt:H(),lastUpdatedAt:H(),pollInterval:ct(On()),statusMessage:ct(H())}),_l=ar.extend({task:$m}),l6e=Ro.merge($m),Lm=Eo.extend({method:Le("notifications/tasks/status"),params:l6e}),R_=sr.extend({method:Le("tasks/get"),params:lo.extend({taskId:H()})}),E_=ar.merge($m),D_=sr.extend({method:Le("tasks/result"),params:lo.extend({taskId:H()})}),fon=ar.loose(),M_=Am.extend({method:Le("tasks/list")}),A_=Om.extend({tasks:wn($m)}),O_=sr.extend({method:Le("tasks/cancel"),params:lo.extend({taskId:H()})}),bW=ar.merge($m),wW=we({uri:H(),mimeType:ct(H()),_meta:Xn(H(),ut()).optional()}),vW=wW.extend({text:H()}),c2=H().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),SW=wW.extend({blob:c2}),jm=Wr(["user","assistant"]),bl=we({audience:wn(jm).optional(),priority:On().min(0).max(1).optional(),lastModified:Im.datetime({offset:!0}).optional()}),kW=we({...xl.shape,...Mm.shape,uri:H(),description:ct(H()),mimeType:ct(H()),size:ct(On()),annotations:bl.optional(),_meta:ct(Er({}))}),p6e=we({...xl.shape,...Mm.shape,uriTemplate:H(),description:ct(H()),mimeType:ct(H()),annotations:bl.optional(),_meta:ct(Er({}))}),wl=Am.extend({method:Le("resources/list")}),f6e=Om.extend({resources:wn(kW)}),vl=Am.extend({method:Le("resources/templates/list")}),m6e=Om.extend({resourceTemplates:wn(p6e)}),l2=lo.extend({uri:H()}),h6e=l2,$_=sr.extend({method:Le("resources/read"),params:h6e}),g6e=ar.extend({contents:wn(ot([vW,SW]))}),y6e=Eo.extend({method:Le("notifications/resources/list_changed"),params:Ro.optional()}),x6e=l2,_6e=sr.extend({method:Le("resources/subscribe"),params:x6e}),b6e=l2,w6e=sr.extend({method:Le("resources/unsubscribe"),params:b6e}),v6e=Ro.extend({uri:H()}),S6e=Eo.extend({method:Le("notifications/resources/updated"),params:v6e}),k6e=we({name:H(),description:ct(H()),required:ct(Vt())}),C6e=we({...xl.shape,...Mm.shape,description:ct(H()),arguments:ct(wn(k6e)),_meta:ct(Er({}))}),L_=Am.extend({method:Le("prompts/list")}),T6e=Om.extend({prompts:wn(C6e)}),P6e=lo.extend({name:H(),arguments:Xn(H(),H()).optional()}),j_=sr.extend({method:Le("prompts/get"),params:P6e}),p2=we({type:Le("text"),text:H(),annotations:bl.optional(),_meta:Xn(H(),ut()).optional()}),f2=we({type:Le("image"),data:c2,mimeType:H(),annotations:bl.optional(),_meta:Xn(H(),ut()).optional()}),m2=we({type:Le("audio"),data:c2,mimeType:H(),annotations:bl.optional(),_meta:Xn(H(),ut()).optional()}),I6e=we({type:Le("tool_use"),name:H(),id:H(),input:Xn(H(),ut()),_meta:Xn(H(),ut()).optional()}),R6e=we({type:Le("resource"),resource:ot([vW,SW]),annotations:bl.optional(),_meta:Xn(H(),ut()).optional()}),E6e=kW.extend({type:Le("resource_link")}),h2=ot([p2,f2,m2,E6e,R6e]),D6e=we({role:jm,content:h2}),M6e=ar.extend({description:H().optional(),messages:wn(D6e)}),A6e=Eo.extend({method:Le("notifications/prompts/list_changed"),params:Ro.optional()}),O6e=we({title:H().optional(),readOnlyHint:Vt().optional(),destructiveHint:Vt().optional(),idempotentHint:Vt().optional(),openWorldHint:Vt().optional()}),$6e=we({taskSupport:Wr(["required","optional","forbidden"]).optional()}),CW=we({...xl.shape,...Mm.shape,description:H().optional(),inputSchema:we({type:Le("object"),properties:Xn(H(),zt).optional(),required:wn(H()).optional()}).catchall(ut()),outputSchema:we({type:Le("object"),properties:Xn(H(),zt).optional(),required:wn(H()).optional()}).catchall(ut()).optional(),annotations:O6e.optional(),execution:$6e.optional(),_meta:Xn(H(),ut()).optional()}),F_=Am.extend({method:Le("tools/list")}),L6e=Om.extend({tools:wn(CW)}),q_=ar.extend({content:wn(h2).default([]),structuredContent:Xn(H(),ut()).optional(),isError:Vt().optional()}),mon=q_.or(ar.extend({toolResult:ut()})),j6e=Em.extend({name:H(),arguments:Xn(H(),ut()).optional()}),Sl=sr.extend({method:Le("tools/call"),params:j6e}),F6e=Eo.extend({method:Le("notifications/tools/list_changed"),params:Ro.optional()}),hon=we({autoRefresh:Vt().default(!0),debounceMs:On().int().nonnegative().default(300)}),Fm=Wr(["debug","info","notice","warning","error","critical","alert","emergency"]),q6e=lo.extend({level:Fm}),g2=sr.extend({method:Le("logging/setLevel"),params:q6e}),z6e=Ro.extend({level:Fm,logger:H().optional(),data:ut()}),N6e=Eo.extend({method:Le("notifications/message"),params:z6e}),U6e=we({name:H().optional()}),B6e=we({hints:wn(U6e).optional(),costPriority:On().min(0).max(1).optional(),speedPriority:On().min(0).max(1).optional(),intelligencePriority:On().min(0).max(1).optional()}),J6e=we({mode:Wr(["auto","required","none"]).optional()}),K6e=we({type:Le("tool_result"),toolUseId:H().describe("The unique identifier for the corresponding tool call."),content:wn(h2).default([]),structuredContent:we({}).loose().optional(),isError:Vt().optional(),_meta:Xn(H(),ut()).optional()}),V6e=e2("type",[p2,f2,m2]),v_=e2("type",[p2,f2,m2,I6e,K6e]),W6e=we({role:jm,content:ot([v_,wn(v_)]),_meta:Xn(H(),ut()).optional()}),H6e=Em.extend({messages:wn(W6e),modelPreferences:B6e.optional(),systemPrompt:H().optional(),includeContext:Wr(["none","thisServer","allServers"]).optional(),temperature:On().optional(),maxTokens:On().int(),stopSequences:wn(H()).optional(),metadata:zt.optional(),tools:wn(CW).optional(),toolChoice:J6e.optional()}),G6e=sr.extend({method:Le("sampling/createMessage"),params:H6e}),qm=ar.extend({model:H(),stopReason:ct(Wr(["endTurn","stopSequence","maxTokens"]).or(H())),role:jm,content:V6e}),y2=ar.extend({model:H(),stopReason:ct(Wr(["endTurn","stopSequence","maxTokens","toolUse"]).or(H())),role:jm,content:ot([v_,wn(v_)])}),Z6e=we({type:Le("boolean"),title:H().optional(),description:H().optional(),default:Vt().optional()}),Q6e=we({type:Le("string"),title:H().optional(),description:H().optional(),minLength:On().optional(),maxLength:On().optional(),format:Wr(["email","uri","date","date-time"]).optional(),default:H().optional()}),X6e=we({type:Wr(["number","integer"]),title:H().optional(),description:H().optional(),minimum:On().optional(),maximum:On().optional(),default:On().optional()}),Y6e=we({type:Le("string"),title:H().optional(),description:H().optional(),enum:wn(H()),default:H().optional()}),eOe=we({type:Le("string"),title:H().optional(),description:H().optional(),oneOf:wn(we({const:H(),title:H()})),default:H().optional()}),nOe=we({type:Le("string"),title:H().optional(),description:H().optional(),enum:wn(H()),enumNames:wn(H()).optional(),default:H().optional()}),tOe=ot([Y6e,eOe]),rOe=we({type:Le("array"),title:H().optional(),description:H().optional(),minItems:On().optional(),maxItems:On().optional(),items:we({type:Le("string"),enum:wn(H())}),default:wn(H()).optional()}),oOe=we({type:Le("array"),title:H().optional(),description:H().optional(),minItems:On().optional(),maxItems:On().optional(),items:we({anyOf:wn(we({const:H(),title:H()}))}),default:wn(H()).optional()}),iOe=ot([rOe,oOe]),sOe=ot([nOe,tOe,iOe]),aOe=ot([sOe,Z6e,Q6e,X6e]),dOe=Em.extend({mode:Le("form").optional(),message:H(),requestedSchema:we({type:Le("object"),properties:Xn(H(),aOe),required:wn(H()).optional()})}),uOe=Em.extend({mode:Le("url"),message:H(),elicitationId:H(),url:H().url()}),cOe=ot([dOe,uOe]),lOe=sr.extend({method:Le("elicitation/create"),params:cOe}),pOe=Ro.extend({elicitationId:H()}),fOe=Eo.extend({method:Le("notifications/elicitation/complete"),params:pOe}),kl=ar.extend({action:Wr(["accept","decline","cancel"]),content:n2(e=>e===null?void 0:e,Xn(H(),ot([H(),On(),Vt(),wn(H())])).optional())}),mOe=we({type:Le("ref/resource"),uri:H()});var hOe=we({type:Le("ref/prompt"),name:H()}),gOe=lo.extend({ref:ot([hOe,mOe]),argument:we({name:H(),value:H()}),context:we({arguments:Xn(H(),H()).optional()}).optional()}),z_=sr.extend({method:Le("completion/complete"),params:gOe});function TW(e){if(e.params.ref.type!=="ref/prompt")throw new TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function PW(e){if(e.params.ref.type!=="ref/resource")throw new TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}var yOe=ar.extend({completion:Er({values:wn(H()).max(100),total:ct(On().int()),hasMore:ct(Vt())})}),xOe=we({uri:H().startsWith("file://"),name:H().optional(),_meta:Xn(H(),ut()).optional()}),_Oe=sr.extend({method:Le("roots/list"),params:lo.optional()}),x2=ar.extend({roots:wn(xOe)}),bOe=Eo.extend({method:Le("notifications/roots/list_changed"),params:Ro.optional()}),gon=ot([P_,d2,z_,g2,j_,L_,wl,vl,$_,_6e,w6e,Sl,F_,R_,D_,M_,O_]),yon=ot([T_,I_,u2,bOe,Lm]),xon=ot([C_,qm,y2,kl,x2,E_,A_,_l]),_on=ot([P_,G6e,lOe,_Oe,R_,D_,M_,O_]),bon=ot([T_,I_,N6e,S6e,y6e,F6e,A6e,Lm,fOe]),won=ot([C_,s6e,yOe,M6e,T6e,f6e,m6e,g6e,q_,L6e,E_,A_,_l]),Oe=class e extends Error{constructor(n,t,r){super(`MCP error ${n}: ${t}`),this.code=n,this.data=r,this.name="McpError"}static fromError(n,t,r){if(n===Ue.UrlElicitationRequired&&r){let o=r;if(o.elicitations)return new t2(o.elicitations,t)}return new e(n,t,r)}},t2=class extends Oe{constructor(n,t=`URL elicitation${n.length>1?"s":""} required`){super(Ue.UrlElicitationRequired,t,{elicitations:n})}get elicitations(){return this.data?.elicitations??[]}};function ma(e){return e==="completed"||e==="failed"||e==="cancelled"}var RW=Symbol("Let zodToJsonSchema decide on which parser to use");var IW={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref",openAiAnyTypeName:"OpenAiAnyType"},EW=e=>typeof e=="string"?{...IW,name:e}:{...IW,...e};var DW=e=>{let n=EW(e),t=n.name!==void 0?[...n.basePath,n.definitionPath,n.name]:n.basePath;return{...n,flags:{hasReferencedOpenAiAnyType:!1},currentPath:t,propertyPath:void 0,seen:new Map(Object.entries(n.definitions).map(([r,o])=>[o._def,{def:o._def,path:[...n.basePath,n.definitionPath,r],jsonSchema:void 0}]))}};function _2(e,n,t,r){r?.errorMessages&&t&&(e.errorMessage={...e.errorMessage,[n]:t})}function vn(e,n,t,r,o){e[n]=t,_2(e,n,r,o)}var N_=(e,n)=>{let t=0;for(;t<e.length&&t<n.length&&e[t]===n[t];t++);return[(e.length-t).toString(),...n.slice(t)].join("/")};function lt(e){if(e.target!=="openAi")return{};let n=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy==="relative"?N_(n,e.currentPath):n.join("/")}}function MW(e,n){let t={type:"array"};return e.type?._def&&e.type?._def?.typeName!==de.ZodAny&&(t.items=Ge(e.type._def,{...n,currentPath:[...n.currentPath,"items"]})),e.minLength&&vn(t,"minItems",e.minLength.value,e.minLength.message,n),e.maxLength&&vn(t,"maxItems",e.maxLength.value,e.maxLength.message,n),e.exactLength&&(vn(t,"minItems",e.exactLength.value,e.exactLength.message,n),vn(t,"maxItems",e.exactLength.value,e.exactLength.message,n)),t}function AW(e,n){let t={type:"integer",format:"int64"};if(!e.checks)return t;for(let r of e.checks)switch(r.kind){case"min":n.target==="jsonSchema7"?r.inclusive?vn(t,"minimum",r.value,r.message,n):vn(t,"exclusiveMinimum",r.value,r.message,n):(r.inclusive||(t.exclusiveMinimum=!0),vn(t,"minimum",r.value,r.message,n));break;case"max":n.target==="jsonSchema7"?r.inclusive?vn(t,"maximum",r.value,r.message,n):vn(t,"exclusiveMaximum",r.value,r.message,n):(r.inclusive||(t.exclusiveMaximum=!0),vn(t,"maximum",r.value,r.message,n));break;case"multipleOf":vn(t,"multipleOf",r.value,r.message,n);break}return t}function OW(){return{type:"boolean"}}function U_(e,n){return Ge(e.type._def,n)}var $W=(e,n)=>Ge(e.innerType._def,n);function b2(e,n,t){let r=t??n.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((o,i)=>b2(e,n,o))};switch(r){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return wOe(e,n)}}var wOe=(e,n)=>{let t={type:"integer",format:"unix-time"};if(n.target==="openApi3")return t;for(let r of e.checks)switch(r.kind){case"min":vn(t,"minimum",r.value,r.message,n);break;case"max":vn(t,"maximum",r.value,r.message,n);break}return t};function LW(e,n){return{...Ge(e.innerType._def,n),default:e.defaultValue()}}function jW(e,n){return n.effectStrategy==="input"?Ge(e.schema._def,n):lt(n)}function FW(e){return{type:"string",enum:Array.from(e.values)}}var vOe=e=>"type"in e&&e.type==="string"?!1:"allOf"in e;function qW(e,n){let t=[Ge(e.left._def,{...n,currentPath:[...n.currentPath,"allOf","0"]}),Ge(e.right._def,{...n,currentPath:[...n.currentPath,"allOf","1"]})].filter(i=>!!i),r=n.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,o=[];return t.forEach(i=>{if(vOe(i))o.push(...i.allOf),i.unevaluatedProperties===void 0&&(r=void 0);else{let s=i;if("additionalProperties"in i&&i.additionalProperties===!1){let{additionalProperties:a,...d}=i;s=d}else r=void 0;o.push(s)}}),o.length?{allOf:o,...r}:void 0}function zW(e,n){let t=typeof e.value;return t!=="bigint"&&t!=="number"&&t!=="boolean"&&t!=="string"?{type:Array.isArray(e.value)?"array":"object"}:n.target==="openApi3"?{type:t==="bigint"?"integer":t,enum:[e.value]}:{type:t==="bigint"?"integer":t,const:e.value}}var w2,ai={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(w2===void 0&&(w2=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),w2),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function B_(e,n){let t={type:"string"};if(e.checks)for(let r of e.checks)switch(r.kind){case"min":vn(t,"minLength",typeof t.minLength=="number"?Math.max(t.minLength,r.value):r.value,r.message,n);break;case"max":vn(t,"maxLength",typeof t.maxLength=="number"?Math.min(t.maxLength,r.value):r.value,r.message,n);break;case"email":switch(n.emailStrategy){case"format:email":di(t,"email",r.message,n);break;case"format:idn-email":di(t,"idn-email",r.message,n);break;case"pattern:zod":Dr(t,ai.email,r.message,n);break}break;case"url":di(t,"uri",r.message,n);break;case"uuid":di(t,"uuid",r.message,n);break;case"regex":Dr(t,r.regex,r.message,n);break;case"cuid":Dr(t,ai.cuid,r.message,n);break;case"cuid2":Dr(t,ai.cuid2,r.message,n);break;case"startsWith":Dr(t,RegExp(`^${v2(r.value,n)}`),r.message,n);break;case"endsWith":Dr(t,RegExp(`${v2(r.value,n)}$`),r.message,n);break;case"datetime":di(t,"date-time",r.message,n);break;case"date":di(t,"date",r.message,n);break;case"time":di(t,"time",r.message,n);break;case"duration":di(t,"duration",r.message,n);break;case"length":vn(t,"minLength",typeof t.minLength=="number"?Math.max(t.minLength,r.value):r.value,r.message,n),vn(t,"maxLength",typeof t.maxLength=="number"?Math.min(t.maxLength,r.value):r.value,r.message,n);break;case"includes":{Dr(t,RegExp(v2(r.value,n)),r.message,n);break}case"ip":{r.version!=="v6"&&di(t,"ipv4",r.message,n),r.version!=="v4"&&di(t,"ipv6",r.message,n);break}case"base64url":Dr(t,ai.base64url,r.message,n);break;case"jwt":Dr(t,ai.jwt,r.message,n);break;case"cidr":{r.version!=="v6"&&Dr(t,ai.ipv4Cidr,r.message,n),r.version!=="v4"&&Dr(t,ai.ipv6Cidr,r.message,n);break}case"emoji":Dr(t,ai.emoji(),r.message,n);break;case"ulid":{Dr(t,ai.ulid,r.message,n);break}case"base64":{switch(n.base64Strategy){case"format:binary":{di(t,"binary",r.message,n);break}case"contentEncoding:base64":{vn(t,"contentEncoding","base64",r.message,n);break}case"pattern:zod":{Dr(t,ai.base64,r.message,n);break}}break}case"nanoid":Dr(t,ai.nanoid,r.message,n);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return t}function v2(e,n){return n.patternStrategy==="escape"?kOe(e):e}var SOe=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function kOe(e){let n="";for(let t=0;t<e.length;t++)SOe.has(e[t])||(n+="\\"),n+=e[t];return n}function di(e,n,t,r){e.format||e.anyOf?.some(o=>o.format)?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format,...e.errorMessage&&r.errorMessages&&{errorMessage:{format:e.errorMessage.format}}}),delete e.format,e.errorMessage&&(delete e.errorMessage.format,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.anyOf.push({format:n,...t&&r.errorMessages&&{errorMessage:{format:t}}})):vn(e,"format",n,t,r)}function Dr(e,n,t,r){e.pattern||e.allOf?.some(o=>o.pattern)?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern,...e.errorMessage&&r.errorMessages&&{errorMessage:{pattern:e.errorMessage.pattern}}}),delete e.pattern,e.errorMessage&&(delete e.errorMessage.pattern,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.allOf.push({pattern:NW(n,r),...t&&r.errorMessages&&{errorMessage:{pattern:t}}})):vn(e,"pattern",NW(n,r),t,r)}function NW(e,n){if(!n.applyRegexFlags||!e.flags)return e.source;let t={i:e.flags.includes("i"),m:e.flags.includes("m"),s:e.flags.includes("s")},r=t.i?e.source.toLowerCase():e.source,o="",i=!1,s=!1,a=!1;for(let d=0;d<r.length;d++){if(i){o+=r[d],i=!1;continue}if(t.i){if(s){if(r[d].match(/[a-z]/)){a?(o+=r[d],o+=`${r[d-2]}-${r[d]}`.toUpperCase(),a=!1):r[d+1]==="-"&&r[d+2]?.match(/[a-z]/)?(o+=r[d],a=!0):o+=`${r[d]}${r[d].toUpperCase()}`;continue}}else if(r[d].match(/[a-z]/)){o+=`[${r[d]}${r[d].toUpperCase()}]`;continue}}if(t.m){if(r[d]==="^"){o+=`(^|(?<=[\r
1929
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let c of this.seen.entries()){let l=c[1];if(n===c[0]){s(c);continue}if(r.external){let m=r.external.registry.get(c[0])?.id;if(n!==c[0]&&m){s(c);continue}}if(this.metadataRegistry.get(c[0])?.id){s(c);continue}if(l.cycle){s(c);continue}if(l.count>1&&r.reused==="ref"){s(c);continue}}let a=(c,l)=>{let p=this.seen.get(c),m=p.def??p.schema,f={...m};if(p.ref===null)return;let y=p.ref;if(p.ref=null,y){a(y,l);let _=this.seen.get(y).schema;_.$ref&&l.target==="draft-7"?(m.allOf=m.allOf??[],m.allOf.push(_)):(Object.assign(m,_),Object.assign(m,f))}p.isParent||this.override({zodSchema:c,jsonSchema:m,path:p.path??[]})};for(let c of[...this.seen.entries()].reverse())a(c[0],{target:this.target});let d={};if(this.target==="draft-2020-12"?d.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?d.$schema="http://json-schema.org/draft-07/schema#":console.warn(`Invalid target: ${this.target}`),r.external?.uri){let c=r.external.registry.get(n)?.id;if(!c)throw new Error("Schema is missing an `id` property");d.$id=r.external.uri(c)}Object.assign(d,o.def);let u=r.external?.defs??{};for(let c of this.seen.entries()){let l=c[1];l.def&&l.defId&&(u[l.defId]=l.def)}r.external||Object.keys(u).length>0&&(this.target==="draft-2020-12"?d.$defs=u:d.definitions=u);try{return JSON.parse(JSON.stringify(d))}catch{throw new Error("Error converting schema to JSON.")}}};function VE(e,n){if(e instanceof Cm){let r=new g_(n),o={};for(let a of e._idmap.entries()){let[d,u]=a;r.process(u)}let i={},s={registry:e,uri:n?.uri,defs:o};for(let a of e._idmap.entries()){let[d,u]=a;i[d]=r.emit(u,{...n,external:s})}if(Object.keys(o).length>0){let a=r.target==="draft-2020-12"?"$defs":"definitions";i.__shared={[a]:o}}return{schemas:i}}let t=new g_(n);return t.process(e),t.emit(e,n)}function qt(e,n){let t=n??{seen:new Set};if(t.seen.has(e))return!1;t.seen.add(e);let o=e._zod.def;switch(o.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return qt(o.element,t);case"object":{for(let i in o.shape)if(qt(o.shape[i],t))return!0;return!1}case"union":{for(let i of o.options)if(qt(i,t))return!0;return!1}case"intersection":return qt(o.left,t)||qt(o.right,t);case"tuple":{for(let i of o.items)if(qt(i,t))return!0;return!!(o.rest&&qt(o.rest,t))}case"record":return qt(o.keyType,t)||qt(o.valueType,t);case"map":return qt(o.keyType,t)||qt(o.valueType,t);case"set":return qt(o.valueType,t);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return qt(o.innerType,t);case"lazy":return qt(o.getter(),t);case"default":return qt(o.innerType,t);case"prefault":return qt(o.innerType,t);case"custom":return!1;case"transform":return!0;case"pipe":return qt(o.in,t)||qt(o.out,t);case"success":return!1;case"catch":return!1;default:}throw new Error(`Unknown schema type: ${o.type}`)}var GMe=G("ZodMiniType",(e,n)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");zn.init(e,n),e.def=n,e.parse=(t,r)=>cR(e,t,r,{callee:e.parse}),e.safeParse=(t,r)=>Wd(e,t,r),e.parseAsync=async(t,r)=>pR(e,t,r,{callee:e.parseAsync}),e.safeParseAsync=async(t,r)=>Hd(e,t,r),e.check=(...t)=>e.clone({...n,checks:[...n.checks??[],...t.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(t,r)=>co(e,t,r),e.brand=()=>e,e.register=((t,r)=>(t.add(e,r),e))});var ZMe=G("ZodMiniObject",(e,n)=>{d_.init(e,n),GMe.init(e,n),xn.defineLazy(e,"shape",()=>n.shape)});function WE(e,n){let t={type:"object",get shape(){return xn.assignProp(this,"shape",{...e}),this.shape},...xn.normalizeParams(n)};return new ZMe(t)}function Io(e){return!!e._zod}function Qd(e){let n=Object.values(e);if(n.length===0)return WE({});let t=n.every(Io),r=n.every(o=>!Io(o));if(t)return WE(e);if(r)return ZI(e);throw new Error("Mixed Zod versions detected in object shape.")}function la(e,n){return Io(e)?Wd(e,n):e.safeParse(n)}async function y_(e,n){return Io(e)?await Hd(e,n):await e.safeParseAsync(n)}function pa(e){if(!e)return;let n;if(Io(e)?n=e._zod?.def?.shape:n=e.shape,!!n){if(typeof n=="function")try{return n()}catch{return}return n}}function yl(e){if(e){if(typeof e=="object"){let n=e,t=e;if(!n._def&&!t._zod){let r=Object.values(e);if(r.length>0&&r.every(o=>typeof o=="object"&&o!==null&&(o._def!==void 0||o._zod!==void 0||typeof o.parse=="function")))return Qd(e)}}if(Io(e)){let t=e._zod?.def;if(t&&(t.type==="object"||t.shape!==void 0))return e}else if(e.shape!==void 0)return e}}function x_(e){if(e&&typeof e=="object"){if("message"in e&&typeof e.message=="string")return e.message;if("issues"in e&&Array.isArray(e.issues)&&e.issues.length>0){let n=e.issues[0];if(n&&typeof n=="object"&&"message"in n)return String(n.message)}try{return JSON.stringify(e)}catch{return String(e)}}return String(e)}function zV(e){return e.description}function NV(e){if(Io(e))return e._zod?.def?.type==="optional";let n=e;return typeof e.isOptional=="function"?e.isOptional():n._def?.typeName==="ZodOptional"}function __(e){if(Io(e)){let i=e._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}let t=e._def;if(t){if(t.value!==void 0)return t.value;if(Array.isArray(t.values)&&t.values.length>0)return t.values[0]}let r=e.value;if(r!==void 0)return r}var Im={};Wo(Im,{ZodISODate:()=>BV,ZodISODateTime:()=>UV,ZodISODuration:()=>KV,ZodISOTime:()=>JV,date:()=>GE,datetime:()=>HE,duration:()=>QE,time:()=>ZE});var UV=G("ZodISODateTime",(e,n)=>{PV.init(e,n),dt.init(e,n)});function HE(e){return OV(UV,e)}var BV=G("ZodISODate",(e,n)=>{IV.init(e,n),dt.init(e,n)});function GE(e){return $V(BV,e)}var JV=G("ZodISOTime",(e,n)=>{RV.init(e,n),dt.init(e,n)});function ZE(e){return LV(JV,e)}var KV=G("ZodISODuration",(e,n)=>{EV.init(e,n),dt.init(e,n)});function QE(e){return jV(KV,e)}var VV=(e,n)=>{r_.init(e,n),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>dR(e,t)},flatten:{value:t=>aR(e,t)},addIssue:{value:t=>e.issues.push(t)},addIssues:{value:t=>e.issues.push(...t)},isEmpty:{get(){return e.issues.length===0}}})},Qrn=G("ZodError",VV),Rm=G("ZodError",VV,{Parent:Error});var WV=uR(Rm),HV=lR(Rm),GV=fR(Rm),ZV=mR(Rm);var ft=G("ZodType",(e,n)=>(zn.init(e,n),e.def=n,Object.defineProperty(e,"_def",{value:n}),e.check=(...t)=>e.clone({...n,checks:[...n.checks??[],...t.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(t,r)=>co(e,t,r),e.brand=()=>e,e.register=((t,r)=>(t.add(e,r),e)),e.parse=(t,r)=>WV(e,t,r,{callee:e.parse}),e.safeParse=(t,r)=>GV(e,t,r),e.parseAsync=async(t,r)=>HV(e,t,r,{callee:e.parseAsync}),e.safeParseAsync=async(t,r)=>ZV(e,t,r),e.spa=e.safeParseAsync,e.refine=(t,r)=>e.check(WAe(t,r)),e.superRefine=t=>e.check(HAe(t)),e.overwrite=t=>e.check(Gd(t)),e.optional=()=>ct(e),e.nullable=()=>YV(e),e.nullish=()=>ct(YV(e)),e.nonoptional=t=>zAe(e,t),e.array=()=>wn(e),e.or=t=>ot([e,t]),e.and=t=>w_(e,t),e.transform=t=>YE(e,iW(t)),e.default=t=>jAe(e,t),e.prefault=t=>qAe(e,t),e.catch=t=>UAe(e,t),e.pipe=t=>YE(e,t),e.readonly=()=>KAe(e),e.describe=t=>{let r=e.clone();return ca.add(r,{description:t}),r},Object.defineProperty(e,"description",{get(){return ca.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return ca.get(e);let r=e.clone();return ca.add(r,t[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),eW=G("_ZodString",(e,n)=>{km.init(e,n),ft.init(e,n);let t=e._zod.bag;e.format=t.format??null,e.minLength=t.minimum??null,e.maxLength=t.maximum??null,e.regex=(...r)=>e.check(OE(...r)),e.includes=(...r)=>e.check(jE(...r)),e.startsWith=(...r)=>e.check(FE(...r)),e.endsWith=(...r)=>e.check(qE(...r)),e.min=(...r)=>e.check(gl(...r)),e.max=(...r)=>e.check(m_(...r)),e.length=(...r)=>e.check(h_(...r)),e.nonempty=(...r)=>e.check(gl(1,...r)),e.lowercase=r=>e.check($E(r)),e.uppercase=r=>e.check(LE(r)),e.trim=()=>e.check(NE()),e.normalize=(...r)=>e.check(zE(...r)),e.toLowerCase=()=>e.check(UE()),e.toUpperCase=()=>e.check(BE())}),iAe=G("ZodString",(e,n)=>{km.init(e,n),eW.init(e,n),e.email=t=>e.check(aE(sAe,t)),e.url=t=>e.check(pE(aAe,t)),e.jwt=t=>e.check(PE(vAe,t)),e.emoji=t=>e.check(fE(dAe,t)),e.guid=t=>e.check(c_(QV,t)),e.uuid=t=>e.check(dE(b_,t)),e.uuidv4=t=>e.check(uE(b_,t)),e.uuidv6=t=>e.check(cE(b_,t)),e.uuidv7=t=>e.check(lE(b_,t)),e.nanoid=t=>e.check(mE(uAe,t)),e.guid=t=>e.check(c_(QV,t)),e.cuid=t=>e.check(hE(cAe,t)),e.cuid2=t=>e.check(gE(lAe,t)),e.ulid=t=>e.check(yE(pAe,t)),e.base64=t=>e.check(kE(_Ae,t)),e.base64url=t=>e.check(CE(bAe,t)),e.xid=t=>e.check(xE(fAe,t)),e.ksuid=t=>e.check(_E(mAe,t)),e.ipv4=t=>e.check(bE(hAe,t)),e.ipv6=t=>e.check(wE(gAe,t)),e.cidrv4=t=>e.check(vE(yAe,t)),e.cidrv6=t=>e.check(SE(xAe,t)),e.e164=t=>e.check(TE(wAe,t)),e.datetime=t=>e.check(HE(t)),e.date=t=>e.check(GE(t)),e.time=t=>e.check(ZE(t)),e.duration=t=>e.check(QE(t))});function H(e){return sE(iAe,e)}var dt=G("ZodStringFormat",(e,n)=>{Qn.init(e,n),eW.init(e,n)}),sAe=G("ZodEmail",(e,n)=>{vR.init(e,n),dt.init(e,n)});var QV=G("ZodGUID",(e,n)=>{bR.init(e,n),dt.init(e,n)});var b_=G("ZodUUID",(e,n)=>{wR.init(e,n),dt.init(e,n)});var aAe=G("ZodURL",(e,n)=>{SR.init(e,n),dt.init(e,n)});var dAe=G("ZodEmoji",(e,n)=>{kR.init(e,n),dt.init(e,n)});var uAe=G("ZodNanoID",(e,n)=>{CR.init(e,n),dt.init(e,n)});var cAe=G("ZodCUID",(e,n)=>{TR.init(e,n),dt.init(e,n)});var lAe=G("ZodCUID2",(e,n)=>{PR.init(e,n),dt.init(e,n)});var pAe=G("ZodULID",(e,n)=>{IR.init(e,n),dt.init(e,n)});var fAe=G("ZodXID",(e,n)=>{RR.init(e,n),dt.init(e,n)});var mAe=G("ZodKSUID",(e,n)=>{ER.init(e,n),dt.init(e,n)});var hAe=G("ZodIPv4",(e,n)=>{DR.init(e,n),dt.init(e,n)});var gAe=G("ZodIPv6",(e,n)=>{MR.init(e,n),dt.init(e,n)});var yAe=G("ZodCIDRv4",(e,n)=>{AR.init(e,n),dt.init(e,n)});var xAe=G("ZodCIDRv6",(e,n)=>{OR.init(e,n),dt.init(e,n)});var _Ae=G("ZodBase64",(e,n)=>{$R.init(e,n),dt.init(e,n)});var bAe=G("ZodBase64URL",(e,n)=>{LR.init(e,n),dt.init(e,n)});var wAe=G("ZodE164",(e,n)=>{jR.init(e,n),dt.init(e,n)});var vAe=G("ZodJWT",(e,n)=>{FR.init(e,n),dt.init(e,n)});var nW=G("ZodNumber",(e,n)=>{a_.init(e,n),ft.init(e,n),e.gt=(r,o)=>e.check(p_(r,o)),e.gte=(r,o)=>e.check(Pm(r,o)),e.min=(r,o)=>e.check(Pm(r,o)),e.lt=(r,o)=>e.check(l_(r,o)),e.lte=(r,o)=>e.check(Tm(r,o)),e.max=(r,o)=>e.check(Tm(r,o)),e.int=r=>e.check(XV(r)),e.safe=r=>e.check(XV(r)),e.positive=r=>e.check(p_(0,r)),e.nonnegative=r=>e.check(Pm(0,r)),e.negative=r=>e.check(l_(0,r)),e.nonpositive=r=>e.check(Tm(0,r)),e.multipleOf=(r,o)=>e.check(f_(r,o)),e.step=(r,o)=>e.check(f_(r,o)),e.finite=()=>e;let t=e._zod.bag;e.minValue=Math.max(t.minimum??Number.NEGATIVE_INFINITY,t.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(t.maximum??Number.POSITIVE_INFINITY,t.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(t.format??"").includes("int")||Number.isSafeInteger(t.multipleOf??.5),e.isFinite=!0,e.format=t.format??null});function On(e){return IE(nW,e)}var SAe=G("ZodNumberFormat",(e,n)=>{qR.init(e,n),nW.init(e,n)});function XV(e){return RE(SAe,e)}var kAe=G("ZodBoolean",(e,n)=>{zR.init(e,n),ft.init(e,n)});function Vt(e){return EE(kAe,e)}var CAe=G("ZodNull",(e,n)=>{NR.init(e,n),ft.init(e,n)});function tW(e){return DE(CAe,e)}var TAe=G("ZodUnknown",(e,n)=>{UR.init(e,n),ft.init(e,n)});function ut(){return ME(TAe)}var PAe=G("ZodNever",(e,n)=>{BR.init(e,n),ft.init(e,n)});function IAe(e){return AE(PAe,e)}var RAe=G("ZodArray",(e,n)=>{JR.init(e,n),ft.init(e,n),e.element=n.element,e.min=(t,r)=>e.check(gl(t,r)),e.nonempty=t=>e.check(gl(1,t)),e.max=(t,r)=>e.check(m_(t,r)),e.length=(t,r)=>e.check(h_(t,r)),e.unwrap=()=>e.element});function wn(e,n){return FV(RAe,e,n)}var rW=G("ZodObject",(e,n)=>{d_.init(e,n),ft.init(e,n),xn.defineLazy(e,"shape",()=>n.shape),e.keyof=()=>Wr(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:ut()}),e.loose=()=>e.clone({...e._zod.def,catchall:ut()}),e.strict=()=>e.clone({...e._zod.def,catchall:IAe()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>xn.extend(e,t),e.merge=t=>xn.merge(e,t),e.pick=t=>xn.pick(e,t),e.omit=t=>xn.omit(e,t),e.partial=(...t)=>xn.partial(sW,e,t[0]),e.required=(...t)=>xn.required(aW,e,t[0])});function ve(e,n){let t={type:"object",get shape(){return xn.assignProp(this,"shape",{...e}),this.shape},...xn.normalizeParams(n)};return new rW(t)}function Er(e,n){return new rW({type:"object",get shape(){return xn.assignProp(this,"shape",{...e}),this.shape},catchall:ut(),...xn.normalizeParams(n)})}var oW=G("ZodUnion",(e,n)=>{u_.init(e,n),ft.init(e,n),e.options=n.options});function ot(e,n){return new oW({type:"union",options:e,...xn.normalizeParams(n)})}var EAe=G("ZodDiscriminatedUnion",(e,n)=>{oW.init(e,n),KR.init(e,n)});function e2(e,n,t){return new EAe({type:"union",options:n,discriminator:e,...xn.normalizeParams(t)})}var DAe=G("ZodIntersection",(e,n)=>{VR.init(e,n),ft.init(e,n)});function w_(e,n){return new DAe({type:"intersection",left:e,right:n})}var MAe=G("ZodRecord",(e,n)=>{WR.init(e,n),ft.init(e,n),e.keyType=n.keyType,e.valueType=n.valueType});function Xn(e,n,t){return new MAe({type:"record",keyType:e,valueType:n,...xn.normalizeParams(t)})}var XE=G("ZodEnum",(e,n)=>{HR.init(e,n),ft.init(e,n),e.enum=n.entries,e.options=Object.values(n.entries);let t=new Set(Object.keys(n.entries));e.extract=(r,o)=>{let i={};for(let s of r)if(t.has(s))i[s]=n.entries[s];else throw new Error(`Key ${s} not found in enum`);return new XE({...n,checks:[],...xn.normalizeParams(o),entries:i})},e.exclude=(r,o)=>{let i={...n.entries};for(let s of r)if(t.has(s))delete i[s];else throw new Error(`Key ${s} not found in enum`);return new XE({...n,checks:[],...xn.normalizeParams(o),entries:i})}});function Wr(e,n){let t=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new XE({type:"enum",entries:t,...xn.normalizeParams(n)})}var AAe=G("ZodLiteral",(e,n)=>{GR.init(e,n),ft.init(e,n),e.values=new Set(n.values),Object.defineProperty(e,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}})});function Le(e,n){return new AAe({type:"literal",values:Array.isArray(e)?e:[e],...xn.normalizeParams(n)})}var OAe=G("ZodTransform",(e,n)=>{ZR.init(e,n),ft.init(e,n),e._zod.parse=(t,r)=>{t.addIssue=i=>{if(typeof i=="string")t.issues.push(xn.issue(i,t.value,n));else{let s=i;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=t.value),s.inst??(s.inst=e),s.continue??(s.continue=!0),t.issues.push(xn.issue(s))}};let o=n.transform(t.value,t);return o instanceof Promise?o.then(i=>(t.value=i,t)):(t.value=o,t)}});function iW(e){return new OAe({type:"transform",transform:e})}var sW=G("ZodOptional",(e,n)=>{QR.init(e,n),ft.init(e,n),e.unwrap=()=>e._zod.def.innerType});function ct(e){return new sW({type:"optional",innerType:e})}var $Ae=G("ZodNullable",(e,n)=>{XR.init(e,n),ft.init(e,n),e.unwrap=()=>e._zod.def.innerType});function YV(e){return new $Ae({type:"nullable",innerType:e})}var LAe=G("ZodDefault",(e,n)=>{YR.init(e,n),ft.init(e,n),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function jAe(e,n){return new LAe({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():n}})}var FAe=G("ZodPrefault",(e,n)=>{eE.init(e,n),ft.init(e,n),e.unwrap=()=>e._zod.def.innerType});function qAe(e,n){return new FAe({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():n}})}var aW=G("ZodNonOptional",(e,n)=>{nE.init(e,n),ft.init(e,n),e.unwrap=()=>e._zod.def.innerType});function zAe(e,n){return new aW({type:"nonoptional",innerType:e,...xn.normalizeParams(n)})}var NAe=G("ZodCatch",(e,n)=>{tE.init(e,n),ft.init(e,n),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function UAe(e,n){return new NAe({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}var BAe=G("ZodPipe",(e,n)=>{rE.init(e,n),ft.init(e,n),e.in=n.in,e.out=n.out});function YE(e,n){return new BAe({type:"pipe",in:e,out:n})}var JAe=G("ZodReadonly",(e,n)=>{oE.init(e,n),ft.init(e,n)});function KAe(e){return new JAe({type:"readonly",innerType:e})}var dW=G("ZodCustom",(e,n)=>{iE.init(e,n),ft.init(e,n)});function VAe(e){let n=new ir({check:"custom"});return n._zod.check=e,n}function uW(e,n){return JE(dW,e??(()=>!0),n)}function WAe(e,n={}){return KE(dW,e,n)}function HAe(e){let n=VAe(t=>(t.addIssue=r=>{if(typeof r=="string")t.issues.push(xn.issue(r,t.value,n._zod.def));else{let o=r;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=t.value),o.inst??(o.inst=n),o.continue??(o.continue=!n._zod.def.abort),t.issues.push(xn.issue(o))}},e(t.value,t)));return n}function n2(e,n){return YE(iW(e),n)}uo(MV());var r2="2025-11-25";var cW=[r2,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],fa="io.modelcontextprotocol/related-task",S_="2.0",zt=uW(e=>e!==null&&(typeof e=="object"||typeof e=="function")),lW=ot([H(),On().int()]),pW=H(),lon=Er({ttl:On().optional(),pollInterval:On().optional()}),GAe=ve({ttl:On().optional()}),ZAe=ve({taskId:H()}),o2=Er({progressToken:lW.optional(),[fa]:ZAe.optional()}),lo=ve({_meta:o2.optional()}),Em=lo.extend({task:GAe.optional()}),fW=e=>Em.safeParse(e).success,sr=ve({method:H(),params:lo.loose().optional()}),Ro=ve({_meta:o2.optional()}),Eo=ve({method:H(),params:Ro.loose().optional()}),ar=Er({_meta:o2.optional()}),k_=ot([H(),On().int()]),mW=ve({jsonrpc:Le(S_),id:k_,...sr.shape}).strict(),i2=e=>mW.safeParse(e).success,hW=ve({jsonrpc:Le(S_),...Eo.shape}).strict(),gW=e=>hW.safeParse(e).success,s2=ve({jsonrpc:Le(S_),id:k_,result:ar}).strict(),Dm=e=>s2.safeParse(e).success;var Ue;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(Ue||(Ue={}));var a2=ve({jsonrpc:Le(S_),id:k_.optional(),error:ve({code:On().int(),message:H(),data:ut().optional()})}).strict();var yW=e=>a2.safeParse(e).success;var xW=ot([mW,hW,s2,a2]),pon=ot([s2,a2]),C_=ar.strict(),QAe=Ro.extend({requestId:k_.optional(),reason:H().optional()}),T_=Eo.extend({method:Le("notifications/cancelled"),params:QAe}),XAe=ve({src:H(),mimeType:H().optional(),sizes:wn(H()).optional(),theme:Wr(["light","dark"]).optional()}),Mm=ve({icons:wn(XAe).optional()}),xl=ve({name:H(),title:H().optional()}),_W=xl.extend({...xl.shape,...Mm.shape,version:H(),websiteUrl:H().optional(),description:H().optional()}),YAe=w_(ve({applyDefaults:Vt().optional()}),Xn(H(),ut())),e6e=n2(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,w_(ve({form:YAe.optional(),url:zt.optional()}),Xn(H(),ut()).optional())),n6e=Er({list:zt.optional(),cancel:zt.optional(),requests:Er({sampling:Er({createMessage:zt.optional()}).optional(),elicitation:Er({create:zt.optional()}).optional()}).optional()}),t6e=Er({list:zt.optional(),cancel:zt.optional(),requests:Er({tools:Er({call:zt.optional()}).optional()}).optional()}),r6e=ve({experimental:Xn(H(),zt).optional(),sampling:ve({context:zt.optional(),tools:zt.optional()}).optional(),elicitation:e6e.optional(),roots:ve({listChanged:Vt().optional()}).optional(),tasks:n6e.optional(),extensions:Xn(H(),zt).optional()}),o6e=lo.extend({protocolVersion:H(),capabilities:r6e,clientInfo:_W}),d2=sr.extend({method:Le("initialize"),params:o6e});var i6e=ve({experimental:Xn(H(),zt).optional(),logging:zt.optional(),completions:zt.optional(),prompts:ve({listChanged:Vt().optional()}).optional(),resources:ve({subscribe:Vt().optional(),listChanged:Vt().optional()}).optional(),tools:ve({listChanged:Vt().optional()}).optional(),tasks:t6e.optional(),extensions:Xn(H(),zt).optional()}),s6e=ar.extend({protocolVersion:H(),capabilities:i6e,serverInfo:_W,instructions:H().optional()}),u2=Eo.extend({method:Le("notifications/initialized"),params:Ro.optional()});var P_=sr.extend({method:Le("ping"),params:lo.optional()}),a6e=ve({progress:On(),total:ct(On()),message:ct(H())}),d6e=ve({...Ro.shape,...a6e.shape,progressToken:lW}),I_=Eo.extend({method:Le("notifications/progress"),params:d6e}),u6e=lo.extend({cursor:pW.optional()}),Am=sr.extend({params:u6e.optional()}),Om=ar.extend({nextCursor:pW.optional()}),c6e=Wr(["working","input_required","completed","failed","cancelled"]),$m=ve({taskId:H(),status:c6e,ttl:ot([On(),tW()]),createdAt:H(),lastUpdatedAt:H(),pollInterval:ct(On()),statusMessage:ct(H())}),_l=ar.extend({task:$m}),l6e=Ro.merge($m),Lm=Eo.extend({method:Le("notifications/tasks/status"),params:l6e}),R_=sr.extend({method:Le("tasks/get"),params:lo.extend({taskId:H()})}),E_=ar.merge($m),D_=sr.extend({method:Le("tasks/result"),params:lo.extend({taskId:H()})}),fon=ar.loose(),M_=Am.extend({method:Le("tasks/list")}),A_=Om.extend({tasks:wn($m)}),O_=sr.extend({method:Le("tasks/cancel"),params:lo.extend({taskId:H()})}),bW=ar.merge($m),wW=ve({uri:H(),mimeType:ct(H()),_meta:Xn(H(),ut()).optional()}),vW=wW.extend({text:H()}),c2=H().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),SW=wW.extend({blob:c2}),jm=Wr(["user","assistant"]),bl=ve({audience:wn(jm).optional(),priority:On().min(0).max(1).optional(),lastModified:Im.datetime({offset:!0}).optional()}),kW=ve({...xl.shape,...Mm.shape,uri:H(),description:ct(H()),mimeType:ct(H()),size:ct(On()),annotations:bl.optional(),_meta:ct(Er({}))}),p6e=ve({...xl.shape,...Mm.shape,uriTemplate:H(),description:ct(H()),mimeType:ct(H()),annotations:bl.optional(),_meta:ct(Er({}))}),wl=Am.extend({method:Le("resources/list")}),f6e=Om.extend({resources:wn(kW)}),vl=Am.extend({method:Le("resources/templates/list")}),m6e=Om.extend({resourceTemplates:wn(p6e)}),l2=lo.extend({uri:H()}),h6e=l2,$_=sr.extend({method:Le("resources/read"),params:h6e}),g6e=ar.extend({contents:wn(ot([vW,SW]))}),y6e=Eo.extend({method:Le("notifications/resources/list_changed"),params:Ro.optional()}),x6e=l2,_6e=sr.extend({method:Le("resources/subscribe"),params:x6e}),b6e=l2,w6e=sr.extend({method:Le("resources/unsubscribe"),params:b6e}),v6e=Ro.extend({uri:H()}),S6e=Eo.extend({method:Le("notifications/resources/updated"),params:v6e}),k6e=ve({name:H(),description:ct(H()),required:ct(Vt())}),C6e=ve({...xl.shape,...Mm.shape,description:ct(H()),arguments:ct(wn(k6e)),_meta:ct(Er({}))}),L_=Am.extend({method:Le("prompts/list")}),T6e=Om.extend({prompts:wn(C6e)}),P6e=lo.extend({name:H(),arguments:Xn(H(),H()).optional()}),j_=sr.extend({method:Le("prompts/get"),params:P6e}),p2=ve({type:Le("text"),text:H(),annotations:bl.optional(),_meta:Xn(H(),ut()).optional()}),f2=ve({type:Le("image"),data:c2,mimeType:H(),annotations:bl.optional(),_meta:Xn(H(),ut()).optional()}),m2=ve({type:Le("audio"),data:c2,mimeType:H(),annotations:bl.optional(),_meta:Xn(H(),ut()).optional()}),I6e=ve({type:Le("tool_use"),name:H(),id:H(),input:Xn(H(),ut()),_meta:Xn(H(),ut()).optional()}),R6e=ve({type:Le("resource"),resource:ot([vW,SW]),annotations:bl.optional(),_meta:Xn(H(),ut()).optional()}),E6e=kW.extend({type:Le("resource_link")}),h2=ot([p2,f2,m2,E6e,R6e]),D6e=ve({role:jm,content:h2}),M6e=ar.extend({description:H().optional(),messages:wn(D6e)}),A6e=Eo.extend({method:Le("notifications/prompts/list_changed"),params:Ro.optional()}),O6e=ve({title:H().optional(),readOnlyHint:Vt().optional(),destructiveHint:Vt().optional(),idempotentHint:Vt().optional(),openWorldHint:Vt().optional()}),$6e=ve({taskSupport:Wr(["required","optional","forbidden"]).optional()}),CW=ve({...xl.shape,...Mm.shape,description:H().optional(),inputSchema:ve({type:Le("object"),properties:Xn(H(),zt).optional(),required:wn(H()).optional()}).catchall(ut()),outputSchema:ve({type:Le("object"),properties:Xn(H(),zt).optional(),required:wn(H()).optional()}).catchall(ut()).optional(),annotations:O6e.optional(),execution:$6e.optional(),_meta:Xn(H(),ut()).optional()}),F_=Am.extend({method:Le("tools/list")}),L6e=Om.extend({tools:wn(CW)}),q_=ar.extend({content:wn(h2).default([]),structuredContent:Xn(H(),ut()).optional(),isError:Vt().optional()}),mon=q_.or(ar.extend({toolResult:ut()})),j6e=Em.extend({name:H(),arguments:Xn(H(),ut()).optional()}),Sl=sr.extend({method:Le("tools/call"),params:j6e}),F6e=Eo.extend({method:Le("notifications/tools/list_changed"),params:Ro.optional()}),hon=ve({autoRefresh:Vt().default(!0),debounceMs:On().int().nonnegative().default(300)}),Fm=Wr(["debug","info","notice","warning","error","critical","alert","emergency"]),q6e=lo.extend({level:Fm}),g2=sr.extend({method:Le("logging/setLevel"),params:q6e}),z6e=Ro.extend({level:Fm,logger:H().optional(),data:ut()}),N6e=Eo.extend({method:Le("notifications/message"),params:z6e}),U6e=ve({name:H().optional()}),B6e=ve({hints:wn(U6e).optional(),costPriority:On().min(0).max(1).optional(),speedPriority:On().min(0).max(1).optional(),intelligencePriority:On().min(0).max(1).optional()}),J6e=ve({mode:Wr(["auto","required","none"]).optional()}),K6e=ve({type:Le("tool_result"),toolUseId:H().describe("The unique identifier for the corresponding tool call."),content:wn(h2).default([]),structuredContent:ve({}).loose().optional(),isError:Vt().optional(),_meta:Xn(H(),ut()).optional()}),V6e=e2("type",[p2,f2,m2]),v_=e2("type",[p2,f2,m2,I6e,K6e]),W6e=ve({role:jm,content:ot([v_,wn(v_)]),_meta:Xn(H(),ut()).optional()}),H6e=Em.extend({messages:wn(W6e),modelPreferences:B6e.optional(),systemPrompt:H().optional(),includeContext:Wr(["none","thisServer","allServers"]).optional(),temperature:On().optional(),maxTokens:On().int(),stopSequences:wn(H()).optional(),metadata:zt.optional(),tools:wn(CW).optional(),toolChoice:J6e.optional()}),G6e=sr.extend({method:Le("sampling/createMessage"),params:H6e}),qm=ar.extend({model:H(),stopReason:ct(Wr(["endTurn","stopSequence","maxTokens"]).or(H())),role:jm,content:V6e}),y2=ar.extend({model:H(),stopReason:ct(Wr(["endTurn","stopSequence","maxTokens","toolUse"]).or(H())),role:jm,content:ot([v_,wn(v_)])}),Z6e=ve({type:Le("boolean"),title:H().optional(),description:H().optional(),default:Vt().optional()}),Q6e=ve({type:Le("string"),title:H().optional(),description:H().optional(),minLength:On().optional(),maxLength:On().optional(),format:Wr(["email","uri","date","date-time"]).optional(),default:H().optional()}),X6e=ve({type:Wr(["number","integer"]),title:H().optional(),description:H().optional(),minimum:On().optional(),maximum:On().optional(),default:On().optional()}),Y6e=ve({type:Le("string"),title:H().optional(),description:H().optional(),enum:wn(H()),default:H().optional()}),eOe=ve({type:Le("string"),title:H().optional(),description:H().optional(),oneOf:wn(ve({const:H(),title:H()})),default:H().optional()}),nOe=ve({type:Le("string"),title:H().optional(),description:H().optional(),enum:wn(H()),enumNames:wn(H()).optional(),default:H().optional()}),tOe=ot([Y6e,eOe]),rOe=ve({type:Le("array"),title:H().optional(),description:H().optional(),minItems:On().optional(),maxItems:On().optional(),items:ve({type:Le("string"),enum:wn(H())}),default:wn(H()).optional()}),oOe=ve({type:Le("array"),title:H().optional(),description:H().optional(),minItems:On().optional(),maxItems:On().optional(),items:ve({anyOf:wn(ve({const:H(),title:H()}))}),default:wn(H()).optional()}),iOe=ot([rOe,oOe]),sOe=ot([nOe,tOe,iOe]),aOe=ot([sOe,Z6e,Q6e,X6e]),dOe=Em.extend({mode:Le("form").optional(),message:H(),requestedSchema:ve({type:Le("object"),properties:Xn(H(),aOe),required:wn(H()).optional()})}),uOe=Em.extend({mode:Le("url"),message:H(),elicitationId:H(),url:H().url()}),cOe=ot([dOe,uOe]),lOe=sr.extend({method:Le("elicitation/create"),params:cOe}),pOe=Ro.extend({elicitationId:H()}),fOe=Eo.extend({method:Le("notifications/elicitation/complete"),params:pOe}),kl=ar.extend({action:Wr(["accept","decline","cancel"]),content:n2(e=>e===null?void 0:e,Xn(H(),ot([H(),On(),Vt(),wn(H())])).optional())}),mOe=ve({type:Le("ref/resource"),uri:H()});var hOe=ve({type:Le("ref/prompt"),name:H()}),gOe=lo.extend({ref:ot([hOe,mOe]),argument:ve({name:H(),value:H()}),context:ve({arguments:Xn(H(),H()).optional()}).optional()}),z_=sr.extend({method:Le("completion/complete"),params:gOe});function TW(e){if(e.params.ref.type!=="ref/prompt")throw new TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function PW(e){if(e.params.ref.type!=="ref/resource")throw new TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}var yOe=ar.extend({completion:Er({values:wn(H()).max(100),total:ct(On().int()),hasMore:ct(Vt())})}),xOe=ve({uri:H().startsWith("file://"),name:H().optional(),_meta:Xn(H(),ut()).optional()}),_Oe=sr.extend({method:Le("roots/list"),params:lo.optional()}),x2=ar.extend({roots:wn(xOe)}),bOe=Eo.extend({method:Le("notifications/roots/list_changed"),params:Ro.optional()}),gon=ot([P_,d2,z_,g2,j_,L_,wl,vl,$_,_6e,w6e,Sl,F_,R_,D_,M_,O_]),yon=ot([T_,I_,u2,bOe,Lm]),xon=ot([C_,qm,y2,kl,x2,E_,A_,_l]),_on=ot([P_,G6e,lOe,_Oe,R_,D_,M_,O_]),bon=ot([T_,I_,N6e,S6e,y6e,F6e,A6e,Lm,fOe]),won=ot([C_,s6e,yOe,M6e,T6e,f6e,m6e,g6e,q_,L6e,E_,A_,_l]),Oe=class e extends Error{constructor(n,t,r){super(`MCP error ${n}: ${t}`),this.code=n,this.data=r,this.name="McpError"}static fromError(n,t,r){if(n===Ue.UrlElicitationRequired&&r){let o=r;if(o.elicitations)return new t2(o.elicitations,t)}return new e(n,t,r)}},t2=class extends Oe{constructor(n,t=`URL elicitation${n.length>1?"s":""} required`){super(Ue.UrlElicitationRequired,t,{elicitations:n})}get elicitations(){return this.data?.elicitations??[]}};function ma(e){return e==="completed"||e==="failed"||e==="cancelled"}var RW=Symbol("Let zodToJsonSchema decide on which parser to use");var IW={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref",openAiAnyTypeName:"OpenAiAnyType"},EW=e=>typeof e=="string"?{...IW,name:e}:{...IW,...e};var DW=e=>{let n=EW(e),t=n.name!==void 0?[...n.basePath,n.definitionPath,n.name]:n.basePath;return{...n,flags:{hasReferencedOpenAiAnyType:!1},currentPath:t,propertyPath:void 0,seen:new Map(Object.entries(n.definitions).map(([r,o])=>[o._def,{def:o._def,path:[...n.basePath,n.definitionPath,r],jsonSchema:void 0}]))}};function _2(e,n,t,r){r?.errorMessages&&t&&(e.errorMessage={...e.errorMessage,[n]:t})}function vn(e,n,t,r,o){e[n]=t,_2(e,n,r,o)}var N_=(e,n)=>{let t=0;for(;t<e.length&&t<n.length&&e[t]===n[t];t++);return[(e.length-t).toString(),...n.slice(t)].join("/")};function lt(e){if(e.target!=="openAi")return{};let n=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy==="relative"?N_(n,e.currentPath):n.join("/")}}function MW(e,n){let t={type:"array"};return e.type?._def&&e.type?._def?.typeName!==de.ZodAny&&(t.items=Ge(e.type._def,{...n,currentPath:[...n.currentPath,"items"]})),e.minLength&&vn(t,"minItems",e.minLength.value,e.minLength.message,n),e.maxLength&&vn(t,"maxItems",e.maxLength.value,e.maxLength.message,n),e.exactLength&&(vn(t,"minItems",e.exactLength.value,e.exactLength.message,n),vn(t,"maxItems",e.exactLength.value,e.exactLength.message,n)),t}function AW(e,n){let t={type:"integer",format:"int64"};if(!e.checks)return t;for(let r of e.checks)switch(r.kind){case"min":n.target==="jsonSchema7"?r.inclusive?vn(t,"minimum",r.value,r.message,n):vn(t,"exclusiveMinimum",r.value,r.message,n):(r.inclusive||(t.exclusiveMinimum=!0),vn(t,"minimum",r.value,r.message,n));break;case"max":n.target==="jsonSchema7"?r.inclusive?vn(t,"maximum",r.value,r.message,n):vn(t,"exclusiveMaximum",r.value,r.message,n):(r.inclusive||(t.exclusiveMaximum=!0),vn(t,"maximum",r.value,r.message,n));break;case"multipleOf":vn(t,"multipleOf",r.value,r.message,n);break}return t}function OW(){return{type:"boolean"}}function U_(e,n){return Ge(e.type._def,n)}var $W=(e,n)=>Ge(e.innerType._def,n);function b2(e,n,t){let r=t??n.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((o,i)=>b2(e,n,o))};switch(r){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return wOe(e,n)}}var wOe=(e,n)=>{let t={type:"integer",format:"unix-time"};if(n.target==="openApi3")return t;for(let r of e.checks)switch(r.kind){case"min":vn(t,"minimum",r.value,r.message,n);break;case"max":vn(t,"maximum",r.value,r.message,n);break}return t};function LW(e,n){return{...Ge(e.innerType._def,n),default:e.defaultValue()}}function jW(e,n){return n.effectStrategy==="input"?Ge(e.schema._def,n):lt(n)}function FW(e){return{type:"string",enum:Array.from(e.values)}}var vOe=e=>"type"in e&&e.type==="string"?!1:"allOf"in e;function qW(e,n){let t=[Ge(e.left._def,{...n,currentPath:[...n.currentPath,"allOf","0"]}),Ge(e.right._def,{...n,currentPath:[...n.currentPath,"allOf","1"]})].filter(i=>!!i),r=n.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,o=[];return t.forEach(i=>{if(vOe(i))o.push(...i.allOf),i.unevaluatedProperties===void 0&&(r=void 0);else{let s=i;if("additionalProperties"in i&&i.additionalProperties===!1){let{additionalProperties:a,...d}=i;s=d}else r=void 0;o.push(s)}}),o.length?{allOf:o,...r}:void 0}function zW(e,n){let t=typeof e.value;return t!=="bigint"&&t!=="number"&&t!=="boolean"&&t!=="string"?{type:Array.isArray(e.value)?"array":"object"}:n.target==="openApi3"?{type:t==="bigint"?"integer":t,enum:[e.value]}:{type:t==="bigint"?"integer":t,const:e.value}}var w2,ai={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(w2===void 0&&(w2=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),w2),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function B_(e,n){let t={type:"string"};if(e.checks)for(let r of e.checks)switch(r.kind){case"min":vn(t,"minLength",typeof t.minLength=="number"?Math.max(t.minLength,r.value):r.value,r.message,n);break;case"max":vn(t,"maxLength",typeof t.maxLength=="number"?Math.min(t.maxLength,r.value):r.value,r.message,n);break;case"email":switch(n.emailStrategy){case"format:email":di(t,"email",r.message,n);break;case"format:idn-email":di(t,"idn-email",r.message,n);break;case"pattern:zod":Dr(t,ai.email,r.message,n);break}break;case"url":di(t,"uri",r.message,n);break;case"uuid":di(t,"uuid",r.message,n);break;case"regex":Dr(t,r.regex,r.message,n);break;case"cuid":Dr(t,ai.cuid,r.message,n);break;case"cuid2":Dr(t,ai.cuid2,r.message,n);break;case"startsWith":Dr(t,RegExp(`^${v2(r.value,n)}`),r.message,n);break;case"endsWith":Dr(t,RegExp(`${v2(r.value,n)}$`),r.message,n);break;case"datetime":di(t,"date-time",r.message,n);break;case"date":di(t,"date",r.message,n);break;case"time":di(t,"time",r.message,n);break;case"duration":di(t,"duration",r.message,n);break;case"length":vn(t,"minLength",typeof t.minLength=="number"?Math.max(t.minLength,r.value):r.value,r.message,n),vn(t,"maxLength",typeof t.maxLength=="number"?Math.min(t.maxLength,r.value):r.value,r.message,n);break;case"includes":{Dr(t,RegExp(v2(r.value,n)),r.message,n);break}case"ip":{r.version!=="v6"&&di(t,"ipv4",r.message,n),r.version!=="v4"&&di(t,"ipv6",r.message,n);break}case"base64url":Dr(t,ai.base64url,r.message,n);break;case"jwt":Dr(t,ai.jwt,r.message,n);break;case"cidr":{r.version!=="v6"&&Dr(t,ai.ipv4Cidr,r.message,n),r.version!=="v4"&&Dr(t,ai.ipv6Cidr,r.message,n);break}case"emoji":Dr(t,ai.emoji(),r.message,n);break;case"ulid":{Dr(t,ai.ulid,r.message,n);break}case"base64":{switch(n.base64Strategy){case"format:binary":{di(t,"binary",r.message,n);break}case"contentEncoding:base64":{vn(t,"contentEncoding","base64",r.message,n);break}case"pattern:zod":{Dr(t,ai.base64,r.message,n);break}}break}case"nanoid":Dr(t,ai.nanoid,r.message,n);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return t}function v2(e,n){return n.patternStrategy==="escape"?kOe(e):e}var SOe=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function kOe(e){let n="";for(let t=0;t<e.length;t++)SOe.has(e[t])||(n+="\\"),n+=e[t];return n}function di(e,n,t,r){e.format||e.anyOf?.some(o=>o.format)?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format,...e.errorMessage&&r.errorMessages&&{errorMessage:{format:e.errorMessage.format}}}),delete e.format,e.errorMessage&&(delete e.errorMessage.format,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.anyOf.push({format:n,...t&&r.errorMessages&&{errorMessage:{format:t}}})):vn(e,"format",n,t,r)}function Dr(e,n,t,r){e.pattern||e.allOf?.some(o=>o.pattern)?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern,...e.errorMessage&&r.errorMessages&&{errorMessage:{pattern:e.errorMessage.pattern}}}),delete e.pattern,e.errorMessage&&(delete e.errorMessage.pattern,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.allOf.push({pattern:NW(n,r),...t&&r.errorMessages&&{errorMessage:{pattern:t}}})):vn(e,"pattern",NW(n,r),t,r)}function NW(e,n){if(!n.applyRegexFlags||!e.flags)return e.source;let t={i:e.flags.includes("i"),m:e.flags.includes("m"),s:e.flags.includes("s")},r=t.i?e.source.toLowerCase():e.source,o="",i=!1,s=!1,a=!1;for(let d=0;d<r.length;d++){if(i){o+=r[d],i=!1;continue}if(t.i){if(s){if(r[d].match(/[a-z]/)){a?(o+=r[d],o+=`${r[d-2]}-${r[d]}`.toUpperCase(),a=!1):r[d+1]==="-"&&r[d+2]?.match(/[a-z]/)?(o+=r[d],a=!0):o+=`${r[d]}${r[d].toUpperCase()}`;continue}}else if(r[d].match(/[a-z]/)){o+=`[${r[d]}${r[d].toUpperCase()}]`;continue}}if(t.m){if(r[d]==="^"){o+=`(^|(?<=[\r
1930
1930
  ]))`;continue}else if(r[d]==="$"){o+=`($|(?=[\r
1931
1931
  ]))`;continue}}if(t.s&&r[d]==="."){o+=s?`${r[d]}\r
1932
1932
  `:`[${r[d]}\r