@cortexkit/opencode-anthropic-auth 2.2.1 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
+ import { type ClaudeRefusalRecoveryFamily } from '@cortexkit/anthropic-auth-core';
1
2
  export declare const FABLE_FALLBACK_MODEL_ID = "claude-opus-4-8";
2
3
  export declare const FABLE_FALLBACK_TURNS = 10;
3
4
  export type FableStandbyCacheAnchor = {
@@ -21,13 +22,14 @@ export type FableFallbackPlan = {
21
22
  };
22
23
  /**
23
24
  * Models whose content-filter refusal we recover from by downgrading to Opus 4.8
24
- * for a bounded window. Fable 5, Fable 5.1, Opus 5, and Opus 5.5 have separate
25
- * source family because recovery state must not cross-contaminate distinct
26
- * requested models. All use Anthropic's `claude-opus-4-8` fallback for
27
- * the same classifier refusal shape and recovery period. Mythos has no
28
- * classifiers and Sonnet 5 is not flagged — both stay outside this gate.
25
+ * for a bounded window: capability rows with a `refusalRecoveryFamily` (Fable 5,
26
+ * Fable 5.1, Opus 5 and Opus 5.5). Each has a separate source family because
27
+ * recovery state must not cross-contaminate distinct requested models. All use
28
+ * Anthropic's `claude-opus-4-8` fallback for the same classifier refusal shape
29
+ * and recovery period. Mythos has no classifiers and Sonnet 5 is not flagged —
30
+ * both stay outside this gate.
29
31
  */
30
- export type RecoverableRefusalFamily = 'fable-5' | 'fable-5-1' | 'opus-5' | 'opus-5-5';
32
+ export type RecoverableRefusalFamily = ClaudeRefusalRecoveryFamily;
31
33
  export declare function recoverableRefusalFamily(model: unknown): RecoverableRefusalFamily | null;
32
34
  export declare function isRecoverableRefusalModel(model: unknown): model is string;
33
35
  export declare class FableFallbackManager {
@@ -0,0 +1,2 @@
1
+ import{randomUUID as P}from"node:crypto";import{mkdir as g,readFile as y,rename as b,rm as C,rmdir as m,stat as R,unlink as w,writeFile as S}from"node:fs/promises";import{tmpdir as d}from"node:os";import{dirname as v,join as M}from"node:path";import{formatQuota as c,isQuotaStale as u,logger as z,quotaDisplayProjection as I,quotaWindowParts as s}from"@cortexkit/anthropic-auth-core";var n="OPENCODE_ANTHROPIC_AUTH_SIDEBAR_STATE_FILE",i=M(d(),"opencode-anthropic-auth"),l=M(i,"sidebar-state.json");function f(){return process.env[n]||l}var H={main:{quota:null},fallbacks:[],activeId:void 0,route:"main",relay:null,fastMode:!1,lastUpdated:0};function Q(J){return J!==null&&typeof J==="object"&&!Array.isArray(J)}function N(J){return typeof J==="number"&&Number.isFinite(J)}function o(J){if(!Q(J))return;let Z=Number(J.count),V=Number(J.inputTokens),X=Number(J.outputTokens),Y=Number(J.since);if(![Z,V,X,Y].every(Number.isFinite)||Z<0||V<0||X<0||Y<0)return;return{count:Math.floor(Z),inputTokens:Math.floor(V),outputTokens:Math.floor(X),since:Math.floor(Y)}}function r(J){if(!Q(J))return;if(typeof J.id!=="string"||!J.id.trim())return;if(typeof J.label!=="string"||!J.label.trim())return;let Z={id:J.id.trim(),label:J.label.trim()};if(J.nextDueAt===null)Z.nextDueAt=null;else if(N(J.nextDueAt))Z.nextDueAt=J.nextDueAt;if(J.lastPrimedAt===null)Z.lastPrimedAt=null;else if(N(J.lastPrimedAt))Z.lastPrimedAt=J.lastPrimedAt;if(J.lastResult==="ok"||J.lastResult==="error"||J.lastResult==="skipped")Z.lastResult=J.lastResult;let V=o(J.usage);if(V)Z.usage=V;if(N(J.estimatedCostUsd))Z.estimatedCostUsd=J.estimatedCostUsd;return Z}function a(J){if(!Q(J))return;if(typeof J.enabled!=="boolean")return;let Z=Array.isArray(J.accounts)?J.accounts.map(r).filter((V)=>V!=null):[];return{enabled:J.enabled,accounts:Z}}function q(J){if(!Q(J))return;let Z=Number(J.usedPercent),V=Number(J.remainingPercent);if(!Number.isFinite(Z)||!Number.isFinite(V))return;return{usedPercent:Z,remainingPercent:V,resetsAt:typeof J.resetsAt==="string"?J.resetsAt:void 0,...N(J.checkedAt)&&{checkedAt:J.checkedAt}}}function D(J){if(!Q(J))return null;let Z={};if(N(J.checkedAt))Z.checkedAt=J.checkedAt;let V=q(J.five_hour),X=q(J.seven_day);if(V)Z.five_hour=V;if(X)Z.seven_day=X;if(Array.isArray(J.scoped)){let Y=J.scoped.map((x)=>{if(!Q(x))return;let $=q(x);if(!$)return;if(typeof x.id!=="string"||!x.id.trim())return;if(typeof x.title!=="string"||!x.title.trim())return;if(typeof x.modelName!=="string"||!x.modelName.trim())return;let j=typeof x.modelId==="string"&&x.modelId.trim()?x.modelId.trim():void 0;return{...$,id:x.id.trim(),title:x.title.trim(),...j&&{modelId:j},modelName:x.modelName.trim()}}).filter((x)=>x!=null);Z.scoped=Y}if(Q(J.extraUsage)){let Y=A(J.extraUsage.used),x=A(J.extraUsage.limit);if(Y&&x&&typeof J.extraUsage.exhausted==="boolean")Z.extraUsage={used:Y,limit:x,...typeof J.extraUsage.utilizationPercent==="number"&&Number.isFinite(J.extraUsage.utilizationPercent)&&{utilizationPercent:J.extraUsage.utilizationPercent},...typeof J.extraUsage.severity==="string"&&{severity:J.extraUsage.severity},exhausted:J.extraUsage.exhausted}}if(typeof J.bindingWindow==="string"&&J.bindingWindow.trim())Z.bindingWindow=J.bindingWindow.trim();if(typeof J.fallbackAdvised==="boolean")Z.fallbackAdvised=J.fallbackAdvised;return Object.keys(Z).length?Z:null}function A(J){if(!Q(J))return;if(!Number.isInteger(J.amountMinor)||typeof J.currency!=="string"||!/^[A-Za-z]{3}$/.test(J.currency.trim())||!Number.isInteger(J.exponent)||J.exponent<0||J.exponent>20)return;return{amountMinor:J.amountMinor,currency:J.currency.trim(),exponent:J.exponent}}function p(J){if(!Q(J))return{...H};let Z={quota:null};if(Q(J.main)){let $=J.main;if(Z.quota=D($.quota),typeof $.enabled==="boolean")Z.enabled=$.enabled;if(typeof $.stateLine==="string")Z.stateLine=$.stateLine;if($.quotaDated===!0)Z.quotaDated=!0;if(typeof $.tierLabel==="string"&&$.tierLabel.trim())Z.tierLabel=$.tierLabel.trim();if(typeof $.quotaBackedOff==="boolean")Z.quotaBackedOff=$.quotaBackedOff;if(typeof $.quotaBackoffUntil==="number")Z.quotaBackoffUntil=$.quotaBackoffUntil;if(typeof $.refreshBackedOff==="boolean")Z.refreshBackedOff=$.refreshBackedOff;if(typeof $.refreshBackoffUntil==="number")Z.refreshBackoffUntil=$.refreshBackoffUntil}let V=Array.isArray(J.fallbacks)?J.fallbacks.filter(Q).filter(($)=>typeof $.id==="string").map(($)=>({id:$.id,label:typeof $.label==="string"?$.label:void 0,quota:D($.quota),enabled:typeof $.enabled==="boolean"?$.enabled:!1,...typeof $.stateLine==="string"&&{stateLine:$.stateLine},...$.quotaDated===!0&&{quotaDated:!0},needsReauth:typeof $.needsReauth==="boolean"?$.needsReauth:!1,...$.vaultReauth===!0&&{vaultReauth:!0},...$.vaultServed===!0&&{vaultServed:!0},...typeof $.custodyState==="string"&&{custodyState:$.custodyState},tierLabel:typeof $.tierLabel==="string"&&$.tierLabel.trim()?$.tierLabel.trim():void 0})):[],X=null;if(Q(J.relay)){let $=J.relay;if(typeof $.enabled==="boolean"&&typeof $.transport==="string")X={enabled:$.enabled,transport:$.transport}}let Y;if(Q(J.cacheKeep)){let $=J.cacheKeep;if(typeof $.enabled==="boolean")Y={enabled:$.enabled,window:typeof $.window==="string"?$.window:void 0,trackedSessions:typeof $.trackedSessions==="number"?$.trackedSessions:void 0}}let x=Array.isArray(J.fableRecoveries)?J.fableRecoveries.filter(Q).flatMap(($)=>{if(typeof $.sessionId!=="string"||$.mode!=="opus"&&$.mode!=="fable"&&$.mode!=="server"||typeof $.remaining!=="number"||!Number.isFinite($.remaining)||typeof $.changedAt!=="number"||!Number.isFinite($.changedAt))return[];return[{sessionId:$.sessionId,mode:$.mode,remaining:Math.max(0,Math.floor($.remaining)),changedAt:$.changedAt,requestedModelId:typeof $.requestedModelId==="string"?$.requestedModelId:void 0,targetModelId:typeof $.targetModelId==="string"?$.targetModelId:void 0}]}):[];return{main:Z,fallbacks:V,activeId:typeof J.activeId==="string"?J.activeId:void 0,route:typeof J.route==="string"?J.route:H.route,relay:X,fastMode:typeof J.fastMode==="boolean"?J.fastMode:H.fastMode,cacheKeep:Y,prime:a(J.prime),fableRecoveries:x.length>0?x:void 0,lastUpdated:typeof J.lastUpdated==="number"?J.lastUpdated:0}}var W=Promise.resolve(),t=1000,e=2000,JJ=5,ZJ=15,E=new Map;function HJ(J,Z=f()){if(J)E.set(Z,J);else E.delete(Z)}function U(J){return E.get(J)}var k=null;function WJ(J){k=J}function UJ(){return k}function $J(J){return new Promise((Z)=>setTimeout(Z,J))}async function F(J){let Z=`${J}.lock`,V=U(J),X=V?.lockBudgetMs??t,Y=V?.lockRetryMinMs??JJ,x=V?.lockRetryMaxMs??ZJ,$=Date.now()+X;while(!0){try{await g(Z);let G=P(),K=M(Z,G);return await S(K,"",{encoding:"utf8",mode:384,flag:"wx"}),await V?.onLockAcquired?.(Z),{ownsLock:async()=>{try{return await R(K),!0}catch{return!1}},release:async()=>{try{await w(K)}catch{return}await V?.beforeReleaseDirectoryRemoval?.(Z),await m(Z).catch(()=>{})}}}catch(G){if(G.code!=="EEXIST")return z.trace("sidebar","state lock unavailable; write skipped",{stateFile:J,error:G instanceof Error?G.message:String(G)}),null}try{let G=await R(Z);if(Date.now()-G.mtimeMs>e){await V?.afterStaleLockStat?.(Z);let K=`${Z}.evict-${process.pid}-${P()}`;try{await b(Z,K)}catch(O){if(O.code==="ENOENT")continue;throw O}await V?.onStaleLockClaimed?.(Z),await C(K,{recursive:!0,force:!0}).catch(()=>{});continue}}catch(G){if(G.code==="ENOENT")continue;return z.trace("sidebar","state lock inspection failed; write skipped",{stateFile:J,error:G instanceof Error?G.message:String(G)}),null}let j=$-Date.now();if(j<=0)return z.warn("sidebar","lock budget exhausted, write skipped",{stateFile:J,budgetMs:X}),null;let B=Y+Math.floor(Math.random()*(x-Y+1));await $J(Math.min(B,j))}}async function qJ(J){return(await F(J))?.release??null}async function VJ(J,Z,V){let X=U(J),Y=`${J}.${process.pid}.${P()}.tmp`;await S(Y,JSON.stringify(Z),{encoding:"utf8",mode:384});try{if(!await V())return z.trace("sidebar","state lock lost before rename; write aborted",{stateFile:J}),await C(Y,{force:!0}).catch(()=>{}),"lock-lost-before-rename";if(await X?.beforeRename?.(J,Y),!await V())return z.trace("sidebar","state lock lost before rename; write aborted",{stateFile:J}),await C(Y,{force:!0}).catch(()=>{}),"lock-lost-before-rename";if(await b(Y,J),await U(J)?.afterRename?.(J),!await V())return"lock-lost-after-rename";return"written"}catch(x){throw await C(Y,{force:!0}).catch(()=>{}),x}}async function T(J=f()){try{let Z=await y(J,"utf8");return p(JSON.parse(Z))}catch{return H}}async function LJ(J,Z=f(),V={}){return W=W.then(async()=>{await g(v(Z),{recursive:!0});for(let X=0;X<2;X++){let Y=X===1,x=await F(Z);if(!x){if(Y)z.warn("sidebar","post-rename repair lock unavailable; write skipped",{stateFile:Z});return}let $=J,j;try{if(V.routingAuthoritative===!1){let B=await T(Z),G=await V.resolvePreservedRouting?.(B);if(G){let K=G.state??J;$={...K,activeId:G.activeId,route:G.route,lastUpdated:Math.max(K.lastUpdated,B.lastUpdated)}}await U(Z)?.afterMergeRead?.(Z)}else if(Y){let B=await T(Z);$={...B,activeId:J.activeId,route:J.route,relay:J.relay,fastMode:J.fastMode,cacheKeep:J.cacheKeep,lastUpdated:Math.max(B.lastUpdated,J.lastUpdated)}}$=p($),j=await VJ(Z,$,x.ownsLock)}finally{await x.release()}if(j==="lock-lost-after-rename"){if(Y){z.warn("sidebar","post-rename repair lost lock; write skipped",{stateFile:Z});return}z.warn("sidebar","state lock lost after rename; repairing write",{stateFile:Z});continue}if(j==="lock-lost-before-rename")return;V.onRoutingResolved?.({activeId:$.activeId,route:$.route});return}}).catch(()=>{}),W}async function PJ(){return W}function XJ(J){let Z=J.activeId;if(Z&&Z!=="main"){let V=J.fallbacks?.find((X)=>X.enabled&&X.id===Z);if(V)return{id:V.id,name:V.label??V.id,quota:V.quota,...V.stateLine&&{stateLine:V.stateLine,quotaDated:V.quotaDated}}}return{id:"main",name:"main",quota:J.main?.quota??null,...J.main?.stateLine&&{stateLine:J.main.stateLine,quotaDated:J.main.quotaDated}}}function L(J){if(J==="claude-mythos-5-1"||J?.startsWith("claude-mythos-5-1-"))return"Mythos 5.1";if(J==="claude-fable-5-1"||J?.startsWith("claude-fable-5-1-"))return"Fable 5.1";if(J==="claude-fable-5"||J?.startsWith("claude-fable-5-"))return"Fable 5";if(J==="claude-opus-5-5"||J?.startsWith("claude-opus-5-5-"))return"Opus 5.5";if(J==="claude-opus-5"||J?.startsWith("claude-opus-5-"))return"Opus 5";if(J==="claude-opus-4-8"||J?.startsWith("claude-opus-4-8-"))return"Opus 4.8";return J??"Fable 5"}function h(J){return new Date(J).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function xJ(J){if(J===0)return"0";if(J<0.0001)return J.toExponential(2);return J.toFixed(Math.min(6,Math.max(0,4)))}function EJ(J,Z=Date.now()){if(J.lastResult==="error")return{text:"err",hasError:!0};if(J.lastResult==="skipped")return{text:"skip",hasError:!1};if(J.nextDueAt&&J.nextDueAt>Z)return{text:h(J.nextDueAt),hasError:!1};if(J.lastPrimedAt)return{text:`primed ${h(J.lastPrimedAt)} ✓`,hasError:!1};if(J.usage?.count)return{text:`✓ ${J.usage.count} ≈ $${xJ(J.estimatedCostUsd??0)}`,hasError:!1};return{text:"—",hasError:!1}}function MJ(J,Z){let V=J.fableRecoveries?.find((X)=>X.sessionId===Z);if(!V)return;if(V.mode==="fable")return`${L(V.requestedModelId)} · restored`;if(V.mode==="server")return`${L(V.requestedModelId)}→${L(V.targetModelId)} · safety`;return`Opus 4.8 · ${V.remaining} left`}function fJ(J,Z=10){if(Z<=0)return"";let V=J;if(Bun.stringWidth(V)>Z){V="";for(let X of J){if(Bun.stringWidth(V+X)>Z-1)break;V+=X}V+="…"}return V+" ".repeat(Math.max(0,Z-Bun.stringWidth(V)))}function YJ(J,Z=Date.now()){let V=J?.scoped??[];if(!V.length)return[];let{windows:X}=s(I({scoped:V},Z),{now:Z});return V.map((Y)=>X.find((x)=>x.kind==="window"&&x.name===Y.title)?.short||Y.title)}function _J(J,Z=Date.now()){return Math.max(2,...J.flatMap((V)=>YJ(V,Z).map((X)=>Bun.stringWidth(X))))}var GJ=3;function RJ(J){let{width:Z,labelWidth:V,barWidth:X,figure:Y,reset:x}=J,$={barCells:X,reset:x||void 0};if(Z===void 0)return $;let j=(K)=>V+1+(K.barCells>0?K.barCells+1:0)+Bun.stringWidth(Y)+(K.reset?1+Bun.stringWidth(K.reset):0),B=Math.min(GJ,X),G=[$];for(let K=X;K>=B;K--)G.push({barCells:K});return G.find((K)=>j(K)<=Z)??{barCells:B}}function DJ(J,Z,V){if(!J||J.state==="on-pace")return null;let X=`${J.state} ${Math.round(Math.abs(J.deltaPercent))}%`,Y=V?`${X} · out in ${V}`:`${X} · lasts to reset`;if(Z===void 0||Bun.stringWidth(Y)<=Z)return Y;if(Z<=0)return"";let x="";for(let $ of Y){if(Bun.stringWidth(x+$)>Z-1)break;x+=$}return`${x.trimEnd()}…`}function AJ(J,Z=Date.now()){let V=J?.five_hour?.usedPercent??null,X=J?.seven_day?.usedPercent??null,Y=J?.scoped??[],x=Y.map((j)=>j.usedPercent);if(!J||V==null&&X==null&&Y.length===0&&!J.extraUsage)return{fiveHourUsedPercent:V,sevenDayUsedPercent:X,scopedUsedPercents:x,text:null,stale:!1};let $=I(J,Z);return{fiveHourUsedPercent:V,sevenDayUsedPercent:X,scopedUsedPercents:x,text:c($,{now:Z,form:"narrow"}),stale:u($,{now:Z})}}function TJ(J,Z=!0){let V=J.activeId===void 0?void 0:XJ(J).id;return[{id:"main",name:"main",quota:J.main?.quota??null,quotaDated:J.main?.quotaDated,active:V==="main"},...Z?(J.fallbacks??[]).filter((X)=>X.enabled||X.custodyState&&X.custodyState!=="off").map((X)=>({id:X.id,name:X.label??X.id,quota:X.quota,quotaDated:X.quotaDated,active:V===X.id})):[]]}var hJ=18000000,gJ=604800000,KJ=300000,jJ=0.01,BJ=1;function bJ(J,Z,V){if(!J.resetsAt)return null;let X=new Date(J.resetsAt).getTime();if(!Number.isFinite(X))return null;let Y=X-Z,x=V-Y;if(x<KJ)return null;if(x<Z*jJ)return null;if(x>=Z)return null;let $=J.usedPercent,j=Math.min(Math.max(x/Z*100,0),100),B=$-j,G=Math.abs(B)<BJ?"on-pace":B>0?"deficit":"reserve",K=null;if($>0){let O=x*100/$,_=Y+O;if(_<X)K=new Date(_).toISOString()}return{pacePercent:j,deltaPercent:B,state:G,runsOutAt:K}}
2
+ export{f as G,H,p as I,HJ as J,WJ as K,UJ as L,qJ as M,T as N,LJ as O,PJ as P,XJ as Q,L as R,h as S,xJ as T,EJ as U,MJ as V,fJ as W,YJ as X,_J as Y,GJ as Z,RJ as _,DJ as $,AJ as aa,TJ as ba,hJ as ca,gJ as da,bJ as ea};
@@ -0,0 +1,43 @@
1
+ import{q as X8}from"./index-6chd6jnr.js";import{s as G8}from"./index-hazrk5c3.js";import{C as W8}from"./index-b1dvkp15.js";import{G as V8,L as f9,N as z8,O as K8}from"./index-20d6rmjj.js";import{fa as p3}from"./index-ppdrzs41.js";import{randomUUID as rJ}from"node:crypto";import{existsSync as sX,readFileSync as aX}from"node:fs";import{dirname as tX,join as eX}from"node:path";import{fileURLToPath as $G}from"node:url";import{acquireNativeAccountRuntime as JG,applyCustomHeaders as F7,assertNotCustodyTombstone as ZG,authorize as w7,buildAccountList as y$,buildClaudeQuotaSummary as YG,buildFallbackQuotaSummaries as XG,buildPrimeRequestBody as GG,CACHE_KEEP_EXTENDED_TTL_BETA as WG,CacheKeepManager as VG,CacheKeepSessionRegistry as zG,CLAUDE_FABLE_MYTHOS_5_MODEL_SPECS as KG,CLAUDE_HAIKU_4_5_MODEL_ID as T7,CLAUDE_HAIKU_5_5_CONTEXT_WINDOW as OG,CLAUDE_HAIKU_5_5_LONG_CONTEXT_PRICING as D9,CLAUDE_HAIKU_5_5_LONG_CONTEXT_THRESHOLD as _G,CLAUDE_HAIKU_5_5_MAX_OUTPUT_TOKENS as jG,CLAUDE_HAIKU_5_5_MODEL_ID as U9,CLAUDE_HAIKU_5_5_PRICING as Q9,CLAUDE_HAIKU_5_5_RELEASE_DATE as LG,CLAUDE_OPUS_5_5_CONTEXT_WINDOW as NG,CLAUDE_OPUS_5_5_MAX_OUTPUT_TOKENS as HG,CLAUDE_OPUS_5_5_MODEL_ID as B9,CLAUDE_OPUS_5_5_PRICING as F9,CLAUDE_OPUS_5_5_RELEASE_DATE as DG,CLAUDE_SONNET_5_5_CONTEXT_WINDOW as UG,CLAUDE_SONNET_5_5_MAX_OUTPUT_TOKENS as QG,CLAUDE_SONNET_5_5_MODEL_ID as w9,CLAUDE_SONNET_5_5_PRICING as T9,CLAUDE_SONNET_5_5_RELEASE_DATE as BG,CLAUSTRUM_OPENCODE_ENROLLMENT_NAME as sJ,computeXxhash64Hex as FG,configuredAnthropicOAuthAccountCount as wG,createEmptyStorage as o$,createNativeUsagePublisher as TG,createProviderErrorResponseScope as E9,createSseFramer as EG,createStickyNoRouteResponse as SG,custodyTombstoneOAuth as aJ,decideStickyQuotaFailure as tJ,decodeSseFrame as CG,detectClaustrumConnection as E7,dumpDirectRequest as S9,dumpResponseArtifact as eJ,effectiveRelayStatus as AG,exchange as $Z,executeAccountCommand as PG,executeCache1hCommand as JZ,executeCacheKeepCommand as qG,executeDumpCommand as S7,executeFastModeCommand as C7,executeKillswitchCommand as A7,executeLaneStartCommand as P7,executeLoggingCommand as q7,executePrimeCommand as RG,executeRoutingCommand as R7,FALLBACK_BACKGROUND_TICK_MS as MG,fallbackAccountUuidForLineage as IG,formatEnrollmentStatus as M7,formatNativeAccountState as ZZ,formatOAuthAccountTier as B4,formatQuotaBackoffMessage as I7,formatRefreshBackoffMessage as xG,getAccountStoragePath as fG,getCache1hMode as F4,getCache1hPersistentMode as w4,getCacheKeepWindow as x7,getClaudeCodeIdentityForVerifiedAccount as kG,getClaudeModelCatalogue as vG,getClaustrumMode as T4,getDefaultCacheKeepRegistryDirectory as hG,getFallbackReauthLabels as bG,getHostClaustrumEnrollmentPaths as C9,getKillswitchConfig as YZ,getPersistedLogLevel as XZ,getQuotaCheckIntervalMs as f7,getQuotaNextRefreshAt as w1,getRequestGzipLatch as gG,getRequestGzipLatchPath as yG,getRoutingMode as e$,getScopedQuotaWindowForModel as mG,getThinkingPrefixMismatchBehavior as cG,inspectNativeHostAuthEntry as pG,isApiKeyAccount as c1,isCache1hEnabled as E4,isCache1hPersistentlyEnabled as A9,isCacheKeepAlways as k7,isCacheKeepHybridActive as v7,isCacheKeepPersistentlyEnabled as lG,isCacheKeepSubagentsEnabled as uG,isClaudeFableOrMythos51Model as dG,isClaudeOpus5Model as iG,isClaudeOpus55Model as nG,isCostZeroingEnabled as oG,isCustodyTombstoneOAuth as GZ,isDumpPersistentlyEnabled as WZ,isFastModeEnabled as VZ,isFastModePersistentlyEnabled as zZ,isFastModeSupportedModel as h7,isKillswitchEnabled as r$,isNativeTransientAccountError as T1,isOAuthAccount as B0,isPermanentRefreshError as s$,isPrimePersistentlyEnabled as P9,isQuotaBearingHeaderFrame as rG,isValidApiBaseURL as KZ,killswitchPassesPolicy as a$,killswitchRetryAfterSeconds as b7,log as m$,logger as h,mergeAnthropicBetas as g7,mergeHeaderQuotaForPersistence as y7,NativeCustodyError as sG,NativeRuntimeError as aG,NativeVaultNoAccountError as OZ,nativeAccountCanServe as y0,nativeLocalQuotaLineage as tG,nativeMigrationAuthorityPhase as m7,normalizeQuotaHeaders as eG,oauthProfileIsFresh as q9,oauthProfileMatchesIdentity as $W,PARALLEL_TOOL_CALLS_SYSTEM_PROMPT as JW,PrimeManager as ZW,parseAccountCommandAction as YW,parseCache1hCommandAction as XW,parseCacheKeepCommandAction as GW,parseDumpCommandAction as WW,parseFastModeCommandAction as VW,parseLaneStartCommandAction as zW,parseLoggingCommandAction as KW,parsePrimeCommandAction as OW,parseRoutingCommandAction as _W,parseSseFrame as jW,QUOTA_HEADER_FEED_SCHEMA_VERSION as R9,QuotaHeaderFeedRegistry as LW,QuotaManager as NW,quotaSnapshotCheckedAt as E1,quotaSnapshotHasStandardWindows as _Z,quotaSnapshotModelScopeIsExhausted as M9,quotaSnapshotPassesModelScope as I9,quotaSnapshotPassesPolicy as p1,readClaustrumEnrollmentStatus as c7,readNativeAccountsForRequest as HW,readNativeEnrollmentMode as S1,readNativeHostAuthKind as DW,readNativeMigrationJournal as p7,refreshBackoffActive as C1,remapRequestBodyModel as UW,resetClaustrumEnrollmentState as QW,resolveClaudeModelCapabilities as BW,resolveNativePoolPaths as FW,STICKY_ROUTING_MAIN_ACCOUNT_ID as Y$,StickySessionRouter as wW,sendViaRelay as TW,sendWithRequestGzip as EW,setCache1hState as x9,setDumpEnabled as jZ,setFastModeEnabled as LZ,setLogLevel as SW,shouldFallbackStatus as CW,snapshotHasServableLocalOAuth as l7,stickyQuotaSnapshotIsFresh as A1,stickyRouteFamilyForModel as AW,TrailingAssistantHistoryError as u7,tokenFingerprint as t$}from"@cortexkit/anthropic-auth-core";import{randomUUID as eZ}from"node:crypto";import{isValidAnthropicRequestId as $3,isValidBillingPromptId as e8}from"@cortexkit/anthropic-auth-core";var G4="x-cortexkit-billing-lineage",$Y=4096,JY=4096,ZY=1024,J3=new Set(["title","summary","compaction"]),YY="[lane start] — automated cache warm; no response needed.";function XY($){let J=$.info?.sessionID??$.info?.sessionId;return typeof J==="string"&&J.length>0?J:void 0}function GY($){if($.info?.synthetic===!0||$.info?.ignored===!0||typeof $.info?.agent==="string"&&J3.has($.info.agent))return!0;for(let J of $.parts??[]){if(J.type==="compaction"||J.synthetic===!0||J.ignored===!0)return!0;if(J.metadata?.compaction_continue===!0)return!0;if(J.type==="text"&&J.text===YY)return!0}return!1}function Q1($,J){while($.size>J){let Y=$.keys().next().value;if(Y===void 0)return;$.delete(Y)}}function HJ($){let J=$.get("request-id")??$.get("x-request-id");return J&&$3(J)?J:void 0}class DJ{#$;#_;#K;#j;#X;#J=new Map;#Y=new Map;#Z=new Map;#G=new Map;#W=new Map;#V=new Map;#z=new Map;constructor($={}){this.#$=$.createPromptId??eZ,this.#_=$.createRequestToken??eZ,this.#K=$.maxPrompts??$Y,this.#j=$.maxRequests??JY,this.#X=$.maxSessions??ZY}observeMessages($){let J;for(let H=$.length-1;H>=0;H-=1)if($[H]?.info?.role==="user"){J=$[H];break}if(!J)return;let Y=XY(J),X=J.info?.id;if(!Y||typeof X!=="string"||X.length===0)return;let V=this.#O(Y,X);if(GY(J)){this.#Y.delete(V),this.#Y.set(V,!0),Q1(this.#Y,this.#K),this.#J.delete(V);return}this.#Y.delete(V);let O=this.#J.get(V);if(O){this.#J.delete(V),this.#J.set(V,O);return}let K=this.#$();if(!e8(K))return;this.#J.set(V,K),Q1(this.#J,this.#K)}markHeaders($){let J=this.#O($.sessionId,$.messageId);if(J3.has($.agent??"")||this.#Y.has(J))return!1;let Y=this.#J.get(J);if(!Y)return!1;let X=this.#_();if(!X||/[\r\n]/.test(X))return!1;let V={sessionId:$.sessionId,messageId:$.messageId,promptId:Y,requestToken:X,generation:this.#W.get($.sessionId)??0,sequence:0};return this.#Z.set(X,V),Q1(this.#Z,this.#j),$.headers[G4]=X,!0}resolveHeader($){if(!$)return;let J=this.#Z.get($);if(!J)return;this.#Z.delete($),this.#Z.set($,J);let Y=(this.#V.get(J.sessionId)??0)+1;this.#V.delete(J.sessionId),this.#V.set(J.sessionId,Y),Q1(this.#V,this.#X);let X={...J,previousRequestId:this.#G.get(J.sessionId),sequence:Y};if(X.previousRequestId===void 0)delete X.previousRequestId;return X}commit($,J){if(!$||!J||!$3(J))return!1;if((this.#W.get($.sessionId)??0)!==$.generation)return!1;let Y=this.#Z.get($.requestToken);if(!Y||Y.sessionId!==$.sessionId||Y.messageId!==$.messageId||Y.promptId!==$.promptId||Y.generation!==$.generation)return!1;if(this.#J.get(this.#O($.sessionId,$.messageId))!==$.promptId)return!1;if($.sequence<(this.#z.get($.sessionId)??0))return!1;return this.#z.delete($.sessionId),this.#z.set($.sessionId,$.sequence),Q1(this.#z,this.#X),this.#G.delete($.sessionId),this.#G.set($.sessionId,J),Q1(this.#G,this.#X),!0}clearSession($){this.#W.set($,(this.#W.get($)??0)+1),this.#G.delete($),this.#V.delete($),this.#z.delete($);let J=`${$}\x00`;for(let Y of this.#J.keys())if(Y.startsWith(J))this.#J.delete(Y);for(let Y of this.#Y.keys())if(Y.startsWith(J))this.#Y.delete(Y);for(let[Y,X]of this.#Z)if(X.sessionId===$)this.#Z.delete(Y);Q1(this.#W,this.#X)}#O($,J){return`${$}\x00${J}`}}import{setBounded as Y3,stickyRetryAfterWithJitter as WY}from"@cortexkit/anthropic-auth-core";var V4="cache-diagnosis-2026-04-07",VY="MC-CACHE-DIAG ",zY=1000,KY=300000,OY={turn:!1,start:!0,prewarm_cachekeep:!0},_Y=1000;class UJ{entries=new Map;previousFor($){return this.entries.get($)??null}capture($,J,Y){Y3(this.entries,$,{messageId:J,receivedAt:Y},zY)}}class QJ{hashes=new Map;capture($,J){if(this.hashes.has($))return null;return Y3(this.hashes,$,!0,_Y),`MC-CACHE-DIAG-BETAS ${JSON.stringify({hash:$,betas:[...J].sort()})}`}}function o4($,J,Y){let X=$.get(J);if(X)$.set(Y,X)}async function BJ($,J,Y,X,V){let O=new Headers($.headers);if(O.set("retry-after",String(WY(J,Y))),X)return await $.body?.cancel().catch(()=>{}),O.set("content-type","application/json"),new Response(JSON.stringify({type:"error",error:{type:"rate_limit_error",message:"Sticky OAuth account five-hour quota resets shortly; retaining session affinity."}}),{status:429,headers:O});let K=new Response($.body,{status:$.status,statusText:$.statusText,headers:O});return o4(V,$,K),K}function r4($,J){$.diagnostics={previous_message_id:J}}function i$($){return $!=null&&typeof $==="object"&&!Array.isArray($)}function jY($){return i$($)&&$.type==="ephemeral"}function X3($,J){if(!jY($))return;J.push($.ttl==="1h"?"1h":"5m")}function Z3($,J){if(!Array.isArray($))return;for(let Y of $)if(i$(Y))X3(Y.cache_control,J)}function s4($){if(!i$($))return null;let J=[];if(X3($.cache_control,J),Z3($.system,J),Array.isArray($.messages)){for(let Y of $.messages)if(i$(Y))Z3(Y.content,J)}return J.at(-1)??null}function LY($){if(!Object.hasOwn($,"diagnostics"))return{state:"absent"};let J=$.diagnostics;if(J===null)return{state:"server_null"};if(!i$(J))return null;if(!Object.hasOwn(J,"cache_miss_reason"))return null;let Y=J.cache_miss_reason;if(Y===null)return{state:"pending"};if(!i$(Y)||typeof Y.type!=="string"||!Y.type)return null;let X=Y.cache_missed_input_tokens;if(X!==void 0&&typeof X!=="number")return null;return{state:"populated",missReason:Y.type,cacheMissedInputTokens:X}}function W4($,J){let Y=$[J];return typeof Y==="number"&&Number.isFinite(Y)&&Y>=0?Y:null}function G3($){if(typeof $.source!=="string"||$.source.length===0||typeof $.accountId!=="string"||$.accountId.length===0||typeof $.synthetic!=="boolean"||typeof $.betasHash!=="string"||$.betasHash.length===0)return{};let J=OY[$.source];if(J!==void 0&&J!==$.synthetic)$.onWarning?.(`cache diagnostics source/synthetic mismatch: source=${$.source} expected=${J} actual=${$.synthetic}`);let Y=Math.trunc($.receivedAt);if(!Number.isFinite($.receivedAt)||Y!==$.receivedAt)return{};if(!i$($.message))return{};let X=$.message.id,V=$.message.model,O=$.message.usage;if(typeof X!=="string"||X.length===0)return{};if(typeof V!=="string"||V.length===0||!i$(O))return{};let K=W4(O,"input_tokens"),H=W4(O,"cache_read_input_tokens"),w=W4(O,"cache_creation_input_tokens"),q=O.cache_creation;if(K===null||H===null||w===null||!i$(q))return{};let P=W4(q,"ephemeral_5m_input_tokens"),c=W4(q,"ephemeral_1h_input_tokens");if(P===null||c===null)return{};let a=LY($.message);if(!a)return{};let u={v:2,source:$.source,account_id:$.accountId,synthetic:$.synthetic,betas_hash:$.betasHash,session_id:$.request.sessionId,ts_ms_received:Y,model:V,is_subagent:$.request.isSubagent,ttl_sent:$.request.ttlSent,cache_read:H,cache_creation:w,input_tokens:K,ephemeral_5m_tokens:P,ephemeral_1h_tokens:c,message_id:X,previous_message_id:$.request.previousMessageId,diag_state:a.state};if(a.missReason!==void 0)u.miss_reason=a.missReason;if(a.cacheMissedInputTokens!==void 0)u.cache_missed_input_tokens=a.cacheMissedInputTokens;if($.requestedModel!==void 0&&$.requestedModel!==V)u.requested_model=$.requestedModel;let s=a.missReason==="previous_message_not_found"&&$.request.previousMessageId!==null&&$.request.previousMessageReceivedAt!==void 0&&$.receivedAt-$.request.previousMessageReceivedAt<KY&&$.receivedAt>=$.request.previousMessageReceivedAt?{messageId:X,previousMessageId:$.request.previousMessageId}:void 0;return{record:u,messageId:X,...s?{canary:s}:{}}}function W3($){return`${VY}${JSON.stringify($)}`}import{getClaustrumMode as a4,hasNoLocalCredential as FJ,isCustodyTombstoneOAuth as NY,isOAuthAccount as wJ,nativeAccountCanServe as TJ}from"@cortexkit/anthropic-auth-core";function z4($,J){if(a4(J)!=="claustrum"||!J?.claustrum?.scopedRoster)return!1;let Y=J.accounts.find((X)=>X.id===$);return Boolean(Y&&wJ(Y)&&TJ(Y)&&Y.claustrumScopedCredentialId&&Y.anthropicAccountUuid&&FJ(Y))}function V3($){if(a4($)!=="claustrum")return{fallbacks:"R",evidence:"V"};if(!$?.claustrum?.scopedRoster)return{fallbacks:"M",evidence:"N"};return{fallbacks:$.accounts.filter((Y)=>TJ(Y)&&wJ(Y)).every((Y)=>Boolean(Y.claustrumScopedCredentialId&&Y.anthropicAccountUuid&&FJ(Y)))?"T":"R",evidence:"V"}}function EJ($){if(NY($,"anthropic"))return"T";if($.type==="oauth"&&$.access&&$.refresh)return"R";return"X"}function SJ($,J){if($.role==="main"){if(a4(J)!=="claustrum")return"na";let X=J?.claustrum?.scopedRoster?J.claustrum.primaryAccount:void 0;if(!X)return"unknown-identity";if(X.state==="needs_reauth")return"on-vault-reauth";return TJ(X)?"on-vault-served":"on-cold"}if(a4(J)!=="claustrum")return"off";let Y=J?.accounts.find((X)=>X.id===$.id);if(!Y||!wJ(Y)||!Y.claustrumScopedCredentialId||!Y.anthropicAccountUuid||!FJ(Y))return"off";if(Y.claustrumScopedState==="needs_reauth")return"on-vault-reauth";return z4($.id,J)?"on-vault-served":"on-cold"}class K4 extends Error{verdict;dimensions;code="custody_state_mismatch";constructor($,J){super(`custody state mismatch: ${$}`);this.verdict=$;this.dimensions=J}toJSON(){return{code:this.code,verdict:this.verdict,dimensions:this.dimensions}}}function z3($){if($.authority!=="committed"&&$.authority!=="retired")throw new K4("MIGRATION_REQUIRED",$);if($.mode==="L"&&$.main==="R"&&$.evidence==="V"&&$.localOAuthServable===!0)return{verdict:"LOCAL_SERVE"};if($.mode==="L"&&$.main==="T"&&$.fallbacks==="R"&&$.evidence==="V")return{verdict:"LOCAL_SERVE"};if($.mode==="C"&&$.main==="T"&&$.fallbacks==="T"&&$.evidence==="V")return{verdict:"CLAUSTRUM_SERVE"};throw new K4("FAIL_CLOSED",$)}import{createHash as HY}from"node:crypto";import{defaultAdaptiveEffort as DY,normalizeAdaptiveEffort as UY,pinsEffortOnEveryRequest as K3,resolveClaudeModelCapabilities as QY,supportsPerMessageEffort as BY}from"@cortexkit/anthropic-auth-core";var N3=512,FY=1024,wY=4096,O4=32,_4=32,e4="[A-Za-z0-9_-]{1,128}",TY="<cortexkit-internal-effort ",EY="<cortexkit-internal-effort-plan ",H3=/^\s*(?:§[0-9]+§\s*)+$/,j4={low:"l",medium:"m",high:"h",xhigh:"x",max:"z"},PJ=Object.fromEntries(Object.entries(j4).map(([$,J])=>[J,$])),qJ="<cortexkit-internal-effort-v2 ",RJ="<cortexkit-internal-effort-anchor-v1 ",h1="x-cortexkit-effort-plan";class E0 extends Error{check;details;constructor($,J="unspecified",Y={}){super($);this.check=J;this.details=Y;this.name="EffortMarkerCorrelationError"}}function o0($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function SY($){let J=QY($);if(!J||J.effortMarkers==="none")return;return J.id.replace(/^claude-/,"")}function CJ($){if($?.info?.role!=="user")return;if($.info.model?.providerID!=="anthropic")return;return SY($.info.model.modelID)}function O3($){return UY($.info?.model?.variant)??DY($.info?.model?.modelID)}function _3($){return $.parts?.some((J)=>{if(J.type==="text")return J.ignored!==!0&&J.text!=="";if(J.type==="file")return J.mime!=="text/plain"&&J.mime!=="application/x-directory";return J.type==="compaction"||J.type==="subtask"})??!1}function O1($){return HY("sha256").update($).digest("hex")}function CY($){return O1(`scope:${$}`).slice(0,_4)}function $9($){return O1(`cortexkit-effort-v2:${$}`).slice(0,O4)}function AY($,J,Y){let X=j4[Y],V=`transition:${$}:${J}:${X}`;return`${qJ}scope="${$}" boundary="${J}" effort="${X}" check="${$9(V)}"/>`}function D3($){let J=$.match(new RegExp(`^${qJ}scope="([0-9a-f]{${_4}})" boundary="(${e4})" effort="([lmhxz])" check="([0-9a-f]{${O4}})"/>$`));if(!J)return null;let[,Y,X,V,O]=J,K=PJ[V??""];if(!Y||!X||!V||!O||!K)return null;let H=`transition:${Y}:${X}:${V}`;if($9(H)!==O)return null;return{scope:Y,boundary:X,effort:K,token:$}}function PY($,J,Y,X){let V=j4[Y],O=`anchor:${$}:${J}:${V}:${X}`;return`${RJ}scope="${$}" boundary="${J}" effort="${V}" digest="${X}" check="${$9(O)}"/>`}function U3($){let J=$.match(new RegExp(`^${RJ}scope="([0-9a-f]{${_4}})" boundary="(${e4})" effort="([lmhxz])" digest="([0-9a-f]{64})" check="([0-9a-f]{${O4}})"/>$`));if(!J)return null;let[,Y,X,V,O,K]=J,H=PJ[V??""];if(!Y||!X||!V||!O||!K||!H)return null;let w=`anchor:${Y}:${X}:${V}:${O}`;if($9(w)!==K)return null;return{scope:Y,boundary:X,effort:H,digest:O,token:$}}function AJ($){return $.trim()===""||H3.test($)}function j3(){return new RegExp(`(?:${EY}nonce="[^"]+" baseline="[^"]+" count="[^"]+" sig="[0-9a-f]+"/>|${TY}nonce="[^"]+" effort="[^"]+" sig="[0-9a-f]+"/>)`,"g")}function qY(){return new RegExp(`${qJ}scope="[0-9a-f]{${_4}}" boundary="${e4}" effort="[lmhxz]" check="[0-9a-f]{${O4}}"/>`,"g")}function RY(){return new RegExp(`${RJ}scope="[0-9a-f]{${_4}}" boundary="${e4}" effort="[lmhxz]" digest="[0-9a-f]{64}" check="[0-9a-f]{${O4}}"/>`,"g")}function Q3($,J,Y){let X=0,V=$,O=$.replace(j3(),"");if(O!==$&&H3.test(O))X+=[...$.matchAll(j3())].length,V=O;return V=V.replace(qY(),(K)=>{let H=D3(K);if(!H)return K;return J?.(H),X++,""}),V=V.replace(RY(),(K)=>{let H=U3(K);if(!H)return K;return Y?.(H),X++,""}),{text:V,removed:X}}function MY($){for(let J of $){if(!Array.isArray(J.parts))continue;J.parts=J.parts.flatMap((Y)=>{if(Y.type!=="text"||typeof Y.text!=="string"||!Y.text.includes("<cortexkit-internal-effort"))return[Y];let X=Q3(Y.text);if(X.removed===0)return[Y];if(AJ(X.text))return[];return Y.text=X.text,[Y]})}}function t4($,J,Y,X,V){let O=V?`:${V}`:"",K=`plan:${$}:${j4[J]}:${Y.toString(36)}${O}`;return O1([K,...X].join(`
2
+ `))}function IY($){return["v2",$.scope,j4[$.baseline],$.markerCount.toString(36),$.digest].join(".")}function xY($){if(!$)return null;let J=$.match(/^v2\.([0-9a-f]{32})\.([lmhxz])\.([0-9a-z]+)\.([0-9a-f]{64})$/);if(!J)return null;let[,Y,X,V,O]=J,K=PJ[X??""],H=Number.parseInt(V??"",36);if(!Y||!K||!O||!Number.isSafeInteger(H)||H<0||H>N3)return null;return{scope:Y,baseline:K,markerCount:H,digest:O}}function B3($){let J=$.findLast((u)=>u.info?.role==="user"),Y=CJ(J);if(!J||!Y)return null;if(MY($),!Array.isArray(J.parts)||!_3(J))return null;let X=J.info?.sessionID,V=J.info?.id;if(typeof X!=="string"||typeof V!=="string")throw new E0("Cannot correlate Fable 5.1 effort markers without session and message IDs");let O=CY(X),K=$.findLast((u)=>u.info?.role==="user"&&u.parts?.some((s)=>s.type==="compaction")),H=typeof K?.info?.id==="string"?K.info.id:void 0,w,q;if(K&&CJ(K)===Y)w=O3(K),q=w;let P=[];for(let u of $){let s=u.info;if(s?.role!=="user")continue;if(H&&typeof s.id==="string"&&s.id<=H)continue;if(CJ(u)!==Y||!_3(u))continue;let T=O3(u);if(!w){w=T,q=T;continue}if(T===q)continue;if(P.length>=N3)throw new E0("Too many Fable 5.1 effort changes in the active context");if(!Array.isArray(u.parts)||typeof s.id!=="string")throw new E0("Cannot mark a Fable 5.1 effort change without message identity");let o=AY(O,s.id,T);u.parts.push({type:"text",text:o}),P.push(o),q=T}if(!w)return null;let c=t4(O,w,P.length,P,P.length>0?V:void 0),a=P.length>0?PY(O,V,q??w,c):void 0;if(a)J.parts.push({type:"text",text:a});return{scope:O,baseline:w,markerCount:P.length,digest:c,transitionTokens:P,anchorToken:a,sessionId:X,messageId:V}}function fY($){let J=Array.isArray($.messages)?$.messages:[],Y=[];for(let X of J){let V=[],O=[];if(!o0(X)||X.role!=="user"){Y.push({value:X,transitions:V,anchors:O});continue}let K=(H)=>Q3(H,(w)=>V.push(w),(w)=>O.push(w));if(typeof X.content==="string"){let H=K(X.content);X.content=H.removed>0&&AJ(H.text)?"":H.text}else if(Array.isArray(X.content))X.content=X.content.flatMap((H)=>{if(!o0(H)||H.type!=="text"||typeof H.text!=="string")return[H];let w=K(H.text);if(w.removed>0&&AJ(w.text))return[];return[{...H,text:w.text}]});Y.push({value:X,transitions:V,anchors:O})}return $.messages=Y.map((X)=>X.value),{messages:Y}}function kY($,J){let Y=$[J]?.value,X=$[J-1]?.value;if(!o0(Y)||Y.role!=="user"||!Array.isArray(Y.content)||Y.content.length===0||!o0(X)||X.role!=="assistant"||!Array.isArray(X.content))return!1;let V=new Set(X.content.flatMap((O)=>o0(O)&&O.type==="tool_use"&&typeof O.id==="string"?[O.id]:[]));return Y.content.every((O)=>o0(O)&&O.type==="tool_result"&&typeof O.tool_use_id==="string"&&V.has(O.tool_use_id))}function vY($,J){if(J<0)return!1;let Y=$.flatMap((X,V)=>V>J&&o0(X.value)&&X.value.role==="user"?[V]:[]);return Y.length>0&&Y.every((X)=>kY($,X))}function L3($){if(!o0($))return null;if(typeof $.id==="string")return $.id;return typeof $.message_id==="string"?$.message_id:null}function hY($,J){if(!J)return null;if(J.scope!==$.scope||J.baseline!==$.baseline||J.markerCount!==$.markerCount||J.digest!==$.digest||J.transitionTokens.length!==$.markerCount)throw new E0("Fable 5.1 effort marker request plan mismatch");let Y=J.transitionTokens.map((O)=>D3(O)),X=J.anchorToken?U3(J.anchorToken):null,V=Y.at(-1)?.effort??$.baseline;if(Y.some((O)=>O===null)||Y.some((O)=>O?.scope!==$.scope)||$.markerCount>0&&(!X||X.scope!==$.scope||X.boundary!==J.messageId||X.effort!==V||X.digest!==$.digest)||$.markerCount===0&&X!==null||$.digest!==t4($.scope,$.baseline,$.markerCount,J.transitionTokens,J.markerCount>0?J.messageId:void 0))throw new E0("Fable 5.1 effort marker request plan mismatch");return{transitions:Y,anchor:X}}function F3($,J,Y,X){if(!Array.isArray($.messages))return{found:0,inserted:0};let V=xY(Y);if(Y&&!V)throw new E0("Missing or invalid internal Fable 5.1 effort request plan");let O=V?hY(V,X):null,K=O?.transitions??null;if(!$.messages.some((b)=>{if(!o0(b)||b.role!=="user")return!1;if(typeof b.content==="string"&&b.content.includes("<cortexkit-internal-effort"))return!0;return Array.isArray(b.content)&&b.content.some((O0)=>o0(O0)&&O0.type==="text"&&typeof O0.text==="string"&&O0.text.includes("<cortexkit-internal-effort"))})){if(!V)return{found:0,inserted:0};if(V.markerCount!==0){let b=$.messages.findLastIndex((R)=>o0(R)&&R.role==="user"),O0=$.messages[b],m0=o0(O0)&&Array.isArray(O0.content)?O0.content:[];throw new E0(`Fable 5.1 effort marker correlation failed: expected ${V.markerCount}, found 0`,"missing_all_markers",{markerCount:V.markerCount,resolvedPlan:O!==null,plannedBoundaryId:O?.anchor?.boundary??null,expectedAnchorHash:O?.anchor?O1(O.anchor.token):null,retainedMessageCount:$.messages.length,retainedUserMessageCount:$.messages.filter((R)=>o0(R)&&R.role==="user").length,lastUserMessageIndex:b,lastUserTextBlockCount:m0.filter((R)=>o0(R)&&R.type==="text").length,lastUserToolResultBlockCount:m0.filter((R)=>o0(R)&&R.type==="tool_result").length})}if(!K&&V.digest!==t4(V.scope,V.baseline,0,[]))throw new E0("Fable 5.1 effort marker request plan mismatch");if(J&&K3($.model)){let b=o0($.output_config)?{...$.output_config}:{};b.effort=K?.at(-1)?.effort??V.baseline,$.output_config=b}return{found:0,inserted:0}}let w=fY($),q=w.messages.flatMap((b)=>b.transitions),P=w.messages.flatMap((b)=>b.anchors),c=q.length;if(!V){if(c===0)return{found:0,inserted:0};throw new E0("Missing or invalid internal Fable 5.1 effort request plan")}for(let b of w.messages){for(let O0 of b.transitions)if(O0.scope!==V.scope)throw new E0("Fable 5.1 effort marker scope mismatch");if(b.anchors.length>1)throw new E0("Multiple internal Fable 5.1 effort anchors on one user boundary")}let a=w.messages.findIndex((b)=>b.anchors.length===1),u=w.messages.findLastIndex((b)=>o0(b.value)&&b.value.role==="user"),s=P[0],T=w.messages[u]?.value,o=vY(w.messages,a);if(V.markerCount>0&&(P.length!==1||a!==u&&!o||!s||s.scope!==V.scope))throw new E0("Missing or invalid internal Fable 5.1 effort anchor placement","anchor_placement",{anchorBoundaryId:s?.boundary??null,plannedBoundaryId:O?.anchor?.boundary??null,lastUserMessageId:L3(T),anchorMessageIndex:a,lastUserMessageIndex:u,validToolContinuationSuffix:o,anchorsFound:P.length,markerCount:V.markerCount,scope:V.scope,foundScope:s?.scope??null,expectedAnchorHash:O?.anchor?O1(O.anchor.token):null,foundAnchorHash:s?O1(s.token):null,anchorMatchesExpected:O?.anchor!=null&&s?.token===O.anchor.token});if(V.markerCount===0&&P.length!==0)throw new E0("Unexpected internal Fable 5.1 effort anchor");if(O?.anchor&&s?.token!==O.anchor.token)throw new E0("Mismatched internal Fable 5.1 effort anchor token","anchor_token",{anchorBoundaryId:s?.boundary??null,plannedBoundaryId:O.anchor.boundary,lastUserMessageId:L3(T),anchorMessageIndex:a,lastUserMessageIndex:u,anchorsFound:P.length,markerCount:V.markerCount,scope:V.scope,foundScope:s?.scope??null,expectedAnchorHash:O1(O.anchor.token),foundAnchorHash:s?O1(s.token):null,anchorMatchesExpected:!1});let R0=V.baseline;if(K){let b=K.length-c;if(b<0)throw new E0(`Fable 5.1 effort marker correlation failed: expected ${V.markerCount}, found ${c}`);let O0=K.slice(b);if(q.some((R,s0)=>R.token!==O0[s0]?.token))throw new E0("Fable 5.1 effort marker non-prefix loss");let m0=K.slice(0,b);if(s&&m0.some((R)=>R.boundary===s.boundary))throw new E0("Fable 5.1 effort marker non-prefix loss");R0=m0.at(-1)?.effort??V.baseline}else{if(c!==V.markerCount)throw new E0(`Fable 5.1 effort marker correlation failed: expected ${V.markerCount}, found ${c}`);let b=t4(V.scope,V.baseline,V.markerCount,q.map((m0)=>m0.token),s?.boundary);if(V.digest!==b)throw new E0("Fable 5.1 effort marker request plan mismatch");let O0=q.at(-1)?.effort??V.baseline;if(s&&(s.effort!==O0||s.digest!==V.digest))throw new E0("Missing or invalid internal Fable 5.1 effort anchor")}let W0=J&&BY($),I0=0,L0=[];for(let b of w.messages){let O0=b.transitions.at(-1);if(O0&&W0)L0.push({role:"system",content:[],output_config:{effort:O0.effort}}),I0++;L0.push(b.value)}if($.messages=L0,W0&&(I0>0||K3($.model))){let b=o0($.output_config)?{...$.output_config}:{};b.effort=R0,$.output_config=b}return{found:c,inserted:I0}}class MJ{plans=new Map;history=new Map;historyByMessage=new Map;record($){let J=this.key($.sessionId,$.messageId),Y={...$,transitionTokens:[...$.transitionTokens]};this.remember(J,Y),this.plans.delete(J),this.plans.set(J,Y);while(this.plans.size>FY){let X=this.plans.keys().next().value;if(typeof X!=="string")break;this.plans.delete(X)}}clear($,J){let Y=this.key($,J);this.plans.delete(Y);for(let X of this.historyByMessage.get(Y)??[])this.history.delete(X);this.historyByMessage.delete(Y)}markHeaders($){let J=this.key($.sessionId,$.messageId),Y=this.plans.get(J);if(!Y)return!1;return $.headers[h1]=this.remember(J,Y),this.plans.delete(J),this.plans.set(J,Y),!0}resolveHeader($){return $?this.history.get($):void 0}remember($,J){let Y=IY(J),X=this.history.get(Y);if(X&&this.key(X.sessionId,X.messageId)!==$){if(X.markerCount!==0||J.markerCount!==0||X.sessionId!==J.sessionId)throw new E0("Fable 5.1 effort plan header collision");let O=this.key(X.sessionId,X.messageId),K=this.historyByMessage.get(O);if(K?.delete(Y),K?.size===0)this.historyByMessage.delete(O)}this.history.delete(Y),this.history.set(Y,J);let V=this.historyByMessage.get($)??new Set;V.add(Y),this.historyByMessage.set($,V);while(this.history.size>wY){let O=this.history.entries().next().value;if(!O)break;let[K,H]=O;this.history.delete(K);let w=this.key(H.sessionId,H.messageId),q=this.historyByMessage.get(w);if(q?.delete(K),q?.size===0)this.historyByMessage.delete(w)}return Y}key($,J){return`${$}\x00${J}`}}import{resolveClaudeModelCapabilities as bY}from"@cortexkit/anthropic-auth-core";var w3="claude-opus-4-8",IJ=10,T3=128,gY=86400000;function b$($){return bY($)?.refusalRecoveryFamily??null}function J9($){return b$($)!==null}function yY($,J){let Y=b$(J);return Y?`${$}\x00${Y}`:null}function mY($){try{let J=JSON.parse($);return typeof J.model==="string"?{body:J,model:J.model}:null}catch{return null}}class xJ{now;recoveries=new Map;selectedModels=new Map;nextCycle=1;constructor($=Date.now){this.now=$}prune(){let $=this.now();for(let[J,Y]of this.recoveries)if($-Y.updatedAt>=gY)this.recoveries.delete(J);while(this.recoveries.size>T3){let J=this.recoveries.keys().next().value;if(typeof J!=="string")break;this.recoveries.delete(J)}}clearSession($){this.selectedModels.delete($);for(let J of this.recoveries.keys())if(J.startsWith(`${$}\x00`))this.recoveries.delete(J)}resetForModelChange($,J){let Y=this.selectedModels.get($),X=Y!==void 0&&Y!==J;if(X)this.clearSession($);this.selectedModels.delete($),this.selectedModels.set($,J);while(this.selectedModels.size>T3){let V=this.selectedModels.keys().next().value;if(V===void 0)break;this.selectedModels.delete(V)}return X}plan($,J){if(!$||typeof J!=="string")return null;this.prune();for(let[O,K]of[...this.recoveries]){if(!O.startsWith(`${$}\x00`))continue;K.updatedAt=this.now(),this.recoveries.delete(O),this.recoveries.set(O,K)}let Y=mY(J);if(!Y||!J9(Y.model))return null;let X=yY($,Y.model);if(!X)return null;let V=this.recoveries.get(X);if(V)V.nextRequestSequence++;if(!V||V.remaining<=0)return{sessionId:$,recoveryKey:X,requestedModel:Y.model,effectiveModel:Y.model,bodyText:J,downgraded:!1,cycle:V?.cycle,standbyCacheAnchor:V?.standbyCacheAnchor};return V.updatedAt=this.now(),this.recoveries.delete(X),this.recoveries.set(X,V),Y.body.model=w3,{sessionId:$,recoveryKey:X,requestedModel:V.model,effectiveModel:w3,bodyText:JSON.stringify(Y.body),downgraded:!0,cycle:V.cycle,cacheAccountId:V.cacheAccountId,standbyCacheAnchor:V.standbyCacheAnchor,requestSequence:V.nextRequestSequence}}recoveryAccount($){if($.cycle===void 0)return $.cacheAccountId;let J=this.recoveries.get($.recoveryKey);return J?.cycle===$.cycle?J.cacheAccountId:$.cacheAccountId}bindRecoveryAccount($,J){if(!$.downgraded||$.cycle===void 0)return!1;let Y=this.recoveries.get($.recoveryKey);if(!Y||Y.cycle!==$.cycle)return!1;if(Y.cacheAccountId===J)return!1;return Y.cacheAccountId=J,Y.standbyCacheAnchor=void 0,Y.standbyAnchorSequence=0,Y.updatedAt=this.now(),$.cacheAccountId=J,$.standbyCacheAnchor=void 0,!0}activate($,J){if($.downgraded||!J9($.requestedModel))return this.remaining($);let Y=this.recoveries.get($.recoveryKey),X=Y&&Y.sourceSuccesses<IJ?Y.reRefusals+1:0,V={model:$.requestedModel,remaining:IJ*2**Math.min(X,2),reRefusals:X,sourceSuccesses:0,cycle:this.nextCycle++,cacheAccountId:J,standbyCacheAnchor:$.standbyCacheAnchor,nextRequestSequence:0,standbyAnchorSequence:0,updatedAt:this.now()};return this.recoveries.delete($.recoveryKey),this.recoveries.set($.recoveryKey,V),this.prune(),V.remaining}completeSource($,J=!0){if($.downgraded||$.cycle==null||$.completed)return!1;$.completed=!0;let Y=this.recoveries.get($.recoveryKey);if(!Y||Y.cycle!==$.cycle||Y.remaining>0)return!1;if(!J)return Y.sourceSuccesses=0,!1;return Y.sourceSuccesses=Math.min(Y.sourceSuccesses+1,IJ),Y.updatedAt=this.now(),!0}complete($,J){if(!$.downgraded||$.cycle==null||$.completed)return{counted:!1,remaining:this.remaining($)};$.completed=!0;let Y=this.recoveries.get($.recoveryKey);if(!Y||Y.cycle!==$.cycle||Y.remaining<=0)return{counted:!1,remaining:Y?.remaining??0};if(Y.remaining--,J&&(!Y.cacheAccountId||J.oauthAccountId===Y.cacheAccountId)&&$.requestSequence!=null&&$.requestSequence>=Y.standbyAnchorSequence)Y.standbyCacheAnchor=J,Y.standbyAnchorSequence=$.requestSequence;return Y.updatedAt=this.now(),this.recoveries.delete($.recoveryKey),this.recoveries.set($.recoveryKey,Y),{counted:!0,remaining:Y.remaining}}remaining($){return this.prune(),this.recoveries.get($.recoveryKey)?.remaining??0}}function n$($){return typeof $==="object"&&$!==null}function cY($){if(Array.isArray($))return $;if(n$($)&&Array.isArray($.data))return $.data;return[]}function C3($){if(!n$($)||!n$($.info))return;return $.info}function E3($){let J=C3($);return typeof J?.role==="string"?J.role:void 0}function pY($){let J=C3($);return typeof J?.id==="string"?J.id:void 0}function fJ($){if(!n$($)||!n$($.info))return null;let J=$.info,Y=n$(J.model)?J.model:void 0,X=typeof J.agent==="string"?J.agent:void 0,V=typeof Y?.providerID==="string"?Y.providerID:typeof J.providerID==="string"?J.providerID:void 0,O=typeof Y?.modelID==="string"?Y.modelID:typeof Y?.id==="string"?Y.id:typeof J.modelID==="string"?J.modelID:void 0,K=typeof Y?.variant==="string"?Y.variant:typeof J.variant==="string"?J.variant:void 0;if(!X&&(!V||!O)&&!K)return null;let H={};if(X)H.agent=X;if(V&&O)H.model={providerID:V,modelID:O};if(K)H.variant=K;return H}function kJ($,J){return{agent:$.agent??J.agent,model:$.model??J.model,variant:$.variant??J.variant,latestAssistantMessageId:$.latestAssistantMessageId??J.latestAssistantMessageId,latestUserMessageId:$.latestUserMessageId??J.latestUserMessageId}}function S3($){return Boolean($.agent&&$.model&&$.variant)}async function Z9($,J){if(!$||!J)return null;let Y=$,X=[];if(typeof Y.session?.messages==="function")try{X=cY(await Promise.resolve(Y.session.messages({path:{id:J},query:{limit:100}})))}catch{X=[]}let V,O;for(let H of X){let w=pY(H);if(!w)continue;let q=E3(H);if(q==="assistant"&&(!V||w>V))V=w;if(q==="user"&&(!O||w>O))O=w}let K={latestAssistantMessageId:V,latestUserMessageId:O};for(let H=X.length-1;H>=0;H--){if(E3(X[H])!=="assistant")continue;let w=fJ(X[H]);if(!w)continue;if(K=kJ(K,w),S3(K))return K}for(let H=X.length-1;H>=0;H--){let w=fJ(X[H]);if(!w)continue;if(K=kJ(K,w),S3(K))return K}if(typeof Y.session?.get==="function")try{let H=await Promise.resolve(Y.session.get({path:{id:J}})),w=n$(H)&&n$(H.data)?H.data:n$(H)?H:void 0,q=w?fJ({info:w}):null;if(q)K=kJ(K,q)}catch{}if(!K.agent&&!K.model&&!K.variant&&!K.latestAssistantMessageId&&!K.latestUserMessageId)return null;return K}var A3="[lane start] — automated cache warm; no response needed.",Y9="x-cortexkit-lane-start",lY=1000;function uY($){if(!$||typeof $!=="object")return!1;let J=$;return J.type==="text"&&J.text===A3&&J.synthetic===!0}async function P3($,J){let Y=$?.session;if(typeof Y?.promptAsync!=="function")throw Error("OpenCode plugin client does not support session.promptAsync");let X=await Z9($,J),V={noReply:!1,parts:[{type:"text",text:A3,synthetic:!0}]};if(X?.agent)V.agent=X.agent;if(X?.model)V.model=X.model;if(X?.variant)V.variant=X.variant;await Promise.resolve(Y.promptAsync({path:{id:J},body:V}))}class vJ{#$=new Map;observeSyntheticMessage($){if(!$.parts.some(uY))return!1;let J=`${$.sessionId}\x00${$.messageId}`;if(!this.#$.has(J)&&this.#$.size>=lY){let Y=this.#$.keys().next().value;if(Y!==void 0)this.#$.delete(Y)}return this.#$.set(J,$.sessionId),!0}markHeaders($){let J=`${$.sessionId}\x00${$.messageId}`;if(!this.#$.has(J))return!1;return this.#$.delete(J),$.headers[Y9]="1",!0}clearSession($){for(let[J,Y]of this.#$)if(Y===$)this.#$.delete(J)}}import{createNativeUi as dY,disconnectNativeVaultForHost as iY,readNativeEnrollmentMode as nY}from"@cortexkit/anthropic-auth-core";function q3($){if(!$?.trim())throw TypeError("sessionId is required");return $}function R3($){if($.host!=="opencode")throw TypeError("OpenCode host is required");let J=dY({...$,readMode:$.readMode??(()=>nY("opencode",process.env)),disconnectVault:$.disconnectVault??(()=>iY({host:"opencode",env:process.env}))});return{menu:J,open(Y){return J.open({sessionId:q3(Y),notify(){}})},apply(Y){return J.apply(Y,{sessionId:q3(Y.sessionId),notify(){}})}}}import{primeStorageFingerprint as oY}from"@cortexkit/anthropic-auth-core";var X9=new Map,G9=new Map;function M3($,J){let Y=G9.get($);if(Y?.fingerprint!==J.fingerprint||Y.marker!==J.marker)return;let X=X9.get(J.fingerprint);if(X?.slots.delete($),X?.slots.size===0)X.manager.stop(),X9.delete(J.fingerprint);G9.delete($)}function I3($,J,Y){let X=oY($),V=X9.get(X),O=V?.manager??J();if(V)Y.rebind(O);let K=G9.get(Y.slot);if(K&&K.fingerprint!==X)M3(Y.slot,K);let H=V??{manager:O,slots:new Set};if(!V)X9.set(X,H);let w={fingerprint:X,marker:Symbol(Y.slot)};return H.slots.add(Y.slot),G9.set(Y.slot,w),{manager:O,release:()=>M3(Y.slot,w)}}import{classifySafeErrorForLog as rY,logger as sY}from"@cortexkit/anthropic-auth-core";function x3($,J,Y){sY.warn("quota","fallback quota preflight could not obtain a reading",{accountId:$,requiredByPolicy:J,...rY(Y)})}var hJ="x-cortexkit-request-class",aY=new Set(["title","summary","prime"]);function f3($){return typeof $==="string"&&aY.has($)}function k3($){let J=$.get("x-cortexkit-request-class");return $.delete("x-cortexkit-request-class"),J==="auxiliary"?"auxiliary":"main"}import{getKillswitchThresholdsForAccount as tY,getScopedQuotaWindowForModel as eY,killswitchPassesPolicy as $5}from"@cortexkit/anthropic-auth-core";function v3($){let J=Math.floor($.retryAfterSeconds/60),Y=$.retryAfterSeconds%60,X=`Retry in ${J}m ${Y}s.`;return $.modelName?`${$.modelName} weekly limit reached, no routable accounts. ${X}`:`Killswitch: no routable accounts. ${X}`}function h3($){if(!$.requestModelId)return{isScopedDriven:!1};if(!$5($.mainQuota,$.storage))return{isScopedDriven:!1};let J=eY($.mainQuota,$.requestModelId);if(!J)return{isScopedDriven:!1};if(!Number.isFinite(J.remainingPercent))return{isScopedDriven:!1};let Y=tY($.storage);if(J.remainingPercent<=Y.scoped)return{isScopedDriven:!0,modelName:J.modelName,modelId:$.requestModelId};return{isScopedDriven:!1}}var M$=[],J5=1,b3=new Map,W9=new Map,B1=new Set,Z5=1000;function g3($){if(typeof $!=="string"||$.length===0)throw TypeError("sessionId is required")}function bJ($,J){g3(J);let Y=J5++;if("menu"in $){if($.command!=="claude"||$.menu.command!=="claude")throw TypeError("Only the claude menu is supported");M$.push({id:Y,type:"open-menu",payload:$,sessionId:J})}else M$.push({id:Y,type:"open-dialog",payload:$,sessionId:J});if(M$.length>100)M$=M$.slice(M$.length-100);return Y}function y3($,J,Y){let X=bJ($,J);return new Promise((V)=>{let O;W9.set(X,{picked(){if(O!==void 0)Y.clearTimeout(O);V(!0)},cancel(){if(O!==void 0)Y.clearTimeout(O);V(!1)}}),O=Y.setTimeout(()=>{if(!W9.delete(X))return;if(M$=M$.filter((K)=>K.id!==X),B1.delete(J),B1.add(J),B1.size>Z5){let K=B1.values().next().value;if(K!==void 0)B1.delete(K)}V(!1)},Y.timeoutMs)})}function m3($){return B1.has($)}function c3($,J){if(g3(J),b3.set(J,Date.now()),B1.delete(J),$>0)M$=M$.filter((X)=>X.id>$||X.sessionId!==J);let Y=M$.filter((X)=>X.id>$&&X.sessionId===J);for(let X of Y){let V=W9.get(X.id);if(!V)continue;W9.delete(X.id),V.picked()}return Y}function V9($){let J=Date.now(),Y=b3.get($)??0;return Y>0&&J-Y<3000}import{randomBytes as Y5,timingSafeEqual as X5}from"node:crypto";import{readFile as G5,unlink as W5}from"node:fs/promises";import{createServer as V5}from"node:http";import{join as z5}from"node:path";import{parseApplyRequest as K5}from"@cortexkit/anthropic-auth-core";function O5($){return new Promise((J,Y)=>{let X=[],V=0;$.on("data",(O)=>{if(V+=O.length,V>1e6){$.destroy(),Y(Error("body too large"));return}X.push(O)}),$.on("end",()=>J(Buffer.concat(X).toString("utf8"))),$.on("error",Y)})}function _5($,J){if(!$?.startsWith("Bearer "))return!1;let Y=Buffer.from($.slice(7)),X=Buffer.from(J);return Y.length===X.length&&X5(Y,X)}async function l3($){let J=Y5(32).toString("hex"),Y=V5((O,K)=>{X(O,K)});async function X(O,K){let H=(w,q)=>{K.writeHead(w,{"content-type":"application/json"}),K.end(JSON.stringify(q))};try{let w=O.url??"";if(O.method==="GET"&&w==="/health")return H(200,{ok:!0});if(O.method!=="POST"||!w.startsWith("/rpc/"))return H(404,{error:"not found"});if(!_5(O.headers.authorization,J))return H(401,{error:"unauthorized"});let q=w.slice(5),P=JSON.parse(await O5(O)||"{}");if(q==="pending-notifications"){if(typeof P.sessionId!=="string"||P.sessionId.length===0)return H(400,{error:"sessionId is required"});let c=$.drain(Number(P.lastReceivedId??0),P.sessionId);return H(200,{messages:c})}if(q==="apply"){if(!$.apply)return H(501,{error:"text apply unavailable"});let c=await $.apply(P);return H(200,c)}if(q==="apply-menu"){let c=K5(P);if(c?.command!=="claude"||!c.sessionId?.trim())return H(400,{error:"invalid menu request"});if(!$.applyMenu)return H(501,{error:"menu unavailable"});return H(200,await $.applyMenu(c))}return H(404,{error:"unknown method"})}catch{if(!K.headersSent&&!K.writableEnded&&!K.destroyed)H(500,{error:"RPC request failed"})}}let V=await new Promise((O,K)=>{Y.on("error",K),Y.listen(0,"127.0.0.1",()=>{let H=Y.address();if(H&&typeof H==="object")O(H.port);else K(Error("no port"))})});Y.unref();try{await p3($.dir,{port:V,token:J,pid:process.pid})}catch(O){throw await new Promise((K)=>Y.close(()=>K())),O}return{port:V,token:J,async stop(){await new Promise((O)=>Y.close(()=>O()));try{let O=z5($.dir,`port-${process.pid}.json`),K=JSON.parse(await G5(O,"utf8"));if(K.port===V&&K.pid===process.pid)await W5(O)}catch{}}}}async function u3($,J){let Y=globalThis,X=Y.__anthropicAuthRpcServers??new Map,V=Y.__anthropicAuthRpcServersPending??new Map;Y.__anthropicAuthRpcServers=X,Y.__anthropicAuthRpcServersPending=V;let O=V.get($)??Promise.resolve(),K,H=O.catch(()=>{}).then(async()=>{let q=X.get($);if(q){if(await q.stop(),X.get($)===q)X.delete($)}K=await J(),X.set($,K)});V.set($,H);try{await H}finally{if(V.get($)===H)V.delete($)}let w=K;if(!w)throw Error("RPC server failed to start");return{server:w,release:async()=>{if(X.get($)!==w)return;if(await w.stop(),X.get($)===w)X.delete($)}}}import{resolveClaudeModelCapabilities as j5}from"@cortexkit/anthropic-auth-core";var n3="server-side-fallback-2026-07-01",o3="⁠",z9="cortexkit-server-fallback-v1:";function I$($){return $!==null&&typeof $==="object"&&!Array.isArray($)?$:void 0}function b1($,J){let Y=$?.[J];return typeof Y==="string"?Y:void 0}function g1($){return typeof $==="string"&&$.length>0&&$.length<=128&&/^claude-[a-z0-9-]+$/i.test($)}function L5($){return`${z9}${$.fromModel}|${$.toModel}`}function N5($){if(typeof $!=="string"||!$.startsWith(z9))return null;let J=$.slice(z9.length),Y=J.indexOf("|");if(Y<=0||Y!==J.lastIndexOf("|"))return null;let X=J.slice(0,Y),V=J.slice(Y+1);if(!g1(X)||!g1(V))return null;return{fromModel:X,toModel:V}}function H5($){if($.type!=="fallback")return null;let J=b1(I$($.from),"model"),Y=b1(I$($.to),"model");if(!g1(J)||!g1(Y))return null;return{fromModel:J,toModel:Y}}function D5($){return{type:"fallback",from:{model:$.fromModel},to:{model:$.toModel}}}function U5($,J){let Y=0,X=0;if(!Array.isArray($.messages))return{restoredMarkers:Y,droppedMarkers:X};for(let V of $.messages){let O=I$(V);if(O?.role!=="assistant"||!Array.isArray(O.content))continue;let K=[];for(let H of O.content){let w=I$(H);if(!(w?.type==="thinking"&&(w.thinking===o3||w.thinking==="")&&typeof w.signature==="string"&&w.signature.startsWith(z9))){K.push(H);continue}let P=N5(w.signature);if(J&&P)K.push(D5(P)),Y++;else X++}O.content=K}return{restoredMarkers:Y,droppedMarkers:X}}function r3($){return $?.trim().toLowerCase()==="legacy"?"legacy":"server"}function s3($,J){let Y=J&&j5($.model)?.serverSideFallback===!0,X=U5($,Y);if(Y)$.fallbacks="default";else if($.fallbacks==="default")delete $.fallbacks;return{enabled:Y,...X}}function Q5($){let J,Y=[];for(let V of $.split(/\r?\n/))if(V.startsWith("event:"))J=V.slice(6).trim();else if(V.startsWith("data:")){let O=V.slice(5);Y.push(O.startsWith(" ")?O.slice(1):O)}let X=Y.join(`
3
+ `);if(!X||X==="[DONE]")return{event:J};try{return{event:J,data:I$(JSON.parse(X))}}catch{return{event:J}}}function d3($){let J=$.indexOf(`
4
+
5
+ `),Y=$.indexOf(`\r
6
+ \r
7
+ `);if(J===-1)return Y===-1?null:{index:Y,length:4};if(Y===-1||J<Y)return{index:J,length:2};return{index:Y,length:4}}function i3($,J){return`event: ${$}
8
+ data: ${JSON.stringify(J)}
9
+
10
+ `}function B5($,J){return i3("content_block_start",{type:"content_block_start",index:$,content_block:{type:"thinking",thinking:o3}})+i3("content_block_delta",{type:"content_block_delta",index:$,delta:{type:"signature_delta",signature:L5(J)}})}function F5($,J){let Y=b$($),X=b$(J);if(Y&&X)return Y===X;return $===J}function a3($){let J="",Y=0,X=!1,V="",O,K,H,w=!1,q=!1,P=new Set,c=(T)=>{if(!Array.isArray(T?.iterations))return;for(let o of T.iterations){let R0=I$(o);if(R0?.type!=="fallback_message")continue;let W0=b1(R0,"model");if(g1(W0))H=W0}},a=(T)=>{if(w)return;w=!0;let o=K?.toModel??H??(O&&!F5($.requestedModel,O)?O:void 0);$.onOutcome?.({requestedModel:$.requestedModel,servedModel:O,targetModel:o,fallback:Boolean(o),handoff:Boolean(K),stopReason:T})},u=(T,o)=>{let R0=Q5(T),W0=R0.data,I0=b1(W0,"type")??R0.event;if(I0==="message_start"){let L0=I$(W0?.message),b=b1(L0,"model");if(g1(b))O=b;c(I$(L0?.usage))}else if(I0==="content_block_start"){let L0=I$(W0?.content_block),b=W0?.index;if(L0?.type==="tool_use"&&typeof b==="number"&&Number.isInteger(b)&&b>=0)P.add(b);let O0=L0?H5(L0):null;if(O0){if(K=O0,typeof b==="number"&&Number.isInteger(b)&&b>=0)return B5(b,O0)}}else if(I0==="content_block_stop"){let L0=W0?.index;if(typeof L0==="number"&&P.delete(L0))q=!0}else if(I0==="message_delta"){c(I$(W0?.usage));let L0=I$(W0?.delta),b=b1(L0,"stop_reason");if(b)a(b);if(b==="refusal"&&q&&P.size===0&&L0&&$.onRefusalAfterToolUse&&$.onRefusalAfterToolUse()!==!1)return L0.stop_reason="tool_use",`${R0.event?`event: ${R0.event}
11
+ `:""}${W0?`data: ${JSON.stringify(W0)}
12
+ `:""}${o}`}return T+o},s=()=>{let T="";while(!0){let o=d3(J);if(!o)break;let R0=J.slice(0,o.index),W0=J.slice(o.index,o.index+o.length);J=J.slice(o.index+o.length),Y=new TextEncoder().encode(J).byteLength,T+=u(R0,W0)}return T};return{pendingLength(){return Y},push(T){let o="";if(X){let W0=V+T,I0=d3(W0);if(!I0)return V=W0.slice(-3),T;let L0=I0.index+I0.length;o=T.slice(0,Math.max(0,L0-V.length)),T=W0.slice(L0),X=!1,V=""}if(!T)return o;let R0=new TextEncoder().encode(T).byteLength;if(J+=T,Y+=R0,o+=s(),$.maxPendingBytes!==void 0&&Y>$.maxPendingBytes){let W0=J;return J="",Y=0,X=!0,V=W0.slice(-3),o+W0}return o},flush(){if(X)return V="","";let T=s();if(!J)return T;let o=u(J,"");return J="",Y=0,T+o}}}import{createHash as w5}from"node:crypto";import{applyClaudeCodeHeaders as T5,applyClaudeCodeMetadata as E5,applyThinkingBindingControls as S5,applyTurnEndNotes as C5,assertNotCustodyTombstone as A5,buildBillingHeaderValue as P5,CLAUDE_CODE_ENTRYPOINT as q5,CLAUDE_CODE_IDENTITY as N4,CLAUDE_FABLE_MYTHOS_5_SUMMARIZED_THINKING as R5,CLAUDE_HAIKU_5_5_ADAPTIVE_THINKING as M5,CLAUDE_OPUS_5_5_ADAPTIVE_THINKING as I5,CLAUDE_OPUS_5_ADAPTIVE_THINKING as x5,CLAUDE_SONNET_5_5_ADAPTIVE_THINKING as f5,CLAUDE_SONNET_5_ADAPTIVE_THINKING as k5,ClaudeCodeFirstUserTextTracker as v5,countUserPrompts as h5,createSseFramer as b5,FAST_MODE_BETA as g5,isClaudeFableOrMythos5Model as y5,isClaudeHaiku55Model as m5,isClaudeOpus5Model as W7,isClaudeOpus55Model as c5,isClaudeSonnet5Model as p5,isClaudeSonnet55Model as l5,isFastModeSupportedModel as u5,isOpenAIReasoningSignature as d5,mergeAnthropicBetas as i5,OPENCODE_IDENTITY_PREFIX as n5,orderClaudeCodeBody as o5,PARAGRAPH_REMOVAL_ANCHORS as r5,parseSseFrame as s5,REQUIRED_BETAS as s2,remapRequestBodyModel as a5,resolveClaudeModelCapabilities as t5,SseFrameTooLargeError as V7,selectClaudeCodeBetas as e5,signRequestBody as $X,stripEmptyTrailingAssistantMessages as JX,TEXT_REPLACEMENTS as ZX,TOOL_PREFIX as z7,TrailingAssistantHistoryError as YX}from"@cortexkit/anthropic-auth-core";import{applyEdits as K7,parseTree as XX}from"jsonc-parser";function t3($,J){let Y=new Map,X=0,V=0,O=0,K=0,H=0,w=(c)=>{let a=performance.now(),u=$(c);return H+=performance.now()-a,O++,u};return{call:(c)=>{if(!J.enabled())return w(c);let a=Y.get(c);if(a!==void 0)return V++,Y.delete(c),Y.set(c,a),a;let u=w(c),s=c.length+u.length;if(s>J.maxBytes)return u;Y.set(c,u),X+=s;while(X>J.maxBytes&&Y.size>1){let T=Y.keys().next().value,o=Y.get(T)??"";Y.delete(T),X-=T.length+o.length,K++}return u},stats:()=>({hits:V,misses:O,evictions:K,entries:Y.size,cacheBytes:X,computeMsTotal:H})}}var x$=8388608;function j9($){return`${z7}${$.charAt(0).toUpperCase()}${$.slice(1)}`}function GX($){if($==="StructuredOutput")return $;return`${$.charAt(0).toLowerCase()}${$.slice(1)}`}class D4 extends Error{retryable=!1;isRetryable=!1;constructor(){super("Response tool-name mapping could not be validated safely");this.name="UnsafeToolNameResponseError"}}function H4($){if($?.hazardousWireNames.size)throw new D4}function cJ($,J){return $ instanceof V7&&J?.hazardousWireNames.size?new D4:$}async function pJ($,J){try{$.cancel(J).catch(()=>{})}catch{}try{await Promise.allSettled([$.closed])}finally{try{$.releaseLock()}catch{}}}function WX($){let J=new Set;if(Array.isArray($)){for(let O of $)if(Z0(O)&&typeof O.name==="string"&&O.name)J.add(O.name)}let Y=new Map,X=(O,K,H)=>{O.set(K,O.has(K)&&O.get(K)!==H?null:H)},V=new Map;for(let O of J){let K=O.split("_");for(let H=0;H<K.length;H++){let w=K.slice(H).join("_");if(!w)continue;for(let q of new Set([w,GX(w),w.charAt(0).toUpperCase()+w.slice(1)]))X(Y,q,O),X(Y,`${z7}${q}`,O)}X(V,j9(O),O)}for(let O of J)Y.set(O,O);for(let[O,K]of V)Y.set(O,K);return Object.assign(Y,{declaredHostNames:J,hazardousWireNames:new Set([...V.keys()].filter((O)=>J.has(O)))})}function U4($,J){let Y=new Headers;if($ instanceof Request)$.headers.forEach((V,O)=>{Y.set(O,V)});let X=J?.headers;if(X){if(X instanceof Headers)X.forEach((V,O)=>{Y.set(O,V)});else if(Array.isArray(X))for(let V of X){let[O,K]=V;if(typeof K<"u")Y.set(O,String(K))}else for(let[V,O]of Object.entries(X))if(typeof O<"u")Y.set(V,String(O))}return Y}function N9($){return $.set("anthropic-beta",i5($.get("anthropic-beta"),[g5])),$}function m1($,J,Y={}){return A5(J,"anthropic"),T5($,J,{...Y,extraBetas:[...Y.body?.fallbacks==="default"?[n3]:[]]})}function VX($){if($.tools&&Array.isArray($.tools))$.tools=$.tools.map((Y)=>({...Y,name:Y.name?j9(Y.name):Y.name}));let J=$.tool_choice;if(Z0(J)&&J.type==="tool"&&typeof J.name==="string")$.tool_choice={...J,name:j9(J.name)};if($.messages&&Array.isArray($.messages))$.messages=$.messages.map((Y)=>{if(Y.content&&Array.isArray(Y.content))Y.content=Y.content.map((X)=>{if(X.type==="tool_use"&&X.name)return{...X,name:j9(X.name)};return X});return Y});return JSON.stringify(o5($))}function zX($,J){return K7($,O7($,J,!1))}function L4($,J){if($?.type!=="object")return;return $.children?.filter((X)=>X.children?.[0]?.value===J)?.at(-1)?.children?.[1]}function O7($,J,Y,X=!0){if(!J?.size)return[];let V=$.charCodeAt(0)===65279?1:0,O=[],K;try{K=XX($.slice(V),O,{disallowComments:!0,allowTrailingComma:!1})}catch{return H4(J),[]}if(O.length||K?.type!=="object")return H4(J),[];let H=L4(K,"type")?.value,w;if(Y){X&&=H==="content_block_start";let P=L4(K,"content_block");w=P?[P]:[]}else{X&&=H===void 0||H==="message";let P=L4(K,"content");w=P?.type==="array"?P.children??[]:[]}let q=[];for(let P of w){if(L4(P,"type")?.value!=="tool_use")continue;let c=L4(P,"name");if(c?.type!=="string")continue;let a=J.get(c.value);if(J.hazardousWireNames.has(c.value)&&(!X||a===null))throw new D4;if(!X)continue;if(a&&a!==c.value)q.push({offset:V+c.offset,length:c.length,content:JSON.stringify(a)})}return q}function KX($,J){let Y=$.charCodeAt(0)===65279?1:0,X=s5($.slice(Y));if(X.data===void 0)return $;let V=O7(X.data,J,!0,X.event===void 0||X.event==="content_block_start");if(!V.length)return $;let O=[],K=0;for(let w of $.slice(Y).matchAll(/([^\r\n]*)(?:\r\n|\r|\n|$)/g)){let q=/^data(?:: ?(.*))?$/.exec(w[1]??"");if(!q)continue;let P=q[1]?.length??0;O.push({dataOffset:K,frameOffset:Y+(w.index??0)+q[0].length-P,length:P}),K+=P+1}let H=[];for(let w of V){let q=O.find((P)=>w.offset>=P.dataOffset&&w.offset+w.length<=P.dataOffset+P.length);if(!q)return H4(J),$;H.push({...w,offset:q.frameOffset+w.offset-q.dataOffset})}return K7($,H)}function OX($,J){let Y=new TextEncoder,X=new TextDecoder("utf-8",{ignoreBOM:!0}),V=b5({maxFrameBytes:x$}),O="",K=0,H=!$?.size;return{pendingLength:()=>O.length,push(w,q=!1){if(H||!$)return w;let P=O+w;if(J){if(K+=Y.encode(w).byteLength,K>x$)return H=!0,O="",H4($),P;return O=q?"":P,q?zX(P,$):""}let c;try{c=V.push(Y.encode(w))}catch(u){if(!(u instanceof V7))throw u;return H=!0,O="",H4($),P}let a=c.map((u)=>X.decode(u));if(O=P.slice(a.reduce((u,s)=>u+s.length,0)),q){let u=V.finish();if(u)a.push(X.decode(u));O=""}return a.map((u)=>KX(u,$)).join("")}}}function lJ(){if(!process.env.ANTHROPIC_BASE_URL?.trim())return!1;let $=process.env.ANTHROPIC_INSECURE?.trim();return $==="1"||$==="true"}function _7($){let J=$?.trim();if(!J)return null;try{let Y=new URL(J);if(Y.protocol!=="http:"&&Y.protocol!=="https:"||Y.username||Y.password)return null;return Y}catch{return null}}function _X(){return _7(process.env.ANTHROPIC_BASE_URL)}function Q4($,J={}){let Y=null;try{if(typeof $==="string"||$ instanceof URL)Y=new URL($.toString());else if($ instanceof Request)Y=new URL($.url)}catch{Y=null}if(!Y)return{input:$,url:null};let X=Y.href,V=J.baseURL?_7(J.baseURL):_X();if(V){let K=V.pathname.replace(/\/$/,""),H=Y.pathname;if(Y.protocol=V.protocol,Y.host=V.host,!(H===K||K!==""&&H.startsWith(`${K}/`))){let q=/\/v\d[^/]*$/.test(K);if(H==="/messages")Y.pathname=q?`${K}/messages`:`${K}/v1/messages`;else if(H==="/v1/messages"&&q)Y.pathname=`${K}/messages`;else Y.pathname=`${K}${H}`}else if(H===`${K}/messages`){if(!/\/v\d[^/]*$/.test(K))Y.pathname=`${K}/v1/messages`}}if(Y.pathname.endsWith("/v1/messages")&&!Y.searchParams.has("beta"))Y.searchParams.set("beta","true");if(Y.href===X)return{input:$,url:Y};return{input:$ instanceof Request?new Request(Y.toString(),$):Y,url:Y}}function jX($){let X=$.split(/\n\n+/).filter((V)=>{if(V.includes(n5))return!1;for(let O of r5)if(V.includes(O))return!1;return!0}).join(`
13
+
14
+ `);for(let V of ZX)X=X.replace(V.match,V.replacement);return X.trim()}var LX=8388608;function NX(){return process.env.OPENCODE_ANTHROPIC_AUTH_MEMO!=="0"}var HX=t3(jX,{maxBytes:LX,enabled:NX});function K9($){return HX.call($)}function Z0($){return $!=null&&typeof $==="object"&&!Array.isArray($)}function DX($){let J={type:"text",text:N4};if($==null)return[J];if(typeof $==="string"){let X=K9($);if(X===N4)return[J];return[J,{type:"text",text:X}]}if(Z0($)){let X=typeof $.type==="string"?$.type:"text",V=typeof $.text==="string"?$.text:"";return[J,{...$,type:X,text:K9(V)}]}if(!Array.isArray($))return[J];let Y=$.map((X)=>{if(typeof X==="string")return{type:"text",text:K9(X)};if(Z0(X)&&X.type==="text"&&typeof X.text==="string")return{...X,type:"text",text:K9(X.text)};return{type:"text",text:String(X)}});if(Y[0]?.text===N4)return Y;return[J,...Y]}var j7={type:"ephemeral",ttl:"1h"},e3=20;function uJ($){if(Z0($.cache_control))return $.cache_control;if(Z0($.cacheControl))return $.cacheControl;return null}function L9($,J){if(!Z0($))return!1;return delete $.cacheControl,$.cache_control=J?{...j7}:{type:"ephemeral"},!0}function yJ($){if(!Z0($))return;delete $.cache_control,delete $.cacheControl}function dJ($){if(Array.isArray($))return $;if(typeof $==="string")return[{type:"text",text:$}];return null}function mJ($){if(Array.isArray($))return $.map(mJ);if(!Z0($))return $;let J={};for(let Y of Object.keys($).sort()){if(Y==="cache_control"||Y==="cacheControl")continue;J[Y]=mJ($[Y])}return J}function L7($){if(!Z0($))return;let J=dJ($.content);if(!J?.length)return;let Y=mJ({...$,content:J});return w5("sha256").update(JSON.stringify(Y)).digest("hex")}function UX($){if(!Z0($))return!1;let J=dJ($.content);return Boolean(J?.some((Y)=>Z0(Y)&&uJ(Y)?.type==="ephemeral"))}function N7($){try{let J=JSON.parse($);if(!Array.isArray(J.messages))return;for(let Y=J.messages.length-1;Y>1;Y--){let X=J.messages[Y];if(!Z0(X)||X.role!=="user"||!UX(X))continue;let V=L7(X);if(!V)return;return{fingerprint:V,messageIndex:Y,messageCount:J.messages.length}}return}catch{return}}function H7($,J){if(!Z0($))return;let Y=uJ($);if(Y?.type!=="ephemeral")return;if(J)Y.ttl="1h";else delete Y.ttl}function $7($,J){iJ($,(Y)=>H7(Y,J))}function iJ($,J){if(Array.isArray($.tools))for(let Y of $.tools)J(Y);if(Array.isArray($.system))for(let Y of $.system)J(Y);else J($.system);if(!Array.isArray($.messages))return;for(let Y of $.messages)if(J(Y),Z0(Y)&&Array.isArray(Y.content))for(let X of Y.content)J(X)}function D7($){yJ($),iJ($,yJ)}function QX($){D7($),$.cache_control={...j7}}function BX($){return Z0($)&&$.type!=="thinking"&&$.type!=="redacted_thinking"}function U7($){let J=dJ($.content);if(!J?.length)return;let Y=J.filter(BX);if(!Y.length)return;return{content:J,cacheableBlocks:Y}}function FX($){if(!Z0($))return!1;let J=U7($);if(!J||J.cacheableBlocks.length<2)return!1;let[Y,X,V]=J.content,K=$.role==="user"&&Z0(Y)&&Y.type==="text"&&typeof Y.text==="string"&&Z0(X)&&X.type==="image"&&Z0(V)&&V.type==="text"&&typeof V.text==="string"&&/<memory-mural>[\s\S]*?<\/memory-mural>/.test(Y.text)?[X,V]:J.cacheableBlocks.slice(0,2);$.content=J.content;for(let H of K)L9(H,!0);return!0}function O9($){if(!Z0($))return!1;let J=U7($);if(!J)return!1;let Y=J.cacheableBlocks[J.cacheableBlocks.length-1];return $.content=J.content,L9(Y,!0)}function wX($){if(!Z0($))return 0;let J=$.content;if(Array.isArray(J))return J.length;if(J==null)return 0;return 1}function TX($){let J=[],Y=0;return $.forEach((X,V)=>{let O=wX(X);if(Z0(X)&&X.role==="user"&&O>0)J.push({index:V,blockPosition:Y+O-1});Y+=O}),J}function EX($,J,Y,X){if(!X)return;let V=[],O=J.find((K)=>K.index===X.messageIndex&&K.index>1&&K.index<Y.index);if(O)V.push(O);for(let K of[...J].reverse()){if(K.index<=1||K.index>=Y.index||K.index===O?.index)continue;V.push(K)}for(let K of V)if(L7($[K.index])===X.fingerprint)return K;return}function SX($,J){let Y=TX($),X=[...Y].reverse().find((P)=>P.index>1);if(!X)return{latest:void 0,bridge:void 0,standbyAnchorMatched:!1,standbyBridgeApplied:!1};let V=EX($,Y,X,J),O=V?X.blockPosition-V.blockPosition+1:void 0,K=V&&O!=null&&O>e3?V:void 0,H=[...Y].reverse().find((P)=>P.index<X.index),w=H?X.blockPosition-H.blockPosition+1:0,q=H&&H.index>1&&w>e3?H:void 0;return{latest:X,bridge:K??q,standbyAnchorMatched:Boolean(V),standbyDistanceBlocks:O,standbyBridgeApplied:Boolean(K)}}function gJ($){return Z0($)&&typeof $.text==="string"?$.text:""}function CX($){if(!Array.isArray($.system))return;let J=$.system,Y=0;if(gJ(J[Y]).startsWith("x-anthropic-billing-header:"))Y++;if(gJ(J[Y])===N4)Y++;let X=Y+1;if(X>=J.length-1)return;let V=J[X];if(!Z0(V))return;let O=J.slice(X).map(gJ).join(`
15
+ `);J.splice(X,J.length-X,{...V,type:"text",text:O})}function J7($){if(Array.isArray($.system)){let J=$.system.findIndex((V)=>Z0(V)&&V.text===N4),Y=$.system.slice(J>=0?J+1:0).filter(Z0),X=Y[Y.length-1];L9(X,!0)}else L9($.system,!0)}function AX($,J){if(D7($),CX($),!Array.isArray($.messages))return J7($),{standbyAnchorMatched:!1,standbyBridgeApplied:!1};let{latest:Y,bridge:X,standbyAnchorMatched:V,standbyDistanceBlocks:O,standbyBridgeApplied:K}=SX($.messages,J);if(!X)J7($);if(!FX($.messages[0]))O9($.messages[0]),O9($.messages[1]);if(X)O9($.messages[X.index]);if(Y)O9($.messages[Y.index]);return{standbyAnchorMatched:V,standbyDistanceBlocks:O,standbyBridgeApplied:K,...K&&X?{standbyBridgeMessageIndex:X.index}:{}}}function PX($){if(!Array.isArray($.messages))return 0;let J=0;return $.messages=$.messages.filter((Y)=>{if(!Z0(Y)||!Array.isArray(Y.content))return!0;if(Y.role!=="assistant")return!0;let X=Y.content.filter((V)=>{if(!Z0(V)||V.type!=="thinking")return!0;if(!d5(V.signature))return!0;return J+=1,!1});if(X.length===Y.content.length)return!0;return Y.content=X,X.length>0}),J}function nJ($){let J=$.tool_choice;if(Z0(J)&&(J.type==="any"||J.type==="tool"))delete $.tool_choice}function qX($){if(!y5($.model))return null;let J=Object.hasOwn($,"thinking");if($.thinking={...R5},t5($.model)?.rejectsForcedToolChoice)nJ($);return{replacedExisting:J}}function RX($){if(l5($.model)){nJ($);let X=Object.hasOwn($,"thinking"),V=$.thinking;if(Z0(V)&&(V.type==="disabled"||V.type==="between_tools")){$.thinking={type:"between_tools"};let O=$.output_config;if(Z0(O)&&(O.effort==="xhigh"||O.effort==="max"))O.effort="high";return{replacedExisting:X,display:"between_tools"}}return $.thinking={...f5},{replacedExisting:X,display:"summarized"}}if(!p5($.model))return null;let J=Object.hasOwn($,"thinking"),Y=$.thinking;if(Z0(Y)&&Y.type==="disabled")return $.thinking={type:"disabled"},{replacedExisting:J,display:"disabled"};return $.thinking={...k5},{replacedExisting:J,display:"summarized"}}function MX($){if(c5($.model)){nJ($);let X=Object.hasOwn($,"thinking");return $.thinking={...I5},{replacedExisting:X,display:"summarized"}}if(!W7($.model))return null;let J=Object.hasOwn($,"thinking"),Y=$.thinking;if(Z0(Y)&&Y.type==="disabled"){$.thinking={type:"disabled"};let X=$.output_config;if(Z0(X)&&X.effort==="xhigh")X.effort="high";else if(Z0(X)&&X.effort==="max")X.effort="high";return{replacedExisting:J,display:"disabled"}}return $.thinking={...x5},{replacedExisting:J,display:"summarized"}}function IX($){if(!m5($.model))return null;delete $.temperature,delete $.top_p,delete $.top_k;let J=Object.hasOwn($,"thinking");if(Z0($.thinking)&&$.thinking.type==="disabled"){$.thinking={type:"disabled"};let Y=$.output_config;if(Z0(Y)&&(Y.effort==="xhigh"||Y.effort==="max"))Y.effort="high";return{replacedExisting:J,display:"disabled"}}return $.thinking={...M5},{replacedExisting:J,display:"summarized"}}function xX($,J){if(!J.enabled)return $7($,!1),delete $.cache_control,delete $.cacheControl,{};if(J.mode==="automatic")return QX($),{};if(J.mode==="hybrid")return AX($,J.hybridStandbyAnchor);$7($,!0),delete $.cacheControl;let Y=[];if(iJ($,(X)=>{if(Z0(X)&&uJ(X))Y.push(X)}),Z0($.cache_control))H7($,!0),Y.push($);for(let X of Y.slice(0,-4))yJ(X);return{}}function fX($){if(!Array.isArray($.messages))return 0;for(let J=$.messages.length-1;J>=0;J--){let Y=$.messages[J];if(!Z0(Y)||Y.role!=="assistant")continue;if(!Array.isArray(Y.content))return 0;if(!Y.content.some((V)=>Z0(V)&&V.type==="tool_use"))return 0;let X=0;while(Y.content.length){let V=Y.content[Y.content.length-1];if(!Z0(V)||V.type!=="text"||typeof V.text!=="string"||V.text.trim())break;Y.content.pop(),X++}return X}return 0}var kX=1000,vX=new v5(kX);function hX($,J,Y){return vX.resolve($,J,!Y)}function F0(){return performance.now()}function B$($){return Math.round($*10)/10}function Z7($){let J=0,Y=0,X=0,V=Array.isArray($.messages)?$.messages:[];J=V.length;for(let O of V){if(!O||typeof O!=="object")continue;let K=O.content;if(!Array.isArray(K))continue;Y+=K.length;for(let H of K)if(H&&typeof H==="object"&&H.type==="tool_use")X++}return{messageCount:J,contentBlockCount:Y,toolDefinitionCount:Array.isArray($.tools)?$.tools.length:0,toolUseCount:X,systemBlockCount:Array.isArray($.system)?$.system.length:0}}async function H9($,J={}){try{let Y=F0(),X=JSON.parse($);J.perf?.("parse",{ms:B$(F0()-Y),inputBytes:$.length,...Z7(X)});let V=F0(),O=Array.isArray(X.messages)?X.messages.length:void 0;JX(X.messages);let K=fX(X),H=Array.isArray(X.messages)?X.messages.length:void 0;J.perf?.("strip_trailing_assistant",{ms:B$(F0()-V),removedMessages:typeof O==="number"&&typeof H==="number"?O-H:void 0,removedWhitespaceBlocks:K});let w=F0(),q=PX(X),P=s3(X,J.serverSideFallbackEnabled===!0),c=qX(X),a=RX(X),u=MX(X),s=IX(X);if(J.perf?.("model_normalize",{ms:B$(F0()-w),model:typeof X.model==="string"?X.model:void 0,fableMythosThinkingDisplay:c?"summarized":void 0,replacedFableMythosThinking:c?.replacedExisting??!1,sonnet5ThinkingDisplay:a?.display,replacedSonnet5Thinking:a?.replacedExisting??!1,opus5ThinkingDisplay:u?.display,replacedOpus5Thinking:u?.replacedExisting??!1,haiku55ThinkingDisplay:s?.display,replacedHaiku55Thinking:s?.replacedExisting??!1,removedNonAnthropicThinking:q,serverSideFallbackEnabled:P.enabled,serverFallbackMarkersRestored:P.restoredMarkers,serverFallbackMarkersDropped:P.droppedMarkers,hasOutputConfig:Object.hasOwn(X,"output_config")}),J.laneStart===!0)X.max_tokens=1,delete X.thinking;if(F3(X,J.midConversationEffortEnabled===!0,J.midConversationEffortPlan,J.midConversationEffortResolvedPlan),S5(X,J.thinkingPrefixMismatchBehavior??"account-default"),J.turnEndNoteEnabled)C5(X,{tools:J.turnEndNote?.tools});let T=F0(),o=Array.isArray(X.messages)&&X.messages.some((q1)=>q1.role==="user")?P5(X.messages,void 0,q5,J.sessionId?hX(J.sessionId,X.messages,J.laneStart===!0):void 0,J.billingLineage?.promptId?{...J.billingLineage,promptIndex:J.billingLineage.promptIndex??h5(X.messages)}:J.billingLineage):null;J.perf?.("billing_header",{ms:B$(F0()-T),hasBillingHeader:Boolean(o)});let R0=F0();if(X.system=DX(X.system),J.perf?.("system_identity",{ms:B$(F0()-R0),systemBlockCount:Array.isArray(X.system)?X.system.length:0}),o&&Array.isArray(X.system))X.system.unshift({type:"text",text:o});let W0=F0(),I0=xX(X,{enabled:J.cache1hEnabled??!1,mode:J.cache1hMode??"explicit",hybridStandbyAnchor:J.hybridStandbyAnchor});if(J.perf?.("cache_strategy",{ms:B$(F0()-W0),enabled:J.cache1hEnabled??!1,mode:J.cache1hMode??"explicit",...I0}),J.fastModeEnabled&&u5(X.model))X.speed="fast";else if(X.speed==="fast")delete X.speed;if(J.cacheDiagnosticsPreviousMessageId!==void 0&&e5(X).split(",").includes(V4))r4(X,J.cacheDiagnosticsPreviousMessageId);let L0=F0();if(J.identity)E5(X,J.identity);J.perf?.("metadata",{ms:B$(F0()-L0),hasAccountUuid:Boolean(J.identity?.accountUuid)});let b=F0();if(J.modelRemapEnabled===!0)a5(X);let O0=WX(X.tools),m0=VX(X);J.perf?.("prefix_tools_stringify",{ms:B$(F0()-b),outputBytesBeforeSign:m0.length,...Z7(X)});let R=F0(),s0=await $X(m0);return J.perf?.("cch_sign",{ms:B$(F0()-R),outputBytes:s0.length}),J.onToolNameMap?.(O0),s0}catch(Y){if(Y instanceof E0||Y instanceof YX)throw Y;return $}}var Q7=new TextEncoder;function bX(){return{pending:"",pendingOverflowCount:0,disabled:!1,events:0,parseErrors:0,eventCounts:{},typeCounts:{},deltaTypeCounts:{},contentBlockTypeCounts:{},textDeltaBytes:0,thinkingDeltaBytes:0,inputJsonDeltaBytes:0,signatureDeltaBytes:0,redactedThinkingBytes:0}}function _9($,J){if(!J)return;$[J]=($[J]??0)+1}function F1($){return Q7.encode($).byteLength}function g$($){return $&&typeof $==="object"&&!Array.isArray($)?$:void 0}function r0($,J){let Y=$?.[J];return typeof Y==="string"?Y:void 0}function gX($,J){let Y=$?.[J];return typeof Y==="number"?Y:void 0}function oJ($){if(!$.trim())return null;let J,Y=[];for(let c of $.split(/\r?\n/)){if(c.startsWith("event:")){J=c.slice(6).trim();continue}if(c.startsWith("data:")){let a=c.slice(5);Y.push(a.startsWith(" ")?a.slice(1):a)}}let X=Y.join(`
16
+ `),V={event:J,rawBytes:F1($),dataBytes:F1(X)};if(!X||X==="[DONE]")return V.type=X==="[DONE]"?"done":void 0,V.event??=V.type,V;let O;try{O=JSON.parse(X)}catch{return V}let K=g$(O),H=g$(K?.delta),w=g$(K?.content_block),q=g$(K?.message),P=g$(K?.usage)??g$(q?.usage);if(V.type=r0(K,"type"),V.event??=V.type,V.index=gX(K,"index"),V.contentBlockType=r0(w,"type"),V.deltaType=r0(H,"type"),V.stopReason=r0(H,"stop_reason")??r0(K,"stop_reason"),V.deltaType==="text_delta")V.textDeltaBytes=F1(r0(H,"text")??"");if(V.deltaType==="thinking_delta")V.thinkingDeltaBytes=F1(r0(H,"thinking")??"");if(V.deltaType==="input_json_delta")V.inputJsonDeltaBytes=F1(r0(H,"partial_json")??"");if(V.deltaType==="signature_delta")V.signatureDeltaBytes=F1(r0(H,"signature")??"");if(V.contentBlockType==="redacted_thinking")V.redactedThinkingBytes=F1(r0(w,"data")??"");if(P)V.usage=P,V.stopReason??=r0(q,"stop_reason");if(V.type==="message_start"&&q)V.message=q;return V}function y1($){let J=$.indexOf(`
17
+
18
+ `),Y=$.indexOf(`\r
19
+ \r
20
+ `);if(J===-1)return Y===-1?null:{index:Y,length:4};if(Y===-1||J<Y)return{index:J,length:2};return{index:Y,length:4}}function Y7($,J,Y,X){if(!J||$.disabled)return;$.pending+=J;while(!0){let V=y1($.pending);if(!V)break;let O=$.pending.slice(0,V.index);$.pending=$.pending.slice(V.index+V.length);let K=oJ(O);if(!K)continue;if($.events++,_9($.eventCounts,K.event??"unknown"),_9($.typeCounts,K.type),_9($.deltaTypeCounts,K.deltaType),_9($.contentBlockTypeCounts,K.contentBlockType),$.textDeltaBytes+=K.textDeltaBytes??0,$.thinkingDeltaBytes+=K.thinkingDeltaBytes??0,$.inputJsonDeltaBytes+=K.inputJsonDeltaBytes??0,$.signatureDeltaBytes+=K.signatureDeltaBytes??0,$.redactedThinkingBytes+=K.redactedThinkingBytes??0,$.last=K,X?.(K),K.dataBytes>0&&!K.type&&!K.event)$.parseErrors++}if(Q7.encode($.pending).byteLength>Y)$.pending="",$.disabled=!0,$.pendingOverflowCount++}function yX(){return{pending:"",completed:!1,disabled:!1,resyncCarry:""}}function mX($,J,Y){if(!J||$.completed)return null;if($.disabled){let V=$.resyncCarry+J,O=y1(V);if(!O)return $.resyncCarry=V.slice(-3),null;if($.disabled=!1,$.resyncCarry="",J=V.slice(O.index+O.length),!J)return null}$.pending+=J;let X=null;while(!0){let V=y1($.pending);if(!V)break;let O=$.pending.slice(0,V.index);$.pending=$.pending.slice(V.index+V.length);let K=oJ(O);if(K?.type!=="message_delta"||!K.stopReason)continue;$.completed=!0,X??=K.stopReason==="refusal"?{type:"content-filter"}:{type:"complete",finishReason:K.stopReason}}if(new TextEncoder().encode($.pending).byteLength>Y){let V=$.pending;$.pending="",$.disabled=!0,$.resyncCarry=V.slice(-3)}return X}function cX(){return{pending:"",disabled:!1}}function X7($){let J=oJ($);if(J?.type!=="message_delta"||J.stopReason!=="max_tokens")return $;return $.replace(/("stop_reason"\s*:\s*)"max_tokens"/,'$1"end_turn"')}function pX($,J,Y,X=!1){if(!J&&!X)return"";if($.disabled)return J;if(new TextEncoder().encode($.pending+J).byteLength>Y){let O=$.pending+J;return $.pending="",$.disabled=!0,O}$.pending+=J;let V="";while(!0){let O=y1($.pending);if(!O)break;let K=$.pending.slice(0,O.index),H=$.pending.slice(O.index,O.index+O.length);$.pending=$.pending.slice(O.index+O.length),V+=X7(K),V+=H}if(X&&$.pending)V+=X7($.pending),$.pending="";return V}function lX(){return{pending:"",disabled:!1,resyncCarry:""}}function uX($,J){let Y=$?.toLowerCase(),X=J.toLowerCase();return Y==="api_error"||Y==="overloaded_error"||Y==="server_error"||Y==="internal_server_error"||X.includes("internal server error")||X.includes("server overloaded")}function dX($,J){let Y=$?`${$}: ${J}`:J,X=Error(`Anthropic stream error: ${Y}`);if(X.code="ECONNRESET",X.syscall="anthropic-sse",$)X.providerErrorType=$;return X}function iX($){let J=W7($)?"Opus 5":"Fable",Y=Error(`${J} response was blocked by the provider content filter; retrying with Opus 4.8`);return Y.code="ECONNRESET",Y.syscall="anthropic-sse",Y.providerErrorType="refusal",Y}function nX($){if(!$.includes("error"))return null;let J,Y=[];for(let q of $.split(/\r?\n/)){if(q.startsWith("event:")){J=q.slice(6).trim();continue}if(q.startsWith("data:")){let P=q.slice(5);Y.push(P.startsWith(" ")?P.slice(1):P)}}let X=Y.join(`
21
+ `);if(!X||X==="[DONE]")return null;let V;try{V=JSON.parse(X)}catch{return null}let O=g$(V);if(J!=="error"&&r0(O,"type")!=="error")return null;let K=g$(O?.error),H=r0(K,"type")??r0(K,"code")??void 0,w=r0(K,"message")??r0(O,"message")??H??"Anthropic stream error";if(!uX(H,w))return null;return dX(H,w)}function oX($){if(!$.includes("relay_upstream_error"))return;let J=[];for(let Y of $.split(/\r?\n/))if(Y.startsWith("data:")){let X=Y.slice(5);J.push(X.startsWith(" ")?X.slice(1):X)}if(!J.length)return;try{let Y=g$(JSON.parse(J.join(`
22
+ `))),X=g$(Y?.error);if(r0(X,"type")!=="relay_upstream_error")return;let V=X?.status;if(typeof V==="number"&&Number.isInteger(V))return{status:V,source:"relay_status_field"};let K=r0(X,"message")?.match(/HTTP\s+(\d{3})\b/i);return K?{status:Number(K[1]),source:"relay_message_parse"}:void 0}catch{return}}function G7($,J,Y,X){if(!J)return null;if($.disabled){let O=$.resyncCarry+J,K=y1(O);if(!K)return $.resyncCarry=O.slice(-3),null;if($.disabled=!1,$.resyncCarry="",J=O.slice(K.index+K.length),!J)return null}$.pending+=J;let V=null;while(!0){let O=y1($.pending);if(!O)break;let K=$.pending.slice(0,O.index);$.pending=$.pending.slice(O.index+O.length);let H=oX(K);if(H!==void 0)X?.(H);let w=nX(K);V??=w}if(new TextEncoder().encode($.pending).byteLength>Y){let O=$.pending;$.pending="",$.disabled=!0,$.resyncCarry=O.slice(-3)}return V}function rX($){return{sseEvents:$.events,ssePendingChars:$.pending.length,ssePendingOverflowCount:$.pendingOverflowCount,sseParseErrors:$.parseErrors,sseEventCounts:{...$.eventCounts},sseTypeCounts:{...$.typeCounts},sseDeltaTypeCounts:{...$.deltaTypeCounts},sseContentBlockTypeCounts:{...$.contentBlockTypeCounts},sseTextDeltaBytes:$.textDeltaBytes,sseThinkingDeltaBytes:$.thinkingDeltaBytes,sseInputJsonDeltaBytes:$.inputJsonDeltaBytes,sseSignatureDeltaBytes:$.signatureDeltaBytes,sseRedactedThinkingBytes:$.redactedThinkingBytes,sseLastEvent:$.last?{...$.last}:void 0}}function B7($,J={}){if(!$.body)return $;let Y=$.body.getReader(),X=new TextDecoder("utf-8",{ignoreBOM:!0}),V=new TextEncoder,O=J.responseMode==="json",K=OX(J.toolNameMap,O),H=!0,w="",q=0,P=0,c=0,a=0,u=0,s=!1,T=!1,o=F0(),R0=F0(),W0=J.perf||J.onMessageStart||J.onMessageDelta?bX():void 0,I0="",L0=0,b=!1,O0=(x0)=>{if(!x0)return;try{x0()}catch{}},m0=lX(),R=J.onContentFilter||J.onComplete?yX():void 0,s0=J.laneStart&&J.laneStartOAuthServed!==!1?cX():void 0,q1=!1,q4=!1,R4=(x0=!1)=>{if(!J.onContentFilter)return!1;if(!q1)q1=!0,q4=J.onContentFilter({completedToolUse:x0})!==!1;return q4},$1=J.serverSideFallbackModel?a3({requestedModel:J.serverSideFallbackModel,maxPendingBytes:x$,onOutcome:J.onServerSideFallbackOutcome,onRefusalAfterToolUse:J.onContentFilter?()=>R4(!0):void 0}):void 0,R1=(x0)=>{if(!R)return null;let w$=mX(R,x0,x$);if(w$?.type==="content-filter"&&J.onContentFilter)return R4()?iX(J.contentFilterModel):null;if(w$?.type==="complete")J.onComplete?.(w$.finishReason);return null},M4=(x0,w$=!1)=>s0?pX(s0,x0,x$,w$):x0,_1=()=>{if(T)return;T=!0,Y.releaseLock()},h9=async(x0)=>{try{await Y.cancel(x0)}catch{}finally{_1()}},b9=(x0={})=>({chunks:q,pulls:P,inputBytes:c,outputBytes:a,pendingChars:K.pendingLength(),sseErrorPending:m0.pending.length,sseFinishPending:R?.pending.length??0,sseFinishDisabled:R?.disabled??!1,serverFallbackPending:$1?.pendingLength()??0,rewriteMs:B$(u),totalMs:B$(F0()-R0),...W0?rX(W0):{},...x0}),f$=(x0,w$={})=>{J.perf?.(x0,b9(w$))};J.perf?.("stream_tool_prefix_wrapper_created",{status:$.status,hasBody:!0});let g9=new ReadableStream({async pull(x0){if(P++,!s)s=!0,f$("stream_tool_prefix_first_pull");while(!0){let w$=F0();try{let{done:l1,value:T$}=await Y.read(),a0=B$(F0()-w$);if(l1){let S0=X.decode();if(W0&&!O)Y7(W0,S0,x$,(M0)=>{let L1=M0.message;if(M0.type==="message_start"&&L1)O0(()=>J.onMessageStart?.(L1));if(M0.type==="message_delta"&&(M0.usage||M0.stopReason))O0(()=>J.onMessageDelta?.({...M0.usage?{usage:M0.usage}:{},...M0.stopReason?{stopReason:M0.stopReason}:{}}))});if(O){let M0=V.encode(S0).byteLength;if(L0+M0<=x$)I0+=S0,L0+=M0;else b=!0}if(O&&!b)try{let M0=JSON.parse(I0);if(M0&&typeof M0==="object"&&!Array.isArray(M0))O0(()=>J.onMessageResponse?.(M0))}catch{}let O$=F0(),P0=$1?$1.push(S0)+$1.flush():S0,M1=M4(P0,!0),j1=O?R1(M1):G7(m0,S0,x$,J.onRelayUpstreamError)??R1(M1);if(j1)throw f$("stream_tool_prefix_retryable_error",{providerErrorType:j1.providerErrorType}),await h9(j1),j1;let i1=K.push(M1,!0);if(u+=F0()-O$,i1||w){let M0=V.encode(w+i1);w="",a+=M0.byteLength,x0.enqueue(M0)}if(f$("stream_tool_prefix_rewrite",{readMs:a0}),_1(),J.onStreamEnd)try{await J.onStreamEnd()}catch{}x0.close();return}q++,c+=T$.byteLength;let b0=X.decode(T$,{stream:!0});if(H&&b0){if(H=!1,b0.charCodeAt(0)===65279)w=b0[0]??"",b0=b0.slice(1)}if(O){let S0=T$.byteLength;if(L0+S0<=x$)I0+=b0,L0+=S0;else b=!0}if(W0&&!O)Y7(W0,b0,x$,(S0)=>{let O$=S0.message;if(S0.type==="message_start"&&O$)O0(()=>J.onMessageStart?.(O$));if(S0.type==="message_delta"&&(S0.usage||S0.stopReason))O0(()=>J.onMessageDelta?.({...S0.usage?{usage:S0.usage}:{},...S0.stopReason?{stopReason:S0.stopReason}:{}}))});let y9=F0(),u1=$1?$1.push(b0):b0,d1=M4(u1),W$=O?R1(d1):G7(m0,b0,x$,J.onRelayUpstreamError)??R1(d1);if(W$)throw f$("stream_tool_prefix_retryable_error",{providerErrorType:W$.providerErrorType,readMs:a0,lastChunkBytes:T$.byteLength}),_1(),W$;let J1=K.push(d1);if(u+=F0()-y9,J1){let S0=V.encode(w+J1);w="",a+=S0.byteLength,x0.enqueue(S0)}let Z1=F0();if(q===1||q%25===0||Z1-o>5000)o=Z1,f$("stream_tool_prefix_progress",{readMs:a0,lastChunkBytes:T$.byteLength});if(J1)return}catch(l1){let T$=cJ(l1,J.toolNameMap);if(f$("stream_tool_prefix_error"),T$ instanceof D4)await pJ(Y,T$),T=!0,O0(J.onToolNameRefusal);else _1();throw T$}}},async cancel(x0){f$("stream_tool_prefix_cancel");try{await Y.cancel(x0)}finally{_1()}}});return new Response(g9,{status:$.status,statusText:$.statusText,headers:$.headers})}import{mergeNativeSettingsSection as V2,nativeCacheKeepAlways as z2,nativeSettingsRecord as K2}from"@cortexkit/anthropic-auth-core";var d7="physical send failed before a response",PW="__OPENCODE_ANTHROPIC_AUTH_COMMAND_HANDLED__",i7="~effect/http/HttpServerResponse",n7="~effect/http/Cookies",o7="~effect/http/HttpBody",qW="~effect/ErrorReporter/ignore",RW="https://api.anthropic.com/v1/messages",O8=new WeakSet;function DZ($){let J=new Response(JSON.stringify({type:"error",error:{type:"invalid_request_error",message:$}}),{status:400,headers:{"content-type":"application/json"}});return O8.add(J),J}async function r7($,J){if(!J?.aborted)return;await $.body?.cancel().catch(()=>{}),J.throwIfAborted()}function NZ($,J){return($.status!==400||!O8.has($))&&CW($.status,J)}function s7($){return h.warn("effort-history","refused uncorrelated Fable 5.1 request",{check:$.check,...$.details}),DZ($.message)}function a7($){return h.warn("transform","refused request ending on assistant history",{check:$.check,...$.details}),DZ($.message)}var MW=60000,t7=60000,_8=240,IW=_8,xW=600000;function fW($,J){return($?.accounts??[]).some((Y)=>Y.id===J&&y0(Y)&&B0(Y))}function kW($){let J=($?.accounts??[]).find((Y)=>y0(Y)&&B0(Y));if(e$($)==="fallback-first"&&J)return{activeId:J.id,route:"fallback-first"};return{activeId:"main",route:"main"}}function e7($,J){if($?.activeId==="main"||$?.activeId&&fW(J,$.activeId))return $;return kW(J)}function j8($,J,Y){let X=Date.now()-$.lastUpdated;if(!$.activeId||X<0||X>xW)return e7(Y,J);return e7($,J)}async function vW($,J,Y){let X;try{X=await J()}catch(V){return h.warn("sidebar","account storage reload failed; routing preserved",{message:V instanceof Error?V.message:String(V)}),{...$.activeId?{activeId:$.activeId,route:$.route}:Y??{activeId:"main",route:"main"},freshStorage:null}}return{...j8($,X,Y),freshStorage:X}}async function hW($){await f9()?.beforeStorageLoad?.();let J;try{J=await $()}catch{return{activeId:"main",route:"main",freshStorage:null}}finally{await f9()?.afterStorageLoad?.()}await f9()?.beforeSidebarRead?.();let Y=await z8();return{...j8(Y,J),freshStorage:J}}var bW=4,gW=25,yW=1,$8=!1;function k9(){return process.env.OPENCODE_ANTHROPIC_AUTH_PERF==="1"}function $0(){return performance.now()}function A0($){return Math.round($*10)/10}function J8($){return Math.floor(Math.random()*Math.max(0,$))}function S4($){if(typeof $==="string")return $;if($ instanceof URL)return $.toString();return $.url}function P1($,J){return J?.method??($ instanceof Request?$.method:void 0)}async function C4($,J){if(J?.body!==void 0)return J.body;if(!($ instanceof Request)||$.body===null)return;try{return await $.clone().text()}catch{return}}function mW(){if($8||!1||!k9())return;$8=!0;let $=100,J=250,Y=$0()+$;setInterval(()=>{let X=$0(),V=X-Y;if(Y=X+$,V<J)return;m$("[perf] opencode event_loop_lag",{lagMs:A0(V),thresholdMs:J})},$).unref?.()}function cW($){let J=$0(),Y={requestId:String(yW++),start:J,last:J,mark(X,V){let O=$0();if(k9())m$("[perf] opencode request stage",{requestId:Y.requestId,stage:X,deltaMs:A0(O-Y.last),totalMs:A0(O-Y.start),...V});Y.last=O},done(X,V){let O=$0();if(k9())m$("[perf] opencode request done",{requestId:Y.requestId,stage:X,deltaMs:A0(O-Y.last),totalMs:A0(O-Y.start),...V});Y.last=O}};if(k9())m$("[perf] opencode request start",{requestId:Y.requestId,...$});return Y}function L8($,J){let Y=/^msg_([0-9a-fA-F]{12})/.exec($);if(!Y)return;let X=BigInt(`0x${Y[1]}`);if(X<=0n)return;let O=`msg_${(X-1n).toString(16).padStart(12,"0")}${"z".repeat(14)}`,K=J&&O<=J?`${J}z`:O;if(K.length>128||K>=$)return;return K}async function Z8($,J,Y,X={}){let V=$.client.session,O=await Z9($.client,J),K={path:{id:J},body:{noReply:X.noReply??!0,parts:[{type:"text",text:Y,ignored:!0}]}};if(X.beforeActiveAssistant){let H=X.latestPreparedMessageId?.(),w=O?.latestUserMessageId,q=H&&(!w||H>w)?H:w,P=O?.latestAssistantMessageId?L8(O.latestAssistantMessageId,q):void 0;if(!P)return!1;K.body.messageID=P}if(O?.agent)K.body.agent=O.agent;if(O?.model)K.body.model=O.model;if(O?.variant)K.body.variant=O.variant;if(X.canSend&&!X.canSend())return!1;if(K.body.messageID)X.onPreparedMessageId?.(K.body.messageID);if(typeof V?.promptAsync==="function")return await V.promptAsync(K),!0;if(typeof V?.prompt==="function")return await Promise.resolve(V.prompt(K)),!0;throw Error("OpenCode session prompt API is unavailable for ignored replies.")}function pW(){throw Object.assign(Error(PW),{[i7]:i7,[qW]:!0,status:204,statusText:void 0,headers:{},cookies:{[n7]:n7,cookies:{}},body:{[o7]:o7,_tag:"Empty"}})}function lW($){if($.sessionID==null)return!1;let J=$.model;return J?.providerID==="anthropic"||J?.api?.npm==="@ai-sdk/anthropic"||J?.api?.npm==="@ai-sdk/google-vertex/anthropic"}function uW($){if($.some((J)=>J.includes("<use_parallel_tool_calls>")))return!1;return $.push(JW),!0}var dW={input:0,output:0,cache:{read:0,write:0}},iW=1000;function F$($){return $}function nW($,J){let Y=P4($);return`${Y} content filter detected. Switched to Opus 4.8 for a ${J}-response recovery window before trying ${Y} again.`}function oW($){let J=P4($);return`${J} recovery window complete. Returning to ${J}.`}function P4($){if(nG($))return"Opus 5.5";if(iG($))return"Opus 5";if(dG($)){if($.startsWith("claude-mythos-5-1"))return"Mythos 5.1";if($.startsWith("claude-fable-5-1"))return"Fable 5.1"}if($==="claude-fable-5"||$.startsWith("claude-fable-5-"))return"Fable 5";if($==="claude-opus-4-8"||$.startsWith("claude-opus-4-8-"))return"Opus 4.8";return $}function rW($,J){return`Anthropic safety fallback active: ${P4($)} → ${P4(J)}. Follow-up requests may remain on the fallback model for about one hour.`}function sW($){return`Anthropic safety fallback ended. Returning to ${P4($)}.`}function aW(){return{input:Q9.input,output:Q9.output,cache:{read:Q9.cacheRead,write:Q9.cacheWrite5m},tiers:[{tier:{type:"context",size:_G},input:D9.input,output:D9.output,cache:{read:D9.cacheRead,write:D9.cacheWrite5m}}]}}function tW($){let J=$["claude-opus-4-8"]??$["claude-opus-4-5"]??Object.values($)[0];if(!J)return $;return{...$,...Object.fromEntries(Object.values(KG).map((Y)=>{let X=vG(Y.id),V=X.pricing;return[Y.id,{...J,id:Y.id,name:Y.name,api:J.api?{...J.api,id:Y.id}:void 0,cost:{input:V.input,output:V.output,cache:{read:V.cacheRead,write:V.cacheWrite5m}},limit:{...J.limit??{},context:X.contextWindow,output:X.maxOutputTokens},capabilities:{...J.capabilities??{},reasoning:!0,attachment:!0,toolcall:!0},release_date:X.releaseDate}]})),...$[U9]?{}:{[U9]:{...J,id:U9,name:"Claude Haiku 5.5",api:J.api?{...J.api,id:U9}:void 0,cost:aW(),limit:{...J.limit??{},context:OG,output:jG},capabilities:{...J.capabilities??{},reasoning:!0,attachment:!0,toolcall:!0},release_date:LG,variants:v9()}},...$[w9]?{}:{[w9]:{...J,id:w9,name:"Claude Sonnet 5.5",api:J.api?{...J.api,id:w9}:void 0,cost:{input:T9.input,output:T9.output,cache:{read:T9.cacheRead,write:T9.cacheWrite5m}},limit:{...J.limit??{},context:UG,output:QG},capabilities:{...J.capabilities??{},reasoning:!0,attachment:!0,toolcall:!0},release_date:BG,variants:v9()}},...$[B9]?{}:{[B9]:{...J,id:B9,name:"Claude Opus 5.5",api:J.api?{...J.api,id:B9}:void 0,cost:{input:F9.input,output:F9.output,cache:{read:F9.cacheRead,write:F9.cacheWrite5m}},limit:{...J.limit??{},context:NG,output:HG},capabilities:{...J.capabilities??{},reasoning:!0,attachment:!0,toolcall:!0},release_date:DG,variants:v9()}}}}var eW=["low","medium","high","xhigh","max"];function v9($=eW){return Object.fromEntries($.map((J)=>[J,{thinking:{type:"adaptive",display:"summarized"},effort:J}]))}function $2($){return Object.fromEntries(Object.entries($).map(([J,Y])=>{let X=Y.api?.id??Y.id??J,V=BW(X)?.efforts.variants;return[J,V?{...Y,variants:v9(V)}:Y]}))}function J2($){return Object.fromEntries(Object.entries($).map(([J,Y])=>[J,{...Y,cost:dW}]))}var Z2=2000,HZ="@cortexkit/opencode-anthropic-auth",A4;function Y2(){if(A4!==void 0)return A4;A4=HZ;try{let $=JSON.parse(aX(eX(tX($G(import.meta.url)),"..","package.json"),"utf8"));if($.name===HZ&&typeof $.version==="string"&&$.version.trim())A4=`${HZ}@${$.version.trim()}`}catch{}return A4}function X2(){return["The Claude menu opens in OpenCode's terminal window when the plugin's TUI part is loaded.",`In the terminal, add "${Y2()}" to the plugin list in tui.json (or rerun setup), then restart OpenCode.`,"In OpenCode Desktop, use the text menu below."].join(`
23
+ `)}function G2(){return process.env.OPENCODE_CLIENT==="desktop"}function Y8(){return process.env.OPENCODE_ANTHROPIC_AUTH_CLAUSTRUM_CONNECTION_FILE?.trim()||process.env.CLAUSTRUM_SUBC_CONNECTION?.trim()||void 0}var W2=async($,J={})=>{let Y={setTimeout:globalThis.setTimeout,clearTimeout:globalThis.clearTimeout,setInterval:globalThis.setInterval,clearInterval:globalThis.clearInterval,...J},X=J.authorize??w7;mW();let{client:V}=$,O=globalThis.fetch,K=fG(),H=gG(yG(K)),w=600000,q=50,P=new Map;function c(){let Z=Date.now();for(let[G,W]of P)if(Z-W.createdAt>w)P.delete(G)}function a(Z,G){if(c(),P.size>=q){let W="",z=1/0;for(let[_,L]of P)if(L.createdAt<z)z=L.createdAt,W=_;if(W)P.delete(W)}P.set(Z,G)}function u(Z){c();let G=P.get(Z);if(!G)return;if(Date.now()-G.createdAt>w){P.delete(Z);return}return G}let s=await FW(K),T=JG({paths:s,host:"opencode",local:J.nativeLocal,vault:J.claustrumScopedConnect?{connect:J.claustrumScopedConnect}:void 0}),o=T.quotaObservations,R0=null;function W0(Z){return tG(Z)}function I0(Z,G){return Z?W0(Z.binding):G?JSON.stringify([G.credentialId,G.accountIdentity,G.recordVersion]):void 0}function L0(Z,G,W,z=R0){let _=o.get(Z);if(!_||!G||_.lineage!==G||_.accountUuid!==W||w1(_.entry.quota,z,_.entry.checkedAt)<=Date.now())return;return _}function b(Z,G,W,z,_=R0){let L=L0(Z,G,W,_);if(!L)return z;if(!z)return{...L.entry,refreshAfter:w1(L.entry.quota,_,L.entry.checkedAt)};let N=L.entry.quota.source!=="headers"&&E1(z.quota)>E1(L.entry.quota)?z.quota:y7(z.quota,L.entry.quota);return{...L.entry,quota:N,refreshAfter:w1(N,_,E1(N))}}function O0(Z,G,W){if(!o.has(Z.id))return Z.quota;let z=Z.binding?W0(Z.binding):I0(void 0,W),_=E1(Z.quota);return b(Z.id,z,Z.accountIdentity,Z.quota?{quota:Z.quota,checkedAt:_,refreshAfter:w1(Z.quota,G,_)}:null,G)?.quota}let m0;async function R(Z=K){if(Z!==K)throw Error("Native account storage mismatch");let G=await T.read();if(R0=G.policyStorage,!m0){let _=G.accounts.find((L)=>L.id==="main")?.binding;if(_)m0={rowId:_.rowId,credentialEpoch:_.credentialEpoch}}if(G.mode!=="claustrum")return G.policyStorage;let W=G.accounts.find((_)=>_.id==="main"&&_.source==="vault"),z=F$(W?.accountIdentity);return{...G.policyStorage,claustrum:{...G.policyStorage.claustrum,mode:"claustrum",scopedRoster:!0,primaryAccount:W?.credentialId&&z?{credentialId:W.credentialId,accountId:z,state:W.state??"cold",enabled:W.enabled}:void 0}}}async function s0(Z,G){return await T.updateSettings((W)=>V2(W,Z,G)),R()}let q1=async(Z)=>{return await T.updateSettings((G)=>({...G,claudeCache:{...K2(G.claudeCache),enabled:Z,mode:w4({...G,version:1,accounts:[]})}})),R()},q4=(Z)=>s0("claudeCache",{mode:Z}),R4=(Z)=>s0("cacheKeep",{enabled:Z}),$1=async()=>{return await T.updateSettings(z2),R()},R1=(Z,G)=>s0("cacheKeep",{enabled:!0,always:!1,startHour:Z,endHour:G}),M4=(Z)=>s0("cacheKeep",{subagents:Z}),_1=(Z)=>s0("dump",{enabled:Z}),h9=(Z)=>s0("claudeFast",{enabled:Z}),b9=async(Z)=>{return await T.setLoggingLevel(Z),R()},f$=(Z,G=K)=>s0("prime",{enabled:Z}),g9=(Z,G=K)=>s0("routing",{mode:Z}),x0=(Z)=>s0("killswitch",Z),w$=(Z,G,W=K)=>T.setEnabled(Z,G),l1=(Z,G=K)=>T.remove(Z),T$=(Z,G=K,W)=>T.reorder(Z,W),a0=null;try{a0=await R()}catch{}function b0(Z){return Boolean(Z&&T4(Z)==="claustrum"&&Z.claustrum?.scopedRoster===!0)}function y9(Z=K,G=$.directory){if(Z!==K)throw Error("Native vault storage mismatch");return T.vault}let u1=TG("native-auth");async function d1(Z=K){s9?.close(),await u1.drain(),await T.drainQuotaPublications(),await Promise.all([...l9.values()].map((G)=>G.drain())),await T.drainRoutingPublications(),T.close()}function W$(){if(process.env.OPENCODE_AUTH_CONTENT!==void 0)throw Error("Native OAuth cannot serve while OPENCODE_AUTH_CONTENT is set")}function J1(Z){let G=F$(Z);if(!G)throw Error("Native wire identity requires an admitted provider account");return kG(G,G)}class Z1 extends Error{account;checkIntervalMs;constructor(Z,G){super("OAuth account cannot serve the requested model under current quota policy");this.account=Z;this.checkIntervalMs=G}}class S0 extends Error{constructor(){super("Native OAuth requires a Claude Pro/Max credential. An API key belongs in OpenCode stock Anthropic authentication.")}}class O$ extends Error{account;tokenRefreshFailed;failure;constructor(Z,G,W=!1,z){super(z?.kind==="provider"&&z.status!==void 0?`Claude OAuth refresh failed: ${z.status} — ${z.classification==="invalid-grant"?"invalid_grant":"OAuth operation failed"}`:`Native OAuth authorization refused: ${G}`);this.account=Z;this.tokenRefreshFailed=W;this.failure=z}}async function P0(Z,G,W,z,_="serve",L){W$(),G?.throwIfAborted();let N=L??await T.read(),j=N.accounts.find((m)=>m.id===Z);if(j?.state==="unsupported-access")throw new S0;if(j?.source==="vault"&&!y0(j))throw new O$(j,"not-active");if(j?.type!=="oauth"||!y0(j))throw Error("Native OAuth account is unavailable");let Q=(m,J0,_0)=>{let f0=O0(m,J0,_0),w0=_==="last-main"&&Z==="main"&&e$(J0)!=="sticky-balanced";if(z&&(r$(J0)&&!a$(f0,J0,Z==="main"?void 0:Z,z)||!w0&&!I9(f0,z)))throw new Z1(m,f7(J0))};Q(j,N.policyStorage);let U;if(j.source==="vault"){let m=await T.authorizeVault(Z,G).catch((J0)=>{if(G?.throwIfAborted(),J0 instanceof sG&&["not-active","route-declined","route-unavailable"].includes(J0.code))throw new O$(j,J0.code);throw J0});U={accessToken:m.accessToken,expires:m.expiresAtMs??void 0,accountIdentity:m.accountIdentity,scopedAttempt:m}}else{let m=await T.authorizeLocal(Z,{signal:G,rejectedAccessToken:W,intent:W?"refresh":_==="last-main"?"serve":_});if(m.status!=="usable")throw new O$(j,m.status,m.status==="failed"&&m.failure.kind==="provider",m.status==="failed"?m.failure:void 0);U={accessToken:m.access,expires:m.expires,accountIdentity:m.binding.identity,localSubject:m.subject,localSource:m.source}}let C=await T.read(),f=C.accounts.find((m)=>m.id===Z);if(G?.aborted)throw G.reason??Error("Request aborted");if(!f||!y0(f)||f.source!==j.source||f.accountIdentity!==U.accountIdentity)throw Error("Native OAuth account changed before dispatch");if(U.localSubject&&(!f.binding||f.binding.storageId!==U.localSubject.binding.storageId||f.binding.rowId!==U.localSubject.binding.rowId||f.binding.credentialEpoch!==U.localSubject.binding.credentialEpoch||f.binding.identity!==U.localSubject.binding.identity))throw Error("Native local account binding changed before dispatch");if(U.scopedAttempt&&f.credentialId!==U.scopedAttempt.credentialId)throw Error("Native vault credential binding changed before dispatch");return Q(f,C.policyStorage,U.scopedAttempt),U}async function M1(Z,G){let z=(await T.read()).accounts.find((L)=>L.id===Z);if(z?.type!=="oauth")throw Error("Native OAuth account is unavailable");let _=z.source==="vault"?await T.authorizeVault(Z,G):await T.captureLocalSubject(Z);if(!await T.resetBackoff(Z,_))throw Error("Native reset fence changed")}let j1=new WeakMap,i1=new WeakSet;async function M0(Z,G){if(i1.has(Z))return;i1.add(Z),await T.vault.reportFailure(Z,401,G).catch(()=>{h.warn("claustrum","native auth-failure report unavailable")})}async function L1(Z,G,W){let z=await T.vault.prepareRetry(Z,W,G);return z.retry?z.receipt:void 0}let m9=r3(process.env.OPENCODE_ANTHROPIC_AUTH_FALLBACK_MODE),Y1=new xJ,c9=new vJ,n1=new MJ,I1=new DJ,k$=new Map,N$=new Map,E$=new Map,I4=new Map,X$=new Set,p9=new Map,x4=new Map,c$=new Map,o1=new Map,l9=new Map;async function UZ(){let Z=await T.read(),G=Z.routingPath;if(!G)throw Error(Z.mode==="claustrum"?"Vault routing storage is unavailable":"Native routing storage is unavailable");let W;if(Z.mode==="claustrum"){W=new Map;for(let _ of Z.accounts)if(_.source==="vault"&&_.accountIdentity)W.set(_.id,_.accountIdentity)}let z=l9.get(G);if(!z)z=new wW({path:G,vaultSeed:Z.routingSeed,onLockEvent:T.onLockEvent,localRecoveryPath:Z.mode==="local"?Z.routingRecoveryPath:void 0}),l9.set(G,z);return z.setVaultSeed(Z.routingSeed),{router:z,...W&&{accountIdentities:W}}}let k=new NW({storage:a0,pauseBetweenQuotaCalls:J.quotaCallPause,fetchQuotaSnapshot:(Z,G)=>{W$();let W=Z.kind==="main"?"main":Z.accountId;if(!W)throw Error("Quota request has no account identity");return T.fetchQuota(W,void 0,void 0,G,Z.purpose)}});function r1(Z){return["five_hour","seven_day"].some((G)=>(Z?.[G]?.remainingPercent??1)<=0)}function QZ(Z,G,W=!1){if(!Z||Z.quota?.enabled===!1||!G||e$(Z)==="sticky-balanced"||s$(Z.refresh?.mainLastRefreshError))return;let z=Date.now(),_=Z.quota?.mainLastQuotaApiError;if(_&&_.accountIdentity===G&&_.nextRetryAt!==void 0&&_.nextRetryAt>z)return{message:I7(_,z),retryAfter:Math.max(1,Math.ceil((_.nextRetryAt-z)/1000))};let L=Z.quota?.mainQuota,N=E1(L);if(L?.accountIdentity!==G||L.source==="headers"&&!W||!r1(L)||N<=0||N>z||w1(L,Z,N)<=z)return;let j=["five_hour","seven_day"].flatMap((Q)=>{let U=L[Q],C=U?.resetsAt?Date.parse(U.resetsAt):Number.NaN;return U&&U.remainingPercent<=0&&Number.isFinite(C)&&C>z?[C]:[]});return{message:"Claude OAuth quota is exhausted for this account.",retryAfter:Math.max(1,Math.ceil(((j.length?Math.max(...j):z+f7(Z))-z)/1000))}}async function BZ(Z,G,W){if(XJ===Z&&H$===G)return;let z=D1!==void 0&&W!==void 0&&D1!==W;XJ=Z,H$=G,k.setMainQuotaAccountIdentity(G,!0,z)}async function s1(Z,G,W,z){let _=Z,L=p4.get(_);if(L){let j=await L.promise;return z===L.recordVersion?j:{...j,stale:!0}}let N=(async()=>{let j=++bZ,Q=e1,U=await T.read(),C=U.policyStorage,f=U.accounts.find((V1)=>V1.id==="main")?.accountIdentity,m=J1(W??f),J0=U.mode==="claustrum",_0=J0?C?.claustrum?.primaryAccount?.accountId:void 0;if(W!==void 0&&W!==f||J0&&W===void 0)return{quotaKey:void 0,providerAccountUuid:void 0,generation:k.getMainQuotaIdentityGeneration(),stale:!0,state:"on-identity-mismatch"};let f0=f??_0??Q,w0=C?.main?.profile?.providerAccountUuid??C?.main?.profile?.accountIdentity,k0=F$(W)??F$(m.accountUuid),N0=W?k0:Z.startsWith("sk-ant-oat")?k0??F$(w0):void 0,_$=T4(C)!=="claustrum"?"na":w0===void 0||k0===void 0?"unknown-identity":w0!==void 0&&k0!==void 0&&w0!==k0?"on-identity-mismatch":"on-vault-served";if(j!==bZ){let V1=XJ!==Z||H$!==f0;return{quotaKey:f0,providerAccountUuid:N0,generation:k.getMainQuotaIdentityGeneration(),stale:V1,state:_$}}if(await BZ(Z,f0,N0),Z.startsWith("sk-ant-oat")&&N0===void 0)k.clearMain();if(D1=N0,Z.startsWith("sk-ant-oat"))$4=Z;return{quotaKey:f0,providerAccountUuid:N0,generation:k.getMainQuotaIdentityGeneration(),stale:!1,state:_$}})();p4.set(_,{promise:N,recordVersion:z});try{return await N}finally{if(p4.get(_)?.promise===N)p4.delete(_)}}let u9=a0?.quotaHeaderFeed?.enabled===!0?new LW:null,p$=new Map,FZ=new Map,X1=new Set,G1=new AbortController,wZ=!1;function f4(Z,G){return JSON.stringify([Z,G??null])}function d9(Z){let G=Z.binding;if(Z.source!=="local"||!G)return;return JSON.stringify([G.storageId,G.rowId,G.credentialEpoch])}function i9(Z,G){return Z.lineage!==void 0&&Z.lineage===d9(G)&&(!Z.profile||Z.profile.accountIdentity===G.accountIdentity)}async function k4(Z,G){if(!Z?.profile||!q9(Z.profile,G)||!await Z.isCurrent?.())return;return Z.persistence==="refused"?void 0:Z.profile}function TZ(Z){if(!Z)return[];let G=new Set([...Z.main?["main"]:[],...(Z.accounts??[]).filter((W)=>B0(W)&&(W.enabled!==!1||Boolean(W.claustrumScopedCredentialId))).map((W)=>W.id)]);return[...new Set(p$.values())].filter((W)=>W.persistence==="failed"&&W.profile!==void 0&&G.has(W.accountId))}async function N8(Z,G,W,z){let _=G.accountId,L=W.accounts.find((Q)=>Q.id===_),N=L?.source==="local"?i9(G,L):L?.source==="vault"&&L.accountIdentity===z.accountIdentity;if(L?.type!=="oauth"||!y0(L)||L.accountIdentity!==z.accountIdentity||!N||await k4(G,Date.now())!==z)return Z;if(_==="main")return Z.main?{...Z,main:{...Z.main,profile:z}}:Z;let j=Z.accounts?.find((Q)=>Q.id===_);if(!j||!B0(j))return Z;return{...Z,accounts:Z.accounts.map((Q)=>Q.id===_&&B0(Q)?{...Q,profile:z}:Q)}}async function EZ(Z,G,W=TZ(Z)){if(!Z||W.length===0)return Z;let z=[];for(let N of W){let j=await k4(N,Date.now());if(j)z.push({hydration:N,profile:j})}if(!z.length)return Z;let _=G??await T.read(),L=Z;for(let N of z)L=await N8(L,N.hydration,_,N.profile);return L}function H8(Z,G,W){W$();let z=!1,_=Object.assign((N,j)=>{return z=!0,O(N,j)},{preconnect:O.preconnect}),L={accountId:Z.id,fetched:Promise.resolve(),lineage:d9(Z),...W&&{deadline:W}};return L.fetched=T.fetchProfileForDisplay(Z.id,_,AbortSignal.any([G1.signal,...W?[W]:[]])).then(({profile:N,persisted:j,isCurrent:Q})=>{if(L.settled=!0,N.accountIdentity!==void 0)FZ.set(f4(Z.id,N.accountIdentity),N);if(Z.accountIdentity===void 0||N.accountIdentity===Z.accountIdentity)L.profile=N,L.isCurrent=Q,L.persistence="pending";let U=j.then(async(C)=>{if(L.persistence=C,C==="failed")h.warn("quota","failed to persist account profile",{account:Z.id});else if(C==="refused")h.debug("quota","refused account profile publication",{account:Z.id});if((C==="saved"||C==="failed")&&!G1.signal.aborted){let f=C==="failed"&&await k4(L,Date.now());if(C==="saved"||f)try{let m=await T.read();if(!G1.signal.aborted)await C$(m.policyStorage,{...$$,routingAuthoritative:!1},m)}catch{h.debug("quota","failed to publish account profile to sidebar",{account:Z.id})}}});X1.add(U),U.then(()=>X1.delete(U))},(N)=>{if(L.settled=!0,L.failed=z,h.debug("quota","failed to hydrate account profile",{account:Z.id,error:N instanceof Error?N.message:String(N)}),!z&&p$.get(G)===L)p$.delete(G)}),X1.add(L.fetched),L.fetched.then(()=>X1.delete(L.fetched)),L}function D8(Z,G){let W=[G,Z.deadline].filter((_)=>_!==void 0);if(!W.length)return Z.fetched;let z=AbortSignal.any(W);if(z.aborted)return Promise.resolve();return new Promise((_)=>{let L=()=>{z.removeEventListener("abort",L),_()};z.addEventListener("abort",L,{once:!0}),Z.fetched.then(L)})}function SZ(Z,G){return q9(Z.profile,G)&&$W(Z.profile,Z.accountIdentity)}async function v4(Z){let G=await T.read();if(process.env.OPENCODE_ANTHROPIC_AUTH_DISABLE_PROFILE_HYDRATION==="1")return G;let W=Date.now(),z=[],_=new Map;for(let j of G.accounts){if(j.type!=="oauth"||!y0(j)||SZ(j,W))continue;let Q=f4(j.id,j.accountIdentity),U=p$.get(Q);if(U&&j.accountIdentity===void 0&&(U.lineage===void 0||U.lineage!==d9(j)))U=void 0;if(!U&&j.accountIdentity!==void 0){let C=p$.get(f4(j.id));if(C&&i9(C,j))U=C,_.set(j.id,C)}if(U?.failed)continue;if(!U&&q9(FZ.get(Q),W))continue;if(!U||!U.profile&&(U.deadline?.aborted||U.settled)||U.profile&&!q9(U.profile,W)){if(Z?.aborted||G1.signal.aborted)continue;U=H8(j,Q,Z),p$.set(Q,U)}if(j.accountIdentity===void 0)_.set(j.id,U);z.push(D8(U,Z))}if(!z.length)return G;await Promise.all(z);let L=await T.read(),N=Date.now();for(let j of L.accounts){if(j.type!=="oauth"||!y0(j))continue;let Q=f4(j.id,j.accountIdentity),U=_.get(j.id);if(U&&j.accountIdentity!==void 0&&!p$.has(Q)&&i9(U,j))p$.set(Q,U);if(SZ(j,N))continue;let C=await k4(p$.get(Q),N);if(!C||C.accountIdentity!==j.accountIdentity)continue;if(j.profile=C,j.id==="main"){if(L.policyStorage.main)L.policyStorage.main.profile=C}else for(let f of L.policyStorage.accounts)if(f.id===j.id&&B0(f))f.profile=C}return L}async function U8(Z,G,W,z){if(process.env.OPENCODE_ANTHROPIC_AUTH_DISABLE_PROFILE_HYDRATION==="1")return Z;return(await v4(W)).policyStorage}let CZ=new Set;async function Q8(Z,G,W){let _=(await T.read()).accounts.find((U)=>U.id===Z.accountId);if(!_||!Z.anthropicAccountUuid||_.accountIdentity!==Z.anthropicAccountUuid)return null;let L={...y7(_.quota,G.quota),accountIdentity:_.accountIdentity};if(!(Z.scopedAttempt?await T.vault.publish(Z.scopedAttempt,{quota:L}):Z.localSubject?await T.publishLocal(Z.localSubject,{quota:L}):!1)){if(Z.accountId==="main"){if(k.getMain(Z.mainQuotaIdentity?.quotaKey)===W)k.clearMain()}else if(k.getAllFallbacks().get(Z.accountId)===W)k.clearFallback(Z.accountId);return h.debug("quota","native quota publication refused",{accountId:Z.accountId}),null}let j=await T.read(),Q=j.accounts.find((U)=>U.id===Z.accountId);if(!Q?.quota||Q.accountIdentity!==Z.anthropicAccountUuid||Q.source!==_.source)return null;if(Z.localSubject&&Q.binding?.credentialEpoch!==Z.localSubject.binding.credentialEpoch)return null;if(Z.scopedAttempt&&Q.credentialId!==Z.scopedAttempt.credentialId)return null;return{...G,quota:Q.quota,refreshAfter:w1(Q.quota,j.policyStorage,G.checkedAt)}}function B8(Z){h.warn("quota","failed to persist harvested response quota",{error:Z instanceof Error?Z.message:String(Z)})}function F8(Z){let G=Z instanceof Error?Z.name:typeof Z,W=Z instanceof Error?Z.message:String(Z),z=`${G}:${W}`;if(CZ.has(z))return;CZ.add(z),h.warn("quota","failed to normalize response quota headers",{error:W})}function w8(Z){if(!Z||typeof Z!=="object")return;let G=Z,W=G.credential_id;if(typeof W==="string"&&W&&W!=="main")return W;let z=G.vault;if(z&&typeof z==="object"){let _=z.credential_id;if(typeof _==="string"&&_&&_!=="main")return _}return}async function T8(Z,G){if(!u9)return;if(Z.accountId==="main"&&!Z.mainQuotaIdentity?.quotaKey)return;let W=await R(K)??o$(),_=(await W1?.())?.type==="oauth",L=Z.accountId==="main"?W.main:W.accounts.find((m)=>m.id===Z.accountId),N=w8(L),j=wG({storage:W,mainOAuthConfigured:_}),Q=G.checkedAt,U={five_hour:G.quota.five_hour,seven_day:G.quota.seven_day,bindingWindow:G.quota.bindingWindow,fallbackAdvised:G.quota.fallbackAdvised,scoped:G.quota.scoped,extraUsage:G.quota.extraUsage,fieldSources:G.quota.fieldSources},C=N??(Z.accountId==="main"?Z.mainQuotaIdentity?.quotaKey??"main":Z.accountId),f=N?{identity_source:"credential_id",credential_id:N,schema_version:R9,provider:"anthropic",configured_account_count:j,observed_at_ms:Q,anthropic_account_uuid:Z.anthropicAccountUuid??null,quota:U,accountKey:C}:Z.accountId==="main"&&Z.mainQuotaIdentity?.quotaKey?{identity_source:"account_ref",account_ref:Z.mainQuotaIdentity.quotaKey,schema_version:R9,provider:"anthropic",configured_account_count:j,observed_at_ms:Q,anthropic_account_uuid:Z.anthropicAccountUuid??null,quota:U,accountKey:C}:Z.accountId==="main"?{identity_source:"none",schema_version:R9,provider:"anthropic",configured_account_count:j,observed_at_ms:Q,anthropic_account_uuid:Z.anthropicAccountUuid??null,quota:U,accountKey:C}:{identity_source:"account_ref",account_ref:Z.accountId,schema_version:R9,provider:"anthropic",configured_account_count:j,observed_at_ms:Q,anthropic_account_uuid:Z.anthropicAccountUuid??null,quota:U,accountKey:C};await u9.publish(f)}function E8(Z){h.debug("quota","failed to publish quota header feed",{error:Z instanceof Error?Z.message:String(Z)})}function AZ(Z,G){try{if(!rG(Z)){h.trace("quota","skipped non-quota response headers",{account:G.accountId});return}let W=eG(Z),z=G.accountId==="main"?G.mainQuotaIdentity:void 0;if(G.accountId==="main"){if(!z||k.getMainQuotaIdentityGeneration()!==z.generation){h.trace("quota","discarded stale main quota headers",{boundIdentity:z?.quotaKey,currentGeneration:k.getMainQuotaIdentityGeneration()});return}}let _=G.accountId==="main"?k.getMain(z?.quotaKey):k.getAllFallbacks().get(G.accountId),L=W.checkedAt??Date.now(),N=I0(G.localSubject,G.scopedAttempt),j=N&&G.anthropicAccountUuid?{lineage:N,accountUuid:G.anthropicAccountUuid,entry:{quota:{...W,accountIdentity:G.anthropicAccountUuid},checkedAt:L,refreshAfter:L},generalExhausted:["five_hour","seven_day"].some((Q)=>{let U=Z.get(Q==="five_hour"?"anthropic-ratelimit-unified-5h-utilization":"anthropic-ratelimit-unified-7d-utilization");return W[Q]!==void 0&&U!==null&&Number.isFinite(Number(U))&&Number(U)>=1})}:void 0;if(j){if(o.delete(G.accountId),o.size>=iW){let Q=o.keys().next().value;if(Q!==void 0)o.delete(Q)}o.set(G.accountId,j)}(async()=>{let Q=!1;try{let U;try{U=await Q8(G,{quota:W,checkedAt:L,refreshAfter:L},_)}catch(f){B8(f);return}if(U===null)return;if(G.accountId==="main"&&k.getMainQuotaIdentityGeneration()!==z?.generation)return;let C=U;if(j&&o.get(G.accountId)===j)j.entry=C,Q=!0;if(G.accountId==="main")k.setMain(z?.quotaKey,C);else k.setFallback(G.accountId,C,{authLineageId:G.authLineageId});f1().catch(()=>{}),await T8(G,C),h.debug("quota","harvested response quota",{account:G.accountId,fiveHourPercent:C.quota.five_hour?.usedPercent,sevenDayPercent:C.quota.seven_day?.usedPercent,source:"headers"})}finally{if(!Q&&j&&o.get(G.accountId)===j)o.delete(G.accountId),h.debug("quota","discarded pending response quota",{accountId:G.accountId})}})().catch(E8),h.trace("quota","response quota awaiting publication",{account:G.accountId})}catch(W){F8(W)}}let PZ=Promise.resolve();function N1(Z=!1,G=!1,W,z){let _=PZ.then(()=>S8(Z,G,W,z));return PZ=_.then(()=>{},()=>{}),_}async function S8(Z,G,W,z){let _=await T.read(),L=new Set;if(!Z&&!G&&_.policyStorage.quota?.enabled===!1)return L;for(let N of _.accounts){if(N.id==="main"||N.type!=="oauth")continue;if(!y0(N)){if(G)L.add(N.id);continue}if(!Z&&w1(N.quota,_.policyStorage,E1(N.quota))>Date.now()&&(!W||A1(N.quota,_.policyStorage,Date.now(),W)))continue;try{if(!await k.refreshFallback(N.id,"",_.policyStorage.accounts.find((Q)=>Q.id===N.id&&B0(Q)),Z?void 0:z))L.add(N.id),h.debug("quota","fallback quota preflight returned no reading",{accountId:N.id,requiredByPolicy:G})}catch(j){if(G&&T1(j))throw j;L.add(N.id),x3(N.id,G,j)}}return f1().catch(()=>{}),L}let n9={refreshQuotaForDueAccounts:async()=>{await N1()},refreshQuotaForAllAccounts:async(Z)=>{await N1(!0)},refreshAccount:async(Z,G,W)=>{let z=await P0(Z.id,void 0,W?.force?Z.access:void 0);return{...Z,access:z.accessToken,expires:z.expires}},refreshAccountQuota:async(Z,G)=>{W$();let W=await T.fetchQuota(Z.id);return{account:{...Z,quota:W},fetched:!0}},getUsableFallbackAccounts:async(Z,G)=>{Z=Z??null;let W=[],z=Z?.accounts.some((_)=>B0(_)&&o.has(_.id))?(await T.read()).accounts:[];for(let _ of Z?.accounts??[]){if(!B0(_)||!y0(_))continue;let L=z.find((Q)=>Q.id===_.id),N=k.getFallback(_.id,L?.binding?{authLineageId:JSON.stringify(L.binding)}:_)?.quota??L?.quota??_.quota,j=L&&Z?O0({...L,quota:N},Z):N;if(!p1(j,Z)||!I9(j,G?.modelId)||r$(Z)&&!a$(j,Z,_.id,G?.modelId))continue;if(b0(Z)){if(z4(_.id,Z))W.push(_);continue}try{let Q=await P0(_.id,void 0,void 0,G?.modelId);W.push({..._,access:Q.accessToken,expires:Q.expires})}catch(Q){if(T1(Q))throw Q}}return W}};async function o9(){W$();let Z=await T.read();if(Z.mode==="local"&&Z.policyStorage.refresh?.enabled!==!1)for(let G of Z.accounts){if(G.id==="main"||G.type!=="oauth"||!y0(G))continue;try{let W=await P0(G.id);if(C1(G.lastRefreshError,G.accountIdentity,Date.now(),void 0))continue;if(W.localSource!=="rotated"&&W.localSource!=="adopted"&&(!W.expires||W.expires-Date.now()<=gZ(Z.policyStorage)))await P0(G.id,void 0,void 0,void 0,"refresh")}catch{}}await N1(!1,!1,void 0,"background")}let r9=a0!==null&&process.env.OPENCODE_AUTH_CONTENT===void 0,qZ=new Set;async function C8(){let Z=await T.read(),G=new Set(Z.accounts.filter((z)=>z.id!=="main"&&z.source==="vault"&&z.type==="oauth"&&y0(z)).map((z)=>z.id)),W=[...G].some((z)=>!qZ.has(z));if(qZ=G,W)await N1(!1,!1,void 0,"background");await f1()}let s9=r9&&b0(a0)?T.vault.watch({intervalMs:J.scopedRosterPollIntervalMs??2000,shouldRefresh:()=>process.env.OPENCODE_AUTH_CONTENT===void 0,onRefresh:C8,setInterval:Y.setInterval,clearInterval:Y.clearInterval}):void 0,A8=r9?(s9?s9.ready.then(()=>o9()):o9()).catch(()=>{}):Promise.resolve(),a9=r9?Y.setInterval(()=>{o9().catch(()=>{})},MG+J8(t7)):null;a9?.unref?.();let P8=(Z,G)=>{let W=SJ({id:Z,role:"fallback"},G);return W==="na"?"off":W},t9=new UJ,q8=new QJ,l$=new WeakMap,a1=new Map;async function e9(Z){let G=(Z.get("anthropic-beta")??"").split(",").map((W)=>W.trim()).filter(Boolean).sort();return{betas:G,betasHash:await FG(G.join(","))}}function RZ(Z){try{if(!Z.request)return;let G=G3({request:Z.request,source:Z.source,accountId:Z.accountId,synthetic:Z.synthetic,betasHash:Z.betasHash,requestedModel:Z.requestedModel,onWarning:(z)=>h.warn("cache-diagnostics",z),message:Z.message,receivedAt:Z.receivedAt});if(!G.record||!G.messageId){h.debug("cache-diagnostics","skipped invalid response envelope",{status:Z.status});return}h.debug("cache-diagnostics",W3(G.record));let W=q8.capture(Z.betasHash,Z.betas);if(W)h.debug("cache-diagnostics",W);if(G.canary)h.warn("cache-diagnostics","short-gap previous_message_not_found",{message_id:G.canary.messageId,previous_message_id:G.canary.previousMessageId});if(Z.trackSessionId)t9.capture(Z.trackSessionId,G.messageId,Z.receivedAt)}catch(G){h.debug("cache-diagnostics","response observation failed",{status:Z.status,error:G instanceof Error?G.message:String(G)})}}function MZ(Z,G,W=!0){let z=l$.get(Z);if(!z)return;if(G&&typeof G==="object"&&!Array.isArray(G)&&!W)z.messageStart=G;z.dumpWrite=z.dumpWrite.then(()=>eJ(z.dump,{status:z.status,message:G,complete:W})).catch(()=>{}),RZ({...z,message:G,receivedAt:Date.now()})}function R8(Z,G){let W=l$.get(Z);if(!W)return;let z=W.messageStart??{},_=z.usage&&typeof z.usage==="object"&&!Array.isArray(z.usage)?z.usage:{},L={...z,...G.usage?{usage:{..._,...G.usage}}:{},...G.stopReason?{stop_reason:G.stopReason}:{}};W.dumpWrite=W.dumpWrite.then(()=>eJ(W.dump,{status:W.status,message:L,complete:!0})).catch(()=>{})}function IZ(Z,G){let W=Promise.resolve(eJ(G.dump,{status:G.status,message:null,complete:!1})).catch(()=>{});l$.set(Z,{...G,dumpWrite:W})}let u$=null,h4=null;function b4(Z){return Z!==null&&typeof Z==="object"&&EJ(Z)==="R"}function M8(Z){let G=aJ("anthropic");if(!Z||typeof Z!=="object")return!1;let W=Z;return W.type===G.type&&W.access===G.access&&W.refresh===G.refresh&&W.expires===G.expires}async function I8(){if(h4){let Z=await h4();return pG("opencode",Z===void 0?{}:{anthropic:Z}).kind}if(process.env.OPENCODE_AUTH_CONTENT!==void 0)throw Error("OpenCode logins cannot be checked while OPENCODE_AUTH_CONTENT is set");return DW("opencode",W8())}async function xZ(){if(await S1("opencode")!=="claustrum")throw Error("This host is not connected to the credential vault; run setup to connect it first");if(await I8()!=="absent")throw Error("OpenCode already holds an Anthropic login; remove it before choosing the vault login")}let x8={label:"Claude via credential vault",type:"oauth",authorize:async()=>{return await xZ(),{url:"",instructions:"Claude requests use the credential vault this host is connected to. OpenCode stores only a placeholder, never a credential.",method:"auto",callback:async()=>{await xZ();let Z=aJ("anthropic");return{type:"success",access:Z.access,refresh:Z.refresh,expires:Z.expires}}}}},$J=new zG({directory:process.env.OPENCODE_ANTHROPIC_AUTH_CACHEKEEP_REGISTRY_DIR||hG("opencode")}),g4=[],x1=new Map,t1=new VG({loadStorage:()=>R(K),setIntervalImpl:Y.setInterval,clearIntervalImpl:Y.clearInterval,onTrackedSessionsChanged:async(Z)=>{await $J.publish(Z),g4=await $J.list(Z)},prepareBody:(Z,G)=>{if(!new Headers(G.headers).get("anthropic-beta")?.split(",").map((W)=>W.trim()).includes(V4))return Z;try{let W=JSON.parse(Z),z=t9.previousFor(G.id),_=z?.messageId??null;return r4(W,_),a1.set(G.id,{sessionId:G.id,previousMessageId:_,...z?{previousMessageReceivedAt:z.receivedAt}:{},isSubagent:G.isSubagent,ttlSent:s4(W),accountId:G.oauthAccountId??"main",synthetic:!0,requestedModel:typeof W.model==="string"?W.model:void 0}),JSON.stringify(W)}catch{return Z}},onResponse:async({target:Z,bodyText:G,status:W,data:z,receivedAt:_,attempt:L})=>{let N=x1.get(L.id);if(W===401&&N?.scopedAttempt)await M0(N.scopedAttempt,"direct");let j=a1.get(Z.id);if(!j?.betasHash||!j.betas){a1.delete(Z.id);return}try{let Q=JSON.parse(G),U=Q&&typeof Q==="object"&&!Array.isArray(Q)?Q.diagnostics:void 0,C=U&&typeof U==="object"&&!Array.isArray(U)&&U.previous_message_id===j.previousMessageId?j.previousMessageId:void 0;if(C===void 0)return;RZ({source:"prewarm_cachekeep",accountId:j.accountId,synthetic:j.synthetic,betasHash:j.betasHash,betas:j.betas,requestedModel:j.requestedModel,request:{...j,previousMessageId:C,ttlSent:s4(Q)},trackSessionId:Z.id,status:W,message:z,receivedAt:_})}catch{}finally{a1.delete(Z.id)}},onComplete:({attempt:Z})=>{x1.delete(Z.id)},retryOnUnauthorized:async({target:Z,headers:G,attempt:W})=>{let z=x1.get(W.id);if(!z)return;let _;try{let j=JSON.parse(Z.bodyText);if(typeof j.model==="string")_=j.model}catch{}if(z.scopedAttempt&&!await L1(z.scopedAttempt,"cachekeep",W.signal))return;let L=await P0(Z.oauthAccountId??"main",W.signal,z.scopedAttempt?void 0:z.accessToken,_);if(L.accountIdentity!==z.accountIdentity||Boolean(L.scopedAttempt)!==Boolean(z.scopedAttempt))return;if(z.scopedAttempt&&(!L.scopedAttempt||L.scopedAttempt.credentialId!==z.scopedAttempt.credentialId||L.scopedAttempt.recordVersion<=z.scopedAttempt.recordVersion))return;if(!z.scopedAttempt&&L.accessToken===z.accessToken)return;let N=new Headers(G);return N.set("authorization",`Bearer ${L.accessToken}`),x1.set(W.id,L),N},prepareHeaders:async(Z,G,W)=>{let z=G.oauthAccountId??"main",_;try{let Q=JSON.parse(G.bodyText);if(typeof Q.model==="string")_=Q.model}catch{}let L=await P0(z,W.signal,void 0,_),N=L.accessToken;x1.set(W.id,L);try{let Q=JSON.parse(G.bodyText),U=J1(L.accountIdentity);if(Z.delete("anthropic-beta"),m1(Z,N,{body:Q,identity:U}),Z.set("anthropic-beta",g7(Z.get("anthropic-beta"),[WG])),Q.speed==="fast")N9(Z);let C=a1.get(G.id);if(C){let{betas:f,betasHash:m}=await e9(Z);C.betas=f,C.betasHash=m}}catch{m1(Z,N)}let j=await P0(z,W.signal,void 0,_);if(j.accountIdentity!==L.accountIdentity||Boolean(j.scopedAttempt)!==Boolean(L.scopedAttempt))throw Error("CacheKeep credential authority changed before dispatch");return Z.set("authorization",`Bearer ${j.accessToken}`),x1.set(W.id,j),Z}});async function f8(Z){if(!u$||!(await u$()).active)throw Error("Native main OAuth activation is not available");let G=await P0("main",Z);return{...G,credentialAccountId:F$(G.accountIdentity)}}async function k8(){let Z=await f8();if((await s1(Z.accessToken,void 0,Z.credentialAccountId)).stale&&Z.credentialAccountId!==void 0)throw Error("Main account identity changed before the prime refresh");let W=await k.refreshMainWithMetadata(H$,Z.accessToken);return{quota:W.quota,fresh:W.fetched}}async function v8(Z){W$();let G=await R(K),W=G?.accounts.find((_)=>_.id===Z&&y0(_)&&B0(_));if(!W||!G)throw Error(`prime: OAuth account ${Z} is unavailable`);let z=await n9.refreshAccountQuota(W,G);return{quota:z.account.quota??{},fresh:z.fetched}}let JJ=new Map;async function h8(Z){let G=performance.now(),W,z,_,L="",N;try{if(Z==="main"&&(!u$||!(await u$()).active))throw Error("Native main OAuth activation is not available");let j=await P0(Z,void 0,void 0,T7);if(W=j.accessToken,_=j.scopedAttempt,z=T7,!W)return{ok:!1,error:"prime: no access token available"};let Q=GG(),U=J1(j.accountIdentity),C=await H9(JSON.stringify(Q),{identity:U}),f=new Headers({"content-type":"application/json"});m1(f,W,{body:JSON.parse(C),identity:U,requestClass:"auxiliary"}),f.delete("content-length"),f.delete("transfer-encoding");let m=Q4(RW,{baseURL:""}),J0=m.url?.toString()??m.input.toString(),_0=AbortSignal.timeout(30000),f0={method:"POST",headers:f,body:C,signal:_0},w0=await P0(Z,_0,void 0,z);if(w0.accountIdentity!==j.accountIdentity||Boolean(w0.scopedAttempt)!==Boolean(j.scopedAttempt))throw Error("Prime credential authority changed before dispatch");_=w0.scopedAttempt,L=w0.accessToken,f.set("authorization",`Bearer ${L}`);let k0=async()=>{let Q0=E9([L],"http");return N=Q0,Q0.redactResponse(await fetch(J0,f0))},N0=await k0();if(N0.status===401&&_&&!_0.aborted){let Q0;try{Q0=await L1(_,"prime",_0)}catch{}if(Q0){N?.dispose(),await N0.body?.cancel().catch(()=>{}),h.info("claustrum","retrying Prime after scoped credential rotation",{accountId:Z,previousVersion:_.recordVersion,newVersion:Q0.recordVersion}),w0=await P0(Z,_0,void 0,z);let v0=w0.scopedAttempt;if(!v0||v0.credentialId!==_.credentialId||v0.accountIdentity!==_.accountIdentity||v0.recordVersion<=_.recordVersion)throw Error("Prime vault retry lost its strict newer receipt");_=v0,L=v0.accessToken,f.set("authorization",`Bearer ${L}`),N0=await k0()}}if(N0.status===401&&!w0.scopedAttempt&&!_0.aborted){let Q0=w0.accessToken,v0=await P0(Z,_0,Q0,z).catch(()=>{return});if(v0&&v0.accessToken!==Q0&&v0.accountIdentity===j.accountIdentity&&!v0.scopedAttempt){if(N?.dispose(),await N0.body?.cancel().catch(()=>{}),w0=await P0(Z,_0,void 0,z),w0.scopedAttempt||w0.accountIdentity!==j.accountIdentity)throw Error("Prime local authority changed before retry");L=w0.accessToken,f.set("authorization",`Bearer ${L}`),N0=await k0()}}let _$=Math.round(performance.now()-G);if(!N0.ok){let Q0;try{Q0=await N0.text().catch(()=>"")||`HTTP ${N0.status}`}finally{N?.dispose()}if(N0.status===401&&_)await M0(_,"direct");return{ok:!1,status:N0.status,ms:_$,error:Q0}}let D$=(await N0.json().catch(()=>null))?.usage,U$=D$&&(Number.isFinite(D$.input_tokens)||Number.isFinite(D$.output_tokens))?{inputTokens:Number.isFinite(D$.input_tokens)?D$.input_tokens:void 0,outputTokens:Number.isFinite(D$.output_tokens)?D$.output_tokens:void 0}:void 0;return JJ.set(Z,w0),{ok:!0,status:N0.status,ms:_$,...U$&&{usage:U$}}}catch(j){N?.dispose();let Q=E9([L],"http"),U=Q.redactError(j);return Q.dispose(),{ok:!1,...j instanceof O$&&j.tokenRefreshFailed&&{reason:"token-refresh"},ms:Math.round(performance.now()-G),error:U instanceof Error?U.message:String(U)}}}let fZ={storagePath:K,loadStorage:()=>R(K),getAccountFingerprint:async(Z)=>{if(Z==="main"&&(!u$||!(await u$()).active))return;let G=await P0(Z),W=G.scopedAttempt??G.localSubject;if(!W)return;let z=await T.getOrCreateAuthLineage(Z,W);return z?t$(z):void 0},refreshQuota:async(Z)=>{if(Z==="main")return k8();return v8(Z)},sendPrime:h8,recordSuccess:async(Z,G)=>{let W=JJ.get(Z);JJ.delete(Z);let z=W?.scopedAttempt??W?.localSubject;if(!z||!await T.incrementPrimeUsage(Z,z,G))throw Error("Prime usage publication lost its native credential fence");let _=(await T.read()).accounts.find((L)=>L.id===Z)?.prime;if(!_)throw Error("Prime usage counters are unavailable after publication");return _},setIntervalImpl:Y.setInterval,clearIntervalImpl:Y.clearInterval,setTimeoutImpl:Y.setTimeout,clearTimeoutImpl:Y.clearTimeout},kZ=I3(K,()=>new ZW(fZ),{slot:$.directory??"default",rebind:(Z)=>Z.updateOptions(fZ)}),H1=kZ.manager;if(P9(a0))H1.start();async function y4(){return g4=await $J.list(t1.trackedSessions()),g4}let vZ=J.cacheKeepAggregateRefreshIntervalMs??1e4,ZJ=vZ>0?Y.setInterval(()=>{y4().catch(()=>{})},vZ):void 0;if(ZJ?.unref?.(),x9({enabled:A9(a0),mode:w4(a0)}),jZ(WZ(a0)),LZ(zZ(a0)),!process.env.OPENCODE_ANTHROPIC_AUTH_LOG_LEVEL)SW(XZ(a0)??"info");let YJ=null,b8=async()=>{G1.abort();while(X1.size)await Promise.all([...X1]);try{await d1(K)}catch(Z){h.warn("claustrum","failed to close scoped runtime",{error:Z instanceof Error?Z.message:String(Z)})}try{k.close()}catch{}try{await u9?.dispose()}catch(Z){h.warn("quota-header-feed","failed to dispose",{error:Z instanceof Error?Z.message:String(Z)})}try{if(U1)Y.clearInterval(U1),U1=null}catch(Z){h.warn("main-background","failed to stop",{error:Z instanceof Error?Z.message:String(Z)})}try{if(a9)Y.clearInterval(a9)}catch(Z){h.warn("fallback-background","failed to stop",{error:Z instanceof Error?Z.message:String(Z)})}try{if(ZJ!==void 0)Y.clearInterval(ZJ)}catch(Z){h.warn("cachekeep","failed to stop aggregate refresh",{error:Z instanceof Error?Z.message:String(Z)})}try{t1.stop()}catch(Z){h.warn("cachekeep","failed to stop",{error:Z instanceof Error?Z.message:String(Z)})}try{kZ.release()}catch(Z){h.warn("prime","failed to release slot",{error:Z instanceof Error?Z.message:String(Z)})}if(!YJ)return;try{await YJ.release()}catch(Z){h.warn("rpc","failed to stop",{error:Z instanceof Error?Z.message:String(Z)})}},$$={activeId:"main",route:"main"},g8=V8(),S$=new Map;function m4(Z,G){if(k.updateStorage(Z),k.seedMainFromStorage(Z,H$),!G.skipFallbackQuotaSeed)k.seedFallbacksFromAccounts((Z?.accounts??[]).filter(B0));let W=k.getMain(H$),z=k.getLastApiError(),_=Z?.refresh?.mainLastRefreshError,L=Z?.claustrum?.primaryAccount,N=b0(Z)&&!y0(L)?ZZ({source:"vault",enabled:L?.enabled,state:L?.state}):void 0;return{main:{quota:W?.quota??null,enabled:L?.enabled,tierLabel:B4(Z?.main?.profile),quotaBackedOff:k.isBackedOff(),quotaBackoffUntil:z?.nextRetryAt,refreshBackedOff:_?C1(_,e1??Z?.mainAccountId,Date.now(),G.mainRefreshToken?t$(G.mainRefreshToken):void 0):!1,refreshBackoffUntil:_?.nextRetryAt,stateLine:N,quotaDated:Boolean(N)},fallbacks:(Z?.accounts??[]).filter((j)=>B0(j)&&(j.enabled!==!1||Boolean(j.claustrumScopedCredentialId))).map((j)=>{let Q=z4(j.id,Z),U=P8(j.id,Z),C=j.claustrumScopedCredentialId&&!Q?ZZ({source:"vault",enabled:j.enabled!==!1,state:j.claustrumScopedState}):void 0;return{id:j.id,label:j.label,tierLabel:B4(j.profile),quota:G.skipFallbackQuotaSeed?null:k.getFallback(j.id,j)?.quota??j.quota??null,needsReauth:j.lastRefreshError!=null&&C1(j.lastRefreshError,j.id,Date.now(),t$(j.refresh))&&s$(j.lastRefreshError),vaultReauth:U==="on-vault-reauth",vaultServed:Q,custodyState:U,enabled:j.enabled!==!1,stateLine:C,quotaDated:Boolean(C)}}),activeId:G.activeId,route:G.route,relay:AG(Z?.relay),fastMode:VZ(),cacheKeep:{enabled:v7(Z),window:k7(Z)?"always":Z?.cacheKeep?.startHour!=null&&Z?.cacheKeep?.endHour!=null?`${Z.cacheKeep.startHour}-${Z.cacheKeep.endHour}`:void 0,trackedSessions:g4.length},prime:P9(Z)?{enabled:!0,accounts:H1.stats(Z)}:void 0,fableRecoveries:S$.size>0?[...S$.values()]:void 0,lastUpdated:Date.now()}}function C$(Z,G,W){let z=G.routingAuthoritative!==!1;if(z)$$={activeId:G.activeId,route:G.route};function _(L){return K8(L,g8,{routingAuthoritative:z,resolvePreservedRouting:z?void 0:async(N)=>{let j=await vW(N,()=>R(K),{activeId:L.activeId,route:L.route}),Q=await EZ(j.freshStorage,W);return{activeId:j.activeId,route:j.route,state:m4(Q,{...G,activeId:j.activeId,route:j.route})}},onRoutingResolved:z?void 0:(N)=>{$$=N}}).catch((N)=>h.warn("sidebar","state write failed",{error:N instanceof Error?N.message:String(N)}))}if(z){let L=TZ(Z);if(L.length>0)return EZ(Z,W,L).then((N)=>_(m4(N,G))).catch(()=>{return h.debug("quota","failed to recheck account profile for sidebar"),_(m4(Z,G))})}return _(m4(Z,G))}async function hZ(){return{storage:await R(K),access:void 0}}async function f1(){await y4().catch(()=>{});let{storage:Z,access:G}=await hZ();C$(Z,{activeId:$$.activeId,route:$$.route,mainAccessToken:G,mainRefreshToken:void 0,routingAuthoritative:!1})}function y8(Z,G,W){if(!G)return;if(Z?.quota?.enabled!==!0)return;let z=W?.quotaKey??H$;if(k.getMain(z))return;if(GJ)return;GJ=!0,k.refreshMain(z,G,W?.generation).then(()=>f1()).catch(()=>{}).finally(()=>{GJ=!1})}let W1=null,c4,e1,H$,$4,D1,XJ,bZ=0,p4=new Map,GJ=!1,U1=null,l4=0;function gZ(Z){let G=Z?.refresh?.refreshBeforeExpiryMinutes??IW;return Math.max(_8,G)*60000}function m8(Z){return Z?.refresh?.enabled!==!1}async function yZ(Z=!1){let G=new Map;if(Z){if(u$&&(await u$()).active)try{await T.fetchQuota("main")}catch{G.set("main","Native primary usage refresh unavailable")}await N1(!0)}let W=await v4(AbortSignal.timeout(3000));k.updateStorage(W.policyStorage),k.seedMainFromStorage(W.policyStorage,H$),k.seedFallbacksFromAccounts(W.policyStorage.accounts.filter(B0));let z=[],_=W.accounts.find((N)=>N.id==="main"&&N.type==="oauth");if(_)z.push({name:_.label??"OpenCode anthropic",role:"main",quota:_.quota,tierLabel:B4(_.profile),error:G.get("main")??_.lastQuotaRefreshError?.message});z.push(...XG(W.policyStorage,G));let L=Math.max(0,...W.accounts.map((N)=>E1(N.quota)));return YG({accounts:z,refreshedAt:L||void 0})}async function WJ(Z){await y4().catch(()=>{}),await C$(Z,{activeId:$$.activeId,route:$$.route,routingAuthoritative:!1})}function J4(Z,G,W,z){if(S$.delete(Z.sessionId),S$.set(Z.sessionId,{...Z,changedAt:Date.now()}),S$.size>128){let _=S$.keys().next().value;if(_)S$.delete(_)}if(C$(G,{activeId:$$.activeId,route:$$.route,mainAccessToken:W.access,mainRefreshToken:W.refresh,routingAuthoritative:!1}),z)pZ(Z.sessionId,z)}function mZ(Z,G){let W=c$.get(Z)??new Set;W.delete(G),W.add(G);while(W.size>4){let z=W.values().next().value;if(typeof z!=="string")break;W.delete(z)}c$.delete(Z),c$.set(Z,W);while(c$.size>128){let z=c$.keys().next().value;if(typeof z!=="string")break;c$.delete(z)}}function cZ(Z,G){return typeof G==="string"&&c$.get(Z)?.has(G)===!0}function pZ(Z,G){if(V9(Z))return;N$.delete(Z),N$.set(Z,[G]);while(N$.size>128){let W=N$.keys().next().value;if(W)N$.delete(W);else break}if(X$.has(Z))VJ(Z)}function VJ(Z,G=0){if(!N$.has(Z)||o1.has(Z))return;o1.set(Z,G);let W=()=>{if(o1.get(Z)!==G)return;o1.delete(Z),c8(Z,G)};if(G===0)setImmediate(W);else setTimeout(W,gW*G)}function zJ(Z,G){if(G+1<bW)VJ(Z,G+1)}async function c8(Z,G){if(!X$.has(Z)||!N$.has(Z))return;let W=$.client.session;if(typeof W?.status==="function")try{let z=await Promise.resolve(W.status()),_=z!==null&&typeof z==="object"?z:void 0,L=_&&Object.hasOwn(_,"data")?_.data:_;if(L===null||typeof L!=="object"||Array.isArray(L)){zJ(Z,G);return}let N=L[Z];if(N!==void 0&&(!N||typeof N!=="object"||N.type!=="idle")){zJ(Z,G);return}}catch{zJ(Z,G);return}if(!X$.has(Z))return;await p8(Z)}function p8(Z){let G=I4.get(Z);if(G)return G;let W=(async()=>{while(!0){let z=N$.get(Z),_=z?.[0];if(!_){N$.delete(Z);return}try{let L=()=>N$.get(Z)===z&&z[0]===_;if(!await Z8($,Z,_,{noReply:!0,beforeActiveAssistant:!0,canSend:()=>X$.has(Z)&&L(),onPreparedMessageId:(j)=>mZ(Z,j),latestPreparedMessageId:()=>[...c$.get(Z)??[]].at(-1)})){if(X$.has(Z)&&!L())continue;return}if(L())z.shift()}catch(L){h.warn("fable-fallback","Desktop notification failed",{session:Z,error:L instanceof Error?L.message:String(L)})}}})();return I4.set(Z,W),W.finally(()=>{if(I4.get(Z)===W)I4.delete(Z)}),W}function l8(Z,G,W,z){if(G.fallback&&G.targetModel){let _=k$.get(Z.recoveryKey);k$.delete(Z.recoveryKey),k$.set(Z.recoveryKey,G.targetModel);while(k$.size>128){let N=k$.keys().next().value;if(N)k$.delete(N);else break}let L=S$.get(Z.sessionId);if(_===G.targetModel&&L?.mode==="server"&&b$(L.requestedModelId)===b$(Z.requestedModel)&&L.targetModelId===G.targetModel)return;h.info("fable-fallback","Anthropic server-side safety fallback active",{session:Z.sessionId,requestedModel:Z.requestedModel,targetModel:G.targetModel,handoff:G.handoff}),J4({sessionId:Z.sessionId,mode:"server",remaining:0,requestedModelId:Z.requestedModel,targetModelId:G.targetModel},W,z,rW(Z.requestedModel,G.targetModel));return}if(G.stopReason==="refusal"||!k$.delete(Z.recoveryKey))return;h.info("fable-fallback","Anthropic server-side safety fallback ended",{session:Z.sessionId,requestedModel:Z.requestedModel}),J4({sessionId:Z.sessionId,mode:"fable",remaining:0,requestedModelId:Z.requestedModel},W,z,sW(Z.requestedModel))}function u8(Z,G,W){if(!Z)return;for(let z of k$.keys())if(z.startsWith(`${Z}\x00`))k$.delete(z);if(!S$.delete(Z))return;C$(G,{activeId:$$.activeId,route:$$.route,mainAccessToken:W.access,mainRefreshToken:W.refresh,routingAuthoritative:!1})}async function KJ(Z){let G=XW(Z);if(G.type==="enable"||G.type==="disable"){let L=G.type==="enable",N=await q1(L),j=w4(N);return x9({enabled:L,mode:j}),h.info("commands","cache enabled changed",{enabled:L}),JZ({argumentsText:Z,enabled:L,mode:j,settingsPath:await T.getSettingsPath()})}if(G.type==="mode"){let L=await q4(G.mode),N=A9(L);return x9({enabled:N,mode:G.mode}),h.info("commands","cache mode changed",{mode:G.mode}),JZ({argumentsText:Z,enabled:N,mode:G.mode,settingsPath:await T.getSettingsPath()})}let W=await R(K),z=A9(W),_=w4(W);return x9({enabled:z,mode:_}),JZ({argumentsText:Z,enabled:z,mode:_})}async function Z4(Z){let G=GW(Z),W=await R(K);if(G.type==="window")W=await R1(G.startHour,G.endHour),h.info("commands","cachekeep schedule changed",{schedule:`${G.startHour}-${G.endHour}`});else if(G.type==="always")W=await $1(),h.info("commands","cachekeep schedule changed",{schedule:"always"});else if(G.type==="disable")W=await R4(!1),h.info("commands","cachekeep enabled changed",{enabled:!1});else if(G.type==="subagents")W=await M4(G.enabled),h.info("commands","cachekeep subagents changed",{subagents:G.enabled});let z=x7(W),_=await y4(),L=_.length?Math.min(..._.map((N)=>N.nextPrewarmAt)):void 0;return qG({argumentsText:Z,enabled:lG(W),always:k7(W),window:z,hybridActive:v7(W),trackedSessions:_.length,trackedSessionDetails:_,nextPrewarmAt:L})}async function lZ(Z){let G=WW(Z);if(G.type==="enable"||G.type==="disable"){let _=G.type==="enable";return await _1(_),jZ(_),h.info("commands","dump changed",{enabled:_}),S7({argumentsText:Z,enabled:_,settingsPath:await T.getSettingsPath()})}let W=await R(K),z=WZ(W);return jZ(z),S7({argumentsText:Z,enabled:z})}async function uZ(Z){let G=VW(Z);if(G.type==="enable"||G.type==="disable"){let _=G.type==="enable";return await h9(_),LZ(_),h.info("commands","fast mode changed",{enabled:_}),C7({argumentsText:Z,enabled:_,settingsPath:await T.getSettingsPath()})}let W=await R(K),z=zZ(W);return LZ(z),C7({argumentsText:Z,enabled:z})}async function dZ(Z,G){if(zW(Z).type==="fire"){if(!G)return`## Claude Start Failed
24
+
25
+ - OpenCode did not provide a session ID.`;try{return await P3($.client,G),P7({argumentsText:Z}).text}catch(z){return`## Claude Start Failed
26
+
27
+ - ${z instanceof Error?z.message:String(z)}`}}return P7({argumentsText:Z}).text}async function OJ(Z,G){let W=_W(Z);if(W.type==="mode")return await g9(W.mode,K),h.info("commands","routing mode changed",{mode:W.mode}),R7({argumentsText:Z,mode:W.mode});if(W.type==="reset"&&G)await(await UZ()).router.clear(G),h.info("commands","sticky routing assignment reset");let z=await R(K);return R7({argumentsText:Z,mode:e$(z)})}async function iZ(Z){let G=KW(Z);if(G.type==="level")return await b9(G.level),q7({argumentsText:Z,level:G.level,settingsPath:await T.getSettingsPath()});let W=await R(K),z=XZ(W)??"info";return q7({argumentsText:Z,level:z,settingsPath:await T.getSettingsPath()})}async function nZ(Z){let G=OW(Z),W=P9(await R(K)),z=W;if(G.type==="enable"){if(z=!0,!W)await f$(!0,K),H1.start(),h.info("commands","prime changed",{enabled:!0})}else if(G.type==="disable"){if(z=!1,W)await f$(!1,K),H1.stop(),h.info("commands","prime changed",{enabled:!1})}if(G.type==="enable"||G.type==="disable"){let L=await R(K);if(L&&W1)try{let N=await W1().catch(()=>{return});await C$(L,{activeId:$$.activeId,route:$$.route,mainAccessToken:N?.access,routingAuthoritative:!1})}catch(N){h.warn("sidebar","prime-toggle sidebar write failed",{error:N instanceof Error?N.message:String(N)})}}let _=await R(K);return RG({argumentsText:Z,enabled:z,accounts:H1.stats(_)}).text}async function Y4(Z,G,W){let z=W??YW(Z);if(z.type==="add-apikey"){if(!z.apiKey)return{text:"API key is required",accounts:y$(await R(K)??o$())};let U=z.label?.trim()||void 0,C=Date.now(),f=z.baseURL?.trim()||"https://api.kie.ai/claude";if(!KZ(f))return{text:"Invalid base URL. Must be an http(s) URL without embedded credentials.",accounts:y$(await R(K)??o$())};let m=z.authHeader??"authorization-bearer",J0={id:U||rJ(),label:U||void 0,type:"api",apiKey:z.apiKey,baseURL:f,authHeader:m,enabled:!0,addedAt:C,lastUsed:C};await T.addApi({routeId:J0.id,apiKey:z.apiKey,label:J0.label,baseURL:f,authHeader:m});let _0=await R(K);await WJ(_0);let f0=y$(_0??{version:1,accounts:[]});return{text:`API key account "${J0.label??J0.id}" added.`,accounts:f0}}if(z.type==="add-oauth-start"){if(await S1("opencode",process.env)!=="local")throw Error("Disconnect from the vault first.");let U=await X("max"),C={state:U.state,verifier:U.verifier,redirectUri:U.redirectUri,createdAt:Date.now()};return a(G??"default",C),{text:`Open this URL in your browser:
28
+ ${U.url}`,knobs:{oauthUrl:U.url},accounts:y$(await R(K)??o$())}}if(z.type==="add-oauth-finish"){let U=G??"default",C=u(U);if(!C)return{text:"OAuth session expired. Please start again.",accounts:y$(await R(K)??o$())};try{let f=await $Z(z.code,C.verifier,C.redirectUri,C.state);if(f.type==="failed")return{text:"OAuth authentication failed. Please check the code and try again.",accounts:y$(await R(K)??o$())};let m=Date.now(),J0={id:rJ(),type:"oauth",authLineageId:rJ(),label:z.label||void 0,access:f.access,refresh:f.refresh,expires:f.expires,enabled:!0,addedAt:m,lastUsed:m,lastRefreshedAt:m};W$(),await T.loginOAuth({routeId:J0.id,label:J0.label,credential:{access:f.access,refresh:f.refresh,expires:f.expires}});let _0=await R(K);return await WJ(_0),{text:"OAuth account added.",accounts:y$(_0??o$())}}catch{return{text:"OAuth exchange failed due to a network error. Please try again.",accounts:y$(await R(K)??o$())}}finally{P.delete(U)}}let _=await R(K);if(z.type==="status"&&_){let U;if(W1)try{let C=await W1();if(C.type==="oauth")U=$4??C.access}catch{}_=await U8(_,U,AbortSignal.timeout(3000),D1)}let L=z.type==="status"?await oZ(_):void 0,N=await PG({argumentsText:Z,storage:_??{version:1,accounts:[]},path:K,claustrum:z.type==="status"&&!L?await E7(Y8()):void 0,statusProjection:L,transition:async(U)=>({text:U==="claustrum"?"Run `npx @cortexkit/opencode-anthropic-auth setup` to enroll and activate scoped custody safely while OpenCode is stopped.":"Local exit requires replacing the OpenCode auth tombstone with a verified local OAuth login while OpenCode is stopped. Do not change custody mode alone."}),resetEnrollment:async()=>{switch(await QW(C9("opencode"),sJ)){case"reset":return{text:"Terminal Claustrum enrollment state cleared. Run setup to enroll OpenCode again."};case"idle":return{text:"No Claustrum enrollment state to reset. Run setup to enroll OpenCode."};case"refused-pending":return{text:"An enrollment request may still be in progress. Quit OpenCode and run setup again; it picks up the same request."};case"refused-approved":return{text:"Claustrum enrollment is already approved. Revoke it in Claustrum before removing local enrollment state."};case"busy":return{text:"Another process is updating Claustrum enrollment; retry shortly."}}}});if(N.updated){if(N.updated.action==="enable"||N.updated.action==="disable")await w$(N.updated.id,N.updated.action==="enable",K);else if(N.updated.action==="remove")await l1(N.updated.id,K);else if(N.updated.action==="reorder")await T$(N.updated.newOrder??N.updated.previousOrder??[],K,N.updated.id);else if(N.updated.action==="reset-backoff")await M1("main"),k.clearMainBackoff(),h.info("commands","native main refresh and quota backoff cleared");let U=await R(K);if(W1)try{let C=await W1();C$(U,{activeId:$$.activeId,route:$$.route,mainAccessToken:C.access,mainRefreshToken:C.refresh,routingAuthoritative:!1})}catch{}}let j=await R(K),Q=y$(j??{version:1,accounts:[]});return{text:N.text,accounts:Q,statusProjection:L}}async function oZ(Z){let G=Z??await R(K),W=G??o$(),z=y$(W).map((j)=>{let Q=W.accounts.find((f)=>f.id===j.id),U=j.role==="main"?"na":Q&&B0(Q)&&z4(Q.id,W)?"on":"off",C=SJ(j,G);return{id:j.id,label:j.label,role:j.role,enabled:j.enabled,quotaPercent:j.quotaPercent,...j.tierLabel&&{tierLabel:j.tierLabel},claustrumGate:U,custodyState:C,vaultServed:C==="on-vault-served",vaultReauth:C==="on-vault-reauth"}}),_=await E7(Y8()),L=T4(W),N=L==="claustrum"?await c7(C9("opencode"),sJ):void 0;return{accounts:z,claustrumDetection:_.status,custodyMode:L,...N&&{claustrumEnrollment:N}}}async function d8(Z,G,W){if(Z==="claude-quota")return{command:Z,text:await yZ(),knobs:{}};if(Z==="claude-start"){let j=await dZ(G,W);return{command:Z,text:j,knobs:{}}}if(Z==="claude-logging"){let j=await iZ(G),Q=await R(K);return{command:Z,text:j,knobs:{level:XZ(Q)??"info"}}}if(Z==="claude-account"){let j=await Y4(G,W),Q=j.statusProjection??await oZ(),U={accounts:Q.accounts,claustrumDetection:Q.claustrumDetection,custodyMode:Q.custodyMode,custodyModeKnown:!0,...Q.claustrumEnrollment&&{enrollmentStatus:M7(Q.claustrumEnrollment,Q.accounts.some((C)=>C.role==="main"&&C.vaultServed)).join(`
29
+ `)}};if("knobs"in j&&j.knobs)Object.assign(U,j.knobs);return{command:Z,text:c4?`${j.text}
30
+
31
+ - Custody startup mismatch: ${c4}`:j.text,knobs:U}}if(Z==="claude-routing"){let j=await OJ(G,W),Q=await R(K);return{command:Z,text:j,knobs:{mode:e$(Q)}}}if(Z==="claude-fast"){let j=await uZ(G),Q=await R(K);return{command:Z,text:j,knobs:{enabled:zZ(Q)}}}if(Z==="claude-dump"){let j=await lZ(G),Q=await R(K);return{command:Z,text:j,knobs:{enabled:WZ(Q)}}}if(Z==="claude-cache"){let j=await KJ(G),Q=await R(K);return{command:Z,text:j,knobs:{enabled:A9(Q),mode:w4(Q)}}}if(Z==="claude-cachekeep"){let j=await Z4(G),Q=await R(K);return{command:Z,text:j,knobs:{window:x7(Q)}}}if(Z==="claude-prime"){let j=await nZ(G),Q=await R(K),U=P9(Q);return{command:Z,text:j,knobs:{enabled:U,accounts:H1.stats(Q)}}}if(Z!=="claude-killswitch")throw Error(`Unhandled command modal: ${Z}`);let z=await R(),_=YZ(z),L=(z?.accounts??[]).filter((j)=>j.enabled!==!1).map((j)=>j.id),N=A7({argumentsText:G,config:_,accountIds:L});if(N.updatedConfig)await x0(N.updatedConfig);return{command:Z,text:N.text,knobs:{config:YZ(await R()),accountIds:L}}}async function i8(Z){return{text:"Open /claude to manage native Claude settings.",knobs:{}}}let n8=async(Z,G)=>{if(G.signal?.aborted)throw G.signal.reason??Error("Menu action aborted");let W;switch(Z.action){case"enable":case"disable":await T.setEnabled(Z.values.id,Z.action==="enable"),W=`Account ${Z.values.id} ${Z.action}d.`;break;case"remove":await T.remove(Z.values.id),W=`Account ${Z.values.id} removed.`;break;case"move-up":case"move-down":{let z=(await T.read()).accounts.filter((N)=>N.id!=="main").map((N)=>N.id),_=z.indexOf(Z.values.id);if(_<0)throw Error("Native account not found");let L=_+(Z.action==="move-up"?-1:1);if(L>=0&&L<z.length){let N=z[L];if(N===void 0)throw Error("Native account order changed");z[L]=Z.values.id,z[_]=N,await T.reorder(z,Z.values.id)}W="Native account order updated.";break}case"add-apikey":W=(await Y4("",Z.sessionId,{type:"add-apikey",apiKey:Z.values.apiKey,label:Z.values.label??void 0,baseURL:Z.values.baseURL??void 0,authHeader:Z.values.authHeader??void 0})).text;break;case"add-oauth-start":W=(await Y4("",Z.sessionId,{type:"add-oauth-start"})).text;break;case"add-oauth-finish":W=(await Y4("",Z.sessionId,{type:"add-oauth-finish",...Z.values})).text;break;case"reset-backoff":{await M1("main",G.signal),k.clearMainBackoff(),W="Native main refresh and quota backoff cleared; credential validation and quarantine are unchanged.";break}case"enrollment-reset":W=(await Y4("enrollment-reset")).text;break;case"quota-refresh":W=await yZ(!0);break;case"routing-mode":W=await OJ(Z.values.mode);break;case"routing-reset":W=await OJ("reset",Z.sessionId);break;case"cache-on":case"cache-off":W=await KJ(Z.action==="cache-on"?"on":"off");break;case"cache-mode":W=await KJ(`mode ${Z.values.mode}`);break;case"cachekeep-always":W=await Z4("always");break;case"cachekeep-off":W=await Z4("off");break;case"cachekeep-window":W=await Z4(`${Z.values.startHour}-${Z.values.endHour}`);break;case"cachekeep-subagents":W=await Z4(`subagents ${Z.values.enabled}`);break;case"dump-on":case"dump-off":W=await lZ(Z.action==="dump-on"?"on":"off");break;case"fast-on":case"fast-off":W=await uZ(Z.action==="fast-on"?"on":"off");break;case"prime-on":case"prime-off":W=await nZ(Z.action==="prime-on"?"on":"off");break;case"logging-level":W=await iZ(Z.values.level);break;case"killswitch-on":case"killswitch-off":case"killswitch-set":{let _=(await T.read()).accounts.filter((L)=>L.id!=="main").map((L)=>L.id);await T.updateSettings((L)=>{let N=YZ({...L,version:1,accounts:[]});if(Z.action!=="killswitch-set"){let U=A7({argumentsText:Z.action==="killswitch-on"?"on":"off",config:N,accountIds:_});return{...L,killswitch:U.updatedConfig??N}}let j={...N.accounts},Q={...N,enabled:!0,accounts:j};for(let U of Z.values.entries){let C={five_hour:U.fh,seven_day:U.sd,...U.scoped===void 0?{}:{scoped:U.scoped}};if(U.account==="main"||U.account==="all")Q.main=C;if(U.account==="all")for(let f of _)j[f]=C;else if(U.account!=="main")j[U.account]=C}return{...L,killswitch:Q}}),W="Native killswitch policy updated.";break}case"start-fire":W=await dZ("",Z.sessionId);break;default:throw Error(`Unsupported native menu action: ${Z}`)}return WJ(await R()).catch(()=>{}),{ok:!0,text:W.split(`
32
+ `).filter((z)=>!z.includes("/claude-")).join(`
33
+ `)}},o8=async(Z,G)=>{if(Z==="account"){let _=await v4(AbortSignal.timeout(3000)),L=_.mode==="claustrum"?await c7(C9("opencode"),sJ):void 0;return[`Custody mode: ${_.mode}`,...L?M7(L,_.accounts.some((N)=>N.id==="main"&&N.source==="vault"&&y0(N))):[],..._.accounts.map((N)=>`${N.label??N.id} [${N.id==="main"?"main":"fallback"}] ${N.enabled?"enabled":"disabled"} — ${N.source}${N.state?` (${ZZ(N)})`:""}${B4(N.profile)?` — ${B4(N.profile)}`:""}`)].join(`
34
+ `)}return(await d8({account:"claude-account",quota:"claude-quota",routing:"claude-routing",killswitch:"claude-killswitch",cache:"claude-cache",cachekeep:"claude-cachekeep",dump:"claude-dump",logging:"claude-logging",fast:"claude-fast",prime:"claude-prime"}[Z],"",G.sessionId)).text.split(`
35
+ `).filter((_)=>!_.includes("/claude-")).join(`
36
+ `)},_J=new Map;function rZ(Z){let G=V9(Z),W=_J.get(Z);if(!W||W.interactive!==G)W={interactive:G,command:R3({host:"opencode",dispatch:n8,readStatus:o8,readAccounts:()=>T.read(),readSeparateHostLoginNotice:async()=>{if(await S1("opencode")!=="local")return!1;let z=await T.read(),_=m7(await p7(s));return z.mode==="local"&&(_==="committed"||_==="retired")&&l7(z)&&b4(await h4?.())},interactive:G})},_J.set(Z,W);return W.command}function r8(Z,G=10){let W=Math.max(0,Math.min(Math.round(Z/100*G),G));return"█".repeat(W)+"░".repeat(G-W)}function u4(Z,G){return`${Z} ${r8(G)} ${String(Math.round(G)).padStart(3)}%`}function sZ(Z){if(!Z)return"";let G=new Date(Z).getTime();if(Number.isNaN(G))return"";let W=G-Date.now();if(W<=0)return"resets now";let z=Math.floor(W/60000);if(z<1)return"resets <1m";if(z<60)return`resets ${z}m`;let _=Math.floor(z/60),L=z%60;return L>0?`resets ${_}h${L}m`:`resets ${_}h`}function s8(Z,G,W){let z=[],_=0;if(Z){let{five_hour:j,seven_day:Q}=Z;if(j||Q){let C=W==="main"?"active":"idle",f=sZ(j?.resetsAt),m=[`main · ${C}${f?` (${f})`:""}`];if(j)m.push(u4("5h",j.usedPercent)),_=Math.max(_,j.usedPercent);if(Q)m.push(u4("7d",Q.usedPercent)),_=Math.max(_,Q.usedPercent);z.push(m.join(`
37
+ `))}}if(G?.length)for(let j of G){let Q=j.quota;if(!Q)continue;let{five_hour:U,seven_day:C}=Q;if(!U&&!C)continue;let f=j.label||"alt",J0=W===j.id?"active":"idle",_0=sZ(U?.resetsAt),f0=[`${f} · ${J0}${_0?` (${_0})`:""}`];if(U)f0.push(u4("5h",U.usedPercent)),_=Math.max(_,U.usedPercent);if(C)f0.push(u4("7d",C.usedPercent)),_=Math.max(_,C.usedPercent);z.push(f0.join(`
38
+ `))}if(!z.length)return;let L=z.join(`
39
+
40
+ `),N=_>=90?"error":_>=70?"warning":"info";V.tui?.showToast?.({body:{title:"Claude Quota",message:L,variant:N,duration:N==="error"?8000:5000}})?.catch?.(()=>{})}if($.directory){let Z=G8($.directory);try{YJ=await u3(Z,()=>l3({dir:Z,drain:c3,apply:i8,applyMenu:(G)=>rZ(G.sessionId??"").apply(G)}))}catch{h.warn("rpc","native menu server unavailable")}}return{"experimental.chat.messages.transform":async(Z,G)=>{let W=G.messages;I1.observeMessages(W);let z=B3(W);if(z){n1.record(z);return}let _=W.findLast((j)=>j.info?.role==="user"),L=_?.info?.sessionID,N=_?.info?.id;if(typeof L==="string"&&typeof N==="string")n1.clear(L,N)},"chat.message":async({sessionID:Z},G)=>{c9.observeSyntheticMessage({sessionId:Z,messageId:G.message.id,parts:G.parts})},"chat.headers":async({sessionID:Z,agent:G,message:W},z)=>{if(f3(G))z.headers[hJ]="auxiliary";c9.markHeaders({sessionId:Z,messageId:W.id,headers:z.headers}),n1.markHeaders({sessionId:Z,messageId:W.id,headers:z.headers}),I1.markHeaders({sessionId:Z,messageId:W.id,headers:z.headers})},event:async({event:Z})=>{let G=Z,W=G.properties?.info,z=G.properties?.sessionID??W?.sessionID??W?.id;if(!z)return;if(G.type==="message.updated"&&W?.role==="user"&&!cZ(z,W.id))if(typeof W.id==="string"){if(p9.set(z,W.id),X$.has(z)&&x4.get(z)!==W.id)X$.delete(z)}else X$.delete(z);if(G.type==="session.status"&&G.properties?.status?.type!=="idle")X$.delete(z);if(G.type==="session.idle"){let _=p9.get(z);if(_)x4.set(z,_);else x4.delete(z);X$.add(z);while(X$.size>128){let L=X$.values().next().value;if(L)X$.delete(L);else break}VJ(z)}if(G.type==="session.deleted"||G.type==="message.removed")I1.clearSession(z);if(G.type==="session.deleted"){Y1.clearSession(z),_J.delete(z),P.delete(z),c9.clearSession(z),S$.delete(z),N$.delete(z),X$.delete(z),p9.delete(z),x4.delete(z),c$.delete(z);for(let _ of E$.keys())if(_.startsWith(`${z}\x00`))E$.delete(_);o1.delete(z)}},config:async(Z)=>{let G={...Z.command??{}};for(let W of X8)delete G[W];Z.command={...G,claude:{template:"claude",description:"Manage Claude accounts, quotas, routing, and cache settings."}}},"experimental.chat.system.transform":async(Z,G)=>{if(!lW(Z))return;uW(G.system)},provider:{id:"anthropic",async models(Z,G){let W=$2(tW(Z.models));if(G.auth?.type!=="oauth"||!oG(a0??{}))return W;return J2(W)}},"command.execute.before":async(Z)=>{if(Z.command!=="claude")return;let G=await rZ(Z.sessionID).open(Z.sessionID),W=V9(Z.sessionID),z=!1;if(W)bJ(G,Z.sessionID);else if(!G2()&&!m3(Z.sessionID))W=await y3(G,Z.sessionID,{timeoutMs:J.tuiPickupTimeoutMs??Z2,setTimeout:Y.setTimeout,clearTimeout:Y.clearTimeout}),z=!W;if(!W){let _=[...z?[X2(),""]:[],G.menu.title,...G.menu.sections.flatMap((L)=>[`
41
+ ## ${L.title}`,...L.lines,...L.items.map((N)=>`${N.label}${N.detail?` — ${N.detail}`:""}`)])].join(`
42
+ `);await Z8($,Z.sessionID,_)}pW()},auth:{provider:"anthropic",async loader(Z,G){u$=async()=>{let Q=await Z();return{type:Q.type,active:GZ(Q,"anthropic")}},h4=Z;let W=await Z();if(W.type!=="oauth")return{};let z=await S1("opencode").catch(()=>{return});if(!wZ&&GZ(W,"anthropic")&&process.env.OPENCODE_ANTHROPIC_AUTH_DISABLE_PROFILE_HYDRATION!=="1"){wZ=!0;let Q=v4(G1.signal).then((U)=>{if(!G1.signal.aborted)return C$(U.policyStorage,{...$$,routingAuthoritative:!1})}).catch(()=>{if(!G1.signal.aborted)h.debug("quota","startup account profile hydration failed")});X1.add(Q),Q.then(()=>X1.delete(Q))}function _(Q,U=!1){if(!GZ(Q,"anthropic")&&!(U&&b4(Q)))throw Error("Native OAuth requires inert OpenCode activation; run offline setup")}async function L(Q){_(await Z(),Q&&await S1("opencode")==="local")}let N=async(Q,U,C=!1)=>{let f=await Z();if(f.type!=="oauth")return{type:f.type,access:"",expires:0,refresh:void 0,nativeAccountIdentity:void 0,nativeRoutingLineage:void 0,nativeLocalSource:void 0,nativeScopedAttempt:void 0,modelDenied:!1,credentialUnavailable:!1,credentialFailure:void 0,deferred:!1};let m=await S1("opencode");if(m==="claustrum"&&!M8(f))throw Error("This host uses the credential vault, but OpenCode holds a separate Anthropic login. Remove it and choose the vault login, or disconnect from the vault.");W$();let J0=await HW(T,U),_0=m==="claustrum"?"committed":m7(await p7(s)),f0=l7(J0);if(_(f,m==="local"&&(_0==="committed"||_0==="retired")&&f0),m==="claustrum"&&!J0.accounts.some((q0)=>q0.type==="oauth"&&y0(q0)))throw new OZ;let w0=V3(J0.policyStorage);try{z3({mode:m==="claustrum"?"C":"L",main:EJ(f),fallbacks:m==="claustrum"?"T":w0.fallbacks,evidence:"V",authority:_0,localOAuthServable:f0}),c4=void 0}catch(q0){if(q0 instanceof K4)c4=q0.verdict;throw q0}R0=J0.policyStorage;let k0=J0.accounts.find((q0)=>q0.id==="main"),N0=k0?.binding,_$=k0?O0(k0,J0.policyStorage):void 0,V1=_$&&_$!==k0?.quota?{...J0.policyStorage,quota:{...J0.policyStorage.quota,mainQuota:_$}}:J0.policyStorage,D$=L0("main",W0(N0),k0?.accountIdentity,J0.policyStorage),U$=Boolean(N0&&D$?.lineage===W0(N0)&&D$?.generalExhausted===!0);if(k0&&N0&&(!m0||N0.rowId!==m0.rowId||N0.credentialEpoch>m0.credentialEpoch))k.clearMain(),k.setMainQuotaAccountIdentity(k0.accountIdentity),m0={rowId:N0.rowId,credentialEpoch:N0.credentialEpoch};if(C&&(e$(J0.policyStorage)==="fallback-first"||QZ(V1,k0?.accountIdentity,U$))){let q0=J0.accounts.find((V$)=>V$.id==="main");return U?.throwIfAborted(),{type:"oauth",access:"",expires:0,refresh:void 0,nativeAccountIdentity:q0?.accountIdentity,nativeRoutingLineage:q0?.binding?W0(q0.binding):void 0,nativeLocalSource:void 0,nativeScopedAttempt:void 0,modelDenied:!1,credentialUnavailable:!1,credentialFailure:void 0,deferred:!0}}let Q0,v0,j$,v$;try{Q0=await P0("main",U,void 0,Q,"serve",J0)}catch(q0){if(q0 instanceof S0)throw q0;if(T1(q0))throw q0;if(q0 instanceof Z1){v0=q0.account;let V$=mG(v0.quota,Q);if(V$!==void 0&&(!Number.isFinite(V$.checkedAt)||(V$.checkedAt??0)+q0.checkIntervalMs<=Date.now())||!_Z(v0.quota)&&!M9(v0.quota,Q))try{await T.fetchQuota("main",void 0,U),Q0=await P0("main",U,void 0,Q),v0=void 0}catch(h$){if(T1(h$))throw h$;if(h$ instanceof Z1)v0=h$.account;else if(h$ instanceof O$)j$=h$.account,v$=h$}}else if(q0 instanceof O$)j$=q0.account,v$=q0}return U?.throwIfAborted(),{type:"oauth",access:Q0?.accessToken??"",expires:Q0?.expires??0,refresh:void 0,nativeRoutingLineage:I0(Q0?.localSubject,Q0?.scopedAttempt)??(k0?.binding?W0(k0.binding):void 0),nativeAccountIdentity:Q0?.accountIdentity??v0?.accountIdentity??j$?.accountIdentity,modelDenied:Boolean(v0),credentialUnavailable:Boolean(j$),credentialFailure:v$,deferred:!1,nativeLocalSource:Q0?.localSource,nativeScopedAttempt:Q0?.scopedAttempt}};W1=N;let j={type:"oauth",access:"",expires:0};if(j.type==="oauth"){let f=function(){if(U1)Y.clearInterval(U1);let D=async()=>{try{let B=await R(K);if(!m8(B))return;let x=await N();if(x.type!=="oauth")return;if(x.nativeLocalSource==="rotated"||x.nativeLocalSource==="adopted")return;if(x.expires&&x.expires-Date.now()>gZ(B))return;await C()}catch{h.warn("refresh","native main OAuth background refresh unavailable")}};U1=Y.setInterval(()=>{D()},MW+J8(t7)),U1.unref?.()},J0=function(D,B){if(D instanceof Request&&D.body)return!1;return B==null||typeof B==="string"},_0=function(D){if(typeof D!=="string")return;try{let B=JSON.parse(D);return typeof B.model==="string"?B.model:void 0}catch{return}},f0=function(D){return D.has("x-parent-session-id")},w0=function(D){let B;try{B=JSON.parse(D)}catch{return!1}if(typeof B!=="object"||B===null)return!1;let x=Reflect.get(B,"error");return Reflect.get(B,"type")==="error"&&typeof x==="object"&&x!==null&&Reflect.get(x,"type")==="rate_limit_error"},k0=function(D){return D?.quota?.enabled===!0},_$=function(D,B){if(D.delete("authorization"),D.delete("x-api-key"),B.authHeader==="x-api-key")D.set("x-api-key",B.apiKey??"");else D.set("Authorization",`Bearer ${B.apiKey??""}`);D.set("Content-Type","application/json"),F7(D)},Q0=function(D){return k.getFallback(D.id,D)?.quota??D.quota},v0=function(D,B){return D.status===429||B},j$=function(D,B=R0){return b("main",D?.routingLineage,D?.providerAccountUuid,k.getMain(D?.quotaKey??H$),B)},v$=function(D,B){if(!D&&!B?.providerAccountUuid)return!1;let x=j$(B);return Boolean(x&&(D||x.quota.accountIdentity===B?.providerAccountUuid)&&x.refreshAfter>Date.now()&&r1(x.quota)&&(x.quota.source!=="headers"||L0("main",B?.routingLineage,B?.providerAccountUuid)?.generalExhausted===!0||["five_hour","seven_day"].some((v)=>x.quota.fieldSources?.[v]==="poll"&&(x.quota[v]?.remainingPercent??1)<=0)))},U=(await T.read().catch(()=>{return}))?.accounts.find((D)=>D.id==="main");if(e1=U?.binding?.rowId??U?.accountIdentity,H$??=U?.accountIdentity??e1,j.access)await s1(j.access);async function C(D,B,x){let v=b4(await Z());await L(v),x?.throwIfAborted();let d=await P0("main",x,D,B,"refresh");return await L(v),x?.throwIfAborted(),d.accessToken}if(z==="local")f();k.seedFallbacksFromAccounts((a0?.accounts??[]).filter(B0));let m=await hW(()=>R(K)).catch(()=>({freshStorage:null,activeId:void 0,route:"main"}));await C$(m.freshStorage,{activeId:m.activeId,route:m.route,mainAccessToken:j.access,routingAuthoritative:!1});async function N0(D,B){if(!D.body||D.status!==200)return B?.mark("inspect_stream_skip",{status:D.status}),{response:D,rateLimited:!1};if(D.headers.get("x-cortexkit-relay-optimistic")==="true")return B?.mark("inspect_stream_skip",{status:D.status,reason:"optimistic_relay"}),{response:D,rateLimited:!1};let x=$0(),v=D.body.getReader(),d=[],t=0,g=EG({maxFrameBytes:65536}),A=!1,j0=!1,Y0=!0;while(!j0&&t<65536){let{done:I,value:n}=await v.read().catch(async(F)=>{let E=cJ(F,l$.get(D)?.toolNameMap);if(E!==F)await pJ(v,E);throw E});if(I)break;d.push(n),t+=n.byteLength;let X0;try{X0=g.push(n)}catch{break}for(let F of X0){let E=jW(CG(F,{streamStart:Y0}));if(Y0=!1,E.data===void 0)continue;A=w0(E.data),j0=!0;break}}if(A){await v.cancel().catch(()=>{});try{v.releaseLock()}catch{}let I=new ReadableStream({start(X0){for(let F of d)X0.enqueue(F);X0.close()}});B?.mark("inspect_stream_first_event",{ms:A0($0()-x),bytes:t,rateLimited:!0});let n=new Response(I,{status:D.status,statusText:D.statusText,headers:D.headers});return o4(l$,D,n),{response:n,rateLimited:!0}}let V0=new ReadableStream({start(I){for(let n of d)I.enqueue(n)},async pull(I){let{done:n,value:X0}=await v.read();if(n){I.close();return}I.enqueue(X0)},cancel(I){return v.cancel(I)}});B?.mark("inspect_stream_first_event",{ms:A0($0()-x),bytes:t,rateLimited:!1});let S=new Response(V0,{status:D.status,statusText:D.statusText,headers:D.headers});return o4(l$,D,S),{response:S,rateLimited:!1}}async function V1(D,B,x,v){if(W$(),!B){let g=j$(x);if(!x?.providerAccountUuid||!g||g.refreshAfter<=Date.now()||!r1(g.quota))throw Error("API fallback requires fresh general primary OAuth exhaustion");let A=await P0("main",v);if(A.accountIdentity!==x.providerAccountUuid||x.routingLineage&&I0(A.localSubject,A.scopedAttempt)!==x.routingLineage)throw Error("Primary identity changed before API fallback");B=A.accessToken}let d=await T.authorizeApi(D,v),t=(await T.read()).accounts.find((g)=>g.id==="main");if(t?.binding&&W0(t.binding)!==x?.routingLineage)throw Error("Primary identity changed before API fallback");if(!v$(B,x))throw Error("API fallback requires fresh general primary OAuth exhaustion");return d}async function D$(D,B,x,v,d="api_fallback",t,g,A,j0){if(g)g.oauthAccountId=void 0,g.opusCacheAnchor=void 0;let Y0=$0(),V0=U4(D,B),S=V0.get("x-session-affinity")||V0.get("x-opencode-session"),I=f0(V0),n=V0.get(h1)??void 0,X0=n1.resolveHeader(n);V0.delete("x-parent-session-id"),V0.delete("x-session-affinity"),V0.delete("x-opencode-session"),V0.delete("x-opencode-session-id"),V0.delete("x-opencode-parent-session-id"),V0.delete(h1),V0.delete(G4),V0.delete(hJ);let F=await C4(D,B),E=!1,z0=null,d0,y=typeof F==="string"?F.length:void 0;if(F&&typeof F==="string"){let P$=$0(),L$=(()=>{if(!VZ())return!1;try{return h7(JSON.parse(F).model)}catch{return!1}})();try{F=await H9(F,{onToolNameMap:(h0)=>{d0=h0},cache1hEnabled:!I&&E4(),cache1hMode:F4(),fastModeEnabled:L$,sessionId:S||void 0,midConversationEffortEnabled:!1,midConversationEffortPlan:n,midConversationEffortResolvedPlan:X0,modelRemapEnabled:!0,perf:(h0,z$)=>v?.mark(`rewrite_body_${h0}`,{route:d,...z$})})}catch(h0){if(h0 instanceof E0)return s7(h0);if(h0 instanceof u7)return a7(h0);throw h0}if(_$(V0,x),V0.set("anthropic-beta",g7(V0.get("anthropic-beta"),[])),L$)N9(V0);try{E=JSON.parse(F).stream===!0}catch{}v?.mark("rewrite_body",{route:d,ms:A0($0()-P$),originalBytes:y,rewrittenBytes:F.length,cacheEnabled:!I&&E4(),cacheMode:F4(),fastModeEnabled:L$,subagent:I})}else _$(V0,x);let u0=await e9(V0),A$=await V1(x.id,A,j0,B?.signal??void 0);x={...x,...A$},_$(V0,x);let J$=Q4(D,{baseURL:x.baseURL}),c0=$0(),d$=E9([x.apiKey??""],E?"event-stream":"http"),G0;try{G0=d$.redactResponse(await fetch(J$.input,{...B,body:F,headers:V0,...lJ()&&{tls:{rejectUnauthorized:!1}}}))}catch(P$){let L$=d$.redactError(P$);if(d$.dispose(),typeof F==="string")await S9({affinity:S,route:d,error:d7,bodyText:F,url:J$.url?.toString()??S4(J$.input),method:P1(D,B),headers:V0});throw L$}if(typeof F==="string")z0=await S9({affinity:S,route:d,status:G0.status,bodyText:F,url:J$.url?.toString()??S4(J$.input),method:P1(D,B),headers:V0});if(IZ(G0,{source:"turn",toolNameMap:d0,accountId:x.id,synthetic:!1,...u0,requestedModel:_0(F),dump:z0,status:G0.status,streaming:E}),v?.mark("send_headers_received",{route:d,ms:A0($0()-c0),status:G0.status,relayConfigured:!1,totalSendWithAccessMs:A0($0()-Y0),baseURL:x.baseURL}),G0.ok)u1.publish(()=>T.publishApi(A$.subject,{lastUsed:Date.now()}));return G0}async function U$(D,B,x,v,d="unknown",t,g="main",A,j0,Y0=!1,V0,S){ZG(x,"anthropic");let I=b4(await Z()),n=$0(),X0=t,F=async()=>{return X0??=await R(K),X0},E=U4(D,B),z0=E.get("x-session-affinity")||E.get("x-opencode-session"),d0=f0(E),y=E.get(h1)??void 0,u0=n1.resolveHeader(y),A$=E.get(G4)??void 0,J$=I1.resolveHeader(A$),c0=!d0&&!Y0?J$:void 0;E.delete("x-parent-session-id"),E.delete("x-session-affinity"),E.delete("x-opencode-session"),E.delete("x-opencode-session-id"),E.delete("x-opencode-parent-session-id"),E.delete(h1),E.delete(G4);let d$=k3(E),G0=await C4(D,B),P$=z0?t9.previousFor(z0):null,L$=P$?.messageId??null,h0,z$=!1,X4=null,q$=null,d4,k1;if(G0&&typeof G0==="string"){let l=$0();try{let U0=JSON.parse(G0);if(typeof U0.model==="string")k1=U0.model}catch{}v?.mark("model_parse_for_identity",{route:d,ms:A0($0()-l),bodyBytes:G0.length})}let p0=await P0(g,B?.signal??void 0,void 0,k1,g==="main"?"last-main":"serve");if(x=p0.accessToken,g==="main"&&V0?.providerAccountUuid&&p0.accountIdentity!==V0.providerAccountUuid)throw Error("Main account identity changed after request routing");S=p0.scopedAttempt;let M=$0(),i=J1(p0.accountIdentity);v?.mark("resolve_claude_code_identity",{route:d,ms:A0($0()-M),hasAccountUuid:Boolean(i.accountUuid)});let r=typeof G0==="string"?G0.length:void 0;if(G0&&typeof G0==="string"){let l=$0(),U0=(()=>{if(!VZ())return!1;try{return h7(JSON.parse(G0).model)}catch{return!1}})(),Z$=!d0&&E4(),v1=F4(),NJ=j0?.plan.downgraded&&j0.plan.standbyCacheAnchor?.oauthAccountId===g?j0.plan.standbyCacheAnchor:void 0;try{G0=await H9(G0,{onToolNameMap:(n0)=>{d4=n0},cache1hEnabled:Z$,cache1hMode:v1,fastModeEnabled:U0,identity:i,sessionId:z0||void 0,thinkingPrefixMismatchBehavior:cG(await F()),midConversationEffortEnabled:!0,turnEndNoteEnabled:!0,turnEndNote:(await F())?.turnEndNote,midConversationEffortPlan:y,midConversationEffortResolvedPlan:u0,hybridStandbyAnchor:NJ,serverSideFallbackEnabled:m9==="server",laneStart:Y0,billingLineage:c0,cacheDiagnosticsPreviousMessageId:L$,perf:(n0,K1)=>{if(v?.mark(`rewrite_body_${n0}`,{route:d,...K1}),n0==="cache_strategy"&&K1?.standbyBridgeApplied===!0&&j0&&!j0.standbyBridgeLogged)j0.standbyBridgeLogged=!0,h.info("fable-fallback","restored standby Opus cache bridge",{session:j0.plan.sessionId,distanceBlocks:K1?.standbyDistanceBlocks})}})}catch(n0){if(n0 instanceof E0)return s7(n0);if(n0 instanceof u7)return a7(n0);throw n0}if(j0?.plan.downgraded&&Z$&&v1==="hybrid"){let n0=N7(G0);j0.opusCacheAnchor=n0?{...n0,oauthAccountId:g}:void 0}let aZ=$0();try{let n0=JSON.parse(G0);m1(E,x,{body:n0,identity:i,requestClass:d$});let K1=n0.diagnostics,tZ=K1&&typeof K1==="object"&&!Array.isArray(K1)&&K1.previous_message_id===L$?L$:void 0;if(tZ!==void 0&&E.get("anthropic-beta")?.split(",").map((t8)=>t8.trim()).includes(V4))h0={sessionId:z0??"session-unknown",previousMessageId:tZ,...P$?{previousMessageReceivedAt:P$.receivedAt}:{},isSubagent:d0,ttlSent:s4(n0)};z$=n0.stream===!0,v?.mark("set_oauth_headers_body_parse",{route:d,ms:A0($0()-aZ),bodyBytes:G0.length,parsed:!0})}catch{m1(E,x,{identity:i,requestClass:d$}),v?.mark("set_oauth_headers_body_parse",{route:d,ms:A0($0()-aZ),bodyBytes:G0.length,parsed:!1})}if(U0)N9(E);v?.mark("rewrite_body",{route:d,ms:A0($0()-l),originalBytes:r,rewrittenBytes:G0.length,cacheEnabled:!d0&&E4(),cacheMode:F4(),fastModeEnabled:U0,subagent:d0})}let K0=await e9(E),p=Q4(D);if(j0)j0.oauthAccountId=g;if(typeof G0==="string"&&E4()&&F4()==="hybrid"){let l=await F();if(!d0||uG(l)){let U0=$0(),Z$=t1.track({sessionId:z0,url:p.url?.toString()??p.input.toString(),headers:E,bodyText:G0,storage:l,cacheMode:"hybrid",oauthAccountId:g,isSubagent:d0});v?.mark("cachekeep_track",{session:z0,ms:A0($0()-U0),tracked:Z$.tracked,reason:Z$.tracked?void 0:Z$.reason,bodyBytes:G0.length})}}let e=p0,i0,G$=async(l)=>{await L(I),B?.signal?.throwIfAborted();let U0=await P0(g,B?.signal??void 0,l,k1,g==="main"?"last-main":"serve");if(await L(I),B?.signal?.throwIfAborted(),U0.accountIdentity!==e.accountIdentity||Boolean(U0.scopedAttempt)!==Boolean(e.scopedAttempt))throw Error("Native credential authority changed during the request");if(i0&&(!U0.scopedAttempt||U0.scopedAttempt.credentialId!==i0.credentialId||U0.scopedAttempt.accountIdentity!==i0.accountIdentity||U0.scopedAttempt.recordVersion<=i0.recordVersion))throw Error("Native vault retry has no strict newer same-account receipt");return U0},Q$=!1,t0=S,T0=async()=>{Q$=!0,p0=await G$(),t0=p0.scopedAttempt,E.set("authorization",`Bearer ${p0.accessToken}`),C0={...C0,accessToken:p0.accessToken,anthropicAccountUuid:F$(p0.accountIdentity),localSubject:p0.localSubject,scopedAttempt:p0.scopedAttempt};let l=E9([p0.accessToken],z$?"event-stream":"http");try{let U0=(v1,NJ)=>fetch(p.input,{...B,body:v1,headers:NJ,...lJ()&&{tls:{rejectUnauthorized:!1}}}),Z$=l.redactResponse(typeof G0==="string"?await EW({url:p.url?.toString()??S4(p.input),body:G0,headers:E,latch:H,send:U0}):await U0(G0,E));if(typeof G0==="string")X4=await S9({affinity:z0,route:d,status:Z$.status,bodyText:G0,url:p.url?.toString()??S4(p.input),method:P1(D,B),headers:E,tag:Y0?"start":void 0});return Z$}catch(U0){let Z$=l.redactError(U0);if(l.dispose(),typeof G0==="string")await S9({affinity:z0,route:d,error:d7,bodyText:G0,url:p.url?.toString()??S4(p.input),method:P1(D,B),headers:E,tag:Y0?"start":void 0});throw Z$}},K$=await F(),e0;try{e0=await T.getRelayConfig()}catch(l){if(l instanceof aG&&l.code==="relay-inconsistent")return DZ(l.message);throw l}let LJ=g==="main"?void 0:K$?.accounts.find((l)=>l.id===g&&B0(l)),i4=IG(LJ,A),C0={accountId:g,accessToken:x,authLineageId:A,anthropicAccountUuid:F$(S?.accountIdentity)??(g==="main"?V0?.providerAccountUuid:F$(i.accountUuid)??F$(i4)),localSubject:p0.localSubject,scopedAttempt:p0.scopedAttempt,...g==="main"&&V0?{mainQuotaIdentity:V0}:{}},n4=$0(),R$,H0=!1,l0=M0,g0=()=>TW({config:e0,input:p.input,init:B,headers:E,body:G0,fallback:T0,affinity:z0,optimisticResponse:e0?.transport==="websocket",authorizeAttempt:async()=>{let l=await G$(),U0=l.scopedAttempt;p0=l,C0={...C0,accessToken:l.accessToken,anthropicAccountUuid:F$(l.accountIdentity),localSubject:l.localSubject,scopedAttempt:U0};let Z$=new Headers(E);return Z$.set("authorization",`Bearer ${l.accessToken}`),{headers:Z$,errorSecrets:[l.accessToken],onUpstreamStatus:(v1)=>{if(v1!==401||!U0)return;if(R$=U0,H0)l0(U0,"relay_status_field")}}},onResponseHeaders:(l)=>{AZ(l,C0),I1.commit(c0,HJ(l))},onDumpCreated:(l)=>{q$=l},dumpTag:Y0?"start":void 0}),D0=await g0();if(!Q$&&R$&&D0.status===401&&typeof G0==="string"&&(P1(D,B)??"").toUpperCase()==="POST"&&!B?.signal?.aborted){let l;try{l=await L1(R$,"model-relay",B?.signal??void 0)}catch{}if(l)await D0.body?.cancel().catch(()=>{}),h.info("claustrum","retrying after scoped credential rotation",{accountId:g,previousVersion:R$.recordVersion,newVersion:l.recordVersion,transport:"relay"}),i0=R$,R$=void 0,D0=await g0()}if(Q$&&t0&&D0.status===401&&typeof G0==="string"&&(P1(D,B)??"").toUpperCase()==="POST"&&!B?.signal?.aborted){let l;try{l=await L1(t0,"model",B?.signal??void 0)}catch{}if(l)await D0.body?.cancel().catch(()=>{}),h.info("claustrum","retrying after scoped credential rotation",{accountId:g,previousVersion:t0.recordVersion,newVersion:l.recordVersion,transport:"direct"}),i0=t0,D0=await T0()}if(D0.status===401&&!p0.scopedAttempt&&typeof G0==="string"&&(P1(D,B)??"").toUpperCase()==="POST"&&!B?.signal?.aborted){let l=p0.accessToken,U0;try{U0=await G$(l)}catch(Z$){j1.set(D0,Z$)}if(U0&&U0.accessToken!==l)await D0.body?.cancel().catch(()=>{}),D0=Q$?await T0():await g0()}if(v?.mark("send_headers_received",{route:d,ms:A0($0()-n4),status:D0.status,relayConfigured:e0!=null,totalSendWithAccessMs:A0($0()-n)}),Q$)AZ(D0.headers,C0),I1.commit(c0,HJ(D0.headers));if(IZ(D0,{source:Y0?"start":"turn",toolNameMap:d4,accountId:g,synthetic:Y0,...K0,requestedModel:_0(G0),request:h0,trackSessionId:z0??void 0,dump:Q$?X4:q$,status:D0.status,streaming:z$}),Q$&&t0&&D0.status===401)await l0(t0,"direct");if(H0=!0,!Q$&&R$)await l0(R$,"relay_status_field");if(D0.status===401)await r7(D0,B?.signal);if(D0.ok)u1.publish(async()=>{if(C0.scopedAttempt)await T.vault.publish(C0.scopedAttempt,{lastUsed:Date.now()});else if(C0.localSubject)await T.publishLocal(C0.localSubject,{lastUsed:Date.now()})});return D0}async function q0(D,B){if(!D)return!1;try{return await k.refreshMain(B?.quotaKey??H$,D,B?.generation),v$(D,B)}catch{return!1}}async function V$(D,B={}){let x=r$(D),v=await N1(!1,x,B.modelId,"admission");if(D=await R(K),x){if(D&&v.size)D={...D,accounts:D.accounts.filter((A)=>!v.has(A.id)||a$(void 0,D,A.id,B.modelId))}}let d=await n9.getUsableFallbackAccounts(D,{modelId:B.modelId}),t=new Map(d.map((A)=>[A.id,A])),g=[];for(let A of D?.accounts??[]){if(D&&B0(A)){if(b0(D)){let Y0=t.get(A.id);if(Y0)g.push(Y0);continue}if(T4(D)!=="local")continue;let j0=t.get(A.id);if(j0)g.push(j0);else if(A.access&&(!A.expires||A.expires>Date.now())&&!s$(A.lastRefreshError)&&!C1(A.lastRefreshError,A.id,Date.now(),t$(A.refresh))&&D?.quota?.failClosedOnUnknownQuota!==!0&&!_Z(Q0(A)))g.push(A);continue}if(B.includeApiRoutes===!0&&c1(A)&&y0(A)&&KZ(A.baseURL))g.push(A)}if(!r$(D))return g;return g.filter((A)=>B0(A)?a$(Q0(A),D,A.id,B.modelId):!0)}async function jJ(D){let B=D.mainQuotaIdentity?.quotaKey,x=k.getMain(B),v=x?.quota;if(!A1(x?.quota,D.storage,Date.now(),D.requestedModelId))try{v=await k.refreshMain(B,D.mainAccessToken,D.mainQuotaIdentity?.generation,"admission")}catch{}let d=await n9.getUsableFallbackAccounts(D.storage,{modelId:D.requestedModelId}),t=await R(K)??D.storage,g=[],A=b0(t);if(A){let S=t?.claustrum?.primaryAccount;if(S!==void 0&&y0(S)&&!t?.claustrum?.disabledAccountIdentities?.includes(S.accountId))g.push({id:Y$,access:"",quota:v,identity:S?{kind:"known",accountId:S.accountId}:{kind:"unknown"},order:0,scoped:!0})}else if((D.mainAccessToken||D.mainPolicyDenied)&&!s$(t?.refresh?.mainLastRefreshError))g.push({id:Y$,access:D.mainAccessToken,quota:v,identity:B?{kind:"known",accountId:B}:{kind:"unknown"},order:0});if(A)for(let[S,I]of(t?.accounts??[]).entries()){if(!y0(I)||!B0(I))continue;if(I.claustrumScopedCredentialId){let n=Q0(I);if(!A1(n,t,Date.now(),D.requestedModelId))try{n=await k.refreshFallback(I.id,"",I)}catch{}g.push({id:I.id,access:"",quota:n,identity:{kind:"known",accountId:I.id},order:S+1,account:I,scoped:!0})}}else{let S=new Map(d.map((I)=>[I.id,I]));for(let[I,n]of(t?.accounts??[]).entries()){if(!y0(n)||!B0(n))continue;let X0=S.get(n.id)??n;if(s$(X0.lastRefreshError))continue;let F=Q0(X0);if(!A1(F,t,Date.now(),D.requestedModelId))try{F=await k.refreshFallback(X0.id,X0.access??"",X0)}catch{}g.push({id:X0.id,access:X0.access??"",quota:F,identity:{kind:"known",accountId:X0.id},order:I+1,account:X0})}}let j0=new Set(d.map((S)=>S.id)),Y0=new Set(g.flatMap((S)=>{let I=S.id===Y$?t?.refresh?.mainLastRefreshError:S.account?.lastRefreshError,n=!S.scoped,X0=S.identity.kind==="known"?S.identity.accountId:void 0;if(n&&s$(I))return[];if(n&&C1(I,X0,Date.now(),S.id===Y$?D.mainRefreshToken?t$(D.mainRefreshToken):void 0:S.account?.refresh?t$(S.account.refresh):void 0)&&(S.id===Y$||!j0.has(S.id)))return[];if(A1(S.quota,t,Date.now(),D.requestedModelId)&&tJ({quota:S.quota,modelId:D.requestedModelId}).action==="migrate")return[];if(r$(t)&&!a$(S.quota,t,S.id===Y$?void 0:S.id,D.requestedModelId))return[];return[S.id]})),V0=g.flatMap((S)=>{let I=S.id===Y$?t?.refresh?.mainLastRefreshError:S.account?.lastRefreshError,n=!S.scoped,X0=S.identity.kind==="known"?S.identity.accountId:void 0;if(n&&s$(I)||n&&C1(I,X0,Date.now(),S.id===Y$?D.mainRefreshToken?t$(D.mainRefreshToken):void 0:S.account?.refresh?t$(S.account.refresh):void 0)&&(S.id===Y$||!j0.has(S.id)))return[];let F=S.id===Y$?void 0:S.id,E=_Z(S.quota)?S.quota:void 0,z0=E?{kind:"known",quota:E}:{kind:"unknown"};return(!r$(t)||a$(z0.kind==="known"?z0.quota:void 0,t,F,D.requestedModelId))&&p1(z0.kind==="known"?z0.quota:void 0,t)&&(z0.kind==="unknown"||I9(z0.quota,D.requestedModelId)&&(S.id===Y$||j0.has(S.id)||Boolean(S.scoped)))?[{accountId:S.id,quota:z0,order:S.order}]:[]});return{storage:t,allRoutes:g,candidates:V0,retainAccountIds:Y0}}let h$=new WeakMap;async function z1(D,B,x,v,d,t,g){if(!x.length)return d??null;let A=g?.returnLastOnExhausted??!0,j0=d??null,Y0=!1,V0=async()=>{if(Y0)return;Y0=!0,await d?.body?.cancel().catch(()=>{})};for(let[S,I]of x.entries()){let n;if(c1(I))await V0(),n=await D$(D,B,I,t,`api_fallback_${S}`,v,g?.fableRequest,g?.mainAccessToken,g?.mainQuotaIdentity);else if(b0(v)&&I.claustrumScopedCredentialId){let F;try{F=await P0(I.id,B?.signal??void 0,void 0,_0(await C4(D,B)))}catch(z0){if(z0 instanceof Z1)continue;throw z0}let E=F.scopedAttempt;if(!E)throw Error("Native vault fallback credential is unavailable");await V0(),n=await U$(D,B,E.accessToken,t,`fallback_${S}`,v,I.id,I.authLineageId,g?.fableRequest,g?.laneStartRequest,void 0,E)}else if(T4(v)==="local"&&I.access)await V0(),n=await U$(D,B,I.access,t,`fallback_${S}`,v,I.id,I.authLineageId,g?.fableRequest,g?.laneStartRequest);else continue;j0=n;let X0=NZ(n,v);if(!X0){let F=await N0(n,t);n=F.response,j0=n,X0=F.rateLimited}if(!X0){if(h$.set(n,c1(I)?"api":"oauth"),await g?.onSuccess?.(I),B0(I)&&k0(v)&&k.shouldRefreshOnRequestCount(l4)){if(b0(v)||I.access)k.refreshFallback(I.id,b0(v)?"":I.access??"",I).then(()=>g?.onSuccess?.(I)).catch(()=>{})}return n}if(S<x.length-1||!A)await n.body?.cancel().catch(()=>{})}return A?j0:null}async function a8(D,B,x,v,d,t,g,A,j0,Y0,V0=!1,S){if(!J0(D,B?.body))return x;let I=$0(),n=t??await R(K);if(d?.mark("fallback_load_storage",{ms:A0($0()-I),cached:!!t}),!(n?.accounts??[]).some((u0)=>y0(u0)&&(B0(u0)||c1(u0)&&KZ(u0.baseURL))))return x;let F=x,E=NZ(F,n),z0=v0(F,!1);if(!E){let u0=await N0(F,d);F=u0.response,E=u0.rateLimited,z0=v0(F,u0.rateLimited)}if(!E)return F;let d0=!1;if(v)d0=v.some(c1);else if(z0)d0=await q0(g,S);let y=v;if(!y){let u0=$0();y=await V$(n,{includeApiRoutes:d0,modelId:j0}),d?.mark("fallback_get_accounts",{ms:A0($0()-u0),accounts:y.length})}if(r$(n)){let u0=y.length;if(y=y.filter((A$)=>B0(A$)?a$(Q0(A$),n,A$.id,j0):!0),y.length<u0)m$("[killswitch] filtered fallbacks",{before:u0,after:y.length})}return await z1(D,B,y,n,F,d,{onSuccess:A,mainAccessToken:g,mainQuotaIdentity:S,fableRequest:Y0,laneStartRequest:V0})??F}return{apiKey:"",async fetch(D,B){if(D instanceof Request&&B?.signal===void 0)B={...B,signal:D.signal};let x=U4(D,B),v=x.get(Y9)==="1";x.delete(Y9),B={...B,headers:x};let d=x.get("x-session-affinity")||x.get("x-opencode-session"),t=_0(B?.body),g=Boolean(d&&t&&!f0(x)&&Y1.resetForModelChange(d,t));if(g&&d){for(let M of E$.keys())if(M.startsWith(`${d}\x00`))E$.delete(M);N$.delete(d)}let A=Y1.plan(d,B?.body),j0=m9==="server"&&J9(A?.effectiveModel??t)?A?.effectiveModel??t:void 0,Y0=A?{plan:A}:void 0;if(A?.downgraded)B={...B,body:A.bodyText};let V0=B?.body,S=cW({bodyBytes:typeof V0==="string"?V0.length:void 0}),I=(M)=>{let i=l$.get(M);return B7(M,{toolNameMap:i?.toolNameMap,perf:(r,K0)=>S.mark(r,K0),laneStart:v,laneStartOAuthServed:h$.get(M)!=="api",...i?i.streaming?{onMessageStart:(r)=>MZ(M,r,!1),onMessageDelta:(r)=>R8(M,r),onStreamEnd:()=>i.dumpWrite}:{onMessageResponse:(r)=>MZ(M,r),onStreamEnd:()=>i.dumpWrite,responseMode:"json"}:{},contentFilterModel:A?.requestedModel,...!A?.downgraded&&A?{onContentFilter:(r)=>{if(!Y0?.oauthAccountId)return h.debug("fable-fallback","content filter recovery unavailable for non-OAuth route",{session:A.sessionId}),!1;let K0=Y1.activate(A,Y0.oauthAccountId);E$.delete(A.recoveryKey),E$.set(A.recoveryKey,nW(A.requestedModel,K0));while(E$.size>128){let p=E$.keys().next().value;if(p)E$.delete(p);else break}k$.delete(A.recoveryKey),h.info("fable-fallback","content filter detected; switching session to Opus 4.8",{session:A.sessionId,requestedModel:A.requestedModel,completedToolUse:r?.completedToolUse===!0,remaining:K0}),J4({sessionId:A.sessionId,mode:"opus",remaining:K0,requestedModelId:A.requestedModel},E,F)}}:{},...A&&Y0?{onComplete:(r)=>{if(!A.downgraded){Y1.completeSource(A,!Y0.serverFallback);return}let K0=Y1.complete(A,Y0.opusCacheAnchor);if(!K0.counted)return;let p=E$.get(A.recoveryKey);if(p)E$.delete(A.recoveryKey),X$.delete(A.sessionId),pZ(A.sessionId,p);if(h.info("fable-fallback","Opus 4.8 turn completed",{session:A.sessionId,requestedModel:A.requestedModel,finishReason:r,remaining:K0.remaining}),J4({sessionId:A.sessionId,mode:"opus",remaining:K0.remaining,requestedModelId:A.requestedModel},E,F),K0.remaining===0)J4({sessionId:A.sessionId,mode:"fable",remaining:0,requestedModelId:A.requestedModel},E,F,oW(A.requestedModel))}}:{},...j0?{serverSideFallbackModel:j0,...A?{onServerSideFallbackOutcome:(r)=>{if(Y0)Y0.serverFallback=r.fallback;l8(A,r,E,F)}}:{}}:{}})},n=$0(),X0=A?.effectiveModel??_0(await C4(D,B)),F=await N(X0,B?.signal??void 0,!0);if(S.mark("get_auth",{ms:A0($0()-n),authType:F.type,hasAccess:Boolean(F.access)}),F.type!=="oauth"){let M=Q4(D),i=U4(D,B);F7(i);let r=await C4(D,B);if(typeof r==="string")try{let p=JSON.parse(r);if(UW(p))r=JSON.stringify(p)}catch{}let K0=await fetch(M.input,{...B,body:r,headers:i});return S.done("non_oauth_passthrough",{status:K0.status}),K0}let E=await R(),z0=F$(F.nativeAccountIdentity),d0=F.nativeScopedAttempt,y;if(F.access){let M=await s1(F.access,_0(B?.body),z0,d0?.recordVersion);if(M.stale)throw Error("Main OAuth identity changed while resolving request credentials");if(y={...M,routingLineage:F.nativeRoutingLineage},z0)$4=F.access,D1=M.providerAccountUuid}else if((F.modelDenied||F.credentialUnavailable||F.deferred)&&z0)await BZ("",z0,z0),y={quotaKey:z0,providerAccountUuid:z0,generation:k.getMainQuotaIdentityGeneration(),routingLineage:F.nativeRoutingLineage,stale:!1,state:b0(E)?"on-cold":"na"};let u0=$0();S.mark("load_storage",{ms:A0($0()-u0)}),k.updateStorage(E),k.seedMainFromStorage(E,H$),k.seedFallbacksFromAccounts((E?.accounts??[]).filter(B0));let A$=d?S$.get(d):void 0;if(g||!A||m9==="server"&&A$?.requestedModelId&&b$(A$.requestedModelId)!==b$(A.requestedModel))u8(d,E,F);let J$=J0(D,B?.body),c0=_0(B?.body)??X0,d$=j$(y,E),G0=L0("main",y?.routingLineage,z0,E),P$=F.deferred?QZ(d$&&E?{...E,accounts:E?.accounts??[],quota:{...E?.quota,mainQuota:d$.quota}}:E,z0,G0?.lineage===y?.routingLineage&&G0?.generalExhausted===!0):void 0;if(P$){let M=J$?await V$(E,{includeApiRoutes:v$(void 0,y),modelId:c0}):[],i=await z1(D,B,M,E,void 0,S,{onSuccess:(r)=>h0(r.id,"fallback"),mainQuotaIdentity:y,fableRequest:Y0,laneStartRequest:v});if(i)return I(i);return new Response(JSON.stringify({type:"error",error:{type:"rate_limit_error",message:P$.message}}),{status:429,headers:{"content-type":"application/json","retry-after":String(P$.retryAfter)}})}let L$=()=>{let M=b7(k.getMain(y?.quotaKey)?.quota,(E?.accounts??[]).filter(B0),Date.now(),X0);return new Response(JSON.stringify({type:"error",error:{type:"rate_limit_error",message:"No enabled OAuth route can serve the requested model under current quota policy."}}),{status:429,headers:{"content-type":"application/json","retry-after":String(M)}})};if(J$)l4++;if(J$&&F.access&&(!F.expires||F.expires>Date.now()))y8(E,F.access,y);async function h0(M,i){let r=E,K0=!1;if((E?.accounts??[]).some((p)=>B0(p)&&p.quota))try{let p=await R(K);if(p)r=p;else K0=!0}catch{K0=!0}C$(r,{activeId:M,route:i,mainAccessToken:F.access,skipFallbackQuotaSeed:K0})}let z$;if(J$&&d&&e$(E)==="sticky-balanced"){let M=A?.effectiveModel??c0,i=AW(M),r=t1.trackedOAuthRoute(d),K0=A?.cacheAccountId??(r?r.oauthAccountId??Y$:void 0),p=!1;try{let e=await jJ({storage:E,mainAccessToken:F.access,mainRefreshToken:F.refresh,mainPolicyDenied:F.modelDenied||F.credentialUnavailable,requestedModelId:M,mainQuotaIdentity:y}),i0=async(K$)=>{let e0=await UZ();return e0.router.resolve({sessionId:d,family:i,modelId:M,affinityModelId:t,candidates:e.candidates,retainAccountIds:e.retainAccountIds,storage:e.storage,inputBytes:typeof B?.body==="string"?Buffer.byteLength(B.body):1,preferredAccountId:K0,excludeAccountIds:K$,...e0.accountIdentities&&{accountIdentities:e0.accountIdentities}})},G$=s$(e.storage?.refresh?.mainLastRefreshError),Q$=e.allRoutes.length===0&&!G$||e.allRoutes.some((K$)=>!K$.quota||!A1(K$.quota,e.storage,Date.now(),M)),t0=await i0();if(!t0&&Q$){if(F.modelDenied)return L$();throw Error("Sticky-balanced routing is waiting for current OAuth quota snapshots")}if(!t0){if(F.modelDenied)return L$();if(b0(E))throw new OZ;let K$=SG({mainRefreshError:e.storage?.refresh?.mainLastRefreshError,fallbackReauthLabels:bG(e.storage),routeQuotas:e.allRoutes.flatMap((e0)=>e0.quota?[e0.quota]:[]),modelId:M});return S.done("return_sticky_no_route",{status:K$.status}),K$}let T0=e.allRoutes.find((K$)=>K$.id===t0?.accountId);if(t0&&T0){if(p=!0,A?.downgraded&&Y1.bindRecoveryAccount(A,T0.id))h.info("fable-fallback","rebound recovery to migrated sticky account",{accountId:T0.id});let K$=async(H0)=>{if(H0.scoped){let g0=(await P0(H0.id,B?.signal??void 0,void 0,M)).scopedAttempt;if(!g0)throw Error("Native vault sticky credential is unavailable");return U$(D,B,g0.accessToken,S,`sticky:${H0.id}`,e.storage,H0.id,H0.account?.authLineageId,Y0,v,H0.id===Y$?y:void 0,g0)}return U$(D,B,H0.access??"",S,`sticky:${H0.id}`,e.storage,H0.id,H0.account?.authLineageId,Y0,v,H0.id===Y$?y:void 0)},e0=async(H0,l0,g0=!0)=>{return await h0(H0.id,"sticky-balanced"),S.done("return_sticky_balanced",{status:l0.status,accountId:H0.id,created:t0?.created,migrated:t0?.migrated}),I(l0)},LJ=async(H0)=>{let l0=H0,g0=NZ(H0,e.storage),D0=!1;if(!g0){let l=await N0(H0,S);l0=l.response,D0=l.rateLimited,g0=l.rateLimited}return{response:l0,routeFailure:g0,streamingRateLimit:D0}},i4=A1(T0.quota,e.storage,Date.now(),M)?tJ({quota:T0.quota,modelId:M}):void 0;if(i4?.action==="hold")return e0(T0,await BJ(new Response(JSON.stringify({type:"error",error:{type:"rate_limit_error",message:"Sticky OAuth account five-hour quota resets shortly; retaining session affinity."}}),{status:429,headers:{"content-type":"application/json"}}),d,i4.retryAfterSeconds,!1,l$),!1);let C0=await LJ(await K$(T0)),n4=!1;if(!C0.routeFailure)return e0(T0,C0.response);if(C0.response.status===401){let H0=j1.get(C0.response);if(H0){let l0=await R(K),g0=T0.id,D0=T0.id===Y$?l0?.refresh?.mainLastRefreshError:l0?.accounts.find((l)=>l.id===g0&&B0(l))?.lastRefreshError;if(!s$(D0))throw H0}n4=!0}let R$=C0.response.status===403||n4;if(C0.response.status===429||C0.streamingRateLimit){let H0;try{H0=T0.id===Y$?await k.refreshMain(y?.quotaKey,T0.access??"",y?.generation):await k.refreshFallback(T0.id,T0.access??"",T0.account)}catch{H0=void 0}let l0=tJ({quota:H0,modelId:M});if(S.mark("sticky_quota_failure",{accountId:T0.id,action:l0.action,reason:l0.reason}),l0.action==="hold")return e0(T0,await BJ(C0.response,d,l0.retryAfterSeconds,C0.streamingRateLimit,l$));R$=l0.action==="migrate"}if(R$){await r7(C0.response,B?.signal);let H0=T0.id;if(e=await jJ({storage:e.storage,mainAccessToken:F.access,mainRefreshToken:F.refresh,mainPolicyDenied:F.modelDenied||F.credentialUnavailable,requestedModelId:M,mainQuotaIdentity:y}),e.candidates.filter((g0)=>g0.accountId!==H0).length>0){await C0.response.body?.cancel().catch(()=>{}),t0=await i0(new Set([H0]));let g0=e.allRoutes.find((D0)=>D0.id===t0?.accountId);if(t0&&g0){if(T0=g0,A?.downgraded)Y1.bindRecoveryAccount(A,T0.id);return e0(T0,await K$(T0))}}else if((C0.response.status===429||C0.streamingRateLimit)&&v$(F.access,y)){let g0=(await V$(e.storage,{includeApiRoutes:!0,modelId:M})).filter(c1);if(g0.length>0){let D0=await z1(D,B,g0,e.storage,C0.response,S,{onSuccess:(l)=>h0(l.id,"sticky-balanced"),mainAccessToken:F.access,mainQuotaIdentity:y,fableRequest:Y0,laneStartRequest:v});if(D0)return S.done("return_sticky_api_fallback",{status:D0.status}),I(D0)}}}return e0(T0,C0.response)}}catch(e){if(S.mark("sticky_balanced_error",{error:e instanceof Error?e.message:String(e)}),p||T1(e))throw e;let i0=e instanceof Error?e:Error(String(e));throw Object.assign(i0,{code:"ECONNRESET",syscall:"sticky-routing"}),i0}}if(J$&&e$(E)==="fallback-first")try{let M=$0();z$=await V$(E,{includeApiRoutes:v$(F.access,y),modelId:c0}),S.mark("fallback_first_get_accounts",{ms:A0($0()-M),accounts:z$.length});let i=await z1(D,B,z$,E,void 0,S,{returnLastOnExhausted:!1,mainAccessToken:F.access,mainQuotaIdentity:y,onSuccess:(r)=>h0(r.id,"fallback-first"),fableRequest:Y0,laneStartRequest:v});if(i)return S.done("return_fallback_first",{status:i.status}),I(i);z$=void 0}catch(M){if(S.mark("fallback_first_error",{error:M instanceof Error?M.message:String(M)}),T1(M))throw M}if(F.deferred){if(Object.assign(F,await N(X0,B?.signal??void 0)),F.access){let M=await s1(F.access,X0,F.nativeAccountIdentity,F.nativeScopedAttempt?.recordVersion);if(M.stale)throw Error("Main OAuth identity changed while resolving request credentials");y={...M,routingLineage:F.nativeRoutingLineage},$4=F.access,D1=M.providerAccountUuid}}if(!F.modelDenied&&(!F.access||!F.expires||F.expires<Date.now())){if(b0(E))try{let p=(await P0("main",B?.signal??void 0,void 0,X0)).scopedAttempt;if(!p)throw Error("Native vault main credential is unavailable");$4=p.accessToken;let e=await U$(D,B,p.accessToken,S,"main",E,"main",void 0,Y0,v,y,p);return I(e)}catch(K0){let p=J$?await V$(E,{modelId:c0}):[],e=await z1(D,B,p,E,void 0,S,{onSuccess:(i0)=>h0(i0.id,"fallback"),mainAccessToken:F.access,mainQuotaIdentity:y,fableRequest:Y0,laneStartRequest:v});if(e)return I(e);if(K0 instanceof O$)throw new OZ;throw K0}if(F.credentialFailure?.tokenRefreshFailed)throw F.credentialFailure;let M=await R(),i=M?.refresh?.mainLastRefreshError;if(i&&C1(i,F.nativeAccountIdentity??e1??M?.mainAccountId,Date.now(),F.refresh?t$(F.refresh):void 0))throw m$("[refresh] opencode main oauth request skipped backoff",{nextRetryAt:i.nextRetryAt,retryCount:i.retryCount,expiresInMs:F.expires?F.expires-Date.now():void 0}),Error(xG(i,Date.now()));m$("[refresh] opencode main oauth refresh required for request",{hasAccess:Boolean(F.access),expiresInMs:F.expires?F.expires-Date.now():void 0,expiredAgoMs:F.expires&&F.expires<Date.now()?Date.now()-F.expires:void 0});let r=$0();F.access=await C(void 0,X0,B?.signal??void 0),S.mark("refresh_main_access",{ms:A0($0()-r)})}if(!F.access&&!F.modelDenied)throw S.done("missing_access_error"),Error("OAuth access token is missing after refresh");function X4(){if(E?.quota?.showToasts!==!0)return;let M=k.getMain(y?.quotaKey);if(!M)return;let i=(E?.accounts??[]).filter((p)=>p.enabled!==!1&&B0(p)).map((p)=>({...p,quota:k.getFallback(p.id,p)?.quota??p.quota})),r=p1(M.quota,E),K0;if(r)K0="main";else K0=i.find((p)=>p1(p.quota,E))?.id??"main";s8(M.quota,i,K0)}if(J$&&k0(E))try{let M=$0(),i=j$(y,E),r=i?.quota;if(!r)r=await k.refreshMain(y?.quotaKey,F.access,y?.generation,"admission"),i=j$(y,E),X4();else if(k.needsRefresh(l4,c0))if(r1(r)||M9(r,c0))r=await k.refreshMain(y?.quotaKey,F.access,y?.generation),i=j$(y,E);else k.refreshMain(y?.quotaKey,F.access,y?.generation).then(()=>{f1().catch(()=>{}),X4()}).catch(()=>{});C$(E,{activeId:"main",route:"main",mainAccessToken:F.access});let K0=p1(r,E)&&I9(r,c0);if(S.mark("main_quota_for_routing",{ms:A0($0()-M),passes:K0,model:c0,modelScopedExhausted:M9(r,c0)}),!K0){let p=$0();z$=await V$(E,{includeApiRoutes:Boolean(i&&i.refreshAfter>Date.now()&&r1(i.quota)),modelId:c0}),S.mark("preselect_fallback_accounts",{ms:A0($0()-p),accounts:z$.length});let e=await z1(D,B,z$,E,void 0,S,{onSuccess:(i0)=>h0(i0.id,"fallback"),mainAccessToken:F.access,mainQuotaIdentity:y,fableRequest:Y0,laneStartRequest:v});if(e)return S.done("return_preselected_fallback",{status:e.status}),I(e)}}catch(M){if(S.mark("main_quota_for_routing_error",{error:M instanceof Error?M.message:String(M)}),T1(M))throw M}let q$=j$(y,E)?.quota;if(E?.quota?.failClosedOnUnknownQuota&&(q$===void 0||F.access.startsWith("sk-ant-oat")&&y?.providerAccountUuid===void 0)&&k.isBackedOff()){let M=k.getLastApiError(),i=M?I7(M,Date.now()):"Quota API unavailable";return m$("[quota] blocked: quota API backed off (failClosed)",{nextRetryAt:M?.nextRetryAt,retryCount:M?.retryCount}),new Response(JSON.stringify({type:"error",error:{type:"rate_limit_error",message:i}}),{status:429,headers:{"content-type":"application/json","retry-after":String(M?.nextRetryAt?Math.max(1,Math.ceil((M.nextRetryAt-Date.now())/1000)):60)}})}if(r$(E)){if(k.needsRefresh(l4,c0))try{await Promise.all([k.refreshMain(y?.quotaKey,F.access,y?.generation),N1(!1,!0,void 0,"admission")])}catch(i){m$("[quota] killswitch refresh failed",{error:i instanceof Error?i.message:String(i),backedOff:k.isBackedOff()})}q$=j$(y,E)?.quota}if(r$(E)&&!a$(q$,E,void 0,c0)){let i=J0(D,B?.body)?await V$(E,{includeApiRoutes:v$(F.access),modelId:c0}):[];if(i.length>0){m$("[route] skipping main (killswitch), trying fallbacks");let G$=await z1(D,B,i,E,void 0,S,{onSuccess:(Q$)=>h0(Q$.id,"fallback"),mainAccessToken:F.access,mainQuotaIdentity:y,laneStartRequest:v});if(G$)return S.done("return_killswitch_fallback",{status:G$.status}),I(G$)}let r=Date.now(),K0=(E?.accounts??[]).filter((G$)=>y0(G$)&&B0(G$)).map((G$)=>({...G$,quota:Q0(G$)})),p=h3({mainQuota:q$,requestModelId:c0,storage:E}),e=b7(q$,K0,r,p.isScopedDriven?p.modelId:void 0),i0=v3({retryAfterSeconds:e,...p.isScopedDriven&&{modelName:p.modelName}});return new Response(JSON.stringify({type:"error",error:{type:"rate_limit_error",message:i0}}),{status:429,headers:{"content-type":"application/json","retry-after":String(e)}})}if(F.modelDenied){let M=L$(),i=J$?await V$(E,{modelId:X0}):[],r=await z1(D,B,i,E,void 0,S,{onSuccess:(p)=>h0(p.id,"fallback"),fableRequest:Y0,laneStartRequest:v,mainAccessToken:F.access,mainQuotaIdentity:y});if(r)return I(r);if(!(e$(E)!=="sticky-balanced"&&M9(q$,X0)&&p1(q$,E)&&a$(q$,E,void 0,X0)))return I(M);return I(await U$(D,B,"",S,"main",E,"main",void 0,Y0,v,y))}let d4=await U$(D,B,F.access,S,"main",E,"main",void 0,Y0,v,y,d0),k1=!1,p0=await a8(D,B,d4,z$,S,E,F.access,(M)=>{return k1=!0,h0(M.id,"fallback")},c0,Y0,v,y);if(!k1)await h0("main","main");return S.done("return_response",{status:p0.status}),I(p0)}}}return{}},get methods(){return[...sX(C9("opencode").tokenPath)?[x8]:[],{label:"Claude Pro/Max",type:"oauth",authorize:async()=>{if(await S1("opencode",process.env)!=="local")throw Error("Disconnect from the vault first.");if(await T.read(),process.env.OPENCODE_AUTH_CONTENT!==void 0)throw Error("Local login cannot be verified while OPENCODE_AUTH_CONTENT is set");let Z=await X("max");return{url:Z.url,instructions:"Paste the authorization code here:",method:"code",callback:async(G)=>{let W=await $Z(G,Z.verifier,Z.redirectUri,Z.state);if(W.type==="failed")return W;W$(),await T.loginOAuth({routeId:"main",replace:!0,credential:{access:W.access,refresh:W.refresh,expires:W.expires}});let z=aJ("anthropic");return{type:"success",access:z.access,refresh:z.refresh,expires:z.expires}}}}},{label:"Create an API Key",type:"oauth",authorize:async()=>{let Z=await w7("console");return{url:Z.url,instructions:"Paste the authorization code here:",method:"code",callback:async(G)=>{let W=await $Z(G,Z.verifier,Z.redirectUri,Z.state);if(W.type==="failed")return W;return{type:"success",key:(await fetch("https://api.anthropic.com/api/oauth/claude_cli/create_api_key",{method:"POST",headers:{"Content-Type":"application/json",authorization:`Bearer ${W.access}`}}).then((_)=>_.json())).raw_key}}}}},{provider:"anthropic",label:"Manually enter API Key",type:"api"}]}},dispose:b8,__primeManager:H1,__quotaManager:k,__cacheKeepManager:t1,__resolveMainQuotaIdentityForTest:s1,__resolveSidebarQuotaAccessForTest:hZ,__refreshSidebarQuotaForTest:f1,__mainProviderAccountUuidForTest:()=>D1,__fallbackRefreshReady:A8,get __scopedRuntime(){return y9(K,$.directory)},__notificationMessageIdBeforeAssistantForTest:L8,__trackDesktopNoticeMessageIdForTest:mZ,__isDesktopNoticeMessageForTest:cZ}},M6=W2;
43
+ export{G4 as a,HJ as b,DJ as c,h1 as d,E0 as e,A3 as f,Y9 as g,f3 as h,n3 as i,r3 as j,s3 as k,m1 as l,Q4 as m,H9 as n,B7 as o,M6 as p};
@@ -0,0 +1,2 @@
1
+ import{I as $}from"./index-20d6rmjj.js";var D=(f)=>f!==null&&typeof f==="object"&&!Array.isArray(f),F=(f)=>D(f)&&typeof f.sessionId==="string"&&f.sessionId.length>0,A=(f)=>{if(!F(f)||!D(f)||f.command!=="claude"||typeof f.sectionId!=="string"||typeof f.actionId!=="string")return!1;if(f.itemId!==void 0&&typeof f.itemId!=="string")return!1;if(f.confirmed!==void 0&&typeof f.confirmed!=="boolean")return!1;if(f.values!==void 0&&(!D(f.values)||!Object.values(f.values).every((q)=>q===null||typeof q==="string"||typeof q==="boolean"||typeof q==="number"&&Number.isFinite(q))))return!1;return!0};function B(f){return{"~standard":{version:1,vendor:"cortexkit-native",validate:(q)=>f(q)?{value:q}:{issues:[{message:"Invalid native menu payload"}]}}}}var Z=(f)=>D(f)&&f.command==="claude"&&D(f.menu)&&f.menu.command==="claude"&&typeof f.menu.title==="string"&&Array.isArray(f.menu.sections),L=(f)=>D(f)&&f.command==="claude"&&typeof f.ok==="boolean"&&typeof f.text==="string"&&(f.authorizationUrl===void 0||typeof f.authorizationUrl==="string")&&D(f.menu)&&Array.isArray(f.menu.sections),M={"~standard":{version:1,vendor:"cortexkit-native",validate:(f)=>({value:$(f)})}},P={id:"cortexkit-anthropic-native",methods:{open:{input:B(F),output:B(Z)},apply:{input:B(A),output:B(L)},sidebar:{input:B(F),output:M}},events:{opened:{schema:B((f)=>F(f)&&Z(f.payload))},notification:{schema:B((f)=>F(f)&&typeof f.message==="string"&&["info","warning","error"].includes(String(f.kind)))}}};async function U(f,q,Q){let W=new AbortController,J=(j)=>({sessionId:j,notify(H,K="info"){G.events.emit("notification",{sessionId:j,message:H,kind:K}).catch(()=>{})}}),G=await f.rpc.register(P,{open:(j)=>q.open(J(j.sessionId)),apply:(j)=>q.apply(j,J(j.sessionId)),sidebar:(j)=>Q.readSidebar(j.sessionId)}),X;try{X=await f.command.transform((j)=>j.add({name:"claude",description:"Native Claude accounts and settings",async execute(H){let K=await q.open(J(H.sessionID));await G.events.emit("opened",{sessionId:H.sessionID,payload:K})}}))}catch(j){throw await G.dispose(),j}let z=(async()=>{try{for await(let j of f.event.subscribe({signal:W.signal}))if(j.type==="session.deleted")Q.forgetSession(j.data.sessionID)}catch{}})(),Y=!1;return{async dispose(){if(Y)return;Y=!0,W.abort(),await Promise.all([G.dispose(),X.dispose(),z])}}}
2
+ export{P as t,U as u};