@cortexkit/opencode-anthropic-auth 2.4.5 → 2.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{y as N3}from"./index-m4dazzyf.js";import{A as X7,B as G7,C as w9,D as u9,E as c9,F as p9,G as Q7}from"./index-naff9h33.js";import{ia as l4,ja as kZ,ka as T3}from"./index-71temqvq.js";var o$=kZ((Bq,c4)=>{var i$={to($,Z){if(!Z)return`\x1B[${$+1}G`;return`\x1B[${Z+1};${$+1}H`},move($,Z){let J="";if($<0)J+=`\x1B[${-$}D`;else if($>0)J+=`\x1B[${$}C`;if(Z<0)J+=`\x1B[${-Z}A`;else if(Z>0)J+=`\x1B[${Z}B`;return J},up:($=1)=>`\x1B[${$}A`,down:($=1)=>`\x1B[${$}B`,forward:($=1)=>`\x1B[${$}C`,backward:($=1)=>`\x1B[${$}D`,nextLine:($=1)=>"\x1B[E".repeat($),prevLine:($=1)=>"\x1B[F".repeat($),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},TZ={up:($=1)=>"\x1B[S".repeat($),down:($=1)=>"\x1B[T".repeat($)},EZ={screen:"\x1B[2J",up:($=1)=>"\x1B[1J".repeat($),down:($=1)=>"\x1B[J".repeat($),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines($){let Z="";for(let J=0;J<$;J++)Z+=this.line+(J<$-1?i$.up():"");if($)Z+=i$.left;return Z}};c4.exports={cursor:i$,scroll:TZ,erase:EZ,beep:"\x07"}});import{stdin as NJ,stdout as LJ}from"node:process";import{createInterface as PJ}from"node:readline/promises";import{authorize as CJ,createNativeAccountRuntime as OJ,decideOpenCodeStateLayoutOnce as AJ,exchange as IJ,formatNativeAccountState as _J,generateRelayToken as RJ,getAccountStoragePath as SJ,isValidApiBaseURL as kJ,readNativeEnrollmentMode as TJ,resolveNativePoolPaths as EJ,WORKER_SCRIPT as bJ}from"@cortexkit/anthropic-auth-core";import{randomUUID as d6}from"node:crypto";import{constants as X3}from"node:fs";import{lstat as l6,mkdir as a6,open as s6}from"node:fs/promises";import{homedir as n6}from"node:os";import{isAbsolute as i6,join as G4}from"node:path";import{types as b$}from"node:util";import{anthropicAuthStateRoot as o6,createProviderErrorRedactor as Q4,createWindowsOwnerOnly as r6,ensureWindowsOwnerOnlyDirectory as t6,formatLogLine as e6,HOLDER_REGISTRATION_ERROR_MESSAGES as $5,isOwnerOnly as Z5,isSecretKey as J5,isStateLayoutRefusalCode as z5,NativeMigrationError as X5,NativePiAuthSlotError as G5,PRIVATE_FILES_UNAVAILABLE_MESSAGE as W4,RELOCATED_MESSAGE as Q5,STATE_LAYOUT_REFUSAL_CODES as W5,STATE_LAYOUT_REFUSAL_PUBLIC_MESSAGES as H5,setupEnrollment as Y5,stateLayoutRefusalPublicMessage as U5}from"@cortexkit/anthropic-auth-core";import{readFile as f6}from"node:fs/promises";import{assertHostsStopped as x6,createNativeAccountRuntime as y6,discoverNativeVaultInventory as g6,inspectNativeHostAuthEntry as _$,NativePiAuthSlotError as v6,nativePiAuthSlotPaths as h6,openNativePiAuthSlot as S$,readNativeEnrollmentMode as m6,requireNoSupervisedAuthContentSnapshot as w6}from"@cortexkit/anthropic-auth-core";import{dirname as H6}from"node:path";import{CLAUSTRUM_OPENCODE_ENROLLMENT_NAME as Y6,CLAUSTRUM_PI_ENROLLMENT_NAME as U6,getHostClaustrumEnrollmentPaths as y9,resolveClaustrumConnectionPath as q6}from"@cortexkit/anthropic-auth-core";import{writeEnrollmentTokenFile as IQ}from"@cortexkit/claustrum-client";import{ClaustrumClient as XQ}from"@cortexkit/claustrum-client";import{ClaustrumCredentialError as K7}from"@cortexkit/claustrum-client";import{SocketClosedError as F7,SocketTimeoutError as B7,SubcCallError as V7}from"@cortexkit/subc-client";class O extends Error{kind;constructor($,Z){super(Z);this.name="ClaustrumConsumerError",this.kind=$}}var I3=Object.freeze({ECONNREFUSED:"unreachable",ENOENT:"unreachable",ECONNRESET:"unreachable",EPIPE:"unreachable",ETIMEDOUT:"unreachable",transport_error:"unreachable",unavailable:"unreachable",timeout:"unreachable",route_closed:"unreachable",daemon_draining:"unreachable",connection_closed:"unreachable",connection_dropped:"unreachable",request_deadline:"unreachable",deadline_exceeded_no_drop_observed:"unreachable",module_reloading:"unreachable",module_warming:"unreachable",target_unavailable:"unreachable",module_timeout:"unreachable",invalid_response:"answered",invalid_record_version:"answered",invalid_expiry:"answered",invalid_status:"answered",invalid_params:"answered",ttl_unsatisfiable:"answered",not_found:"answered",enrollment_revoked:"answered",enrollment_invalid:"answered",grant_denied:"answered",credential_unavailable:"answered",needs_reauth:"answered",declined:"answered",disabled:"answered",identity_changed:"answered",closed:"answered",client_closed:"answered",pending_exists:"answered",pending_queue_full:"answered",already_consumed:"answered",superseded:"answered",stale_generation:"answered",missing_identity:"answered",invalid_control_body:"answered",unknown_module:"answered",module_removed:"answered",capability_denied:"answered",unknown_channel:"unreachable",stale_route_epoch:"unreachable",capability_forbidden:"answered",capability_unprovided:"answered",capability_ambiguous:"answered",invalid_capability_identifier:"answered",binary_body_required:"answered",binary_call_requires_call_binary:"answered",corr_exhausted:"answered",late_route_cleanup_failed:"answered",reverse_request_capability_not_declared:"answered",stale_route_handle:"answered",reverse_request_unhandled:"answered",handler_error:"answered",health_error:"answered",duplicate_module_id:"answered",route_rejected:"answered",lock_busy:"answered",owner_invalid:"answered",renewal_failed:"answered",unsupported_platform:"answered",EACCES:"answered",EPERM:"answered",ERR_PRIVATE_FILES_SECURITY:"answered"});class r extends O{constructor(){super("unavailable","Claustrum scoped operation unavailable");this.name="ClaustrumUnreachableError"}}function N0($){if($ instanceof r||$ instanceof F7||$ instanceof B7)return"unreachable";let Z=$ instanceof K7||$ instanceof V7?$.code:$ instanceof Error&&("code"in $)?$.code:void 0;if(typeof Z!=="string"||!Object.hasOwn(I3,Z))return"answered";return I3[Z]}import{resolve as Q2}from"node:path";import{storeIdentity as rJ}from"@cortexkit/claustrum-client";import{SubcClient as eJ}from"@cortexkit/subc-client";var l0=300000,v1=300000,_3=1000;class V1{#$;#Z=0;restart(){this.#Z=0}continuous($){let Z=$.kind==="changed"&&$.seq===this.#Z+1&&(this.#$===void 0||$.epoch===this.#$);return this.#$=$.epoch,this.#Z=$.seq,Z}}class h1{#$;#Z;#J;#W=!1;constructor($,Z){this.#$=$,this.#Z=Z}get running(){return this.#J}request(){if(this.#J)return this.#W=!0,this.#J;return this.#J=(async()=>{do{this.#W=!1;try{await this.#$()}catch($){this.#Z($)}}while(this.#W)})().finally(()=>{this.#J=void 0}),this.#J}}class m1{#$;#Z=new V1;#J;#W="polling";#G;#Q;#X=!1;#z;#D=!1;#H=0;constructor($){this.#$=$,this.#J=new h1(async()=>{let Z=this.#D;if(this.#D=!1,Z||this.#z!==this.#$.view())await this.#$.discover(this.#z??"")},(Z)=>{if(!this.#X)this.#$.onError?.(Z)})}get mode(){return this.#W}start(){if(this.#X||this.#G||this.#Q)return;if(typeof this.#$.client.watchScoped!=="function"){this.#Y("fallback","client-without-watch");return}this.#V(!1)}stop(){if(this.#X)return;if(this.#X=!0,this.#Q)(this.#$.clearTimeoutImpl??clearTimeout)(this.#Q);this.#Q=void 0;let $=this.#G;this.#G=void 0,$?.handle.stop()}#Y($,Z){if(this.#W===$)return;this.#W=$,this.#$.logger?.debug("claustrum vault watch",{mode:$,reason:Z}),this.#$.onMode?.($)}#K($,Z){this.#Q=(this.#$.setTimeoutImpl??setTimeout)(()=>{if(this.#Q=void 0,!this.#X)Z()},$),this.#Q.unref?.()}async#V($){let Z;try{Z=await this.#$.enrollmentToken()}catch(Q){if(this.#X)return;this.#$.onError?.(Q),this.#j("token-unreadable");return}let J=this.#$.client.watchScoped;if(this.#X||this.#G||!J)return;this.#Z.restart(),this.#D=$;let z,X;try{X=J.call(this.#$.client,(Q)=>{if(this.#X||!z||this.#G!==z)return;if(z.notices++,z.notices===1)this.#$.onReachable?.(),z.acceptedAt=(this.#$.now??Date.now)(),this.#Y("watching","accepted");if(!this.#Z.continuous(Q))this.#D=!0;this.#z=Q.view,this.#J.request()},{enrollmentToken:Z})}catch(Q){this.#$.onError?.(Q),this.#j("watch-failed");return}z={handle:X,notices:0},this.#G=z,this.#Y("polling",$?"resubscribing":"opening");let G=z;X.closed.then((Q)=>this.#U(G,Q),(Q)=>this.#U(G,{kind:"transport_lost",error:Q}))}#U($,Z){if(this.#X||this.#G!==$)return;if(this.#G=void 0,Z.kind==="stopped")return;if(Z.kind==="transport_lost")this.#$.onTransportLost?.();if(Z.kind==="unsupported"){this.#Y("fallback","vault-without-watch");return}if(Z.kind==="refused"){this.#j("refused");try{this.#$.onRefused(Z.error)}catch(J){this.#$.onError?.(J)}return}if($.notices>0){let J=(this.#$.now??Date.now)();if($.acceptedAt!==void 0&&J-$.acceptedAt>=300000)this.#H=0;let z=Math.min(1000*2**Math.min(this.#H,16),300000);this.#H++,this.#Y("polling","resubscribing"),this.#K(z,()=>void this.#V(!0));return}this.#j(Z.kind)}#j($){this.#Y("fallback",$),this.#K(300000,()=>void this.#V(!1))}}var u1=60000,W2=4*u1,j7=2*u1,R3=new Map,w1=new Map;function j1($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function M7($){let Z;try{Z=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode($))}catch{return}if(!j1(Z)||typeof Z.kind!=="string"||typeof Z.epoch!=="string"||Z.epoch.length===0||typeof Z.seq!=="number"||!Number.isSafeInteger(Z.seq)||Z.seq<1||Z.provider!==void 0&&typeof Z.provider!=="string")return;return{kind:Z.kind,epoch:Z.epoch,seq:Z.seq,...typeof Z.provider==="string"&&{provider:Z.provider}}}function D7($){return $ instanceof Error&&"code"in $&&typeof $.code==="string"?$.code:void 0}class H2{transport;key;#$=[];#Z=!1;#J=new Set;#W=new Map;#G=new h1(async()=>{try{let $=await this.transport.getUsage();if(!j1($)||!Array.isArray($.result)||$.error!==void 0)throw Error("unavailable insula usage");this.#$=$.result.filter((Z)=>j1(Z)&&typeof Z.provider==="string"),this.#Z=this.#$.length===$.result.length&&($.completeProviders===void 0||Array.isArray($.completeProviders)&&$.completeProviders.every((Z)=>typeof Z==="string")),this.#J=new Set(this.#Z&&Array.isArray($.completeProviders)?$.completeProviders:[]);for(let Z of this.#J)this.#W.delete(Z)}catch{this.#$=[],this.#Z=!1,this.#J.clear()}},()=>{});#Q=new V1;#X="polling";#z=0;#D=0;#H=new Map;#Y;#K;#V={};#U=0;constructor($,Z){this.transport=$,this.key=Z}refresh($){if(this.#G.running)return this.#G.running;if(this.#X==="watching")return Promise.resolve();for(let[J,z]of w1)if($-z>=u1)w1.delete(J);let Z=w1.get(this.key);if(Z!==void 0&&$-Z<u1)return Promise.resolve();return w1.set(this.key,$),this.#G.request()}watchMode(){return this.#X}watch($={}){this.#z++;let Z=$.provider;if(Z===void 0)this.#D++;else this.#H.set(Z,(this.#H.get(Z)??0)+1);if(this.#z===1)this.#V=$,this.#L();let J=!1;return()=>{if(J)return;if(J=!0,Z===void 0)this.#D--;else{let z=(this.#H.get(Z)??1)-1;if(z>0)this.#H.set(Z,z);else this.#H.delete(Z)}if(--this.#z===0)this.#j()}}#j(){if(this.#K)(this.#V.clearTimeoutImpl??clearTimeout)(this.#K);this.#K=void 0;let $=this.#Y;this.#Y=void 0,$?.handle?.stop(),this.#X="polling"}#M($){this.#K=(this.#V.setTimeoutImpl??setTimeout)(()=>{if(this.#K=void 0,this.#z>0&&!this.#Y)this.#L()},$),this.#K.unref?.()}#L(){let $=this.transport.watchUsage;if(!$){this.#X="fallback";return}this.#X="polling",this.#Q.restart();let Z={notices:0};this.#Y=Z;let J;try{J=$.call(this.transport,(z)=>this.#_(Z,z))}catch(z){this.#C(Z,z);return}Z.handle=J,J.closed.then(()=>this.#C(Z,void 0),(z)=>this.#C(Z,z))}#_($,Z){if(this.#Y!==$)return;if($.notices++,$.notices===1)this.#X="watching";if($.notices===2)this.#U=0;let J=M7(Z);if(!J)this.#Q.restart();if(!(J?this.#Q.continuous(J):!1)||J?.provider===void 0||this.#D>0||this.#H.has(J.provider))this.#G.request()}#C($,Z){if(this.#Y!==$)return;this.#Y=void 0;let J=D7(Z);if(J==="unknown_method"||J==="usage_watch_limit"){this.#X="fallback";return}if($.notices>0){let z=Math.min(_3*2**Math.min(this.#U,16),v1);this.#U++,this.#X="polling",this.#M(z);return}if(this.#X="fallback",this.#G.request(),Z===void 0||N0(Z)==="unreachable")this.#M(v1)}current($,Z,J){for(let z of this.#$){if(z.provider!==$||typeof z.account!=="string"||z.account.trim()!==Z)continue;if(z.stale!==void 0||z.errorClass!==void 0||!j1(z.usage))continue;let X=typeof z.fetchedAt==="string"?Date.parse(z.fetchedAt):Number.NaN;if(!Number.isFinite(X)||J-X>=W2)continue;return{entry:z,context:{fetchedAt:X,...typeof z.source==="string"&&{source:z.source}}}}return}lookup($,Z,J){if(!this.#Z)return{miss:"unreachable"};let z=this.#$.find((Q)=>Q.provider===$&&typeof Q.account==="string"&&Q.account.trim()===Z),X=(z??this.#$.find((Q)=>Q.provider===$&&Q.account===void 0&&Q.errorClass!==void 0))?.errorClass;if(X==="upstream_failed")return{miss:"upstream-failed"};if(X==="credential_absent"||X==="credential_unusable"||X==="credential_rejected")return{miss:"credential"};if(X!==void 0)return{miss:"unreachable"};if(z){let Q=typeof z.fetchedAt==="string"?Date.parse(z.fetchedAt):Number.NaN;if(!j1(z.usage)||!Number.isFinite(Q))return{miss:"unreachable"};let W={entry:z,context:{fetchedAt:Q,...typeof z.source==="string"&&{source:z.source}}};return J>=Q+W2||z.stale!==void 0?{miss:"stale",reading:W}:{reading:W}}if(this.#J.has($))return{miss:"absent"};let G=this.#W.get($)??J;return this.#W.set($,G),{miss:J-G>=j7?"unreachable":"cold"}}}function S3($,Z){let J=JSON.stringify([Q2($.connectionFile),Q2(Z)]),z=R3.get(J);if(!z)z={source:new H2($,J),refs:0},R3.set(J,z);z.refs++;let X=!1;return{source:z.source,release(){if(X)return;if(X=!0,--z.refs===0)R3.delete(J)}}}import{ClaustrumCredentialError as YQ}from"@cortexkit/claustrum-client";import{appendFileSync as E7,chmodSync as b7,existsSync as b3,renameSync as N2,statSync as f7}from"node:fs";import{open as x7}from"node:fs/promises";import{dirname as y7,resolve as g7}from"node:path";import{randomUUID as K2}from"node:crypto";import{lstat as F2,readFile as B2,rename as N7,unlink as Y2}from"node:fs/promises";import{tmpdir as L7}from"node:os";import{dirname as L0,join as P7,resolve as t}from"node:path";var _=process.platform==="win32",U2=new Set;function k3($){if($?.reason==="io-error"){if($.win32Code===2||$.win32Code===3)return"ENOENT";if($.win32Code===80||$.win32Code===183)return"EEXIST"}return $?.code??"ERR_PRIVATE_FILE"}var q2;var V2="native-addon-unavailable";function j2($){return Object.assign(Error("Windows private-files native addon is unavailable",{cause:$}),{code:"ERR_PRIVATE_FILES_UNAVAILABLE",reason:V2})}function C7($,Z){return Z instanceof $.PrivateFilesUnavailableError||Z?.code==="ERR_PRIVATE_FILES_UNAVAILABLE"}async function O7($){try{await $.verifyPrivatePath(P7(L7(),`.common-auth-private-files-probe-${K2()}`),"file")}catch(Z){if(C7($,Z))throw j2(Z)}}function a0(){return q2??=import("@cortexkit/private-files").then(async($)=>{if(_)await O7($);return $},($)=>{throw _?j2($):$}),q2}class w extends Error{path;stage;code;win32Code;reason;published=!1;durabilityConfirmed=!1;fileDurable=!1;attempts=0;elapsedMs=0;orphanPath;constructor($,Z,J){let z=J;super(z?.code==="ERR_PRIVATE_FILES_UNAVAILABLE"?`Private file refused at ${Z}: ${$} (${V2}). The Windows native addon of @cortexkit/private-files could not be loaded, so owner-only access cannot be enforced and nothing was read or written. Reinstall the plugin so the private-files Windows prebuild for this architecture is present; Windows has no safe fallback to permission bits.`:`Private file refused at ${Z}: ${$} (${z?.reason??z?.code??"io-error"}). Keep this file in a folder that only you, the system or administrators can change, such as a folder in your home directory. If other users could read the file before, sign in again to replace the credentials it held. On Windows the file must also be on a local drive that keeps Windows file permissions, such as NTFS.`,{cause:J});this.path=$,this.stage=Z,this.name="PrivateFileError",this.code=k3(z),this.win32Code=z?.win32Code,this.reason=z?.reason}}async function i($,Z,J){try{return await J()}catch(z){if(z instanceof w)throw z;throw new w($,Z,z)}}var A7;async function F0($,Z){$=t($),Z??=A7,await i($,"safe-parent",async()=>{let J=await(await a0()).verifySafeParent($,Z);if(J.ok===!1){if(J.reason==="io-error"||J.reason==="wrong-kind")await F2($);throw new w(J.level??J.path,"safe-parent",{...J,code:"ERR_PRIVATE_FILES_SECURITY"})}})}async function d($,Z,J=!1){if($=t($),Z==="directory")return F0($);await i($,"verify",async()=>{let z=await a0(),X=await z.verifyOwnerOnly($),G=!1;if(!X.ok){let{reason:Q}=X.refusal;if(Q==="io-error")await z.verifyPrivatePath($,Z);if(J&&[z.EXTRA_ACE,z.NOT_PROTECTED,z.NULL_DACL,z.EMPTY_DACL].includes(Q))await F0(L0($)),await z.securePrivatePath($,Z),G=!0;else throw Object.assign(Error("Owner-only verification refused"),{reason:Q,code:"ERR_PRIVATE_FILES_SECURITY"})}if(await z.verifyPrivatePath($,Z),G&&!U2.has($))U2.add($),process.emitWarning(`Private permissions tightened: ${$}. This object may have been readable before; rotate credentials if needed.`,"PrivateFileMigration")})}async function G0($,Z=!1,J){$=t($),await i($,"directory",async()=>{let z=await a0();try{return await F2($),await F0($,J)}catch(G){if(k3(G)!=="ENOENT")throw G}let X=L0($);if(X===$)throw Object.assign(Error("Missing root"),{code:"ENOENT"});await G0(X,!1,J);try{await z.createOwnerOnly($,{kind:"dir"})}catch(G){if(k3(G)!=="EEXIST")throw G}await F0($,J)})}async function Z0($,Z=!1){if(!_)return B2($,"utf8");return(await I7($,Z)).toString("utf8")}async function I7($,Z=!1){if(!_)return B2($);if($=t($),Z)await F0(L0($)),await d($,"file",!0);return i($,"read",async()=>(await a0()).readOwnerOnly($))}async function s0($,Z){await F0(L0(t($))),await i($,"create",async()=>{await(await a0()).createPrivateFile(t($),Z)})}async function M2($){await F0(L0(t($))),await i($,"directory-create",async()=>{await(await a0()).createOwnerOnly(t($),{kind:"dir"})})}async function E3($,Z,J={}){$=t($),Z=t(Z);let z=J.now??(()=>performance.now()),X=z(),G=J.deadline??1/0,Q,W=[0,10,20,40,80,100],H,q=0;for(let U of W){let M=Math.min(Q??1/0,G);if(z()>=M)break;if(U)await(J.sleep??((L)=>new Promise((C)=>setTimeout(C,L))))(Math.min(U,Math.max(0,M-z())));if(z()>=M)break;let B=z();if(await J.beforeRename?.(),Q!==void 0)Q+=z()-B;if(z()>=G)break;q++;try{return await(J.rename??N7)($,Z),{attempts:q,elapsedMs:z()-X}}catch(L){H??=L;let C=L;if(!(C.win32Code!==void 0?C.win32Code===32||C.win32Code===33:["EBUSY","EPERM","EACCES"].includes(C.code??"")&&!C.reason))break;Q??=z()+500}}let Y=new w(Z,"rename",H??Object.assign(Error("Publication deadline expired"),{code:"ETIMEDOUT"}));throw Y.attempts=q,Y.elapsedMs=z()-X,Y}async function n0($,Z,J={}){$=t($),await G0(L0($));try{await d($,"file",!0)}catch(q){if(q.code!=="ENOENT")throw q}let z=t(J.stagePath??`${$}.${K2()}.tmp`);if(L0(z)!==L0($))throw new w($,"stage-directory",{code:"EXDEV"});let X=!1,G=!1,Q={attempts:0,elapsedMs:0},W="stage-create",H=(q)=>{try{J.onOutcome?.({path:$,stage:q?.stage??"published",published:G,fileDurable:G,durabilityConfirmed:!1,attempts:q?.attempts??Q.attempts,elapsedMs:q?.elapsedMs??Q.elapsedMs,...q&&{code:q.code,win32Code:q.win32Code}})}catch{}};try{if(await s0(z,Z),X=!0,W="before-rename",Q=await E3(z,$,J),X=!1,G=!0,W="published-callback",J.onRenamed?.(),W="published-verify",await d($,"file"),J.durable&&J.durability!=="file-only-on-windows")throw new w($,"directory-sync-unsupported",{code:"ENOTSUP"});H()}catch(q){let Y=q instanceof w?q:new w($,W,q);if(Y.published=G,Y.fileDurable=G,G)Object.assign(Y,Q);if(X){try{await Y2(z)}catch{Y.orphanPath=z}X=!1}throw H(Y),Y}finally{if(X)await Y2(z).catch(()=>{})}}var _7=/^(authorization|x-api-key|cookie|set-cookie|refresh|access|token)$/i,R7=/\b(Bearer\s+[\w.-]+|sk-[\w-]+|eyJ[\w.-]+)\b|ckh_[A-Za-z0-9_-]{20,}/g;function S7($){return $ instanceof Error||Object.prototype.toString.call($)==="[object Error]"}function i0($={}){let Z=[R7,...$.extraValuePatterns??[]].map((G)=>new RegExp(G.source,G.flags.includes("g")?G.flags:`${G.flags}g`));function J(G){let Q=G.toLowerCase().replace(/[-_]/g,"");return _7.test(G)||Q.includes("apikey")||Q.endsWith("secret")||Q.endsWith("password")||Q.endsWith("token")&&!Q.endsWith("tokens")||!!$.extraSecretKeys?.(Q)}function z(G){let Q=G,W=[["name",G.name],["message",G.message],["stack",G.stack]];for(let q of["code","status","cause"])if(Q[q]!==void 0)W.push([q,Q[q]]);let H=new Set(W.map(([q])=>q));for(let q of Object.entries(G))if(!H.has(q[0]))W.push(q);return W}function X(G,Q,W,H=0){if(typeof G==="string")return Z.reduce((q,Y)=>q.replace(Y,"***REDACTED***"),G);if(!G||typeof G!=="object")return G;if(W.has(G))return"[Circular]";W.add(G);try{if(Array.isArray(G))return G.map((U)=>X(U,Q,W,H));let q=S7(G);if(q&&H>=8)return"[Truncated]";let Y=q?H+1:H;return Object.fromEntries((q?z(G):Object.entries(G)).map(([U,M])=>[U,Q&&J(U)?"***REDACTED***":X(M,Q,W,Y)]))}finally{W.delete(G)}}return{redact:(G)=>X(G,!0,new WeakSet),redactStrings:(G)=>X(G,!1,new WeakSet)}}var D2=i0(),k7=D2.redact,T7=D2.redactStrings;var c1={error:0,warn:1,info:2,debug:3,trace:4},P2=5242880,C2=3;function f3($){try{b7($,384)}catch{}}function v7($){try{if(!(b3($)&&f7($).size>=P2))return;for(let J=C2-1;J>=1;J--)if(b3(`${$}.${J}`)){let z=`${$}.${J+1}`;N2(`${$}.${J}`,z),f3(z)}let Z=`${$}.1`;N2($,Z),f3(Z)}catch{}}async function B0($){let{file:Z,handle:J}=$;if($.file=void 0,$.handle=void 0,Z&&J)await i(Z,"log-close",()=>J.close())}async function L2($,Z){await G0(y7(Z));try{await d(Z,"file",!0)}catch(J){if(J.code!=="ENOENT")throw J;try{await s0(Z,"")}catch(z){if(z.code!=="EEXIST")throw z;await d(Z,"file",!0)}}return $.handle=await i(Z,"log-open",()=>x7(Z,"a")),$.file=Z,$.handle}async function h7($,Z,J){Z=g7(Z);try{if($.file!==Z)await B0($);let z=$.handle??await L2($,Z);if((await i(Z,"log-stat",()=>z.stat())).size>=P2){await B0($);for(let G=C2-1;G>=0;G--){let Q=G===0?Z:`${Z}.${G}`,W=`${Z}.${G+1}`;try{await d(Q,"file",!0)}catch(H){if(H.code==="ENOENT")continue;throw H}try{await d(W,"file",!0)}catch(H){if(H.code!=="ENOENT")throw H}await E3(Q,W),await d(W,"file")}z=await L2($,Z)}await i(Z,"log-append",()=>z.appendFile(J,"utf8"))}catch(z){throw await B0($).catch(()=>{}),z}}function m7($){try{return` ${JSON.stringify($)}`}catch{return" [unserializable]"}}function w7($){let Z,J,z,X=i0(),G,Q=[],W,H=Promise.resolve(),q,Y={};function U(F){let K=H.then(F);return H=K.catch((V)=>{q=V}),K}function M(F){if(_&&F.file!==Z)U(()=>B0(Y)).catch(()=>{});Z=F.file,J=F.level,X=i0(F),G=F.captureSink}function B(F){if(F===void 0||F in c1)z=F}function L(){if(Z===void 0)return;return(typeof Z==="function"?Z():Z)||void 0}function C(){if(z)return z;let F=typeof J==="function"?J():J;if(F&&F in c1)return F;return"info"}function A(F=!0){if(W)clearTimeout(W),W=void 0;if(!Q.length){if(_)return U(async()=>{if(F)await B0(Y);if(q)throw q});return}let K;try{K=L()}catch{if(Q=[],_&&F)return U(()=>B0(Y));return}let V=Q.join("");if(Q=[],!K){if(_&&F)return U(()=>B0(Y));return}if(_)return U(async()=>{try{await h7(Y,K,V)}finally{if(F)await B0(Y)}});try{if(v7(K),b3(K))f3(K);E7(K,V,{encoding:"utf8",mode:384})}catch{}}function I(){if(!W)W=setTimeout(()=>{W=void 0;let F=A(!1);if(F instanceof Promise)F.catch(()=>{})},500)}function R(F,K,V,P){if(Z===void 0&&G===void 0)return;try{if(c1[K]>c1[C()])return;let x=X.redactStrings(V),k;try{k=X.redact(P)}catch{k="[unserializable]"}let y=`[${new Date().toISOString()}] ${K.toUpperCase()} [${F}] ${x}`+(P===void 0?"":m7(k))+`
2
+ import{B as N3}from"./index-qqs4ec18.js";import{D as X7,E as G7,F as w9,G as u9,H as c9,I as p9,J as Q7}from"./index-a0jxsmac.js";import{la as l4,ma as kZ,na as T3}from"./index-n8xr16kr.js";var o$=kZ((Bq,c4)=>{var i$={to($,Z){if(!Z)return`\x1B[${$+1}G`;return`\x1B[${Z+1};${$+1}H`},move($,Z){let J="";if($<0)J+=`\x1B[${-$}D`;else if($>0)J+=`\x1B[${$}C`;if(Z<0)J+=`\x1B[${-Z}A`;else if(Z>0)J+=`\x1B[${Z}B`;return J},up:($=1)=>`\x1B[${$}A`,down:($=1)=>`\x1B[${$}B`,forward:($=1)=>`\x1B[${$}C`,backward:($=1)=>`\x1B[${$}D`,nextLine:($=1)=>"\x1B[E".repeat($),prevLine:($=1)=>"\x1B[F".repeat($),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},TZ={up:($=1)=>"\x1B[S".repeat($),down:($=1)=>"\x1B[T".repeat($)},EZ={screen:"\x1B[2J",up:($=1)=>"\x1B[1J".repeat($),down:($=1)=>"\x1B[J".repeat($),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines($){let Z="";for(let J=0;J<$;J++)Z+=this.line+(J<$-1?i$.up():"");if($)Z+=i$.left;return Z}};c4.exports={cursor:i$,scroll:TZ,erase:EZ,beep:"\x07"}});import{stdin as NJ,stdout as LJ}from"node:process";import{createInterface as PJ}from"node:readline/promises";import{authorize as CJ,createNativeAccountRuntime as OJ,decideOpenCodeStateLayoutOnce as AJ,exchange as IJ,formatNativeAccountState as _J,generateRelayToken as RJ,getAccountStoragePath as SJ,isValidApiBaseURL as kJ,readNativeEnrollmentMode as TJ,resolveNativePoolPaths as EJ,WORKER_SCRIPT as bJ}from"@cortexkit/anthropic-auth-core";import{randomUUID as d6}from"node:crypto";import{constants as X3}from"node:fs";import{lstat as l6,mkdir as a6,open as s6}from"node:fs/promises";import{homedir as n6}from"node:os";import{isAbsolute as i6,join as G4}from"node:path";import{types as b$}from"node:util";import{anthropicAuthStateRoot as o6,createProviderErrorRedactor as Q4,createWindowsOwnerOnly as r6,ensureWindowsOwnerOnlyDirectory as t6,formatLogLine as e6,HOLDER_REGISTRATION_ERROR_MESSAGES as $5,isOwnerOnly as Z5,isSecretKey as J5,isStateLayoutRefusalCode as z5,NativeMigrationError as X5,NativePiAuthSlotError as G5,PRIVATE_FILES_UNAVAILABLE_MESSAGE as W4,RELOCATED_MESSAGE as Q5,STATE_LAYOUT_REFUSAL_CODES as W5,STATE_LAYOUT_REFUSAL_PUBLIC_MESSAGES as H5,setupEnrollment as Y5,stateLayoutRefusalPublicMessage as U5}from"@cortexkit/anthropic-auth-core";import{readFile as f6}from"node:fs/promises";import{assertHostsStopped as x6,createNativeAccountRuntime as y6,discoverNativeVaultInventory as g6,inspectNativeHostAuthEntry as _$,NativePiAuthSlotError as v6,nativePiAuthSlotPaths as h6,openNativePiAuthSlot as S$,readNativeEnrollmentMode as m6,requireNoSupervisedAuthContentSnapshot as w6}from"@cortexkit/anthropic-auth-core";import{dirname as H6}from"node:path";import{CLAUSTRUM_OPENCODE_ENROLLMENT_NAME as Y6,CLAUSTRUM_PI_ENROLLMENT_NAME as U6,getHostClaustrumEnrollmentPaths as y9,resolveClaustrumConnectionPath as q6}from"@cortexkit/anthropic-auth-core";import{writeEnrollmentTokenFile as IQ}from"@cortexkit/claustrum-client";import{ClaustrumClient as XQ}from"@cortexkit/claustrum-client";import{ClaustrumCredentialError as K7}from"@cortexkit/claustrum-client";import{SocketClosedError as F7,SocketTimeoutError as B7,SubcCallError as V7}from"@cortexkit/subc-client";class O extends Error{kind;constructor($,Z){super(Z);this.name="ClaustrumConsumerError",this.kind=$}}var I3=Object.freeze({ECONNREFUSED:"unreachable",ENOENT:"unreachable",ECONNRESET:"unreachable",EPIPE:"unreachable",ETIMEDOUT:"unreachable",transport_error:"unreachable",unavailable:"unreachable",timeout:"unreachable",route_closed:"unreachable",daemon_draining:"unreachable",connection_closed:"unreachable",connection_dropped:"unreachable",request_deadline:"unreachable",deadline_exceeded_no_drop_observed:"unreachable",module_reloading:"unreachable",module_warming:"unreachable",target_unavailable:"unreachable",module_timeout:"unreachable",invalid_response:"answered",invalid_record_version:"answered",invalid_expiry:"answered",invalid_status:"answered",invalid_params:"answered",ttl_unsatisfiable:"answered",not_found:"answered",enrollment_revoked:"answered",enrollment_invalid:"answered",grant_denied:"answered",credential_unavailable:"answered",needs_reauth:"answered",declined:"answered",disabled:"answered",identity_changed:"answered",closed:"answered",client_closed:"answered",pending_exists:"answered",pending_queue_full:"answered",already_consumed:"answered",superseded:"answered",stale_generation:"answered",missing_identity:"answered",invalid_control_body:"answered",unknown_module:"answered",module_removed:"answered",capability_denied:"answered",unknown_channel:"unreachable",stale_route_epoch:"unreachable",capability_forbidden:"answered",capability_unprovided:"answered",capability_ambiguous:"answered",invalid_capability_identifier:"answered",binary_body_required:"answered",binary_call_requires_call_binary:"answered",corr_exhausted:"answered",late_route_cleanup_failed:"answered",reverse_request_capability_not_declared:"answered",stale_route_handle:"answered",reverse_request_unhandled:"answered",handler_error:"answered",health_error:"answered",duplicate_module_id:"answered",route_rejected:"answered",lock_busy:"answered",owner_invalid:"answered",renewal_failed:"answered",unsupported_platform:"answered",EACCES:"answered",EPERM:"answered",ERR_PRIVATE_FILES_SECURITY:"answered"});class r extends O{constructor(){super("unavailable","Claustrum scoped operation unavailable");this.name="ClaustrumUnreachableError"}}function N0($){if($ instanceof r||$ instanceof F7||$ instanceof B7)return"unreachable";let Z=$ instanceof K7||$ instanceof V7?$.code:$ instanceof Error&&("code"in $)?$.code:void 0;if(typeof Z!=="string"||!Object.hasOwn(I3,Z))return"answered";return I3[Z]}import{resolve as Q2}from"node:path";import{storeIdentity as rJ}from"@cortexkit/claustrum-client";import{SubcClient as eJ}from"@cortexkit/subc-client";var l0=300000,v1=300000,_3=1000;class V1{#$;#Z=0;restart(){this.#Z=0}continuous($){let Z=$.kind==="changed"&&$.seq===this.#Z+1&&(this.#$===void 0||$.epoch===this.#$);return this.#$=$.epoch,this.#Z=$.seq,Z}}class h1{#$;#Z;#J;#W=!1;constructor($,Z){this.#$=$,this.#Z=Z}get running(){return this.#J}request(){if(this.#J)return this.#W=!0,this.#J;return this.#J=(async()=>{do{this.#W=!1;try{await this.#$()}catch($){this.#Z($)}}while(this.#W)})().finally(()=>{this.#J=void 0}),this.#J}}class m1{#$;#Z=new V1;#J;#W="polling";#G;#Q;#X=!1;#z;#D=!1;#H=0;constructor($){this.#$=$,this.#J=new h1(async()=>{let Z=this.#D;if(this.#D=!1,Z||this.#z!==this.#$.view())await this.#$.discover(this.#z??"")},(Z)=>{if(!this.#X)this.#$.onError?.(Z)})}get mode(){return this.#W}start(){if(this.#X||this.#G||this.#Q)return;if(typeof this.#$.client.watchScoped!=="function"){this.#Y("fallback","client-without-watch");return}this.#V(!1)}stop(){if(this.#X)return;if(this.#X=!0,this.#Q)(this.#$.clearTimeoutImpl??clearTimeout)(this.#Q);this.#Q=void 0;let $=this.#G;this.#G=void 0,$?.handle.stop()}#Y($,Z){if(this.#W===$)return;this.#W=$,this.#$.logger?.debug("claustrum vault watch",{mode:$,reason:Z}),this.#$.onMode?.($)}#K($,Z){this.#Q=(this.#$.setTimeoutImpl??setTimeout)(()=>{if(this.#Q=void 0,!this.#X)Z()},$),this.#Q.unref?.()}async#V($){let Z;try{Z=await this.#$.enrollmentToken()}catch(Q){if(this.#X)return;this.#$.onError?.(Q),this.#j("token-unreadable");return}let J=this.#$.client.watchScoped;if(this.#X||this.#G||!J)return;this.#Z.restart(),this.#D=$;let z,X;try{X=J.call(this.#$.client,(Q)=>{if(this.#X||!z||this.#G!==z)return;if(z.notices++,z.notices===1)this.#$.onReachable?.(),z.acceptedAt=(this.#$.now??Date.now)(),this.#Y("watching","accepted");if(!this.#Z.continuous(Q))this.#D=!0;this.#z=Q.view,this.#J.request()},{enrollmentToken:Z})}catch(Q){this.#$.onError?.(Q),this.#j("watch-failed");return}z={handle:X,notices:0},this.#G=z,this.#Y("polling",$?"resubscribing":"opening");let G=z;X.closed.then((Q)=>this.#U(G,Q),(Q)=>this.#U(G,{kind:"transport_lost",error:Q}))}#U($,Z){if(this.#X||this.#G!==$)return;if(this.#G=void 0,Z.kind==="stopped")return;if(Z.kind==="transport_lost")this.#$.onTransportLost?.();if(Z.kind==="unsupported"){this.#Y("fallback","vault-without-watch");return}if(Z.kind==="refused"){this.#j("refused");try{this.#$.onRefused(Z.error)}catch(J){this.#$.onError?.(J)}return}if($.notices>0){let J=(this.#$.now??Date.now)();if($.acceptedAt!==void 0&&J-$.acceptedAt>=300000)this.#H=0;let z=Math.min(1000*2**Math.min(this.#H,16),300000);this.#H++,this.#Y("polling","resubscribing"),this.#K(z,()=>void this.#V(!0));return}this.#j(Z.kind)}#j($){this.#Y("fallback",$),this.#K(300000,()=>void this.#V(!1))}}var u1=60000,W2=4*u1,j7=2*u1,R3=new Map,w1=new Map;function j1($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function M7($){let Z;try{Z=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode($))}catch{return}if(!j1(Z)||typeof Z.kind!=="string"||typeof Z.epoch!=="string"||Z.epoch.length===0||typeof Z.seq!=="number"||!Number.isSafeInteger(Z.seq)||Z.seq<1||Z.provider!==void 0&&typeof Z.provider!=="string")return;return{kind:Z.kind,epoch:Z.epoch,seq:Z.seq,...typeof Z.provider==="string"&&{provider:Z.provider}}}function D7($){return $ instanceof Error&&"code"in $&&typeof $.code==="string"?$.code:void 0}class H2{transport;key;#$=[];#Z=!1;#J=new Set;#W=new Map;#G=new h1(async()=>{try{let $=await this.transport.getUsage();if(!j1($)||!Array.isArray($.result)||$.error!==void 0)throw Error("unavailable insula usage");this.#$=$.result.filter((Z)=>j1(Z)&&typeof Z.provider==="string"),this.#Z=this.#$.length===$.result.length&&($.completeProviders===void 0||Array.isArray($.completeProviders)&&$.completeProviders.every((Z)=>typeof Z==="string")),this.#J=new Set(this.#Z&&Array.isArray($.completeProviders)?$.completeProviders:[]);for(let Z of this.#J)this.#W.delete(Z)}catch{this.#$=[],this.#Z=!1,this.#J.clear()}},()=>{});#Q=new V1;#X="polling";#z=0;#D=0;#H=new Map;#Y;#K;#V={};#U=0;constructor($,Z){this.transport=$,this.key=Z}refresh($){if(this.#G.running)return this.#G.running;if(this.#X==="watching")return Promise.resolve();for(let[J,z]of w1)if($-z>=u1)w1.delete(J);let Z=w1.get(this.key);if(Z!==void 0&&$-Z<u1)return Promise.resolve();return w1.set(this.key,$),this.#G.request()}watchMode(){return this.#X}watch($={}){this.#z++;let Z=$.provider;if(Z===void 0)this.#D++;else this.#H.set(Z,(this.#H.get(Z)??0)+1);if(this.#z===1)this.#V=$,this.#L();let J=!1;return()=>{if(J)return;if(J=!0,Z===void 0)this.#D--;else{let z=(this.#H.get(Z)??1)-1;if(z>0)this.#H.set(Z,z);else this.#H.delete(Z)}if(--this.#z===0)this.#j()}}#j(){if(this.#K)(this.#V.clearTimeoutImpl??clearTimeout)(this.#K);this.#K=void 0;let $=this.#Y;this.#Y=void 0,$?.handle?.stop(),this.#X="polling"}#M($){this.#K=(this.#V.setTimeoutImpl??setTimeout)(()=>{if(this.#K=void 0,this.#z>0&&!this.#Y)this.#L()},$),this.#K.unref?.()}#L(){let $=this.transport.watchUsage;if(!$){this.#X="fallback";return}this.#X="polling",this.#Q.restart();let Z={notices:0};this.#Y=Z;let J;try{J=$.call(this.transport,(z)=>this.#_(Z,z))}catch(z){this.#C(Z,z);return}Z.handle=J,J.closed.then(()=>this.#C(Z,void 0),(z)=>this.#C(Z,z))}#_($,Z){if(this.#Y!==$)return;if($.notices++,$.notices===1)this.#X="watching";if($.notices===2)this.#U=0;let J=M7(Z);if(!J)this.#Q.restart();if(!(J?this.#Q.continuous(J):!1)||J?.provider===void 0||this.#D>0||this.#H.has(J.provider))this.#G.request()}#C($,Z){if(this.#Y!==$)return;this.#Y=void 0;let J=D7(Z);if(J==="unknown_method"||J==="usage_watch_limit"){this.#X="fallback";return}if($.notices>0){let z=Math.min(_3*2**Math.min(this.#U,16),v1);this.#U++,this.#X="polling",this.#M(z);return}if(this.#X="fallback",this.#G.request(),Z===void 0||N0(Z)==="unreachable")this.#M(v1)}current($,Z,J){for(let z of this.#$){if(z.provider!==$||typeof z.account!=="string"||z.account.trim()!==Z)continue;if(z.stale!==void 0||z.errorClass!==void 0||!j1(z.usage))continue;let X=typeof z.fetchedAt==="string"?Date.parse(z.fetchedAt):Number.NaN;if(!Number.isFinite(X)||J-X>=W2)continue;return{entry:z,context:{fetchedAt:X,...typeof z.source==="string"&&{source:z.source}}}}return}lookup($,Z,J){if(!this.#Z)return{miss:"unreachable"};let z=this.#$.find((Q)=>Q.provider===$&&typeof Q.account==="string"&&Q.account.trim()===Z),X=(z??this.#$.find((Q)=>Q.provider===$&&Q.account===void 0&&Q.errorClass!==void 0))?.errorClass;if(X==="upstream_failed")return{miss:"upstream-failed"};if(X==="credential_absent"||X==="credential_unusable"||X==="credential_rejected")return{miss:"credential"};if(X!==void 0)return{miss:"unreachable"};if(z){let Q=typeof z.fetchedAt==="string"?Date.parse(z.fetchedAt):Number.NaN;if(!j1(z.usage)||!Number.isFinite(Q))return{miss:"unreachable"};let W={entry:z,context:{fetchedAt:Q,...typeof z.source==="string"&&{source:z.source}}};return J>=Q+W2||z.stale!==void 0?{miss:"stale",reading:W}:{reading:W}}if(this.#J.has($))return{miss:"absent"};let G=this.#W.get($)??J;return this.#W.set($,G),{miss:J-G>=j7?"unreachable":"cold"}}}function S3($,Z){let J=JSON.stringify([Q2($.connectionFile),Q2(Z)]),z=R3.get(J);if(!z)z={source:new H2($,J),refs:0},R3.set(J,z);z.refs++;let X=!1;return{source:z.source,release(){if(X)return;if(X=!0,--z.refs===0)R3.delete(J)}}}import{ClaustrumCredentialError as YQ}from"@cortexkit/claustrum-client";import{appendFileSync as E7,chmodSync as b7,existsSync as b3,renameSync as N2,statSync as f7}from"node:fs";import{open as x7}from"node:fs/promises";import{dirname as y7,resolve as g7}from"node:path";import{randomUUID as K2}from"node:crypto";import{lstat as F2,readFile as B2,rename as N7,unlink as Y2}from"node:fs/promises";import{tmpdir as L7}from"node:os";import{dirname as L0,join as P7,resolve as t}from"node:path";var _=process.platform==="win32",U2=new Set;function k3($){if($?.reason==="io-error"){if($.win32Code===2||$.win32Code===3)return"ENOENT";if($.win32Code===80||$.win32Code===183)return"EEXIST"}return $?.code??"ERR_PRIVATE_FILE"}var q2;var V2="native-addon-unavailable";function j2($){return Object.assign(Error("Windows private-files native addon is unavailable",{cause:$}),{code:"ERR_PRIVATE_FILES_UNAVAILABLE",reason:V2})}function C7($,Z){return Z instanceof $.PrivateFilesUnavailableError||Z?.code==="ERR_PRIVATE_FILES_UNAVAILABLE"}async function O7($){try{await $.verifyPrivatePath(P7(L7(),`.common-auth-private-files-probe-${K2()}`),"file")}catch(Z){if(C7($,Z))throw j2(Z)}}function a0(){return q2??=import("@cortexkit/private-files").then(async($)=>{if(_)await O7($);return $},($)=>{throw _?j2($):$}),q2}class w extends Error{path;stage;code;win32Code;reason;published=!1;durabilityConfirmed=!1;fileDurable=!1;attempts=0;elapsedMs=0;orphanPath;constructor($,Z,J){let z=J;super(z?.code==="ERR_PRIVATE_FILES_UNAVAILABLE"?`Private file refused at ${Z}: ${$} (${V2}). The Windows native addon of @cortexkit/private-files could not be loaded, so owner-only access cannot be enforced and nothing was read or written. Reinstall the plugin so the private-files Windows prebuild for this architecture is present; Windows has no safe fallback to permission bits.`:`Private file refused at ${Z}: ${$} (${z?.reason??z?.code??"io-error"}). Keep this file in a folder that only you, the system or administrators can change, such as a folder in your home directory. If other users could read the file before, sign in again to replace the credentials it held. On Windows the file must also be on a local drive that keeps Windows file permissions, such as NTFS.`,{cause:J});this.path=$,this.stage=Z,this.name="PrivateFileError",this.code=k3(z),this.win32Code=z?.win32Code,this.reason=z?.reason}}async function i($,Z,J){try{return await J()}catch(z){if(z instanceof w)throw z;throw new w($,Z,z)}}var A7;async function F0($,Z){$=t($),Z??=A7,await i($,"safe-parent",async()=>{let J=await(await a0()).verifySafeParent($,Z);if(J.ok===!1){if(J.reason==="io-error"||J.reason==="wrong-kind")await F2($);throw new w(J.level??J.path,"safe-parent",{...J,code:"ERR_PRIVATE_FILES_SECURITY"})}})}async function d($,Z,J=!1){if($=t($),Z==="directory")return F0($);await i($,"verify",async()=>{let z=await a0(),X=await z.verifyOwnerOnly($),G=!1;if(!X.ok){let{reason:Q}=X.refusal;if(Q==="io-error")await z.verifyPrivatePath($,Z);if(J&&[z.EXTRA_ACE,z.NOT_PROTECTED,z.NULL_DACL,z.EMPTY_DACL].includes(Q))await F0(L0($)),await z.securePrivatePath($,Z),G=!0;else throw Object.assign(Error("Owner-only verification refused"),{reason:Q,code:"ERR_PRIVATE_FILES_SECURITY"})}if(await z.verifyPrivatePath($,Z),G&&!U2.has($))U2.add($),process.emitWarning(`Private permissions tightened: ${$}. This object may have been readable before; rotate credentials if needed.`,"PrivateFileMigration")})}async function G0($,Z=!1,J){$=t($),await i($,"directory",async()=>{let z=await a0();try{return await F2($),await F0($,J)}catch(G){if(k3(G)!=="ENOENT")throw G}let X=L0($);if(X===$)throw Object.assign(Error("Missing root"),{code:"ENOENT"});await G0(X,!1,J);try{await z.createOwnerOnly($,{kind:"dir"})}catch(G){if(k3(G)!=="EEXIST")throw G}await F0($,J)})}async function Z0($,Z=!1){if(!_)return B2($,"utf8");return(await I7($,Z)).toString("utf8")}async function I7($,Z=!1){if(!_)return B2($);if($=t($),Z)await F0(L0($)),await d($,"file",!0);return i($,"read",async()=>(await a0()).readOwnerOnly($))}async function s0($,Z){await F0(L0(t($))),await i($,"create",async()=>{await(await a0()).createPrivateFile(t($),Z)})}async function M2($){await F0(L0(t($))),await i($,"directory-create",async()=>{await(await a0()).createOwnerOnly(t($),{kind:"dir"})})}async function E3($,Z,J={}){$=t($),Z=t(Z);let z=J.now??(()=>performance.now()),X=z(),G=J.deadline??1/0,Q,W=[0,10,20,40,80,100],H,q=0;for(let U of W){let M=Math.min(Q??1/0,G);if(z()>=M)break;if(U)await(J.sleep??((L)=>new Promise((C)=>setTimeout(C,L))))(Math.min(U,Math.max(0,M-z())));if(z()>=M)break;let B=z();if(await J.beforeRename?.(),Q!==void 0)Q+=z()-B;if(z()>=G)break;q++;try{return await(J.rename??N7)($,Z),{attempts:q,elapsedMs:z()-X}}catch(L){H??=L;let C=L;if(!(C.win32Code!==void 0?C.win32Code===32||C.win32Code===33:["EBUSY","EPERM","EACCES"].includes(C.code??"")&&!C.reason))break;Q??=z()+500}}let Y=new w(Z,"rename",H??Object.assign(Error("Publication deadline expired"),{code:"ETIMEDOUT"}));throw Y.attempts=q,Y.elapsedMs=z()-X,Y}async function n0($,Z,J={}){$=t($),await G0(L0($));try{await d($,"file",!0)}catch(q){if(q.code!=="ENOENT")throw q}let z=t(J.stagePath??`${$}.${K2()}.tmp`);if(L0(z)!==L0($))throw new w($,"stage-directory",{code:"EXDEV"});let X=!1,G=!1,Q={attempts:0,elapsedMs:0},W="stage-create",H=(q)=>{try{J.onOutcome?.({path:$,stage:q?.stage??"published",published:G,fileDurable:G,durabilityConfirmed:!1,attempts:q?.attempts??Q.attempts,elapsedMs:q?.elapsedMs??Q.elapsedMs,...q&&{code:q.code,win32Code:q.win32Code}})}catch{}};try{if(await s0(z,Z),X=!0,W="before-rename",Q=await E3(z,$,J),X=!1,G=!0,W="published-callback",J.onRenamed?.(),W="published-verify",await d($,"file"),J.durable&&J.durability!=="file-only-on-windows")throw new w($,"directory-sync-unsupported",{code:"ENOTSUP"});H()}catch(q){let Y=q instanceof w?q:new w($,W,q);if(Y.published=G,Y.fileDurable=G,G)Object.assign(Y,Q);if(X){try{await Y2(z)}catch{Y.orphanPath=z}X=!1}throw H(Y),Y}finally{if(X)await Y2(z).catch(()=>{})}}var _7=/^(authorization|x-api-key|cookie|set-cookie|refresh|access|token)$/i,R7=/\b(Bearer\s+[\w.-]+|sk-[\w-]+|eyJ[\w.-]+)\b|ckh_[A-Za-z0-9_-]{20,}/g;function S7($){return $ instanceof Error||Object.prototype.toString.call($)==="[object Error]"}function i0($={}){let Z=[R7,...$.extraValuePatterns??[]].map((G)=>new RegExp(G.source,G.flags.includes("g")?G.flags:`${G.flags}g`));function J(G){let Q=G.toLowerCase().replace(/[-_]/g,"");return _7.test(G)||Q.includes("apikey")||Q.endsWith("secret")||Q.endsWith("password")||Q.endsWith("token")&&!Q.endsWith("tokens")||!!$.extraSecretKeys?.(Q)}function z(G){let Q=G,W=[["name",G.name],["message",G.message],["stack",G.stack]];for(let q of["code","status","cause"])if(Q[q]!==void 0)W.push([q,Q[q]]);let H=new Set(W.map(([q])=>q));for(let q of Object.entries(G))if(!H.has(q[0]))W.push(q);return W}function X(G,Q,W,H=0){if(typeof G==="string")return Z.reduce((q,Y)=>q.replace(Y,"***REDACTED***"),G);if(!G||typeof G!=="object")return G;if(W.has(G))return"[Circular]";W.add(G);try{if(Array.isArray(G))return G.map((U)=>X(U,Q,W,H));let q=S7(G);if(q&&H>=8)return"[Truncated]";let Y=q?H+1:H;return Object.fromEntries((q?z(G):Object.entries(G)).map(([U,M])=>[U,Q&&J(U)?"***REDACTED***":X(M,Q,W,Y)]))}finally{W.delete(G)}}return{redact:(G)=>X(G,!0,new WeakSet),redactStrings:(G)=>X(G,!1,new WeakSet)}}var D2=i0(),k7=D2.redact,T7=D2.redactStrings;var c1={error:0,warn:1,info:2,debug:3,trace:4},P2=5242880,C2=3;function f3($){try{b7($,384)}catch{}}function v7($){try{if(!(b3($)&&f7($).size>=P2))return;for(let J=C2-1;J>=1;J--)if(b3(`${$}.${J}`)){let z=`${$}.${J+1}`;N2(`${$}.${J}`,z),f3(z)}let Z=`${$}.1`;N2($,Z),f3(Z)}catch{}}async function B0($){let{file:Z,handle:J}=$;if($.file=void 0,$.handle=void 0,Z&&J)await i(Z,"log-close",()=>J.close())}async function L2($,Z){await G0(y7(Z));try{await d(Z,"file",!0)}catch(J){if(J.code!=="ENOENT")throw J;try{await s0(Z,"")}catch(z){if(z.code!=="EEXIST")throw z;await d(Z,"file",!0)}}return $.handle=await i(Z,"log-open",()=>x7(Z,"a")),$.file=Z,$.handle}async function h7($,Z,J){Z=g7(Z);try{if($.file!==Z)await B0($);let z=$.handle??await L2($,Z);if((await i(Z,"log-stat",()=>z.stat())).size>=P2){await B0($);for(let G=C2-1;G>=0;G--){let Q=G===0?Z:`${Z}.${G}`,W=`${Z}.${G+1}`;try{await d(Q,"file",!0)}catch(H){if(H.code==="ENOENT")continue;throw H}try{await d(W,"file",!0)}catch(H){if(H.code!=="ENOENT")throw H}await E3(Q,W),await d(W,"file")}z=await L2($,Z)}await i(Z,"log-append",()=>z.appendFile(J,"utf8"))}catch(z){throw await B0($).catch(()=>{}),z}}function m7($){try{return` ${JSON.stringify($)}`}catch{return" [unserializable]"}}function w7($){let Z,J,z,X=i0(),G,Q=[],W,H=Promise.resolve(),q,Y={};function U(F){let K=H.then(F);return H=K.catch((V)=>{q=V}),K}function M(F){if(_&&F.file!==Z)U(()=>B0(Y)).catch(()=>{});Z=F.file,J=F.level,X=i0(F),G=F.captureSink}function B(F){if(F===void 0||F in c1)z=F}function L(){if(Z===void 0)return;return(typeof Z==="function"?Z():Z)||void 0}function C(){if(z)return z;let F=typeof J==="function"?J():J;if(F&&F in c1)return F;return"info"}function A(F=!0){if(W)clearTimeout(W),W=void 0;if(!Q.length){if(_)return U(async()=>{if(F)await B0(Y);if(q)throw q});return}let K;try{K=L()}catch{if(Q=[],_&&F)return U(()=>B0(Y));return}let V=Q.join("");if(Q=[],!K){if(_&&F)return U(()=>B0(Y));return}if(_)return U(async()=>{try{await h7(Y,K,V)}finally{if(F)await B0(Y)}});try{if(v7(K),b3(K))f3(K);E7(K,V,{encoding:"utf8",mode:384})}catch{}}function I(){if(!W)W=setTimeout(()=>{W=void 0;let F=A(!1);if(F instanceof Promise)F.catch(()=>{})},500)}function R(F,K,V,P){if(Z===void 0&&G===void 0)return;try{if(c1[K]>c1[C()])return;let x=X.redactStrings(V),k;try{k=X.redact(P)}catch{k="[unserializable]"}let y=`[${new Date().toISOString()}] ${K.toUpperCase()} [${F}] ${x}`+(P===void 0?"":m7(k))+`
3
3
  `;try{G?.({channel:F,level:K,message:x,data:k})}catch{}if(Z===void 0)return;if(Q.push(y),Q.length>=50){let $0=A(!1);if($0 instanceof Promise)$0.catch(()=>{})}else I()}catch{}}function h(F){return{error:(K,V)=>R(F,"error",K,V),warn:(K,V)=>R(F,"warn",K,V),info:(K,V)=>R(F,"info",K,V),debug:(K,V)=>R(F,"debug",K,V),trace:(K,V)=>R(F,"trace",K,V)}}function m(){if(_)U(()=>B0(Y)).catch(()=>{});if(q=void 0,Q=[],W)clearTimeout(W),W=void 0;Z=void 0,J=void 0,z=void 0,X=i0(),G=void 0}if($)M($);return{configure:M,createLogger:h,setLogLevel:B,flushLogs:A,reset:m}}var u7=w7();function Q0($){return u7.createLogger($)}function S0($){let Z=new AbortController,J=[],z=!1,X=()=>{if(z)return;z=!0;for(let{source:W,listener:H}of J)W.removeEventListener("abort",H);J.length=0},G=(W)=>{if(z||Z.signal.aborted)return;Z.abort(W),X()},Q=$.find((W)=>W.aborted);if(Q)return Z.abort(Q.reason),{signal:Z.signal,dispose:X};for(let W of $){if(Z.signal.aborted)break;let H=()=>G(W.reason);if(J.push({source:W,listener:H}),W.addEventListener("abort",H,{once:!0}),W.aborted)G(W.reason)}return{signal:Z.signal,dispose:X}}import{ClaustrumCredentialError as t2}from"@cortexkit/claustrum-client";import{createHash as Z8,randomBytes as J8,randomUUID as z8}from"node:crypto";import{constants as y2}from"node:fs";import{chmod as X8,mkdir as G8,open as m2,readFile as v3,realpath as Q8,rename as W8,stat as w2,unlink as m3}from"node:fs/promises";import{basename as H8,dirname as T0,extname as ZX,isAbsolute as JX,join as Y8,resolve as zX}from"node:path";import{ClaustrumCredentialError as U8,ClaustrumClient as GX,writeEnrollmentTokenFile as q8}from"@cortexkit/claustrum-client";import{lstat as c7}from"node:fs/promises";import{resolve as p7}from"node:path";async function d7($){try{let Z=await c7($);return Z.isFile()?Z:void 0}catch(Z){return Z.code==="ENOENT"?"absent":void 0}}function l7($,Z){if($==="absent"||Z==="absent")return $===Z;return $.dev===Z.dev&&$.ino===Z.ino&&$.size===Z.size&&$.mtimeMs===Z.mtimeMs&&$.ctimeMs===Z.ctimeMs}class M1{#$=new Map;async read($,Z,J){let z=$.map((q)=>p7(q)),X=JSON.stringify(z),G=await Promise.all(z.map(d7)),Q=G.every((q)=>q!==void 0)?G:void 0,W=this.#$.get(X);if(Q&&W&&Q.every((q,Y)=>{let U=W.identities[Y];return U!==void 0&&l7(q,U)}))return J?.(Q),W.value;this.#$.delete(X);let H=await Z(z);if(Q){if(this.#$.size>=64){let q=this.#$.keys().next().value;if(q!==void 0)this.#$.delete(q)}this.#$.set(X,{identities:Q,value:H})}return H}}import{randomUUID as O2}from"node:crypto";import{mkdir as a7,open as A2,rename as s7,rm as n7}from"node:fs/promises";import{dirname as I2}from"node:path";class p1 extends Error{constructor($){super("file or directory sync failed",{cause:$});this.name="AtomicSyncError"}}async function D1($,Z,J={}){await _2($,Z,J)}async function _2($,Z,J,z){if(_)return n0($,J.serialize?J.serialize(Z):`${JSON.stringify(Z,null,2)}
4
4
  `,{beforeRename:J.beforeRename,stagePath:`${$}.${(J.stageName??O2)()}.tmp`,onRenamed:z,durable:J.durable,durability:J.durability,onOutcome:J.onOutcome});await a7(I2($),{recursive:!0});let X=`${$}.${(J.stageName??O2)()}.tmp`,G,Q=!1;try{if(G=await A2(X,"wx",384),Q=!0,await G.writeFile(J.serialize?J.serialize(Z):`${JSON.stringify(Z,null,2)}
5
5
  `,"utf8"),await G.chmod(384),J.durable)try{await G.sync()}catch(W){throw new p1(W)}if(await G.close(),G=void 0,await J.beforeRename?.(),await s7(X,$),Q=!1,z?.(),J.durable){let W=await A2(I2($),"r");try{await W.sync()}catch(H){throw new p1(H)}finally{await W.close()}}}finally{if(await G?.close().catch(()=>{}),Q)await n7(X,{force:!0}).catch(()=>{})}}var i7=Object.freeze({sidebar:Object.freeze({name:"sidebar-write",ttlMs:1e4,timeoutMs:15000,renew:!0}),preferences:Object.freeze({name:"preferences",ttlMs:1e4,timeoutMs:2000,renew:!0})});import{randomUUID as d1}from"node:crypto";import{lstat as g3,mkdir as R2,open as f2,readFile as S2,rename as k2,rm as L1,stat as l1}from"node:fs/promises";import{dirname as y3,join as T2}from"node:path";function N1($,Z){return`${$}.${Z}.lock`}class P0 extends Error{details;constructor($){super(`Timed out acquiring ${$.name} lock for ${$.target}`);this.name="LockContentionError",this.details=$}}class V0 extends Error{details;constructor($){super(`Lost ${$.name} lock for ${$.target}`);this.name="LockOwnershipError",this.details=$}}async function x3($,Z,J){let z=performance.now();for(;;){Z.signal?.throwIfAborted();let X=await j0({path:$,name:Z.name,ttlMs:Z.ttlMs,renew:Z.renew??!1,...Z.onStep?{onStep:Z.onStep}:{},...Z.onRenewalTimer?{onRenewalTimer:Z.onRenewalTimer}:{}});if(X)try{return Z.signal?.throwIfAborted(),await J(X)}finally{await X.release(Z.signal)}let G=Z.timeoutMs-(performance.now()-z);if(G<=0)throw new P0({target:$,name:Z.name,timeoutMs:Z.timeoutMs});await new Promise((Q)=>setTimeout(Q,Math.min(25,Math.ceil(G))))}}async function E2($,Z){let J=await f2($,"wx",384),z;try{z=await J.stat()}catch{z=void 0}try{await J.writeFile(Z,"utf8")}catch(X){try{let G=await g3($).catch(()=>{return});if(z&&G&&G.dev===z.dev&&G.ino===z.ino)await L1($,{force:!0}).catch(()=>{})}catch{}throw X}finally{await J.close()}}var o7=globalThis.setTimeout.bind(globalThis),r7=globalThis.clearTimeout.bind(globalThis);function x2($){let Z=$?.code;return Z==="ENOENT"||!_&&(Z==="EINVAL"||Z==="ENOTDIR")}var b2;function t7($,Z){if($.dev!==Z.dev||$.ino!==Z.ino)return!1;if($.ino===0&&$.birthtimeMs!==Z.birthtimeMs)return!1;return!0}var e7=1000;function j0($){return $8({...$,now:Date.now})}async function $8($){let Z=N1($.path,$.name),J=T2(Z,"owner.json"),z=d1(),X=$.now??Date.now,G=null,Q=!1,W=!1,H,q,Y=new Promise((j)=>{q=j});function U(j){try{let D=$.onRenewalTimer?.(j);if(D&&(typeof D==="object"||typeof D==="function")&&"then"in D&&typeof D.then==="function")Promise.resolve(D).catch(()=>{})}catch{}}function M(){if(!G)return;r7(G),G=null,U("cancelled")}function B(j,D){if(H||Q)return;H=Object.freeze({reason:j,expectedOwnerId:z,...typeof D?.ownerId==="string"?{observedOwnerId:D.ownerId}:{},...typeof D?.expiresAt==="number"?{observedExpiresAt:D.expiresAt}:{}}),M(),q(H)}let L,C=null,A=`${Z}.evicting`,I=T2(A,"owner.json"),R=d1(),h=5000,m=8;async function F(){if(_)try{return JSON.parse(await Z0(Z,!0))}catch(j){if(j.code!=="EISDIR"&&j.reason!=="wrong-kind")throw j;return await d(Z,"directory",!0),JSON.parse(await Z0(J,!0))}try{return JSON.parse(await S2(Z,"utf8"))}catch(j){if(j.code!=="EISDIR")throw j;return JSON.parse(await S2(J,"utf8"))}}async function K(){if(_){let g=await F(),v=Number(g?.expiresAt)-X();await n0(Z,`${JSON.stringify({ownerId:z,expiresAt:X()+$.ttlMs})}
@@ -1,2 +1,2 @@
1
1
  var t=["claude-account","claude-cache","claude-cachekeep","claude-prime","claude-start","claude-quota","claude-dump","claude-fast","claude-routing","claude-killswitch","claude-logging"];
2
- export{t as r};
2
+ export{t as u};
@@ -1,2 +1,2 @@
1
1
  import{existsSync as $,readFileSync as F}from"node:fs";import{homedir as Y}from"node:os";import{dirname as X,join as J,resolve as V}from"node:path";import{fileURLToPath as Z}from"node:url";var b="@cortexkit/opencode-anthropic-auth",G="@cortexkit/pi-anthropic-auth";function W(q=process.env,w=process.platform){return(w==="win32"?q.USERPROFILE||q.HOME:q.HOME)||Y()}function K(q=process.env,w=process.platform){let B=q.OPENCODE_CONFIG_DIR?.trim();if(B)return V(B);return J(q.XDG_CONFIG_HOME||J(W(q,w),".config"),"opencode")}function I(q=process.env){let w=q.XDG_DATA_HOME?.trim();if(w)return J(V(w),"opencode");return J(Y(),".local","share","opencode")}function M(q=process.env){return J(I(q),"auth.json")}function R(q=process.env,w=process.platform){let B=q.PI_CODING_AGENT_DIR?.trim()||q.PI_AGENT_DIR?.trim();if(B)return V(B);return J(W(q,w),".pi","agent")}function k(q=process.env){let w=q.PI_CODING_AGENT_DIR,B=W(q),z=w||J(B,".pi","agent");if(z==="~")z=B;else if(z.startsWith("~/")||process.platform==="win32"&&z.startsWith("~\\"))z=J(B,z.slice(2));if(z.startsWith("file://"))z=Z(z);return J(z,"auth.json")}async function x(){let q=X(Z(import.meta.url));for(let w=0;w<5;w++){let B=J(q,"package.json");if($(B))try{let Q=JSON.parse(F(B,"utf8"));if(typeof Q.version==="string"&&Q.version.trim())return Q.version.trim()}catch{}let z=X(q);if(z===q)break;q=z}return"1.22.0"}
2
- export{b as A,G as B,K as C,M as D,R as E,k as F,x as G};
2
+ export{b as D,G as E,K as F,M as G,R as H,k as I,x as J};
@@ -1,2 +1,2 @@
1
1
  import{mkdir as I,readdir as J,readFile as K,rename as L,unlink as M,writeFile as N}from"node:fs/promises";import{join as H}from"node:path";import{writerStamp as Q}from"@cortexkit/anthropic-auth-core";function R(q){try{return process.kill(q,0),!0}catch(z){return z.code==="EPERM"}}async function X(q,z){await I(q,{recursive:!0});let G={...z,startedAt:Date.now(),writer:Q()},B=H(q,`port-${z.pid}.json`),D=`${B}.${process.pid}.tmp`;return await N(D,JSON.stringify(G),{encoding:"utf8",mode:384}),await L(D,B),B}async function Y(q,z){let G;try{G=await J(q)}catch{return null}let B=[];for(let C of G){if(!C.startsWith("port-")||!C.endsWith(".json"))continue;try{let E=JSON.parse(await K(H(q,C),"utf8"));if(Number.isFinite(E.port))if(R(E.pid))B.push(E);else M(H(q,C)).catch(()=>{})}catch{}}if(B.length===0)return null;let D=z&&z>=1?B.filter((C)=>C.pid===z):[];return(D.length>0?D:B).sort((C,E)=>E.startedAt-C.startedAt)[0]??null}
2
- export{X as ga,Y as ha};
2
+ export{X as ja,Y as ka};
@@ -1,2 +1,2 @@
1
1
  import{randomUUID as E}from"node:crypto";import{mkdir as g,readFile as y,rename as S,rm as O,rmdir as w,stat as D,unlink as m,writeFile as b}from"node:fs/promises";import{tmpdir as d}from"node:os";import{dirname as v,join as f}from"node:path";import{formatQuota as c,isQuotaStale as s,logger as C,quotaDisplayProjection as I,quotaWindowParts as u}from"@cortexkit/anthropic-auth-core";var i="OPENCODE_ANTHROPIC_AUTH_SIDEBAR_STATE_FILE",l=f(d(),"opencode-anthropic-auth"),n=f(l,"sidebar-state.json");function P(){return process.env[i]||n}var H={main:{quota:null},fallbacks:[],route:"main",relay:null,fastMode:!1,lastUpdated:0};function Q(J){return J!==null&&typeof J==="object"&&!Array.isArray(J)}function z(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),x=Number(J.since);if(![Z,V,X,x].every(Number.isFinite)||Z<0||V<0||X<0||x<0)return;return{count:Math.floor(Z),inputTokens:Math.floor(V),outputTokens:Math.floor(X),since:Math.floor(x)}}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(z(J.nextDueAt))Z.nextDueAt=J.nextDueAt;if(J.lastPrimedAt===null)Z.lastPrimedAt=null;else if(z(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(z(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,...typeof J.resetsAt==="string"&&{resetsAt:J.resetsAt},...z(J.checkedAt)&&{checkedAt:J.checkedAt}}}function R(J){if(!Q(J))return null;let Z={};if(z(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 x=J.scoped.map((Y)=>{if(!Q(Y))return;let G=q(Y);if(!G)return;if(typeof Y.id!=="string"||!Y.id.trim())return;if(typeof Y.title!=="string"||!Y.title.trim())return;if(typeof Y.modelName!=="string"||!Y.modelName.trim())return;let $=typeof Y.modelId==="string"&&Y.modelId.trim()?Y.modelId.trim():void 0;return{...G,id:Y.id.trim(),title:Y.title.trim(),...$&&{modelId:$},modelName:Y.modelName.trim()}}).filter((Y)=>Y!=null);Z.scoped=x}if(Q(J.extraUsage)){let x=A(J.extraUsage.used),Y=A(J.extraUsage.limit);if(x&&Y&&typeof J.extraUsage.exhausted==="boolean")Z.extraUsage={used:x,limit:Y,...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 k(J){if(!Q(J))return{...H};let Z={quota:null};if(Q(J.main)){let $=J.main;if(Z.quota=R($.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(z($.quotaBackoffUntil))Z.quotaBackoffUntil=$.quotaBackoffUntil;if(typeof $.refreshBackedOff==="boolean")Z.refreshBackedOff=$.refreshBackedOff;if(z($.refreshBackoffUntil))Z.refreshBackoffUntil=$.refreshBackoffUntil}let V=Array.isArray(J.fallbacks)?J.fallbacks.filter(Q).filter(($)=>typeof $.id==="string").map(($)=>({id:$.id,...typeof $.label==="string"&&{label:$.label},quota:R($.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},...typeof $.tierLabel==="string"&&$.tierLabel.trim()&&{tierLabel:$.tierLabel.trim()}})):[],X=null;if(Q(J.relay)){let $=J.relay;if(typeof $.enabled==="boolean"&&typeof $.transport==="string")X={enabled:$.enabled,transport:$.transport}}let x;if(Q(J.cacheKeep)){let $=J.cacheKeep;if(typeof $.enabled==="boolean")x={enabled:$.enabled,...typeof $.window==="string"&&{window:$.window},...z($.trackedSessions)&&{trackedSessions:$.trackedSessions}}}let Y=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,...typeof $.requestedModelId==="string"&&{requestedModelId:$.requestedModelId},...typeof $.targetModelId==="string"&&{targetModelId:$.targetModelId}}]}):[],G=a(J.prime);return{main:Z,fallbacks:V,...typeof J.activeId==="string"&&{activeId:J.activeId},route:typeof J.route==="string"?J.route:H.route,relay:X,fastMode:typeof J.fastMode==="boolean"?J.fastMode:H.fastMode,...x&&{cacheKeep:x},...G&&{prime:G},...Y.length>0&&{fableRecoveries:Y},lastUpdated:z(J.lastUpdated)?J.lastUpdated:0}}var W=Promise.resolve(),t=1000,e=2000,JJ=5,ZJ=15,M=new Map;function HJ(J,Z=P()){if(J)M.set(Z,J);else M.delete(Z)}function U(J){return M.get(J)}var p=null;function WJ(J){p=J}function UJ(){return p}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,x=V?.lockRetryMinMs??JJ,Y=V?.lockRetryMaxMs??ZJ,G=Date.now()+X;while(!0){try{await g(Z);let K=E(),j=f(Z,K);return await b(j,"",{encoding:"utf8",mode:384,flag:"wx"}),await V?.onLockAcquired?.(Z),{ownsLock:async()=>{try{return await D(j),!0}catch{return!1}},release:async()=>{try{await m(j)}catch{return}await V?.beforeReleaseDirectoryRemoval?.(Z),await w(Z).catch(()=>{})}}}catch(K){if(K.code!=="EEXIST")return C.trace("sidebar","state lock unavailable; write skipped",{stateFile:J,error:K instanceof Error?K.message:String(K)}),null}try{let K=await D(Z);if(Date.now()-K.mtimeMs>e){await V?.afterStaleLockStat?.(Z);let j=`${Z}.evict-${process.pid}-${E()}`;try{await S(Z,j)}catch(N){if(N.code==="ENOENT")continue;throw N}await V?.onStaleLockClaimed?.(Z),await O(j,{recursive:!0,force:!0}).catch(()=>{});continue}}catch(K){if(K.code==="ENOENT")continue;return C.trace("sidebar","state lock inspection failed; write skipped",{stateFile:J,error:K instanceof Error?K.message:String(K)}),null}let $=G-Date.now();if($<=0)return C.warn("sidebar","lock budget exhausted, write skipped",{stateFile:J,budgetMs:X}),null;let B=x+Math.floor(Math.random()*(Y-x+1));await $J(Math.min(B,$))}}async function qJ(J){return(await F(J))?.release??null}async function VJ(J,Z,V){let X=U(J),x=`${J}.${process.pid}.${E()}.tmp`;await b(x,JSON.stringify(Z),{encoding:"utf8",mode:384});try{if(!await V())return C.trace("sidebar","state lock lost before rename; write aborted",{stateFile:J}),await O(x,{force:!0}).catch(()=>{}),"lock-lost-before-rename";if(await X?.beforeRename?.(J,x),!await V())return C.trace("sidebar","state lock lost before rename; write aborted",{stateFile:J}),await O(x,{force:!0}).catch(()=>{}),"lock-lost-before-rename";if(await S(x,J),await U(J)?.afterRename?.(J),!await V())return"lock-lost-after-rename";return"written"}catch(Y){throw await O(x,{force:!0}).catch(()=>{}),Y}}async function T(J=P()){try{let Z=await y(J,"utf8");return k(JSON.parse(Z))}catch{return H}}async function LJ(J,Z=P(),V={}){return W=W.then(async()=>{await g(v(Z),{recursive:!0});for(let X=0;X<2;X++){let x=X===1,Y=await F(Z);if(!Y){if(x)C.warn("sidebar","post-rename repair lock unavailable; write skipped",{stateFile:Z});return}let G=J,$;try{if(V.routingAuthoritative===!1){let B=await T(Z),K=await V.resolvePreservedRouting?.(B);if(K){let j=K.state??J;G={...j,activeId:K.activeId,route:K.route,lastUpdated:Math.max(j.lastUpdated,B.lastUpdated)}}await U(Z)?.afterMergeRead?.(Z)}else if(x){let B=await T(Z);G={...B,activeId:J.activeId,route:J.route,relay:J.relay,fastMode:J.fastMode,cacheKeep:J.cacheKeep,lastUpdated:Math.max(B.lastUpdated,J.lastUpdated)}}G=k(G),$=await VJ(Z,G,Y.ownsLock)}finally{await Y.release()}if($==="lock-lost-after-rename"){if(x){C.warn("sidebar","post-rename repair lost lock; write skipped",{stateFile:Z});return}C.warn("sidebar","state lock lost after rename; repairing write",{stateFile:Z});continue}if($==="lock-lost-before-rename")return;V.onRoutingResolved?.({activeId:G.activeId,route:G.route});return}}).catch(()=>{}),W}async function EJ(){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 YJ(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 MJ(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} ≈ $${YJ(J.estimatedCostUsd??0)}`,hasError:!1};return{text:"—",hasError:!1}}function fJ(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 PJ(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 xJ(J,Z=Date.now()){let V=J?.scoped??[];if(!V.length)return[];let{windows:X}=u(I({scoped:V},Z),{now:Z});return V.map((x)=>X.find((Y)=>Y.kind==="window"&&Y.name===x.title)?.short||x.title)}function _J(J,Z=Date.now()){return Math.max(2,...J.flatMap((V)=>xJ(V,Z).map((X)=>Bun.stringWidth(X))))}var GJ=3;function DJ(J){let{width:Z,labelWidth:V,barWidth:X,figure:x,reset:Y}=J,G={barCells:X,reset:Y||void 0};if(Z===void 0)return G;let $=(j)=>V+1+(j.barCells>0?j.barCells+1:0)+Bun.stringWidth(x)+(j.reset?1+Bun.stringWidth(j.reset):0),B=Math.min(GJ,X),K=[G];for(let j=X;j>=B;j--)K.push({barCells:j});return K.find((j)=>$(j)<=Z)??{barCells:B}}function RJ(J,Z,V,X,x){if(!J||J.state==="on-pace")return null;let Y=x!==void 0&&x<=0,G=V==="now"||V==="0m"?"<1m":V,$=`${J.state} ${Math.round(Math.abs(J.deltaPercent))}%`,B=Y?X?`used up · resets in ${X}`:"used up":G?`${$} · out in ${G}`:`${$} · lasts to reset`;if(Z===void 0||Bun.stringWidth(B)<=Z)return B;if(Z<=0)return"";let K="";for(let j of B){if(Bun.stringWidth(K+j)>Z-1)break;K+=j}return`${K.trimEnd()}…`}function AJ(J,Z=Date.now()){let V=J?.five_hour?.usedPercent??null,X=J?.seven_day?.usedPercent??null,x=J?.scoped??[],Y=x.map(($)=>$.usedPercent);if(!J||V==null&&X==null&&x.length===0&&!J.extraUsage)return{fiveHourUsedPercent:V,sevenDayUsedPercent:X,scopedUsedPercents:Y,text:null,stale:!1};let G=I(J,Z);return{fiveHourUsedPercent:V,sevenDayUsedPercent:X,scopedUsedPercents:Y,text:c(G,{now:Z,form:"narrow"}),stale:s(G,{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",blocked:J.main?.enabled===!1||Boolean(J.main?.stateLine)},...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,blocked:!X.enabled||Boolean(X.stateLine)||X.needsReauth||X.vaultReauth===!0||X.custodyState!=null&&X.custodyState!=="off"&&X.custodyState!=="on-vault-served"})):[]]}var hJ=18000000,gJ=604800000,KJ=300000,jJ=0.01,BJ=1;function SJ(J,Z,V){if(!J.resetsAt)return null;let X=new Date(J.resetsAt).getTime();if(!Number.isFinite(X))return null;let x=X-Z,Y=V-x;if(Y<KJ)return null;if(Y<Z*jJ)return null;if(Y>=Z)return null;let G=J.usedPercent,$=Math.min(Math.max(Y/Z*100,0),100),B=G-$,K=Math.abs(B)<BJ?"on-pace":B>0?"deficit":"reserve",j=null;if(G>0){let N=Y*100/G,_=x+N;if(_<X)j=new Date(_).toISOString()}return{pacePercent:$,deltaPercent:B,state:K,runsOutAt:j}}
2
- export{P as H,H as I,k as J,HJ as K,WJ as L,UJ as M,qJ as N,T as O,LJ as P,EJ as Q,XJ as R,L as S,h as T,YJ as U,MJ as V,fJ as W,PJ as X,xJ as Y,_J as Z,GJ as _,DJ as $,RJ as aa,AJ as ba,TJ as ca,hJ as da,gJ as ea,SJ as fa};
2
+ export{P as K,H as L,k as M,HJ as N,WJ as O,UJ as P,qJ as Q,T as R,LJ as S,EJ as T,XJ as U,L as V,h as W,YJ as X,MJ as Y,fJ as Z,PJ as _,xJ as $,_J as aa,GJ as ba,DJ as ca,RJ as da,AJ as ea,TJ as fa,hJ as ga,gJ as ha,SJ as ia};
@@ -0,0 +1,2 @@
1
+ import{M}from"./index-d4e8qj37.js";import{logger as R}from"@cortexkit/anthropic-auth-core";var K=(f)=>f!==null&&typeof f==="object"&&!Array.isArray(f),X=(f)=>K(f)&&typeof f.sessionId==="string"&&f.sessionId.length>0,U=(f)=>{if(!X(f)||!K(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&&(!K(f.values)||!Object.values(f.values).every((j)=>j===null||typeof j==="string"||typeof j==="boolean"||typeof j==="number"&&Number.isFinite(j))))return!1;return!0};function H(f){return{"~standard":{version:1,vendor:"cortexkit-native",validate:(j)=>f(j)?{value:j}:{issues:[{message:"Invalid native menu payload"}]}}}}var A=(f)=>K(f)&&f.command==="claude"&&K(f.menu)&&f.menu.command==="claude"&&typeof f.menu.title==="string"&&Array.isArray(f.menu.sections),V=(f)=>K(f)&&f.command==="claude"&&typeof f.ok==="boolean"&&typeof f.text==="string"&&(f.authorizationUrl===void 0||typeof f.authorizationUrl==="string")&&K(f.menu)&&Array.isArray(f.menu.sections),L=!1,$=(f,j,B=new Set)=>{if(f===null||typeof f==="string"||typeof f==="boolean")return f;if(typeof f==="number"&&Number.isFinite(f))return f;if(typeof f==="object"&&f!==null&&!B.has(f)){if(B.add(f),Array.isArray(f)){let Q=Array.from(f,(D,G)=>$(D,`${j}[${G}]`,B)??null);return B.delete(f),Q}if(Object.getPrototypeOf(f)===Object.prototype||Object.getPrototypeOf(f)===null){let Q=Object.fromEntries(Object.entries(f).flatMap(([D,G])=>{let W=$(G,`${j}.${D}`,B);return W===void 0?[]:[[D,W]]}));return B.delete(f),Q}B.delete(f)}if(!L)L=!0,R.warn("sidebar","Dropped non-JSON sidebar field",{path:j});return},E={"~standard":{version:1,vendor:"cortexkit-native",validate:(f)=>{let j=M(f);return{value:$(j,"sidebar")}}}},F={id:"cortexkit-anthropic-native",methods:{open:{input:H(X),output:H(A)},apply:{input:H(U),output:H(V)},sidebar:{input:H(X),output:E}},events:{opened:{schema:H((f)=>X(f)&&A(f.payload))},notification:{schema:H((f)=>X(f)&&typeof f.message==="string"&&["info","warning","error"].includes(String(f.kind)))}}};async function T(f,j,B){let Q=new AbortController,D=(q)=>({sessionId:q,notify(Y,Z="info"){G.events.emit("notification",{sessionId:q,message:Y,kind:Z}).catch(()=>{})}}),G=await f.rpc.register(F,{open:(q)=>j.open(D(q.sessionId)),apply:(q)=>j.apply(q,D(q.sessionId)),sidebar:(q)=>B.readSidebar(q.sessionId)}),W;try{W=await f.command.transform((q)=>q.add({name:"claude",description:"Native Claude accounts and settings",async execute(Y){let Z=await j.open(D(Y.sessionID));await G.events.emit("opened",{sessionId:Y.sessionID,payload:Z})}}))}catch(q){throw await G.dispose(),q}let P=(async()=>{try{for await(let q of f.event.subscribe({signal:Q.signal}))if(q.type==="session.deleted")B.forgetSession(q.data.sessionID)}catch{}})(),z=!1;return{async dispose(){if(z)return;z=!0,Q.abort(),await Promise.all([G.dispose(),W.dispose(),P])}}}
2
+ export{F as x,T as y};
@@ -1 +1 @@
1
- import{createHash as z}from"node:crypto";import{homedir as F,tmpdir as T}from"node:os";import{join as G,resolve as J}from"node:path";import{anthropicAuthStateRoot as K}from"@cortexkit/anthropic-auth-core";var L="OPENCODE_ANTHROPIC_AUTH_RPC_DIR";function X(b){let g=process.env[L]?.trim();if(g)return J(b,g);let q=z("sha256").update(b).digest("hex").slice(0,16),w=K({xdgStateHome:process.env.XDG_STATE_HOME,home:F(),acceptRelative:!0});return G(w,"rpc",q)}export{T as s,X as t};
1
+ import{createHash as z}from"node:crypto";import{homedir as F,tmpdir as T}from"node:os";import{join as G,resolve as J}from"node:path";import{anthropicAuthStateRoot as K}from"@cortexkit/anthropic-auth-core";var L="OPENCODE_ANTHROPIC_AUTH_RPC_DIR";function X(b){let g=process.env[L]?.trim();if(g)return J(b,g);let q=z("sha256").update(b).digest("hex").slice(0,16),w=K({xdgStateHome:process.env.XDG_STATE_HOME,home:F(),acceptRelative:!0});return G(w,"rpc",q)}export{T as v,X as w};
@@ -1,2 +1,2 @@
1
1
  import{createRequire as q}from"node:module";var j=Object.create;var{getPrototypeOf:k,defineProperty:i,getOwnPropertyNames:l}=Object;var m=Object.prototype.hasOwnProperty;function n(a){return this[a]}var o,p,r=(a,b,d)=>{var f=a!=null&&typeof a==="object";if(f){var g=b?o??=new WeakMap:p??=new WeakMap,h=g.get(a);if(h)return h}d=a!=null?j(k(a)):{};let c=b||!a||!a.__esModule?i(d,"default",{value:a,enumerable:!0}):d;for(let e of l(a))if(!m.call(c,e))i(c,e,{get:n.bind(a,e),enumerable:!0});if(f)g.set(a,c);return c};var s=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports);var u=q(import.meta.url);
2
- export{r as ia,s as ja,u as ka};
2
+ export{r as la,s as ma,u as na};
@@ -1,2 +1,2 @@
1
1
  var b="native-claude-oauth",f="Claude Pro / Max (native account pool)",j='In OpenCode, sign in to Anthropic with "Claude Pro / Max (native account pool)".',k="native-claude-vault";
2
- export{b as w,f as x,j as y,k as z};
2
+ export{b as z,f as A,j as B,k as C};