@arcforge/axon 2.0.3 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.js +2 -2
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -1591,7 +1591,7 @@ ${o}`:A}var uVA=80;function Icn(t){let a=[`Axon Error: ${t.title}`,t.description
1591
1591
  `)},delete(){YBt(p,{force:!0})}}},text(c){let p=A(c);return{get(){return Rct(p)?KBt(p,"utf-8"):null},set(d){o(p,d)},delete(){YBt(p,{force:!0})}}},jsonl(c){let p=A(c);return{append(d){zta(Wta(p),{recursive:!0}),yVA(p,JSON.stringify(d)+`
1592
1592
  `,"utf-8")},read(){if(!Rct(p))return[];return KBt(p,"utf-8").split(`
1593
1593
  `).filter((d)=>d.trim()).map((d)=>JSON.parse(d))},delete(){YBt(p,{force:!0})}}},list(c){let p=A(c);return Rct(p)?CVA(p):[]},remove(c){YBt(A(c),{recursive:!0,force:!0})}}}function wVA(t){try{return process.kill(t,0),!0}catch{return!1}}function kVA(t){if(!Ecn(t))return[];return _VA(t,{withFileTypes:!0}).filter((a)=>a.isDirectory()).map((a)=>a.name)}function _cn(t={}){let a=t.root??Uct(Vta(),".axon"),A=Zta({root:a}),o=A.json("profiles/index.json"),c=A.text("env");function p(d){let h=`profiles/${d}`;return{id:d,record:A.json(`${h}/profile.json`),settings:A.json(`${h}/settings.json`),history:A.jsonl(`${h}/history.jsonl`),base:{root:Uct(a,h,"base"),manifest:A.json(`${h}/base.json`)},agents:{extraRoots(){return(A.json(`${h}/settings.json`).get()?.agentPaths??[]).map((E)=>E.startsWith("~")?Uct(Vta(),E.slice(1)):QVA(E))},path(B){let E=Uct(a,h,"agents",B);if(Ecn(E))return E;for(let k of this.extraRoots()){let v=Uct(k,B);if(Ecn(v))return v}return E},list(){let B=A.list(`${h}/agents`),E=new Set(B),k=[...B];for(let v of this.extraRoots())for(let F of kVA(v))if(!E.has(F))E.add(F),k.push(F);return k}}}}return{root:a,env:{get(){return c.get()?.trim()==="local"?"local":"cloud"},set(d){c.set(d)}},profiles:{active(){let d=o.get();return d?p(d.userId):null},current(){let d=o.get();if(!d)return null;let h=p(d.userId).record.get();return h?{id:d.userId,record:h}:null},save(d,h){let B=h.user.email;p(B).record.set(h),o.set({userId:B})},activate(d){o.set({userId:d})},deactivate(){o.delete()},list(){return A.list("profiles").filter((d)=>d!=="index.json")},get:p,delete(d){if(o.get()?.userId===d)o.delete();A.remove(`profiles/${d}`)}},cache:{file(d){return A.json(`cache/${d}.json`)}},history:{append(d,h){let B=o.get();if(!B)throw ho("NOT_AUTHENTICATED");let E={id:crypto.randomUUID(),content:d,agentName:h,createdAt:new Date().toISOString()};A.jsonl(`profiles/${B.userId}/history.jsonl`).append(E)},recent(d=50){let h=o.get();if(!h)return[];return A.jsonl(`profiles/${h.userId}/history.jsonl`).read().slice(-d).reverse()}},running:{start(d){A.json(`running/${d.sessionId}.json`).set(d)},stop(d){A.json(`running/${d}.json`).delete()},list(){let d=[];for(let h of A.list("running")){if(!h.endsWith(".json"))continue;let B=h.replace(/\.json$/,""),E=A.json(`running/${B}.json`).get();if(!E)continue;if(wVA(E.pid))d.push(E);else A.json(`running/${B}.json`).delete()}return d}},state:{get(){let d=o.get();if(!d)return null;return A.json(`profiles/${d.userId}/state.json`).get()??{}},update(d){let h=o.get();if(!h)throw ho("NOT_AUTHENTICATED");A.json(`profiles/${h.userId}/state.json`).update({},d)}}}}function Xta(){return{}}function DVA(){let t=process.platform==="darwin"?["sox","ffmpeg"]:process.platform==="win32"?["sox","ffmpeg"]:["arecord","sox","ffmpeg"];for(let a of t)if(Bun.which(a))return a;return null}function xVA(t,a){let A=String(a);if(t==="arecord")return["-t","raw","-f","S16_LE","-r",A,"-c","1","-"];if(t==="sox"){if(process.platform==="darwin")return["-d","-r",A,"-c","1","-e","signed-integer","-b","16","-t","raw","-"];if(process.platform==="win32")return["-d","-r",A,"-c","1","-e","signed-integer","-b","16","-t","raw","-"];return["-t","alsa","default","-r",A,"-c","1","-e","signed-integer","-b","16","-t","raw","-"]}if(process.platform==="darwin")return["-f","avfoundation","-i",":0","-ac","1","-ar",A,"-f","s16le","-"];if(process.platform==="win32")return["-f","dshow","-i","audio=default","-ac","1","-ar",A,"-f","s16le","-"];return["-f","alsa","-i","default","-ac","1","-ar",A,"-f","s16le","-"]}function ena(t){let a=null,A=null,o=!1,c=[],p=t.windowSamples*2,d=new Uint8Array(p),h=0;function B(k){if(k.length>=p){d.set(k.subarray(k.length-p)),h=p;return}d.copyWithin(0,k.length),d.set(k,p-k.length),h=Math.min(p,h+k.length)}async function E(){if(!A)return;o=!0;try{while(o){let{value:k,done:v}=await A.read();if(v)break;if(k)c.push(k),B(k)}}catch{}}return{async start(){if(a)throw ho("MIC_ALREADY_CAPTURING");let k=DVA();if(!k)throw ho("MIC_CAPTURE_UNAVAILABLE");if(a=Bun.spawn([k,...xVA(k,t.sampleRate)],{stdin:"ignore",stdout:"pipe",stderr:"pipe"}),!a.stdout)throw a.kill(),a=null,ho("MIC_CAPTURE_FAILED",{detail:`${k} produced no stdout stream`,context:{backend:k}});if(A=a.stdout.getReader(),E(),await Promise.race([a.exited.then(()=>!0),new Promise((F)=>setTimeout(()=>F(!1),200))])){let F=await a.exited;throw a=null,ho("MIC_CAPTURE_FAILED",{detail:`${k} exited immediately (code ${F}) \u2014 is a microphone available?`,context:{backend:k,exitCode:F}})}},currentWindow(){let k=new Float32Array(t.windowSamples);if(h<p)return k;let v=new DataView(d.buffer,d.byteOffset,d.byteLength);for(let F=0;F<t.windowSamples;F++)k[F]=v.getInt16(F*2,!0)/32768;return k},isCapturing(){return a!==null},async stop(){if(o=!1,a)a.kill(),await a.exited.catch(()=>{});await A?.cancel().catch(()=>{}),a=null,A=null;let k=vVA(c);return c.length=0,d=new Uint8Array(p),h=0,FVA(k,t.sampleRate)}}}function vVA(t){let a=t.reduce((c,p)=>c+p.length,0),A=new Uint8Array(a),o=0;for(let c of t)A.set(c,o),o+=c.length;return A}function FVA(t,a){let A=new ArrayBuffer(44),o=new DataView(A),c=t.length;function p(d,h){for(let B=0;B<h.length;B++)o.setUint8(d+B,h.charCodeAt(B))}return p(0,"RIFF"),o.setUint32(4,36+c,!0),p(8,"WAVE"),p(12,"fmt "),o.setUint32(16,16,!0),o.setUint16(20,1,!0),o.setUint16(22,1,!0),o.setUint32(24,a,!0),o.setUint32(28,a*2,!0),o.setUint16(32,2,!0),o.setUint16(34,16,!0),p(36,"data"),o.setUint32(40,c,!0),new Blob([A,t.slice().buffer],{type:"audio/wav"})}var ana=jd(nna(),1);function SVA(t){let a=t.length,A=new Float32Array(a);for(let o=0;o<a;o++){let c=0.5*(1-Math.cos(2*Math.PI*o/(a-1)));A[o]=t[o]*c}return A}function NVA(t){let{bucketCount:a,minFreqHz:A,maxFreqHz:o}=t,c=Math.log2(A),p=Math.log2(o),d=[];for(let h=0;h<=a;h++)d.push(2**(c+(p-c)*h/a));return d}function Ana(t,a){let{fftSize:A,sampleRate:o,bucketCount:c}=a;if(t.length!==A)throw ho("MIC_FFT_SIZE_MISMATCH",{detail:`expected ${A} samples, got ${t.length}`,context:{expected:A,actual:t.length}});let p=SVA(t),d=new ana.default(A),h=d.createComplexArray();d.realTransform(h,Array.from(p)),d.completeSpectrum(h);let B=A/2,E=new Float32Array(B);for(let T=0;T<B;T++){let K=h[T*2],P=h[T*2+1];E[T]=Math.sqrt(K*K+P*P)}let k=NVA(a),v=Array(c).fill(0),F=o/A;for(let T=0;T<c;T++){let K=Math.max(0,Math.floor(k[T]/F)),P=Math.min(B-1,Math.ceil(k[T+1]/F)),ee=0,le=0;for(let he=K;he<=P;he++)ee+=E[he],le++;let de=le>0?ee/le:0,me=de>0?20*Math.log10(de):-120,Me=(k[T]+k[T+1])/2,Se=Math.max(0,Math.log2(Me/a.minFreqHz));v[T]=me+Se*a.gainPerOctaveDb}return v}var MVA=[64,4,2,1],GVA=[128,32,16,8];function ina(t,a){let A=Math.round(Math.min(1,Math.max(0,t))*a.length),o=0;for(let c=0;c<A;c++)o|=a[c];return o}function Kct(t){let a="";for(let A=0;A<t.length;A+=2){let o=t[A],c=t[A+1]??0,p=ina(o,MVA)|ina(c,GVA);a+=String.fromCodePoint(10240+p)}return a}var Yct={sampleRate:16000,fftSize:1024,tickMs:16,bucketCount:112,minFreqHz:80,maxFreqHz:6000,magnitudeSmoothing:0.6,smoothing:0.15,decayPerTick:0.5,headroomDb:24,floorFallRate:0.05,floorRiseRate:0.01,gainPerOctaveDb:6,gateThreshold:0.22,gateKneeWidth:0.1};function LVA(t,a){let{gateThreshold:A,gateKneeWidth:o}=a;if(t<=A)return 0;if(t>=A+o)return t;let c=(t-A)/o;return t*c}function rna(t={}){let a={...Yct,...t.config},A=ena({sampleRate:a.sampleRate,windowSamples:a.fftSize}),o=Array(a.bucketCount).fill(0),c=Array(a.bucketCount).fill(!1),p=Array(a.bucketCount).fill(0),d=Array(a.bucketCount).fill(!1),h=Array(a.bucketCount).fill(0),B=Kct(h),E=null;function k(){let v=A.currentWindow(),F=Ana(v,a);for(let T=0;T<F.length;T++){let K=F[T];if(!c[T])o[T]=K,c[T]=!0;else o[T]=o[T]+(K-o[T])*(1-a.magnitudeSmoothing);let P=o[T];if(!d[T])p[T]=P,d[T]=!0;else{let me=P<p[T]?a.floorFallRate:a.floorRiseRate;p[T]=p[T]+(P-p[T])*me}let ee=Math.min(1,Math.max(0,(P-p[T])/a.headroomDb)),le=LVA(ee,a),de=h[T];h[T]=le>=de?de+(le-de)*(1-a.smoothing):Math.max(le,de*a.decayPerTick)}B=Kct(h)}return{isActive(){return A.isCapturing()},waveform(){return B},async start(){await A.start(),o=Array(a.bucketCount).fill(0),c=Array(a.bucketCount).fill(!1),p=Array(a.bucketCount).fill(0),d=Array(a.bucketCount).fill(!1),h=Array(a.bucketCount).fill(0),B=Kct(h),E=setInterval(k,a.tickMs)},async stop(){if(E)clearInterval(E),E=null;let v=await A.stop();return h=Array(a.bucketCount).fill(0),B=Kct(h),v}}}function Vg(t,a){if(!t||typeof t!=="object"||Array.isArray(t))throw Error(`invalid response: ${a} is not an object`);return t}function ub(t,a){if(!Array.isArray(t))throw Error(`invalid response: ${a} is not an array`);return t.map((A)=>Vg(A,`${a} entry`))}function Es(t,a){let A=t[a];if(typeof A!=="string")throw Error(`invalid response: missing "${a}"`);return A}function Ad(t,a){let A=t[a];if(typeof A!=="number"||!Number.isFinite(A))throw Error(`invalid response: missing "${a}"`);return A}function zF(t,a){let A=t[a];if(typeof A!=="boolean")throw Error(`invalid response: missing "${a}"`);return A}function ag(t,a){let A=t[a];return typeof A==="string"?A:null}function ona(t){return{async transcribe(a,A){let o=A?.mimeType??"audio/wav",c=A?.format??"wav",p=a.type?a:new Blob([a],{type:o}),d=new FormData;d.append("audio",p,`audio.${c}`),d.append("format",c);let h=Vg(await t.http.form("/api/user/stt/transcribe",d),"transcription");return{text:Es(h,"text")}}}}function sna(t){async function*a(A){if(A.id!==void 0||A.url!==void 0)throw Error("engine targets by deployment id/url are not wired yet \u2014 pass a catalog model");if(A.model===void 0)throw Error('account default model is not wired yet \u2014 pass a catalog model, e.g. Axon({ model: "claude-sonnet-4-6" })');let{signal:o,...c}=A.request,p=await t.http.stream("/api/engine/stream",{model:A.model,request:c},o);for await(let d of TVA(p,o)){if(d.type==="error")throw Error(`engine stream failed: ${String(d.message)}`);yield d}}return{stream:a,async request(A){for await(let o of a(A))if(o.type==="done")return o.response;throw Error("ENGINE_NO_DONE: stream ended without a done event")}}}async function*TVA(t,a){let A=t.body.getReader(),o=new TextDecoder,c="",p=()=>{A.cancel()};a?.addEventListener("abort",p,{once:!0});try{while(!0){if(a?.aborted)return;let{done:d,value:h}=await A.read();if(d)break;c+=o.decode(h,{stream:!0});let B=c.split(`
1594
- `);c=B.pop()??"";for(let E of B){if(!E.startsWith("data: "))continue;let k=E.slice(6).trim();if(!k)continue;try{yield JSON.parse(k)}catch{continue}}}}finally{a?.removeEventListener("abort",p)}}function cna(t){let a=sna({http:t.http}),A=ona({http:t.http});return{engine:a,stt:A}}import{AsyncLocalStorage as qVA}from"async_hooks";function Qcn(){let t=new qVA;return{getStore:()=>t.getStore(),run:(a,A)=>t.run(a,A)}}var Pct=Qcn(),wcn=new Set;function PBt(t,a){let A={...t,durationMs:Date.now()-t.startedAt,...a!==void 0?{error:a}:{}};for(let o of wcn)o(A)}var kcn={current(){return Pct.getStore()},headers(){let t=Pct.getStore();if(!t)return;return{"x-axon-trace-id":t.traceId,"x-axon-span-id":t.spanId}},async span(t,a){let A=Pct.getStore(),o={traceId:A?.traceId??crypto.randomUUID(),spanId:crypto.randomUUID(),...A?{parentSpanId:A.spanId}:{},name:t,startedAt:Date.now()};return Pct.run(o,async()=>{try{let c=await a();return PBt(o),c}catch(c){throw PBt(o,c instanceof Error?c.message:String(c)),c}})},async adopt(t,a,A){let o={traceId:t.traceId,spanId:crypto.randomUUID(),...t.spanId!==void 0?{parentSpanId:t.spanId}:{},name:a,startedAt:Date.now()};return Pct.run(o,async()=>{try{let c=await A();return PBt(o),c}catch(c){throw PBt(o,c instanceof Error?c.message:String(c)),c}})},onSpanEnd(t){return wcn.add(t),()=>{wcn.delete(t)}}};function RVA(t){switch(t){case 401:return"AUTH_EXPIRED";case 403:return"FORBIDDEN";case 404:return"NOT_FOUND";case 409:return"CONFLICT";case 413:return"PAYLOAD_TOO_LARGE";case 429:return"RATE_LIMITED";case 503:return"SERVICE_UNAVAILABLE";default:return"SERVER_ERROR"}}class ate extends Error{code;status;path;data;constructor(t,a,A,o){super(A??`request to ${a} failed with status ${t}`);if(this.code=RVA(t),this.status=t,this.path=a,o)this.data=o}}var UVA="http://127.0.0.1:3099";function una(t){let a=t.baseUrl??UVA;function A(d){let h=new Headers(d),B=kcn.headers();if(B)for(let[k,v]of Object.entries(B))h.set(k,v);let E=t.token();if(E)h.set("Authorization",`Bearer ${E}`);return h}async function o(d,h){let B=a+d,E=h?.signal,k=[1000,2000,4000];for(let v=0;;v++){let F=A(h?.headers??void 0),T=await fetch(B,{...h,headers:F});if((T.status===503||T.status===429)&&v<k.length){if(E?.aborted)throw Error("request aborted");await new Promise((K,P)=>{let ee=setTimeout(K,k[v]);E?.addEventListener("abort",()=>{clearTimeout(ee),P(Error("request aborted"))},{once:!0})});continue}return T}}async function c(d,h){let B,E;try{let k=await d.text();if(k)try{let v=JSON.parse(k);if(B=v.message??v.statusMessage??(typeof v.error==="string"?v.error:void 0),v.data&&typeof v.data==="object"&&!Array.isArray(v.data))E=v.data}catch{B=k.slice(0,200)}}catch{}return new ate(d.status,h,B,E)}function p(d,h,B){return kcn.span(`http ${d} ${h}`,async()=>{let E=await o(h,{...B,method:d});if(!E.ok)throw await c(E,h);let k=await E.text();return k?JSON.parse(k):void 0})}return{get(d,h){return p("GET",d,{headers:{Accept:"application/json"},...h?{signal:h}:{}})},post(d,h,B){return p("POST",d,{headers:{"Content-Type":"application/json"},...h!==void 0?{body:JSON.stringify(h)}:{},...B?{signal:B}:{}})},patch(d,h,B){return p("PATCH",d,{headers:{"Content-Type":"application/json"},body:JSON.stringify(h),...B?{signal:B}:{}})},put(d,h,B){return p("PUT",d,{headers:{"Content-Type":"application/json"},body:JSON.stringify(h),...B?{signal:B}:{}})},async delete(d,h){await p("DELETE",d,h?{signal:h}:{})},form(d,h,B){return p("POST",d,{body:h,...B?{signal:B}:{}})},async stream(d,h,B){let E=await o(d,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify(h),...B?{signal:B}:{}});if(!E.ok)throw await c(E,d);return E}}}async function lna(t){let{readFile:a}=await import("fs/promises"),{existsSync:A,statSync:o}=await import("fs"),{basename:c,join:p}=await import("path");if(!A(t))throw Error(`bundle path does not exist: ${t}`);let d=o(t).isDirectory(),h=d?t:p(t,".."),B=d?p(t,"source.tar.gz"):t,E=p(h,"image.json");if(!d&&!B.endsWith(".tar.gz"))throw Error(`expected a bundle directory or a .tar.gz file, got: ${t}`);if(!A(B))throw Error(`bundle has no source.tar.gz at ${B} \u2014 run \`axon build\` first`);if(!A(E))throw Error(`bundle has no image.json at ${E} \u2014 run \`axon build\` first`);let k=await a(B);if(k.byteLength>52428800)throw Error(`bundle tarball is ${Math.round(k.byteLength/1024/1024)}MB \u2014 the registry limit is 50MB`);let v=p(h,"tool-globals.d.ts"),F=A(v)?await a(v,"utf-8"):null;return{config:await a(E,"utf-8"),tarball:k,tarballName:c(B),manifest:F}}function jBt(t){let a=`/api/user/deployments/${encodeURIComponent(t.id)}`;async function A(){let o=Vg(await t.http.get(`${a}/status`),"status");return{status:Es(o,"status"),...typeof o.url==="string"?{url:o.url}:{}}}return{id:t.id,status:A,async logs(o){let c=new URLSearchParams;if(o?.limit!==void 0)c.set("limit",String(o.limit));let p=Vg(await t.http.get(`${a}/logs${c.size?`?${c}`:""}`),"logs");return Array.isArray(p.entries)?p.entries.flatMap((d)=>{if(!d||typeof d!=="object")return[];let h=d;return typeof h.timestamp==="string"&&typeof h.severity==="string"&&typeof h.message==="string"?[{timestamp:h.timestamp,severity:h.severity,message:h.message}]:[]}):[]},async start(){await t.http.post(`${a}/start`,{})},async stop(){await t.http.post(`${a}/stop`,{})},async redeploy(){await t.http.post(`${a}/redeploy`,{})},async delete(){await t.http.post(`${a}/delete`,{})},secrets:{async list(){let o=Vg(await t.http.get(`${a}/secrets`),"secrets");return Array.isArray(o.names)?o.names.filter((c)=>typeof c==="string"):[]},async set(o){await t.http.put(`${a}/secrets`,{secrets:o})},async delete(o){await t.http.delete(`${a}/secrets/${encodeURIComponent(o)}`)}},async waitUntilReady(o){let c=o?.timeoutMs??300000,p=Date.now()+c;while(Date.now()<p){if(o?.signal?.aborted)throw Error("deployment wait aborted");await new Promise((h)=>setTimeout(h,2000));let d;try{d=await A()}catch{continue}if(d.status==="running")return{url:d.url??""};if(d.status==="error")throw Error(`deployment ${t.id} entered error state`)}throw Error(`deployment ${t.id} not ready after ${c}ms`)}}}function HBt(t){return{agentId:Es(t,"agentId"),name:Es(t,"name"),description:ag(t,"description"),private:t.private===!0,latestVersion:ag(t,"latestVersion"),starsCount:typeof t.starsCount==="number"?t.starsCount:0,ownerUsername:ag(t,"ownerUsername"),orgSlug:ag(t,"orgSlug"),readme:ag(t,"readme"),createdAt:typeof t.created_at==="string"?t.created_at:typeof t.createdAt==="string"?t.createdAt:""}}function pna(t){let a=`/api/agents/${encodeURIComponent(t.id)}`;return{id:t.id,async get(){return HBt(Vg(await t.http.get(a),"agent"))},async publish(A){if(t.runtime==="browser")throw Error('agent.publish() is not available when AxonCloud({ runtime: "browser" })');let o=await lna(A.path),c=new FormData;if(c.append("config",o.config),c.append("tarball",new Blob([new Uint8Array(o.tarball)],{type:"application/gzip"}),o.tarballName),o.manifest!==null)c.append("manifest",o.manifest);let p=Vg(await t.http.form(`${a}/publish`,c),"publish result");return{agentId:Es(p,"agentId"),publishedAt:Es(p,"publishedAt"),apiKey:ag(p,"apiKey"),deploymentExists:p.deploymentExists===!0}},async versions(){let A=Vg(await t.http.get(`${a}/versions`),"versions response");return ub(A.versions,"versions").map((o)=>({id:Es(o,"id"),version:Es(o,"version"),publishedAt:Es(o,"published_at"),installs:Ad(o,"installs_count"),manifest:ag(o,"manifest")}))},async downloadUrl(A){let o=Vg(await t.http.get(`${a}/versions/${encodeURIComponent(A)}/download`),"download response");return Es(o,"downloadUrl")},async stats(){let A=Vg(await t.http.get(`${a}/stats`),"stats");return{installsTotal:Ad(A,"installs_total"),starsTotal:Ad(A,"stars_total"),activeDeployments:Ad(A,"active_deployments"),starredByMe:zF(A,"starred_by_me"),daily:ub(A.daily,"daily").map((o)=>({date:Es(o,"date"),installs:Ad(o,"installs"),stars:Ad(o,"stars")}))}},async star(){await t.http.post(`${a}/star`,{})},async unstar(){await t.http.delete(`${a}/star`)},async setVisibility(A){await t.http.patch(a,{private:!A})},deployment(A){return jBt({id:A,http:t.http})}}}class jct extends Error{deficitMinor;availableMinor;requiredMinor;checkoutUrl;constructor(t){super(`insufficient balance to deploy: need ${t.requiredMinor} minor units, have ${t.availableMinor}`);this.deficitMinor=t.deficitMinor,this.availableMinor=t.availableMinor,this.requiredMinor=t.requiredMinor,this.checkoutUrl=t.checkoutUrl}}function Dcn(t){function a(c){return pna({id:c,http:t.http,runtime:t.runtime})}async function A(c){let p=Vg(await t.http.post("/api/user/agents",c),"agent");return a(Es(p,"agentId"))}async function o(c,p){try{let d=Vg(await t.http.post("/api/user/deployments",{agentId:c,tier:p.tier??"small",warmth:p.warmth??"on-demand",...p.diskAddOn!==void 0?{diskAddOn:p.diskAddOn}:{}}),"provision result");return{deploymentId:Es(d,"deploymentId")}}catch(d){if(d instanceof ate&&d.status===402&&d.data)throw new jct({deficitMinor:Ad(d.data,"deficitMinor"),availableMinor:Ad(d.data,"availableMinor"),requiredMinor:Ad(d.data,"requiredMinor"),checkoutUrl:typeof d.data.checkoutUrl==="string"?d.data.checkoutUrl:null});throw d}}return{agent:a,create:A,async resolve(c){let p=Vg(await t.http.get(`/api/registry/agents/resolve?name=${encodeURIComponent(c)}`),"resolved agent");return a(Es(p,"agentId"))},async list(){let c=Vg(await t.http.get("/api/user/agents"),"agents response");return ub(c.agents,"agents").map(HBt)},async search(c){let p=new URLSearchParams;if(c?.query)p.set("q",c.query);if(c?.page)p.set("page",String(c.page));let d=p.size>0?`?${p}`:"",h=Vg(await t.http.get(`/api/registry/agents${d}`),"public agents");return ub(h.agents,"agents").map(HBt)},async deploy(c){let p=await A({name:c.name});c.onProgress?.({step:"publishing",agentId:p.id}),await p.publish({path:c.path}),c.onProgress?.({step:"provisioning",agentId:p.id});let{deploymentId:d}=await o(p.id,c),h=jBt({id:d,http:t.http});c.onProgress?.({step:"starting",deploymentId:d});let{url:B}=await h.waitUntilReady({...c.timeoutMs!==void 0?{timeoutMs:c.timeoutMs}:{},...c.signal!==void 0?{signal:c.signal}:{}});return c.onProgress?.({step:"ready",deploymentId:d,url:B}),{agent:p,deployment:h,url:B}}}}function xcn(t){let a=new Map,A=300000;async function o(c,p){let d=a.get(c);if(d&&Date.now()-d.at<300000)return d.models;let h=await p();return a.set(c,{at:Date.now(),models:h}),h}return{all(){return o("all",()=>t.http.get("/api/registry/models"))},axon(){return o("axon",()=>t.http.get("/api/registry/models/axon"))},openrouter(){return o("openrouter",()=>t.http.get("/api/registry/models/openrouter"))}}}async function gna(t,a){let{readFile:A}=await import("fs/promises"),{existsSync:o,statSync:c}=await import("fs"),{basename:p,join:d}=await import("path");if(!o(t))throw Error(`module bundle path does not exist: ${t}`);let h=c(t).isDirectory(),B=h?t:d(t,".."),E=h?d(t,"source.tar.gz"):t,k=d(B,"package.json");if(!h&&!E.endsWith(".tar.gz"))throw Error(`expected a module bundle directory or a .tar.gz file, got: ${t}`);if(!o(E))throw Error(`module bundle has no source.tar.gz at ${E} \u2014 run \`axon build\` first`);if(!o(k))throw Error(`module bundle has no package.json at ${k}`);let v=await A(k,"utf-8"),F=a?.version??JSON.parse(v).version;if(typeof F!=="string"||F.length===0)throw Error('module bundle has no version \u2014 set "version" in package.json or pass one explicitly');let T=await A(E);if(T.byteLength>52428800)throw Error(`module tarball is ${Math.round(T.byteLength/1024/1024)}MB \u2014 the registry limit is 50MB`);let K=d(B,"tool-globals.d.ts"),P=o(K)?await A(K,"utf-8"):null;return{config:v,version:F,tarball:T,tarballName:p(E),manifest:P}}function JBt(t){return{moduleId:typeof t.moduleId==="string"?t.moduleId:Es(t,"id"),name:Es(t,"name"),description:ag(t,"description"),private:t.private===!0,latestVersion:ag(t,"latest_version")??ag(t,"latestVersion"),starsCount:typeof t.starsCount==="number"?t.starsCount:0,ownerUsername:ag(t,"ownerUsername"),orgSlug:ag(t,"orgSlug"),createdAt:typeof t.createdAt==="string"?t.createdAt:"",deprecatedAt:typeof t.deprecatedAt==="string"?t.deprecatedAt:null,deprecationMessage:typeof t.deprecationMessage==="string"?t.deprecationMessage:null}}function dna(t){let a=`/api/modules/${encodeURIComponent(t.id)}`;return{id:t.id,async get(){return JBt(Vg(await t.http.get(a),"module"))},async publish(A){if(t.runtime==="browser")throw Error('module.publish() is not available when AxonCloud({ runtime: "browser" })');let o=await gna(A.path,{...A.version!==void 0?{version:A.version}:{}}),c=new FormData;if(c.append("source",new Blob([new Uint8Array(o.tarball)],{type:"application/gzip"}),o.tarballName),c.append("version",o.version),c.append("config",o.config),o.manifest!==null)c.append("manifest",o.manifest);return await t.http.form(`${a}/publish`,c),{version:o.version}},async versions(){let A=Vg(await t.http.get(`${a}/versions`),"versions response");return ub(A.versions,"versions").map((o)=>({id:Es(o,"id"),version:Es(o,"version"),publishedAt:Es(o,"created_at"),installs:Ad(o,"installs_count"),manifest:ag(o,"manifest")}))},async downloadUrl(A){let o=Vg(await t.http.get(`${a}/versions/${encodeURIComponent(A)}/download`),"download response");return Es(o,"downloadUrl")},async stats(){let A=Vg(await t.http.get(`${a}/stats`),"stats");return{installsTotal:Ad(A,"installs_total"),starsTotal:Ad(A,"stars_total"),starredByMe:zF(A,"starred_by_me"),daily:ub(A.daily,"daily").map((o)=>({date:Es(o,"date"),installs:Ad(o,"installs"),stars:Ad(o,"stars")}))}},async star(){await t.http.post(`${a}/star`,{})},async unstar(){await t.http.delete(`${a}/star`)},async update(A){let{deprecationMessage:o,...c}=A;await t.http.patch(a,{...c,...o!==void 0?{deprecation_message:o}:{}})}}}function vcn(t){function a(A){return dna({id:A,http:t.http,runtime:t.runtime})}return{module:a,async create(A){let o=Vg(await t.http.post("/api/user/modules",A),"module");return a(Es(o,"moduleId"))},async resolveId(A){let o=Vg(await t.http.get(`/api/registry/modules/resolve-id?name=${encodeURIComponent(A)}`),"resolved module");return a(Es(o,"moduleId"))},async resolve(A,o){let c=new URLSearchParams({name:A});if(o)c.set("version",o);let p=Vg(await t.http.get(`/api/registry/modules/resolve?${c}`),"resolved module");return{moduleId:Es(p,"moduleId"),name:Es(p,"name"),version:Es(p,"version"),downloadUrl:Es(p,"downloadUrl")}},async list(){let A=Vg(await t.http.get("/api/user/modules"),"modules response");return ub(A.modules,"modules").map(JBt)},async search(A){let o=new URLSearchParams;if(A?.query)o.set("q",A.query);if(A?.page)o.set("page",String(A.page));let c=o.size>0?`?${o}`:"",p=Vg(await t.http.get(`/api/registry/modules${c}`),"public modules");return ub(p.modules,"modules").map(JBt)}}}function mna(t){return{id:Es(t,"id"),name:Es(t,"name"),description:ag(t,"description"),latestVersion:ag(t,"latestVersion"),starsCount:Ad(t,"starsCount"),createdAt:Es(t,"createdAt")}}function KVA(t){if(!Array.isArray(t))return[];return t.filter((a)=>!!a&&typeof a==="object"&&typeof a.label==="string"&&typeof a.url==="string")}function fna(t){return{async get(a,A){let o=A?.days??30,c=await t.http.get(`/api/u/${encodeURIComponent(a)}?days=${o}`),p=Vg(c.profile,"profile");return{profile:{id:Es(p,"id"),username:ag(p,"username"),name:ag(p,"name"),bio:ag(p,"bio"),avatarUrl:ag(p,"avatarUrl"),website:ag(p,"website"),links:KVA(p.links),location:ag(p,"location"),createdAt:Es(p,"createdAt")},agents:ub(c.agents,"agents").map(mna),modules:ub(c.modules,"modules").map(mna),daily:ub(c.daily,"daily").map((d)=>({date:Es(d,"date"),installs:Ad(d,"installs"),stars:Ad(d,"stars")}))}}}}function hna(t){return{modules:vcn({http:t.http,runtime:t.runtime}),agents:Dcn({http:t.http,runtime:t.runtime}),models:xcn({http:t.http}),profile:fna({http:t.http})}}function YVA(t){let a=Es(t,"kind"),A=Es(t,"id"),o=Es(t,"at");switch(a){case"deployment":return{kind:a,id:A,at:o,agentId:Es(t,"agentId"),status:Es(t,"status")};case"agent":return{kind:a,id:A,at:o,name:Es(t,"name"),latestVersion:ag(t,"latestVersion")};case"module":return{kind:a,id:A,at:o,name:Es(t,"name"),latestVersion:ag(t,"latestVersion")};case"key":return{kind:a,id:A,at:o,name:Es(t,"name"),isActive:zF(t,"isActive")};default:throw Error(`invalid response: unknown activity kind "${a}"`)}}function OBt(t){return{async list(){let a=await t.http.get(t.path());return ub(a.items,"items").map(YVA)}}}function bna(t){async function a(p){let d=await t.http().post("/api/user/device/authorize",p?{hint:p}:{});if(typeof d.device_code!=="string")throw Error("invalid authorize response: missing device_code");if(typeof d.user_code!=="string")throw Error("invalid authorize response: missing user_code");if(typeof d.verification_uri!=="string")throw Error("invalid authorize response: missing verification_uri");if(typeof d.verification_uri_complete!=="string")throw Error("invalid authorize response: missing verification_uri_complete");if(typeof d.interval!=="number")throw Error("invalid authorize response: missing interval");if(typeof d.expires_in!=="number")throw Error("invalid authorize response: missing expires_in");return{deviceCode:d.device_code,userCode:d.user_code,verificationUri:d.verification_uri,verificationUriComplete:d.verification_uri_complete,interval:d.interval,expiresIn:d.expires_in}}async function A(p,d){let h=await t.http().get(`/api/user/device/poll?device_code=${encodeURIComponent(p)}`,d);if(h.status==="approved"){if(typeof h.access_token!=="string")throw Error("invalid poll response: missing access_token");return{status:"approved",accessToken:h.access_token}}if(h.status==="expired")return{status:"expired"};return{status:"pending"}}async function o(p,d){let h=Date.now()+p.expiresIn*1000;while(Date.now()<h){if(d?.aborted)throw Error("device authorization aborted");await new Promise((E,k)=>{let v=setTimeout(E,p.interval*1000);d?.addEventListener("abort",()=>{clearTimeout(v),k(Error("device authorization aborted"))},{once:!0})});let B=await A(p.deviceCode,d);if(B.status==="approved")return{accessToken:B.accessToken};if(B.status==="expired")throw Error("device authorization expired")}throw Error("device authorization expired")}async function c(p){let d=Vg(await t.http().post("/api/user/device/approve",{user_code:p.userCode,...p.deviceName!==void 0?{device_name:p.deviceName}:{}}),"approve result"),h=Vg(d.device,"approve result device");return{apiKeyId:Es(h,"apiKeyId"),name:Es(h,"name")}}return{authorize:a,poll:A,wait:o,approve:c}}var r4e={decode(t){let a=t.split(".");if(a.length!==3)throw Error("invalid JWT format: expected 3 parts");try{let A=Buffer.from(a[1],"base64url").toString("utf-8");return JSON.parse(A)}catch(A){throw Error(`failed to decode JWT payload: ${A instanceof Error?A.message:String(A)}`)}},token:{parse(t){try{let a=r4e.decode(t).exp;if(typeof a!=="number")return Date.now()+86400000;return a*1000}catch{return Date.now()+86400000}},isExpired(t,a=0){return Date.now()+a>=r4e.token.parse(t)}}};function Fcn(t){if(!t||typeof t!=="object"||Array.isArray(t))throw Error("invalid user payload: not an object");let a=t;if(typeof a.id!=="string"||a.id.length===0)throw Error("invalid user payload: missing id");if(typeof a.email!=="string"||a.email.length===0)throw Error("invalid user payload: missing email");let A=typeof a.username==="string"&&a.username.length>0?a.username:a.email,o=typeof a.createdAt==="string"?Date.parse(a.createdAt):NaN;return{id:a.id,email:a.email,name:A,isStaff:a.isStaff===!0,memberSince:Number.isFinite(o)?o:Date.now()}}var PVA=300000;function jVA(t){return t.split(".").length===3}function Scn(t){let a=bna({http:t.http}),A=t.session,o;function c(d,h){return o=void 0,A={accessToken:d,expiresAt:r4e.token.parse(d),user:h},A}async function p(){let d=await t.http().get("/api/user/me/session"),h=Fcn(Vg(d,"session").user);if(A)A={...A,user:h};return h}return{get token(){return process.env.AXON_CONNECT_TOKEN??A?.accessToken??o??t.key??"axon_test_key_0000000000000000000000000000001"},get apiKey(){return t.key??"axon_test_key_0000000000000000000000000000001"},get user(){return A?.user},get stale(){if(!A)return!1;if(!jVA(A.accessToken))return!1;return r4e.token.isExpired(A.accessToken,PVA)},async login(d){let h=await a.authorize(d.hint);d.onVerification(h);let B=await a.wait(h,d.signal);o=B.accessToken;let E=await p();return c(B.accessToken,E)},async refresh(){if(!A)throw Error("cannot refresh: no live session \u2014 log in first");let d=await t.http().post("/api/auth/refresh",{}),h=d.access_token??d.accessToken;if(typeof h!=="string")throw Error("invalid refresh response: missing access_token");return c(h,d.user?Fcn(d.user):A.user)},me:p,approve:a.approve,adopt(d){A=d,o=void 0},async logout(){A=void 0}}}function Cna(t){return{async get(){let a=await t.http.get("/api/user/billing/account"),A=Vg(a.account,"account");return{id:Es(A,"id"),ownerType:Es(A,"ownerType"),ownerId:Es(A,"ownerId"),status:Es(A,"status"),currency:Es(A,"currency"),defaultPaymentMethodId:ag(A,"defaultPaymentMethodId"),autoTopupEnabled:zF(A,"autoTopupEnabled")}},async balance(){let a=await t.http.get("/api/user/billing/balance"),A=Vg(a.balance,"balance");return{currency:Es(A,"currency"),postedMinor:Ad(A,"postedMinor"),reservedMinor:Ad(A,"reservedMinor"),availableMinor:Ad(A,"availableMinor")}},async portal(a){let A=await t.http.post("/api/user/billing/portal",a??{});return{url:Es(A,"url")}}}}function Bna(t){return{async list(){let a=await t.http.get("/api/user/billing/payment-methods");return ub(a.paymentMethods,"paymentMethods").map((A)=>({id:Es(A,"id"),brand:Es(A,"brand"),last4:Es(A,"last4"),expMonth:Ad(A,"expMonth"),expYear:Ad(A,"expYear"),isDefault:zF(A,"isDefault")}))},async add(){let a=await t.http.post("/api/user/billing/setup-intent",{});return{clientSecret:Es(Vg(a,"setup intent"),"clientSecret")}},async sync(){await t.http.post("/api/user/billing/payment-methods/sync",{})},async setDefault(a){await t.http.post(`/api/user/billing/payment-methods/${encodeURIComponent(a)}/default`,{})},async reorder(a){await t.http.post("/api/user/billing/payment-methods/reorder",{orderedIds:a})},async remove(a){await t.http.delete(`/api/user/billing/payment-methods/${encodeURIComponent(a)}`)}}}function Ina(t){return{async price(a){let A=await t.http.post("/api/user/billing/commitments/preview",a),o=Vg(A.commitment,"commitment");return{kind:Es(o,"kind"),amountMinor:Ad(o,"amountMinor"),currency:Es(o,"currency"),periodDays:Ad(o,"periodDays"),tier:Es(o,"tier"),warmth:Es(o,"warmth"),diskAddOn:ag(o,"diskAddOn")}},async list(){let a=await t.http.get("/api/user/billing/commitments");return ub(a.commitments,"commitments").map((A)=>({id:Es(A,"id"),kind:Es(A,"kind"),status:Es(A,"status"),deploymentId:ag(A,"deploymentId"),amountMinor:Ad(A,"amountMinor"),currency:Es(A,"currency"),currentPeriodStart:Es(A,"currentPeriodStart"),currentPeriodEnd:Es(A,"currentPeriodEnd"),autoRenew:zF(A,"autoRenew"),cancelledAt:ag(A,"cancelledAt"),metadata:A.metadata?Vg(A.metadata,"metadata"):{},createdAt:Es(A,"createdAt")}))},async cancelRenewal(a){await t.http.post(`/api/user/billing/commitments/${encodeURIComponent(a)}/cancel-renewal`,{})},async resumeRenewal(a){await t.http.post(`/api/user/billing/commitments/${encodeURIComponent(a)}/resume-renewal`,{})}}}function yna(t){return{async list(a){let A=new URLSearchParams;if(a?.limit)A.set("limit",String(a.limit));let o=A.size>0?`?${A}`:"",c=await t.http.get(`/api/user/billing/ledger${o}`);return ub(c.entries,"entries").map((p)=>({id:Es(p,"id"),kind:Es(p,"kind"),status:Es(p,"status"),amountMinor:Ad(p,"amountMinor"),currency:Es(p,"currency"),description:ag(p,"description"),referenceType:ag(p,"referenceType"),referenceId:ag(p,"referenceId"),createdAt:Es(p,"createdAt"),metadata:p.metadata?Vg(p.metadata,"metadata"):{}}))}}}function Ena(t){let a=Vg(t,"policy"),A=a.maxTopupsPerDay;return{enabled:zF(a,"enabled"),currency:Es(a,"currency"),thresholdMinor:Ad(a,"thresholdMinor"),topupAmountMinor:Ad(a,"topupAmountMinor"),maxTopupsPerDay:typeof A==="number"?A:null,lastTriggeredAt:ag(a,"lastTriggeredAt")}}function _na(t){return{async charge(a){let A=await t.http.post("/api/user/billing/topups",{amountMinor:a.amountMinor,...a.paymentMethodId?{paymentMethodId:a.paymentMethodId}:{}}),o=Vg(A.balance,"balance");return{paymentIntentId:Es(A,"paymentIntentId"),balance:{currency:Es(o,"currency"),availableMinor:Ad(o,"availableMinor")}}},auto:{async get(){let a=await t.http.get("/api/user/billing/topups/auto");return Ena(a.policy)},async set(a){let A=await t.http.put("/api/user/billing/topups/auto",a);return Ena(A.policy)}}}}function Qna(t){return{async summary(a){let A=new URLSearchParams;if(a?.days)A.set("days",String(a.days));let o=A.size>0?`?${A}`:"",c=await t.http.get(`/api/user/billing/usage${o}`),p=Vg(c.summary,"summary");return{currency:Es(p,"currency"),totalMinor:Ad(p,"totalMinor"),items:ub(p.items,"items").map((d)=>({date:Es(d,"date"),amountMinor:Ad(d,"amountMinor"),kind:Es(d,"kind")}))}},async spendByReference(a){let A=new URLSearchParams;if(a?.days)A.set("days",String(a.days));let o=A.size>0?`?${A}`:"",c=await t.http.get(`/api/user/billing/spend-by-reference${o}`);return{currency:Es(c,"currency"),items:ub(c.items,"items").map((p)=>({date:Es(p,"date"),referenceType:Es(p,"referenceType"),amountMinor:Ad(p,"amountMinor")}))}},async dailyBalance(a){let A=new URLSearchParams;if(a?.days)A.set("days",String(a.days));let o=A.size>0?`?${A}`:"",c=await t.http.get(`/api/user/billing/daily-balance${o}`);return{currency:Es(c,"currency"),items:ub(c.items,"items").map((p)=>({date:Es(p,"date"),balanceMinor:Ad(p,"balanceMinor")}))}}}}function Ncn(t){let a=Cna({http:t.http});return{account:a.get,balance:a.balance,portal:a.portal,cards:Bna({http:t.http}),topup:_na({http:t.http}),ledger:yna({http:t.http}),commitments:Ina({http:t.http}),usage:Qna({http:t.http})}}function HVA(t){return{id:Es(t,"id"),agentId:Es(t,"agentId"),tier:Es(t,"tier"),warmth:Es(t,"warmth"),status:Es(t,"status"),url:ag(t,"url"),createdAt:Es(t,"createdAt"),lastError:ag(t,"lastError"),axonBaseVersion:ag(t,"axonBaseVersion")}}function wna(t){return{async list(){let a=await t.http.get("/api/user/deployments");return ub(a.deployments,"deployments").map(HVA)}}}function kna(t){return{id:Es(t,"id"),name:Es(t,"name"),type:Es(t,"type"),isActive:zF(t,"isActive"),scopes:Array.isArray(t.scopes)?t.scopes:[],lastUsedAt:ag(t,"lastUsedAt"),expiresAt:ag(t,"expiresAt"),createdAt:Es(t,"createdAt")}}function Dna(t){return{async list(){let a=await t.http.get("/api/user/keys");return ub(a.keys,"keys").map(kna)},async create(a){let A=await t.http.post("/api/user/keys",{name:a.name,scopes:a.scopes}),o=Vg(A,"created key");return{...kna(o),key:Es(o,"key")}},async rename(a,A){await t.http.patch(`/api/user/keys/${encodeURIComponent(a)}`,{name:A})},async revoke(a){await t.http.delete(`/api/user/keys/${encodeURIComponent(a)}`)}}}function xna(t){return{userId:Es(t,"userId"),username:Es(t,"username"),name:ag(t,"name"),role:Es(t,"role"),joinedAt:Es(t,"joinedAt")}}function vna(t){return{id:Es(t,"id"),name:Es(t,"name"),description:ag(t,"description"),private:zF(t,"private"),latestVersion:ag(t,"latestVersion"),starsCount:Ad(t,"starsCount"),createdAt:Es(t,"createdAt")}}function Mcn(t){let a=`/api/orgs/${encodeURIComponent(t.slug)}`,A=OBt({http:t.http,path:()=>`${a}/activity`});return{slug:t.slug,activity:A,async get(){let o=await t.http.get(a),c=Vg(o.org,"org");return{id:Es(c,"id"),slug:Es(c,"slug"),displayName:ag(c,"displayName"),description:ag(c,"description"),avatarUrl:ag(c,"avatarUrl"),website:ag(c,"website"),createdAt:Es(c,"createdAt"),memberCount:Ad(c,"memberCount")}},async update(o){await t.http.patch(a,{...o.displayName!==void 0?{display_name:o.displayName}:{},...o.description!==void 0?{description:o.description}:{},...o.avatarUrl!==void 0?{avatar_url:o.avatarUrl}:{},...o.website!==void 0?{website:o.website}:{}})},async delete(){await t.http.delete(a)},async agents(){let o=await t.http.get(`${a}/agents`);return ub(o.agents,"agents").map(vna)},async modules(){let o=await t.http.get(`${a}/modules`);return ub(o.modules,"modules").map(vna)},async stats(o=30){let c=await t.http.get(`${a}/stats?days=${o}`);return{starsTotal:Ad(c,"stars_total"),agentsCount:Ad(c,"agents_count"),modulesCount:Ad(c,"modules_count"),daily:ub(c.daily,"daily").map((p)=>({date:Es(p,"date"),installs:Ad(p,"installs"),stars:Ad(p,"stars")}))}},members:{async list(){let o=await t.http.get(`${a}/members`);return ub(o.members,"members").map(xna)},async add(o){let c=await t.http.post(`${a}/members`,o);return xna(Vg(c.member,"member"))},async setRole(o,c){await t.http.patch(`${a}/members/${encodeURIComponent(o)}`,{role:c})},async remove(o){await t.http.delete(`${a}/members/${encodeURIComponent(o)}`)}}}}function Gcn(t){return{async list(){let a=await t.http.get("/api/user/orgs");return ub(a.orgs,"orgs").map((A)=>({id:Es(A,"id"),slug:Es(A,"slug"),displayName:ag(A,"displayName"),avatarUrl:ag(A,"avatarUrl"),role:Es(A,"role"),joinedAt:Es(A,"joinedAt")}))},async create(a){let A=await t.http.post("/api/user/orgs",{slug:a.slug,...a.displayName!==void 0?{display_name:a.displayName}:{},...a.description!==void 0?{description:a.description}:{}}),o=Vg(A.org,"org");return Mcn({slug:Es(o,"slug"),http:t.http})},org(a){return Mcn({slug:a,http:t.http})}}}function JVA(t){let a=Vg(t.profile,"profile");return{uptime:ub(t.uptime,"uptime").map((A)=>({date:Es(A,"date"),uptimePercent:Ad(A,"uptimePercent")})),errors:ub(t.errors,"errors").map((A)=>({date:Es(A,"date"),errors:Ad(A,"errors")})),profile:{daily:ub(a.daily,"profile.daily").map((A)=>({date:Es(A,"date"),installs:Ad(A,"installs"),stars:Ad(A,"stars")})),starsTotal:Ad(a,"starsTotal"),installsTotal:Ad(a,"installsTotal")},activeDeployments:Ad(t,"activeDeployments"),totalDeployments:Ad(t,"totalDeployments")}}function Fna(t){return{async stats(a){let A=a?.days??30,o=await t.http.get(`/api/user/overview/stats?days=${A}`);return JVA(o)}}}function OVA(t){if(!Array.isArray(t))return[];return t.filter((a)=>!!a&&typeof a==="object"&&typeof a.label==="string"&&typeof a.url==="string")}function $VA(t){return{id:Es(t,"id"),username:ag(t,"username"),name:ag(t,"name"),email:Es(t,"email"),bio:ag(t,"bio"),avatarUrl:ag(t,"avatarUrl"),website:ag(t,"website"),links:OVA(t.links),location:ag(t,"location"),deactivatedAt:ag(t,"deactivatedAt"),createdAt:Es(t,"createdAt")}}function Sna(t){return{async get(){return $VA(await t.http.get("/api/user/profile"))},async update(a){await t.http.patch("/api/user/profile",a)},async setAvatar(a){let A=new FormData;A.set("image",a);let o=await t.http.form("/api/user/profile/avatar",A);return Es(Vg(o,"avatar response"),"avatarUrl")},async deactivate(){await t.http.post("/api/user/profile/deactivate",{})}}}function zVA(t){let a=Es(t,"kind");if(a!=="agent"&&a!=="module")throw Error(`invalid response: unknown starred kind "${a}"`);return{kind:a,id:Es(t,"id"),name:Es(t,"name"),description:ag(t,"description"),private:zF(t,"private"),latestVersion:ag(t,"latestVersion"),starsCount:Ad(t,"starsCount"),starredAt:Es(t,"starredAt")}}function Nna(t){return{async list(){let a=await t.http.get("/api/user/starred");return ub(a.items,"items").map(zVA)}}}var Lna={async login(t){let a=(await import("crypto")).default,A=nXA(a),o=await VVA(),c;if(o)await t.open(A.url),c=await o.callback;else{if(!t.paste)throw Error("CODEX_PORT_BUSY: port 1455 is in use and no paste fallback was provided");await t.open(A.url),c=await t.paste()}let{code:p,state:d}=iXA(c);if(!p)throw Error("Codex login failed: no authorization code in callback");if(d&&d!==A.state)throw Error("Codex login failed: state mismatch \u2014 possible CSRF, try again");return aXA(p,A.verifier)}},Mna=1455,WVA="/auth/callback",ZVA=300000;async function VVA(){let t=(await import("http")).default;return new Promise((a)=>{let A=t.createServer();A.once("error",(o)=>{if(o.code==="EADDRINUSE")return a(null);throw o}),A.listen(Mna,"127.0.0.1",()=>{let o=new Promise((c,p)=>{let d=setTimeout(()=>{A.close(),p(Error("CODEX_CALLBACK_TIMEOUT: no OAuth redirect received within 5 minutes"))},ZVA);A.on("request",(h,B)=>{let E=new URL(h.url??"/",`http://127.0.0.1:${Mna}`);if(E.pathname!==WVA){B.writeHead(404).end();return}B.writeHead(200,{"Content-Type":"text/html"}),B.end("<html><body>Connected \u2014 you can close this tab and return to the terminal.</body></html>"),clearTimeout(d),A.close(),c(E.toString())})});a({callback:o})})})}var Tna="app_EMoamEEZ73f0CkXaXp7hrann",XVA="https://auth.openai.com/oauth/authorize",eXA="https://auth.openai.com/oauth/token",qna="http://localhost:1455/auth/callback",tXA="openid profile email offline_access",Gna="https://api.openai.com/auth";function nXA(t){let a=t.randomBytes(32).toString("base64url"),A=t.createHash("sha256").update(a).digest("base64url"),o=t.randomBytes(16).toString("hex"),c=new URL(XVA);return c.searchParams.set("response_type","code"),c.searchParams.set("client_id",Tna),c.searchParams.set("redirect_uri",qna),c.searchParams.set("scope",tXA),c.searchParams.set("code_challenge",A),c.searchParams.set("code_challenge_method","S256"),c.searchParams.set("state",o),c.searchParams.set("id_token_add_organizations","true"),c.searchParams.set("codex_cli_simplified_flow","true"),c.searchParams.set("originator","codex_cli_rs"),{url:c.toString(),state:o,verifier:a}}async function aXA(t,a){let A=await fetch(eXA,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",client_id:Tna,code:t,code_verifier:a,redirect_uri:qna}).toString()});if(!A.ok){let c=await A.text().catch(()=>"");throw Error(`Codex token request failed: ${A.status}${c?` - ${c}`:""}`)}let o=await A.json();if(!o.access_token||!o.refresh_token||typeof o.expires_in!=="number")throw Error("Codex token response missing required fields");return{accessToken:o.access_token,refreshToken:o.refresh_token,expiresAt:Date.now()+o.expires_in*1000,accountId:AXA(o.access_token),connectedAt:Date.now()}}function AXA(t){let a=r4e.decode(t)[Gna];if(!a?.chatgpt_account_id)throw Error(`Codex token missing chatgpt_account_id in "${Gna}" claim`);return a.chatgpt_account_id}function iXA(t){let a=t.trim();if(!a)return{};try{let A=new URL(a);return{code:A.searchParams.get("code")??void 0,state:A.searchParams.get("state")??void 0}}catch{}if(a.includes("#")){let[A,o]=a.split("#",2);return{code:A||void 0,state:o||void 0}}if(a.includes("code=")){let A=new URLSearchParams(a);return{code:A.get("code")??void 0,state:A.get("state")??void 0}}return{code:a}}var rXA=30000;function Lcn(t){return{secrets:{list(){return t.http.get("/api/user/vault/secrets")},async set(a,A){await t.http.put(`/api/user/vault/secrets/${encodeURIComponent(a)}`,{value:A})},async delete(a){await t.http.delete(`/api/user/vault/secrets/${encodeURIComponent(a)}`)}},connections:{openai:oXA(t),openrouter:sXA(t)}}}function Rna(t,a){let A=null;return{async upload(o){await t.http.put(`/api/user/vault/connections/${a}`,o),A=null},async token(){if(A&&A.expiresAt-Date.now()>rXA)return A;return A=await t.http.get(`/api/user/vault/connections/${a}/token`),A},status(){return t.http.get(`/api/user/vault/connections/${a}`)},async disconnect(){await t.http.delete(`/api/user/vault/connections/${a}`),A=null}}}function oXA(t){let{upload:a,...A}=Rna(t,"openai");return{async connect(o){if(t.runtime==="browser")throw Error('vault.connections.openai.connect is not available when AxonCloud({ runtime: "browser" }) \u2014 the PKCE flow needs a local callback server');let c=await Lna.login(o);await a(c)},...A}}function sXA(t){let{upload:a,...A}=Rna(t,"openrouter");return{async connect(o){let c=o.key.trim();if(!c)throw Error("OPENROUTER_KEY_REQUIRED: paste your OpenRouter API key \u2014 get one at openrouter.ai/keys");await a({key:c,connectedAt:Date.now()})},...A}}function Una(t){let a=Scn({...t.key!==void 0?{key:t.key}:{},...t.session!==void 0?{session:t.session}:{},http:()=>A}),A=una({...t.baseUrl!==void 0?{baseUrl:t.baseUrl}:{},token:()=>a.token}),o=Ncn({http:A}),c=Dna({http:A}),p=Gcn({http:A}),d=Lcn({http:A,runtime:t.runtime}),h=OBt({http:A,path:()=>"/api/user/activity"}),B=Nna({http:A}),E=Sna({http:A}),k=wna({http:A}),v=Fna({http:A});return{auth:a,http:A,billing:o,keys:c,orgs:p,vault:d,activity:h,starred:B,profile:E,deployments:k,overview:v}}function Hct(t){let a=t.runtime??"node",A=Una({...t.key!==void 0?{key:t.key}:{},...t.baseUrl!==void 0?{baseUrl:t.baseUrl}:{},...t.session!==void 0?{session:t.session}:{},runtime:a}),o=hna({http:A.http,runtime:a}),c=cna({http:A.http});return{user:A,registry:o,cloud:c}}var cXA=!0;function Yna(t){let a=t.store;function A(){let p=a.profiles.current(),d=p?Kna(p.record):null;return Hct({...p?.record.auth.apiKey?{key:p.record.auth.apiKey}:{},...d?{session:d}:{}})}let o=A();function c(p){let d=a.profiles.get(p.user.email).record.get();a.profiles.save(p.user.email,{...d,user:{id:p.user.id,email:p.user.email,name:p.user.name,memberSince:new Date(p.user.memberSince).toISOString()},auth:{...d?.auth,accessToken:p.accessToken,expiresAt:p.expiresAt}})}return{client:o,get authenticated(){let p=a.profiles.current();return!!(p?.record.auth.accessToken||p?.record.auth.apiKey)},async login(p){let d=await o.user.auth.login({onVerification:p.onCode,...p.hint!==void 0?{hint:p.hint}:{},...p.signal!==void 0?{signal:p.signal}:{}});return c(d),d.user},async refresh(){let p=await o.user.auth.refresh();c(p)},async logout(){await o.user.auth.logout();let p=a.profiles.current();if(p){if(!cXA){let d={...p.record,auth:{}};a.profiles.get(p.id).record.set(d)}a.profiles.deactivate()}},async switch(p){let d=a.profiles.get(p).record.get();if(!d)throw ho("PROFILE_UNKNOWN",{detail:`unknown profile: ${p} (known: ${a.profiles.list().join(", ")||"none"})`,context:{profileId:p}});let h=Kna(d);if(!h)throw ho("PROFILE_NOT_AUTHENTICATED",{context:{profileId:p}});if(a.profiles.activate(p),o.user.auth.adopt(h),o.user.auth.stale){let B=await o.user.auth.refresh();c(B)}},connections:{openai:o.user.vault.connections.openai,openrouter:o.user.vault.connections.openrouter}}}function Kna(t){if(!t.auth.accessToken||t.auth.expiresAt===void 0)return null;return{accessToken:t.auth.accessToken,expiresAt:t.auth.expiresAt,user:{id:t.user.id,email:t.user.email,name:t.user.name??t.user.email,isStaff:!1,memberSince:t.user.memberSince?Date.parse(t.user.memberSince):0}}}import{dirname as cdi,join as udi,resolve as xpa}from"path";import{readdir as uXA,stat as lXA}from"fs/promises";import{existsSync as pXA}from"fs";import{join as gXA}from"path";var mu={exists(t){return pXA(t)},async list(t){try{return await uXA(t)}catch(a){if(a instanceof Error&&"code"in a&&a.code==="ENOENT")return[];throw a}},async walk(t,a){let A=[];async function o(c,p){for(let d of await mu.list(c)){let h=gXA(c,d),B=p?`${p}/${d}`:d,E=await lXA(h).catch(()=>null);if(!E)continue;if(E.isDirectory()){if(a?.skipDirs?.includes(d))continue;await o(h,B)}else A.push({absPath:h,relPath:B})}}return await o(t,""),A.sort((c,p)=>c.relPath.localeCompare(p.relPath))},async readJson(t){try{return JSON.parse(await Bun.file(t).text())}catch(a){if(a instanceof Error&&"code"in a&&a.code==="ENOENT")return null;if(a instanceof SyntaxError)throw ho("CORRUPT_JSON",{detail:`corrupt JSON at ${t}: ${a.message}`,context:{path:t},cause:a});return null}},async readText(t){try{return await Bun.file(t).text()}catch{return null}}};import{join as J2}from"path";import{mkdir as MX,writeFile as GX}from"fs/promises";var Pna=(t)=>`export default defineAgent({
1594
+ `);c=B.pop()??"";for(let E of B){if(!E.startsWith("data: "))continue;let k=E.slice(6).trim();if(!k)continue;try{yield JSON.parse(k)}catch{continue}}}}finally{a?.removeEventListener("abort",p)}}function cna(t){let a=sna({http:t.http}),A=ona({http:t.http});return{engine:a,stt:A}}import{AsyncLocalStorage as qVA}from"async_hooks";function Qcn(){let t=new qVA;return{getStore:()=>t.getStore(),run:(a,A)=>t.run(a,A)}}var Pct=Qcn(),wcn=new Set;function PBt(t,a){let A={...t,durationMs:Date.now()-t.startedAt,...a!==void 0?{error:a}:{}};for(let o of wcn)o(A)}var kcn={current(){return Pct.getStore()},headers(){let t=Pct.getStore();if(!t)return;return{"x-axon-trace-id":t.traceId,"x-axon-span-id":t.spanId}},async span(t,a){let A=Pct.getStore(),o={traceId:A?.traceId??crypto.randomUUID(),spanId:crypto.randomUUID(),...A?{parentSpanId:A.spanId}:{},name:t,startedAt:Date.now()};return Pct.run(o,async()=>{try{let c=await a();return PBt(o),c}catch(c){throw PBt(o,c instanceof Error?c.message:String(c)),c}})},async adopt(t,a,A){let o={traceId:t.traceId,spanId:crypto.randomUUID(),...t.spanId!==void 0?{parentSpanId:t.spanId}:{},name:a,startedAt:Date.now()};return Pct.run(o,async()=>{try{let c=await A();return PBt(o),c}catch(c){throw PBt(o,c instanceof Error?c.message:String(c)),c}})},onSpanEnd(t){return wcn.add(t),()=>{wcn.delete(t)}}};function RVA(t){switch(t){case 401:return"AUTH_EXPIRED";case 403:return"FORBIDDEN";case 404:return"NOT_FOUND";case 409:return"CONFLICT";case 413:return"PAYLOAD_TOO_LARGE";case 429:return"RATE_LIMITED";case 503:return"SERVICE_UNAVAILABLE";default:return"SERVER_ERROR"}}class ate extends Error{code;status;path;data;constructor(t,a,A,o){super(A??`request to ${a} failed with status ${t}`);if(this.code=RVA(t),this.status=t,this.path=a,o)this.data=o}}var UVA=process.env.AXON_API_BASE??(process.env.AXON_STAGING_MODE==="true"?"http://localhost:3099":"https://axon.arclabs.it");function una(t){let a=t.baseUrl??UVA;function A(d){let h=new Headers(d),B=kcn.headers();if(B)for(let[k,v]of Object.entries(B))h.set(k,v);let E=t.token();if(E)h.set("Authorization",`Bearer ${E}`);return h}async function o(d,h){let B=a+d,E=h?.signal,k=[1000,2000,4000];for(let v=0;;v++){let F=A(h?.headers??void 0),T=await fetch(B,{...h,headers:F});if((T.status===503||T.status===429)&&v<k.length){if(E?.aborted)throw Error("request aborted");await new Promise((K,P)=>{let ee=setTimeout(K,k[v]);E?.addEventListener("abort",()=>{clearTimeout(ee),P(Error("request aborted"))},{once:!0})});continue}return T}}async function c(d,h){let B,E;try{let k=await d.text();if(k)try{let v=JSON.parse(k);if(B=v.message??v.statusMessage??(typeof v.error==="string"?v.error:void 0),v.data&&typeof v.data==="object"&&!Array.isArray(v.data))E=v.data}catch{B=k.slice(0,200)}}catch{}return new ate(d.status,h,B,E)}function p(d,h,B){return kcn.span(`http ${d} ${h}`,async()=>{let E=await o(h,{...B,method:d});if(!E.ok)throw await c(E,h);let k=await E.text();return k?JSON.parse(k):void 0})}return{get(d,h){return p("GET",d,{headers:{Accept:"application/json"},...h?{signal:h}:{}})},post(d,h,B){return p("POST",d,{headers:{"Content-Type":"application/json"},...h!==void 0?{body:JSON.stringify(h)}:{},...B?{signal:B}:{}})},patch(d,h,B){return p("PATCH",d,{headers:{"Content-Type":"application/json"},body:JSON.stringify(h),...B?{signal:B}:{}})},put(d,h,B){return p("PUT",d,{headers:{"Content-Type":"application/json"},body:JSON.stringify(h),...B?{signal:B}:{}})},async delete(d,h){await p("DELETE",d,h?{signal:h}:{})},form(d,h,B){return p("POST",d,{body:h,...B?{signal:B}:{}})},async stream(d,h,B){let E=await o(d,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify(h),...B?{signal:B}:{}});if(!E.ok)throw await c(E,d);return E}}}async function lna(t){let{readFile:a}=await import("fs/promises"),{existsSync:A,statSync:o}=await import("fs"),{basename:c,join:p}=await import("path");if(!A(t))throw Error(`bundle path does not exist: ${t}`);let d=o(t).isDirectory(),h=d?t:p(t,".."),B=d?p(t,"source.tar.gz"):t,E=p(h,"image.json");if(!d&&!B.endsWith(".tar.gz"))throw Error(`expected a bundle directory or a .tar.gz file, got: ${t}`);if(!A(B))throw Error(`bundle has no source.tar.gz at ${B} \u2014 run \`axon build\` first`);if(!A(E))throw Error(`bundle has no image.json at ${E} \u2014 run \`axon build\` first`);let k=await a(B);if(k.byteLength>52428800)throw Error(`bundle tarball is ${Math.round(k.byteLength/1024/1024)}MB \u2014 the registry limit is 50MB`);let v=p(h,"tool-globals.d.ts"),F=A(v)?await a(v,"utf-8"):null;return{config:await a(E,"utf-8"),tarball:k,tarballName:c(B),manifest:F}}function jBt(t){let a=`/api/user/deployments/${encodeURIComponent(t.id)}`;async function A(){let o=Vg(await t.http.get(`${a}/status`),"status");return{status:Es(o,"status"),...typeof o.url==="string"?{url:o.url}:{}}}return{id:t.id,status:A,async logs(o){let c=new URLSearchParams;if(o?.limit!==void 0)c.set("limit",String(o.limit));let p=Vg(await t.http.get(`${a}/logs${c.size?`?${c}`:""}`),"logs");return Array.isArray(p.entries)?p.entries.flatMap((d)=>{if(!d||typeof d!=="object")return[];let h=d;return typeof h.timestamp==="string"&&typeof h.severity==="string"&&typeof h.message==="string"?[{timestamp:h.timestamp,severity:h.severity,message:h.message}]:[]}):[]},async start(){await t.http.post(`${a}/start`,{})},async stop(){await t.http.post(`${a}/stop`,{})},async redeploy(){await t.http.post(`${a}/redeploy`,{})},async delete(){await t.http.post(`${a}/delete`,{})},secrets:{async list(){let o=Vg(await t.http.get(`${a}/secrets`),"secrets");return Array.isArray(o.names)?o.names.filter((c)=>typeof c==="string"):[]},async set(o){await t.http.put(`${a}/secrets`,{secrets:o})},async delete(o){await t.http.delete(`${a}/secrets/${encodeURIComponent(o)}`)}},async waitUntilReady(o){let c=o?.timeoutMs??300000,p=Date.now()+c;while(Date.now()<p){if(o?.signal?.aborted)throw Error("deployment wait aborted");await new Promise((h)=>setTimeout(h,2000));let d;try{d=await A()}catch{continue}if(d.status==="running")return{url:d.url??""};if(d.status==="error")throw Error(`deployment ${t.id} entered error state`)}throw Error(`deployment ${t.id} not ready after ${c}ms`)}}}function HBt(t){return{agentId:Es(t,"agentId"),name:Es(t,"name"),description:ag(t,"description"),private:t.private===!0,latestVersion:ag(t,"latestVersion"),starsCount:typeof t.starsCount==="number"?t.starsCount:0,ownerUsername:ag(t,"ownerUsername"),orgSlug:ag(t,"orgSlug"),readme:ag(t,"readme"),createdAt:typeof t.created_at==="string"?t.created_at:typeof t.createdAt==="string"?t.createdAt:""}}function pna(t){let a=`/api/agents/${encodeURIComponent(t.id)}`;return{id:t.id,async get(){return HBt(Vg(await t.http.get(a),"agent"))},async publish(A){if(t.runtime==="browser")throw Error('agent.publish() is not available when AxonCloud({ runtime: "browser" })');let o=await lna(A.path),c=new FormData;if(c.append("config",o.config),c.append("tarball",new Blob([new Uint8Array(o.tarball)],{type:"application/gzip"}),o.tarballName),o.manifest!==null)c.append("manifest",o.manifest);let p=Vg(await t.http.form(`${a}/publish`,c),"publish result");return{agentId:Es(p,"agentId"),publishedAt:Es(p,"publishedAt"),apiKey:ag(p,"apiKey"),deploymentExists:p.deploymentExists===!0}},async versions(){let A=Vg(await t.http.get(`${a}/versions`),"versions response");return ub(A.versions,"versions").map((o)=>({id:Es(o,"id"),version:Es(o,"version"),publishedAt:Es(o,"published_at"),installs:Ad(o,"installs_count"),manifest:ag(o,"manifest")}))},async downloadUrl(A){let o=Vg(await t.http.get(`${a}/versions/${encodeURIComponent(A)}/download`),"download response");return Es(o,"downloadUrl")},async stats(){let A=Vg(await t.http.get(`${a}/stats`),"stats");return{installsTotal:Ad(A,"installs_total"),starsTotal:Ad(A,"stars_total"),activeDeployments:Ad(A,"active_deployments"),starredByMe:zF(A,"starred_by_me"),daily:ub(A.daily,"daily").map((o)=>({date:Es(o,"date"),installs:Ad(o,"installs"),stars:Ad(o,"stars")}))}},async star(){await t.http.post(`${a}/star`,{})},async unstar(){await t.http.delete(`${a}/star`)},async setVisibility(A){await t.http.patch(a,{private:!A})},deployment(A){return jBt({id:A,http:t.http})}}}class jct extends Error{deficitMinor;availableMinor;requiredMinor;checkoutUrl;constructor(t){super(`insufficient balance to deploy: need ${t.requiredMinor} minor units, have ${t.availableMinor}`);this.deficitMinor=t.deficitMinor,this.availableMinor=t.availableMinor,this.requiredMinor=t.requiredMinor,this.checkoutUrl=t.checkoutUrl}}function Dcn(t){function a(c){return pna({id:c,http:t.http,runtime:t.runtime})}async function A(c){let p=Vg(await t.http.post("/api/user/agents",c),"agent");return a(Es(p,"agentId"))}async function o(c,p){try{let d=Vg(await t.http.post("/api/user/deployments",{agentId:c,tier:p.tier??"small",warmth:p.warmth??"on-demand",...p.diskAddOn!==void 0?{diskAddOn:p.diskAddOn}:{}}),"provision result");return{deploymentId:Es(d,"deploymentId")}}catch(d){if(d instanceof ate&&d.status===402&&d.data)throw new jct({deficitMinor:Ad(d.data,"deficitMinor"),availableMinor:Ad(d.data,"availableMinor"),requiredMinor:Ad(d.data,"requiredMinor"),checkoutUrl:typeof d.data.checkoutUrl==="string"?d.data.checkoutUrl:null});throw d}}return{agent:a,create:A,async resolve(c){let p=Vg(await t.http.get(`/api/registry/agents/resolve?name=${encodeURIComponent(c)}`),"resolved agent");return a(Es(p,"agentId"))},async list(){let c=Vg(await t.http.get("/api/user/agents"),"agents response");return ub(c.agents,"agents").map(HBt)},async search(c){let p=new URLSearchParams;if(c?.query)p.set("q",c.query);if(c?.page)p.set("page",String(c.page));let d=p.size>0?`?${p}`:"",h=Vg(await t.http.get(`/api/registry/agents${d}`),"public agents");return ub(h.agents,"agents").map(HBt)},async deploy(c){let p=await A({name:c.name});c.onProgress?.({step:"publishing",agentId:p.id}),await p.publish({path:c.path}),c.onProgress?.({step:"provisioning",agentId:p.id});let{deploymentId:d}=await o(p.id,c),h=jBt({id:d,http:t.http});c.onProgress?.({step:"starting",deploymentId:d});let{url:B}=await h.waitUntilReady({...c.timeoutMs!==void 0?{timeoutMs:c.timeoutMs}:{},...c.signal!==void 0?{signal:c.signal}:{}});return c.onProgress?.({step:"ready",deploymentId:d,url:B}),{agent:p,deployment:h,url:B}}}}function xcn(t){let a=new Map,A=300000;async function o(c,p){let d=a.get(c);if(d&&Date.now()-d.at<300000)return d.models;let h=await p();return a.set(c,{at:Date.now(),models:h}),h}return{all(){return o("all",()=>t.http.get("/api/registry/models"))},axon(){return o("axon",()=>t.http.get("/api/registry/models/axon"))},openrouter(){return o("openrouter",()=>t.http.get("/api/registry/models/openrouter"))}}}async function gna(t,a){let{readFile:A}=await import("fs/promises"),{existsSync:o,statSync:c}=await import("fs"),{basename:p,join:d}=await import("path");if(!o(t))throw Error(`module bundle path does not exist: ${t}`);let h=c(t).isDirectory(),B=h?t:d(t,".."),E=h?d(t,"source.tar.gz"):t,k=d(B,"package.json");if(!h&&!E.endsWith(".tar.gz"))throw Error(`expected a module bundle directory or a .tar.gz file, got: ${t}`);if(!o(E))throw Error(`module bundle has no source.tar.gz at ${E} \u2014 run \`axon build\` first`);if(!o(k))throw Error(`module bundle has no package.json at ${k}`);let v=await A(k,"utf-8"),F=a?.version??JSON.parse(v).version;if(typeof F!=="string"||F.length===0)throw Error('module bundle has no version \u2014 set "version" in package.json or pass one explicitly');let T=await A(E);if(T.byteLength>52428800)throw Error(`module tarball is ${Math.round(T.byteLength/1024/1024)}MB \u2014 the registry limit is 50MB`);let K=d(B,"tool-globals.d.ts"),P=o(K)?await A(K,"utf-8"):null;return{config:v,version:F,tarball:T,tarballName:p(E),manifest:P}}function JBt(t){return{moduleId:typeof t.moduleId==="string"?t.moduleId:Es(t,"id"),name:Es(t,"name"),description:ag(t,"description"),private:t.private===!0,latestVersion:ag(t,"latest_version")??ag(t,"latestVersion"),starsCount:typeof t.starsCount==="number"?t.starsCount:0,ownerUsername:ag(t,"ownerUsername"),orgSlug:ag(t,"orgSlug"),createdAt:typeof t.createdAt==="string"?t.createdAt:"",deprecatedAt:typeof t.deprecatedAt==="string"?t.deprecatedAt:null,deprecationMessage:typeof t.deprecationMessage==="string"?t.deprecationMessage:null}}function dna(t){let a=`/api/modules/${encodeURIComponent(t.id)}`;return{id:t.id,async get(){return JBt(Vg(await t.http.get(a),"module"))},async publish(A){if(t.runtime==="browser")throw Error('module.publish() is not available when AxonCloud({ runtime: "browser" })');let o=await gna(A.path,{...A.version!==void 0?{version:A.version}:{}}),c=new FormData;if(c.append("source",new Blob([new Uint8Array(o.tarball)],{type:"application/gzip"}),o.tarballName),c.append("version",o.version),c.append("config",o.config),o.manifest!==null)c.append("manifest",o.manifest);return await t.http.form(`${a}/publish`,c),{version:o.version}},async versions(){let A=Vg(await t.http.get(`${a}/versions`),"versions response");return ub(A.versions,"versions").map((o)=>({id:Es(o,"id"),version:Es(o,"version"),publishedAt:Es(o,"created_at"),installs:Ad(o,"installs_count"),manifest:ag(o,"manifest")}))},async downloadUrl(A){let o=Vg(await t.http.get(`${a}/versions/${encodeURIComponent(A)}/download`),"download response");return Es(o,"downloadUrl")},async stats(){let A=Vg(await t.http.get(`${a}/stats`),"stats");return{installsTotal:Ad(A,"installs_total"),starsTotal:Ad(A,"stars_total"),starredByMe:zF(A,"starred_by_me"),daily:ub(A.daily,"daily").map((o)=>({date:Es(o,"date"),installs:Ad(o,"installs"),stars:Ad(o,"stars")}))}},async star(){await t.http.post(`${a}/star`,{})},async unstar(){await t.http.delete(`${a}/star`)},async update(A){let{deprecationMessage:o,...c}=A;await t.http.patch(a,{...c,...o!==void 0?{deprecation_message:o}:{}})}}}function vcn(t){function a(A){return dna({id:A,http:t.http,runtime:t.runtime})}return{module:a,async create(A){let o=Vg(await t.http.post("/api/user/modules",A),"module");return a(Es(o,"moduleId"))},async resolveId(A){let o=Vg(await t.http.get(`/api/registry/modules/resolve-id?name=${encodeURIComponent(A)}`),"resolved module");return a(Es(o,"moduleId"))},async resolve(A,o){let c=new URLSearchParams({name:A});if(o)c.set("version",o);let p=Vg(await t.http.get(`/api/registry/modules/resolve?${c}`),"resolved module");return{moduleId:Es(p,"moduleId"),name:Es(p,"name"),version:Es(p,"version"),downloadUrl:Es(p,"downloadUrl")}},async list(){let A=Vg(await t.http.get("/api/user/modules"),"modules response");return ub(A.modules,"modules").map(JBt)},async search(A){let o=new URLSearchParams;if(A?.query)o.set("q",A.query);if(A?.page)o.set("page",String(A.page));let c=o.size>0?`?${o}`:"",p=Vg(await t.http.get(`/api/registry/modules${c}`),"public modules");return ub(p.modules,"modules").map(JBt)}}}function mna(t){return{id:Es(t,"id"),name:Es(t,"name"),description:ag(t,"description"),latestVersion:ag(t,"latestVersion"),starsCount:Ad(t,"starsCount"),createdAt:Es(t,"createdAt")}}function KVA(t){if(!Array.isArray(t))return[];return t.filter((a)=>!!a&&typeof a==="object"&&typeof a.label==="string"&&typeof a.url==="string")}function fna(t){return{async get(a,A){let o=A?.days??30,c=await t.http.get(`/api/u/${encodeURIComponent(a)}?days=${o}`),p=Vg(c.profile,"profile");return{profile:{id:Es(p,"id"),username:ag(p,"username"),name:ag(p,"name"),bio:ag(p,"bio"),avatarUrl:ag(p,"avatarUrl"),website:ag(p,"website"),links:KVA(p.links),location:ag(p,"location"),createdAt:Es(p,"createdAt")},agents:ub(c.agents,"agents").map(mna),modules:ub(c.modules,"modules").map(mna),daily:ub(c.daily,"daily").map((d)=>({date:Es(d,"date"),installs:Ad(d,"installs"),stars:Ad(d,"stars")}))}}}}function hna(t){return{modules:vcn({http:t.http,runtime:t.runtime}),agents:Dcn({http:t.http,runtime:t.runtime}),models:xcn({http:t.http}),profile:fna({http:t.http})}}function YVA(t){let a=Es(t,"kind"),A=Es(t,"id"),o=Es(t,"at");switch(a){case"deployment":return{kind:a,id:A,at:o,agentId:Es(t,"agentId"),status:Es(t,"status")};case"agent":return{kind:a,id:A,at:o,name:Es(t,"name"),latestVersion:ag(t,"latestVersion")};case"module":return{kind:a,id:A,at:o,name:Es(t,"name"),latestVersion:ag(t,"latestVersion")};case"key":return{kind:a,id:A,at:o,name:Es(t,"name"),isActive:zF(t,"isActive")};default:throw Error(`invalid response: unknown activity kind "${a}"`)}}function OBt(t){return{async list(){let a=await t.http.get(t.path());return ub(a.items,"items").map(YVA)}}}function bna(t){async function a(p){let d=await t.http().post("/api/user/device/authorize",p?{hint:p}:{});if(typeof d.device_code!=="string")throw Error("invalid authorize response: missing device_code");if(typeof d.user_code!=="string")throw Error("invalid authorize response: missing user_code");if(typeof d.verification_uri!=="string")throw Error("invalid authorize response: missing verification_uri");if(typeof d.verification_uri_complete!=="string")throw Error("invalid authorize response: missing verification_uri_complete");if(typeof d.interval!=="number")throw Error("invalid authorize response: missing interval");if(typeof d.expires_in!=="number")throw Error("invalid authorize response: missing expires_in");return{deviceCode:d.device_code,userCode:d.user_code,verificationUri:d.verification_uri,verificationUriComplete:d.verification_uri_complete,interval:d.interval,expiresIn:d.expires_in}}async function A(p,d){let h=await t.http().get(`/api/user/device/poll?device_code=${encodeURIComponent(p)}`,d);if(h.status==="approved"){if(typeof h.access_token!=="string")throw Error("invalid poll response: missing access_token");return{status:"approved",accessToken:h.access_token}}if(h.status==="expired")return{status:"expired"};return{status:"pending"}}async function o(p,d){let h=Date.now()+p.expiresIn*1000;while(Date.now()<h){if(d?.aborted)throw Error("device authorization aborted");await new Promise((E,k)=>{let v=setTimeout(E,p.interval*1000);d?.addEventListener("abort",()=>{clearTimeout(v),k(Error("device authorization aborted"))},{once:!0})});let B=await A(p.deviceCode,d);if(B.status==="approved")return{accessToken:B.accessToken};if(B.status==="expired")throw Error("device authorization expired")}throw Error("device authorization expired")}async function c(p){let d=Vg(await t.http().post("/api/user/device/approve",{user_code:p.userCode,...p.deviceName!==void 0?{device_name:p.deviceName}:{}}),"approve result"),h=Vg(d.device,"approve result device");return{apiKeyId:Es(h,"apiKeyId"),name:Es(h,"name")}}return{authorize:a,poll:A,wait:o,approve:c}}var r4e={decode(t){let a=t.split(".");if(a.length!==3)throw Error("invalid JWT format: expected 3 parts");try{let A=Buffer.from(a[1],"base64url").toString("utf-8");return JSON.parse(A)}catch(A){throw Error(`failed to decode JWT payload: ${A instanceof Error?A.message:String(A)}`)}},token:{parse(t){try{let a=r4e.decode(t).exp;if(typeof a!=="number")return Date.now()+86400000;return a*1000}catch{return Date.now()+86400000}},isExpired(t,a=0){return Date.now()+a>=r4e.token.parse(t)}}};function Fcn(t){if(!t||typeof t!=="object"||Array.isArray(t))throw Error("invalid user payload: not an object");let a=t;if(typeof a.id!=="string"||a.id.length===0)throw Error("invalid user payload: missing id");if(typeof a.email!=="string"||a.email.length===0)throw Error("invalid user payload: missing email");let A=typeof a.username==="string"&&a.username.length>0?a.username:a.email,o=typeof a.createdAt==="string"?Date.parse(a.createdAt):NaN;return{id:a.id,email:a.email,name:A,isStaff:a.isStaff===!0,memberSince:Number.isFinite(o)?o:Date.now()}}var PVA=300000;function jVA(t){return t.split(".").length===3}function Scn(t){let a=bna({http:t.http}),A=t.session,o;function c(d,h){return o=void 0,A={accessToken:d,expiresAt:r4e.token.parse(d),user:h},A}async function p(){let d=await t.http().get("/api/user/me/session"),h=Fcn(Vg(d,"session").user);if(A)A={...A,user:h};return h}return{get token(){return process.env.AXON_CONNECT_TOKEN??A?.accessToken??o??t.key??process.env.AXON_API_KEY},get apiKey(){return t.key??process.env.AXON_API_KEY},get user(){return A?.user},get stale(){if(!A)return!1;if(!jVA(A.accessToken))return!1;return r4e.token.isExpired(A.accessToken,PVA)},async login(d){let h=await a.authorize(d.hint);d.onVerification(h);let B=await a.wait(h,d.signal);o=B.accessToken;let E=await p();return c(B.accessToken,E)},async refresh(){if(!A)throw Error("cannot refresh: no live session \u2014 log in first");let d=await t.http().post("/api/auth/refresh",{}),h=d.access_token??d.accessToken;if(typeof h!=="string")throw Error("invalid refresh response: missing access_token");return c(h,d.user?Fcn(d.user):A.user)},me:p,approve:a.approve,adopt(d){A=d,o=void 0},async logout(){A=void 0}}}function Cna(t){return{async get(){let a=await t.http.get("/api/user/billing/account"),A=Vg(a.account,"account");return{id:Es(A,"id"),ownerType:Es(A,"ownerType"),ownerId:Es(A,"ownerId"),status:Es(A,"status"),currency:Es(A,"currency"),defaultPaymentMethodId:ag(A,"defaultPaymentMethodId"),autoTopupEnabled:zF(A,"autoTopupEnabled")}},async balance(){let a=await t.http.get("/api/user/billing/balance"),A=Vg(a.balance,"balance");return{currency:Es(A,"currency"),postedMinor:Ad(A,"postedMinor"),reservedMinor:Ad(A,"reservedMinor"),availableMinor:Ad(A,"availableMinor")}},async portal(a){let A=await t.http.post("/api/user/billing/portal",a??{});return{url:Es(A,"url")}}}}function Bna(t){return{async list(){let a=await t.http.get("/api/user/billing/payment-methods");return ub(a.paymentMethods,"paymentMethods").map((A)=>({id:Es(A,"id"),brand:Es(A,"brand"),last4:Es(A,"last4"),expMonth:Ad(A,"expMonth"),expYear:Ad(A,"expYear"),isDefault:zF(A,"isDefault")}))},async add(){let a=await t.http.post("/api/user/billing/setup-intent",{});return{clientSecret:Es(Vg(a,"setup intent"),"clientSecret")}},async sync(){await t.http.post("/api/user/billing/payment-methods/sync",{})},async setDefault(a){await t.http.post(`/api/user/billing/payment-methods/${encodeURIComponent(a)}/default`,{})},async reorder(a){await t.http.post("/api/user/billing/payment-methods/reorder",{orderedIds:a})},async remove(a){await t.http.delete(`/api/user/billing/payment-methods/${encodeURIComponent(a)}`)}}}function Ina(t){return{async price(a){let A=await t.http.post("/api/user/billing/commitments/preview",a),o=Vg(A.commitment,"commitment");return{kind:Es(o,"kind"),amountMinor:Ad(o,"amountMinor"),currency:Es(o,"currency"),periodDays:Ad(o,"periodDays"),tier:Es(o,"tier"),warmth:Es(o,"warmth"),diskAddOn:ag(o,"diskAddOn")}},async list(){let a=await t.http.get("/api/user/billing/commitments");return ub(a.commitments,"commitments").map((A)=>({id:Es(A,"id"),kind:Es(A,"kind"),status:Es(A,"status"),deploymentId:ag(A,"deploymentId"),amountMinor:Ad(A,"amountMinor"),currency:Es(A,"currency"),currentPeriodStart:Es(A,"currentPeriodStart"),currentPeriodEnd:Es(A,"currentPeriodEnd"),autoRenew:zF(A,"autoRenew"),cancelledAt:ag(A,"cancelledAt"),metadata:A.metadata?Vg(A.metadata,"metadata"):{},createdAt:Es(A,"createdAt")}))},async cancelRenewal(a){await t.http.post(`/api/user/billing/commitments/${encodeURIComponent(a)}/cancel-renewal`,{})},async resumeRenewal(a){await t.http.post(`/api/user/billing/commitments/${encodeURIComponent(a)}/resume-renewal`,{})}}}function yna(t){return{async list(a){let A=new URLSearchParams;if(a?.limit)A.set("limit",String(a.limit));let o=A.size>0?`?${A}`:"",c=await t.http.get(`/api/user/billing/ledger${o}`);return ub(c.entries,"entries").map((p)=>({id:Es(p,"id"),kind:Es(p,"kind"),status:Es(p,"status"),amountMinor:Ad(p,"amountMinor"),currency:Es(p,"currency"),description:ag(p,"description"),referenceType:ag(p,"referenceType"),referenceId:ag(p,"referenceId"),createdAt:Es(p,"createdAt"),metadata:p.metadata?Vg(p.metadata,"metadata"):{}}))}}}function Ena(t){let a=Vg(t,"policy"),A=a.maxTopupsPerDay;return{enabled:zF(a,"enabled"),currency:Es(a,"currency"),thresholdMinor:Ad(a,"thresholdMinor"),topupAmountMinor:Ad(a,"topupAmountMinor"),maxTopupsPerDay:typeof A==="number"?A:null,lastTriggeredAt:ag(a,"lastTriggeredAt")}}function _na(t){return{async charge(a){let A=await t.http.post("/api/user/billing/topups",{amountMinor:a.amountMinor,...a.paymentMethodId?{paymentMethodId:a.paymentMethodId}:{}}),o=Vg(A.balance,"balance");return{paymentIntentId:Es(A,"paymentIntentId"),balance:{currency:Es(o,"currency"),availableMinor:Ad(o,"availableMinor")}}},auto:{async get(){let a=await t.http.get("/api/user/billing/topups/auto");return Ena(a.policy)},async set(a){let A=await t.http.put("/api/user/billing/topups/auto",a);return Ena(A.policy)}}}}function Qna(t){return{async summary(a){let A=new URLSearchParams;if(a?.days)A.set("days",String(a.days));let o=A.size>0?`?${A}`:"",c=await t.http.get(`/api/user/billing/usage${o}`),p=Vg(c.summary,"summary");return{currency:Es(p,"currency"),totalMinor:Ad(p,"totalMinor"),items:ub(p.items,"items").map((d)=>({date:Es(d,"date"),amountMinor:Ad(d,"amountMinor"),kind:Es(d,"kind")}))}},async spendByReference(a){let A=new URLSearchParams;if(a?.days)A.set("days",String(a.days));let o=A.size>0?`?${A}`:"",c=await t.http.get(`/api/user/billing/spend-by-reference${o}`);return{currency:Es(c,"currency"),items:ub(c.items,"items").map((p)=>({date:Es(p,"date"),referenceType:Es(p,"referenceType"),amountMinor:Ad(p,"amountMinor")}))}},async dailyBalance(a){let A=new URLSearchParams;if(a?.days)A.set("days",String(a.days));let o=A.size>0?`?${A}`:"",c=await t.http.get(`/api/user/billing/daily-balance${o}`);return{currency:Es(c,"currency"),items:ub(c.items,"items").map((p)=>({date:Es(p,"date"),balanceMinor:Ad(p,"balanceMinor")}))}}}}function Ncn(t){let a=Cna({http:t.http});return{account:a.get,balance:a.balance,portal:a.portal,cards:Bna({http:t.http}),topup:_na({http:t.http}),ledger:yna({http:t.http}),commitments:Ina({http:t.http}),usage:Qna({http:t.http})}}function HVA(t){return{id:Es(t,"id"),agentId:Es(t,"agentId"),tier:Es(t,"tier"),warmth:Es(t,"warmth"),status:Es(t,"status"),url:ag(t,"url"),createdAt:Es(t,"createdAt"),lastError:ag(t,"lastError"),axonBaseVersion:ag(t,"axonBaseVersion")}}function wna(t){return{async list(){let a=await t.http.get("/api/user/deployments");return ub(a.deployments,"deployments").map(HVA)}}}function kna(t){return{id:Es(t,"id"),name:Es(t,"name"),type:Es(t,"type"),isActive:zF(t,"isActive"),scopes:Array.isArray(t.scopes)?t.scopes:[],lastUsedAt:ag(t,"lastUsedAt"),expiresAt:ag(t,"expiresAt"),createdAt:Es(t,"createdAt")}}function Dna(t){return{async list(){let a=await t.http.get("/api/user/keys");return ub(a.keys,"keys").map(kna)},async create(a){let A=await t.http.post("/api/user/keys",{name:a.name,scopes:a.scopes}),o=Vg(A,"created key");return{...kna(o),key:Es(o,"key")}},async rename(a,A){await t.http.patch(`/api/user/keys/${encodeURIComponent(a)}`,{name:A})},async revoke(a){await t.http.delete(`/api/user/keys/${encodeURIComponent(a)}`)}}}function xna(t){return{userId:Es(t,"userId"),username:Es(t,"username"),name:ag(t,"name"),role:Es(t,"role"),joinedAt:Es(t,"joinedAt")}}function vna(t){return{id:Es(t,"id"),name:Es(t,"name"),description:ag(t,"description"),private:zF(t,"private"),latestVersion:ag(t,"latestVersion"),starsCount:Ad(t,"starsCount"),createdAt:Es(t,"createdAt")}}function Mcn(t){let a=`/api/orgs/${encodeURIComponent(t.slug)}`,A=OBt({http:t.http,path:()=>`${a}/activity`});return{slug:t.slug,activity:A,async get(){let o=await t.http.get(a),c=Vg(o.org,"org");return{id:Es(c,"id"),slug:Es(c,"slug"),displayName:ag(c,"displayName"),description:ag(c,"description"),avatarUrl:ag(c,"avatarUrl"),website:ag(c,"website"),createdAt:Es(c,"createdAt"),memberCount:Ad(c,"memberCount")}},async update(o){await t.http.patch(a,{...o.displayName!==void 0?{display_name:o.displayName}:{},...o.description!==void 0?{description:o.description}:{},...o.avatarUrl!==void 0?{avatar_url:o.avatarUrl}:{},...o.website!==void 0?{website:o.website}:{}})},async delete(){await t.http.delete(a)},async agents(){let o=await t.http.get(`${a}/agents`);return ub(o.agents,"agents").map(vna)},async modules(){let o=await t.http.get(`${a}/modules`);return ub(o.modules,"modules").map(vna)},async stats(o=30){let c=await t.http.get(`${a}/stats?days=${o}`);return{starsTotal:Ad(c,"stars_total"),agentsCount:Ad(c,"agents_count"),modulesCount:Ad(c,"modules_count"),daily:ub(c.daily,"daily").map((p)=>({date:Es(p,"date"),installs:Ad(p,"installs"),stars:Ad(p,"stars")}))}},members:{async list(){let o=await t.http.get(`${a}/members`);return ub(o.members,"members").map(xna)},async add(o){let c=await t.http.post(`${a}/members`,o);return xna(Vg(c.member,"member"))},async setRole(o,c){await t.http.patch(`${a}/members/${encodeURIComponent(o)}`,{role:c})},async remove(o){await t.http.delete(`${a}/members/${encodeURIComponent(o)}`)}}}}function Gcn(t){return{async list(){let a=await t.http.get("/api/user/orgs");return ub(a.orgs,"orgs").map((A)=>({id:Es(A,"id"),slug:Es(A,"slug"),displayName:ag(A,"displayName"),avatarUrl:ag(A,"avatarUrl"),role:Es(A,"role"),joinedAt:Es(A,"joinedAt")}))},async create(a){let A=await t.http.post("/api/user/orgs",{slug:a.slug,...a.displayName!==void 0?{display_name:a.displayName}:{},...a.description!==void 0?{description:a.description}:{}}),o=Vg(A.org,"org");return Mcn({slug:Es(o,"slug"),http:t.http})},org(a){return Mcn({slug:a,http:t.http})}}}function JVA(t){let a=Vg(t.profile,"profile");return{uptime:ub(t.uptime,"uptime").map((A)=>({date:Es(A,"date"),uptimePercent:Ad(A,"uptimePercent")})),errors:ub(t.errors,"errors").map((A)=>({date:Es(A,"date"),errors:Ad(A,"errors")})),profile:{daily:ub(a.daily,"profile.daily").map((A)=>({date:Es(A,"date"),installs:Ad(A,"installs"),stars:Ad(A,"stars")})),starsTotal:Ad(a,"starsTotal"),installsTotal:Ad(a,"installsTotal")},activeDeployments:Ad(t,"activeDeployments"),totalDeployments:Ad(t,"totalDeployments")}}function Fna(t){return{async stats(a){let A=a?.days??30,o=await t.http.get(`/api/user/overview/stats?days=${A}`);return JVA(o)}}}function OVA(t){if(!Array.isArray(t))return[];return t.filter((a)=>!!a&&typeof a==="object"&&typeof a.label==="string"&&typeof a.url==="string")}function $VA(t){return{id:Es(t,"id"),username:ag(t,"username"),name:ag(t,"name"),email:Es(t,"email"),bio:ag(t,"bio"),avatarUrl:ag(t,"avatarUrl"),website:ag(t,"website"),links:OVA(t.links),location:ag(t,"location"),deactivatedAt:ag(t,"deactivatedAt"),createdAt:Es(t,"createdAt")}}function Sna(t){return{async get(){return $VA(await t.http.get("/api/user/profile"))},async update(a){await t.http.patch("/api/user/profile",a)},async setAvatar(a){let A=new FormData;A.set("image",a);let o=await t.http.form("/api/user/profile/avatar",A);return Es(Vg(o,"avatar response"),"avatarUrl")},async deactivate(){await t.http.post("/api/user/profile/deactivate",{})}}}function zVA(t){let a=Es(t,"kind");if(a!=="agent"&&a!=="module")throw Error(`invalid response: unknown starred kind "${a}"`);return{kind:a,id:Es(t,"id"),name:Es(t,"name"),description:ag(t,"description"),private:zF(t,"private"),latestVersion:ag(t,"latestVersion"),starsCount:Ad(t,"starsCount"),starredAt:Es(t,"starredAt")}}function Nna(t){return{async list(){let a=await t.http.get("/api/user/starred");return ub(a.items,"items").map(zVA)}}}var Lna={async login(t){let a=(await import("crypto")).default,A=nXA(a),o=await VVA(),c;if(o)await t.open(A.url),c=await o.callback;else{if(!t.paste)throw Error("CODEX_PORT_BUSY: port 1455 is in use and no paste fallback was provided");await t.open(A.url),c=await t.paste()}let{code:p,state:d}=iXA(c);if(!p)throw Error("Codex login failed: no authorization code in callback");if(d&&d!==A.state)throw Error("Codex login failed: state mismatch \u2014 possible CSRF, try again");return aXA(p,A.verifier)}},Mna=1455,WVA="/auth/callback",ZVA=300000;async function VVA(){let t=(await import("http")).default;return new Promise((a)=>{let A=t.createServer();A.once("error",(o)=>{if(o.code==="EADDRINUSE")return a(null);throw o}),A.listen(Mna,"127.0.0.1",()=>{let o=new Promise((c,p)=>{let d=setTimeout(()=>{A.close(),p(Error("CODEX_CALLBACK_TIMEOUT: no OAuth redirect received within 5 minutes"))},ZVA);A.on("request",(h,B)=>{let E=new URL(h.url??"/",`http://127.0.0.1:${Mna}`);if(E.pathname!==WVA){B.writeHead(404).end();return}B.writeHead(200,{"Content-Type":"text/html"}),B.end("<html><body>Connected \u2014 you can close this tab and return to the terminal.</body></html>"),clearTimeout(d),A.close(),c(E.toString())})});a({callback:o})})})}var Tna="app_EMoamEEZ73f0CkXaXp7hrann",XVA="https://auth.openai.com/oauth/authorize",eXA="https://auth.openai.com/oauth/token",qna="http://localhost:1455/auth/callback",tXA="openid profile email offline_access",Gna="https://api.openai.com/auth";function nXA(t){let a=t.randomBytes(32).toString("base64url"),A=t.createHash("sha256").update(a).digest("base64url"),o=t.randomBytes(16).toString("hex"),c=new URL(XVA);return c.searchParams.set("response_type","code"),c.searchParams.set("client_id",Tna),c.searchParams.set("redirect_uri",qna),c.searchParams.set("scope",tXA),c.searchParams.set("code_challenge",A),c.searchParams.set("code_challenge_method","S256"),c.searchParams.set("state",o),c.searchParams.set("id_token_add_organizations","true"),c.searchParams.set("codex_cli_simplified_flow","true"),c.searchParams.set("originator","codex_cli_rs"),{url:c.toString(),state:o,verifier:a}}async function aXA(t,a){let A=await fetch(eXA,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",client_id:Tna,code:t,code_verifier:a,redirect_uri:qna}).toString()});if(!A.ok){let c=await A.text().catch(()=>"");throw Error(`Codex token request failed: ${A.status}${c?` - ${c}`:""}`)}let o=await A.json();if(!o.access_token||!o.refresh_token||typeof o.expires_in!=="number")throw Error("Codex token response missing required fields");return{accessToken:o.access_token,refreshToken:o.refresh_token,expiresAt:Date.now()+o.expires_in*1000,accountId:AXA(o.access_token),connectedAt:Date.now()}}function AXA(t){let a=r4e.decode(t)[Gna];if(!a?.chatgpt_account_id)throw Error(`Codex token missing chatgpt_account_id in "${Gna}" claim`);return a.chatgpt_account_id}function iXA(t){let a=t.trim();if(!a)return{};try{let A=new URL(a);return{code:A.searchParams.get("code")??void 0,state:A.searchParams.get("state")??void 0}}catch{}if(a.includes("#")){let[A,o]=a.split("#",2);return{code:A||void 0,state:o||void 0}}if(a.includes("code=")){let A=new URLSearchParams(a);return{code:A.get("code")??void 0,state:A.get("state")??void 0}}return{code:a}}var rXA=30000;function Lcn(t){return{secrets:{list(){return t.http.get("/api/user/vault/secrets")},async set(a,A){await t.http.put(`/api/user/vault/secrets/${encodeURIComponent(a)}`,{value:A})},async delete(a){await t.http.delete(`/api/user/vault/secrets/${encodeURIComponent(a)}`)}},connections:{openai:oXA(t),openrouter:sXA(t)}}}function Rna(t,a){let A=null;return{async upload(o){await t.http.put(`/api/user/vault/connections/${a}`,o),A=null},async token(){if(A&&A.expiresAt-Date.now()>rXA)return A;return A=await t.http.get(`/api/user/vault/connections/${a}/token`),A},status(){return t.http.get(`/api/user/vault/connections/${a}`)},async disconnect(){await t.http.delete(`/api/user/vault/connections/${a}`),A=null}}}function oXA(t){let{upload:a,...A}=Rna(t,"openai");return{async connect(o){if(t.runtime==="browser")throw Error('vault.connections.openai.connect is not available when AxonCloud({ runtime: "browser" }) \u2014 the PKCE flow needs a local callback server');let c=await Lna.login(o);await a(c)},...A}}function sXA(t){let{upload:a,...A}=Rna(t,"openrouter");return{async connect(o){let c=o.key.trim();if(!c)throw Error("OPENROUTER_KEY_REQUIRED: paste your OpenRouter API key \u2014 get one at openrouter.ai/keys");await a({key:c,connectedAt:Date.now()})},...A}}function Una(t){let a=Scn({...t.key!==void 0?{key:t.key}:{},...t.session!==void 0?{session:t.session}:{},http:()=>A}),A=una({...t.baseUrl!==void 0?{baseUrl:t.baseUrl}:{},token:()=>a.token}),o=Ncn({http:A}),c=Dna({http:A}),p=Gcn({http:A}),d=Lcn({http:A,runtime:t.runtime}),h=OBt({http:A,path:()=>"/api/user/activity"}),B=Nna({http:A}),E=Sna({http:A}),k=wna({http:A}),v=Fna({http:A});return{auth:a,http:A,billing:o,keys:c,orgs:p,vault:d,activity:h,starred:B,profile:E,deployments:k,overview:v}}function Hct(t){let a=t.runtime??"node",A=Una({...t.key!==void 0?{key:t.key}:{},...t.baseUrl!==void 0?{baseUrl:t.baseUrl}:{},...t.session!==void 0?{session:t.session}:{},runtime:a}),o=hna({http:A.http,runtime:a}),c=cna({http:A.http});return{user:A,registry:o,cloud:c}}var cXA=!0;function Yna(t){let a=t.store;function A(){let p=a.profiles.current(),d=p?Kna(p.record):null;return Hct({...p?.record.auth.apiKey?{key:p.record.auth.apiKey}:{},...d?{session:d}:{}})}let o=A();function c(p){let d=a.profiles.get(p.user.email).record.get();a.profiles.save(p.user.email,{...d,user:{id:p.user.id,email:p.user.email,name:p.user.name,memberSince:new Date(p.user.memberSince).toISOString()},auth:{...d?.auth,accessToken:p.accessToken,expiresAt:p.expiresAt}})}return{client:o,get authenticated(){let p=a.profiles.current();return!!(p?.record.auth.accessToken||p?.record.auth.apiKey)},async login(p){let d=await o.user.auth.login({onVerification:p.onCode,...p.hint!==void 0?{hint:p.hint}:{},...p.signal!==void 0?{signal:p.signal}:{}});return c(d),d.user},async refresh(){let p=await o.user.auth.refresh();c(p)},async logout(){await o.user.auth.logout();let p=a.profiles.current();if(p){if(!cXA){let d={...p.record,auth:{}};a.profiles.get(p.id).record.set(d)}a.profiles.deactivate()}},async switch(p){let d=a.profiles.get(p).record.get();if(!d)throw ho("PROFILE_UNKNOWN",{detail:`unknown profile: ${p} (known: ${a.profiles.list().join(", ")||"none"})`,context:{profileId:p}});let h=Kna(d);if(!h)throw ho("PROFILE_NOT_AUTHENTICATED",{context:{profileId:p}});if(a.profiles.activate(p),o.user.auth.adopt(h),o.user.auth.stale){let B=await o.user.auth.refresh();c(B)}},connections:{openai:o.user.vault.connections.openai,openrouter:o.user.vault.connections.openrouter}}}function Kna(t){if(!t.auth.accessToken||t.auth.expiresAt===void 0)return null;return{accessToken:t.auth.accessToken,expiresAt:t.auth.expiresAt,user:{id:t.user.id,email:t.user.email,name:t.user.name??t.user.email,isStaff:!1,memberSince:t.user.memberSince?Date.parse(t.user.memberSince):0}}}import{dirname as cdi,join as udi,resolve as xpa}from"path";import{readdir as uXA,stat as lXA}from"fs/promises";import{existsSync as pXA}from"fs";import{join as gXA}from"path";var mu={exists(t){return pXA(t)},async list(t){try{return await uXA(t)}catch(a){if(a instanceof Error&&"code"in a&&a.code==="ENOENT")return[];throw a}},async walk(t,a){let A=[];async function o(c,p){for(let d of await mu.list(c)){let h=gXA(c,d),B=p?`${p}/${d}`:d,E=await lXA(h).catch(()=>null);if(!E)continue;if(E.isDirectory()){if(a?.skipDirs?.includes(d))continue;await o(h,B)}else A.push({absPath:h,relPath:B})}}return await o(t,""),A.sort((c,p)=>c.relPath.localeCompare(p.relPath))},async readJson(t){try{return JSON.parse(await Bun.file(t).text())}catch(a){if(a instanceof Error&&"code"in a&&a.code==="ENOENT")return null;if(a instanceof SyntaxError)throw ho("CORRUPT_JSON",{detail:`corrupt JSON at ${t}: ${a.message}`,context:{path:t},cause:a});return null}},async readText(t){try{return await Bun.file(t).text()}catch{return null}}};import{join as J2}from"path";import{mkdir as MX,writeFile as GX}from"fs/promises";var Pna=(t)=>`export default defineAgent({
1595
1595
  description: "${t}",
1596
1596
 
1597
1597
  // No engine = mock mode (echoes your messages). Swap in a real engine when ready:
@@ -2627,4 +2627,4 @@ Describe the benchmark methodology and limitations.
2627
2627
  constructed already shows via session-event.vue \u2014 don't render
2628
2628
  it twice). `),zX(B)?(lj(),hte(OX,{key:0,error:zX(B)},null,8,["error"])):zX(a).error.value&&!zX(h)?(lj(),hte(Pde,{key:1,message:zX(a).error.value.message},null,8,["message"])):$X("v-if",!0),$X(` Client-side send failure \u2014 the run never reached the kernel
2629
2629
  (no agent booted), so there is no session entry for it
2630
- anywhere; this is the one place it's surfaced. `),zX(E)?(lj(),hte(OX,{key:2,error:zX(E)},null,8,["error"])):zX(A).sendError.value?(lj(),hte(Pde,{key:3,message:zX(A).sendError.value.message},null,8,["message"])):$X("v-if",!0)],8,["scroll-bottom"])}}});Xha.__scopeId="data-v-2f7dd66a";var eba=Xha;var tba=!1;{let t=process.argv.slice(2),a={version:"2.0.3",args:t},A={"--version":({version:o})=>{console.log(o||cli.version())},"--help":()=>{cli.help()},init:({args:o,cwd:c})=>exitOnError(async()=>{let{positional:p}=parseArgs(o);await cli.agent.init(p[0],c)}),prepare:({cwd:o})=>exitOnError(async()=>{await cli.prepare(o)}),dev:({args:o,cwd:c})=>exitOnError(async()=>{let{flags:p}=parseArgs(o),d=p.port?parseInt(p.port,10):void 0;await cli.agent.dev(c,{...d!==void 0?{port:d}:{}})}),build:({cwd:o})=>exitOnError(async()=>{await cli.agent.build(o)}),deploy:({cwd:o})=>exitOnError(async()=>{await cli.agent.deploy(o)}),publish:({cwd:o})=>exitOnError(async()=>{await cli.publish(o)}),install:({args:o,cwd:c})=>install(cli,o,c),i:({args:o,cwd:c})=>install(cli,o,c),uninstall:({args:o,cwd:c})=>exitOnError(async()=>{let{positional:p}=parseArgs(o);await cli.agent.uninstall(c,p[0])}),list:()=>exitOnError(async()=>{await cli.registry.list()}),clone:({args:o,cwd:c})=>exitOnError(async()=>{let{positional:p,flags:d}=parseArgs(o),h=p[1]??d.dir;await cli.registry.clone(p[0],c,{...h?{dir:h}:{}})}),fork:({args:o,cwd:c})=>exitOnError(async()=>{let{positional:p,flags:d}=parseArgs(o),h=p[1]??d.dir;await cli.registry.fork(p[0],c,{...d.as?{as:d.as}:{},...h?{dir:h}:{}})}),login:()=>exitOnError(async()=>{await cli.auth.login()}),logout:()=>exitOnError(async()=>{await cli.auth.logout()}),whoami:()=>exitOnError(async()=>{await cli.auth.whoami()}),cognet:({args:o,cwd:c})=>exitOnError(async()=>{let[p,...d]=o,{positional:h}=parseArgs(d);if(p==="init")await cli.cognet.init(h[0],c);else if(p==="prepare")await cli.cognet.prepare(c);else unknownSubcommand("cognet",p)}),module:({args:o,cwd:c})=>exitOnError(async()=>{let[p,...d]=o,{positional:h}=parseArgs(d);if(p==="init")await cli.module.init(h[0],c);else if(p==="prepare")await cli.module.prepare(c);else if(p==="publish")await cli.module.publish(c);else unknownSubcommand("module",p)}),ps:()=>exitOnError(async()=>{await cli.agent.list()}),status:({args:o,cwd:c})=>exitOnError(async()=>{let{positional:p}=parseArgs(o);await cli.agent.status(c,p[0])}),logs:({args:o,cwd:c})=>exitOnError(async()=>{let{positional:p,flags:d}=parseArgs(o);await cli.agent.logs(c,p[0],{follow:d.follow==="true"})}),undeploy:({args:o,cwd:c})=>exitOnError(async()=>{let{positional:p,flags:d}=parseArgs(o);await cli.agent.undeploy(c,p[0],{yes:d.yes==="true"})}),bench:({args:o,cwd:c})=>exitOnError(async()=>{let[p,...d]=o,{positional:h}=parseArgs(d);if(p==="init")await cli.bench.init(h[0],c);else if(p==="prepare")await cli.bench.prepare(c);else if(p==="run")await cli.bench.run(c);else if(p==="result")await cli.bench.result(c,h[0]);else unknownSubcommand("bench",p)})};for(let[o,c]of Object.entries(A))if(t.includes(o)){await c(a),tba=!0;break}}if(!tba)Acn({routes:[{path:"/logs/kernel",component:Dha,name:"logs-kernel"},{path:"/logs/session",component:Sha,name:"logs-session"},{path:"/capsule/:id",component:Lha,name:"capsule-id"},{path:"/account",component:Rha,name:"account",meta:{layout:"default"}},{path:"/auth",component:Pha,name:"auth",meta:{layout:"default"}},{path:"/",component:eba,name:"home",meta:{layout:"default"}}],styles:[Dda,Gda,vma,Yda,Gfa,Ufa,Jfa,Aha,oha,sha,dha,hha,Bha,eha,nha,Zfa,Ima,kma,fma,yha,wha,vha,Mha,Tha,Kha,Vha],layouts:new Map([["default",_ha]]),middleware:[Qda],screen:{title:"VTerm"},quitKeys:["C-c"],highlight:{theme:{name:"arcnight",type:"dark",colors:{"editor.background":"#070b10","editor.foreground":"#c7eaff"},tokenColors:[{scope:["variable","variable.other","variable.other.property","variable.other.object.property","variable.other.readwrite","meta.object-literal.key","support.variable.property"],settings:{foreground:"#7cceff"}},{scope:["keyword","keyword.control","keyword.other","storage","storage.type","storage.modifier"],settings:{foreground:"#345a94"}},{scope:["constant.numeric","number"],settings:{foreground:"#326396"}},{scope:["entity.name.type","entity.name.class","constant","support.type"],settings:{foreground:"#3caed5"}},{scope:["entity.name.function","support.function","meta.function-call"],settings:{foreground:"#3caed5"}},{scope:["string","string.quoted","string.template"],settings:{foreground:"#4c6696"}},{scope:["keyword.operator","punctuation.accessor"],settings:{foreground:"#7cceff"}},{scope:["comment","comment.line","comment.block"],settings:{foreground:"#585858",fontStyle:"italic"}},{scope:["punctuation.definition.tag.air"],settings:{foreground:"#2a4a6a"}},{scope:["entity.name.tag.section.air"],settings:{foreground:"#345a94"}},{scope:["entity.name.tag.turn.air"],settings:{foreground:"#3caed5"}},{scope:["entity.name.tag.execute.air"],settings:{foreground:"#00B4D8"}},{scope:["entity.name.tag.stdout.air"],settings:{foreground:"#4c6696"}},{scope:["entity.name.tag.prose.air"],settings:{foreground:"#7cceff"}},{scope:["entity.name.tag.signal.air"],settings:{foreground:"#3caed5"}},{scope:["entity.name.tag.env.air"],settings:{foreground:"#345a94"}},{scope:["entity.name.tag.system.air"],settings:{foreground:"#b43c3c"}},{scope:["entity.name.tag.state.air"],settings:{foreground:"#585858"}},{scope:["entity.other.attribute-name.air"],settings:{foreground:"#4c6696"}},{scope:["string.quoted.double.air"],settings:{foreground:"#326396"}},{scope:["constant.character.entity.air"],settings:{foreground:"#4c6696"}}]}},ui:{cursor:{shape:"line",blink:!0},scrollbar:{thumb:"\u2502",track:"\u2502"}}});
2630
+ anywhere; this is the one place it's surfaced. `),zX(E)?(lj(),hte(OX,{key:2,error:zX(E)},null,8,["error"])):zX(A).sendError.value?(lj(),hte(Pde,{key:3,message:zX(A).sendError.value.message},null,8,["message"])):$X("v-if",!0)],8,["scroll-bottom"])}}});Xha.__scopeId="data-v-2f7dd66a";var eba=Xha;var tba=!1;{let t=process.argv.slice(2),a={version:"2.0.4",args:t},A={"--version":({version:o})=>{console.log(o||cli.version())},"--help":()=>{cli.help()},init:({args:o,cwd:c})=>exitOnError(async()=>{let{positional:p}=parseArgs(o);await cli.agent.init(p[0],c)}),prepare:({cwd:o})=>exitOnError(async()=>{await cli.prepare(o)}),dev:({args:o,cwd:c})=>exitOnError(async()=>{let{flags:p}=parseArgs(o),d=p.port?parseInt(p.port,10):void 0;await cli.agent.dev(c,{...d!==void 0?{port:d}:{}})}),build:({cwd:o})=>exitOnError(async()=>{await cli.agent.build(o)}),deploy:({cwd:o})=>exitOnError(async()=>{await cli.agent.deploy(o)}),publish:({cwd:o})=>exitOnError(async()=>{await cli.publish(o)}),install:({args:o,cwd:c})=>install(cli,o,c),i:({args:o,cwd:c})=>install(cli,o,c),uninstall:({args:o,cwd:c})=>exitOnError(async()=>{let{positional:p}=parseArgs(o);await cli.agent.uninstall(c,p[0])}),list:()=>exitOnError(async()=>{await cli.registry.list()}),clone:({args:o,cwd:c})=>exitOnError(async()=>{let{positional:p,flags:d}=parseArgs(o),h=p[1]??d.dir;await cli.registry.clone(p[0],c,{...h?{dir:h}:{}})}),fork:({args:o,cwd:c})=>exitOnError(async()=>{let{positional:p,flags:d}=parseArgs(o),h=p[1]??d.dir;await cli.registry.fork(p[0],c,{...d.as?{as:d.as}:{},...h?{dir:h}:{}})}),login:()=>exitOnError(async()=>{await cli.auth.login()}),logout:()=>exitOnError(async()=>{await cli.auth.logout()}),whoami:()=>exitOnError(async()=>{await cli.auth.whoami()}),cognet:({args:o,cwd:c})=>exitOnError(async()=>{let[p,...d]=o,{positional:h}=parseArgs(d);if(p==="init")await cli.cognet.init(h[0],c);else if(p==="prepare")await cli.cognet.prepare(c);else unknownSubcommand("cognet",p)}),module:({args:o,cwd:c})=>exitOnError(async()=>{let[p,...d]=o,{positional:h}=parseArgs(d);if(p==="init")await cli.module.init(h[0],c);else if(p==="prepare")await cli.module.prepare(c);else if(p==="publish")await cli.module.publish(c);else unknownSubcommand("module",p)}),ps:()=>exitOnError(async()=>{await cli.agent.list()}),status:({args:o,cwd:c})=>exitOnError(async()=>{let{positional:p}=parseArgs(o);await cli.agent.status(c,p[0])}),logs:({args:o,cwd:c})=>exitOnError(async()=>{let{positional:p,flags:d}=parseArgs(o);await cli.agent.logs(c,p[0],{follow:d.follow==="true"})}),undeploy:({args:o,cwd:c})=>exitOnError(async()=>{let{positional:p,flags:d}=parseArgs(o);await cli.agent.undeploy(c,p[0],{yes:d.yes==="true"})}),bench:({args:o,cwd:c})=>exitOnError(async()=>{let[p,...d]=o,{positional:h}=parseArgs(d);if(p==="init")await cli.bench.init(h[0],c);else if(p==="prepare")await cli.bench.prepare(c);else if(p==="run")await cli.bench.run(c);else if(p==="result")await cli.bench.result(c,h[0]);else unknownSubcommand("bench",p)})};for(let[o,c]of Object.entries(A))if(t.includes(o)){await c(a),tba=!0;break}}if(!tba)Acn({routes:[{path:"/logs/kernel",component:Dha,name:"logs-kernel"},{path:"/logs/session",component:Sha,name:"logs-session"},{path:"/capsule/:id",component:Lha,name:"capsule-id"},{path:"/account",component:Rha,name:"account",meta:{layout:"default"}},{path:"/auth",component:Pha,name:"auth",meta:{layout:"default"}},{path:"/",component:eba,name:"home",meta:{layout:"default"}}],styles:[Dda,Gda,vma,Yda,Ima,kma,fma,Gfa,Ufa,Jfa,Aha,oha,sha,dha,hha,Bha,eha,nha,Zfa,yha,wha,vha,Mha,Tha,Kha,Vha],layouts:new Map([["default",_ha]]),middleware:[Qda],screen:{title:"VTerm"},quitKeys:["C-c"],highlight:{theme:{name:"arcnight",type:"dark",colors:{"editor.background":"#070b10","editor.foreground":"#c7eaff"},tokenColors:[{scope:["variable","variable.other","variable.other.property","variable.other.object.property","variable.other.readwrite","meta.object-literal.key","support.variable.property"],settings:{foreground:"#7cceff"}},{scope:["keyword","keyword.control","keyword.other","storage","storage.type","storage.modifier"],settings:{foreground:"#345a94"}},{scope:["constant.numeric","number"],settings:{foreground:"#326396"}},{scope:["entity.name.type","entity.name.class","constant","support.type"],settings:{foreground:"#3caed5"}},{scope:["entity.name.function","support.function","meta.function-call"],settings:{foreground:"#3caed5"}},{scope:["string","string.quoted","string.template"],settings:{foreground:"#4c6696"}},{scope:["keyword.operator","punctuation.accessor"],settings:{foreground:"#7cceff"}},{scope:["comment","comment.line","comment.block"],settings:{foreground:"#585858",fontStyle:"italic"}},{scope:["punctuation.definition.tag.air"],settings:{foreground:"#2a4a6a"}},{scope:["entity.name.tag.section.air"],settings:{foreground:"#345a94"}},{scope:["entity.name.tag.turn.air"],settings:{foreground:"#3caed5"}},{scope:["entity.name.tag.execute.air"],settings:{foreground:"#00B4D8"}},{scope:["entity.name.tag.stdout.air"],settings:{foreground:"#4c6696"}},{scope:["entity.name.tag.prose.air"],settings:{foreground:"#7cceff"}},{scope:["entity.name.tag.signal.air"],settings:{foreground:"#3caed5"}},{scope:["entity.name.tag.env.air"],settings:{foreground:"#345a94"}},{scope:["entity.name.tag.system.air"],settings:{foreground:"#b43c3c"}},{scope:["entity.name.tag.state.air"],settings:{foreground:"#585858"}},{scope:["entity.other.attribute-name.air"],settings:{foreground:"#4c6696"}},{scope:["string.quoted.double.air"],settings:{foreground:"#326396"}},{scope:["constant.character.entity.air"],settings:{foreground:"#4c6696"}}]}},ui:{cursor:{shape:"line",blink:!0},scrollbar:{thumb:"\u2502",track:"\u2502"}}});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcforge/axon",
3
- "version": "2.0.3",
3
+ "version": "2.0.4",
4
4
  "description": "coding agent cli",
5
5
  "type": "module",
6
6
  "bin": {