UNPKG

@anthropic-ai/claude-agent-sdk

Version:

SDK for building AI agents with Claude Code's capabilities. Programmatically interact with Claude to build autonomous agents that can understand codebases, edit files, and execute workflows.

42 lines • 124 kB
// (c) Anthropic PBC. All rights reserved. Use is subject to the Legal Agreements outlined here: https://code.claude.com/docs/en/legal-and-compliance.

// Version: 0.3.295

// symbol-dispose-prelude: bun build --banner for every SDK bundle; the build
// scripts grep for this line's tag. Runs before any module body. bun lowers
// `using` to a helper that keys disposal on the registry symbol when the
// well-known one is missing, while disposable objects key on the well-known
// global directly; on engines without a native `Symbol.dispose` (Safari/iOS,
// Firefox ESR, `node:vm` contexts on Node <=22 such as Jest's `node`
// environment and vitest's vm pools, and Node before 18.18 / 20.4) the two
// disagree and every lowered `using` throws. Registering both symbols first
// makes the keys agree; a no-op where they are native, and a locked-down
// `Symbol` (SES lockdown) keeps today's behaviour instead of failing to load.
if (typeof Symbol.dispose !== 'symbol') {
  try {
    Symbol.dispose = Symbol.for('Symbol.dispose')
  } catch {}
}
if (typeof Symbol.asyncDispose !== 'symbol') {
  try {
    Symbol.asyncDispose = Symbol.for('Symbol.asyncDispose')
  } catch {}
}
import{Ne,l,a,o,z,X,c,A,Tt,xt,I,y,n,Fe,gt,_,mt,L,w,wt,u,Be,R,G,Vt,Yt,ht,Ge,Pt,It,Lt,Mt,ce,ge,De,st,it,m,Et,Ut,t,O,me,e,Rt,Ve,ee,r,he,Bt,jt,ue,Wt}from"./core-reghh1vn.mjs";import{execFile as cc}from"child_process";import{randomUUID as lc}from"crypto";import{mkdir as er,mkdtemp as jp,readFile as uc,rm as dc,writeFile as Ws}from"fs/promises";import{createRequire as fc}from"module";import{homedir as tr,tmpdir as pc}from"os";import{dirname as Us,isAbsolute as mc,join as Y,posix as gc,resolve as nn,sep as hc,win32 as yc}from"path";import{fileURLToPath as Sc}from"url";import{setMaxListeners as Io}from"events";var xo=50;function nt(s=xo){let i=new AbortController;return Io(s,i.signal),i}var hl=new FinalizationRegistry(({parentSignalRef:s,handler:i})=>{s.deref()?.removeEventListener("abort",i)});var Oo="ask-withdrawn-by-asker",yl=new DOMException(Oo,"AbortError");var Sl={"user-cancel":new DOMException("user-cancel","AbortError"),"remote-cancel":new DOMException("remote-cancel","AbortError"),shutdown:new DOMException("shutdown","AbortError"),interrupt:new DOMException("interrupt","AbortError"),"turn-abort":new DOMException("turn-abort","AbortError"),background:new DOMException("background","AbortError"),"refusal-fallback-edit":new DOMException("refusal-fallback-edit","AbortError"),"recovery-timeout":new DOMException("recovery-timeout","AbortError"),"permission-stop":new DOMException("permission-stop","AbortError")};var Mo="server-fallback-tombstone";var bl=new DOMException(Mo,"AbortError");var Do="subagent-park",wl=new DOMException(Do,"AbortError");import{spawn as Di}from"child_process";import{existsSync as Ni}from"fs";import{createInterface as Li}from"readline";import{StringDecoder as ji}from"string_decoder";var No=/hooks\.slack\.com\/(?:services|workflows|triggers)\/[A-Za-z0-9/_-]+/gi;var Sn={bearer:[/\bBearer\s+(?=[A-Za-z0-9._~+/=-](?:[A-Za-z0-9._~+/=-]|%[0-9A-Fa-f]{2}){7})[A-Za-z0-9._~+/=-](?:[A-Za-z0-9._~+/=-]+|%[0-9A-Fa-f]{2})*/gi,"Bearer <token>"],basic:[/(:\s*)Basic\s+[A-Za-z0-9+/=]{8,}/gi,"$1Basic <token>"],sk:[/\bsk-[A-Za-z0-9_-]{20,}/g,"<token>"]},Lo=[/\bBearer\s{1,512}(?=[A-Za-z0-9._~+/=-](?:[A-Za-z0-9._~+/=-]|%(?!20)[0-9A-Fa-f]{2}){15})(?:eyJ|(?=(?:[A-Za-z0-9._~+/=-]|%(?!20)[0-9A-Fa-f]{2}){0,64}[0-9=]))/i,/:\s{0,512}Basic\s{1,512}(?=[A-Za-z0-9+/=]{16})(?=[A-Za-z0-9+/=]{0,64}[0-9=])/i,/\bsk-(?=[A-Za-z0-9_-]{20})(?=[A-Za-z0-9_-]{0,64}[0-9])/];var El=new RegExp(`(?:\\b(?:xox[abe-z](?:\\.xox[a-z])?|xapp|xwfp)-${Le("[A-Za-z0-9+/=%_-]")}|\\bxox[cd]-|(?:xox[abe-z](?:\\.xox[a-z])?|xapp|xwfp)-(?=[0-9])|xox[cd]-${Le("[A-Za-z0-9+/=%_-]")}(?=[A-Za-z0-9+/=%_-]{16}))`,"i"),br=[[rt("sk-ant-","[A-Za-z0-9_-]",8,bn(8)),"<token>"],[rt("sk-(?:proj|svcacct|admin)-","[A-Za-z0-9_-]",20,bn(20)),"<token>"]],wr=["AKIA","ASIA","ABIA","ACCA","A3T[A-Z0-9]"],jo=`(?:${wr.join("|")})`,_r=[[new RegExp(`(^|[^A-Za-z0-9+])${jo}[A-Z0-9]{16}(?![A-Za-z0-9+=])`,"g"),"$1<token>"]],Er=[[rt("gh[opusr]_","[A-Za-z0-9]",20,Le("[A-Za-z0-9]")),"<token>"],[/github_pat_[A-Za-z0-9_]{82,}/g,"<token>"],[/sq0(?:atp|csp)-[A-Za-z0-9_-]{22,}/g,"<token>"],[/(^|[^A-Za-z0-9+/])EAAA[A-Za-z0-9+/=%_-]{56,}/g,"$1<token>"],[rt("gl(?:pat|dt|rt|ft|soat|oas|agent|ptt|cbt|imt|ffct)-","[A-Za-z0-9_=-]",20,Le("[A-Za-z0-9_=-]"),"(?:\\.[0-9a-z]{9})?"),"<token>"],[rt("(?:xox[abe-z](?:\\.xox[a-z])?|xapp|xwfp)-","[A-Za-z0-9+/=%_-]",10,"(?=[0-9])","",Le("[A-Za-z0-9+/=%_-]"),"gi"),"<token>"],[new RegExp(`(?:\\bxox[cd]-[A-Za-z0-9+/=%_-]{10,}|xox[cd]-${Le("[A-Za-z0-9+/=%_-]")}[A-Za-z0-9+/=%_-]{16,})`,"gi"),"<token>"],[No,"hooks.slack.com/<redacted>"]];var Fo=[new RegExp("(?<![A-Za-z0-9_-])(?=[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]{10}[A-Za-z0-9_-]*\\.[A-Za-z0-9_-]{10}[A-Za-z0-9_-]*)((?:[A-Za-z0-9_-]*?-)??)ey[A-Za-z0-9_-]{10}[A-Za-z0-9_-]*\\.[A-Za-z0-9_-]{10}[A-Za-z0-9_-]*\\.[A-Za-z0-9_-]{10}[A-Za-z0-9_-]*","g"),"$1<jwt>"],Ko=/\beyJ(?:[A-Za-z0-9_-]{256}|[A-Za-z0-9_-]{8,2048}\.[A-Za-z0-9_-]{10})/,vr=[[/(^|[^A-Za-z0-9+_-])AIza[A-Za-z0-9_-]{35}(?![A-Za-z0-9+=_-])/g,"$1<token>"],[/(^|[^A-Za-z0-9+_-])GOCSPX-[A-Za-z0-9_-]{28}(?![A-Za-z0-9+=_-])/g,"$1<token>"]],kr=[[/(^|[^A-Za-z0-9+_-])[sr]k_(?:live|test|prod)_(?=[A-Za-z0-9]{0,64}[0-9])[A-Za-z0-9]{24,}(?![A-Za-z0-9+=_-])/g,"$1<token>"]],Bo=[Sn.bearer,Sn.basic,...br,Sn.sk,..._r],$o=[...Er,Fo,...vr,...kr],vl=[[new RegExp(`sk-${bn(20)}[A-Za-z0-9_-]{20,}`,"g"),"<token>"],...wr.map((s)=>[new RegExp(`${s}[A-Z2-7]{16}`,"g"),"<token>"]),[/AIza[\w-]{35}/g,"<token>"],[/GOCSPX-[\w-]{28,}/g,"<token>"],[/[sr]k_(?:live|test|prod)_[A-Za-z0-9]{24,}/g,"<token>"]];function ot(s){return[...Bo,...$o].reduce((i,[d,f])=>i.replace(d,f),String(s))}var kl=[...Lo,...[...br,..._r,...Er,...vr,...kr].map(([s])=>new RegExp(s.source,s.flags.replaceAll("g",""))),Ko];function rt(s,i,d,f,p="",g="",h="g"){let S=`${i}{${d},}${p}`;return new RegExp(`(?:\\b${s}${g}${S}|${s}${f}${S})`,h)}function Le(s){return`(?=${s}{0,64}[0-9])`}function bn(s){return`(?=[A-Za-z0-9_-]{0,64}?(?=[A-Za-z0-9]{${s}})(?=[A-Za-z0-9]{0,64}[0-9])(?=[A-Za-z0-9]{0,64}[A-Za-z]))`}import{randomUUID as Ii}from"crypto";import{join as Kr}from"path";import{AsyncLocalStorage as _i}from"async_hooks";import{constants as Ei}from"fs";import{appendFile as vi,copyFile as ki,lstat as Ci,mkdir as Ri,open as Dr,readdir as Nr,readFile as Lr,stat as Pi,unlink as Ti,writeFile as kn}from"fs/promises";import{randomBytes as Wo}from"crypto";import{closeSync as jl,constants as V,fchmodSync as Fl,fstatSync as Kl,ftruncateSync as Bl,lstatSync as $l,openSync as Ul,readFileSync as Hl,renameSync as Gl,unlinkSync as Wl,writeFileSync as zl}from"fs";import{lstat as Dt,open as ct,rename as Tr,stat as zo,unlink as at,writeFile as qo}from"fs/promises";import{basename as Vo,join as Yo}from"path";var Ho=!1;function Cr(){return Ho}function Go(){return!1}function Rr({served:s}){if(!Cr())return!1;return s?!1:Go()}var Jo=new Set(["EXDEV","EPERM","EEXIST","EBUSY"]);function Xo(){return Rr({served:!1})}function Qo(s,i){return`Could not rewrite ${s} in place: this file has other names on disk (it is hard-linked, ${i} names in all), and writing it in place would change the file under every one of those names. Remove the extra links, then try again.`}function Zo(s,i){return Object.assign(new c(Qo(s,i),"in-place write refused: the target has other names (a hard link)"),{code:"EMLINK",path:s})}var ei=new Set(["EPERM","EBUSY","EACCES"]);function ti(s){return`${s}.tmp.${Wo(4).toString("hex")}`}var Ar=4,ni=50,ri=Array.from({length:Ar-1},()=>ni);var Zl=new Int32Array(new SharedArrayBuffer(4));function si(s,i,d=Ar-1){if(process.platform!=="win32")return!1;let f=n(s);return f!==void 0&&ei.has(f)&&i<d}var oi=128;async function ii(s){try{return((await Dt(s)).mode&oi)===0}catch{return!1}}async function ai(s,i,d=ri){let f=!1;for(let p=0;;p++)try{return await s(),f}catch(g){if(si(g,p,d.length)){if(p===0&&i!==void 0&&await ii(i))throw g;f=!0,await L(d[p]);continue}throw g}}function ci(s,i,d=Tr){return ai(()=>d(s,i),i)}var li=67108864,En=process.platform==="win32"?0:V.O_NONBLOCK;async function Ir(s,i,d=process.platform){return(await ui(s,i,d)).kind==="pass"}async function ui(s,i,d=process.platform){if(d!=="win32")return{kind:"pass"};try{return{kind:(await Dt(s)).isFile()?"pass":"refuse"}}catch(f){if(n(f)==="ENOENT")return{kind:i?"pass":"refuse"};return{kind:"failed",error:f}}}async function di(s,i=!1){if(!i&&!await Ir(s,!0))return{kind:"unavailable"};let d;try{d=await ct(s,process.platform==="win32"?V.O_RDONLY:V.O_RDONLY|(i?0:V.O_NOFOLLOW)|En)}catch(f){return n(f)==="ENOENT"?{kind:"absent"}:{kind:"unavailable"}}try{let f=await d.stat();if(!f.isFile()||f.size>li)return{kind:"unavailable"};return{kind:"snapshot",bytes:new Uint8Array(await d.readFile()),mode:f.mode&4095}}catch{return{kind:"unavailable"}}finally{await d.close().catch(()=>{})}}async function fi(s,i,d=!1){if(!d&&!await Ir(s,!0))return!1;let f;try{f=await ct(s,process.platform==="win32"?"w":V.O_WRONLY|V.O_CREAT|V.O_TRUNC|(d?0:V.O_NOFOLLOW)|En,i.mode)}catch{return!1}try{if(!(await f.stat()).isFile())return await f.close().catch(()=>{}),!1;return await f.writeFile(i.bytes),await f.chmod(i.mode).catch(()=>{}),await f.close(),!0}catch{return await f.close().catch(()=>{}),!1}}function Ot(s,i,d){try{if(s instanceof Error)s.message=`${s.message}; ${i!==void 0?`new contents preserved at ${i}; `:""}${d==="restored"?"original target restored":d==="removed"?"partial target removed":d==="untouched"?"target untouched":"target left partial — treat contents as torn"}`,Object.assign(s,{...i!==void 0&&{preservedTmp:i},targetOutcome:d})}catch{}return s}function wn(s){let i=n(s);return i==="EINVAL"||i==="ENOTSUP"||i==="EPERM"||i==="ENOSYS"}class _n extends Error{target;constructor(s){super("beforePublish refused the write; nothing was published");this.target=s;this.name="PublishRefusedError"}}async function pi(s,i){if(i===void 0||process.platform==="win32")return s;try{await(await ct(i,V.O_RDONLY|V.O_DIRECTORY|V.O_NOFOLLOW)).close()}catch(d){switch(n(d)){case"ENOENT":case"ELOOP":case"ENOTDIR":return s;case"EACCES":case"EPERM":if(await mi(i))return s;throw d;default:throw d}}return Yo(i,Vo(s))}async function mi(s){let i=process.getuid?.();if(i===void 0)return!1;try{return(await Dt(s)).uid!==i}catch{return!1}}var Pr=3;async function gi(s,i){if(i!=="win32")return!1;try{return await Dt(s),!0}catch(d){return n(d)==="ENOENT"?!1:{cause:d}}}function hi(s,i){return Object.assign(Error("EEXIST: name already taken (exclusive create)",typeof i==="object"?{cause:i.cause}:void 0),{code:"EEXIST",syscall:"lstat",path:s})}async function xr(s,i,d){for(let f=1;;f++){let p=ti(s),g=await gi(p,i);if(g!==!1){if(f<Pr)continue;throw hi(p,g)}try{return await d(p)}catch(h){if(n(h)==="EEXIST"&&f<Pr)continue;throw h}}}async function yi(s,i,d,f=process.platform){return xr(s,f,async(p)=>{try{return await qo(p,i,{encoding:"utf8",mode:d,flag:"wx"}),p}catch(g){if(n(g)!=="EEXIST")await at(p).catch(()=>{});throw g}})}async function Si(s,i,d=process.platform){return xr(s,d,async(f)=>({fh:await ct(f,d==="win32"?"wx":V.O_WRONLY|V.O_CREAT|V.O_EXCL,i),tmp:f}))}async function Or(s,i,d,f){return bi(s,i,{mode:d,renameFn:f})}async function bi(s,i,d){let{mode:f,createMode:p,exactMode:g,flush:h,followSymlinks:S,inPlaceOnTempCreateRefused:b,stagingDir:E,renameFn:v,beforePublish:k}=d,C=f??p,T=()=>{if(k!==void 0&&!k())throw new _n(s)},P=await pi(s,E),M=S===!0||process.platform==="win32"?0:V.O_NOFOLLOW,D,j=!1,J=!1,fe=async(B)=>{let U=await di(s,S===!0),W=U.kind==="snapshot"?U:void 0;T();let K=await ct(s,process.platform==="win32"?V.O_WRONLY|V.O_CREAT:V.O_WRONLY|V.O_CREAT|M|En,g??C),te;try{te=await K.stat()}catch(de){throw await K.close().catch(()=>{}),j=B!==void 0,Ot(de,B,"untouched")}let q=te.isCharacterDevice();if(!te.isFile()&&!q)throw await K.close().catch(()=>{}),Object.assign(Error("refusing the in-place arm on a non-regular target"),{code:"ENXIO",path:s});if(!q&&te.nlink>1&&Xo())throw await K.close().catch(()=>{}),Zo(s,te.nlink);if(k!==void 0&&!k()){if(await K.close().catch(()=>{}),U.kind==="absent"&&te.size===0&&!q)await at(s).catch(()=>{});throw new _n(s)}let Ee=!1;try{if(!q)await K.truncate(0),Ee=!0;await K.writeFile(i,{encoding:"utf8"});let de=q?void 0:g??(U.kind!=="absent"?f:void 0);if(de!==void 0)await K.chmod(de).catch(()=>{});if(h===!0)try{await K.sync()}catch(ie){if(!wn(ie))throw ie}await K.close()}catch(de){if(await K.close().catch(()=>{}),!Ee)throw j=B!==void 0,Ot(de,B,"untouched");j=B!==void 0;let qe=W!==void 0&&await fi(s,W,S===!0)?"restored":await at(s).then(()=>!0,(Ae)=>n(Ae)==="ENOENT")?"removed":"partial";throw Ot(de,B,qe)}let ve=B??D;if(ve!==void 0)await at(ve).catch(()=>{})};try{try{if(g!==void 0||h===!0){let U=await Si(P,g??C),W=U.fh;D=U.tmp;let K=!1,te;try{if(await W.writeFile(i,{encoding:"utf8"}),g!==void 0)try{await W.chmod(g)}catch(q){if(!wn(q))throw q}if(h===!0)try{await W.sync()}catch(q){if(!wn(q))throw q}}catch(q){K=!0,te=q}if(!K)J=!0;try{await W.close()}catch(q){if(!K)throw j=!0,Ot(q,D,"untouched")}if(K)throw te}else D=await yi(P,i,C),J=!0}catch(U){if(b!==!0)throw U;if(J)throw U;if(n(U)!=="EACCES")throw U;if(!await zo(s).then(()=>!0,()=>!1))throw U;await fe(void 0);return}if(D===void 0)throw Error("staging block exited without a staging file");let B=D;try{let U=v??Tr;await ci(B,s,(W,K)=>(T(),U(W,K)))}catch(U){let W=n(U);if(W===void 0||!Jo.has(W))throw U;await fe(B)}}catch(B){if(D!==void 0&&!j)await at(D).catch(()=>{});throw B}}import{constants as Mr}from"fs";var wi=process.platform==="win32"?0:Mr.O_NONBLOCK,vn=process.platform==="win32"?0:Mr.O_NOFOLLOW|wi;class Fr{read(s){return Lr(s,"utf8")}readBytes(s){return Lr(s)}write(s,i,d){return kn(s,i,{encoding:"utf8",mode:d})}async mkdir(s,i){try{await Ri(s,{recursive:!0,mode:i})}catch(d){if(n(d)!=="EEXIST")throw d}}atomicWrite(s,i,d){return Or(s,i,d)}delete(s){return Ti(s)}list(s){return Nr(s)}append(s,i,d){return vi(s,i,{encoding:"utf8",mode:d})}writeExclusive(s,i,d){return kn(s,i,{encoding:"utf8",flag:"wx",mode:d})}writeBytesExclusive(s,i,d){return kn(s,i,{flag:"wx",mode:d})}copy(s,i){return ki(s,i)}async stat(s){return{mtimeMs:(await Pi(s)).mtimeMs}}async lstat(s){try{let i=await Ci(s);return{isSymbolicLink:i.isSymbolicLink(),isFile:i.isFile(),isDirectory:i.isDirectory(),mtimeMs:i.mtimeMs,nlink:i.nlink}}catch(i){if(n(i)==="ENOENT")return;throw i}}async listEntries(s){return(await Nr(s,{withFileTypes:!0})).map((d)=>({name:d.name,isDirectory:d.isDirectory(),isFile:d.isFile()}))}async readRange(s,i,d){Cn("readRange","offset",i),Cn("readRange","length",d);let f=await Dr(s,"r");try{return await jr(f,i,d)}finally{await f.close()}}async readTail(s,i,d){Cn("readTail","maxBytes",i);let f=d?.noFollow?Ei.O_RDONLY|vn:"r",p=await Dr(s,f);try{let g=await p.stat();if(d?.noFollow&&!g.isFile())throw Object.assign(Error("ENXIO: not a regular file"),{code:"ENXIO",path:s});let{size:h}=g,S=Math.min(i,h);return await jr(p,h-S,S)}finally{await p.close()}}}function Cn(s,i,d){if(!Number.isInteger(d)||d<0)throw RangeError(`${s}: ${i} must be a non-negative integer, got ${d}`)}async function jr(s,i,d){if(d===0)return Buffer.alloc(0);let f=Buffer.alloc(d),p=0;while(p<d){let{bytesRead:g}=await s.read(f,p,d-p,i+p);if(g===0)break;p+=g}return p===d?f:Buffer.from(f.subarray(0,p))}var Ai=new _i;function Rn(){return Ai.getStore()??new Fr}class Br{debugFilePath=void 0;initPromise=null;logStem=null}var xi=new a(()=>new Br);function $r(){return xi.of(R().host)}function Ur(s){if(s.initPromise)return s.initPromise;if(!it("DEBUG_CLAUDE_AGENT_SDK"))return s.debugFilePath=null,s.initPromise=Promise.resolve(),s.initPromise;let i=Kr(m(),"debug");return s.logStem=`sdk-${Ii()}`,s.debugFilePath=Kr(i,`${s.logStem}.txt`),process.stderr.write(`SDK debug logs: ${s.debugFilePath}
`),s.initPromise=Rn().mkdir(i).catch(()=>{}),s.initPromise}function Oi(s){return s.logStem===null?null:{namespace:"log",sessionId:s.logStem,channel:"debug"}}function Hr(){let s=$r();return Ur(s),s.debugFilePath??null}function ne(s,i){let d=$r();if(d.debugFilePath===null)return;let p=`${new Date().toISOString()} ${s}
`;Ur(d).then(()=>{if(i!==void 0){let g=Oi(d);if(g!==null)i.append(g,[{data:p}]).catch(()=>{});return}if(d.debugFilePath)Rn().append(d.debugFilePath,p).catch(()=>{})})}function Mi(s){let i=s.trim();return i.startsWith("{")&&i.endsWith("}")}function Gr(s,i){let d={...s};if(!i)return d;let f=i.enabled===!0&&i.failIfUnavailable===void 0?{...i,failIfUnavailable:!0}:i,p=d.settings;if(p&&!Mi(p))throw Error("Cannot use both a settings file path and the sandbox option. Include the sandbox configuration in your settings file instead.");let g={sandbox:f};if(p)try{g={...O(p),sandbox:f}}catch{}return d.settings=t(g),d}function F(s,i){return`${s}=${i}`}function Nt(s,i){let d=String(i);if(d.length>1&&d.startsWith("-"))return[F(s,d)];return[s,d]}function Wr(s,i,d){s.push(...Nt(`--${i}`,d))}var Fi=2000,Pn=2048,Vr="sdk-exit-after-stderr-drained",Ki=200;function Tn(s){return s==="exit"?Vr:s}class Yr{#e=new Set;#t=!1;#n=()=>this.killAll();track(s){if(this.#e.add(s),!this.#t)this.#t=!0,process.on("exit",this.#n)}untrack(s){this.#e.delete(s)}isTracking(s){return this.#e.has(s)}get size(){return this.#e.size}killAll(){for(let s of this.#e)if(!s.killed)if(process.platform==="win32")try{s.stdin.end()}catch{}else s.kill("SIGTERM")}reset(){process.off("exit",this.#n),this.#t=!1,this.#e.clear()}}var Ft=new Yr,Bi=/[(),\u0000-\u001f\u007f-\u009f]/;function $i(s){if(typeof s!=="string"||s.trim()==="")throw Error("Skill names must be non-empty strings.");if(!Ge(s))throw new c(`Invalid skill name ${t(s)}: the name contains an unpaired surrogate, which cannot survive the UTF-8 encoding of the CLI invocation; no skill discovered from the filesystem can have such a name.`,"skill name with unpaired surrogate rejected");if(s!==s.trim())throw new c(`Invalid skill name ${t(s)}: leading or trailing whitespace is not allowed — the Skill tool trims the invoked name, so a padded rule can never match. Remove the padding.`,"skill name with surrounding whitespace rejected");if(Bi.test(s))throw new c(`Invalid skill name ${t(s)}: parentheses, commas, and control characters are not allowed in skill names. Skill names match the skill's directory name (or 'plugin:skill' for plugin-qualified skills); rename the skill if its directory name contains these characters.`,"invalid skill name rejected");if(s==="*")throw Error("Invalid skill name '*': use skills: 'all' to enable every skill.");if(s.endsWith(":*")||s.endsWith(" *"))throw new c(`Invalid skill name ${t(s)}: wildcard-suffix names are not allowed; list each skill by its exact name.`,"wildcard-suffix skill name rejected");if(s.startsWith("/"))throw new c(`Invalid skill name ${t(s)}: skill names may not start with '/'. Skills are invoked as slash commands, but the skills option takes the skill's canonical name — the directory name, or 'plugin:skill'.`,"skill name with leading slash rejected");if(s.includes("\\\\"))throw new c(`Invalid skill name ${t(s)}: consecutive backslashes are not allowed — the permission-rule parser collapses escaped backslashes, so the rule would name a different skill. Rename the skill.`,"skill name with consecutive backslashes rejected");if(s.endsWith("\\"))throw new c(`Invalid skill name ${t(s)}: names may not end with an unpaired backslash.`,"skill name with unpaired trailing backslash rejected");return s}class In{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitEventDelivered=!1;stderrTail="";exitListeners=[];abortHandler;forwardedAbort=nt();pendingWrites=[];pendingEndInput=!1;spawnResolve;spawnReject;spawnPromise;constructor(s){this.options=s;if(this.abortController=s.abortController||nt(),s.deferSpawn)this.spawnPromise=new Promise((i,d)=>{this.spawnResolve=i,this.spawnReject=d}),this.spawnPromise.catch(()=>{});else this.initialize()}spawn(){try{this.initialize()}catch(i){throw this.spawnAbort(I(i)),i}let s=this.pendingWrites;if(this.pendingWrites=[],this.spawnResolve)this.spawnResolve(),this.spawnResolve=void 0,this.spawnReject=void 0;for(let i of s)this.write(i);if(this.pendingEndInput)this.pendingEndInput=!1,this.processStdin?.end()}spawnAbort(s){if(this.spawnReject)this.spawnReject(s),this.spawnReject=void 0,this.spawnResolve=void 0,this.pendingWrites=[]}updateEnv(s){if(this.options.env)Object.assign(this.options.env,s);else this.options.env={...s}}updateResume(s){this.options.resume=s}getDefaultExecutable(){return ge()?"bun":"node"}spawnLocalProcess(s){let{command:i,args:d,cwd:f,env:p,signal:g}=s,h=Di(i,d,{cwd:f,stdio:["pipe","pipe","pipe"],signal:g,env:p,windowsHide:!0});if(h.pid!==void 0&&this.options.onProcessSpawned)try{this.options.onProcessSpawned(h.pid)}catch(M){ne(`onProcessSpawned threw: ${y(M)}`)}let S=new ji("utf8"),b=!1,E=!1,v=!1,k,C=o(p.DEBUG_CLAUDE_AGENT_SDK)||this.options.stderr!==void 0;h.stderr.on("data",(M)=>{if(v)return;let D=S.write(M);if(this.stderrTail+=D,this.stderrTail.length>2*Pn)this.stderrTail=ht(ot(this.stderrTail),Pn);if(C)ne(D),this.options.stderr?.(D)}),h.stderr.on("error",(M)=>{ne(`[ProcessTransport] stderr read failed: ${M.code??M.message}`)});let T=()=>{if(v)return;if(v=!0,k)clearTimeout(k);h.emit(Vr,h.exitCode,h.signalCode);let M=h.stderr;if(Wi(M))M.unref();else M.destroy()};return h.stderr.once("close",()=>{if(this.stderrTail+=S.end(),b=!0,E)T()}),h.once("exit",()=>{if(E=!0,this.ready=!1,b)T();else k=setTimeout(T,Ki)}),{stdin:h.stdin,stdout:h.stdout,get killed(){return h.killed},get exitCode(){return h.exitCode},get signalCode(){return h.signalCode},kill:h.kill.bind(h),on:(M,D)=>h.on(Tn(M),D),once:(M,D)=>h.once(Tn(M),D),off:(M,D)=>h.off(Tn(M),D)}}initialize(){try{let{additionalDirectories:s=[],projectConfigRoot:i,agent:d,betas:f,cwd:p,executable:g=this.getDefaultExecutable(),executableArgs:h=[],extraArgs:S={},pathToClaudeCodeExecutable:b,env:E={...process.env},thinkingConfig:v,maxTurns:k,maxBudgetUsd:C,taskBudget:T,model:P,fallbackModel:M,jsonSchema:D,permissionMode:j,allowDangerouslySkipPermissions:J,permissionPromptToolName:fe,permissionPrompts:B,continueConversation:U,resume:W,settingSources:K,skills:te,disallowedTools:q=[],tools:Ee,mcpServers:ve,strictMcpConfig:de,canUseTool:ie,includePartialMessages:qe,plugins:Ae,pluginsViaInitialize:_t,sandbox:ln}=this.options,{allowedTools:ke=[]}=this.options;if(te!==void 0){let N=te==="all"?["Skill"]:te.map((se)=>`Skill(${$i(se)})`),ae=new Set(ke);ke=[...ke,...N.filter((se)=>!ae.has(se))]}let x=["--output-format","stream-json","--verbose","--input-format","stream-json"];if(v){switch(v.type){case"enabled":if(v.budgetTokens===void 0)x.push("--thinking=adaptive");else x.push(F("--max-thinking-tokens",v.budgetTokens));break;case"disabled":x.push("--thinking=disabled");break;case"adaptive":x.push("--thinking=adaptive");break}if(v.type!=="disabled"&&v.display)x.push(F("--thinking-display",v.display))}if(this.options.effort)x.push(F("--effort",this.options.effort));if(k)x.push(F("--max-turns",k));if(C!==void 0)x.push(F("--max-budget-usd",C));if(T)x.push(F("--task-budget",T.total));if(P)x.push(F("--model",P));if(d)x.push(F("--agent",d));if(f&&f.length>0)x.push(F("--betas",f.join(",")));if(D)x.push(F("--json-schema",t(D)));if(this.options.debugFile)x.push(F("--debug-file",this.options.debugFile));else if(this.options.debug)x.push("--debug");if(!this.options.debugFile&&!this.options.spawnClaudeCodeProcess){let N=Hr();if(N)x.push(F("--debug-file",N))}if(ie){if(fe)throw Error("canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.");x.push("--permission-prompt-tool=stdio")}else if(fe)x.push(F("--permission-prompt-tool",fe));if(B)x.push(F("--permission-prompts",B));if(U)x.push("--continue");if(W)x.push(F("--resume",W));if(this.options.channels&&this.options.channels.length>0)for(let N of this.options.channels)x.push(F("--channels",N));if(ke.length>0)x.push(F("--allowedTools",ke.join(",")));if(q.length>0)x.push(F("--disallowedTools",q.join(",")));if(Ee!==void 0)if(Array.isArray(Ee))x.push(F("--tools",Ee.join(",")));else x.push("--tools=default");if(ve&&Object.keys(ve).length>0)x.push(...Nt("--mcp-config",t({mcpServers:ve})));if(K!==void 0)x.push(F("--setting-sources",K.join(",")));if(de)x.push("--strict-mcp-config");if(j)x.push(F("--permission-mode",j));if(J)x.push("--allow-dangerously-skip-permissions");if(M){if(P&&M===P)throw Error("Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.");x.push(F("--fallback-model",M))}if(this.options.includeHookEvents)x.push("--include-hook-events");if(qe)x.push("--include-partial-messages");if(this.options.sessionMirror)x.push("--session-mirror");if(i!==void 0)x.push(F("--project-config-root",i));for(let N of s)x.push(F("--add-dir",N));if(_t)x.push("--await-initialize");else if(Ae&&Ae.length>0)for(let N of Ae)if(N.type==="local")x.push(N.skipMcpDiscovery?F("--plugin-dir-no-mcp",N.path):F("--plugin-dir",N.path));else throw Error(`Unsupported plugin type: ${N.type}`);if(this.options.forkSession)x.push("--fork-session");if(this.options.resumeSessionAt)x.push(F("--resume-session-at",this.options.resumeSessionAt));if(this.options.resumeDropsTurn!==void 0)x.push(F("--resume-drops-turn",this.options.resumeDropsTurn));if(this.options.sessionId)x.push(F("--session-id",this.options.sessionId));if(this.options.persistSession===!1)x.push("--no-session-persistence");if(this.options.managedSettings)x.push(...Nt("--managed-settings",this.options.managedSettings));let vt={...S??{}};if(this.options.settings)vt.settings=this.options.settings;let kt=Gr(vt,ln);for(let[N,ae]of Object.entries(kt))if(ae===null)x.push(`--${N}`);else Wr(x,N,ae);if(!E.CLAUDE_CODE_ENTRYPOINT)E.CLAUDE_CODE_ENTRYPOINT="sdk-ts";if(delete E.NODE_OPTIONS,o(E.DEBUG_CLAUDE_AGENT_SDK))E.DEBUG="1";else delete E.DEBUG;let Ye=Ui(b),Je=Ye?b:g,Xe=Ye?[...h,...x]:[...h,b,...x],Qe={command:Je,args:Xe,cwd:p,env:E,signal:this.forwardedAbort.signal};if(this.options.spawnClaudeCodeProcess)ne(`Spawning Claude Code (custom): ${Je} ${Xe.join(" ")}`),this.process=this.options.spawnClaudeCodeProcess(Qe);else ne(`Spawning Claude Code: ${Je} ${Xe.join(" ")}`),this.process=this.spawnLocalProcess(Qe);if(this.processStdin=this.process.stdin,this.processStdout=this.process.stdout,this.processStdin.on("error",(N)=>{ne(`[ProcessTransport] stdin write failed (child likely exited): ${N.code??N.message}`),this.ready=!1}),Ft.track(this.process),this.abortHandler=()=>this.close(),this.abortController.signal.addEventListener("abort",this.abortHandler),this.abortController.signal.aborted)this.close();let xe=this.process;xe.on("error",(N)=>{this.ready=!1;let ae=N,se=ae.syscall!==void 0?ae.syscall.startsWith("spawn"):mt(N);if(se&&!xe.killed)Ft.untrack(xe);if(this.abortController.signal.aborted)this.exitError=Kt(),A(N,{telemetryMessage:"Claude Code process aborted by user",errorClass:"aborted"});else if(se&&mt(N)){let{message:Oe,telemetryMessage:un,errorClass:Ct}=Hi(b,Ye),le={telemetryMessage:`${un}${An(N)}`,errorClass:Ct,code:Fe(N)};this.exitError=A(ReferenceError(Oe),le),A(N,le),ne(this.exitError.message)}else{let Oe={telemetryMessage:se?`Failed to spawn Claude Code process${An(N)}`:`Claude Code process error${An(N)}`,errorClass:se?"spawn_failed":"process_error",code:Fe(N)};this.exitError=A(Error(`Failed to spawn Claude Code process: ${ot(N.message)}`),Oe),A(N,Oe),ne(this.exitError.message)}}),xe.on("exit",(N,ae)=>{if(this.exitEventDelivered=!0,this.ready=!1,this.abortController.signal.aborted)this.exitError=Kt();else{let se=this.getProcessExitError(N,ae);if(se)this.exitError=se,ne(se.message)}}),this.ready=!this.abortController.signal.aborted}catch(s){throw this.ready=!1,s}}getProcessExitError(s,i){if(s!==0&&s!==null){let d=Number.isInteger(s)?s:void 0;return A(Error(`Claude Code process exited with code ${s}${this.formatStderrTail()}`),{telemetryMessage:`Claude Code process exited with code ${d??"unknown"}`,errorClass:"process_exited_nonzero",exitCode:d})}else if(i){let d=/^SIG[A-Z0-9]{1,8}$/.test(i)?i:"unknown";return A(Error(`Claude Code process terminated by signal ${i}${this.formatStderrTail()}`),{telemetryMessage:`Claude Code process terminated by signal ${d}`,errorClass:"process_killed_by_signal",signal:d})}return}formatStderrTail(){let s=ht(ot(this.stderrTail),Pn).trim();return s?`. stderr: ${s}`:""}write(s){if(this.abortController.signal.aborted)throw zr();if(this.spawnResolve){this.pendingWrites.push(s);return}if(!this.ready||!this.processStdin)throw Error("ProcessTransport is not ready for writing");if(this.processStdin.writableEnded){ne("[ProcessTransport] Dropping write to ended stdin stream");return}if(this.process?.killed||this.process?.exitCode!==null)throw Error("Cannot write to terminated process");if(this.exitError)throw A(Error(`Cannot write to process that exited with error: ${this.exitError.message}`),{telemetryMessage:`Cannot write to process that exited with error: ${Tt(this.exitError)??"untagged exit error"}`,errorClass:qr(this.exitError,"errorClass"),code:Fe(this.exitError),exitCode:Gi(this.exitError),signal:qr(this.exitError,"signal")});ne(`[ProcessTransport] Writing to stdin: ${s.substring(0,100)}`);try{if(!this.processStdin.write(s))ne("[ProcessTransport] Write buffer full, data queued")}catch(i){throw this.ready=!1,Error(`Failed to write to process stdin: ${y(i)}`)}}[Symbol.dispose](){this.close()}close(){if(this.spawnAbort(this.abortController.signal.aborted?Kt():Error("Query closed before spawn")),this.processStdin)this.processStdin.end(),this.processStdin=void 0;if(this.abortHandler)this.abortController.signal.removeEventListener("abort",this.abortHandler),this.abortHandler=void 0;let s=this.process?.exitCode??null,i=this.process?.signalCode??null,d=!this.exitEventDelivered&&(s!==null&&s>=0||i!==null),f;if(d){if(this.exitEventDelivered=!0,f=this.abortController.signal.aborted?Kt():this.getProcessExitError(s,i),f&&!this.exitError)this.exitError=f}let p=this.exitListeners;this.exitListeners=[];for(let{callback:S,handler:b}of p)if(this.process?.off("exit",b),d)try{S(f)}catch(E){ne(`[ProcessTransport] onExit callback threw during close(): ${y(E)}`)}let g=()=>{if(this.abortController.signal.aborted)this.forwardedAbort.abort(this.abortController.signal.reason)},h=this.process;if(h&&!h.killed&&h.exitCode===null&&h.signalCode==null)setTimeout((S,b)=>{if(S.exitCode!==null||S.signalCode!=null){b();return}if(process.platform==="win32"){setTimeout((E,v)=>{if(E.exitCode===null)E.kill("SIGKILL");v()},5000,S,b).unref();return}S.kill("SIGTERM"),setTimeout((E)=>{if(E.exitCode===null)E.kill("SIGKILL")},5000,S).unref(),b()},Fi,h,g).unref(),h.once("exit",()=>Ft.untrack(h));else if(h)Ft.untrack(h),g();this.ready=!1}isReady(){return this.ready}async*readMessages(){if(this.spawnPromise)await this.spawnPromise,this.spawnPromise=void 0;if(!this.processStdout)throw Error("ProcessTransport output stream not available");if(this.exitError)throw this.exitError;let s=Li({input:this.processStdout}),i=this.process?(()=>{let d=this.process,f=()=>s.close();return d.on("error",f),()=>d.off("error",f)})():void 0;if(this.exitError)s.close();try{for await(let d of s)if(d.trim()){let f;try{f=O(d)}catch(p){ne(`Non-JSON stdout: ${d}`);continue}yield f}if(this.exitError)throw this.exitError;await this.waitForExit()}finally{i?.(),s.close()}}endInput(){if(this.spawnResolve){this.pendingEndInput=!0;return}if(this.processStdin)this.processStdin.end()}onExit(s){if(!this.process)return()=>{};let i=(d,f)=>{let p=this.getProcessExitError(d,f);s(p)};return this.process.on("exit",i),this.exitListeners.push({callback:s,handler:i}),()=>{if(this.process)this.process.off("exit",i);let d=this.exitListeners.findIndex((f)=>f.handler===i);if(d!==-1)this.exitListeners.splice(d,1)}}async waitForExit(){if(this.exitError)throw this.exitError;if(!this.process||this.process.exitCode===0||this.process.killed&&this.exitEventDelivered)return;return new Promise((s,i)=>{let d=(p,g)=>{if(this.abortController.signal.aborted){i(zr());return}let h=this.getProcessExitError(p,g);if(h)i(h);else s()};this.process.once("exit",d);let f=(p)=>{this.process.off("exit",d),i(p)};this.process.once("error",f),this.process.once("exit",()=>{this.process.off("error",f)})})}}function Ui(s){return![".js",".mjs",".tsx",".ts",".jsx"].some((d)=>s.endsWith(d))}function Hi(s,i){let d=i?"native binary":"executable",f=ot(s);if(Ni(s))return{message:i?`Claude Code native binary at ${f} exists but failed to launch. This usually means the binary does not match this system's libc — e.g. spawning a musl-linked binary on a glibc Linux host fails because the musl dynamic loader (/lib/ld-musl-*) is missing. Specify a matching binary with options.pathToClaudeCodeExecutable.`:`Claude Code executable at ${f} exists but failed to launch.`,telemetryMessage:`Claude Code ${d} exists at the configured path but failed to launch`,errorClass:"executable_launch_failed"};return{message:i?`Claude Code native binary not found at ${f}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${f}. Is options.pathToClaudeCodeExecutable set?`,telemetryMessage:`Claude Code ${d} not found at the configured path`,errorClass:"executable_not_found"}}function An(s){let i=Fe(s);return i===void 0?"":` (${i})`}function Kt(){return A(new ce("Claude Code process aborted by user"),{telemetryMessage:"Claude Code process aborted by user",errorClass:"aborted"})}function zr(){return A(new ce("Operation aborted"),{telemetryMessage:"Operation aborted",errorClass:"aborted"})}function qr(s,i){let d=Object.hasOwn(s,i)?Reflect.get(s,i):void 0;return typeof d==="string"?d:void 0}function Gi(s){let i=Object.hasOwn(s,"exitCode")?Reflect.get(s,"exitCode"):void 0;return typeof i==="number"?i:void 0}function Wi(s){return typeof Reflect.get(s,"unref")==="function"}import{existsSync as zi}from"fs";var je="@anthropic-ai/claude-agent-sdk";function qi(){if(process.platform!=="linux")return!1;let s=typeof process.report?.getReport==="function"?process.report.getReport():null;return s!=null&&s.header?.glibcVersionRuntime===void 0}function Jr(s,i={}){let d=i.platform??process.platform,f=i.arch??process.arch,p=i.exists??zi,g=i.preferMusl??qi(),h="claude",S=d==="win32"?".exe":"",E=(d==="android"?[`${je}-linux-${f}-android`]:d==="linux"?g?[`${je}-linux-${f}-musl`,`${je}-linux-${f}`]:[`${je}-linux-${f}`,`${je}-linux-${f}-musl`]:[`${je}-${d}-${f}`]).map((v)=>`${v}/claude${S}`);for(let v of E)try{let k=s(v);if(p(k))return k}catch{}return null}var Vi=["signed_out","identity_changed","transient","refresh_failed"];function Xr(s){return Vi.some((i)=>i===s)}var $t=600000;class xn{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(s){this.returned=s}get ended(){return this.isDone}[Symbol.asyncIterator](){if(this.started)throw Error("Stream can only be iterated once");return this.started=!0,this}next(){if(this.queue.length>0)return Promise.resolve({done:!1,value:this.queue.shift()});if(this.isDone)return Promise.resolve({done:!0,value:void 0});if(this.hasError)return Promise.reject(this.hasError);return new Promise((s,i)=>{this.readResolve=s,this.readReject=i})}enqueue(s){if(this.readResolve){let i=this.readResolve;this.readResolve=void 0,this.readReject=void 0,i({done:!1,value:s})}else this.queue.push(s)}done(){if(this.isDone=!0,this.readResolve){let s=this.readResolve;this.readResolve=void 0,this.readReject=void 0,s({done:!0,value:void 0})}}error(s){if(this.hasError=s,this.readReject){let i=this.readReject;this.readResolve=void 0,this.readReject=void 0,i(s)}}return(){if(this.isDone=!0,this.returned)this.returned();return Promise.resolve({done:!0,value:void 0})}}function On(s,i){ee("tengu_feature_ok",{...i,feature_name:X(s)})}function Yi(s,i,d){ee("tengu_feature_bad",{...d,feature_name:X(s),error_code:gt(i)})}function Ht(s,i,d){ee("tengu_feature_sad",{...d,feature_name:X(s),error_code:gt(i)})}async function Z(s,i,d){try{let f=await i();return On(s),f}catch(f){throw Yi(s,d?.(f)??"error"),f}}function Qr(s){return"method"in s&&"id"in s&&s.id!==null}var Zr=Object.freeze({}),es=Object.freeze({name:"claude-code",title:"Claude Code",description:"Anthropic's agentic coding tool",websiteUrl:"https://claude.com/claude-code"}),Yu=Symbol("swallow");class Mn{sendMcpMessage;isClosed=!1;constructor(s){this.sendMcpMessage=s}onclose;onerror;onmessage;async start(){}async send(s){if(this.isClosed)throw Error("Transport is closed");this.sendMcpMessage(s)}async close(){if(this.isClosed)return;this.isClosed=!0,this.onclose?.()}}var ts=["remote_tool_call","remote_plumbing_call","remote_tools_probe","remote_tools_reannounce"];var ns="2025-11-25";var Ji="notifications/tools/list_changed";function rs(s){return r(s)&&!("id"in s)&&s.method===Ji}function Gt(s){return typeof s==="number"&&Number.isInteger(s)&&s>0?s:void 0}function Dn(s){if(!r(s))return{settings:{},ignored:[]};let{timeout:i,disableAutoBackground:d}=s,f=Gt(i),p=[];if(i!==void 0&&f===void 0)p.push("timeout");if(d!==void 0&&typeof d!=="boolean")p.push("disableAutoBackground");return{settings:{...f!==void 0&&{timeout:f},...d===!0&&{disableAutoBackground:d}},ignored:p}}var ss=250,zt="sdk-manifest-capture:",Ke=Symbol("suppressControlResponse");class qt{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;onElicitation;getOAuthToken;getHostAuthToken;onUserDialog;verbatimPrompts;runEndCeilingMs;pendingControlResponses=new Map;unmatchedControlResponses=new Map;static UNMATCHED_CONTROL_RESPONSES_MAX=1024;cleanupPerformed=!1;cleanupCause;sdkMessages;inputStream=new xn;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;initHooksPayload;sdkMcpServers=new Map;initializeWritten;initializeHasBeenWritten=!1;markInitializeWritten;writingFirstInitialize=!1;stopSdkMcpManifestCapture;sdkMcpToolsChangedDuringCapture=new Set;pendingMcpResponses=new Map;runEndedResolve;runEnded=!1;resultReceived=!1;runEndCeilingTimer;sessionState;lastErrorResultText;errorTextBeforeModelLessTurns;modelLessTurnEnded=!1;latestCommands;transcriptMirrorBatcher;cleanupCallbacks=[];cleanupPromise;setIsSingleUserTurn(s){this.isSingleUserTurn=s}setTranscriptMirrorBatcher(s){this.transcriptMirrorBatcher=s}reportMirrorError(s,i){let d={type:"system",subtype:"mirror_error",error:i,key:s,uuid:Ne(),session_id:s.sessionId};this.inputStream.enqueue(d)}addCleanupCallback(s){if(this.cleanupPerformed)s();else this.cleanupCallbacks.push(s)}isClosed(){return this.cleanupPerformed}hasBidirectionalNeeds(){return this.sdkMcpServers.size>0||this.hooks!==void 0&&Object.keys(this.hooks).length>0||this.canUseTool!==void 0||this.onElicitation!==void 0||this.onUserDialog!==void 0||this.getOAuthToken!==void 0||this.getHostAuthToken!==void 0||this.workSecretAnswerer!==void 0}remoteControlCallGeneration=0;uiHost;workSecretAnswerer;constructor(s,i,d,f,p,g=new Map,h,S,b,E,v,k,C=!1,T=$t){this.transport=s;this.isSingleUserTurn=i;this.canUseTool=d;this.hooks=f;this.abortController=p;this.jsonSchema=h;this.initConfig=S;this.onElicitation=b;this.getOAuthToken=E;this.getHostAuthToken=v;this.onUserDialog=k;this.verbatimPrompts=C;this.runEndCeilingMs=T;for(let[P,M]of g)this.connectSdkMcpServer(P,M);this.sdkMessages=this.readSdkMessages(),this.readMessages(),this.initializeWritten=new Promise((P)=>{this.markInitializeWritten=()=>{this.initializeHasBeenWritten=!0,P()}}),this.initialization=this.initialize({first:!0}),this.initialization.catch(()=>{})}setError(s){this.inputStream.error(s)}async stopTask(s){await this.request({subtype:"stop_task",task_id:s})}async backgroundTasks(s){return(await this.request({subtype:"background_tasks",tool_use_id:s})).response.backgrounded??!0}close(){this.cleanup()}cleanup(s){if(this.clearRunEndCeiling(),this.cleanupPromise)return this.cleanupPromise;return this.cleanupPerformed=!0,this.cleanupCause=s,this.stopSdkMcpManifestCapture?.(),this.cleanupPromise=this.performCleanup(s),this.cleanupPromise}async performCleanup(s){for(let i of this.cleanupCallbacks)try{i()}catch{}if(this.cleanupCallbacks=[],this.transcriptMirrorBatcher)try{await this.transcriptMirrorBatcher.flush()}catch{}try{for(let i of this.cancelControllers.values())i.abort();this.cancelControllers.clear(),this.transport.close()}catch(i){e(`[Query.cleanup] transport.close() failed: ${y(i)}`,{level:"error"})}try{let i=s??Nn();for(let{reject:d}of this.pendingControlResponses.values())d(i);this.pendingControlResponses.clear(),this.unmatchedControlResponses.clear();for(let{reject:d}of this.pendingMcpResponses.values())d(i);this.pendingMcpResponses.clear(),this.hookCallbacks.clear();for(let{transport:d}of this.sdkMcpServers.values())d.close().catch(()=>{});if(this.sdkMcpServers.clear(),s)this.inputStream.error(s);else this.inputStream.done()}catch(i){}if(this.transport.waitForExit){let i=new AbortController;try{await Promise.race([this.transport.waitForExit(),L(2000,i.signal)])}catch{}finally{i.abort()}}}next(...[s]){return this.sdkMessages.next(...[s])}async return(s){return await this.cleanup(),this.sdkMessages.return(s)}async throw(s){return await this.cleanup(),this.sdkMessages.throw(s)}[Symbol.asyncIterator](){return this.sdkMessages}async[Symbol.asyncDispose](){await this.cleanup()}async readMessages(){try{for await(let s of this.transport.readMessages()){if(s.type==="control_response"){let i=this.pendingControlResponses.get(s.response.request_id);if(i)i.handler(s.response);else{if(this.unmatchedControlResponses.size>=qt.UNMATCHED_CONTROL_RESPONSES_MAX){let d=this.unmatchedControlResponses.keys().next().value;if(d!==void 0)this.unmatchedControlResponses.delete(d)}this.unmatchedControlResponses.set(s.response.request_id,s.response)}continue}else if(s.type==="control_request"){this.handleControlRequest(s);continue}else if(s.type==="control_cancel_request"){this.handleControlCancelRequest(s);continue}else if(s.type==="keep_alive")continue;else if(s.type==="transcript_mirror"){this.transcriptMirrorBatcher?.enqueue(s.filePath,s.entries);continue}if(s.type==="system"&&s.subtype==="commands_changed"&&Array.isArray(s.commands))this.latestCommands=s.commands;if(s.type==="system"&&(s.subtype==="post_turn_summary"||s.subtype==="task_summary"||s.subtype==="session_metadata")){this.inputStream.enqueue(s);continue}if(s.type==="active_goal"){this.inputStream.enqueue(s);continue}if(s.type==="autocompact_state"){this.inputStream.enqueue(s);continue}if(s.type==="result"){if(this.transcriptMirrorBatcher)await this.transcriptMirrorBatcher.flush();let i=s.is_error?s.subtype==="success"?s.result:s.errors.map((d)=>d.trim()).filter(Boolean).join("; "):void 0;if(this.lastErrorResultText=i||void 0,this.modelLessTurnEnded=s.subtype==="success"&&!s.is_error&&s.num_turns===0&&s.result==="",!this.modelLessTurnEnded)this.errorTextBeforeModelLessTurns=this.lastErrorResultText;if(this.resultReceived=!0,this.sessionState===void 0||this.sessionState==="idle"||!this.hasBidirectionalNeeds())this.endRun();else this.armRunEndCeiling()}else if(s.type==="system"&&s.subtype==="session_state_changed"){if(this.sessionState=s.state,s.state==="idle"){if(this.resultReceived)this.endRun()}else if(!(this.isSingleUserTurn&&this.runEnded)){if(this.runEnded=!1,s.state==="requires_action")this.clearRunEndCeiling();else if(this.resultReceived)this.armRunEndCeiling()}if("sdk_host_only"in s&&s.sdk_host_only===!0)continue}else{if(this.lastErrorResultText=void 0,s.type==="system"&&s.subtype==="init")this.modelLessTurnEnded=!1;else if(s.type!=="system"||s.subtype==="compact_boundary")this.errorTextBeforeModelLessTurns=void 0,this.modelLessTurnEnded=!1;if((s.type==="assistant"||s.type==="stream_event")&&s.parent_tool_use_id===null&&!(this.isSingleUserTurn&&this.runEnded))this.runEnded=!1,this.clearRunEndCeiling()}this.inputStream.enqueue(s)}if(this.transcriptMirrorBatcher)await this.transcriptMirrorBatcher.flush();this.inputStream.done(),this.cleanup()}catch(s){if(this.transcriptMirrorBatcher)await this.transcriptMirrorBatcher.flush();let i=this.lastErrorResultText??(this.modelLessTurnEnded?this.errorTextBeforeModelLessTurns:void 0);if(i!==void 0&&!(s instanceof ce)&&s?.name!=="SSEHttpError"){let d=A(Error(`Claude Code returned an error result: ${i}`),{telemetryMessage:"Claude Code returned an error result",errorClass:"error_result"});e(`[Query.readMessages] Replacing exit error with result text. Original: ${y(s)}`),this.inputStream.error(d),this.cleanup(d);return}this.inputStream.error(s),this.cleanup(s)}}async handleControlRequest(s){if(this.cleanupPerformed){e(`[Query.handleControlRequest] Request ${s.request_id} (${s.request.subtype}) arrived after close — skipping`);return}if(this.cancelControllers.has(s.request_id)){e(`[Query.handleControlRequest] Duplicate delivery of in-flight request ${s.request_id} (${s.request.subtype}) — skipping`);return}let i=new AbortController;this.cancelControllers.set(s.request_id,i);try{let d;try{let f=await this.processControlRequest(s,i.signal);if(this.cleanupPerformed)return;if(f===Ke)return;let p={type:"control_response",response:{subtype:"success",request_id:s.request_id,response:f}};d=t(p)+`
`}catch(f){if(this.cleanupPerformed)return;let p={type:"control_response",response:{subtype:"error",request_id:s.request_id,error:y(f)}};d=t(p)+`
`}try{await Promise.resolve(this.transport.write(d))}catch(f){e(`[Query.handleControlRequest] Response write failed: ${y(f)}`,{level:"error"})}}finally{if(this.cancelControllers.get(s.request_id)===i)this.cancelControllers.delete(s.request_id)}}handleControlCancelRequest(s){let i=this.cancelControllers.get(s.request_id);if(i)i.abort(),this.cancelControllers.delete(s.request_id)}async processControlRequest(s,i){if(ts.some((d)=>d===s.request.subtype))return e(`[Query.processControlRequest] ${s.request.subtype} ${s.request_id} is for the machine serving this session's tools — leaving it unanswered`),Ke;if(s.request.subtype==="can_use_tool"){if(!this.canUseTool)throw Error("canUseTool callback is not provided.");let d=s.request.computer_folder,f=await this.canUseTool(s.request.tool_name,s.request.input,{signal:i,suggestions:s.request.permission_suggestions,blockedPath:s.request.blocked_path,...s.request.mcp_server&&{mcpServer:{name:s.request.mcp_server.name,source:s.request.mcp_server.source}},decisionReason:s.request.decision_reason,...typeof s.request.decision_reason_type==="string"&&{decisionReasonType:s.request.decision_reason_type},...typeof s.request.decision_reason_code==="string"&&{decisionReasonCode:s.request.decision_reason_code},title:s.request.title,displayName:s.request.display_name,description:s.request.description,defaultToNo:s.request.default_to_no,suppressAlwaysAllowRule:s.request.suppress_always_allow_rule,toolUseID:s.request.tool_use_id,agentID:s.request.agent_id,requestId:s.request_id,...typeof s.request.requires_user_interaction==="boolean"&&{requiresUserInteraction:s.request.requires_user_interaction},...typeof s.request.server_prompt==="string"&&{serverPrompt:s.request.server_prompt},...typeof d==="object"&&d!==null&&"path"in d&&typeof d.path==="string"&&"computer_name"in d&&typeof d.computer_name==="string"&&{computerFolder:{path:d.path,computer_name:d.computer_name}},...s.request.matched_ask_rule&&{matchedAskRule:{source:s.request.matched_ask_rule.source,toolName:s.request.matched_ask_rule.tool_name,...s.request.matched_ask_rule.rule_content!==void 0&&{ruleContent:s.request.matched_ask_rule.rule_content}}}});if(f===null)return Ke;return{...f,toolUseID:s.request.tool_use_id}}else if(s.request.subtype==="hook_callback")return await this.handleHookCallbacks(s.request.callback_id,s.request.input,s.request.tool_use_id,i);else if(s.request.subtype==="mcp_message"){let d=s.request,f=this.sdkMcpServers.get(d.server_name)?.transport;if(!f)throw Error(`SDK MCP server not found: ${d.server_name}`);if(Qr(d.message))return{mcp_response:await this.handleMcpControlRequest(d.server_name,d,f)};else{if(f.onmessage)f.onmessage(d.message);return{mcp_response:{jsonrpc:"2.0",result:{},id:0}}}}else if(s.request.subtype==="elicitation"){let d=s.request;if(this.onElicitation){let f=await this.onElicitation({serverName:d.mcp_server_name,message:d.message,mode:d.mode,url:d.url,elicitationId:d.elicitation_id,requestedSchema:d.requested_schema,title:d.title,displayName:d.display_name,description:d.description},{signal:i,requestId:s.request_id});if(f===null)return Ke;return f}return{action:"decline"}}else if(s.request.subtype==="request_user_dialog"){if(this.onUserDialog){let d=await this.onUserDialog({dialogKind:s.request.dialog_kind,payload:s.request.payload,toolUseID:s.request.tool_use_id},{signal:i,requestId:s.request_id});if(d===null)return Ke;return d}return e(`[Query] No onUserDialog handler for request_user_dialog (kind=${s.request.dialog_kind}) — staying silent so a capable client (or the worker's park deadline) settles it`),ee("tengu_request_user_dialog_response_ignored",{shape:X("auto_cancel")}),Ke}else if(s.request.subtype==="oauth_token_refresh"){if(!this.getOAuthToken)throw Error("getOAuthToken callback is not provided.");let d,f=await this.getOAuthToken({signal:i,onDecline:(p)=>{if(Xr(p))d=p}})??null;return f===null&&d!==void 0?{accessToken:f,reason:d}:{accessToken:f}}else if(s.request.subtype==="host_auth_token_refresh"){if(!this.getHostAuthToken)throw Error("getHostAuthToken callback is not provided.");let d=await this.getHostAuthToken({signal:i})??null;return typeof d==="string"||d===null?{authToken:d}:d}else if(s.request.subtype==="remote_control_work_secret"){let d=this.workSecretAnswerer;if(!d)throw Error("refreshWorkSecret callback is not provided.");if(!os(d.sessionId,s.request.session_id))throw Error("remote_control_work_secret names a session this host did not attach.");return{work_secret:await d.refresh(d.sessionId,{signal:i})||null}}if(s.request.subtype==="ui_copy"&&this.uiHost?.copy){let{subtype:d,...f}=s.request;return this.uiHost.copy(f,{signal:i})}if(s.request.subtype==="ui_prompt_read"&&this.uiHost?.promptRead){let{subtype:d,...f}=s.request;return this.uiHost.promptRead(f,{signal:i})}if(s.request.subtype==="ui_prompt_fill"&&this.uiHost?.promptFill){let{subtype:d,...f}=s.request;return this.uiHost.promptFill(f,{signal:i})}if(s.request.subtype==="ui_prompt_suggest"&&this.uiHost?.promptSuggest){let{subtype:d,...f}=s.request;return this.uiHost.promptSuggest(f,{signal:i})}if(s.request.subtype==="ui_read_selection"&&this.uiHost?.readSelection){let{subtype:d,...f}=s.request;return this.uiHost.readSelection(f,{signal:i})}throw Error("Unsupported control request subtype: "+s.request.subtype)}async*readSdkMessages(){try{for await(let s of this.inputStream)this.transport.markDelivered?.(s),yield s}finally{await this.cleanup()}}async initialize({first:s}={first:!1}){if(!s&&!this.initializeHasBeenWritten)await this.initializeWritten;let i,d;try{if(s&&this.initConfig?.captureSdkMcpManifests===!0&&this.sdkMcpServers.size>0){i=await this.captureSdkMcpServerManifests();for(let h of this.sdkMcpToolsChangedDuringCapture){let S=i!==void 0&&Object.hasOwn(i,h)?i[h]:void 0;if(S?.toolsListResult!==void 0)i[h]={initializeResult:S.initializeResult}}}this.sdkMcpToolsChangedDuringCapture.clear();let g=this.buildInitializeRequest(i);if(this.cleanupPerformed)throw this.cleanupCause??Error("Query closed before initialize was sent");this.writingFirstInitialize=s;try{d=this.request(g)}finally{this.writingFirstInitialize=!1}}finally{if(s)this.markInitializeWritten()}let p=(await d).response;if(this.initConfig?.plugins!==void 0&&this.initConfig.plugins.length>0&&p.plugins_applied!==!0)e(`[Query.initialize] Claude Code reported plugins_applied=${String(p.plugins_applied)} for ${this.initConfig.plugins.length} plugins sent with pluginDelivery 'initialize'; the process is running with the plugins it was launched with.`,{level:"warn"});return p}buildInitializeRequest(s){if(this.hooks&&!this.initHooksPayload){this.initHooksPayload={};for(let[g,h]of Object.entries(this.hooks))if(h.length>0)this.initHooksPayload[g]=h.map((S)=>{let b=[];for(let E of S.hooks){let v=`hook_${this.nextCallbackId++}`;this.hookCallbacks.set(v,E),b.push(v)}return{matcher:S.matcher,hookCallbackIds:b,timeout:S.timeout}})}let i=this.sdkMcpServers.size>0?Array.from(this.sdkMcpServers.keys()):void 0,d=Array.from(this.sdkMcpServers).flatMap(([g,{settings:h}])=>Object.keys(h).length>0?[[g,h]]:[]),f=d.length>0?Object.fromEntries(d):void 0;return{subtype:"initialize",hooks:this.initHooksPayload,sdkMcpServers:i,sdkMcpServerConfigs:f,sdkMcpServerManifests:s,jsonSchema:this.jsonSchema,systemPrompt:typeof this.initConfig?.systemPrompt==="string"?[this.initConfig.systemPrompt]:this.initConfig?.systemPrompt,appendSystemPrompt:this.initConfig?.appendSystemPrompt,planModeInstructions:this.initConfig?.planModeInstructions,systemPromptSnapshot:this.initConfig?.systemPromptSnapshot,appendSubagentSystemPrompt:this.initConfig?.appendSubagentSystemPrompt,toolAliases:this.initConfig?.toolAliases,excludeDynamicSections:this.initConfig?.excludeDynamicSections,agents:this.initConfig?.agents,title:this.initConfig?.title,skills:Array.isArray(this.initConfig?.skills)?this.initConfig.skills:void 0,webSearchIsolationExemptMcpServers:this.initConfig?.webSearchIsolationExemptMcpServers,promptSuggestions:this.initConfig?.promptSuggestions,agentProgressSummaries:this.initConfig?.agentProgressSummaries,forwardSubagentText:this.initConfig?.forwardSubagentText,supportedDialogKinds:this.initConfig?.supportedDialogKinds,perTaskStopAffordance:this.initConfig?.perTaskStopAffordance,rapidFollowupPreempt:this.initConfig?.rapidFollowupPreempt,forwardNestedSubagentToolCalls:this.initConfig?.forwardNestedSubagentToolCalls,workspaceTrust:this.initConfig?.workspaceTrust,plugins:this.initConfig?.plugins}}async captureSdkMcpServerManifests(){let s=performance.now(),i=new Map,d=!1,f=async(k,C)=>{try{if(await this.sdkMcpServers.get(k)?.connection,d)return;let T=await this.handleMcpControlRequest(k,{server_name:k,message:{jsonrpc:"2.0",id:zt+"initialize",method:"initialize",params:{protocolVersion:ns,capabilities:Zr,clientInfo:{...es,version:"0.3.295"}}}},C);if(d)return;if(!("result"in T)){e(`[Query.captureSdkMcpServerManifests] '${k}' answered initialize with an error; leaving it to the CLI: ${t(T)}`,{level:"warn"});return}let P=T.result;C.onmessage?.({jsonrpc:"2.0",method:"notifications/initialized"});let M=P.capabilities,D=typeof M==="object"&&M!==null&&"tools"in M&&M.tools!==void 0&&M.tools!==null,j;if(D){let B=await this.handleMcpControlRequest(k,{server_name:k,message:{jsonrpc:"2.0",id:zt+"tools-list",method:"tools/list"}},C);if(d)return;if(!("result"in B)){e(`[Query.captureSdkMcpServerManifests] '${k}' answered tools/list with an error; leaving it to the CLI: ${t(B)}`,{level:"warn"});return}if(B.result.nextCursor===void 0)j=B.result}let fe=O(t(j===void 0?{initializeResult:P}:{initializeResult:P,toolsListResult:j}));i.set(k,{transport:C,manifest:fe})}catch(T){if(!d)e(`[Query.captureSdkMcpServerManifests] '${k}': ${T}; the CLI will handshake it over the control channel`,{level:"warn"})}},p=Array.from(this.sdkMcpServers,([k,{transport:C}])=>f(k,C)),g=Promise.all(p).then(()=>"settled"),h=new Promise((k)=>{this.stopSdkMcpManifestCapture=()=>k("closed")}),S=await wt(Promise.race([g,h]),ss);d=!0,this.stopSdkMcpManifestCapture=void 0;let b=Math.round(performance.now()-s),E={servers:p.length,captured:i.size,elapsed_ms:b};if(S==="closed"){Ht("sdk_mcp_manifest_capture","closed",E);return}if(S===void 0)e(`[Query.captureSdkMcpServerManifests] ${i.size}/${p.length} in-process MCP servers captured within ${ss} ms; the rest will handshake over the control channel`,{level:"warn"}),Ht("sdk_mcp_manifest_capture","deadline",E);else if(i.size<p.length)Ht("sdk_mcp_manifest_capture","partial",E);else On("sdk_mcp_manifest_capture",E);if(i.size===0)return;let v=Object.fromEntries(Array.from(this.sdkMcpServers).flatMap(([k,C])=>{let T=i.get(k);return T!==void 0&&T.transport===C.transport?[[k,T.manifest]]:[]}));if(Object.keys(v).length===0)return;return e(`[Query.captureSdkMcpServerManifests] manifests for [${Object.keys(v).join(", ")}] captured in ${b} ms`),v}async interrupt(s){return Z("sdk_interrupt",async()=>{let i=await this.request({subtype:"interrupt",...s?.cancelQueued===!0&&{cancel_queued:!0}}),d=i.response?.still_queued;if(!Array.isArray(d))return;let f=i.response?.cancelled;return{still_queued:d.filter((p)=>typeof p==="string"),...Array.isArray(f)&&{cancelled:f.filter((p)=>typeof p==="string")}}})}async setPermissionMode(s){await this.request({subtype:"set_permission_mode",mode:s})}setUiHost(s){this.uiHost=s}async setMcpPermissionModeOverride(s,i){return(await this.request({subtype:"set_mcp_permission_mode_override",serverName:s,mode:i})).response??{}}async setChromeBrowserHints(s){await this.request({subtype:"set_chrome_browser_hints",...s})}async setPromptSuggestionsPaused(s){await this.request({subtype:"set_prompt_suggestions_paused",paused:s})}awaitControlResponse(s){return this.transport.expectControlResponse?.(s),new Promise((i,d)=>{let f=(g)=>{if(g.subtype==="success"){let{pending_permission_requests:h,pending_user_dialog_requests:S,...b}=g;i(b)}else d(new c(g.error,"awaitControlResponse: CLI error verdict"));if(g.pending_permission_requests||g.pending_user_dialog_requests)e("[Query] Ignoring prompt-redelivery fields on awaitControlResponse response")};if(this.cleanupPerformed){d(Nn());return}let p=this.unmatchedControlResponses.get(s);if(p){this.unmatchedControlResponses.delete(s),f(p);return}this.pendingControlResponses.set(s,{handler:(g)=>{this.pendingControlResponses.delete(s),f(g)},reject:d})})}async setModel(s){await this.request({subtype:"set_model",model:s})}async setMaxThinkingTokens(s,i){await this.request({subtype:"set_max_thinking_tokens",max_thinking_tokens:s,thinking_display:i})}async applyFlagSettings(s){return Z("sdk_apply_flag_settings",async()=>{await this.request({subtype:"apply_flag_settings",settings:s})})}async getSettings(){return(await this.request({subtype:"get_settings"})).response}async getHooksListing(){return(await this.request({subtype:"get_hooks_listing"})).response}async getTaskOutput(s){return(await this.request({subtype:"get_task_output",task_id:s})).response}async listPermissionRules(){return(await this.request({subtype:"list_permission_rules"})).response}async updateSettings(s,i){return Z("sdk_update_settings",async()=>{await this.request({subtype:"update_settings",source:s,settings:i})})}async rewindFiles(s,i){return Z("sdk_rewind_files",async()=>(await this.request({subtype:"rewind_files",user_message_id:s,dry_run:i?.dryRun})).response)}async cancelAsyncMessage(s){return(await this.request({subtype:"cancel_async_message",message_uuid:s})).response.cancelled}async seedReadState(s,i){await this.request({subtype:"seed_read_state",path:s,mtime:i})}async setCwd(s,i){return Z("sdk_set_cwd",async()=>(await this.request({subtype:"set_cwd",path:s,...i?.trustAccepted!==void 0&&{trust_accepted:i.trustAccepted},...i?.trustedDirectory!==void 0&&{trusted_directory:i.trustedDirectory}})).response)}async claimSession(s){let i=Z("sdk_claim_session",async()=>(await this.request({subtype:"claim_session",...s,include_initialize:s.include_initialize??!0})).response),d=this.initialization;return this.initialization=i.then(async(f)=>{if(f?.initialize===void 0)return d;let p=f.initialize,g=await d.then((b)=>({hooks_applied:b.hooks_applied,plugins_applied:b.plugins_applied}),()=>({hooks_applied:void 0,plugins_applied:void 0})),h=p.hooks_applied??g.hooks_applied,S=p.plugins_applied??g.plugins_applied;return{...p,...h!==void 0&&{hooks_applied:h},...S!==void 0&&{plugins_applied:S}}},()=>d),this.initialization.catch(()=>{}),i}async enableRemoteControl(s,i,d){let f=++this.remoteControlCallGeneration,p=this.workSecretAnswerer,g=d?.reattachSessionId||(d?.workSecret===void 0?void 0:Qi(d.workSecret)),h=s&&d?.workSecret!==void 0&&d.refreshWorkSecret&&g!==void 0?{sessionId:g,refresh:d.refreshWorkSecret}:void 0;this.workSecretAnswerer=h;let S;try{S=(await this.request({subtype:"remote_control",enabled:s,...i!==void 0&&{name:i},reattach_session_id:d?.reattachSessionId,keep_session_on_exit:d?.keepSessionOnExit,work_secret:d?.workSecret})).response}catch(b){if(f===this.remoteControlCallGeneration)this.workSecretAnswerer=void 0;throw b}if(s&&f===this.remoteControlCallGeneration){let b=S.bridge_session_id,E=[h,p];this.workSecretAnswerer=typeof b==="string"?E.find((v)=>v!==void 0&&os(v.sessionId,b)):void 0}return S}async submitFeedback(s,i){return(await this.request({subtype:"submit_feedback",description:s,surface:i?.surface,draft_id:i?.draft_id,type:i?.type,title:i?.title,area:i?.area,attach_transcript:i?.attach_transcript,save_locally:i?.save_locally})).response}async renameSession(s,i){await this.request({subtype:"rename_session",title:s,source:"host",session_id:i})}async generateSessionTitle(s,i){return Z("sdk_session_title_generate",async()=>(await this.request({subtype:"generate_session_title",description:s,persist:i?.persist})).response.title)}async askSideQuestion(s,i){return Z("sdk_side_question",async()=>{let f=(await this.request({subtype:"side_question",question:s,...i?.history?.length&&{history:[...i.history]}},i)).response;return f.response===null?null:{response:f.response,synthetic:f.synthetic??!1,...f.refusal_fallback&&{refusalFallback:{originalModel:f.refusal_fallback.original_model,fallbackModel:f.refusal_fallback.fallback_model,content:f.refusal_fallback.content}}}},()=>i?.signal?.aborted?"cancelled":"error")}async launchUltrareview(s,i){return(await this.request({subtype:"ultrareview_launch",args:s,confirm:i?.confirm??!1})).response}async messageRated(s){await this.request({subtype:"message_rated",messageUuid:s.messageUuid,sentiment:s.sentiment,surface:s.surface,cleared:s.cleared??!1})}processPendingPermissionRequests(s){for(let i of s)if(i.request.subtype==="can_use_tool")this.handleControlRequest(i).catch(()=>{})}processPendingUserDialogRequests(s){for(let i of s)if(i.request.subtype==="request_user_dialog")this.handleControlRequest(i).catch(()=>{})}request(s,i){let d=i?.signal;if(d?.aborted)return Promise.reject(I(d.reason??"Control request aborted"));if(this.cleanupPerformed)return Promise.reject(Nn());let f=Math.random().toString(36).substring(2,15);this.transport.expectControlResponse?.(f);let p={request_id:f,type:"control_request",request:s},g=s.subtype==="initialize";return new Promise((h,S)=>{let b,E=!1,v=(P)=>{this.pendingControlResponses.delete(f),b?.(),h(P)},k=(P)=>{this.pendingControlResponses.delete(f),b?.(),S(P)};if(d){let P=()=>{if(k(I(d.reason??"Control request aborted")),!E)return;try{Promise.resolve(this.transport.write(t({type:"control_cancel_request",request_id:f})+`
`)).catch(()=>{})}catch{}};d.addEventListener("abort",P,{once:!0}),b=()=>{d.removeEventListener("abort",P)}}this.pendingControlResponses.set(f,{handler:(P)=>{if(P.subtype==="success")v(P);else k(A(Error(P.error),{telemetryMessage:`Claude Code control request failed (${s.subtype})`,errorClass:"control_request_failed",errorCode:typeof P.error_code==="string"&&Xi.test(P.error_code)?P.error_code:void 0}));if(!g&&(P.pending_permission_requests||P.pending_user_dialog_requests))e(`[Query] Ignoring prompt-redelivery fields on non-initialize response (subtype=${s.subtype})`);else{if(P.pending_permission_requests)this.processPendingPermissionRequests(P.pending_permission_requests);if(P.pending_user_dialog_requests)this.processPendingUserDialogRequests(P.pending_user_dialog_requests)}},reject:k});let C=t(p)+`
`,T=()=>{if(d?.aborted)return;return E=!0,this.transport.write(C)};try{(this.initializeHasBeenWritten||this.writingFirstInitialize?Promise.resolve(T()):this.initializeWritten.then(T)).catch(k)}catch(P){k(P)}})}initializationResult(){return this.initialization}writeAfterInitialize(s){if(this.initializeHasBeenWritten)return Promise.resolve(this.transport.write(s));return this.initializeWritten.then(()=>this.transport.write(s))}reinitialize(){return Z("sdk_reinitialize",()=>this.initialize({first:!1}))}async supportedCommands(){let{commands:s}=await this.initialization;return this.latestCommands??s}async supportedModels(){return(await this.initialization).models}async supportedAgents(){return(await this.initialization).agents}async reconnectMcpServer(s){await this.request({subtype:"mcp_reconnect",serverName:s})}async toggleMcpServer(s,i){return Z("sdk_mcp_toggle_server",async()=>{await this.request({subtype:"mcp_toggle",serverName:s,enabled:i})})}async readMcpResource(s,i){return(await this.request({subtype:"mcp_read_resource",serverName:s,uri:i})).response}async enableChannel(s){return Z("sdk_mcp_enable_channel",async()=>{await this.request({subtype:"channel_enable",serverName:s})})}async mcpAuthenticate(s,i){return(await this.request({subtype:"mcp_authenticate",serverName:s,redirectUri:i})).response}async mcpClearAuth(s){return(await this.request({subtype:"mcp_clear_auth",serverName:s})).response}async mcpSubmitOAuthCallbackUrl(s,i){return(await this.request({subtype:"mcp_oauth_callback_url",serverName:s,callbackUrl:i})).response}async claudeAuthenticate(s){return(await this.request({subtype:"claude_authenticate",loginWithClaudeAi:s})).response}async claudeOAuthCallback(s,i){return(await this.request({subtype:"claude_oauth_callback",authorizationCode:s,state:i})).response}async claudeOAuthWaitForCompletion(){return(await this.request({subtype:"claude_oauth_wait_for_completion"})).response}async mcpServerStatus(){return(await this.request({subtype:"mcp_status"})).response.mcpServers}async getContextUsage(s){return(await this.request({subtype:"get_context_usage",...s})).response}async usage_EXPERIMENTAL_MAY_CHANGE_DO_NOT_RELY_ON_THIS_API_YET(s){return(await this.request({subtype:"get_usage",...s?.skipBehaviors&&{skip_behaviors:!0}})).response}async getMemoryDialog(){return(await this.request({subtype:"get_memory_dialog"})).response}async getSkillsDialog(){return(await this.request({subtype:"get_skills_dialog"})).response}async getStatus(){return(await this.request({subtype:"get_status"})).response}async exportConversation(){return(await this.request({subtype:"export_conversation"})).response}async getChromeDialog(){return(await this.request({subtype:"get_chrome_dialog"})).response}async getChromeBrowsers(){return(await this.request({subtype:"get_chrome_browsers"})).response}async selectChromeBrowser(s){return(await this.request({subtype:"select_chrome_browser",device_id:s})).response}async getSandboxDialog(){return(await this.request({subtype:"get_sandbox_dialog"})).response}async readFile(s,i){try{return(await this.request({subtype:"read_file",path:s,max_bytes:i?.maxBytes,encoding:i?.encoding})).response}catch{return null}}async getPlan(){return(await this.request({subtype:"get_plan"})).response}async reloadPlugins(s){return Z("sdk_reload_plugins",async()=>(await this.request({subtype:"reload_plugins",...s?.holdOnCacheImpact&&{hold_on_cache_impact:!0}})).response)}async reloadSkills(){return Z("sdk_reload_skills",async()=>(await this.request({subtype:"reload_skills"})).response)}async reloadOutputStyles(){return Z("sdk_reload_output_styles",async()=>(await this.request({subtype:"reload_output_styles"})).response)}async setMcpServers(s){return Z("sdk_mcp_set_servers",async()=>{let i={},d={};for(let[S,b]of Object.entries(s))if(b.type==="sdk"&&"instance"in b)i[S]=b;else d[S]=b;let f=new Set(this.sdkMcpServers.keys()),p=new Set(Object.keys(i));for(let S of f)if(!p.has(S))await this.disconnectSdkMcpServer(S);for(let[S,b]of Object.entries(i)){let E=this.sdkMcpServers.get(S);if(!E){this.connectSdkMcpServer(S,b);continue}let{settings:v}=Dn(b);if(v.timeout!==E.settings.timeout||v.disableAutoBackground!==E.settings.disableAutoBackground)e(`[Query.setMcpServers] MCP server '${S}' is already registered, so the different timeout or disableAutoBackground passed to setMcpServers is ignored; remove and re-add the server to change it`)}let g={};for(let S of Object.keys(i))g[S]={type:"sdk",name:S,...this.sdkMcpServers.get(S)?.settings};return(await this.request({subtype:"mcp_set_servers",servers:{...d,...g}})).response})}async accountInfo(){return(await this.initialization).account}async streamInput(s){e("[Query.streamInput] Starting to process input stream");try{if(!this.initializeHasBeenWritten)await this.initializeWritten;let i=0;for await(let d of s){if(i++,e(`[Query.streamInput] Processing message ${i}: ${d.type}`),this.abortController?.signal.aborted)break;this.runEnded=!1,this.resultReceived=!1,this.clearRunEndCeiling(),await Promise.resolve(this.transport.write(t(this.verbatimPrompts?{...d,client_composed:!0}:d)+`
`))}if(e(`[Query.streamInput] Finished processing ${i} messages from input stream`),i>0&&this.hasBidirectionalNeeds())e("[Query.streamInput] Has bidirectional needs, waiting for the run to end"),await this.waitForRunEnd();e("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(i){if(!(i instanceof ce))throw i}}endRun(){if(this.runEnded)return;if(this.runEnded=!0,this.clearRunEndCeiling(),this.runEndedResolve?.(),this.isSingleUserTurn)e("[Query.readMessages] Run ended for single-turn query, closing stdin"),this.transport.endInput()}armRunEndCeiling(){if(this.clearRunEndCeiling(),this.runEnded||this.cleanupPerformed||this.runEndCeilingMs<=0)return;this.runEndCeilingTimer=setTimeout(()=>{e(`[Query.readMessages] No 'idle' ${this.runEndCeilingMs}ms after the last result, ending the run`),this.endRun()},Math.min(this.runEndCeilingMs,Ve)),this.runEndCeilingTimer.unref?.()}clearRunEndCeiling(){clearTimeout(this.runEndCeilingTimer),this.runEndCeilingTimer=void 0}waitForRunEnd(){if(this.runEnded)return e("[Query.waitForRunEnd] Run already ended, returning immediately"),Promise.resolve();return new Promise((s)=>{let i=this.abortController?.signal;if(this.cleanupPerformed||i?.aborted){s();return}let d=()=>s();i?.addEventListener("abort",d,{once:!0}),this.addCleanupCallback(()=>{i?.removeEventListener("abort",d),s()}),this.runEndedResolve=()=>{i?.removeEventListener("abort",d),s()}})}handleHookCallbacks(s,i,d,f){let p=this.hookCallbacks.get(s);if(!p)throw Error(`No hook callback found for ID: ${s}`);return p(i,d,{signal:f})}connectSdkMcpServer(s,i){let d=new Mn((p)=>this.sendMcpServerMessageToCli(s,p)),f=i.instance.connect(d).catch((p)=>{if(this.sdkMcpServers.get(s)?.transport===d)this.sdkMcpServers.delete(s);e(`[Query.connectSdkMcpServer] Failed to connect MCP server '${s}': ${p}`,{level:"error"})});this.sdkMcpServers.set(s,{transport:d,settings:Dn(i).settings,connection:f})}async disconnectSdkMcpServer(s){let i=this.sdkMcpServers.get(s);if(i){let d=`${s}:${zt}`;for(let[f,p]of this.pendingMcpResponses)if(f.startsWith(d))this.pendingMcpResponses.delete(f),p.reject(Error("MCP server was removed during the manifest capture"));if(await i.transport.close(),this.sdkMcpServers.get(s)===i)this.sdkMcpServers.delete(s)}}sendMcpServerMessageToCli(s,i){if("id"in i&&i.id!==null&&i.id!==void 0){let f=`${s}:${i.id}`,p=this.pendingMcpResponses.get(f);if(p){p.resolve(i),this.pendingMcpResponses.delete(f);return}if(typeof i.id==="string"&&i.id.startsWith(zt)){e(`[Query.sendMcpServerMessageToCli] Dropping late manifest-capture reply from '${s}' (${i.id})`);return}}let d={type:"control_request",request_id:Ne(),request:{subtype:"mcp_message",server_name:s,message:i}};if(!this.initializeHasBeenWritten&&rs(i))this.sdkMcpToolsChangedDuringCapture.add(s);this.writeAfterInitialize(t(d)+`
`).catch((f)=>{e(`[Query.sendMcpServerMessageToCli] Transport write failed: ${f}`,{level:"error"})})}handleMcpControlRequest(s,i,d){let f="id"in i.message?i.message.id:null,p=`${s}:${f}`;return new Promise((g,h)=>{let S=()=>{this.pendingMcpResponses.delete(p)},b=(v)=>{S(),g(v)},E=(v)=>{S(),h(v)};if(this.pendingMcpResponses.set(p,{resolve:b,reject:E}),d.onmessage)d.onmessage(i.message);else{S(),h(Error("No message handler registered"));return}})}}function Nn(){return Error("Query closed before response received")}var Xi=/^[a-z][a-z0-9_]{0,63}$/;function os(s,i){if(s===i)return!0;let d=s.slice(s.lastIndexOf("_")+1),f=i.slice(i.lastIndexOf("_")+1);return d.length>=4&&d===f}function Qi(s){try{let i=O(Buffer.from(s,"base64url").toString("utf8"));if(typeof i!=="object"||i===null||!("session_ingress_token"in i)||typeof i.session_ingress_token!=="string")return;let d=i.session_ingress_token,p=(d.startsWith("sk-ant-si-")?d.slice(10):d).split(".");if(p.length!==3||!p[1])return;let g=O(Buffer.from(p[1],"base64url").toString("utf8"));return typeof g==="object"&&g!==null&&"session_id"in g&&typeof g.session_id==="string"&&g.session_id?g.session_id:void 0}catch{return}}var Ln=500,jn=1048576;var Zi=[200,800];class Fn{send;pending=[];pendingEntries=0;pendingBytes=0;flushPromise=null;sendTimeoutMs;onError;maxPendingEntries;maxPendingBytes;backoffMs;constructor(s,i){this.send=s;let{sendTimeoutMs:d=60000,onError:f,maxPendingEntries:p=Ln,maxPendingBytes:g=jn,backoffMs:h=Zi}=i??{};this.sendTimeoutMs=d,this.onError=f,this.maxPendingEntries=p,this.maxPendingBytes=g,this.backoffMs=h}enqueue(s,i){let d=t(i).length;if(this.pending.push({filePath:s,entries:i,bytes:d}),this.pendingEntries+=i.length,this.pendingBytes+=d,this.pendingEntries>this.maxPendingEntries||this.pendingBytes>this.maxPendingBytes)this.flushPromise=this.drain(),this.flushPromise.catch(()=>{})}async flush(){let s=this.drain();if(this.flushPromise=s,await s,this.flushPromise===s)this.flushPromise=null}async drain(){let s=this.flushPromise,i=this.pending.splice(0);if(this.pendingEntries=0,this.pendingBytes=0,s)await s;if(i.length===0)return;await this.doFlush(i)}async doFlush(s){let i=new Map;for(let d of s){let f=i.get(d.filePath);if(f)f.push(...d.entries);else i.set(d.filePath,d.entries.slice())}for(let[d,f]of i)await this.sendWithRetry(d,f)}async sendWithRetry(s,i){let d=this.backoffMs.length+1,f=`SessionStore.append() timed out after ${this.sendTimeoutMs}ms for ${s}`,p,g=1;for(;g<=d;g++)try{await w(this.send(s,i),this.sendTimeoutMs,f),p=void 0;break}catch(h){if(p=I(h),p.message===f)break;let S=this.backoffMs[g-1];if(S===void 0)break;await L(S)}if(p){e(`[TranscriptMirrorBatcher] flush failed for ${s} after ${g} attempt(s): ${p}`,{level:"error"});try{this.onError?.(s,p)}catch(h){e(`[TranscriptMirrorBatcher] onError callback threw: ${h}`,{level:"error"})}}}}var is=typeof globalThis==="object"?globalThis:global;var Se="1.9.0";var as=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function ea(s){var i=new Set([s]),d=new Set,f=s.match(as);if(!f)return function(){return!1};var p={major:+f[1],minor:+f[2],patch:+f[3],prerelease:f[4]};if(p.prerelease!=null)return function(b){return b===s};function g(S){return d.add(S),!1}function h(S){return i.add(S),!0}return function(b){if(i.has(b))return!0;if(d.has(b))return!1;var E=b.match(as);if(!E)return g(b);var v={major:+E[1],minor:+E[2],patch:+E[3],prerelease:E[4]};if(v.prerelease!=null)return g(b);if(p.major!==v.major)return g(b);if(p.major===0){if(p.minor===v.minor&&p.patch<=v.patch)return h(b);return g(b)}if(p.minor<=v.minor)return h(b);return g(b)}}var cs=ea(Se);var ta=Se.split(".")[0],lt=Symbol.for("opentelemetry.js.api."+ta),ut=is;function $e(s,i,d,f){var p;if(f===void 0)f=!1;var g=ut[lt]=(p=ut[lt])!==null&&p!==void 0?p:{version:Se};if(!f&&g[s]){var h=Error("@opentelemetry/api: Attempted duplicate registration of API: "+s);return d.error(h.stack||h.message),!1}if(g.version!==Se){var h=Error("@opentelemetry/api: Registration of version v"+g.version+" for "+s+" does not match previously registered API v"+Se);return d.error(h.stack||h.message),!1}return g[s]=i,d.debug("@opentelemetry/api: Registered a global for "+s+" v"+Se+"."),!0}function be(s){var i,d,f=(i=ut[lt])===null||i===void 0?void 0:i.version;if(!f||!cs(f))return;return(d=ut[lt])===null||d===void 0?void 0:d[s]}function Ue(s,i){i.debug("@opentelemetry/api: Unregistering a global for "+s+" v"+Se+".");var d=ut[lt];if(d)delete d[s]}var na=function(s,i){var d=typeof Symbol==="function"&&s[Symbol.iterator];if(!d)return s;var f=d.call(s),p,g=[],h;try{while((i===void 0||i-- >0)&&!(p=f.next()).done)g.push(p.value)}catch(S){h={error:S}}finally{try{if(p&&!p.done&&(d=f.return))d.call(f)}finally{if(h)throw h.error}}return g},ra=function(s,i,d){if(d||arguments.length===2){for(var f=0,p=i.length,g;f<p;f++)if(g||!(f in i)){if(!g)g=Array.prototype.slice.call(i,0,f);g[f]=i[f]}}return s.concat(g||Array.prototype.slice.call(i))},ls=function(){function s(i){this._namespace=i.namespace||"DiagComponentLogger"}return s.prototype.debug=function(){var i=[];for(var d=0;d<arguments.length;d++)i[d]=arguments[d];return dt("debug",this._namespace,i)},s.prototype.error=function(){var i=[];for(var d=0;d<arguments.length;d++)i[d]=arguments[d];return dt("error",this._namespace,i)},s.prototype.info=function(){var i=[];for(var d=0;d<arguments.length;d++)i[d]=arguments[d];return dt("info",this._namespace,i)},s.prototype.warn=function(){var i=[];for(var d=0;d<arguments.length;d++)i[d]=arguments[d];return dt("warn",this._namespace,i)},s.prototype.verbose=function(){var i=[];for(var d=0;d<arguments.length;d++)i[d]=arguments[d];return dt("verbose",this._namespace,i)},s}();function dt(s,i,d){var f=be("diag");if(!f)return;return d.unshift(i),f[s].apply(f,ra([],na(d),!1))}var re;(function(s){s[s.NONE=0]="NONE",s[s.ERROR=30]="ERROR",s[s.WARN=50]="WARN",s[s.INFO=60]="INFO",s[s.DEBUG=70]="DEBUG",s[s.VERBOSE=80]="VERBOSE",s[s.ALL=9999]="ALL"})(re||(re={}));function us(s,i){if(s<re.NONE)s=re.NONE;else if(s>re.ALL)s=re.ALL;i=i||{};function d(f,p){var g=i[f];if(typeof g==="function"&&s>=p)return g.bind(i);return function(){}}return{error:d("error",re.ERROR),warn:d("warn",re.WARN),info:d("info",re.INFO),debug:d("debug",re.DEBUG),verbose:d("verbose",re.VERBOSE)}}var sa=function(s,i){var d=typeof Symbol==="function"&&s[Symbol.iterator];if(!d)return s;var f=d.call(s),p,g=[],h;try{while((i===void 0||i-- >0)&&!(p=f.next()).done)g.push(p.value)}catch(S){h={error:S}}finally{try{if(p&&!p.done&&(d=f.return))d.call(f)}finally{if(h)throw h.error}}return g},oa=function(s,i,d){if(d||arguments.length===2){for(var f=0,p=i.length,g;f<p;f++)if(g||!(f in i)){if(!g)g=Array.prototype.slice.call(i,0,f);g[f]=i[f]}}return s.concat(g||Array.prototype.slice.call(i))},ia="diag",Ce=function(){function s(){function i(p){return function(){var g=[];for(var h=0;h<arguments.length;h++)g[h]=arguments[h];var S=be("diag");if(!S)return;return S[p].apply(S,oa([],sa(g),!1))}}var d=this,f=function(p,g){var h,S,b;if(g===void 0)g={logLevel:re.INFO};if(p===d){var E=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return d.error((h=E.stack)!==null&&h!==void 0?h:E.message),!1}if(typeof g==="number")g={logLevel:g};var v=be("diag"),k=us((S=g.logLevel)!==null&&S!==void 0?S:re.INFO,p);if(v&&!g.suppressOverrideMessage){var C=(b=Error().stack)!==null&&b!==void 0?b:"<failed to generate stacktrace>";v.warn("Current logger will be overwritten from "+C),k.warn("Current logger will overwrite one already registered from "+C)}return $e("diag",k,d,!0)};d.setLogger=f,d.disable=function(){Ue(ia,d)},d.createComponentLogger=function(p){return new ls(p)},d.verbose=i("verbose"),d.debug=i("debug"),d.info=i("info"),d.warn=i("warn"),d.error=i("error")}return s.instance=function(){if(!this._instance)this._instance=new s;return this._instance},s}();var aa=function(s,i){var d=typeof Symbol==="function"&&s[Symbol.iterator];if(!d)return s;var f=d.call(s),p,g=[],h;try{while((i===void 0||i-- >0)&&!(p=f.next()).done)g.push(p.value)}catch(S){h={error:S}}finally{try{if(p&&!p.done&&(d=f.return))d.call(f)}finally{if(h)throw h.error}}return g},ca=function(s){var i=typeof Symbol==="function"&&Symbol.iterator,d=i&&s[i],f=0;if(d)return d.call(s);if(s&&typeof s.length==="number")return{next:function(){if(s&&f>=s.length)s=void 0;return{value:s&&s[f++],done:!s}}};throw TypeError(i?"Object is not iterable.":"Symbol.iterator is not defined.")},ds=function(){function s(i){this._entries=i?new Map(i):new Map}return s.prototype.getEntry=function(i){var d=this._entries.get(i);if(!d)return;return Object.assign({},d)},s.prototype.getAllEntries=function(){return Array.from(this._entries.entries()).map(function(i){var d=aa(i,2),f=d[0],p=d[1];return[f,p]})},s.prototype.setEntry=function(i,d){var f=new s(this._entries);return f._entries.set(i,d),f},s.prototype.removeEntry=function(i){var d=new s(this._entries);return d._entries.delete(i),d},s.prototype.removeEntries=function(){var i,d,f=[];for(var p=0;p<arguments.length;p++)f[p]=arguments[p];var g=new s(this._entries);try{for(var h=ca(f),S=h.next();!S.done;S=h.next()){var b=S.value;g._entries.delete(b)}}catch(E){i={error:E}}finally{try{if(S&&!S.done&&(d=h.return))d.call(h)}finally{if(i)throw i.error}}return g},s.prototype.clear=function(){return new s},s}();var Qd=Ce.instance();function fs(s){if(s===void 0)s={};return new ds(new Map(Object.entries(s)))}function ps(s){return Symbol.for(s)}var la=function(){function s(i){var d=this;d._currentContext=i?new Map(i):new Map,d.getValue=function(f){return d._currentContext.get(f)},d.setValue=function(f,p){var g=new s(d._currentContext);return g._currentContext.set(f,p),g},d.deleteValue=function(f){var p=new s(d._currentContext);return p._currentContext.delete(f),p}}return s}(),ms=new la;var gs={get:function(s,i){if(s==null)return;return s[i]},keys:function(s){if(s==null)return[];return Object.keys(s)}},hs={set:function(s,i,d){if(s==null)return;s[i]=d}};var ua=function(s,i){var d=typeof Symbol==="function"&&s[Symbol.iterator];if(!d)return s;var f=d.call(s),p,g=[],h;try{while((i===void 0||i-- >0)&&!(p=f.next()).done)g.push(p.value)}catch(S){h={error:S}}finally{try{if(p&&!p.done&&(d=f.return))d.call(f)}finally{if(h)throw h.error}}return g},da=function(s,i,d){if(d||arguments.length===2){for(var f=0,p=i.length,g;f<p;f++)if(g||!(f in i)){if(!g)g=Array.prototype.slice.call(i,0,f);g[f]=i[f]}}return s.concat(g||Array.prototype.slice.call(i))},ys=function(){function s(){}return s.prototype.active=function(){return ms},s.prototype.with=function(i,d,f){var p=[];for(var g=3;g<arguments.length;g++)p[g-3]=arguments[g];return d.call.apply(d,da([f],ua(p),!1))},s.prototype.bind=function(i,d){return d},s.prototype.enable=function(){return this},s.prototype.disable=function(){return this},s}();var fa=function(s,i){var d=typeof Symbol==="function"&&s[Symbol.iterator];if(!d)return s;var f=d.call(s),p,g=[],h;try{while((i===void 0||i-- >0)&&!(p=f.next()).done)g.push(p.value)}catch(S){h={error:S}}finally{try{if(p&&!p.done&&(d=f.return))d.call(f)}finally{if(h)throw h.error}}return g},pa=function(s,i,d){if(d||arguments.length===2){for(var f=0,p=i.length,g;f<p;f++)if(g||!(f in i)){if(!g)g=Array.prototype.slice.call(i,0,f);g[f]=i[f]}}return s.concat(g||Array.prototype.slice.call(i))},Kn="context",ma=new ys,Jt=function(){function s(){}return s.getInstance=function(){if(!this._instance)this._instance=new s;return this._instance},s.prototype.setGlobalContextManager=function(i){return $e(Kn,i,Ce.instance())},s.prototype.active=function(){return this._getContextManager().active()},s.prototype.with=function(i,d,f){var p,g=[];for(var h=3;h<arguments.length;h++)g[h-3]=arguments[h];return(p=this._getContextManager()).with.apply(p,pa([i,d,f],fa(g),!1))},s.prototype.bind=function(i,d){return this._getContextManager().bind(i,d)},s.prototype._getContextManager=function(){return be(Kn)||ma},s.prototype.disable=function(){this._getContextManager().disable(),Ue(Kn,Ce.instance())},s}();var Bn=Jt.getInstance();var Ss=function(){function s(){}return s.prototype.inject=function(i,d){},s.prototype.extract=function(i,d){return i},s.prototype.fields=function(){return[]},s}();var $n=ps("OpenTelemetry Baggage Key");function Un(s){return s.getValue($n)||void 0}function bs(){return Un(Jt.getInstance().active())}function ws(s,i){return s.setValue($n,i)}function _s(s){return s.deleteValue($n)}var Hn="propagation",ga=new Ss,Es=function(){function s(){this.createBaggage=fs,this.getBaggage=Un,this.getActiveBaggage=bs,this.setBaggage=ws,this.deleteBaggage=_s}return s.getInstance=function(){if(!this._instance)this._instance=new s;return this._instance},s.prototype.setGlobalPropagator=function(i){return $e(Hn,i,Ce.instance())},s.prototype.inject=function(i,d,f){if(f===void 0)f=hs;return this._getGlobalPropagator().inject(i,d,f)},s.prototype.extract=function(i,d,f){if(f===void 0)f=gs;return this._getGlobalPropagator().extract(i,d,f)},s.prototype.fields=function(){return this._getGlobalPropagator().fields()},s.prototype.disable=function(){Ue(Hn,Ce.instance())},s.prototype._getGlobalPropagator=function(){return be(Hn)||ga},s}();var Gn=Es.getInstance();import{copyFile as ha,readFile as ya,rm as ks,writeFile as Cs}from"fs/promises";import{homedir as vs}from"os";import{join as Wn}from"path";function Rs(s){return{globalConfig:Wn(s||vs(),".claude.json"),userSettings:Wn(s||Wn(vs(),".claude"),"settings.json")}}function zn(s,i,d,f){return s!==void 0&&i===d?{backend:s,key:f}:void 0}async function He(s,i,d,f){if(f)return Sa(f,s,i,d);try{if(d)await Cs(i,d(await ya(s)),{mode:384});else await ha(s,i)}catch(p){if(n(p)===void 0)throw p;if(!_(p))await ks(i,{force:!0}).catch(()=>{}),e(`sessionStore resume: skipping ${s} (${n(p)})`)}}async function Sa({backend:s,key:i},d,f,p){let g=await s.read([i]);if(!g.ok){if(g.error.code==="InvalidArgument")throw new c(`sessionStore resume: invalid v5 key for ${d}: ${g.error.argument}${g.error.reason?` (${g.error.reason})`:""}`,"sessionStore resume: invalid v5 key (InvalidArgument from backend read)");e(`sessionStore resume: skipping ${d} (${g.error.code})`);return}let h=g.value.items[0];if(!h?.found)return;let S=Buffer.from(h.value);try{await Cs(f,p?p(S):S,{mode:384})}catch(b){if(n(b)===void 0)throw b;if(!_(b))await ks(f,{force:!0}).catch(()=>{}),e(`sessionStore resume: skipping ${d} (${n(b)})`)}}import{createHash as ba}from"crypto";import{homedir as Nf,userInfo as wa}from"os";var Ps="-credentials";function Ts(s=""){let i=process.env.CLAUDE_SECURESTORAGE_CONFIG_DIR,d=i!==void 0?!i:!process.env.CLAUDE_CONFIG_DIR,f=i!==void 0?i.normalize("NFC"):m(),p=d?"":`-${ba("sha256").update(f).digest("hex").substring(0,8)}`;return`Claude Code${jt().OAUTH_FILE_SUFFIX}${s}${p}`}var _a=/^[a-zA-Z0-9._-]+$/;function As(){if(process.platform==="win32")return"claude-code-user";let s;try{s=process.env.USER||wa().username}catch{s="claude-code-user"}if(!_a.test(s))return"claude-code-user";return s}class Is{cache={data:null,cachedAt:0};generation=0;readInFlight=null;lastReadFailure=null;keychainHoldsItem=!1;lastKnown=null;legacyApiKeyPrefetch=null}var Bf=new a(()=>new Is);import{once as Ds}from"events";import{constants as ft,createWriteStream as Na}from"fs";import{lstat as La,open as ja,lstat as cp,readdir as Qt,realpath as Fa,rename as lp,stat as up}from"fs/promises";import{basename as Ka,dirname as Ba,isAbsolute as fp,join as Re}from"path";async function qn(s,i,d){let f=Math.max(1,Math.floor(d?.maxPages??1e4)),p;for(let g=0;g<f;g++){if(d?.budget!==void 0){if(d.budget.pagesLeft<1)return{status:"capped"};d.budget.pagesLeft--}let h=await s(p);if(!h.ok)return{status:"error",error:h.error};if(await i(h.value.items),d?.until?.())return{status:"done"};if(p=h.value.cursor,!p)return{status:"done"}}return{status:"capped"}}import{execFile as Oa}from"child_process";import{promisify as Ma}from"util";import{execFileSync as Ea}from"child_process";import{lstatSync as va}from"fs";import{join as ka}from"path";function Ca(){return process.platform==="win32"}class Os{resolved=new Map;lookup(s){return this.resolved.get(s)}remember(s,i){this.resolved.set(s,i)}forget(s){this.resolved.delete(s)}}var Ra=new a(()=>new Os),Pa=5000;function xs(s){try{return va(s,{throwIfNoEntry:!1})===void 0}catch{return!1}}var Ta=new Set([".com",".exe",".bat",".cmd"]);function Aa(s){let i=s.toLowerCase().replace(/.*[\\/]/,"").replace(/[. ]+$/,""),d=i.lastIndexOf(".");return d>0&&Ta.has(i.slice(d))}function Ia(s,i=!1){let d=Ra.of(R().host),f=d.lookup(s);if(f!==void 0)if(f!==null){if(!xs(f))return f;d.forget(s)}else{if(!i)return f;d.forget(s)}let p=st("SYSTEMROOT")||"C:\\Windows",g=ka(p,"System32","where.exe");try{let S=Ea(g,[s],{stdio:"pipe",encoding:"utf8",timeout:Pa,windowsHide:!0,env:process.env}).trim().split(/\r?\n/).filter(Boolean),b=process.cwd(),E=!1;for(let v of S){if(xs(v))continue;if(Be(v,b)){E=!0;continue}if(!Aa(v))continue;return d.remember(s,v),v}if(S.length>0&&!E)d.remember(s,null);return null}catch(h){if(xa(h))d.remember(s,null);return null}}function xa(s){if(s===null||typeof s!=="object")return!1;let i="status"in s?s.status:void 0,d="signal"in s?s.signal:void 0,f="code"in s?s.code:void 0;return i===1&&!d&&!f}function Ms(s,i=!1){if(!Ca())return s;if(s.includes("/")||s.includes("\\"))return s;return Ia(s,i)}var Da=Ma(Oa);async function Xt(s){let i=Ms("git");if(i===null)return[];try{let{stdout:d}=await Da(i,["-c","core.hooksPath=/dev/null","-c","core.fsmonitor=","worktree","list","--porcelain"],{cwd:s,timeout:5000,windowsHide:!0});if(!d)return[];return d.split(`
`).filter((f)=>f.startsWith("worktree ")).map((f)=>u(f.slice(9)))}catch{return[]}}var We=65536;var $a=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function ye(s){if(typeof s!=="string")return null;return $a.test(s)?s:null}function Ua(s,i,d){return Ha(s,d,i)}function Ha(s,i,d){let f=d===void 0?void 0:`"type":"${d}"`,p=`"${i}":`,g=s.length;while(g>0){let h=s.lastIndexOf(`
`,g-1),S=s.slice(h+1,g);if(g=h,S.includes(p)&&(f===void 0||S.includes(f)))try{let b=JSON.parse(S);if(typeof b==="object"&&b!==null&&(d===void 0||b.type===d)){let E=b[i];if(typeof E==="string")return E}}catch{}if(h<0)break}return}function Ga(s,i){let d=`"${i}":`,f=0;while(f<s.length){let p=s.indexOf(`
`,f),g=p<0?s.slice(f):s.slice(f,p);if(f=p<0?s.length:p+1,g.includes(d))try{let h=JSON.parse(g);if(typeof h==="object"&&h!==null){let S=h[i];if(typeof S==="string")return S}}catch{}}return}function Vn(s,i){return s?.realWorkspacePath===void 0?void 0:{hoverRestOn:i,realPath:s.realWorkspacePath}}async function Yn(s,i,d){return Wa(s,i,"w",d)}async function Wa(s,i,d,f){if(f!==void 0&&f.hoverRestOn&&(d==="w"||i.length>0))return za(f.source,i,d);let p=Na(s,{mode:384,flags:d});try{for(let g of i)if(!p.write(JSON.stringify(g)+`
`))await Ds(p,"drain");p.end(),await Ds(p,"finish")}catch(g){throw p.destroy(),g}}async function za(s,i,d){let{backend:f,key:p}=s,g=i.map((S)=>({data:JSON.stringify(S)+`
`}));if(d==="w"){let S=await f.replaceRecords(p,g,{publishDiscipline:"inPlace",mode:384});if(!S.ok)throw Error("transcript stream replace failed",{cause:S.error});return}let h=await f.append(p,g);if(!h.ok)throw Error("transcript stream append failed",{cause:h.error})}var Ns=process.platform==="win32"?ft.O_RDONLY:ft.O_RDONLY|ft.O_NOFOLLOW|ft.O_NONBLOCK;async function qa(s){let{backend:i,key:d}=s;try{let f=await i.read([{key:d,offset:0,length:We},{key:d,tail:We}]);if(!f.ok)return null;let[p,g]=f.value.items;if(!p.found||p.value.length===0)return null;let h=Ls(p.value),S=g.found&&g.value.length>0?Ls(g.value):h;return{head:h,tail:S,mtimeMs:p.mtimeMs,totalBytes:p.totalBytes}}catch{return null}}function Ls(s){return Buffer.from(s.buffer,s.byteOffset,s.byteLength).toString("utf8")}var wp=Buffer.from('"type":"user"'),_p=Buffer.from('"type":"assistant"');function Jn(s,i){if(s.kind!=="scope"||s.scope.namespace!=="transcript"||s.scope.projectKey===void 0||s.scope.sessionId!==void 0||!i(s.scope.projectKey))return;return s.scope.projectKey}function js(s){return{skipScopeStats:!0,skipKeyStats:!0,...s!==void 0&&{cursor:s}}}async function Va(s,i){if(i!==void 0&&i.hoverRestOn)return Fs(i.source);try{if(Ns===ft.O_RDONLY){if(!(await La(s)).isFile())return null}let d=await ja(s,Ns);try{let f=await d.stat();if(!f.isFile())return null;let p=Buffer.allocUnsafe(We),g=await d.read(p,0,We,0);if(g.bytesRead===0)return null;let h=p.toString("utf8",0,g.bytesRead),S=Math.max(0,f.size-We),b=h;if(S>0){let E=await d.read(p,0,We,S);b=p.toString("utf8",0,E.bytesRead)}return{mtime:f.mtime.getTime(),size:f.size,head:h,tail:b}}finally{await d.close()}}catch{return null}}async function Fs(s){let i=await qa(s);if(i===null)return null;return{mtime:Math.trunc(i.mtimeMs),size:i.totalBytes,head:i.head,tail:i.tail}}var ze=200;function Ya(s){return Math.abs(Rt(s)).toString(36)}function Zt(s){return s.replace(/[^a-zA-Z0-9]/g,"-")}function pt(s){let i=Zt(s);if(i.length<=ze)return i;return`${i.slice(0,ze)}-${Ya(s)}`}function we(){return Re(m(),"projects")}function yt(s){return Ut()??pt(s)}function Xn(s){let i=pt(s);return i===yt(s)?void 0:i}function St(s,i=we()){return Re(i,yt(s))}function en(s,i){let d=Ka(s);return Ba(s)===we()&&i(d)?d:void 0}async function Qn(s,i){try{if(i!==void 0&&i.hoverRestOn){let d=await i.realPath(s);return u(d.ok&&d.value.found?d.value.path:s)}return u(await Fa(s))}catch{return u(s)}}async function tn(s,i,d,f){let p=f!==void 0&&f.hoverRestOn?f.source:void 0,g=p===void 0?void 0:en(s,p.isKeySegment);if(p!==void 0&&g!==void 0){let b=await Ja(g,i,d,p);if(b!==void 0)return b}let h=Zt(i),S;try{S=await Qt(s,{withFileTypes:!0})}catch{return!1}for(let b of S){if(!b.isFile()||!b.name.endsWith(".jsonl"))continue;let E=await Va(Re(s,b.name));if(E===null)continue;if(Ks(E,h,d))return!0}return!1}function Ks(s,i,d){let f=Ua(s.tail,"relocated","relocatedCwd")??Ga(s.head,"cwd");if(f===void 0)return!1;let p=Zt(u(f));return d?p.toLowerCase()===i.toLowerCase():p===i}async function Ja(s,i,d,f){let{backend:p,transcriptKey:g,isKeySegment:h}=f,S=Zt(i),b=!1,E=new Set;try{let v=await qn((k)=>p.listEntries({namespace:"transcript",projectKey:s},js(k)),async(k)=>{for(let C of k){if(C.kind!=="key"||C.key.namespace!=="transcript"||C.key.projectKey!==s||C.key.agentId!==void 0||!h(C.key.sessionId)||E.has(C.key.sessionId))continue;let T=C.key.sessionId,P=await Fs({backend:p,key:g(s,T)});if(P===null)continue;if(E.add(T),Ks(P,S,d)){b=!0;return}}},{until:()=>b});if(b)return!0;if(v.status!=="done")return}catch{return}return!1}async function bt(s,i,d=we()){if(i!==void 0&&i.hoverRestOn)return Xa(s,i);let f=St(s,d),p=[];try{await Qt(f),p.push(f)}catch{}let g=Xn(s);if(g!==void 0){let k=Re(d,g);try{await Qt(k),p.push(k)}catch{}return p}let h=pt(s);if(h.length<=ze)return p;let S=process.platform==="win32",b=(k)=>S?k.toLowerCase():k,E=b(h.slice(0,ze)+"-"),v=b(f);try{for(let k of await Qt(d,{withFileTypes:!0})){if(!k.isDirectory()||!b(k.name).startsWith(E))continue;let C=Re(d,k.name);if(b(C)!==v&&await tn(C,s,S))p.push(C)}}catch{}return p}async function Xa(s,i){let d=await Qa(i.source);if(d===null){let f=Xn(s);return[St(s),...f!==void 0?[Re(we(),f)]:[]]}return Za(s,d,process.platform==="win32",i)}async function Qa(s){let{backend:i,isKeySegment:d}=s,f=[],p=new Set,g=0;try{if((await qn((S)=>i.listEntries({namespace:"transcript"},js(S)),(S)=>{for(let b of S){let E=Jn(b,d);if(E!==void 0&&!p.has(E))p.add(E),f.push(E)}g++})).status==="error")return g===0?null:f}catch{return g===0?null:f}return f}async function Za(s,i,d,f){let p=yt(s),g=St(s),h=Xn(s),S=h===void 0&&p.length>ze?p.slice(0,ze)+"-":void 0,b=we(),E=(j)=>d?j.toLowerCase():j,v=S!==void 0?E(S):void 0,k=E(p),C=!1,T,P=[],M=new Set;for(let j of i)if(j===p)C=!0;else if(h!==void 0){if(T===void 0&&E(j)===E(h))T=Re(b,j)}else if(v!==void 0&&E(j).startsWith(v)&&E(j)!==k&&!M.has(E(j)))M.add(E(j)),P.push(j);let D=[];for(let j of P){let J=Re(b,j);if(await tn(J,s,d,f))D.push(J)}return[...C?[g]:[],...T!==void 0?[T]:[],...D]}var Ep=Buffer.from('"compact_boundary"');var vp=Buffer.from('{"type":"attribution-snapshot"'),kp=Buffer.from('{"type":"system"'),ec=10,Cp=Buffer.from([ec]);function tc(s,i){if(s==="bypassPermissions")return"canUseTool will not be invoked: permissionMode 'bypassPermissions' auto-approves every tool call (except explicit deny rules) before the callback is consulted. To gate every tool call, use a PreToolUse hook instead.";let d=i.filter((f)=>f.length>0&&!f.includes("("));if(d.length===0)return;return`canUseTool will not be invoked for: ${d.join(", ")}. Bare allowedTools entries auto-approve the whole tool before the callback is consulted. To gate every tool call, use a PreToolUse hook; or remove the bare names from allowedTools so they fall through to canUseTool. Allow rules from settings files can also shadow the callback but are not visible here.`}function Bs(s,i,d){if(!s)return;let f=tc(i,d);if(f===void 0)return;process.emitWarning(f,{code:"CLAUDE_SDK_CAN_USE_TOOL_SHADOWED"})}import{realpathSync as nc}from"fs";import{isAbsolute as rc,relative as sc,resolve as oc,sep as ic}from"path";function ac(s){let i=oc(s??"."),d;try{d=nc(i)}catch{d=i}return u(d)}function Pe(s,i){let d=ac(s);if(i===void 0)return yt(d);return(i.CLAUDE_CONFIG_DIR?Et(i.CLAUDE_CODE_PROJECT_DIR_NAME):void 0)??pt(d)}function $s(s){return typeof s==="object"&&s!==null&&"type"in s&&s.type==="agent_metadata"}function Zn(s,i){let d=sc(i,s),f=d.split(ic);if(f[0]===".."||rc(d))return null;if(f.length<2)return null;let p=f[0],g=f[1];if(f.length===2&&g.endsWith(".jsonl"))return{projectKey:p,sessionId:g.replace(/\.jsonl$/,"")};if(f.length>=4){let h=f.slice(2),S=h.length-1;return h[S]=h.at(-1).replace(/\.jsonl$/,""),{projectKey:p,sessionId:g,subpath:h.join("/")}}return null}process.env.NoDefaultCurrentDirectoryInExePath="1";var bc=["enabledPlugins","extraKnownMarketplaces","additionalMarketplaces"];function Hs(s){let i;try{i=O(he(s.toString("utf8")))}catch{return s}if(!Gs(i))return s;let d=!1;for(let p of bc)if(Object.hasOwn(i,p))delete i[p],d=!0;let f=i.env;if(Gs(f)&&Object.hasOwn(f,"CLAUDE_CONFIG_DIR"))delete f.CLAUDE_CONFIG_DIR,d=!0;return d?t(i):s}function Gs(s){return s!==null&&typeof s==="object"&&!Array.isArray(s)}async function wc(s,i){if(!s)return;let d=s;try{let f=O(s);if(f?.claudeAiOauth?.refreshToken)delete f.claudeAiOauth.refreshToken,d=t(f)}catch{}await Ws(i,d,{mode:384})}function _c(){if(process.platform!=="darwin")return Promise.resolve(void 0);let s=Ts(Ps);return new Promise((i)=>{cc("security",["find-generic-password","-a",As(),"-w","-s",s],{encoding:"utf-8",timeout:5000,windowsHide:!0},(d,f)=>i(d?void 0:f.trim()||void 0))})}async function zs(s,i,d,f,p=60000,g){if(!ye(i))return;let h=Pe(d,f),S=await w(s.load({projectKey:h,sessionId:i}),p,`SessionStore.load() timed out after ${p}ms for session ${i}`);if(!S||S.length===0)return;let b=Y(pc(),`claude-resume-${lc()}`);try{let E=Y(b,"projects",h);await er(E,{recursive:!0,mode:448});let v=Y(E,`${i}.jsonl`);await Yn(v,S);let k=f?.CLAUDE_CONFIG_DIR??process.env.CLAUDE_CONFIG_DIR,C=k??Y(tr(),".claude"),T;try{T=await uc(Y(C,".credentials.json"),"utf-8")}catch(J){if(!_(J))throw J}if(!k&&!(f??process.env).ANTHROPIC_API_KEY&&!(f??process.env).CLAUDE_CODE_OAUTH_TOKEN)T=await _c()??T;await wc(T,Y(b,".credentials.json"));let P=Rs(st("CLAUDE_CONFIG_DIR")),M=k||tr(),D=Y(M,".claude.json");await He(D,Y(b,".claude.json"),void 0,zn(g,D,P.globalConfig,ue.globalConfig())),await He(Y(C,".config.json"),Y(b,".config.json"));for(let J of Bt)if(J)await He(Y(M,`.claude${J}.json`),Y(b,`.claude${J}.json`));let j=Y(C,"settings.json");if(await He(j,Y(b,"settings.json"),Hs,zn(g,j,P.userSettings,ue.userSettings())),await He(Y(C,"cowork_settings.json"),Y(b,"cowork_settings.json"),Hs),s.listSubkeys)await Ec(s,{projectKey:h,sessionId:i},Y(E,i),p);return b}catch(E){throw await rn(b),E}}async function Ec(s,i,d,f){let p=await w(s.listSubkeys({projectKey:i.projectKey,sessionId:i.sessionId}),f,`SessionStore.listSubkeys() timed out after ${f}ms for session ${i.sessionId}`);for(let g of p){let h=nn(d,g+".jsonl");if(!g||mc(g)||g.split(/[\\/]/).includes("..")||!h.startsWith(d+hc)){e(`[SessionStore] skipping unsafe subpath from listSubkeys: ${g}`,{level:"warn"});continue}let S=await w(s.load({projectKey:i.projectKey,sessionId:i.sessionId,subpath:g}),f,`SessionStore.load() timed out after ${f}ms for session ${i.sessionId} subpath ${g}`);if(!S||S.length===0)continue;let b=[],E=[];for(let v of S)if($s(v))b.push(v);else E.push(v);if(E.length>0)await er(Us(h),{recursive:!0}),await Yn(h,E);if(b.length>0){let v=b.at(-1),k=nn(d,g+".meta.json");await er(Us(k),{recursive:!0});let{type:C,...T}=v;await Ws(k,t(T),{mode:384})}}}function vc(s){let i=s?.accepted===!0&&(typeof s.directory!=="string"||!(gc.isAbsolute(s.directory)||yc.isAbsolute(s.directory)))?void 0:s;if(s!==void 0&&i===void 0)e("workspaceTrust ignored: accepted requires an absolute directory, as it exists where Claude Code runs",{level:"warn"});return i}function nr(s,i){let{isSingleUserTurn:d,resumeConfigDir:f,deferSpawn:p}=i,{systemPrompt:g,settings:h,managedSettings:S,settingSources:b,sandbox:E,...v}=s??{},k,C,T,P;if(g===void 0)k="";else if(typeof g==="string")k=g;else if(Array.isArray(g))k=g;else if(g.type==="custom")k=g.prompt,P=g.snapshot;else if(g.type==="preset")C=g.append,T=g.excludeDynamicSections,P=g.snapshot;process.env.CLAUDE_AGENT_SDK_VERSION="0.3.295";let{abortController:M=nt(),additionalDirectories:D=[],projectConfigRoot:j,agent:J,agents:fe,allowedTools:B=[],betas:U,canUseTool:W,continue:K,cwd:te,debug:q,debugFile:Ee,disallowedTools:ve=[],tools:de,env:ie,executable:qe=ge()?"bun":"node",executableArgs:Ae=[],extraArgs:_t={},fallbackModel:ln,enableFileCheckpointing:ke,toolConfig:x,forkSession:vt,hooks:kt,includeHookEvents:Ye,includePartialMessages:Je,forwardSubagentText:Xe,verbatimPrompts:Qe=!1,onElicitation:xe,onUserDialog:N,supportedDialogKinds:ae,perTaskStopAffordance:se,rapidFollowupPreempt:Oe,workspaceTrust:un,persistSession:Ct,sessionStore:le,sessionStoreFlush:fo,thinking:Ze,effort:po,maxThinkingTokens:dn,maxTurns:mo,maxBudgetUsd:go,taskBudget:ho,mcpServers:ir,model:yo,outputFormat:ar,permissionMode:So,allowDangerouslySkipPermissions:bo=!1,permissionPromptToolName:wo,permissionPrompts:_o,plugins:At,pluginDelivery:fn="argv",getOAuthToken:cr,getHostAuthToken:lr,workload:ur,resume:dr,resumeSessionAt:Eo,resumeDropsTurn:vo,sessionId:ko,skills:fr,stderr:Co,strictMcpConfig:Ro}=v,pr=So;if(le&&Ct===!1)throw Error("sessionStore cannot be used with persistSession: false -- the storage adapter requires local writes to mirror from. Use CLAUDE_CONFIG_DIR=/tmp for ephemeral local writes with external mirroring.");if(ae!==void 0&&ae.length>0&&!N)throw Error("supportedDialogKinds requires an onUserDialog callback -- declaring dialog kinds without a handler would park dialogs nothing can answer. Provide onUserDialog, or omit supportedDialogKinds.");let Po=vc(un);if(le&&K&&!dr&&!le.listSessions)throw Error("Options.continue with sessionStore requires store.listSessions to be implemented");if(le&&ke)throw Error("enableFileCheckpointing is not yet supported with sessionStore (backup blobs are not mirrored, so rewindFiles() fails after a store-backed resume).");if(le&&v.spawnClaudeCodeProcess)e("sessionStore with custom spawnClaudeCodeProcess: ensure the subprocess CLAUDE_CONFIG_DIR matches the parent (same path, same separators) or transcript_mirror frames will be dropped.",{level:"warn"});if(Bs(!!W,pr??"default",B),fn!=="argv"&&fn!=="initialize")throw Error("Invalid pluginDelivery. Expected 'argv' or 'initialize'.");let mr=fn==="initialize"&&At!==void 0&&At.length>0,pn=v.pathToClaudeCodeExecutable;if(!pn){let Q=Sc(import.meta.url),oe=fc(Q),pe=Jr((Me)=>oe.resolve(Me));if(!pe)throw Error(`Native CLI binary for ${process.platform}-${process.arch} not found. Reinstall @anthropic-ai/claude-agent-sdk without --omit=optional, or set options.pathToClaudeCodeExecutable.`);pn=pe}let gr=ar?.type==="json_schema"?ar.schema:void 0,H=ie?{...ie}:{...process.env};if(!H.CLAUDE_CODE_ENTRYPOINT)H.CLAUDE_CODE_ENTRYPOINT="sdk-ts";if(!H.CLAUDE_AGENT_SDK_VERSION)H.CLAUDE_AGENT_SDK_VERSION="0.3.295";if(ke)H.CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING="true";if(!Object.keys(H).some((Q)=>Q.toUpperCase()==="CLAUDE_CODE_SDK_READS_SESSION_STATE"))H.CLAUDE_CODE_SDK_READS_SESSION_STATE="1";let mn=De(H.CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS),To=Number.isFinite(mn)&&mn>=0?mn:$t;if(cr)H.CLAUDE_CODE_SDK_HAS_OAUTH_REFRESH="1";if(lr)H.CLAUDE_CODE_SDK_HAS_HOST_AUTH_REFRESH="1";if(x?.askUserQuestion?.previewFormat)H.CLAUDE_CODE_QUESTION_PREVIEW_FORMAT=x.askUserQuestion.previewFormat;for(let[Q,oe]of[[x?.askUserQuestion?.extendedQuestions,"CLAUDE_CODE_QUESTION_EXTENDED"],[x?.askUserQuestion?.optionalDescriptions,"CLAUDE_CODE_QUESTION_OPTIONAL_DESCRIPTIONS"]])if(Q)H[oe]="1";else if(!ie){for(let pe of Object.keys(H))if(pe.toUpperCase()===oe)delete H[pe]}let gn={};if(Gn.inject(Bn.active(),gn),"traceparent"in gn){for(let Q of["TRACEPARENT","TRACESTATE"])if(!(Q in(ie??{})))delete H[Q]}for(let[Q,oe]of Object.entries(gn)){let pe=Q.toUpperCase();if(!(pe in(ie??{})))H[pe]=oe}let hr={},yr=new Map;if(ir)for(let[Q,oe]of Object.entries(ir))if(oe.type==="sdk"&&oe.instance)yr.set(Q,oe);else hr[Q]=oe;let et;if(Ze)switch(Ze.type){case"adaptive":et={type:"adaptive",display:Ze.display};break;case"enabled":et={type:"enabled",budgetTokens:Ze.budgetTokens,display:Ze.display};break;case"disabled":et={type:"disabled"};break}else if(dn!==void 0)et=dn===0?{type:"disabled"}:{type:"enabled",budgetTokens:dn};if(f){if(H.CLAUDE_CONFIG_DIR=f,process.platform==="win32")H.CLAUDE_SECURESTORAGE_CONFIG_DIR=ie?.CLAUDE_SECURESTORAGE_CONFIG_DIR??process.env.CLAUDE_SECURESTORAGE_CONFIG_DIR??ie?.CLAUDE_CONFIG_DIR??process.env.CLAUDE_CONFIG_DIR??""}let Sr=new In({abortController:M,additionalDirectories:D,projectConfigRoot:j,agent:J,betas:U,cwd:te,debug:q,debugFile:Ee,executable:qe,executableArgs:Ae,extraArgs:ur?{..._t,workload:ur}:_t,pathToClaudeCodeExecutable:pn,env:H,forkSession:vt,stderr:Co,thinkingConfig:et,effort:po,maxTurns:mo,maxBudgetUsd:go,taskBudget:ho,model:yo,fallbackModel:ln,jsonSchema:gr,permissionMode:pr,allowDangerouslySkipPermissions:bo,permissionPromptToolName:wo,permissionPrompts:_o,continueConversation:le?void 0:K,resume:dr,resumeSessionAt:Eo,resumeDropsTurn:vo,sessionId:ko,settings:typeof h==="object"?t(h):h,managedSettings:S?t(S):void 0,settingSources:b,skills:fr,allowedTools:B,disallowedTools:ve,tools:de,mcpServers:hr,strictMcpConfig:Ro,canUseTool:!!W,hooks:!!kt,includeHookEvents:Ye,includePartialMessages:Je,persistSession:Ct,sessionMirror:!!le,plugins:At,pluginsViaInitialize:mr,sandbox:E,spawnClaudeCodeProcess:v.spawnClaudeCodeProcess,onProcessSpawned:s?.onProcessSpawned,deferSpawn:p}),Ao={systemPrompt:k,appendSystemPrompt:C,planModeInstructions:v.planModeInstructions,systemPromptSnapshot:P,appendSubagentSystemPrompt:v.appendSubagentSystemPrompt,toolAliases:v.toolAliases,excludeDynamicSections:T,agents:fe,title:v.title,skills:fr,webSearchIsolationExemptMcpServers:v.webSearchIsolationExemptMcpServers,promptSuggestions:v.promptSuggestions,agentProgressSummaries:v.agentProgressSummaries,forwardSubagentText:Xe,supportedDialogKinds:ae,perTaskStopAffordance:se,rapidFollowupPreempt:Oe,forwardNestedSubagentToolCalls:s?.forwardNestedSubagentToolCalls,workspaceTrust:Po,plugins:mr?At:void 0,captureSdkMcpManifests:!it("CLAUDE_AGENT_SDK_DISABLE_MCP_MANIFESTS")},hn=new qt(Sr,d,W,kt,M,yr,gr,Ao,xe,cr,lr,N,Qe,To);if(le){let Q=()=>Y(H.CLAUDE_CONFIG_DIR??Y(tr(),".claude"),"projects"),oe=fo==="eager",pe=new Fn(async(Me,yn)=>{let tt=Zn(Me,Q());if(tt)await le.append(tt,yn);else e(`[SessionStore] dropping mirror frame: filePath ${Me} is not under ${Q()} -- subprocess CLAUDE_CONFIG_DIR likely differs from parent (custom spawnClaudeCodeProcess / container?)`,{level:"warn"})},{onError:(Me,yn)=>{let tt=Zn(Me,Q());if(tt)hn.reportMirrorError(tt,yn.message)},maxPendingEntries:oe?0:Ln,maxPendingBytes:oe?0:jn});hn.setTranscriptMirrorBatcher(pe)}return{queryInstance:hn,transport:Sr,abortController:M,processEnv:H,verbatimPrompts:Qe}}function rr(s,i,d,f){if(typeof i==="string")s.writeAfterInitialize(t({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:i}]},parent_tool_use_id:null,...f&&{client_composed:!0}})+`
`).catch((p)=>d.abort(p));else s.streamInput(i).catch((p)=>d.abort(p))}var kc=new Set(["EBUSY","EMFILE","ENFILE","ENOTEMPTY","EPERM"]);async function rn(s){for(let i=0;;i++)try{return await dc(s,{recursive:!0,force:!0})}catch(d){if(i>=4||!kc.has(n(d)??""))return;await L((i+1)*100)}}function Cc(s,i){s.waitForExit().catch(()=>{}).finally(()=>rn(i))}function Rc({prompt:s,options:i}){if((i?.resume||i?.continue)&&i?.sessionStore)return Pc(s,i);let{queryInstance:d,abortController:f,verbatimPrompts:p}=nr(i,{isSingleUserTurn:typeof s==="string"});return rr(d,s,f,p),d}function Pc(s,i){let{queryInstance:d,transport:f,abortController:p,processEnv:g,verbatimPrompts:h}=nr({...i},{isSingleUserTurn:typeof s==="string",deferSpawn:!0}),S=nn(i.cwd??"."),b=i.sessionStore,E=i.loadTimeoutMs??60000,v=i.resume;return(async()=>{if(!v)v=(await w(b.listSessions(Pe(S,i.env)),E,`SessionStore.listSessions() timed out after ${E}ms`)).slice().sort((T,P)=>P.mtime-T.mtime)[0]?.sessionId;if(!v)return;return zs(b,v,S,i.env,i.loadTimeoutMs)})().then((C)=>{if(C){f.updateResume(v);let T={CLAUDE_CONFIG_DIR:C};if(process.platform==="win32"){let P=i.env?.CLAUDE_SECURESTORAGE_CONFIG_DIR??process.env.CLAUDE_SECURESTORAGE_CONFIG_DIR??i.env?.CLAUDE_CONFIG_DIR??process.env.CLAUDE_CONFIG_DIR??"";T.CLAUDE_SECURESTORAGE_CONFIG_DIR=P,g.CLAUDE_SECURESTORAGE_CONFIG_DIR=P}f.updateEnv(T),g.CLAUDE_CONFIG_DIR=C,d.addCleanupCallback(()=>Cc(f,C))}if(!d.isClosed())f.spawn()}).catch((C)=>{let T=I(C);f.spawnAbort(T),d.setError(T)}),rr(d,s,p,h),d}async function Tc(s={}){return(await Ac(s)).warm}async function Ac({options:s,initializeTimeoutMs:i=60000}){let d,f=s?.resume;if((f||s?.continue)&&s?.sessionStore){let S=nn(s.cwd??".");if(!f){if(!s.sessionStore.listSessions)throw Error("Options.continue with sessionStore requires store.listSessions to be implemented");let b=s.loadTimeoutMs??60000;f=(await w(s.sessionStore.listSessions(Pe(S,s.env)),b,`SessionStore.listSessions() timed out after ${b}ms`)).slice().sort((v,k)=>k.mtime-v.mtime)[0]?.sessionId}if(f)d=await zs(s.sessionStore,f,S,s.env,s.loadTimeoutMs)}let p,g,h;try{let P=function(){if(T)return;T=!0,k.close()},S=nr(d&&f&&f!==s?.resume?{...s,resume:f}:s,{isSingleUserTurn:!1,resumeConfigDir:d});p=S.queryInstance;let{transport:b,abortController:E,verbatimPrompts:v}=S;g=b;let k=S.queryInstance;if(d){let D=d;k.addCleanupCallback(()=>{h=b.waitForExit().catch(()=>{}).then(()=>rn(D))})}let C=`Subprocess initialization did not complete within ${i}ms — check authentication and network connectivity`;await w(k.initializationResult(),i,C).catch((D)=>{throw xt(D,C)?A(D,{telemetryMessage:`Subprocess initialization did not complete within ${i}ms`,errorClass:"initialize_timeout"}):D});let T=!1;return{warm:{query(D){if(T)throw Error("WarmQuery.query() can only be called once");T=!0;try{rr(k,D,E,v)}catch(j){throw k.close(),j}if(typeof D==="string")k.setIsSingleUserTurn(!0);return k},close:P,async[Symbol.asyncDispose](){T=!0,k.close(),await h}},query:k,transport:b}}catch(S){if(p?.close(),d&&!h){let b=g;h=(b?b.waitForExit().catch(()=>{}):Promise.resolve()).then(()=>rn(d))}throw await h,S}}import{randomUUID as lo}from"crypto";import{constants as eo}from"fs";import{open as Bc,readdir as ro,rm as to,stat as $c}from"fs/promises";import{join as _e}from"path";class qs{available=void 0;probing=void 0;procUnreadableLogged=!1}var Bm=new a(()=>new qs);var Vs=["commands","agents","output-styles","skills","workflows","routines","themes","rules","session-env","uploads","mcp-skill-archives","usage-data","mcp-discovery-cache"];var ag=new Set(Vs),cg=`must be one of the userConfigDir directory names (${Vs.join(", ")})`,Ys=["installed","marketplaces","flagged","catalog","inUseSweep"];var lg=new Set(Ys),ug=`must be one of the pluginRegistry files (${Ys.join(", ")})`,Js=["manifest","catalog"];var dg=new Set(Js),fg=`must be one of the marketplaceCache forms (${Js.join(", ")})`;var Xs=["world"];var pg=new Set(Xs),mg=`must be one of the session journal names (${Xs.join(", ")})`;var Qs=["backup","corrupted"];var gg=new Set(Qs),hg=`must be one of the global-config copy kinds (${Qs.join(", ")})`;var Nc="cloud-snapshots";var Lc=new Set(["memory","tiny_memory","bagel",Nc,"bridge-pointer.json",".session-aliases"]);var Zs=".cast",yg=`<stamp>${Zs} inside a session's folder is that session's terminal recording stream: address it as keys.recording(projectKey, sessionId, stamp)`;var jc=[".ccr-tip.json",".precompact.json",Zs],Sg=`must not end with ${jc.join(", ")}: those name a session's project-level sibling files`;var Fc=".dir-sync.json",bg=`must not end with ${Fc}: that name is reserved for a cloud session's record at the project level`;var wg=`${[...Lc].join(", ")} are reserved: they name project-level entries, not sessions`;var Kc="timeline.jsonl",_g=`${Kc} is the job's timeline stream: address it as keys.jobTimeline(jobId)`;function sn(s){return s===void 0?void 0:{source:s,hoverRestOn:l()}}var Uc=64;function or(s){return l()?s:void 0}async function so(s,i,d={},f){if(!ye(s))throw Error(`Invalid sessionId: ${s}`);if(!i.trim())throw Error("title must be non-empty");let p=t({type:"custom-title",customTitle:i.trim(),sessionId:s})+`
`;await co(s,p,d,or(f))}async function oo(s,i,d={},f){if(!ye(s))throw Error(`Invalid sessionId: ${s}`);if(i!==null){let g=me(i).trim();if(!g)throw Error("tag must be non-empty (use null to clear)");i=g}let p=t({type:"tag",tag:i??"",sessionId:s})+`
`;await co(s,p,d,or(f))}async function io(s,i={},d){if(!ye(s))throw Error(`Invalid sessionId: ${s}`);let f=or(d);for(let p of await Gc(i,f)){if(l()&&f!==void 0){let S=en(p,f.isKeySegment);if(S!==void 0){if(await Hc(S,s,f))return;continue}}let g=_e(p,`${s}.jsonl`),h;try{({size:h}=await $c(g))}catch(S){let b=n(S);if(b==="ENOENT"||b==="ENOTDIR")continue;throw S}if(h===0)continue;await to(g,{force:!0}),await to(_e(p,s),{recursive:!0,force:!0});return}throw Error(i.dir?`Session ${s} not found in project directory for ${i.dir}`:`Session ${s} not found in any project directory`)}async function Hc(s,i,d){let{backend:f,transcriptKey:p}=d,g=p(s,i),h=await f.statMeta(g);if(!h.ok){if(h.error.code==="NotFound")return!1;throw Error("Session delete: transcript unreadable via storage",{cause:h.error})}if((h.value.storedBytes??h.value.size)===0)return!1;for(let b of["transcript","sidecar"]){let E=await f.deleteScope({namespace:b,projectKey:s,sessionId:i});if(!E.ok)throw Error("Session delete: session directory not deletable via storage",{cause:E.error})}let S=await f.delete(g);if(!S.ok)throw Error("Session delete: transcript not deletable via storage",{cause:S.error});return!0}async function Gc(s,i){if(s.dir){let f=await Qn(s.dir,Vn(i,l())),p=await no(f,i),g;try{g=await Xt(f)}catch{g=[]}for(let h of g){if(h===f)continue;p.push(...await no(h,i))}return p}let d=we();if(l()&&i!==void 0){let f=await ao(i);if(f===void 0)return[];if(f.laterPageFailed)throw Error("Session delete: project listing incomplete via storage");return f.names.map((p)=>_e(d,p))}try{return(await ro(d,{withFileTypes:!0})).filter((p)=>p.isDirectory()||p.isSymbolicLink()).map((p)=>_e(d,p.name))}catch{return[]}}async function no(s,i){let d=sn(i);if(d===void 0||!d.hoverRestOn)return bt(s);let f=await bt(s,d),p=St(s),g=process.platform==="win32",h=[];for(let S of f)if(S===p||await tn(S,s,g,d))h.push(S);return h}async function ao(s){let i=[],d,f=0;try{do{let p=await s.backend.listEntries({namespace:"transcript"},{skipScopeStats:!0,...d!==void 0&&{cursor:d}});if(!p.ok)return f===0?void 0:{names:i,laterPageFailed:!0};for(let g of p.value.items){let h=Jn(g,s.isKeySegment);if(h!==void 0)i.push(h)}d=p.value.cursor}while(d&&++f<Uc);return{names:i,laterPageFailed:Boolean(d)}}catch{return f===0&&i.length===0?void 0:{names:i,laterPageFailed:!0}}}async function co(s,i,d,f){let p=`${s}.jsonl`;if(d.dir){let S=await Qn(d.dir,Vn(f,l()));for(let E of await bt(S,sn(f)))if(await on(_e(E,p),i,sr(E,s,f)))return;let b;try{b=await Xt(S)}catch{b=[]}for(let E of b){if(E===S)continue;for(let v of await bt(E,sn(f)))if(await on(_e(v,p),i,sr(v,s,f)))return}throw Error(`Session ${s} not found in project directory for ${d.dir}`)}let g=we();if(l()&&f!==void 0){let S=await ao(f);if(S===void 0)throw new c(`Session ${s} not found (no projects directory)`,"Session not found (no projects directory)");let{names:b}=S;for(let E of b){let v=_e(g,E);if(await on(_e(v,p),i,sr(v,s,f)))return}throw new c(`Session ${s} not found in any project directory`,"Session not found in any project directory")}let h;try{h=await ro(g)}catch{throw Error(`Session ${s} not found (no projects directory)`)}for(let S of h)if(await on(_e(g,S,p),i))return;throw Error(`Session ${s} not found in any project directory`)}async function on(s,i,d){if(l()&&d!==void 0)return Wc(d,i);let f;try{f=await Bc(s,eo.O_WRONLY|eo.O_APPEND)}catch(p){let g=n(p);if(g==="ENOENT"||g==="ENOTDIR")return!1;throw p}try{let{size:p}=await f.stat();if(p===0)return!1;let g=process.platform==="win32"?p:void 0,h=Buffer.from(i,"utf8"),S=0;while(S<h.length){let{bytesWritten:b}=await f.write(h,S,h.length-S,g);if(b<=0)throw new c(`tryAppend: short write to ${s} stalled with ${h.length-S} bytes remaining`,"tryAppend: zero-progress short write");if(S+=b,g!==void 0)g+=b}return!0}finally{await f.close()}}async function Wc({backend:s,key:i},d){let f=await s.append(i,[{data:d}],{precondition:{type:"ifExists",nonEmpty:!0}});if(!f.ok){if(f.error.code==="NotFound")return!1;throw Error("Session append: transcript not writable via storage",{cause:f.error})}return!0}function sr(s,i,d){if(!l()||d===void 0)return;let f=en(s,d.isKeySegment);return f===void 0?void 0:{backend:d.backend,key:d.transcriptKey(f,i)}}async function zc(s,i,d){if(d?.sessionStore)return Yc(d.sessionStore,s,i,d.dir);return so(s,i,d)}async function qc(s,i,d){if(d?.sessionStore)return Jc(d.sessionStore,s,i,d.dir);return oo(s,i,d)}async function Vc(s,i){if(!ye(s))throw new c(`Invalid sessionId: ${s}`,"deleteSession: invalid sessionId (must be a UUID)");if(i?.sessionStore){if(!i.sessionStore.delete)return;let d=Pe(i.dir);await i.sessionStore.delete({projectKey:d,sessionId:s});return}return io(s,i)}async function Yc(s,i,d,f){if(!ye(i))throw new c(`Invalid sessionId: ${i}`,"renameSession: invalid sessionId (must be a UUID)");if(!d.trim())throw Error("title must be non-empty");let p=Pe(f);await s.append({projectKey:p,sessionId:i},[{type:"custom-title",customTitle:d.trim(),sessionId:i,uuid:lo(),timestamp:new Date().toISOString()}])}async function Jc(s,i,d,f){if(!ye(i))throw new c(`Invalid sessionId: ${i}`,"tagSession: invalid sessionId (must be a UUID)");if(d!==null){let g=me(d).trim();if(!g)throw Error("tag must be non-empty (use null to clear)");d=g}let p=Pe(f);await s.append({projectKey:p,sessionId:i},[{type:"tag",tag:d??"",sessionId:i,uuid:lo(),timestamp:new Date().toISOString()}])}import{McpServer as Xc}from"@modelcontextprotocol/sdk/server/mcp.js";import{normalizeObjectSchema as Qc}from"@modelcontextprotocol/sdk/server/zod-compat.js";import{toJsonSchemaCompat as Zc}from"@modelcontextprotocol/sdk/server/zod-json-schema-compat.js";import{globalRegistry as uo}from"zod/v4";import{version as Te}from"zod/v4/core";function el(s,i,d,f,p){let g={};if(p?.searchHint)g["anthropic/searchHint"]=p.searchHint;if(p?.alwaysLoad)g["anthropic/alwaysLoad"]=!0;return{name:s,description:i,inputSchema:d,handler:f,annotations:p?.annotations,_meta:Object.keys(g).length>0?g:void 0}}var tl="CLAUDE_SDK_MCP_TOOL_SCHEMA_UNCONVERTIBLE";function nl(s){let i=new Xc({name:s.name,version:s.version??"1.0.0"},{capabilities:{tools:s.tools?{}:void 0},instructions:s.instructions});if(s.tools)s.tools.forEach((f)=>{let p=sl(f.inputSchema)?z(f.inputSchema,(v)=>{if(!cn(v))return v;let k=ol(v),C=v.description;if(C&&!uo.has(k))uo.add(k,{description:C});return k}):f.inputSchema,g=i.registerTool(f.name,{description:f.description,inputSchema:p,annotations:f.annotations,_meta:s.alwaysLoad?{"anthropic/alwaysLoad":!0,...f._meta}:f._meta},f.handler);if(!Object.getOwnPropertyDescriptor(g,"enabled")?.configurable||!Object.isExtensible(g))return;let S=g.enabled,b,E;Object.defineProperty(g,"enabled",{configurable:!0,enumerable:!0,get(){if(!S||b===g.inputSchema)return S;try{let v=Qc(g.inputSchema);if(v)Zc(v,{strictUnions:!0,pipeStrategy:"input"});return b=g.inputSchema,!0}catch(v){if(E!==g.inputSchema){E=g.inputSchema;let k=y(v).replace(/\.$/,""),C=[`Tool "${f.name}" on SDK MCP server "${s.name}" was left out of the server's tool list, because its input schema cannot be converted to JSON Schema${k?`: ${k}`:""}. The server's other tools are unaffected.`,...rl(f.inputSchema,v)].join(" ");if(typeof process<"u"&&typeof process.emitWarning==="function")process.emitWarning(C,{code:tl});else console.warn(C)}return!1}},set(v){S=v}})});let d=Gt(s.timeout);return{type:"sdk",name:s.name,instance:i,...d!==void 0&&{timeout:d}}}function rl(s,i){if(i instanceof ReferenceError)return["Something this tool's schema reads, such as a z.lazy target or a default value, is not defined yet. Define every schema this tool uses before passing the server to query(), startup() or setMcpServers(). A zod 4 z.lazy whose function has thrown once stays broken, so create the schema, its tool and the server again to get the tool back."];let p=`${Te.major}.${Te.minor}.${Te.patch}`,g=Object.values(s).filter(cn).map((k)=>k._zod?.version).find((k)=>typeof k?.major==="number"&&(k.major!==Te.major||k.minor!==Te.minor||k.patch!==Te.patch)),h=g&&`this tool's schema was built with zod ${g.major}.${g.minor}.${g.patch}, and this SDK converts schemas with its own zod ${p}`,S=`${Te.major}.${Te.minor}`;if(!(i instanceof TypeError)){let k=["Change this tool's schema so that every field can be converted."];if(h)k.push(`A different zod version can also cause this: ${h}, so building the schema with zod ${S} may fix it.`);return k}let b="a schema this tool uses is not defined yet, or a zod 3 schema is nested inside a zod 4 one. Define every schema this tool uses before passing the server to query(), startup() or setMcpServers(). Build the whole schema with zod 3 or with zod 4, not a mix of the two. A zod 4 z.lazy whose function has thrown once stays broken, so create the schema, its tool and the server again to get the tool back.";if(!g)return[`This can mean ${b}`];let E=[`The zod versions differ: ${h}. Conversion can fail across versions, so build the schema with zod ${S}, or use an SDK release that bundles your zod version.`],v=g.major===4&&g.minor<=3;if(v)E.push(`On zod ${g.major}.${g.minor}, a z.record given only one argument also causes this; pass both, as in z.record(keySchema, valueSchema).`);return E.push(`If ${v?"neither is the cause":"the version difference is not the cause"}, it can mean ${b}`),E}function cn(s){return typeof s==="object"&&s!==null&&"_zod"in s}function sl(s){return typeof s==="object"&&s!==null&&!("_zod"in s)&&!("_def"in s)&&typeof s.parse!=="function"}function ol(s){if(!(il(s)?!Ie(s,!0):an(s)&&!Ie(s,!1))||s._zod.optin!=="optional"||s._zod.optout!=="optional"||typeof s.clone!=="function")return s;let d=s.clone();return d._zod.optin="defaulted",d}function il(s){let i=s._zod.version;return i?.major===4&&i.minor<5}function Ie(s,i,d=new Set){if(!cn(s)||d.has(s))return!1;d.add(s);let f=s._zod.def;switch(f.type){case"lazy":return!0;case"optional":return!i&&Ie(f.innerType,i,d);case"nullable":case"catch":case"readonly":return Ie(f.innerType,i,d);case"pipe":return Ie(f.in,i,d)||Ie(f.out,i,d);case"union":return f.options?.some((p)=>Ie(p,i,d))??!1;default:return!1}}function an(s,i=new Set){if(!cn(s)||i.has(s))return!1;i.add(s);let d=s._zod.def;switch(d.type){case"default":case"prefault":return!0;case"optional":case"nullable":case"catch":case"readonly":return an(d.innerType,i);case"pipe":return an(d.in,i);case"union":return d.options?.some((f)=>an(f,i))??!1;default:return!1}}async function al(s){let{resolveSettingsForSdk:i}=await import("./core-tm6xdb2r.mjs");return i(s)}var cl=new Set(["bypassPermissions","auto","acceptEdits"]),ll=new Set(["project"]),ul=new Set(["project","local"]);function dl(s){let i=s.effective.permissions?.defaultMode;if(!i||!cl.has(i))return s.effective;for(let d=s.sources.length-1;d>=0;d--){let f=s.sources[d];if(f.settings.permissions?.defaultMode!==void 0){if((Wt.includes(i)?ul:ll).has(f.source)){let{defaultMode:g,...h}=s.effective.permissions??{};return{...s.effective,permissions:h}}return s.effective}}return s.effective}export{ce as AbortError,Vt as EXIT_REASONS,G as HOOK_EVENTS,It as ORG_POLICY_LIMIT_PREFIXES,Yt as SYSTEM_PROMPT_DYNAMIC_BOUNDARY,Pt as USAGE_LIMIT_ERROR_PREFIXES,Mt as USAGE_TRANSITION_PREFIXES,Lt as USAGE_WARNING_PREFIXES,nl as createSdkMcpServer,Vc as deleteSession,dl as filterEscalatingDefaultMode,Rc as query,zc as renameSession,al as resolveSettings,Tc as startup,qc as tagSession,el as tool};