quantex-cli 1.1.3 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -2
- package/README.zh-CN.md +28 -2
- package/dist/agent-installation-Dsz_I5Li.mjs +1 -0
- package/dist/agent-observation-DRzJavrO.mjs +1 -0
- package/dist/agents-CBoMqbP1.mjs +2 -0
- package/dist/agents-DvfpsVAI.mjs +1 -0
- package/dist/capabilities-CQZ0SLgD.mjs +1 -0
- package/dist/{capabilities-BMx857FN.mjs → capabilities-C_gPEld2.mjs} +4 -4
- package/dist/cli.mjs +1 -1
- package/dist/color-1gXmuBdm.mjs +8 -0
- package/dist/commands-84XyphJp.mjs +1 -0
- package/dist/{commands-Bt5YKAxY.mjs → commands-DiZ3IIz4.mjs} +1 -1
- package/dist/config-C335pFul.mjs +3 -0
- package/dist/core-read-observations-Cm0FpEpL.mjs +3 -0
- package/dist/doctor-YObQVc1Y.mjs +3 -0
- package/dist/ensure-BqcmFFyN.mjs +1 -0
- package/dist/ensure-CSntyBTb.mjs +1 -0
- package/dist/errors-BrmJuMg3.mjs +1 -0
- package/dist/index.mjs +2 -2
- package/dist/{info-B1wrZgxM.mjs → info-B4Gr79vU.mjs} +2 -2
- package/dist/inspect-DSnK5oMu.mjs +1 -0
- package/dist/{inspect-D-mA7LLF.mjs → inspect-DyCXX7Tp.mjs} +3 -3
- package/dist/install-BKh0kreC.mjs +1 -0
- package/dist/lifecycle-observations-31JWXSir.mjs +1 -0
- package/dist/lifecycle-policy-ZKxZhM5R.mjs +1 -0
- package/dist/list-BrePsdOM.mjs +3 -0
- package/dist/provider-binding-BvvHuohl.mjs +1 -0
- package/dist/{provider-observations-eOUOsbo-.mjs → provider-observations-CRG1GCgp.mjs} +1 -1
- package/dist/resolve-B594qXY6.mjs +1 -0
- package/dist/{resolve-CTOjSJag.mjs → resolve-CCeMk9aY.mjs} +1 -1
- package/dist/{schema-B1Gva91H.mjs → schema-C2S3d_Cu.mjs} +1 -1
- package/dist/schema-CgTSwXpy.mjs +1 -0
- package/dist/uninstall-5ZK3juO1.mjs +1 -0
- package/dist/update-DQR-B9S-.mjs +1 -0
- package/dist/{update-planner-B9twOaqE.mjs → update-planner-IgFzteV-.mjs} +1 -1
- package/dist/upgrade-kK57LorF.mjs +1 -0
- package/dist/{user-output-Dkv_5Lew.mjs → user-output-uK6ichvR.mjs} +1 -1
- package/dist/{version-cache-Ck-45EIJ.mjs → version-cache-CJ0R5HZJ.mjs} +1 -1
- package/package.json +17 -6
- package/dist/agent-inspection-CCNABDLw.mjs +0 -1
- package/dist/agent-installation-DaFUJAc_.mjs +0 -1
- package/dist/agents-DKvyp0t3.mjs +0 -1
- package/dist/agents-Dc-rbRUf.mjs +0 -1
- package/dist/capabilities-CdyhM5p5.mjs +0 -1
- package/dist/color-D55TE_Ws.mjs +0 -9
- package/dist/commands-BOHy4Z38.mjs +0 -1
- package/dist/config-CsJqP4-1.mjs +0 -3
- package/dist/doctor-FlgVXfJ-.mjs +0 -3
- package/dist/ensure-fBcWjPLH.mjs +0 -1
- package/dist/ensure-zzTePhNS.mjs +0 -1
- package/dist/errors-BzuGM14H.mjs +0 -1
- package/dist/inspect-CXX9iv7n.mjs +0 -1
- package/dist/install-C__aUVW9.mjs +0 -1
- package/dist/lifecycle-observations-F8_4qbsU.mjs +0 -1
- package/dist/lifecycle-policy-Bkd-ZutQ.mjs +0 -1
- package/dist/list-C_TqJIui.mjs +0 -3
- package/dist/provider-evidence-CcW0d2NQ.mjs +0 -1
- package/dist/resolve-IhUbwUBa.mjs +0 -1
- package/dist/schema-CsIhmOlH.mjs +0 -1
- package/dist/uninstall-B__0wIng.mjs +0 -1
- package/dist/update-_wy1PcLo.mjs +0 -1
- package/dist/upgrade-CF5MtZgT.mjs +0 -1
- /package/dist/{errors-DXzIacfk.mjs → errors-BD4Gc9Rp.mjs} +0 -0
- /package/dist/{lifecycle-errors-BXlHX_YF.mjs → lifecycle-errors-Cal_j4yT.mjs} +0 -0
package/dist/color-D55TE_Ws.mjs
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{createHash as e,randomUUID as t}from"node:crypto";import n from"node:process";import r from"cross-spawn";import{spawn as i}from"node:child_process";import{accessSync as a,constants as o,existsSync as s,mkdirSync as c,writeFileSync as l}from"node:fs";import{basename as u,delimiter as d,dirname as f,join as p,win32 as m}from"node:path";import{text as h}from"node:stream/consumers";import{access as g,chmod as ee,constants as te,mkdir as ne,mkdtemp as re,readFile as _,realpath as ie,rename as ae,rm as v,stat as oe,writeFile as se}from"node:fs/promises";import{homedir as ce}from"node:os";import{fileURLToPath as le}from"node:url";import{Buffer as ue}from"node:buffer";import de from"picocolors";function fe(e){let t=e.trim().match(/^(\d+)(ms|[smh])?$/);if(!t)return;let n=Number.parseInt(t[1],10),r=t[2]??`ms`;if(Number.isFinite(n))switch(r){case`ms`:return n;case`s`:return n*1e3;case`m`:return n*60*1e3;case`h`:return n*60*60*1e3;default:return}}let y,pe=new Set;function b(){return y??=xe(),y}function me(e){pe=new Set,y={...e,cacheMode:e.cacheMode??`default`,cancelled:e.cancelled??!1}}function he(){y=void 0,pe=new Set}function ge(e={}){let r=n.stdin.isTTY!==!1,i=n.stdout.isTTY!==!1,a=!r||!i,o=e.json||e.output===`json`?`json`:e.output===`ndjson`?`ndjson`:e.output===`human`?`human`:a?`json`:`human`,s=e.timeout===void 0?void 0:fe(e.timeout),c=Se(e.color),l=Ce(e.logLevel);if(e.timeout!==void 0&&s===void 0)throw Error(`Invalid timeout value: ${e.timeout}`);if(e.refresh&&e.noCache)throw Error(`Cannot combine --refresh with --no-cache.`);return{assumeYes:e.yes,cacheMode:e.noCache?`no-cache`:e.refresh?`refresh`:`default`,cancelled:!1,colorMode:c,dryRun:e.dryRun,idempotencyKey:e.idempotencyKey,interactive:!e.nonInteractive&&!a&&r&&i,logLevel:l,outputMode:o,quiet:e.quiet,runId:e.runId??n.env.QUANTEX_RUN_ID??t(),timeoutMs:s}}function _e(){y&&(y.cancelled=!0)}async function ve(){_e();let e=[...pe];pe.clear(),await Promise.allSettled(e.map(e=>Promise.resolve().then(e)))}function ye(e){return pe.add(e),()=>{pe.delete(e)}}function be(e){let t=b();if(!t.freshness){t.freshness=e;return}t.freshness={fetchedAt:t.freshness.fetchedAt<=e.fetchedAt?t.freshness.fetchedAt:e.fetchedAt,source:t.freshness.source===`network`&&e.source===`network`?`network`:`cache`,staleAfter:t.freshness.staleAfter<=e.staleAfter?t.freshness.staleAfter:e.staleAfter}}function xe(){return ge()}function Se(e){if(e===void 0||e===`auto`)return`auto`;if(e===`always`)return`always`;if(e===`never`)return`never`;throw Error(`Invalid color mode: ${e}`)}function Ce(e){if(e===void 0||e===`info`)return`info`;if(e===`silent`||e===`error`||e===`warn`||e===`debug`)return e;throw Error(`Invalid log level: ${e}`)}var x=class extends Error{kind;reason;timeoutMs;constructor(e){super(e.kind===`timed-out`?`Process timed out after ${e.timeoutMs}ms.`:`Process was cancelled.`),this.name=`ProcessInterruptionError`,this.kind=e.kind,e.kind===`timed-out`?this.timeoutMs=e.timeoutMs:this.reason=e.reason}};function S(e){return e instanceof x}function we(e,t={}){if(b().outputMode===`human`){let n=C(e,{...t,stdio:[`inherit`,`inherit`,`inherit`]});return{cleanup:ye(()=>Fe(n)),outputDrained:Promise.resolve(),proc:n}}let n=C(e,{...t,stdio:[`ignore`,`pipe`,`pipe`]});return{cleanup:ye(()=>Fe(n)),outputDrained:Promise.all([ke(n.stdout),ke(n.stderr)]).then(()=>void 0),proc:n}}async function Te(e){let t=b();try{let n=await e.proc.exited;return await e.outputDrained,t.cancelled?1:n}finally{e.cleanup()}}async function Ee(e,t){let n,r=()=>n??=Ie(e.proc,t.timeoutMs),i=t.registerCleanup?.({cleanup:r,force:()=>Le(e.proc)});if(t.signal.aborted)throw await r(),e.cleanup(),i?.(),new x({kind:`cancelled`,reason:Oe(t.signal)});let a,o,s,c=!1,l=new Promise((e,n)=>{s=e=>{c||(c=!0,r().then(()=>n(e===`timed-out`?new x({kind:e,timeoutMs:t.timeoutMs}):new x({kind:e,reason:Oe(t.signal)}))))},o=()=>s(`cancelled`),t.signal.addEventListener(`abort`,o,{once:!0}),t.timeoutMs!==void 0&&(a=setTimeout(()=>s(`timed-out`),t.timeoutMs))});try{let t=Promise.all([e.proc.exited,e.outputDrained]).then(([e])=>c?l:e);return await Promise.race([t,l])}finally{a&&clearTimeout(a),t.signal.removeEventListener(`abort`,o),i?.(),e.cleanup()}}function C(e,t={}){let[a,...o]=e,s=a?De(a,t):void 0;if(!s)throw Error(`spawnCommand requires a non-empty command array.`);let c=Me(s),l=t.detached||c?void 0:Ne();if(l)return Pe([s,...o],{...t,env:t.env??n.env},l);let u=(c?r:i)(s,o,{...t,env:t.env??n.env});return{get exitCode(){return u.exitCode},pid:u.pid,stderr:u.stderr,stdout:u.stdout,exited:Ae(u),kill:u.kill.bind(u),unref:()=>u.unref()}}function De(e,t){if(!t.detached||n.platform===`win32`||e.includes(`/`))return e;for(let t of(n.env.PATH??``).split(d)){let n=p(t,e);try{return a(n,o.X_OK),n}catch{}}return e}async function w(e){let[t,n,r]=await Promise.all([je(e.stdout),je(e.stderr),e.exited]);return{exitCode:r,stderr:n,stdout:t}}async function T(e,t){let n,r=()=>n??=Ie(e,t.timeoutMs),i=t.registerCleanup?.({cleanup:r,force:()=>Le(e)});if(t.signal.aborted)throw await r(),i?.(),new x({kind:`cancelled`,reason:Oe(t.signal)});let a,o,s,c=!1,l=new Promise((e,n)=>{s=e=>{c||(c=!0,r().then(()=>setTimeout(()=>n(e===`timed-out`?new x({kind:e,timeoutMs:t.timeoutMs}):new x({kind:e,reason:Oe(t.signal)})),10)))},o=()=>s(`cancelled`),t.signal.addEventListener(`abort`,o,{once:!0}),t.timeoutMs!==void 0&&(a=setTimeout(()=>s(`timed-out`),t.timeoutMs))});try{let t=w(e).then(e=>c?l:e);return await Promise.race([t,l])}finally{a&&clearTimeout(a),t.signal.removeEventListener(`abort`,o),i?.()}}function Oe(e){return typeof e.reason==`string`?e.reason:e.reason instanceof Error?e.reason.message:e.reason===void 0?void 0:String(e.reason)}async function ke(e){if(!e)return;let t=await je(e);t&&n.stderr.write(t)}async function Ae(e){return new Promise((t,n)=>{e.once(`error`,n),e.once(`close`,e=>{t(typeof e==`number`?e:1)})})}async function je(e){return e?typeof e==`string`?e:typeof e.getReader==`function`?new Response(e).text():h(e):``}function Me(e,t=n.platform){return t===`win32`?/\.(?:bat|cmd)$/i.test(e)?!0:e.includes(`/`)||e.includes(`\\`)?!1:!/\.[a-z0-9]+$/i.test(e):!1}function Ne(){let e=globalThis.Bun?.spawn;return typeof e==`function`?e:void 0}function Pe(e,t,n){let r=n([...e],t);return{get exitCode(){return r.exitCode},pid:r.pid,stderr:r.stderr,stdout:r.stdout,exited:r.exited.then(()=>typeof r.exitCode==`number`?r.exitCode:1),kill:e=>r.kill?.(e)??!1,unref:()=>r.unref?.()}}async function Fe(e){await Ie(e)}async function Ie(e,t){n.platform===`win32`&&e.pid!==void 0&&await Be(ze(e.pid),2e3),Re(e,`SIGTERM`);let r=t===void 0?2e3:Math.max(10,Math.min(t,250));if(n.platform!==`win32`&&e.pid!==void 0)await new Promise(e=>setTimeout(e,r));else{let t=e.exited.then(()=>!0).catch(()=>!0);if(await Promise.race([t,new Promise(e=>setTimeout(()=>e(!1),r))]))return}Re(e,`SIGKILL`),await Be(e.exited.then(()=>void 0).catch(()=>void 0),250)}async function Le(e){n.platform===`win32`&&e.pid!==void 0&&await Be(ze(e.pid),250),Re(e,`SIGKILL`),await Be(e.exited.then(()=>void 0).catch(()=>void 0),250)}function Re(e,t){if(n.platform!==`win32`&&e.pid!==void 0)try{n.kill(-e.pid,t);return}catch{}try{e.kill?.(t)}catch{}}async function ze(e,t=i){await new Promise(n=>{let r=t(`taskkill.exe`,[`/PID`,String(e),`/T`,`/F`],{stdio:[`ignore`,`ignore`,`ignore`],windowsHide:!0});r.once(`error`,()=>n()),r.once(`close`,()=>n())})}async function Be(e,t){let n;try{await Promise.race([e,new Promise(e=>{n=setTimeout(e,t)})])}finally{n&&clearTimeout(n)}}function Ve(){let e=b(),t=new AbortController,n=new Set;e.cancelled&&t.abort(`cancelled`);let r=ye(async()=>{t.abort(`cancelled`);let e=[...n];await Ue(Promise.allSettled(e.map(e=>Promise.resolve().then(()=>e.cleanup()))),500)||await Ue(Promise.allSettled(e.map(e=>Promise.resolve().then(()=>e.force?.()))),250)});return{context:{registerCleanup(e){return n.add(e),()=>n.delete(e)},signal:t.signal,timeoutMs:e.timeoutMs},dispose(){r(),n.clear()},async run(e){if(t.signal.aborted)throw He(t.signal);let n,r=new Promise((e,r)=>{n=()=>r(He(t.signal)),t.signal.addEventListener(`abort`,n,{once:!0})});try{return await Promise.race([Promise.resolve().then(e),r])}finally{t.signal.removeEventListener(`abort`,n)}}}}function He(e){return new x({kind:`cancelled`,reason:typeof e.reason==`string`?e.reason:e.reason instanceof Error?e.reason.message:e.reason===void 0?void 0:String(e.reason)})}async function Ue(e,t){let n;try{return await Promise.race([e.then(()=>!0),new Promise(e=>{n=setTimeout(()=>e(!1),t)})])}finally{n&&clearTimeout(n)}}async function E(e,t,n){try{let r=await Ee(we(e,{detached:process.platform!==`win32`}),t);return r===0?{kind:`success`,value:void 0}:{command:e,exitCode:r,kind:`failed`,reason:`${n} with exit code ${r}`,retryable:!1}}catch(r){return S(r)?r.kind===`timed-out`?{kind:`timed-out`,timeoutMs:r.timeoutMs??t.timeoutMs??0}:{kind:`cancelled`,...r.reason?{reason:r.reason}:{}}:{command:e,kind:`failed`,reason:`${n}: ${Ge(r)}`,retryable:!1}}}async function D(e,t,n){for(let r of e){let e=await E(r,t,n);if(e.kind!==`success`)return e}return{kind:`success`,value:void 0}}async function We(e){let t=Ve();try{return(await e(t.context)).kind===`success`}finally{t.dispose()}}function Ge(e){return e instanceof Error&&e.message.trim()?e.message:String(e)}function Ke(e){return e===`cask`?[`--cask`]:[]}function qe(e){return e===`cask`?[`--cask`]:[`--formula`]}function Je(e,t,n,r){return E([`brew`,e,...Ke(n),t],r,`brew ${e} failed`)}function Ye(e,t,n){return Je(`install`,e,t,n)}function Xe(e,t,n){return Je(`upgrade`,e,t,n)}function Ze(e,t){return D(e.map(e=>[`brew`,`upgrade`,...Ke(e.packageTargetKind),e.packageName]),t,`brew update failed`)}function Qe(e,t,n){return Je(`uninstall`,e,t,n)}async function $e(e,t,r){try{let i=C([`brew`,`list`,...qe(t),`--versions`,e],{detached:r!==void 0&&n.platform!==`win32`,stdio:[`ignore`,`pipe`,`pipe`]}),{exitCode:a,stderr:o,stdout:s}=r?await T(i,r):await w(i),c=nt(s);return a===0?c?{presence:`present`,version:c}:{presence:`present`}:a===1&&rt(o)?{presence:`absent`}:{presence:`unknown`}}catch(e){if(S(e))throw e;return{presence:`unknown`}}}async function et(e,t,n){return(await $e(e,t,n)).presence}async function tt(e,t,n){return(await $e(e,t,n)).version}function nt(e){let t=e.trim().split(`
|
|
2
|
-
`).find(e=>e.trim());if(!t)return;let n=t.trim().split(/\s+/);if(n.length<2)return;let r=n.at(-1);return r&&/^\d/.test(r)?r:void 0}function rt(e){let t=e.toLowerCase();return t.includes(`no such keg`)||t.includes(`is not installed`)}function it(){switch(n.platform){case`win32`:return`windows`;case`darwin`:return`macos`;default:return`linux`}}async function O(e,t){try{let r=C([e,`--version`],{detached:t!==void 0&&n.platform!==`win32`}),{exitCode:i}=t?await T(r,t):await w(r);return i===0}catch(e){if(S(e))throw e;return!1}}async function at(e){return O(`bun`,e)}async function ot(e){return O(`npm`,e)}async function st(e){return O(`brew`,e)}async function ct(e){return O(`deno`,e)}async function lt(e){return O(`cargo`,e)}async function ut(e){return O(`mise`,e)}async function dt(e){return O(`winget`,e)}async function ft(e){return await O(`pip`,e)||await O(`pip3`,e)?!0:mt(e)}async function pt(e){return O(`uv`,e)}async function mt(e){try{let t=C([`python`,`-m`,`pip`,`--version`],{detached:e!==void 0&&n.platform!==`win32`}),{exitCode:r}=e?await T(t,e):await w(t);if(r===0)return!0}catch(e){if(S(e))throw e}try{let t=C([`python3`,`-m`,`pip`,`--version`],{detached:e!==void 0&&n.platform!==`win32`}),{exitCode:r}=e?await T(t,e):await w(t);return r===0}catch(e){if(S(e))throw e;return!1}}async function ht(e,t){try{let r=C([n.platform===`win32`?`where`:`which`,e],{detached:t!==void 0&&n.platform!==`win32`}),{exitCode:i}=t?await T(r,t):await w(r);return i===0}catch(e){if(S(e))throw e;return!1}}function k(e){return e.kind===`cancelled`||e.kind===`timed-out`}function A(e){return e.kind===`cancelled`?{kind:`cancelled`,...e.reason?{reason:e.reason}:{}}:e}async function j(e,t){if(e.signal.aborted)return{kind:`cancelled`,reason:_t(e.signal)};let n,r,i=new Promise(t=>{r=()=>t({kind:`cancelled`,reason:_t(e.signal)}),e.signal.addEventListener(`abort`,r,{once:!0})}),a=[Promise.resolve().then(t).then(e=>({kind:`resolved`,value:e})).catch(e=>({kind:`rejected`,reason:vt(e)})),i];e.timeoutMs!==void 0&&a.push(new Promise(t=>{n=setTimeout(()=>t({kind:`timed-out`,timeoutMs:e.timeoutMs}),e.timeoutMs)}));let o=await Promise.race(a);return n&&clearTimeout(n),e.signal.removeEventListener(`abort`,r),o}async function gt(e,t){if(e.signal.aborted)return{kind:`cancelled`,reason:_t(e.signal)};try{return{kind:`resolved`,value:await t()}}catch(e){return S(e)?e.kind===`timed-out`?{kind:`timed-out`,timeoutMs:e.timeoutMs}:{kind:`cancelled`,...e.reason?{reason:e.reason}:{}}:{kind:`rejected`,reason:vt(e)}}}function _t(e){return typeof e.reason==`string`?e.reason:e.reason instanceof Error?e.reason.message:e.reason===void 0?void 0:String(e.reason)}function vt(e){return e instanceof Error?e.message:String(e)}function M(e,t){let n=async n=>{let r=await yt(n.context,t.contextualObservation,()=>t.probePackagePresence(n.target,n.context));if(k(r))return A(r);if(r.kind===`rejected`||r.value===`unknown`)return{evidence:[Et(e.id,`${n.target.id}:presence-unknown`)],kind:`indeterminate`,reason:`${e.id} could not determine whether ${n.target.id} is installed`};if(r.value===`absent`)return N({evidence:[Dt(e.id,n.target.id,`absent`)],kind:`absent`,target:n.target});let i=t.getInstalledVersion?await yt(n.context,t.contextualObservation,()=>t.getInstalledVersion(n.target,n.context)):void 0;return i&&k(i)?A(i):N({evidence:[Dt(e.id,n.target.id,`present`)],kind:`present`,target:n.target,...i?.kind===`resolved`&&i.value?{version:i.value}:{}})};return{availability:async n=>{let r=await yt(n,t.contextualObservation,()=>t.isAvailable(n));return k(r)?A(r):r.kind===`rejected`||!r.value?{kind:`unavailable`,reason:`${e.id} executable is unavailable`}:N({executable:e.executable})},id:e.id,install:n=>xt(e,n,`install`,e.commands.install(n.target),t.contextualMutation,t.install),observe:n,uninstall:n=>xt(e,n,`uninstall`,e.commands.uninstall(n.target),t.contextualMutation,t.uninstall),update:n=>xt(e,n,`update`,e.commands.update(n.target),t.contextualMutation,t.update),updateMany:n=>St(e,t,n),verify:async t=>{let r=await n(t);return r.kind===`success`?r.value.kind===`absent`?N({evidence:r.value.evidence??[],kind:`unsatisfied`,reason:`${t.target.id} is not installed through ${e.id}`}):N({evidence:r.value.evidence??[],kind:`satisfied`}):r}}}function yt(e,t,n){return t?gt(e,n):j(e,n)}function bt(e,t,n){return t?gt(e,n):j(e,n)}async function xt(e,t,n,r,i,a){let o=await bt(t.context,i,()=>a(t.target,t.context));if(k(o))return A(o);let s=Tt(e.id,r);return o.kind===`rejected`?wt(e,t.target.id,n,r,s,o.reason):o.value.kind===`success`?N({evidence:s,target:t.target}):Ct(o.value,e,t.target.id,n,r,s)}async function St(e,t,n){let r=e.commands.updateMany(n.targets),i=await bt(n.context,t.contextualMutation,()=>t.updateMany(n.targets,n.context));if(k(i))return A(i);let a=Tt(e.id,r);return i.kind===`rejected`?wt(e,void 0,`update`,r,a,i.reason):i.value.kind===`success`?N(n.targets.map(e=>({evidence:a,target:e}))):Ct(i.value,e,void 0,`update`,r,a)}function Ct(e,t,n,r,i,a){if(e.kind!==`failed`)return e;let o=wt(t,n,r,i,a);return{...o,...e,command:e.command??i,evidence:e.evidence??a,reason:e.reason.trim()?e.reason:o.reason,remediation:e.remediation??o.remediation}}function wt(e,t,n,r,i,a){return{command:r,evidence:i,kind:`failed`,reason:`${e.id} ${n} failed${t?` for ${t}`:``}${a?`: ${a}`:``}`,remediation:`Review ${e.displayName} output and retry the operation.`,retryable:!1}}function Tt(e,t){return[{kind:`provider`,value:e},{kind:`command`,value:t.join(` `)}]}function Et(e,t){return{kind:`provider`,value:`${e}:${t}`}}function Dt(e,t,n){return{kind:`package`,value:`${e}:${t}:${n}`}}function N(e){return{kind:`success`,value:e}}function P(e){return e.kind===`cask`?`cask`:`package`}const Ot={contextualMutation:!0,contextualObservation:!0,getInstalledVersion:(e,t)=>tt(e.id,P(e),t),install:(e,t)=>Ye(e.id,P(e),t),isAvailable:e=>st(e),probePackagePresence:(e,t)=>et(e.id,P(e),t),uninstall:(e,t)=>Qe(e.id,P(e),t),update:(e,t)=>Xe(e.id,P(e),t),updateMany:(e,t)=>Ze(e.map(e=>({packageName:e.id,packageTargetKind:P(e)})),t)};function kt(e,t){return[`brew`,e,...t.kind===`cask`?[`--cask`]:[],t.id]}function At(e=Ot){return M({commands:{install:e=>kt(`install`,e),uninstall:e=>kt(`uninstall`,e),update:e=>kt(`upgrade`,e),updateMany:e=>[`brew`,`upgrade`,...e.flatMap(e=>kt(`upgrade`,e).slice(2))]},displayName:`Homebrew`,executable:`brew`,id:`brew`},e)}const jt=At(),Mt=`https://registry.npmjs.org`;function F(e){if(e)try{return new URL(e.trim()).toString().replace(/\/+$/,``)}catch{return}}function Nt(e,t,n){return`${F(n)}/${encodeURIComponent(e)}/${encodeURIComponent(t)}`}async function Pt(e,t,n){return We(r=>Ft(e,t,n,r))}function Ft(e,t,n,r){let i=t?`${e}@${t}`:e,a=F(n);return Kt([`bun`,`add`,`-g`,...a?[`--registry`,a]:[],i],[e],r)}function It(e,t,n,r,i){let a=n===`latest`?e:`${e}@${n}`,o=F(r);return Kt([`bun`,`update`,`-g`,...t===`latest-major`?[`--latest`]:[],...o?[`--registry`,o]:[],a],[e],i)}function Lt(e,t,n){return e.length===0?Promise.resolve({kind:`success`,value:void 0}):Kt([`bun`,`update`,`-g`,...t===`latest-major`?[`--latest`]:[],...e],e,n)}function Rt(e,t){return E([`bun`,`remove`,`-g`,e],t,`bun uninstall failed`)}const zt={readGlobalManifest:()=>_(p(n.env.BUN_INSTALL_GLOBAL_DIR??p(ce(),`.bun`,`install`,`global`),`package.json`),`utf8`)};async function Bt(e,t=zt,r){try{let i=C([`bun`,`pm`,`-g`,`ls`],{detached:r!==void 0&&n.platform!==`win32`,stdio:Qt()}),{stderr:a,stdout:o}=r?await T(i,r):await w(i);if(!o.trim()){if(a.includes(`No package.json was found for directory`))return{presence:`absent`};if(a.includes(`Lockfile not found`))try{return{presence:Wt(await t.readGlobalManifest(),e)}}catch{return{presence:`unknown`}}return{presence:`unknown`}}let s=Gt(o,e);return s?{presence:`present`,version:s}:Ut(o,e)?{presence:`present`}:{presence:`absent`}}catch(e){if(S(e))throw e;return{presence:`unknown`}}}async function Vt(e,t=zt,n){return(await Bt(e,t,n)).presence}async function Ht(e,t){return(await Bt(e,zt,t)).version}function Ut(e,t){let n=`${t}@`;return e.split(`
|
|
3
|
-
`).some(e=>e.trim().split(/\s+/).at(-1)?.startsWith(n))}function Wt(e,t){let n=JSON.parse(e);if(typeof n!=`object`||!n||Array.isArray(n))return`unknown`;for(let e of[`dependencies`,`devDependencies`,`optionalDependencies`,`peerDependencies`]){if(!Object.hasOwn(n,e))continue;let r=n[e];if(typeof r!=`object`||!r||Array.isArray(r))return`unknown`;if(Object.hasOwn(r,t))return`present`}return`absent`}function Gt(e,t){let n=`${t}@`;for(let t of e.split(`
|
|
4
|
-
`)){let e=t.trim().split(/\s+/).at(-1);if(!e?.startsWith(n))continue;let r=e.slice(n.length);if(r)return r}}async function Kt(e,t,n){let r=[...new Set(t)],i=e[1]===`add`,a=i?await qt(r,n):void 0,o=await E(e,n,`bun mutation failed`);if(o.kind!==`success`)return o;let s=await Yt(r,n);return s.kind!==`success`&&i&&a&&await Jt(r.filter(e=>a.get(e)===`absent`),n),s}async function qt(e,t){let n=new Map;for(let r of e)n.set(r,await Vt(r,void 0,t));return n}async function Jt(e,t){for(let n of new Set(e))await E([`bun`,`remove`,`-g`,n],t,`bun rollback failed`).catch(()=>void 0)}async function Yt(e,t){let n=[...new Set(e)];if(n.length===0)return{kind:`success`,value:void 0};let r=await Xt(t);if(r.kind!==`success`)return r;let i=Zt(r.value),a=n.filter(e=>i.has(e));return a.length===0?{kind:`success`,value:void 0}:E([`bun`,`pm`,`-g`,`trust`,...a],t,`bun trust failed`)}async function Xt(e){let t=[`bun`,`pm`,`-g`,`untrusted`];try{let{exitCode:r,stdout:i}=await T(C(t,{detached:n.platform!==`win32`,stdio:Qt()}),e);return r===0?{kind:`success`,value:i}:{command:t,exitCode:r,kind:`failed`,reason:`bun trust inspection failed with exit code ${r}`,retryable:!1}}catch(n){return S(n)?n.kind===`timed-out`?{kind:`timed-out`,timeoutMs:n.timeoutMs??e.timeoutMs??0}:{kind:`cancelled`,...n.reason?{reason:n.reason}:{}}:{command:t,kind:`failed`,reason:n instanceof Error&&n.message.trim()?n.message:`bun trust inspection failed`,retryable:!1}}}function Zt(e){let t=new Set;for(let n of e.split(`
|
|
5
|
-
`)){let e=n.replaceAll(`\\`,`/`).match(/^\.\/node_modules\/(.+?) @/);e?.[1]&&t.add(e[1])}return t}function Qt(){return[`ignore`,`pipe`,`pipe`]}const $t={defaultPackageManager:`bun`,networkRetries:2,networkTimeoutMs:1e4,npmBunUpdateStrategy:`latest-major`,selfUpdateChannel:`stable`,selfUpdateRegistry:void 0,versionCacheTtlHours:6};function I(){return p(n.env.HOME||n.env.USERPROFILE||ce(),`.quantex`)}function en(){return p(I(),`config.json`)}async function tn(){let e={...$t,...await on()};return{...e,defaultPackageManager:nn(e.defaultPackageManager)?e.defaultPackageManager:`bun`,networkRetries:sn(e.networkRetries,2),networkTimeoutMs:sn(e.networkTimeoutMs,1e4),npmBunUpdateStrategy:e.npmBunUpdateStrategy===`respect-semver`?`respect-semver`:`latest-major`,selfUpdateChannel:e.selfUpdateChannel===`beta`?`beta`:`stable`,selfUpdateRegistry:typeof e.selfUpdateRegistry==`string`?F(e.selfUpdateRegistry):void 0,versionCacheTtlHours:sn(e.versionCacheTtlHours,6)}}function nn(e){return e===`bun`||e===`mise`||e===`npm`}function rn(e){return e===`latest-major`||e===`respect-semver`}async function an(e){await ne(I(),{recursive:!0}),await se(en(),`${JSON.stringify(e,null,2)}\n`,`utf8`)}async function on(){try{let e=await _(en(),`utf8`),t=JSON.parse(e);return cn(t)?t:{}}catch{return{}}}function sn(e,t){if(typeof e==`number`&&Number.isInteger(e)&&e>0)return e;if(typeof e==`string`){let t=Number.parseInt(e,10);if(Number.isInteger(t)&&t>0)return t}return t}function cn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var ln=class extends Error{timeoutMs;constructor(e){super(`Network attempt timed out after ${e}ms.`),this.name=`NetworkAttemptTimeoutError`,this.timeoutMs=e}};async function un(e,t,n={}){let r=await dn(e,t,`json`,n);if(r)try{return JSON.parse(r)}catch{return}}async function dn(e,t,n=`text`,r={}){let i=r.context?.signal??r.signal;L(i);let a=await tn();L(i);let o=a.versionCacheTtlHours*60*60*1e3,s=b().cacheMode,c=s===`no-cache`?{entries:{}}:await vn();L(i);let l=c.entries[t],u=Date.now();if(s===`default`&&l&&l.expiresAt>u)return L(i),xn(l,o),l.body;let d=await fn(e,{context:r.context,headers:s!==`no-cache`&&l?.etag?{"If-None-Match":l.etag}:void 0,mode:n,networkPort:r.networkPort,retries:a.networkRetries,signal:i,timeoutMs:a.networkTimeoutMs});if(L(i),!d)return l&&(L(i),xn(l,o)),l?.body;if(d.status===304&&l)return L(i),c.entries[t]={...l,expiresAt:u+o,fetchedAt:u},s!==`no-cache`&&(L(i),await yn(c)),L(i),Sn(u,u+o),l.body;if(!d.ok||!d.valid||d.body===void 0)return l&&(L(i),xn(l,o)),l?.body;L(i);let f={body:d.body,etag:d.etag,expiresAt:u+o,fetchedAt:u};return s!==`no-cache`&&(c.entries[t]=f,L(i),await yn(c)),L(i),Sn(u,u+o),d.body}async function fn(e,t){let n=t.context?.timeoutMs===void 0?void 0:Date.now()+t.context.timeoutMs;for(let r=0;r<=t.retries;r++)try{return await pn(e,{...t,invocationDeadline:n})}catch(e){if(e instanceof x)throw e;if(r===t.retries)return}}async function pn(e,t){let n=t.networkPort;if(n)return mn(e,{...t,networkPort:n});let r=new AbortController,i,a,o,s,c,l=new Promise((e,t)=>s=t),u=()=>c??=gn(Promise.resolve().then(async()=>{i?await i.cancel(o):a?.body&&!a.body.locked&&await a.body.cancel(o)}).then(()=>void 0).catch(()=>void 0),250),d=e=>{let n=e===`cancelled`?_n(t.signal):e===`invocation-timeout`?new x({kind:`timed-out`,timeoutMs:t.context?.timeoutMs??0}):new ln(t.timeoutMs),i=o===void 0;return(i||o instanceof ln&&n instanceof x)&&(o=n),i&&(r.abort(o),u().finally(()=>s(o))),u()},f=()=>void d(`cancelled`);t.signal?.addEventListener(`abort`,f,{once:!0});let p=t.context?.registerCleanup?.({cleanup:()=>d(`cancelled`),force:u}),m=Date.now()+t.timeoutMs,h=setTimeout(()=>void d(`network-timeout`),t.timeoutMs),g=t.invocationDeadline===void 0?void 0:setTimeout(()=>void d(`invocation-timeout`),Math.max(0,t.invocationDeadline-Date.now())),ee=async()=>{if(o||(t.signal?.aborted?await d(`cancelled`):t.invocationDeadline!==void 0&&Date.now()>=t.invocationDeadline?await d(`invocation-timeout`):Date.now()>=m&&await d(`network-timeout`),o))throw o};try{t.signal?.aborted&&await d(`cancelled`);let n=(async()=>{a=await fetch(e,{headers:t.headers,signal:r.signal}),await ee();let n=a.status,o=a.headers?.get?.(`etag`)??void 0;if(!a.ok)return await u(),{etag:o,ok:!1,status:n,valid:!0};let s=await hn(a,e=>i=e);await ee();let c=!0;if(t.mode===`json`)try{JSON.parse(s)}catch{c=!1}return await ee(),{body:s,etag:o,ok:!0,status:n,valid:c}})();try{return await Promise.race([n,l])}catch(e){throw o?(await u(),o):e}}finally{clearTimeout(h),g&&clearTimeout(g),t.signal?.removeEventListener(`abort`,f),p?.()}}async function mn(e,t){if(t.signal?.aborted)throw _n(t.signal);let n=Date.now();if(t.invocationDeadline!==void 0&&t.invocationDeadline<=n)throw new x({kind:`timed-out`,timeoutMs:t.context?.timeoutMs??0});let r=t.invocationDeadline===void 0?t.timeoutMs:Math.max(1,Math.min(t.timeoutMs,t.invocationDeadline-n)),i=t.signal??new AbortController().signal,a=await t.networkPort.request({headers:t.headers,signal:i,timeoutMs:r,url:e});if(a.kind===`failure`)throw t.signal?.aborted||a.error.kind===`cancelled`?_n(t.signal):a.error.kind===`timed-out`?t.invocationDeadline!==void 0&&Date.now()>=t.invocationDeadline?new x({kind:`timed-out`,timeoutMs:t.context?.timeoutMs??0}):new ln(t.timeoutMs):Error(a.error.message);let o=new TextDecoder().decode(a.value.body),s=!0;if(t.mode===`json`&&a.value.status>=200&&a.value.status<300)try{JSON.parse(o)}catch{s=!1}return{body:a.value.status>=200&&a.value.status<300?o:void 0,etag:a.value.headers.etag,ok:a.value.status>=200&&a.value.status<300,status:a.value.status,valid:s}}async function hn(e,t){if(!e.body)return``;let n=e.body.getReader();t(n);let r=new TextDecoder,i=``;for(;;){let e=await n.read();if(e.done)break;i+=r.decode(e.value,{stream:!0})}return i+r.decode()}async function gn(e,t){let n;try{await Promise.race([e,new Promise(e=>{n=setTimeout(e,t)})])}finally{n&&clearTimeout(n)}}function L(e){if(e?.aborted)throw _n(e)}function _n(e){return e?.reason instanceof x?e.reason:new x({kind:`cancelled`,reason:typeof e?.reason==`string`?e.reason:e?.reason instanceof Error?e.reason.message:e?.reason===void 0?void 0:String(e.reason)})}async function vn(){try{return JSON.parse(await _(bn(),`utf8`))}catch{return{entries:{}}}}async function yn(e){await ne(p(I(),`cache`),{recursive:!0}),await se(bn(),`${JSON.stringify(e,null,2)}\n`,`utf8`)}function bn(){return p(I(),`cache`,`versions.json`)}function xn(e,t){let n=e.fetchedAt??Math.max(0,e.expiresAt-t);be({fetchedAt:new Date(n).toISOString(),source:`cache`,staleAfter:new Date(e.expiresAt).toISOString()})}function Sn(e,t){be({fetchedAt:new Date(e).toISOString(),source:`network`,staleAfter:new Date(t).toISOString()})}const Cn=/v?(\d+\.\d+\.\d+(?:-[a-z0-9.]+)?)/i;function wn(e,t){if(t)return t(e);let n=e.trim().split(`
|
|
6
|
-
`)[0],r=n.match(Cn);return r?r[1]:n||void 0}function Tn(e,t){let n=Mn(e),r=Mn(t);if(!(!n||!r)){for(let e=0;e<3;e+=1){let t=n.core[e],i=r.core[e];if(t!==i)return t>i?1:-1}return Nn(n.prerelease,r.prerelease)}}function En(e,t){return Tn(e,t)===1}async function Dn(e,t,r){let i=t?.command??[e,`--version`];try{let e=C(i,{detached:r!==void 0&&n.platform!==`win32`}),{exitCode:a,stdout:o}=r?await T(e,r):await w(e);return a===0?wn(o,t?.parser):void 0}catch(e){if(S(e))throw e;return}}async function On(e,t=`latest`,n={}){try{let r=F(n.registry)??`https://registry.npmjs.org`,i=await un(Nt(e,t,r),`npm:${r}:${e}:${t}`,{context:n.context,networkPort:n.networkPort});if(n.context?.signal.aborted)throw jn(n.context.signal);return i?.version}catch(e){if(S(e))throw e;if(n.context?.signal.aborted)throw jn(n.context.signal);return}}async function kn(e,t){try{let r=C([n.platform===`win32`?`where`:`which`,e],{detached:t!==void 0&&n.platform!==`win32`}),{exitCode:i,stdout:a}=t?await T(r,t):await w(r);return i===0?a.trim().split(`
|
|
7
|
-
`)[0]:void 0}catch(e){if(S(e))throw e;return}}async function An(e,t){if(e){if(t?.signal.aborted)throw jn(t.signal);try{let n=await ie(e);if(t?.signal.aborted)throw jn(t.signal);return n}catch{if(t?.signal.aborted)throw jn(t.signal);return e}}}function jn(e){return new x({kind:`cancelled`,reason:typeof e.reason==`string`?e.reason:void 0})}function Mn(e){let t=e.trim().match(/^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9a-z.-]+))?$/i);if(t)return{core:[BigInt(t[1]),BigInt(t[2]),BigInt(t[3])],prerelease:t[4]?t[4].split(`.`):[]}}function Nn(e,t){if(e.length===0&&t.length===0)return 0;if(e.length===0)return 1;if(t.length===0)return-1;let n=Math.max(e.length,t.length);for(let r=0;r<n;r+=1){let n=e[r],i=t[r];if(n===void 0)return-1;if(i===void 0)return 1;if(n===i)continue;let a=/^\d+$/.test(n),o=/^\d+$/.test(i);if(a&&o){let e=BigInt(n),t=BigInt(i);if(e===t)continue;return e>t?1:-1}return a?-1:o||n>i?1:-1}return 0}function Pn(e,t){let n=R(`provider`,e.id),r=async n=>{let r=await Fn(n.context,t.contextualPackageObservation,()=>t.probePackagePresence(n.target.id,n.context));if(k(r))return A(r);if(r.kind===`rejected`||r.value===`unknown`)return{evidence:[R(`provider`,`${e.id}:${n.target.id}:presence-unknown`)],kind:`indeterminate`,reason:`${e.id} could not determine whether ${n.target.id} is installed`};if(r.value===`absent`)return z({evidence:[R(`package`,`${e.id}:${n.target.id}:absent`)],kind:`absent`,target:n.target});let i=await Fn(n.context,t.contextualPackageObservation,()=>t.getInstalledVersion(n.target.id,n.context));if(k(i))return A(i);let a=i.kind===`resolved`?i.value:void 0;return z({evidence:[R(`package`,a?`${e.id}:${n.target.id}@${a}`:`${e.id}:${n.target.id}:present`)],kind:`present`,target:n.target,...a?{version:a}:{}})};return{availability:async n=>{let r=await Fn(n,t.contextualPackageObservation,()=>t.isAvailable(n));return k(r)?A(r):r.kind===`rejected`||!r.value?{kind:`unavailable`,reason:`${e.id} executable is unavailable`}:z({executable:e.executable})},id:e.id,install:n=>{let r=Vn(n.options),i=e.commands.install(n.target,r);return Rn(e,n.context,n.target,i,t.contextualMutation,()=>t.install(n.target.id,n.options?.distTag,r.registry,n.context))},observe:r,resolveLatestVersion:async r=>{let i=Vn(r.options),a=await j(r.context,()=>t.resolveLatestVersion(r.target.id,i.distTag,i.registry));return k(a)?A(a):a.kind===`rejected`||!a.value?{evidence:[n],kind:`indeterminate`,reason:`${e.id} could not resolve the ${i.distTag} version for ${r.target.id}`}:z({evidence:[n,R(`package`,`${e.id}:${r.target.id}@${i.distTag}=${a.value}`)],version:a.value})},uninstall:n=>{let r=e.commands.uninstall(n.target);return Rn(e,n.context,n.target,r,t.contextualMutation,()=>t.uninstall(n.target.id,n.context))},update:n=>{let r=Vn(n.options),i=e.commands.update(n.target,r);return Rn(e,n.context,n.target,i,t.contextualMutation,()=>t.update(n.target.id,r.updateStrategy,r.distTag,r.registry,n.context))},updateMany:n=>Ln(e,t,n),verify:async t=>{let n=await r(t);return n.kind===`success`?n.value.kind===`absent`?z({evidence:n.value.evidence??[],kind:`unsatisfied`,reason:`${t.target.id} is not installed through ${e.id}`}):z({evidence:n.value.evidence??[],kind:`satisfied`}):n}}}function Fn(e,t,n){return t?gt(e,n):j(e,n)}function In(e,t,n){return t?gt(e,n):j(e,n)}async function Ln(e,t,n){let r=Vn(n.options),i=e.commands.updateMany(n.targets,r),a=[R(`provider`,e.id),R(`command`,i.join(` `))],o=await In(n.context,t.contextualMutation,()=>t.updateMany(n.targets.map(e=>e.id),r.updateStrategy,n.context));return k(o)?A(o):o.kind===`rejected`?Bn(e,i,a,`update-many`,void 0,o.reason):o.value.kind===`success`?z(n.targets.map(e=>({evidence:a,target:e}))):zn(o.value,e,i,a,`update-many`)}async function Rn(e,t,n,r,i,a){let o=await In(t,i,a);if(k(o))return A(o);let s=[R(`provider`,e.id),R(`command`,r.join(` `))];return o.kind===`rejected`?Bn(e,r,s,r[1]??`operation`,n.id,o.reason):o.value.kind===`success`?z({evidence:s,target:n}):zn(o.value,e,r,s,r[1]??`operation`,n.id)}function zn(e,t,n,r,i,a){if(e.kind!==`failed`)return e;let o=Bn(t,n,r,i,a);return{...o,...e,command:e.command??n,evidence:e.evidence??r,reason:e.reason.trim()?e.reason:o.reason,remediation:e.remediation??o.remediation}}function Bn(e,t,n,r,i,a){let o=r===`add`?`install`:r===`remove`?`uninstall`:r;return{command:t,evidence:n,kind:`failed`,reason:`${e.id} ${o} failed${i?` for ${i}`:``}${a?`: ${a}`:``}`,remediation:`Review ${e.displayName} output and retry the operation.`,retryable:!1}}function Vn(e){return{distTag:e?.distTag??`latest`,distTagExplicit:e?.distTag!==void 0,registry:F(e?.registry),updateStrategy:e?.updateStrategy??`latest-major`}}function R(e,t){return{kind:e,value:t}}function z(e){return{kind:`success`,value:e}}const Hn={install:(e,t)=>[`bun`,`add`,`-g`,...t.registry?[`--registry`,t.registry]:[],t.distTagExplicit?`${e.id}@${t.distTag}`:e.id],uninstall:e=>[`bun`,`remove`,`-g`,e.id],update:(e,t)=>[`bun`,`update`,`-g`,...t.updateStrategy===`latest-major`?[`--latest`]:[],...t.registry?[`--registry`,t.registry]:[],t.distTag===`latest`?e.id:`${e.id}@${t.distTag}`],updateMany:(e,t)=>[`bun`,`update`,`-g`,...t.updateStrategy===`latest-major`?[`--latest`]:[],...e.map(e=>e.id)]},Un={contextualMutation:!0,contextualPackageObservation:!0,getInstalledVersion:(e,t)=>Ht(e,t),install:(e,t,n,r)=>Ft(e,t,n,r),isAvailable:e=>at(e),probePackagePresence:(e,t)=>Vt(e,void 0,t),resolveLatestVersion:(e,t,n)=>On(e,t,{registry:n}),uninstall:(e,t)=>Rt(e,t),update:(e,t,n,r,i)=>It(e,t,n,r,i),updateMany:(e,t,n)=>Lt(e,t,n)};function Wn(e=Un){return Pn({commands:Hn,displayName:`Bun`,executable:`bun`,id:`bun`},e)}const Gn=Wn();function Kn(e,t,n,r){return E([`cargo`,e,t,...n],r,`cargo ${e} failed`)}function qn(e,t,n){return Kn(`install`,e,t??[],n)}function Jn(e,t,n){return qn(e,[`--force`,...t??[]],n)}function Yn(e,t){return D(e.map(e=>[`cargo`,`install`,e.packageName,`--force`,...e.packageInstallArgs??[]]),t,`cargo update failed`)}function Xn(e,t){return Kn(`uninstall`,e,[],t)}async function Zn(e,t){try{let r=C([`cargo`,`install`,`--list`],{detached:t!==void 0&&n.platform!==`win32`,stdio:[`ignore`,`pipe`,`pipe`]}),{exitCode:i,stdout:a}=t?await T(r,t):await w(r);if(i!==0)return{presence:`unknown`};let o=er(a,e);return o?{presence:`present`,version:o}:tr(a,e)?{presence:`present`}:{presence:`absent`}}catch(e){if(S(e))throw e;return{presence:`unknown`}}}async function Qn(e,t){return(await Zn(e,t)).presence}async function $n(e,t){return(await Zn(e,t)).version}function er(e,t){let n=nr(e,t);if(!n)return;let r=n[1];return r&&/^\d/.test(r)?r:void 0}function tr(e,t){return nr(e,t)!==void 0}function nr(e,t){let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),r=RegExp(`^${n}\\s+v([^:\\s]+):\\s*$`,`m`);return e.match(r)??void 0}const rr={contextualMutation:!0,contextualObservation:!0,getInstalledVersion:(e,t)=>$n(e.id,t),install:(e,t)=>qn(e.id,e.arguments?[...e.arguments]:void 0,t),isAvailable:e=>lt(e),probePackagePresence:(e,t)=>Qn(e.id,t),uninstall:(e,t)=>Xn(e.id,t),update:(e,t)=>Jn(e.id,e.arguments?[...e.arguments]:void 0,t),updateMany:(e,t)=>Yn(e.map(e=>({...e.arguments?{packageInstallArgs:[...e.arguments]}:{},packageName:e.id})),t)};function ir(e,t=!1){return[`cargo`,`install`,e.id,...t?[`--force`]:[],...e.arguments??[]]}function ar(e=rr){return M({commands:{install:e=>ir(e),uninstall:e=>[`cargo`,`uninstall`,e.id],update:e=>ir(e,!0),updateMany:e=>[`cargo`,`install`,...e.flatMap(e=>[e.id,`--force`,...e.arguments??[]])]},displayName:`Cargo`,executable:`cargo`,id:`cargo`},e)}const or=ar();function sr(e,t,n,r){let i=[`deno`,`install`,`--global`];return n.force&&i.push(`--force`),i.push(...t,e),E(i,r,`deno ${n.force?`update`:`install`} failed`)}function cr(e,t,n){return sr(e,t??[],{},n)}function lr(e,t,n){return sr(e,t??[],{force:!0},n)}function ur(e,t){return D(e.map(e=>[`deno`,`install`,`--global`,`--force`,...e.packageInstallArgs??[],e.packageName]),t,`deno update failed`)}function dr(e,t){return E([`deno`,`uninstall`,`--global`,e],t,`deno uninstall failed`)}async function fr(e,t){if(!e.trim())return{presence:`unknown`};try{return await g(p(gr(),`bin`,e),te.F_OK),{presence:`present`}}catch(e){if(S(e))throw e;return _r(e)&&(e.code===`ENOENT`||e.code===`ENOTDIR`)?{presence:`absent`}:{presence:`unknown`}}}async function pr(e,t){return(await fr(e,t)).presence}async function mr(e,t){return(await fr(e,t)).version}function hr(e,t){if(t?.trim())return t.trim();let n=e.trim().split(`/`).pop()?.replace(/@.*$/,``);return n&&n.length>0?n:e.trim()}function gr(){let e=n.env.DENO_INSTALL_ROOT?.trim();return e&&e.length>0?e:p(ce(),`.deno`)}function _r(e){return typeof e==`object`&&!!e&&`code`in e}const vr={contextualMutation:!0,contextualObservation:!0,getInstalledVersion:(e,t)=>mr(hr(e.id,e.binaryName),t),install:(e,t)=>cr(e.id,e.arguments?[...e.arguments]:void 0,t),isAvailable:e=>ct(e),probePackagePresence:(e,t)=>pr(hr(e.id,e.binaryName),t),uninstall:(e,t)=>dr(hr(e.id,e.binaryName),t),update:(e,t)=>lr(e.id,e.arguments?[...e.arguments]:void 0,t),updateMany:(e,t)=>ur(e.map(e=>({...e.arguments?{packageInstallArgs:[...e.arguments]}:{},...e.binaryName?{binaryName:e.binaryName}:{},packageName:e.id})),t)};function yr(e,t=!1){return[`deno`,`install`,`--global`,...t?[`--force`]:[],...e.arguments??[],e.id]}function br(e=vr){return M({commands:{install:e=>yr(e),uninstall:e=>[`deno`,`uninstall`,`--global`,hr(e.id,e.binaryName)],update:e=>yr(e,!0),updateMany:e=>[`deno`,`install`,`--global`,`--force`,...e.flatMap(e=>[...e.arguments??[],e.id])]},displayName:`Deno`,executable:`deno`,id:`deno`},e)}const xr=br(),Sr={contextualExecution:!0,execute:(e,t)=>E(Tr(e,it()),t,`install effect failed`),isExecutablePresent:ht};function Cr(e,t={}){let n={...Sr,...t,contextualExecution:t.execute?t.contextualExecution??!1:!0};return{availability:async e=>Er(e),id:e,install:async t=>{let r=t.target.effect;if(!r)return{kind:`failed`,reason:`${e} install target ${t.target.id} has no execution effect`,remediation:`Select a candidate with an explicit shell-script or executable effect.`,retryable:!1};let i=await wr(t.context,n.contextualExecution,()=>n.execute(r,t.context));if(k(i))return A(i);let a=Tr(r,it()),o=Dr(e,a);if(i.kind===`rejected`)return{command:a,evidence:o,kind:`failed`,reason:`${e} install failed for ${t.target.id}: ${i.reason}`,remediation:`Review the installer output and upstream installation instructions.`,retryable:!1};let s=i.value;return s.kind===`success`?{kind:`success`,value:{evidence:o,target:t.target}}:s.kind===`failed`?{...s,command:s.command??a,evidence:s.evidence??o,remediation:s.remediation??`Review the installer output and upstream installation instructions.`}:s},observe:async t=>{let r=t.target.binaryName;if(!r)return{evidence:[{kind:`provider`,value:`${e}:${t.target.id}:presence-unknown`}],kind:`indeterminate`,reason:`${e} candidate does not declare an executable presence probe`};let i=await j(t.context,()=>n.isExecutablePresent(r));return k(i)?A(i):i.kind===`rejected`?{kind:`failed`,reason:`${e} executable probe failed for ${t.target.id}: ${i.reason}`,retryable:!0}:{kind:`success`,value:{evidence:[{kind:`executable`,value:r}],kind:i.value?`present`:`absent`,target:t.target}}}}}function wr(e,t,n){return t?gt(e,n):j(e,n)}function Tr(e,t){return e.kind===`executable`?e.command:t===`windows`?[`powershell.exe`,`-Command`,e.command]:[`sh`,`-c`,e.command]}async function Er(e){return e.signal.aborted?{kind:`cancelled`,reason:String(e.signal.reason)}:{kind:`success`,value:{executable:it()===`windows`?`powershell.exe`:`sh`}}}function Dr(e,t){return[{kind:`provider`,value:e},{kind:`command`,value:t.join(` `)}]}const Or=Cr(`script`),kr=Cr(`binary`);function Ar(e,t,n){return E([`mise`,`use`,`--global`,...t?[`--force`]:[],e],n,`mise ${t?`update`:`install`} failed`)}function jr(e,t){return Ar(e,!1,t)}function Mr(e,t){return Ar(e,!0,t)}function Nr(e,t){return D(e.map(e=>[`mise`,`use`,`--global`,`--force`,e.packageName]),t,`mise update failed`)}function Pr(e,t){return E([`mise`,`unuse`,`--global`,e],t,`mise uninstall failed`)}async function Fr(e,t){try{let r=C([`mise`,`ls`,`--installed`,`--json`,e],{detached:t!==void 0&&n.platform!==`win32`,stdio:[`ignore`,`pipe`,`ignore`]}),{stdout:i}=t?await T(r,t):await w(r);if(!i.trim())return{presence:`unknown`};try{let t=JSON.parse(i);if(!Br(t))return{presence:`unknown`};let n=zr(t,e),r=n?t[n]:void 0;if(!Array.isArray(r)||r.length===0)return{presence:`absent`};let a=Rr(i,e);return a?{presence:`present`,version:a}:{presence:`present`}}catch{return{presence:`unknown`}}}catch(e){if(S(e))throw e;return{presence:`unknown`}}}async function Ir(e,t){return(await Fr(e,t)).presence}async function Lr(e,t){return(await Fr(e,t)).version}function Rr(e,t){try{let n=JSON.parse(e);if(!Br(n))return;let r=zr(n,t),i=r?n[r]:void 0;if(!Array.isArray(i))return;for(let e of i)if(Br(e)&&typeof e.version==`string`&&e.version.length>0)return e.version;return}catch{return}}function zr(e,t){if(Array.isArray(e[t]))return t;let n=t.split(`:`).pop()?.split(`/`).pop();if(n)return Object.keys(e).find(t=>t===n&&Array.isArray(e[t]))}function Br(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const Vr={contextualMutation:!0,contextualObservation:!0,getInstalledVersion:(e,t)=>Lr(e.id,t),install:(e,t)=>jr(e.id,t),isAvailable:e=>ut(e),probePackagePresence:(e,t)=>Ir(e.id,t),uninstall:(e,t)=>Pr(e.id,t),update:(e,t)=>Mr(e.id,t),updateMany:(e,t)=>Nr(e.map(e=>({packageName:e.id})),t)};function Hr(e,t=!1){return[`mise`,`use`,`--global`,...t?[`--force`]:[],e.id]}function Ur(e=Vr){return M({commands:{install:e=>Hr(e),uninstall:e=>[`mise`,`unuse`,`--global`,e.id],update:e=>Hr(e,!0),updateMany:e=>[`mise`,`use`,`--global`,`--force`,...e.map(e=>e.id)]},displayName:`mise`,executable:`mise`,id:`mise`},e)}const Wr=Ur();async function Gr(e,t,n){return We(r=>Kr(e,t,n,r))}function Kr(e,t,n,r){let i=t?`${e}@${t}`:e,a=F(n);return E([`npm`,`install`,`-g`,i,...a?[`--registry`,a]:[]],r,`npm install failed`)}function qr(e,t,n,r,i){let a=F(r);return E(t===`latest-major`?[`npm`,`install`,`-g`,`${e}@${n}`,...a?[`--registry`,a]:[]]:[`npm`,`update`,`-g`,e,...a?[`--registry`,a]:[]],i,`npm update failed`)}function Jr(e,t,n){return e.length===0?Promise.resolve({kind:`success`,value:void 0}):E(t===`latest-major`?[`npm`,`install`,`-g`,...e.map(e=>`${e}@latest`)]:[`npm`,`update`,`-g`,...e],n,`npm batch update failed`)}function Yr(e,t){return E([`npm`,`uninstall`,`-g`,e],t,`npm uninstall failed`)}async function Xr(e,t){try{let n=C([`npm`,`list`,`-g`,e,`--depth=0`,`--json`],{detached:t!==void 0&&process.platform!==`win32`,stdio:[`ignore`,`pipe`,`ignore`]}),{stdout:r}=t?await T(n,t):await w(n);if(!r.trim())return{presence:`unknown`};try{let t=JSON.parse(r);if(!t||typeof t!=`object`||Array.isArray(t)||Object.hasOwn(t,`error`))return{presence:`unknown`};if(t.dependencies&&Object.hasOwn(t.dependencies,e)){let t=$r(r,e);return t?{presence:`present`,version:t}:{presence:`present`}}return{presence:`absent`}}catch{return{presence:`unknown`}}}catch(e){if(S(e))throw e;return{presence:`unknown`}}}async function Zr(e,t){return(await Xr(e,t)).presence}async function Qr(e,t){return(await Xr(e,t)).version}function $r(e,t){let n=JSON.parse(e).dependencies?.[t]?.version;return typeof n==`string`?n:void 0}const ei={install:(e,t)=>[`npm`,`install`,`-g`,t.distTagExplicit?`${e.id}@${t.distTag}`:e.id,...t.registry?[`--registry`,t.registry]:[]],uninstall:e=>[`npm`,`uninstall`,`-g`,e.id],update:(e,t)=>t.updateStrategy===`latest-major`?[`npm`,`install`,`-g`,`${e.id}@${t.distTag}`,...t.registry?[`--registry`,t.registry]:[]]:[`npm`,`update`,`-g`,e.id,...t.registry?[`--registry`,t.registry]:[]],updateMany:(e,t)=>t.updateStrategy===`latest-major`?[`npm`,`install`,`-g`,...e.map(e=>`${e.id}@latest`)]:[`npm`,`update`,`-g`,...e.map(e=>e.id)]},ti={contextualMutation:!0,contextualPackageObservation:!0,getInstalledVersion:(e,t)=>Qr(e,t),install:(e,t,n,r)=>Kr(e,t,n,r),isAvailable:e=>ot(e),probePackagePresence:(e,t)=>Zr(e,t),resolveLatestVersion:(e,t,n)=>On(e,t,{registry:n}),uninstall:(e,t)=>Yr(e,t),update:(e,t,n,r,i)=>qr(e,t,n,r,i),updateMany:(e,t,n)=>Jr(e,t,n)};function ni(e=ti){return Pn({commands:ei,displayName:`npm`,executable:`npm`,id:`npm`},e)}const ri=ni();let ii=null;async function ai(e){if(ii)return{kind:`success`,value:ii};for(let t of[[`pip`],[`pip3`],[`python`,`-m`,`pip`],[`python3`,`-m`,`pip`]])try{let{exitCode:r}=await T(C([...t,`--version`],{detached:n.platform!==`win32`,stdio:[`ignore`,`pipe`,`ignore`]}),e);if(r===0)return ii=t,{kind:`success`,value:t}}catch(t){if(S(t))return t.kind===`timed-out`?{kind:`timed-out`,timeoutMs:t.timeoutMs??e.timeoutMs??0}:{kind:`cancelled`,...t.reason?{reason:t.reason}:{}}}return ii=[`pip`],{kind:`success`,value:ii}}async function oi(e,t){let n=await ai(t);return n.kind===`success`?E([...n.value,...e],t,`pip command failed`):n}function si(e,t){return oi([`install`,e],t)}function ci(e,t){return oi([`install`,`--upgrade`,e],t)}async function li(e,t){if(e.length===0)return{kind:`success`,value:void 0};let n=await ai(t);return n.kind===`success`?D(e.map(e=>[...n.value,`install`,`--upgrade`,e.packageName]),t,`pip update failed`):n}function ui(e,t){return oi([`uninstall`,`-y`,e],t)}async function di(e,t){let r=t??{signal:new AbortController().signal,timeoutMs:5e3};try{let i=await ai(r);if(i.kind!==`success`)return{presence:`unknown`};let a=C([...i.value,`show`,e],{detached:t!==void 0&&n.platform!==`win32`,stdio:[`ignore`,`pipe`,`pipe`]}),{exitCode:o,stderr:s,stdout:c}=t?await T(a,t):await w(a);if(o===0){let e=mi(c);return e?{presence:`present`,version:e}:{presence:`present`}}return o===1&&hi(s)?{presence:`absent`}:{presence:`unknown`}}catch(e){if(S(e))throw e;return{presence:`unknown`}}}async function fi(e,t){return(await di(e,t)).presence}async function pi(e,t){return(await di(e,t)).version}function mi(e){for(let t of e.split(/\r?\n/)){let e=/^Version:\s*(.+)\s*$/i.exec(t.trim());if(e?.[1])return e[1].trim()}}function hi(e){let t=e.toLowerCase();return t.includes(`package(s) not found`)||t.includes(`not found`)}const gi={contextualMutation:!0,contextualObservation:!0,getInstalledVersion:(e,t)=>pi(e.id,t),install:(e,t)=>si(e.id,t),isAvailable:e=>ft(e),probePackagePresence:(e,t)=>fi(e.id,t),uninstall:(e,t)=>ui(e.id,t),update:(e,t)=>ci(e.id,t),updateMany:(e,t)=>li(e.map(e=>({packageName:e.id})),t)};function _i(e=gi){return M({commands:{install:e=>[`pip`,`install`,e.id],uninstall:e=>[`pip`,`uninstall`,`-y`,e.id],update:e=>[`pip`,`install`,`--upgrade`,e.id],updateMany:e=>[`pip`,`install`,`--upgrade`,...e.map(e=>e.id)]},displayName:`pip`,executable:`pip`,id:`pip`},e)}const vi=_i();function yi(e,t,n,r){return E([`uv`,`tool`,e,t,...n],r,`uv ${e} failed`)}function bi(e,t,n){return yi(`install`,e,t??[],n)}function xi(e,t,n){return yi(`upgrade`,e,t??[],n)}function Si(e,t){return D(e.map(e=>[`uv`,`tool`,`upgrade`,e.packageName,...e.packageInstallArgs??[]]),t,`uv update failed`)}function Ci(e,t){return E([`uv`,`tool`,`uninstall`,e],t,`uv uninstall failed`)}async function wi(e,t){try{let r=C([`uv`,`tool`,`list`],{detached:t!==void 0&&n.platform!==`win32`,stdio:[`ignore`,`pipe`,`ignore`]}),{stdout:i}=t?await T(r,t):await w(r);if(!i.trim())return{presence:`unknown`};let a=Oi(i,e);return a?{presence:`present`,version:a}:Di(i)?{presence:`absent`}:{presence:`unknown`}}catch(e){if(S(e))throw e;return{presence:`unknown`}}}async function Ti(e,t){return(await wi(e,t)).presence}async function Ei(e,t){return(await wi(e,t)).version}function Di(e){return e.split(/\r?\n/).some(e=>/^\S+\s+v[^\s]+/.test(e.trim()))}function Oi(e,t){let n=ki(t);for(let t of e.split(/\r?\n/)){let e=t.trim(),r=/^(\S+)\s+v([^\s]+)/.exec(e);if(!r)continue;let[,i,a]=r;if(ki(i)===n)return a}}function ki(e){return e.toLowerCase().replaceAll(/[-_.]+/g,`-`)}const Ai={contextualMutation:!0,contextualObservation:!0,getInstalledVersion:(e,t)=>Ei(e.id,t),install:(e,t)=>bi(e.id,e.arguments?[...e.arguments]:void 0,t),isAvailable:e=>pt(e),probePackagePresence:(e,t)=>Ti(e.id,t),uninstall:(e,t)=>Ci(e.id,t),update:(e,t)=>xi(e.id,e.arguments?[...e.arguments]:void 0,t),updateMany:(e,t)=>Si(e.map(e=>({...e.arguments?{packageInstallArgs:[...e.arguments]}:{},packageName:e.id})),t)};function ji(e,t){return[`uv`,`tool`,e,t.id,...t.arguments??[]]}function Mi(e=Ai){return M({commands:{install:e=>ji(`install`,e),uninstall:e=>[`uv`,`tool`,`uninstall`,e.id],update:e=>ji(`upgrade`,e),updateMany:e=>[`uv`,`tool`,`upgrade`,...e.flatMap(e=>[e.id,...e.arguments??[]])]},displayName:`uv`,executable:`uv`,id:`uv`},e)}const Ni=Mi();function Pi(e,t,n){return E([`winget`,e,`--id`,t,`-e`],n,`winget ${e} failed`)}function Fi(e,t){return Pi(`install`,e,t)}function Ii(e,t){return Pi(`upgrade`,e,t)}function Li(e,t){return D(e.map(e=>[`winget`,`upgrade`,`--id`,e.packageName,`-e`]),t,`winget update failed`)}function Ri(e,t){return Pi(`uninstall`,e,t)}async function zi(e,t){try{let r=C([`winget`,`list`,`--id`,e,`-e`],{detached:t!==void 0&&n.platform!==`win32`,stdio:[`ignore`,`pipe`,`pipe`]}),{exitCode:i,stderr:a,stdout:o}=t?await T(r,t):await w(r);if(i===0){let t=Hi(o,e);return t?{presence:`present`,version:t}:o.toLowerCase().includes(e.toLowerCase())?{presence:`present`}:{presence:`unknown`}}return Ui(a)||Ui(o)?{presence:`absent`}:{presence:`unknown`}}catch(e){if(S(e))throw e;return{presence:`unknown`}}}async function Bi(e,t){return(await zi(e,t)).presence}async function Vi(e,t){return(await zi(e,t)).version}function Hi(e,t){let n=t.toLowerCase();for(let t of e.split(/\r?\n/)){let e=t.trim();if(!e||e.toLowerCase().startsWith(`name`)||e.startsWith(`-`))continue;let r=e.split(/\s{2,}|\t+/).map(e=>e.trim()).filter(Boolean);if(r.length<2)continue;let i=r.findIndex(e=>e.toLowerCase()===n);if(i<0)continue;let a=r[i+1];return a&&a.length>0?a:void 0}}function Ui(e){let t=e.toLowerCase();return t.includes(`no installed package found`)||t.includes(`no package found matching input criteria`)||t.includes(`no installed package matched`)}const Wi={contextualMutation:!0,contextualObservation:!0,getInstalledVersion:(e,t)=>Vi(e.id,t),install:(e,t)=>Fi(e.id,t),isAvailable:e=>dt(e),probePackagePresence:(e,t)=>Bi(e.id,t),uninstall:(e,t)=>Ri(e.id,t),update:(e,t)=>Ii(e.id,t),updateMany:(e,t)=>Li(e.map(e=>({packageName:e.id})),t)};function Gi(e,t){return[`winget`,e,`--id`,t.id,`-e`]}function Ki(e=Wi){return M({commands:{install:e=>Gi(`install`,e),uninstall:e=>Gi(`uninstall`,e),update:e=>Gi(`upgrade`,e),updateMany:e=>[`winget`,`upgrade`,...e.flatMap(e=>[`--id`,e.id,`-e`])]},displayName:`winget`,executable:`winget`,id:`winget`},e)}const qi=Ki(),Ji=Object.freeze([`bun`,`npm`,`brew`,`cargo`,`deno`,`mise`,`pip`,`uv`,`winget`,`script`,`binary`]),Yi=Object.freeze([`availability`,`observe`,`resolve-latest-version`,`install`,`update`,`update-many`,`uninstall`,`verify`]),Xi={availability:`availability`,install:`install`,observe:`observe`,"resolve-latest-version":`resolveLatestVersion`,uninstall:`uninstall`,update:`update`,"update-many":`updateMany`,verify:`verify`};function Zi(e){let t=new Map;for(let n of e){if(t.has(n.id))throw Error(`Duplicate provider adapter id: ${n.id}`);t.set(n.id,n)}let n=Object.freeze([...e]),r=new Map(n.map(e=>[e.id,$i(e)]));return Object.freeze({get(e){return t.get(e)},getCapabilities(e){return r.get(e)??Object.freeze([])},list(){return n}})}function Qi(e){return Zi(Ji.map(t=>{let n=e[t];if(n.id!==t)throw Error(`Provider registry key ${t} does not match adapter id ${n.id}`);return n}))}function $i(e){return Object.freeze(Yi.filter(t=>typeof e[Xi[t]]==`function`))}const ea=Qi({binary:kr,brew:jt,bun:Gn,cargo:or,deno:xr,mise:Wr,npm:ri,pip:vi,script:Or,uv:Ni,winget:qi}),ta=Object.freeze(ea.list().filter(e=>{let t=ea.getCapabilities(e.id);return t.includes(`update`)&&t.includes(`uninstall`)}).map(e=>e.id));function na(e){let t=ea.getCapabilities(e);if(!t.includes(`install`))throw Error(`First-party provider ${e} must implement install`);let n=t.includes(`update`),r=t.includes(`uninstall`);return{canInstall:!0,canLookupLatestVersion:t.includes(`resolve-latest-version`),canUninstall:r,canUpdate:n,lifecycle:n&&r?`managed`:`unmanaged`}}function ra(){return ta}function B(e){return ta.includes(e)}function ia(e){return na(e).lifecycle}function aa(e){return na(e).canUpdate}function oa(e){return na(e).canUninstall}function sa(e){return na(e).canLookupLatestVersion}function ca(e,t){return e?t===`cask`?` (${e} cask)`:t===`id`?` (${e} id)`:` (${e})`:``}function V(e,t){if(t.packageName)return t.packageName;if(t.type===`cargo`)return e.packages?.cargo;if(t.type===`deno`)return e.packages?.deno;if(t.type===`mise`)return e.packages?.mise;if(t.type===`pip`)return e.packages?.pip;if(t.type===`uv`)return e.packages?.uv;if(t.type===`bun`||t.type===`npm`)return e.packages?.npm}function la(e){return e?aa(e.installType):!1}function ua(e,t){return la(t)||!!e.selfUpdate}function da(e){return!!e&&sa(e.installType)}function fa(e){return e.length>0&&e.every(e=>sa(e.type))}function pa(e){return B(e.type)?`${ia(e.type)}/${e.type}${ca(e.packageName,e.packageTargetKind)}`:e.type===`script`?`unmanaged/script`:`unmanaged/binary`}function ma(e){return e?B(e.installType)?`managed via ${e.installType}${ca(e.packageName,e.packageTargetKind)}`:e.installType===`script`?`script installer`:`binary installer`:`detected in PATH`}function ha(e,t){let n=Da({agent:e,installedState:t,methods:[]});return n===`managed`?`managed update`:n===`self-update`?`command update`:`manual update`}function ga(e,t){if(t.type===`bun`){let n=V(e,t);return n?`bun add -g ${n}`:``}if(t.type===`npm`){let n=V(e,t);return n?`npm i -g ${n}`:``}if(t.type===`brew`)return t.packageName?t.packageTargetKind===`cask`?`brew install --cask ${t.packageName}`:`brew install ${t.packageName}`:``;if(t.type===`cargo`){let n=V(e,t);return n?[`cargo`,`install`,n,...t.packageInstallArgs??[]].join(` `):``}if(t.type===`deno`){let n=V(e,t);return n?[`deno`,`install`,`--global`,...t.packageInstallArgs??[],n].join(` `):``}if(t.type===`mise`){let n=V(e,t);return n?`mise use --global ${n}`:``}if(t.type===`pip`){let n=V(e,t);return n?`pip install ${n}`:``}if(t.type===`uv`){let n=V(e,t);return n?[`uv`,`tool`,`install`,n,...t.packageInstallArgs??[]].join(` `):``}return t.type===`winget`?t.packageName?`winget install --id ${t.packageName} -e`:``:t.command??``}function _a(e,t,n){if(t)return da(t)&&(t.packageName||e.packages?.npm)||void 0;if(!(!e.packages?.npm||!fa(n)))return e.packages.npm}function va(e,t){let n=ya(t);if(n){let t=e.find(e=>e.type===n);if(t)return t}if(e.length!==1)return;let[r]=e;if(!(r.type!==`script`&&r.type!==`binary`))return r}function ya(e){if(!e)return;let t=e.replaceAll(`\\`,`/`);if(t.includes(`/.bun/bin/`)||t.includes(`/.bun/install/global/`))return`bun`;if(t.includes(`/.local/share/mise/shims/`)||t.includes(`/.mise/shims/`))return`mise`;if(ba(t))return`npm`}function ba(e){return e.includes(`/node_modules/.bin/`)?!1:e.includes(`/lib/node_modules/`)||e.includes(`/AppData/Roaming/npm/`)||e.includes(`/.nvm/versions/node/`)||e.includes(`/.fnm/node-versions/`)||e.includes(`/.volta/tools/image/node/`)}function xa(e){if(e.installedState)return B(e.installedState.installType)?e.installedState.installType:void 0;for(let t of e.methods)if(B(t.type)&&aa(t.type))return t.type}const Sa={strategy:`managed`,canHandle:e=>!!xa(e),getManagedInstallerType:e=>xa(e)},Ca={strategy:`self-update`,canHandle:e=>!la(e.installedState)&&!!e.agent.selfUpdate},wa={strategy:`manual-hint`,canHandle:()=>!0},Ta=[Sa,Ca,wa];function Ea(e){return Ta.find(t=>t.canHandle(e))??wa}function Da(e){return Ea(e).strategy}function Oa(e){return ua(e.agent,e.installedState)}const H={additionalProperties:!1,properties:{action:{type:`string`},data:{type:`object`},error:{additionalProperties:!1,properties:{code:{type:`string`},message:{type:`string`}},required:[`code`,`message`],type:`object`},exitCode:{type:`integer`},meta:{additionalProperties:!1,properties:{mode:{type:`string`},runId:{type:`string`},schemaVersion:{type:`string`},source:{type:`string`},fetchedAt:{type:`string`},staleAfter:{type:`string`},timestamp:{type:`string`},version:{type:`string`}},required:[`mode`,`runId`,`schemaVersion`,`timestamp`,`version`],type:`object`},ok:{type:`boolean`},target:{additionalProperties:!1,properties:{kind:{type:`string`},name:{type:`string`}},required:[`kind`],type:`object`},warnings:{items:{additionalProperties:!1,properties:{code:{type:`string`},message:{type:`string`}},required:[`code`,`message`],type:`object`},type:`array`}},required:[`action`,`error`,`meta`,`ok`,`warnings`],type:`object`},U={additionalProperties:!1,properties:{action:{type:`string`},data:{type:`object`},meta:{additionalProperties:!1,properties:{mode:{type:`string`},runId:{type:`string`},schemaVersion:{type:`string`},source:{type:`string`},fetchedAt:{type:`string`},staleAfter:{type:`string`},timestamp:{type:`string`},version:{type:`string`}},required:[`mode`,`runId`,`schemaVersion`,`timestamp`,`version`],type:`object`},target:{additionalProperties:!1,properties:{kind:{type:`string`},name:{type:`string`}},required:[`kind`],type:`object`},type:{type:`string`}},required:[`action`,`meta`,`type`],type:`object`},W={additionalProperties:!1,properties:{available:{type:`boolean`},reason:{type:`string`}},required:[`available`],type:`object`},ka={brew:W,bun:W,cargo:W,deno:W,mise:W,npm:W,pip:W,uv:W,winget:W},Aa=[`brew`,`bun`,`cargo`,`deno`,`mise`,`npm`,`pip`,`uv`,`winget`],ja=[{dataSchema:{additionalProperties:!1,properties:{agents:{items:{type:`string`},type:`array`},features:{additionalProperties:!1,properties:{assumeYes:{type:`boolean`},cacheBypass:{type:`boolean`},cacheRefresh:{type:`boolean`},channels:{items:{type:`string`},type:`array`},colorModes:{items:{type:`string`},type:`array`},dryRun:{type:`boolean`},execInstallPolicies:{items:{type:`string`},type:`array`},freshnessMetadata:{type:`boolean`},idempotencyKey:{type:`boolean`},logLevels:{items:{type:`string`},type:`array`},quietLogs:{type:`boolean`},selfUpgrade:{type:`boolean`},timeout:{type:`boolean`}},required:[`assumeYes`,`cacheBypass`,`cacheRefresh`,`channels`,`colorModes`,`dryRun`,`execInstallPolicies`,`freshnessMetadata`,`idempotencyKey`,`logLevels`,`quietLogs`,`selfUpgrade`,`timeout`],type:`object`},installers:{additionalProperties:!1,properties:ka,required:Aa,type:`object`},outputModes:{items:{type:`string`},type:`array`},platform:{additionalProperties:!1,properties:{arch:{type:`string`},os:{type:`string`}},required:[`arch`,`os`],type:`object`}},required:[`agents`,`features`,`installers`,`outputModes`,`platform`],type:`object`},description:`Environment and surface capabilities`,envelopeSchema:H,name:`capabilities`,ndjsonEventSchema:U},{dataSchema:{additionalProperties:!1,properties:{commands:{items:{additionalProperties:!1,properties:{flags:{items:{type:`string`},type:`array`},name:{type:`string`},outputSchemaRef:{type:`string`},stability:{type:`string`},summary:{type:`string`}},required:[`flags`,`name`,`outputSchemaRef`,`stability`,`summary`],type:`object`},type:`array`}},required:[`commands`],type:`object`},description:`Stable command catalog`,envelopeSchema:H,name:`commands`,ndjsonEventSchema:U},{dataSchema:{additionalProperties:!1,properties:{action:{type:`string`},config:{type:`object`},key:{type:`string`},value:{type:[`number`,`string`]}},required:[`action`],type:`object`},description:`Configuration read or mutation result`,envelopeSchema:H,name:`config`,ndjsonEventSchema:U},{dataSchema:{additionalProperties:!1,properties:{agents:{items:{additionalProperties:!1,properties:{displayName:{type:`string`},installedVersion:{type:`string`},latestVersion:{type:`string`},lifecycle:{type:`string`},outdated:{type:`boolean`},sourceLabel:{type:`string`}},required:[`displayName`,`lifecycle`,`outdated`,`sourceLabel`],type:`object`},type:`array`},installers:{additionalProperties:!1,properties:{brew:{type:`boolean`},bun:{type:`boolean`},cargo:{type:`boolean`},deno:{type:`boolean`},mise:{type:`boolean`},npm:{type:`boolean`},pip:{type:`boolean`},uv:{type:`boolean`},winget:{type:`boolean`}},required:Aa,type:`object`},issues:{items:{additionalProperties:!1,properties:{blocking:{type:`boolean`},category:{type:`string`},code:{type:`string`},docsRef:{type:`string`},message:{type:`string`},severity:{type:`string`},subject:{additionalProperties:!1,properties:{kind:{type:`string`},name:{type:`string`}},required:[`kind`],type:`object`},suggestedAction:{type:`string`},suggestedCommands:{items:{type:`string`},type:`array`}},required:[`blocking`,`category`,`code`,`message`,`severity`,`subject`,`suggestedAction`,`suggestedCommands`],type:`object`},type:`array`},self:{additionalProperties:!1,properties:{canAutoUpdate:{type:`boolean`},currentVersion:{type:`string`},installSource:{type:`string`},latestVersion:{type:`string`},outdated:{type:`boolean`},recoveryHint:{type:`string`}},required:[`canAutoUpdate`,`currentVersion`,`installSource`,`outdated`],type:`object`}},required:[`agents`,`installers`,`issues`,`self`],type:`object`},description:`Diagnostic state and remediation guidance for the current environment`,envelopeSchema:H,name:`doctor`,ndjsonEventSchema:U},{dataSchema:{additionalProperties:!1,properties:{agent:{additionalProperties:!1,properties:{binaryName:{type:`string`},displayName:{type:`string`},name:{type:`string`}},required:[`name`],type:`object`},execution:{additionalProperties:!1,properties:{args:{items:{type:`string`},type:`array`},installGuidance:{additionalProperties:!1,properties:{docsRef:{type:`string`},installMethods:{items:{additionalProperties:!1,properties:{command:{type:`string`},label:{type:`string`},type:{type:`string`}},required:[`command`,`label`,`type`],type:`object`},type:`array`},suggestedAction:{type:`string`},suggestedEnsureCommand:{type:`string`},suggestedExecCommand:{type:`string`}},required:[`docsRef`,`installMethods`,`suggestedAction`,`suggestedEnsureCommand`,`suggestedExecCommand`],type:`object`},installPolicy:{type:`string`},installed:{type:`boolean`},interactive:{type:`boolean`},launched:{type:`boolean`}},required:[`args`,`installPolicy`,`installed`,`interactive`,`launched`],type:`object`}},required:[`agent`,`execution`],type:`object`},description:`Preflight contract for managed agent execution`,envelopeSchema:H,name:`exec`,ndjsonEventSchema:U},{dataSchema:{additionalProperties:!1,properties:{agent:{type:`object`},changed:{type:`boolean`},installState:{type:`object`},installed:{type:`boolean`}},required:[`agent`,`changed`,`installed`],type:`object`},description:`Ensure result for an agent`,envelopeSchema:H,name:`ensure`,ndjsonEventSchema:U},{dataSchema:{additionalProperties:!1,properties:{agent:{additionalProperties:!1,properties:{aliases:{items:{type:`string`},type:`array`},binaryName:{type:`string`},displayName:{type:`string`},installMethods:{items:{additionalProperties:!1,properties:{command:{type:`string`},label:{type:`string`},type:{type:`string`}},required:[`command`,`label`,`type`],type:`object`},type:`array`},name:{type:`string`},packageName:{type:`string`},selfUpdateCommands:{items:{type:`string`},type:`array`}},required:[`aliases`,`binaryName`,`displayName`,`installMethods`,`name`,`selfUpdateCommands`],type:`object`},inspection:{additionalProperties:!1,properties:{binaryPath:{type:`string`},installed:{type:`boolean`},installedVersion:{type:`string`},latestVersion:{type:`string`},lifecycle:{type:`string`},sourceLabel:{type:`string`}},required:[`installed`,`lifecycle`],type:`object`}},required:[`agent`,`inspection`],type:`object`},description:`Human-friendly details for an agent`,envelopeSchema:H,name:`info`,ndjsonEventSchema:U},{dataSchema:{additionalProperties:!1,properties:{agent:{type:`object`},capabilities:{type:`object`},inspection:{type:`object`}},required:[`agent`,`capabilities`,`inspection`],type:`object`},description:`Structured inspection result for an agent`,envelopeSchema:H,name:`inspect`,ndjsonEventSchema:U},{dataSchema:{additionalProperties:!1,properties:{agent:{type:`object`},changed:{type:`boolean`},installState:{type:`object`},installed:{type:`boolean`},results:{items:{additionalProperties:!1,properties:{agent:{type:`object`},changed:{type:`boolean`},error:{type:`object`},input:{type:`string`},installState:{type:`object`},installed:{type:`boolean`},ok:{type:`boolean`},status:{type:`string`},warnings:{items:{type:`object`},type:`array`}},required:[`agent`,`changed`,`input`,`installed`,`ok`,`status`,`warnings`],type:`object`},type:`array`},scope:{type:`string`},summary:{type:`object`}},type:`object`},description:`Install result for one or more agents`,envelopeSchema:H,name:`install`,ndjsonEventSchema:U},{dataSchema:{additionalProperties:!1,properties:{agents:{items:{additionalProperties:!1,properties:{binaryName:{type:`string`},displayName:{type:`string`},installed:{type:`boolean`},installedVersion:{type:`string`},latestVersion:{type:`string`},lifecycle:{type:`string`},name:{type:`string`},sourceLabel:{type:`string`},updateLabel:{type:`string`}},required:[`binaryName`,`displayName`,`installed`,`lifecycle`,`name`,`sourceLabel`,`updateLabel`],type:`object`},type:`array`}},required:[`agents`],type:`object`},description:`Supported agent catalog`,envelopeSchema:H,name:`list`,ndjsonEventSchema:U},{dataSchema:{additionalProperties:!1,properties:{agent:{type:`object`},resolution:{additionalProperties:!1,properties:{binaryPath:{type:`string`},installGuidance:{additionalProperties:!1,properties:{docsRef:{type:`string`},installMethods:{items:{additionalProperties:!1,properties:{command:{type:`string`},label:{type:`string`},type:{type:`string`}},required:[`command`,`label`,`type`],type:`object`},type:`array`},suggestedAction:{type:`string`},suggestedEnsureCommand:{type:`string`}},required:[`docsRef`,`installMethods`,`suggestedAction`,`suggestedEnsureCommand`],type:`object`},installed:{type:`boolean`},installSource:{type:`string`},installedVersion:{type:`string`},lifecycle:{type:`string`},sourceLabel:{type:`string`},suggestedLaunchCommand:{items:{type:`string`},type:`array`}},required:[`binaryPath`,`installed`,`installSource`,`lifecycle`,`sourceLabel`,`suggestedLaunchCommand`],type:`object`}},required:[`agent`,`resolution`],type:`object`},description:`Resolved executable entrypoint for an agent`,envelopeSchema:H,name:`resolve`,ndjsonEventSchema:U},{dataSchema:{additionalProperties:!1,properties:{commands:{items:{additionalProperties:!1,properties:{dataSchema:{type:`object`},description:{type:`string`},envelopeSchema:{type:`object`},name:{type:`string`},ndjsonEventSchema:{type:`object`}},required:[`dataSchema`,`description`,`envelopeSchema`,`name`],type:`object`},type:`array`}},required:[`commands`],type:`object`},description:`Structured schema catalog`,envelopeSchema:H,name:`schema`,ndjsonEventSchema:U},{dataSchema:{additionalProperties:!1,properties:{results:{items:{additionalProperties:!1,properties:{displayName:{type:`string`},hint:{type:`string`},installedVersion:{type:`string`},latestVersion:{type:`string`},message:{type:`string`},name:{type:`string`},resource:{type:`string`},status:{type:`string`},strategy:{type:`string`}},required:[`displayName`,`name`,`status`],type:`object`},type:`array`},scope:{type:`string`}},required:[`results`,`scope`],type:`object`},description:`Update result for one or all agents`,envelopeSchema:H,name:`update`,ndjsonEventSchema:U},{dataSchema:{additionalProperties:!1,properties:{agent:{additionalProperties:!1,properties:{displayName:{type:`string`},name:{type:`string`}},required:[`displayName`,`name`],type:`object`},changed:{type:`boolean`}},required:[`agent`,`changed`],type:`object`},description:`Uninstall result for an agent`,envelopeSchema:H,name:`uninstall`,ndjsonEventSchema:U},{dataSchema:{additionalProperties:!1,properties:{canAutoUpdate:{type:`boolean`},channel:{type:`string`},currentVersion:{type:`string`},installSource:{type:`string`},latestVersion:{type:`string`},recoveryHint:{type:`string`},status:{type:`string`}},required:[`canAutoUpdate`,`channel`,`currentVersion`,`installSource`,`status`],type:`object`},description:`Quantex self-upgrade status`,envelopeSchema:H,name:`upgrade`,ndjsonEventSchema:U}],Ma=[{description:`Output structured JSON`,flags:`--json`,id:`json`,value:`boolean`},{description:`Output mode: human, json, or ndjson`,flags:`--output <mode>`,id:`output`,value:`string`},{description:`Disable interactive prompts and confirmations`,flags:`--non-interactive`,id:`nonInteractive`,value:`boolean`},{description:`Automatically accept safe default confirmations`,flags:`--yes`,id:`yes`,value:`boolean`},{description:`Suppress non-essential human logs`,flags:`--quiet`,id:`quiet`,value:`boolean`},{description:`Color mode: auto, always, or never`,flags:`--color <mode>`,id:`color`,value:`string`},{description:`Log level: silent, error, warn, info, or debug`,flags:`--log-level <level>`,id:`logLevel`,value:`string`},{description:`Show what would happen without making changes`,flags:`--dry-run`,id:`dryRun`,value:`boolean`},{description:`Refresh cached version metadata before returning results`,flags:`--refresh`,id:`refresh`,value:`boolean`},{commanderProperty:`cache`,description:`Bypass the local version cache for this command`,flags:`--no-cache`,id:`noCache`,negateCommanderValue:!0,value:`boolean`},{description:`Attach a run id to structured output and logs`,flags:`--run-id <id>`,id:`runId`,value:`string`},{description:`Deduplicate repeated mutating requests by client-supplied key`,flags:`--idempotency-key <key>`,id:`idempotencyKey`,value:`string`},{description:`Abort a command after the given duration, e.g. 500ms, 30s, 5m`,flags:`--timeout <duration>`,id:`timeout`,value:`string`}],Na=new Map(Ma.map(e=>[e.id,e])),Pa=new Map(ja.map(e=>[e.name,e])),Fa=[`json`,`output`,`quiet`,`color`,`logLevel`,`refresh`,`noCache`,`timeout`],Ia=[`json`,`output`,`yes`,`quiet`,`color`,`logLevel`,`dryRun`,`timeout`,`idempotencyKey`],La=[G({aliases:[],description:`查看当前环境与 surface 能力`,effects:[`filesystem`,`network`,`process`],globalOptions:[`json`,`output`,`nonInteractive`,`quiet`,`color`,`logLevel`,`refresh`,`noCache`,`timeout`],name:`capabilities`,summary:`Return environment and surface capabilities`}),G({aliases:[],description:`查看命令目录与稳定能力`,effects:[],globalOptions:[`json`,`output`,`quiet`,`color`,`logLevel`,`timeout`],name:`commands`,summary:`Return the stable command catalog`}),G({aliases:[],arguments:[{description:`Action: get, set, reset`,name:`action`,syntax:`[action]`},{description:`Config key`,name:`key`,syntax:`[key]`},{description:`Config value`,name:`value`,syntax:`[value]`}],catalogTokens:[`get`,`set`,`reset`],description:`配置管理`,effects:[`filesystem`,`mutation`],globalOptions:[`json`,`output`,`quiet`,`color`,`logLevel`,`timeout`],name:`config`,summary:`Read and modify Quantex configuration`}),G({aliases:[],description:`检查环境`,effects:[`filesystem`,`network`,`process`],globalOptions:Fa,name:`doctor`,summary:`Diagnose the current environment and installed tools`}),G({aliases:[],allowUnknownOptions:!0,arguments:[{description:`Agent name or alias`,name:`agent`,syntax:`<agent>`},{description:`Arguments passed through to the agent`,name:`args`,syntax:`[args...]`}],description:`以显式策略启动 agent`,effects:[`filesystem`,`interaction`,`mutation`,`network`,`process`],globalOptions:[`nonInteractive`,`yes`,`quiet`,`color`,`logLevel`,`dryRun`,`output`],name:`exec`,options:[{defaultValue:`never`,description:`Install policy: never, if-missing, always`,flags:`--install <policy>`,id:`install`,value:`string`}],summary:`Run an agent with explicit install policy`}),G({aliases:[],arguments:[{description:`Agent name or alias`,name:`agent`,syntax:`<agent>`}],description:`确保指定 agent 已安装`,effects:[`filesystem`,`interaction`,`mutation`,`network`,`process`],globalOptions:Ia,name:`ensure`,summary:`Ensure an agent is installed`}),G({aliases:[],arguments:[{description:`Agent name or alias`,name:`agent`,syntax:`<agent>`}],description:`查看 agent 详细信息`,effects:[`filesystem`,`network`,`process`],globalOptions:Fa,name:`info`,summary:`Show human-friendly agent details`}),G({aliases:[],arguments:[{description:`Agent name or alias`,name:`agent`,syntax:`<agent>`}],description:`查看 agent 结构化状态`,effects:[`filesystem`,`network`,`process`],globalOptions:Fa,name:`inspect`,summary:`Return structured agent state`}),G({aliases:[`i`],arguments:[{description:`Agent names or aliases`,name:`agents`,syntax:`<agents...>`}],description:`安装指定 agent`,effects:[`filesystem`,`interaction`,`mutation`,`network`,`process`],globalOptions:Ia,name:`install`,summary:`Install one or more agents`}),G({aliases:[`ls`],description:`列出所有支持的 agent`,effects:[`filesystem`,`network`,`process`],globalOptions:Fa,name:`list`,summary:`List supported agents`}),G({aliases:[],arguments:[{description:`Agent name or alias`,name:`agent`,syntax:`<agent>`}],description:`解析 agent 可执行入口`,effects:[`filesystem`,`network`,`process`],globalOptions:Fa,name:`resolve`,summary:`Resolve an agent executable entrypoint`}),G({aliases:[],arguments:[{description:`Optional command name`,name:`command`,syntax:`[command]`}],description:`查看结构化输出 schema`,effects:[],globalOptions:[`json`,`output`,`quiet`,`color`,`logLevel`,`timeout`],name:`schema`,summary:`Return structured output schemas`}),G({aliases:[`u`],arguments:[{description:`Agent name or alias`,name:`agent`,syntax:`[agent]`}],description:`更新指定 agent`,effects:[`filesystem`,`mutation`,`network`,`process`],globalOptions:[`json`,`output`,`quiet`,`color`,`logLevel`,`dryRun`,`refresh`,`noCache`,`timeout`,`idempotencyKey`],name:`update`,options:[{description:`Update all installed agents`,flags:`--all`,id:`all`,value:`boolean`}],summary:`Update one or all agents`}),G({aliases:[`rm`],arguments:[{description:`Agent name or alias`,name:`agent`,syntax:`<agent>`}],description:`卸载指定 agent`,effects:[`filesystem`,`mutation`,`process`],globalOptions:[`json`,`output`,`quiet`,`color`,`logLevel`,`dryRun`,`timeout`,`idempotencyKey`],name:`uninstall`,summary:`Uninstall an agent`}),G({aliases:[],description:`升级 Quantex CLI`,effects:[`filesystem`,`mutation`,`network`,`process`],globalOptions:[`json`,`output`,`quiet`,`color`,`logLevel`,`dryRun`,`refresh`,`noCache`,`timeout`,`idempotencyKey`],name:`upgrade`,options:[{description:`Only check whether an update is available`,flags:`--check`,id:`check`,value:`boolean`},{description:`Update channel: stable or beta`,flags:`--channel <channel>`,id:`channel`,value:`string`}],summary:`Upgrade Quantex CLI itself`})];function Ra(){return La}function za(){return Ma}function Ba(e){let t={...e};for(let n of Ma){let r=n.commanderProperty??n.id;r in e&&(t[n.id]=n.negateCommanderValue?e[r]===!1:e[r],r!==n.id&&delete t[r])}return t}function Va(e){return{flags:Wa(e),name:e.name,outputSchemaRef:`#/commands/${e.schema.name}`,stability:e.stability,summary:e.summary}}function Ha(e,t){let n=new Set,r=new Set;for(let t of e){if(n.has(t.name))throw Error(`Duplicate command name: ${t.name}`);n.add(t.name)}for(let t of e){let e=new Set,i=new Set,a=new Set,o=new Set;for(let e of t.aliases){if(n.has(e))throw Error(`Command alias collides with command name: ${e}`);if(r.has(e))throw Error(`Duplicate command alias: ${e}`);r.add(e)}for(let n of t.effects){if(e.has(n))throw Error(`Duplicate command effect: ${n}`);e.add(n)}for(let[e,n]of t.arguments.entries()){if(i.has(n.name))throw Error(`Duplicate command argument: ${t.name} ${n.name}`);if(i.add(n.name),n.syntax.includes(`...`)&&e!==t.arguments.length-1)throw Error(`Variadic command argument must be last: ${t.name} ${n.name}`)}let s=new Set;for(let e of t.globalOptions){let n=Na.get(e);if(!n)throw Error(`Unknown global option: ${t.name} ${e}`);let r=K(n.flags);if(s.has(r))throw Error(`Duplicate command global option: ${t.name} ${r}`);s.add(r)}for(let e of t.options){let n=K(e.flags);if(a.has(n))throw Error(`Duplicate command option: ${t.name} ${n}`);if(o.has(e.id))throw Error(`Duplicate command option id: ${t.name} ${e.id}`);if(s.has(n))throw Error(`Command option duplicates global option: ${t.name} ${n}`);Ga(e,t.name),a.add(n),o.add(e.id)}if((t.globalOptions.includes(`dryRun`)||t.globalOptions.includes(`idempotencyKey`)||t.options.some(e=>e.id===`dryRun`||e.id===`idempotencyKey`))&&!e.has(`mutation`)){let e=t.globalOptions.includes(`dryRun`)?`--dry-run`:`--idempotency-key`;throw Error(`Command effect mismatch: ${t.name} exposes ${e} without mutation`)}let c=Wa(t);if(c.length!==t.flags.length||c.some((e,n)=>e!==t.flags[n]))throw Error(`Command discovery option mismatch: ${t.name}`)}for(let t of e){if(!n.has(t.handlerId))throw Error(`Unresolved command handler: ${t.handlerId}`);if(!n.has(t.presenterId))throw Error(`Unresolved command presenter: ${t.presenterId}`)}let i=new Set(t);for(let t of e){if(!i.has(t.schemaName))throw Error(`Missing command schema: ${t.schemaName}`);if(t.schema.name!==t.schemaName)throw Error(`Command schema mismatch: ${t.name} ${t.schema.name}`)}}function G(e){let t=Ua(e.name),n={...e,arguments:e.arguments??[],catalogTokens:e.catalogTokens??[],flags:[],handlerId:e.name,options:e.options??[],presenterId:e.name,schema:t,schemaName:e.name,stability:`stable`};return{...n,flags:Wa(n)}}function Ua(e){let t=Pa.get(e);if(!t)throw Error(`Missing command schema: ${e}`);return t}function Wa(e){return[...e.catalogTokens,...e.options.map(e=>K(e.flags)),...e.globalOptions.map(t=>{let n=Na.get(t);if(!n)throw Error(`Unknown global option: ${e.name} ${t}`);return K(n.flags)})]}function K(e){let t=e.match(/--[a-z][a-z-]*/);if(!t)throw Error(`Command option requires a long flag: ${e}`);return t[0]}function Ga(e,t){let n=e.flags.includes(`<`)||e.flags.includes(`[`);if(e.value===`string`!==n)throw Error(`Command option value mismatch: ${t} ${K(e.flags)}`);if(e.value===`boolean`&&typeof e.defaultValue==`string`)throw Error(`Command option default mismatch: ${t} ${K(e.flags)}`)}const Ka=new Map(Ra().map(e=>[e.name,Xa(e.presenterId)]));function qa(e){return Ka.get(e)}function Ja(e,t,n,r,i,a){if(t===`json`){i(e?.serializeJson(n)??JSON.stringify(n,null,2));return}if(t===`ndjson`){a(e?.toResultEvent(n)??Za(n));return}e?e.presentHuman(n,r):r(n)}function Ya(e,t,n,r){if(t===`ndjson`)return r(e?.toEvent(n)??n)}function Xa(e){return{presenterId:e,presentHuman:(e,t)=>t(e),serializeJson:e=>JSON.stringify(e,null,2),toEvent:e=>e,toResultEvent:Za}}function Za(e){return{action:e.action,data:e,target:e.target,type:`result`}}const q=`quantex-cli`,Qa=`https://github.com/Drswith/quantex-cli`,$a=`1.1.3`;function eo(e){return e.replaceAll(`\\`,`/`).toLowerCase()}function to(e=n.execPath){if(u(eo(e)).endsWith(`.exe`))return`quantex-windows-x64.exe`;if(n.platform===`darwin`)return n.arch===`arm64`?`quantex-darwin-arm64`:`quantex-darwin-x64`;if(n.platform===`linux`)return n.arch===`arm64`?`quantex-linux-arm64`:`quantex-linux-x64`}function no(e=n.execPath){let t=to(e);if(t)return`${Qa}/releases/latest/download/${t}`}function ro(e,t,r=n.env){return e||(r.QUANTEX_UPDATE_CHANNEL===`beta`?`beta`:r.QUANTEX_UPDATE_CHANNEL===`stable`?`stable`:t===`beta`?`beta`:`stable`)}async function io(e,t,n){let r=await un(await ao(e,t,n),`self:manifest:${e}`,{context:t,networkPort:n});if(!r)throw Error(`Failed to download release manifest.`);return r}async function ao(e,t,n){if(e===`stable`)return`${Qa}/releases/latest/download/manifest.json`;let r=(await oo(e,t,n)).assets.find(e=>e.name===`manifest.json`);if(!r?.browser_download_url)throw Error(`No manifest.json asset was found for the ${e} release channel.`);return r.browser_download_url}async function oo(e,t,n){let r=co();if(!r)throw Error(`Failed to resolve the GitHub repository slug for Quantex releases.`);let i=await un(`https://api.github.com/repos/${r}/releases?per_page=20`,`self:github-releases`,{context:t,networkPort:n});if(!i)throw Error(`Failed to query GitHub releases.`);let a=i.find(t=>e===`beta`?t.prerelease:!t.prerelease);if(!a)throw Error(`No GitHub release was found for the ${e} channel.`);return a}function so(e,t=n.execPath){let r=n.platform,i=n.arch===`arm64`?`arm64`:`x64`,a=to(t);return e.assets.find(e=>e.platform===r&&e.arch===i&&(!a||e.name===a))}function co(){return Qa.match(/github\.com\/([^/]+\/[^/]+)$/)?.[1]}var lo=class extends Error{lockPath;resource;constructor(e,t){super(`Another quantex process is already using the ${e} lock.`),this.name=`ResourceLockError`,this.lockPath=t,this.resource=e}};function uo(e){return e instanceof lo}function fo(e){let t=e.map(e=>e.trim().replaceAll(/[^\w.-]+/g,`-`).replaceAll(/-+/g,`-`).replaceAll(/^-|-$/g,``)).filter(Boolean),n=t.length>0?t:[`default`],r=n.slice(0,-1),i=`${n.at(-1)}.lock`;return p(I(),`locks`,...r,i)}async function J(e){let t=fo(e.scope);return await ne(f(t),{recursive:!0}),await po(e.resource,t),async()=>{await v(t,{force:!0,recursive:!0})}}async function po(e,t){try{c(t,{recursive:!1}),mo(t);return}catch(e){if(!yo(e))throw e}if(!await ho(t))throw new lo(e,t);try{c(t,{recursive:!1}),mo(t)}catch(n){throw yo(n)?new lo(e,t):n}}function mo(e){l(p(e,`owner.json`),`${JSON.stringify({pid:n.pid,createdAt:new Date().toISOString()})}\n`,`utf8`)}async function ho(e){let t;try{t=await go(e)}catch{return!1}return t&&vo(t.pid)?!1:(await v(e,{force:!0,recursive:!0}),!0)}async function go(e){let t=Date.now()+100;for(;Date.now()<t;){let t=await _o(e);if(t)return t;await new Promise(e=>setTimeout(e,2))}return await _o(e)}async function _o(e){try{let t=await _(p(e,`owner.json`),`utf8`),n=JSON.parse(t);return typeof n.pid==`number`&&Number.isInteger(n.pid)&&n.pid>0?{pid:n.pid}:void 0}catch(e){if(bo(e))return;throw e}}function vo(e){try{return n.kill(e,0),!0}catch(e){return(typeof e==`object`&&e&&`code`in e?e.code:void 0)===`EPERM`}}function yo(e){return typeof e==`object`&&!!e&&`code`in e&&e.code===`EEXIST`}function bo(e){let t=typeof e==`object`&&e&&`code`in e?e.code:void 0;return t===`ENOENT`||t===`ENOTDIR`}async function xo(e,t){let n=await J(e);try{return await t()}finally{await n()}}var Y=class extends Error{constructor(e){super(e),this.name=`StateSchemaError`}};const So=new Set([`binary`,`brew`,`bun`,`cargo`,`deno`,`mise`,`npm`,`pip`,`script`,`uv`,`winget`]);function Co(){return{installedAgents:{},lifecycleReceipts:{},schemaVersion:2,self:{}}}function X(e){if(!Lo(e))throw new Y(`root value must be an object.`);let t=e.schemaVersion===void 0?`legacy`:`current`;if(t===`current`&&e.schemaVersion!==2)throw new Y(`unsupported schemaVersion "${String(e.schemaVersion)}".`);return{document:{installedAgents:Oo(e.installedAgents),lifecycleReceipts:t===`current`?Do(e.lifecycleReceipts):{},schemaVersion:2,self:Ao(e.self)},source:t}}function wo(e){return{installedAgents:e.installedAgents,self:e.self}}function To(e,t){let n=X(t).document;return{installedAgents:n.installedAgents,lifecycleReceipts:e.lifecycleReceipts,schemaVersion:2,self:n.self}}function Eo(e,t){if(!Lo(t))throw new Y(`lifecycle receipt "${e}" must be an object.`);if(t.kind!==`lifecycle-receipt`)throw new Y(`lifecycle receipt "${e}" has an invalid kind.`);if(t.schemaVersion!==1)throw new Y(`lifecycle receipt "${e}" has an unsupported schemaVersion.`);if(!Z(t.targetId)||t.targetId!==e)throw new Y(`lifecycle receipt "${e}" has an invalid targetId.`);if(!Z(t.providerId))throw new Y(`lifecycle receipt "${e}" has an invalid providerId.`);if(!Z(t.providerTargetId))throw new Y(`lifecycle receipt "${e}" has an invalid providerTargetId.`);if(t.providerTargetKind!==void 0&&!No(t.providerTargetKind))throw new Y(`lifecycle receipt "${e}" has an invalid providerTargetKind.`);if(!Fo(t.verifiedAt))throw new Y(`lifecycle receipt "${e}" has an invalid verifiedAt.`);return{...Z(t.executableName)?{executableName:t.executableName}:{},...Z(t.executablePath)?{executablePath:t.executablePath}:{},kind:`lifecycle-receipt`,providerId:t.providerId,providerTargetId:t.providerTargetId,...No(t.providerTargetKind)?{providerTargetKind:t.providerTargetKind}:{},schemaVersion:1,targetId:e,verifiedAt:t.verifiedAt,...Z(t.version)?{version:t.version}:{}}}function Do(e){if(!Lo(e))throw new Y(`lifecycleReceipts must be an object.`);return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,Eo(e,t)]))}function Oo(e){if(e===void 0)return{};if(!Lo(e))throw new Y(`installedAgents must be an object.`);return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,ko(e,t)]))}function ko(e,t){if(!Lo(t))throw new Y(`installed agent "${e}" must be an object.`);if(t.agentName!==e)throw new Y(`installed agent "${e}" has an invalid agentName.`);if(!jo(t.installType))throw new Y(`installed agent "${e}" has an invalid installType.`);let n={agentName:e,installType:t.installType};if(typeof t.binaryName==`string`&&(n.binaryName=t.binaryName),Array.isArray(t.packageInstallArgs)&&t.packageInstallArgs.every(Io)&&(n.packageInstallArgs=t.packageInstallArgs),typeof t.packageName==`string`){if(t.packageName.length===0&&B(t.installType))throw new Y(`installed agent "${e}" has an empty packageName.`);n.packageName=t.packageName}return Mo(t.packageTargetKind)&&(n.packageTargetKind=t.packageTargetKind),typeof t.command==`string`&&(n.command=t.command),n}function Ao(e){if(!Lo(e))return{};let t={...e};return Po(e.installSource)?t.installSource=e.installSource:delete t.installSource,typeof e.updateNoticeAt==`string`?t.updateNoticeAt=e.updateNoticeAt:delete t.updateNoticeAt,typeof e.updateNoticeVersion==`string`?t.updateNoticeVersion=e.updateNoticeVersion:delete t.updateNoticeVersion,t}function jo(e){return typeof e==`string`&&So.has(e)}function Mo(e){return e===`package`||e===`cask`||e===`id`}function No(e){return e===`binary`||e===`cask`||e===`formula`||e===`id`||e===`package`||e===`script`||e===`tool`}function Po(e){return e===`binary`||e===`bun`||e===`npm`||e===`source`||e===`unknown`}function Z(e){return typeof e==`string`&&e.length>0}function Fo(e){return Z(e)&&Number.isFinite(Date.parse(e))}function Io(e){return typeof e==`string`}function Lo(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Ro=class extends Error{backupFilePath;primaryError;recoveryError;constructor(e){super(`Failed to restore the original Quantex state after a persistence failure.`,{cause:e.recoveryError}),this.name=`StateRecoveryError`,this.backupFilePath=e.backupFilePath,this.primaryError=e.primaryError,this.recoveryError=e.recoveryError}},zo=class{constructor(e){this.options=e}async load(){let e=await this.readOptional(this.options.stateFilePath);return e===void 0?void 0:Vo(e)}async save(e){let t=X(e);if(t.source!==`current`)throw Error(`Refusing to persist an unversioned state document.`);let{backupFilePath:n,directoryPath:r,stateFilePath:i,tempFileSuffix:a}=this.options,o=`${n}.tmp-${a}`,s=`${i}.tmp-${a}`,c=`${i}.restore-${a}`,l=await this.readOptional(i),u=l===void 0?void 0:X(Vo(l)),d=`${JSON.stringify(t.document,null,2)}\n`,f=!1;await this.options.fileSystem.makeDirectory(r);try{l!==void 0&&u?.source===`legacy`&&(await this.options.fileSystem.writeText(o,l),await this.validateBackup(o,l),await this.options.fileSystem.rename(o,n),await this.validateBackup(n,l)),await this.options.fileSystem.writeText(s,d),Ho(await this.options.fileSystem.readText(s)),await this.options.fileSystem.rename(s,i),f=!0,Ho(await this.options.fileSystem.readText(i))}catch(e){let t;try{f&&await this.restoreOriginal(l,c,i)}catch(e){t=e}finally{await this.removeTemporaryFiles(o,s,c)}throw t===void 0?e:new Ro({backupFilePath:n,primaryError:e,recoveryError:t})}await this.removeTemporaryFiles(o,s,c)}async readOptional(e){try{return await this.options.fileSystem.readText(e)}catch(e){if(Uo(e))return;throw e}}async validateBackup(e,t){let n=await this.options.fileSystem.readText(e);if(n!==t)throw Error(`State migration backup does not match the original state.`);X(Vo(n))}async restoreOriginal(e,t,n){if(e===void 0){if(await this.options.fileSystem.remove(n),await this.readOptional(n)!==void 0)throw Error(`New state remained after rollback removal.`);return}await this.options.fileSystem.writeText(t,e),await this.options.fileSystem.rename(t,n);let r=await this.options.fileSystem.readText(n);if(r!==e)throw Error(`Restored state does not match the original state.`);X(Vo(r))}async removeTemporaryFiles(...e){await Promise.all(e.map(e=>this.options.fileSystem.remove(e).catch(()=>void 0)))}},Bo=class{constructor(e){this.persistence=e}async loadDocument(){let e=await this.persistence.load();return e===void 0?Co():X(e).document}async loadProjection(){return wo(await this.loadDocument())}async saveProjection(e){let t=To(await this.loadDocument(),e);await this.persistence.save(t)}async getReceipt(e){return(await this.loadDocument()).lifecycleReceipts[e]}async setReceipt(e){let t=Eo(e.targetId,e),n=await this.loadDocument(),r=X({...n,lifecycleReceipts:{...n.lifecycleReceipts,[t.targetId]:t}});if(r.source!==`current`)throw Error(`Verified lifecycle evidence must use the current state schema.`);await this.persistence.save(r.document)}async setAgentLifecycleEvidence(e,t){let n=Eo(t.targetId,t);if(e.agentName!==n.targetId)throw Error(`Installed agent state and lifecycle receipt must target the same agent.`);let r=await this.loadDocument(),i=X({...r,installedAgents:{...r.installedAgents,[e.agentName]:e},lifecycleReceipts:{...r.lifecycleReceipts,[n.targetId]:n}});if(i.source!==`current`)throw Error(`Verified lifecycle evidence must use the current state schema.`);await this.persistence.save(i.document)}async removeReceipt(e){let t=await this.loadDocument(),n={...t.lifecycleReceipts};delete n[e],await this.persistence.save({...t,lifecycleReceipts:n})}};function Vo(e){return JSON.parse(e)}function Ho(e){if(X(Vo(e)).source!==`current`)throw Error(`Persisted state validation did not produce a current document.`)}function Uo(e){let t=typeof e==`object`&&e&&`code`in e?e.code:void 0;return t===`ENOENT`||t===`ENOTDIR`}var Q=class extends Error{constructor(e,t){super(e,t),this.name=`StateFileError`}};const Wo={installedAgents:{},self:{}};function Go(){return p(I(),`state.json`)}async function Ko(){return os()}async function qo(e){let t=await J({resource:`state`,scope:[`state`]});try{await ss(e)}finally{await t()}}async function Jo(e){return(await Ko()).installedAgents[e]}async function Yo(e){try{return await ls().getReceipt(e)}catch(e){throw e instanceof Q?e:new Q(`Failed to read Quantex state file.`,{cause:e})}}async function Xo(e){let t=await J({resource:`state`,scope:[`state`]});try{await ls().setReceipt(e)}catch(e){throw e instanceof Q?e:new Q(`Failed to write Quantex state file.`,{cause:e})}finally{await t()}}async function Zo(e,t){let n=await J({resource:`state`,scope:[`state`]});try{await ls().setAgentLifecycleEvidence(e,t)}catch(e){throw e instanceof Q?e:new Q(`Failed to write Quantex state file.`,{cause:e})}finally{await n()}}async function Qo(e){let t=await J({resource:`state`,scope:[`state`]});try{await ls().removeReceipt(e)}catch(e){throw e instanceof Q?e:new Q(`Failed to write Quantex state file.`,{cause:e})}finally{await t()}}const $o=Object.freeze({read:Yo,remove:Qo,write:Xo});async function es(e){await ds(t=>{t.installedAgents[e.agentName]=e})}async function ts(e){await ds(t=>{delete t.installedAgents[e]})}async function ns(){return(await Ko()).self}async function rs(e){await ds(t=>{t.self.installSource=e})}async function is(){await ds(e=>{delete e.self.installSource})}async function as(e,t){await ds(n=>{n.self.updateNoticeVersion=e,n.self.updateNoticeAt=t})}async function os(){try{return await ls().loadProjection()}catch(e){if(us(e))return{...Wo};throw e instanceof Q?e:e instanceof Y?new Q(`Failed to read Quantex state file: ${e.message}`,{cause:e}):new Q(`Failed to read Quantex state file.`,{cause:e})}}async function ss(e){try{await ls().saveProjection(e)}catch(e){throw e instanceof Q?e:new Q(`Failed to write Quantex state file.`,{cause:e})}}const cs={async makeDirectory(e){await ne(e,{recursive:!0})},async readText(e){return _(e,`utf8`)},async remove(e){await v(e,{force:!0})},async rename(e,t){await ae(e,t)},async writeText(e,t){await se(e,t,`utf8`)}};function ls(){let e=Go();return new Bo(new zo({backupFilePath:`${e}.v1.bak`,directoryPath:I(),fileSystem:cs,stateFilePath:e,tempFileSuffix:String(n.pid)}))}function us(e){let t=typeof e==`object`&&e&&`code`in e?e.code:void 0;return t===`ENOENT`||t===`ENOTDIR`}async function ds(e){let t=await J({resource:`state`,scope:[`state`]});try{let t=await os();await e(t),await ss(t)}finally{await t()}}const fs=`self:install-source`,ps={clearInstallSource:is,getSelfState:ns,setInstallSource:rs};function ms(e=ps){return{async load(t){let n=hs(t.key,t.signal);if(n)return n;try{let t=(await e.getSelfState()).installSource;return _s(t===void 0?{kind:`missing`}:{kind:`found`,snapshot:{value:t}})}catch(e){return ys(`Failed to read the persisted self install source.`,e)}},async remove(t){let n=hs(t.key,t.signal);if(n)return n;try{return await e.clearInstallSource(),_s(void 0)}catch(e){return ys(`Failed to remove the persisted self install source.`,e)}},async save(t){let n=hs(t.key,t.signal);if(n)return n;if(!gs(t.value))return vs({kind:`invalid-data`,message:`The persisted self install source is invalid.`});try{return await e.setInstallSource(t.value),_s({})}catch(e){return ys(`Failed to persist the self install source.`,e)}}}}function hs(e,t){if(t.aborted)return vs({kind:`cancelled`,message:`Self install-source persistence was cancelled.`});if(e!==`self:install-source`)return vs({kind:`invalid-data`,message:`Unsupported self persistence key "${e}".`})}function gs(e){return e===`binary`||e===`bun`||e===`npm`||e===`source`||e===`unknown`}function _s(e){return{kind:`success`,value:e}}function vs(e){return{error:e,kind:`failure`}}function ys(e,t){return vs({details:{cause:t},kind:`failed`,message:e})}const bs=q,xs=`/node_modules/${bs}`;async function Ss(e){return ws(e,!0)}async function Cs(e){return ws(e,!1)}async function ws(e,t){let r=await js(),i=n.execPath,a=r.foundPackageJson?As(r.packageRoot):As(``,i),o=e?.persistence??ms(),s=e?.signal??new AbortController().signal,c=await Os(o,s),l=t?await Ds(c,a,{persistence:o,signal:s}):Ts(c,a),u=await tn(),d=ro(e?.updateChannel,u.selfUpdateChannel);return{canAutoUpdate:Es(l),currentVersion:r.version||`1.1.3`,executablePath:i,installSource:l,packageRoot:r.packageRoot,updateChannel:d}}function Ts(e,t){return t===`unknown`?e??t:t}function Es(e){return e===`binary`||e===`bun`||e===`npm`}async function Ds(e,t,n){if(t!==`unknown`&&e!==t){let e=await(n?.persistence??ms()).save({key:fs,signal:n?.signal??new AbortController().signal,value:t});return e.kind===`failure`&&ks(e.error),t}return Ts(e,t)}async function Os(e,t){let n=await e.load({key:fs,signal:t});if(n.kind===`failure`&&ks(n.error),n.value.kind===`missing`)return;let r=n.value.snapshot.value;if(r===`binary`||r===`bun`||r===`npm`||r===`source`||r===`unknown`)return r;throw Error(`The persisted self install source is invalid.`)}function ks(e){let t=e.details?.cause;throw t instanceof Error?t:e.kind===`cancelled`?new x({kind:`cancelled`,reason:e.message}):e.kind===`timed-out`?new x({kind:`timed-out`,timeoutMs:0}):Error(e.message)}function As(e,t=n.execPath){let r=Ps(e);return r.includes(`/.bun/install/global/`)?`bun`:r.includes(xs)?`npm`:r?`source`:Fs(t)?`binary`:`unknown`}async function js(e=import.meta.url){let t=Is(e),n=f(t);for(;;){let e=p(n,`package.json`),t=await Ns(e);if(t?.name===bs)return{foundPackageJson:!0,packageJsonPath:e,packageRoot:n,version:t.version??`1.1.3`};let r=f(n);if(r===n)break;n=r}return{foundPackageJson:!1,packageJsonPath:p(f(t),`package.json`),packageRoot:f(t),version:$a}}function Ms(){return $a}async function Ns(e){try{return JSON.parse(await _(e,`utf8`))}catch{return}}function Ps(e){return e.replaceAll(`\\`,`/`).toLowerCase()}function Fs(e){let t=u(Ps(e));return t!==`bun`&&t!==`bun.exe`}function Is(e){try{return le(e)}catch{return n.execPath}}async function Ls(){try{return await J({resource:`self upgrade`,scope:[`self-upgrade`]})}catch(e){if(uo(e))return;throw e}}function Rs(){return{async acquire(e){if(e.signal.aborted)return zs(`cancelled`,`Self-upgrade lock acquisition was cancelled.`);if(e.scope.length!==1||e.scope[0]!==`self-upgrade`)return zs(`unavailable`,`Unsupported self-upgrade lock scope: ${e.scope.join(`/`)}`);let t=await Ls();if(!t)return zs(`conflict`,`Another qtx upgrade is already running.`);if(e.signal.aborted)return await t(),zs(`cancelled`,`Self-upgrade lock acquisition was cancelled.`);let n=!1;return{kind:`success`,value:{async release(){if(n)return{kind:`success`,value:void 0};n=!0;try{return await t(),{kind:`success`,value:void 0}}catch(e){return zs(`failed`,e instanceof Error?e.message:`Failed to release self-upgrade lock.`)}}}}}}}function zs(e,t){return{error:{kind:e,message:t},kind:`failure`}}async function Bs(e,t,r=n.env,i=n.cwd()){if(e!==`bun`&&e!==`npm`)return;let a=F(r.QTX_SELF_UPDATE_REGISTRY);return a?{isOverride:!0,registry:a,source:`quantex-env`}:t.selfUpdateRegistry?{isOverride:!0,registry:t.selfUpdateRegistry,source:`quantex-config`}:await Vs(e,r,i)||{isOverride:!1,registry:Mt,source:`fallback`}}async function Vs(e,t,n){if(e===`bun`){let e=Hs(t,[`BUN_CONFIG_REGISTRY`,`NPM_CONFIG_REGISTRY`,`npm_config_registry`]);if(e)return{isOverride:!1,registry:e,source:`bun-env`};let r=await Us(n,t);if(r)return{isOverride:!1,registry:r,source:`bunfig`}}let r=Hs(t,[`NPM_CONFIG_REGISTRY`,`npm_config_registry`]);if(r)return{isOverride:!1,registry:r,source:`npm-env`};let i=await Gs(n,t);if(i)return{isOverride:!1,registry:i,source:`npmrc`}}function Hs(e,t){for(let n of t){let t=F(e[n]);if(t)return t}}async function Us(e,t){let n=Js(t),r=t.XDG_CONFIG_HOME,i=qs(e,`bunfig.toml`),a=[p(n,`.bunfig.toml`),r?p(r,`.bunfig.toml`):void 0];if(i){let e=await Ws(i);if(e)return e}for(let e of a){if(!e||!s(e))continue;let t=await Ws(e);if(t)return t}}async function Ws(e){try{return Ys(await _(e,`utf8`))}catch{return}}async function Gs(e,t){let n=Js(t),r=qs(e,`.npmrc`),i=p(n,`.npmrc`);if(r){let e=await Ks(r);if(e)return e}if(s(i))return Ks(i)}async function Ks(e){try{let t=(await _(e,`utf8`)).split(`
|
|
8
|
-
`).map(e=>e.trim());for(let e=t.length-1;e>=0;--e){let n=t[e];if(!n||n.startsWith(`#`)||n.startsWith(`;`))continue;let r=n.match(/^registry\s*=\s*(.+)$/);if(!r?.[1])continue;let i=F(r[1]);if(i)return i}}catch{}}function qs(e,t){let n=e;for(;;){let e=p(n,t);if(s(e))return e;let r=f(n);if(r===n)return;n=r}}function Js(e){return e.HOME||e.USERPROFILE||ce()}function Ys(e){let t=Xs(e,[/(?:^|\n)\s*install\.registry\s*=\s*["']([^"'#\n]+)["']/,/(?:^|\n)\s*install\.registry\s*=\s*\{\s*url\s*=\s*["']([^"'#\n]+)["']/,/(?:^|\n)\s*install\s*=\s*\{[\s\S]*?\bregistry\s*=\s*["']([^"'#\n]+)["'][\s\S]*?\}/,/(?:^|\n)\s*install\s*=\s*\{[\s\S]*?\bregistry\s*=\s*\{\s*url\s*=\s*["']([^"'#\n]+)["'][\s\S]*?\}[\s\S]*?\}/]);if(t)return F(t);let n=e.match(/(?:^|\n)\s*\[install\]\s*\n([\s\S]*?)(?=\n\s*\[[^\]]+\]|\s*$)/)?.[1];if(n)return F(Xs(n,[/(?:^|\n)\s*registry\s*=\s*["']([^"'#\n]+)["']/,/(?:^|\n)\s*registry\s*=\s*\{\s*url\s*=\s*["']([^"'#\n]+)["']/]))}function Xs(e,t){for(let n of t){let t=e.match(n)?.[1];if(t)return t}}function Zs(e){return`self:update-metadata:${e.installSource}:${e.updateChannel}`}function Qs(e){return{canAutoUpdate:!0,expiresAtMs:e.expiresAtMs,fetchedAtMs:e.fetchedAtMs,installSource:e.facts.installSource,schemaVersion:1,targetVersion:e.targetVersion,updateChannel:e.facts.updateChannel}}function $s(e,t){if(nc(e)&&e.schemaVersion===1&&!(e.canAutoUpdate!==!0||!t.facts.canAutoUpdate)&&!(e.installSource!==t.facts.installSource||e.updateChannel!==t.facts.updateChannel)&&!(typeof e.targetVersion!=`string`||Tn(e.targetVersion,e.targetVersion)!==0)&&!(!rc(e.fetchedAtMs)||!rc(e.expiresAtMs))&&!(e.fetchedAtMs>t.nowMs||e.expiresAtMs<=t.nowMs||e.fetchedAtMs>=e.expiresAtMs))return e}async function ec(e){let t=await e.cache.read({key:Zs(e.facts),signal:e.signal});if(!(t.kind===`failure`||t.value.kind===`miss`)&&!(t.value.expiresAtMs!==void 0&&t.value.expiresAtMs<=e.nowMs))return $s(t.value.value,e)}function tc(e){return e.cache.write({expiresAtMs:e.metadata.expiresAtMs,key:Zs(e.metadata),signal:e.signal,value:e.metadata})}function nc(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function rc(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}async function ic(e,t,n){let r=await tn();if(e.installSource===`binary`)try{let r=t?await io(e.updateChannel,t,n):await io(e.updateChannel,void 0,n),i=so(r,e.executablePath);return i?{binaryAsset:i,targetVersion:r.version}:{resolutionError:{detail:{channel:e.updateChannel},kind:`unsupported`,message:`No binary asset is available for the current platform on the ${e.updateChannel} channel.`}}}catch(t){if(S(t))throw t;return{resolutionError:{kind:`network`,message:`Failed to resolve the ${e.updateChannel} release manifest.`}}}let i=e.updateChannel===`beta`?`beta`:`latest`,a=await On(q,i,{...t?{context:t}:{},networkPort:n,registry:Mt});if(e.installSource===`bun`||e.installSource===`npm`){let o=await Bs(e.installSource,r);return{managedRegistry:o?.registry,managedRegistryIsOverride:o?.isOverride??!1,packageTag:i,targetVersion:await On(q,i,{...t?{context:t}:{},networkPort:n,registry:o?.registry}),upstreamLatestVersion:a,verificationCommand:fc(e.packageRoot)}}return{packageTag:i,targetVersion:a,upstreamLatestVersion:a}}async function ac(e){let t=e?.facts??await Ss({persistence:e?.persistencePort,signal:e?.context?.signal,updateChannel:e?.updateChannel}),n=e?.target??await ic(t,e?.context,e?.networkPort),r=n.targetVersion?En(n.targetVersion,t.currentVersion):!1,i={facts:t,status:lc(t,n,r),target:n,updateAvailable:r};if(e?.metadataCache&&t.canAutoUpdate&&n.targetVersion){let r=e.nowMs??Date.now(),i=e.metadataTtlMs??(await tn()).versionCacheTtlHours*60*60*1e3;await tc({cache:e.metadataCache,metadata:Qs({expiresAtMs:r+i,facts:t,fetchedAtMs:r,targetVersion:n.targetVersion}),signal:e.context?.signal??new AbortController().signal})}return i}function oc(e){return{canAutoUpdate:e.facts.canAutoUpdate,currentVersion:e.facts.currentVersion,executablePath:e.facts.executablePath,installSource:e.facts.installSource,latestVersion:e.target.targetVersion,managedRegistry:e.target.managedRegistry,managedRegistryIsOverride:e.target.managedRegistryIsOverride,packageRoot:e.facts.packageRoot,recommendedUpgradeCommand:e.facts.canAutoUpdate?`quantex upgrade`:void 0,upstreamLatestVersion:e.target.upstreamLatestVersion,updateChannel:e.facts.updateChannel}}async function sc(e,t,n){if(!t.success||e.facts.installSource!==`bun`&&e.facts.installSource!==`npm`)return t;let r=await uc(e,n);if(!r)return{error:{kind:`verify`,message:`Managed self-upgrade finished but Quantex could not verify the installed version afterwards.`},installSource:e.facts.installSource,success:!1};let i=t.newVersion??e.target.targetVersion;return i&&r!==i?{error:{detail:{expectedVersion:i,observedVersion:r},kind:`verify`,message:`Managed self-upgrade installed version ${r}, but expected ${i}.`},installSource:e.facts.installSource,success:!1}:!i&&r===e.facts.currentVersion&&e.target.targetVersion!==void 0?{error:{detail:{observedVersion:r},kind:`verify`,message:`Managed self-upgrade completed without changing the installed Quantex version.`},installSource:e.facts.installSource,success:!1}:{...t,newVersion:r}}function cc(e){let t={canAutoUpdate:e.canAutoUpdate,currentVersion:e.currentVersion,executablePath:e.executablePath,installSource:e.installSource,packageRoot:e.packageRoot,updateChannel:e.updateChannel},n={managedRegistry:e.managedRegistry,managedRegistryIsOverride:e.managedRegistryIsOverride,packageTag:e.updateChannel===`beta`?`beta`:`latest`,targetVersion:e.latestVersion,upstreamLatestVersion:e.upstreamLatestVersion,verificationCommand:fc(e.packageRoot)},r=e.latestVersion?En(e.latestVersion,e.currentVersion):!1;return{facts:t,status:lc(t,n,r),target:n,updateAvailable:r}}function lc(e,t,n){return e.canAutoUpdate?t.targetVersion&&!n?`up-to-date`:t.targetVersion?`update-available`:`check-unavailable`:`manual-required`}async function uc(e,t){let n=t?.process;if(n&&t){let r={...t,process:n};if(e.target.verificationCommand){let t=await dc(e.target.verificationCommand,r);if(t)return t}return dc([e.facts.executablePath,`--version`],r)}if(e.target.verificationCommand){let t=await Dn(e.facts.executablePath,{command:e.target.verificationCommand});if(t)return t}return Dn(e.facts.executablePath)}async function dc(e,t){let n=await t.process.run({argv:e,signal:t.signal,stdio:[`ignore`,`pipe`,`ignore`],timeoutMs:t.timeoutMs});if(n.kind===`failure`){if(n.error.kind===`cancelled`)throw new x({kind:`cancelled`,reason:n.error.message});if(n.error.kind===`timed-out`)throw new x({kind:`timed-out`,timeoutMs:t.timeoutMs??0});return}if(n.value.exitCode!==0||!n.value.stdout)return;let r=new TextDecoder().decode(n.value.stdout).trim().split(`
|
|
9
|
-
`)[0];if(r)return r.match(/v?(\d+\.\d+\.\d+(?:-[a-z0-9.]+)?)/i)?.[1]??r}function fc(e){if(e)return[n.execPath,p(e,`dist`,`cli.mjs`),`--version`]}async function pc(e,t,r,i,a=_c(t),o){let s=o?.networkPort,c=s&&o?await gc(e,{...o,networkPort:s}):await hc(e);if(c.kind===`failure`)return c.result;let l=c.binary;mc(o);let d=await re(p(f(t),`.quantex-upgrade-`)),m=p(d,u(t)),h=`${t}.bak`,g=!1,te=!1;try{mc(o);let s=await vc(t),c=Tc(l);if(c!==Ec(r))return $(`checksum`,`Checksum mismatch for ${e}. Expected ${Ec(r)}, got ${c}.`);if(await se(m,l),mc(o),n.platform===`win32`){let e=yc(m,t,h,d,i,a);return te=e.success,e}await ee(m,s),mc(o),await v(h,{force:!0}),await ae(t,h),g=!0,await ae(m,t);let u=await wc(t,i,o);return u.success?(g=!1,await v(h,{force:!0}),{success:!0}):(await Cc(h,t),g=!1,u)}catch(e){if(g){try{await Cc(h,t)}catch{}g=!1}if(e instanceof x)throw e;return $(Sc(e),`Failed to replace the current Quantex binary.`,e)}finally{(n.platform!==`win32`||!te)&&await v(d,{recursive:!0,force:!0})}}function mc(e){if(e?.signal.aborted)throw new x({kind:`cancelled`,reason:e.signal.reason instanceof Error?e.signal.reason.message:String(e.signal.reason??``)})}async function hc(e){let t;try{t=await fetch(e)}catch(t){return{kind:`failure`,result:$(`network`,`Failed to download ${e}.`,t)}}return t.ok?{binary:ue.from(await t.arrayBuffer()),kind:`success`}:{kind:`failure`,result:$(`network`,`Failed to download ${e}: HTTP ${t.status}.`)}}async function gc(e,t){let n=await t.networkPort.request({signal:t.signal,timeoutMs:t.timeoutMs,url:e});if(n.kind===`failure`){if(n.error.kind===`cancelled`)throw new x({kind:`cancelled`,reason:n.error.message});if(n.error.kind===`timed-out`)throw new x({kind:`timed-out`,timeoutMs:t.timeoutMs??0});return{kind:`failure`,result:$(`network`,`Failed to download ${e}.`,n.error)}}return n.value.status<200||n.value.status>=300?{kind:`failure`,result:$(`network`,`Failed to download ${e}: HTTP ${n.value.status}.`)}:{binary:ue.from(n.value.body),kind:`success`}}function _c(e){if(n.platform!==`win32`)return;let t=m.basename(e).toLowerCase();if(t===`qtx.exe`)return m.join(m.dirname(e),`quantex.exe`);if(t===`quantex.exe`)return m.join(m.dirname(e),`qtx.exe`)}async function vc(e){try{return(await oe(e)).mode&511}catch{return 493}}function yc(e,t,r,i,a,o){try{return C([`powershell.exe`,`-NoProfile`,`-NonInteractive`,`-ExecutionPolicy`,`Bypass`,`-WindowStyle`,`Hidden`,`-Command`,bc(e,t,r,i,n.pid,a,o)],{stdio:[`ignore`,`ignore`,`ignore`],windowsHide:!0}).unref(),{success:!0}}catch(e){return $(`locked`,`Failed to schedule Windows binary replacement.`,e)}}function bc(e,t,n,r,i,a,o){let s=xc(e),c=xc(t),l=xc(n),u=xc(r),d=xc(a??``),f=xc(o??``);return[`$ErrorActionPreference = 'Stop'`,`$pidToWait = ${i}`,`$tempPath = '${s}'`,`$targetPath = '${c}'`,`$backupPath = '${l}'`,`$tempDir = '${u}'`,`$expectedVersion = '${d}'`,`$peerPath = '${f}'`,`while (Get-Process -Id $pidToWait -ErrorAction SilentlyContinue) { Start-Sleep -Milliseconds 200 }`,`$backupReady = $false`,`for ($attempt = 0; $attempt -lt 50; $attempt++) {`,` try {`,` if (Test-Path -LiteralPath $backupPath) { Remove-Item -LiteralPath $backupPath -Force -ErrorAction SilentlyContinue }`,` Move-Item -LiteralPath $targetPath -Destination $backupPath -Force -ErrorAction Stop`,` $backupReady = $true`,` break`,` }`,` catch {`,` Start-Sleep -Milliseconds 200`,` }`,`}`,`if (-not $backupReady) {`,` Remove-Item -LiteralPath $tempDir -Force -Recurse -ErrorAction SilentlyContinue`,` exit 1`,`}`,`try {`,` Move-Item -LiteralPath $tempPath -Destination $targetPath -Force`,`}`,`catch {`,` if (Test-Path -LiteralPath $backupPath) {`,` Move-Item -LiteralPath $backupPath -Destination $targetPath -Force -ErrorAction SilentlyContinue`,` }`,` Remove-Item -LiteralPath $tempDir -Force -Recurse -ErrorAction SilentlyContinue`,` exit 1`,`}`,`if ($expectedVersion -ne '') {`,` $output = & $targetPath --version 2>$null`,` if ($LASTEXITCODE -ne 0 -or ($output -notmatch [regex]::Escape($expectedVersion))) {`,` Remove-Item -LiteralPath $targetPath -Force -ErrorAction SilentlyContinue`,` Move-Item -LiteralPath $backupPath -Destination $targetPath -Force`,` Remove-Item -LiteralPath $tempDir -Force -Recurse -ErrorAction SilentlyContinue`,` exit 1`,` }`,`}`,`if ($peerPath -ne '') {`,` Copy-Item -LiteralPath $targetPath -Destination $peerPath -Force`,`}`,`Remove-Item -LiteralPath $backupPath -Force -ErrorAction SilentlyContinue`,`Remove-Item -LiteralPath $tempDir -Force -Recurse -ErrorAction SilentlyContinue`].join(`; `)}function xc(e){return e.replaceAll(`'`,`''`)}function $(e,t,n){return{error:{detail:n,kind:e,message:t},success:!1}}function Sc(e){let t=typeof e==`object`&&e&&`code`in e?String(e.code):``;return t===`EACCES`||t===`EPERM`?`permission`:t===`EBUSY`?`locked`:`unknown`}async function Cc(e,t){await v(t,{force:!0}),await ae(e,t)}async function wc(e,t,n){if(!t)return{success:!0};try{if(n?.processPort){let r=await n.processPort.run({argv:[e,`--version`],signal:n.signal,stdio:[`ignore`,`pipe`,`ignore`],timeoutMs:n.timeoutMs});if(r.kind===`failure`){if(r.error.kind===`cancelled`)throw new x({kind:`cancelled`,reason:r.error.message});if(r.error.kind===`timed-out`)throw new x({kind:`timed-out`,timeoutMs:n.timeoutMs??0});return $(`verify`,`Failed to execute the upgraded Quantex binary for verification.`,r.error)}let i=r.value.stdout?new TextDecoder().decode(r.value.stdout):``;return r.value.exitCode===0?i.includes(t)?{success:!0}:$(`verify`,`The upgraded Quantex binary reported an unexpected version during verification.`):$(`verify`,`The upgraded Quantex binary exited with code ${r.value.exitCode} during verification.`)}let{exitCode:r,stdout:i}=await w(C([e,`--version`],{stdio:[`ignore`,`pipe`,`ignore`]}));return r===0?i.includes(t)?{success:!0}:$(`verify`,`The upgraded Quantex binary reported an unexpected version during verification.`):$(`verify`,`The upgraded Quantex binary exited with code ${r} during verification.`)}catch(e){if(e instanceof x)throw e;return $(`verify`,`Failed to execute the upgraded Quantex binary for verification.`,e)}}function Tc(t){return e(`sha256`).update(t).digest(`hex`)}function Ec(e){return e.trim().toLowerCase()}const Dc={source:`binary`,canHandle:e=>Oc(e)===`binary`,getRecoveryHint:(e,t)=>{let n=t?.error?.detail&&typeof t.error.detail==`object`&&`downloadUrl`in t.error.detail?String(t.error.detail.downloadUrl):no(e.executablePath);if(n)return t?.error?.kind===`locked`?`close other qtx processes and retry, or download and replace the binary from ${n}`:t?.error?.kind===`permission`?`check write permission for the current binary path, or download and replace the binary from ${n}`:t?.error?.kind===`network`?`check network access and retry, or download and replace the binary from ${n}`:`download and replace the binary from ${n}`},async upgrade(e,t){let n=e.target.binaryAsset;if(!n)return{error:e.target.resolutionError??{kind:`unsupported`,message:`No release artifact is available for the current platform and architecture.`},installSource:e.facts.installSource,success:!1};let r=_c(e.facts.executablePath),i=t?await pc(n.downloadUrl,e.facts.executablePath,n.checksum,e.target.targetVersion??`latest`,r,{networkPort:t.network,processPort:t.process,signal:t.signal,timeoutMs:t.timeoutMs}):await pc(n.downloadUrl,e.facts.executablePath,n.checksum,e.target.targetVersion??`latest`,r);return{...!i.success&&i.error?{...i,error:{...i.error,detail:{...typeof i.error.detail==`object`&&i.error.detail?i.error.detail:{},downloadUrl:n.downloadUrl}}}:i,installSource:e.facts.installSource,newVersion:i.success?e.target.targetVersion:void 0}}};function Oc(e){return`facts`in e?e.facts.installSource:e.installSource}async function kc(e,t){return t.process?(await jc(e,t,{forwardPipedOutput:!0,stdio:t.stdio}))?.exitCode===0:!1}async function Ac(e,t,n){if(!await kc(e,n))return!1;let r=await jc([`bun`,`pm`,`-g`,`untrusted`],n,{forwardPipedOutput:!1,stdio:[`ignore`,`pipe`,`pipe`]});return!r||r.exitCode!==0?!1:Zt(r.stdout?new TextDecoder().decode(r.stdout):``).has(t)?kc([`bun`,`pm`,`-g`,`trust`,t],n):!0}async function jc(e,t,n){if(!t.process)return;let r=await t.process.run({argv:e,forwardPipedOutput:n.forwardPipedOutput,signal:t.signal,stdio:n.stdio,timeoutMs:t.timeoutMs});if(r.kind===`success`)return r.value;if(r.error.kind===`cancelled`)throw new x({kind:`cancelled`,reason:r.error.message});if(r.error.kind===`timed-out`)throw new x({kind:`timed-out`,timeoutMs:t.timeoutMs??0})}const Mc={source:`bun`,canHandle:e=>Nc(e)===`bun`,getRecoveryHint:e=>`bun add -g ${q}@${e.updateChannel===`beta`?`beta`:`latest`}`,async upgrade(e,t){let n=e.target.packageTag??(e.facts.updateChannel===`beta`?`beta`:`latest`),r=t?.process?await Ac([`bun`,`add`,`-g`,...e.target.managedRegistry?[`--registry`,e.target.managedRegistry]:[],`${q}@${n}`],q,t):await Pt(q,n,e.target.managedRegistry);return{error:r?void 0:{kind:`unknown`,message:`Failed to update ${q} through Bun.`},installSource:e.facts.installSource,newVersion:r?e.target.targetVersion:void 0,success:r}}};function Nc(e){return`facts`in e?e.facts.installSource:e.installSource}const Pc={source:`npm`,canHandle:e=>Fc(e)===`npm`,getRecoveryHint:e=>`npm install -g ${q}@${e.updateChannel===`beta`?`beta`:`latest`}`,async upgrade(e,t){let n=e.target.packageTag??(e.facts.updateChannel===`beta`?`beta`:`latest`),r=t?.process?await kc([`npm`,`install`,`-g`,`${q}@${n}`,...e.target.managedRegistry?[`--registry`,e.target.managedRegistry]:[]],t):await Gr(q,n,e.target.managedRegistry);return{error:r?void 0:{kind:`unknown`,message:`Failed to update ${q} through npm.`},installSource:e.facts.installSource,newVersion:r?e.target.targetVersion:void 0,success:r}}};function Fc(e){return`facts`in e?e.facts.installSource:e.installSource}const Ic={source:`source`,canHandle:e=>{let t=`facts`in e?e.facts.installSource:e.installSource;return t===`source`||t===`unknown`},getRecoveryHint:()=>void 0,async upgrade(e){return{error:{kind:`unsupported`,message:`Install source "${e.facts.installSource}" does not support auto-update.`},installSource:e.facts.installSource,success:!1}}},Lc=[Mc,Pc,Dc,Ic];function Rc(e){return Lc.find(t=>t.canHandle(e))??Ic}function zc(e,t,n=`stable`){return Rc({canAutoUpdate:e===`binary`||e===`bun`||e===`npm`,currentVersion:``,executablePath:t,installSource:e,packageRoot:``,updateChannel:n})}function Bc(e,t,n=`stable`,r){return r?.error?.kind===`locked`?`another qtx upgrade is already running; wait for it to finish and retry`:zc(e,t,n).getRecoveryHint({canAutoUpdate:e===`binary`||e===`bun`||e===`npm`,currentVersion:``,executablePath:t,installSource:e,packageRoot:``,updateChannel:n},r)}function Vc(e,t){return t?.error?.kind===`locked`?`another qtx upgrade is already running; wait for it to finish and retry`:Rc(e).getRecoveryHint(e,t)}async function Hc(e){return oc(await ac({updateChannel:e?.updateChannel}))}async function Uc(e){let t=await Cs({updateChannel:e?.updateChannel});return oc(await ac({context:e?.context,facts:t}))}async function Wc(e,t={}){let n=await qc(e),r=t.lockPort?await t.lockPort.acquire({resource:`self upgrade`,scope:[`self-upgrade`],signal:t.signal??new AbortController().signal,timeoutMs:t.timeoutMs}):await Gc();if(r.kind===`failure`){if(r.error.kind===`cancelled`)throw new x({kind:`cancelled`});if(r.error.kind===`timed-out`)throw new x({kind:`timed-out`,timeoutMs:t.timeoutMs??0});return{error:{kind:r.error.kind===`conflict`?`locked`:`unknown`,message:r.error.message},installSource:n.facts.installSource,success:!1}}let i;try{let e=t.networkPort!==void 0||t.processPort!==void 0,r=t.signal??new AbortController().signal;i=await sc(n,await Rc(n).upgrade(n,e?{network:t.networkPort,process:t.processPort,signal:r,stdio:t.stdio,timeoutMs:t.timeoutMs}:void 0),t.processPort?{process:t.processPort,signal:r,timeoutMs:t.timeoutMs}:void 0)}catch(e){let t=await r.value.release();throw t.kind===`failure`?Error(`Self-upgrade failed and its lock could not be released: ${t.error.message}`,{cause:e}):e}let a=await r.value.release();if(a.kind===`failure`)throw Error(a.error.message);return i}async function Gc(){let e=await Ls();return e?{kind:`success`,value:{async release(){return await e(),{kind:`success`,value:void 0}}}}:{error:{kind:`conflict`,message:`Another qtx upgrade is already running.`},kind:`failure`}}function Kc(e,t=n.execPath){return Bc(e,t)}async function qc(e){return e?`facts`in e?e:e.installSource===`binary`?ac({facts:{canAutoUpdate:e.canAutoUpdate,currentVersion:e.currentVersion,executablePath:e.executablePath,installSource:e.installSource,packageRoot:e.packageRoot,updateChannel:e.updateChannel}}):cc(e):ac()}function Jc(e){return Qc({...e,error:null,ok:!0})}function Yc(e){return Qc({...e,ok:!1})}function Xc(e,t,n={}){let r=b();return r.cancelled&&!n.force||Ja(qa(e.action),r.outputMode,e,t,e=>console.log(e),e=>el(e)),e}function Zc(e,t={}){let n=b();if(!(n.cancelled&&!t.force))return Ya(qa(e.action),n.outputMode,e,e=>el(e))}function Qc(e){let t=b();return{action:e.action,data:e.data,error:e.error??null,exitCode:e.exitCode,meta:{fetchedAt:t.freshness?.fetchedAt,mode:t.outputMode,runId:t.runId,schemaVersion:`1`,source:t.freshness?.source,staleAfter:t.freshness?.staleAfter,timestamp:new Date().toISOString(),version:Ms()},ok:e.ok,target:e.target,warnings:e.warnings??[]}}function $c(e){let t=b();return{action:e.action,data:e.data,meta:{fetchedAt:t.freshness?.fetchedAt,mode:`ndjson`,runId:t.runId,schemaVersion:`1`,source:t.freshness?.source,staleAfter:t.freshness?.staleAfter,timestamp:new Date().toISOString(),version:Ms()},target:e.target,type:e.type}}function el(e){let t=$c(e);return tl(t),t}function tl(e){console.log(JSON.stringify(e))}const{createColors:nl,isColorSupported:rl}=de;function il(){let e=b().colorMode??`auto`;return nl(e===`always`?!0:e===`never`?!1:rl)}const al=new Proxy({},{get(e,t){let n=il(),r=n[t];return typeof r==`function`?r.bind(n):r}});export{ha as $,jt as $t,qo as A,mr as At,q as B,On as Bt,Yo as C,Zr as Ct,Ko as D,kr as Dt,$o as E,Ir as Et,as as F,Qn as Ft,Ha as G,nn as Gt,za as H,En as Ht,uo as I,Gn as It,Da as J,an as Jt,Ta as K,rn as Kt,xo as L,Tn as Lt,es as M,pr as Mt,Xo as N,or as Nt,ts as O,Or as Ot,rs as P,$n as Pt,ma as Q,F as Qt,to as R,kn as Rt,Jo as S,Qr as St,Go as T,Lr as Tt,Ba as U,I as Ut,Ra as V,An as Vt,Va as W,en as Wt,ga as X,Ht as Xt,Ea as Y,$t as Yt,pa as Z,Vt as Zt,As as _,b as _n,Ti as _t,Xc as a,tt as an,aa as at,ms as b,ge as bn,fi as bt,Uc as c,Ve as cn,ra as ct,Vc as d,w as dn,Ji as dt,it as en,va as et,oc as f,C as fn,qi as ft,Es as g,ve as gn,Ei as gt,Rs as h,Te as hn,Ni as ht,Zc as i,ot as in,oa as it,Zo as j,hr as jt,Qo as k,xr as kt,Wc as l,x as ln,B as lt,ec as m,Ie as mn,Bi as mt,Yc as n,at as nn,V as nt,Kc as o,et as on,ia as ot,ac as p,we as pn,Vi as pt,Oa as q,tn as qt,Jc as r,ct as rn,sa as rt,Hc as s,E as sn,na as st,al as t,ht as tn,_a as tt,Bc as u,S as un,ea as ut,Ms as v,ye as vn,vi as vt,ns as w,Wr as wt,Q as x,me as xn,ri as xt,Cs as y,he as yn,pi as yt,no as z,Dn as zt};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./commands-Bt5YKAxY.mjs";export{e as commandsCommand};
|
package/dist/config-CsJqP4-1.mjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{Gt as e,Jt as t,Kt as n,Qt as r,Yt as i,a,n as o,qt as s,r as c,t as l}from"./color-D55TE_Ws.mjs";async function u(l,u,f){if(!l)return a(c({action:`config`,data:{action:`list`,config:await s()},target:{kind:`config`}}),d);switch(l){case`get`:{if(!u)return a(o({action:`config`,error:{code:`INVALID_ARGUMENT`,message:`Please specify a key`},target:{kind:`config`}}),d);let e=(await s())[u];return a(c({action:`config`,data:{action:`get`,key:u,value:typeof e==`number`||typeof e==`string`?e:void 0},target:{kind:`config`,name:u}}),d)}case`set`:{if(!u||f===void 0)return a(o({action:`config`,error:{code:`INVALID_ARGUMENT`,message:`Please specify both key and value`},target:{kind:`config`}}),d);if(u===`defaultPackageManager`&&!e(f))return a(o({action:`config`,error:{code:`INVALID_ARGUMENT`,message:`defaultPackageManager must be bun, npm, or mise`},target:{kind:`config`,name:u}}),d);if(u===`npmBunUpdateStrategy`&&!n(f))return a(o({action:`config`,error:{code:`INVALID_ARGUMENT`,message:`npmBunUpdateStrategy must be latest-major or respect-semver`},target:{kind:`config`,name:u}}),d);if(u===`selfUpdateChannel`&&f!==`stable`&&f!==`beta`)return a(o({action:`config`,error:{code:`INVALID_ARGUMENT`,message:`selfUpdateChannel must be stable or beta`},target:{kind:`config`,name:u}}),d);if(u===`selfUpdateRegistry`&&!r(f))return a(o({action:`config`,error:{code:`INVALID_ARGUMENT`,message:`selfUpdateRegistry must be a valid absolute URL`},target:{kind:`config`,name:u}}),d);if([`networkRetries`,`networkTimeoutMs`,`versionCacheTtlHours`].includes(u)){let e=Number.parseInt(f,10);if(!Number.isInteger(e)||e<=0)return a(o({action:`config`,error:{code:`INVALID_ARGUMENT`,message:`${u} must be a positive integer`},target:{kind:`config`,name:u}}),d);f=`${e}`}let i={};try{i=await s()}catch{}return i[u]=[`networkRetries`,`networkTimeoutMs`,`versionCacheTtlHours`].includes(u)?Number.parseInt(f,10):u===`selfUpdateRegistry`?r(f):f,await t(i),a(c({action:`config`,data:{action:`set`,key:u,value:i[u]},target:{kind:`config`,name:u}}),d)}case`reset`:return await t(i),a(c({action:`config`,data:{action:`reset`,config:i},target:{kind:`config`}}),d);default:return a(o({action:`config`,error:{code:`INVALID_ARGUMENT`,details:{action:l},message:`Unknown action: ${l}`},target:{kind:`config`},warnings:[{code:`AVAILABLE_ACTIONS`,message:`Available actions: get, set, reset`}]}),d)}}function d(e){if(e.error){console.log(l.red(e.error.message));for(let t of e.warnings)console.log(t.message);return}if(e.data)switch(e.data.action){case`list`:console.log(l.bold(`
|
|
2
|
-
Current Configuration:
|
|
3
|
-
`)),console.log(JSON.stringify(e.data.config,null,2)),console.log();break;case`get`:console.log(e.data.value===void 0?l.gray(`(not set)`):String(e.data.value));break;case`set`:console.log(l.green(`Set ${e.data.key} = ${e.data.value}`));break;case`reset`:console.log(l.green(`Configuration reset to defaults.`));break}}export{u as configCommand};
|
package/dist/doctor-FlgVXfJ-.mjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./messages-qcLhD-Gc.mjs";import{B as n,Ht as r,a as i,c as a,cn as o,d as s,r as c,t as l}from"./color-D55TE_Ws.mjs";import{n as u,t as d}from"./provider-observations-eOUOsbo-.mjs";import{n as f}from"./lifecycle-observations-F8_4qbsU.mjs";import{t as p}from"./agent-inspection-CCNABDLw.mjs";async function m(){let n=o(),l,m,_;try{[l,m,_]=await n.run(()=>Promise.all([d({context:n.context}),a({context:n.context}),f(n.context)]))}finally{n.dispose()}let v=u(l,e=>e.availability.kind===`success`),{brew:y,bun:b,cargo:x,deno:S}=v,{mise:C,npm:w,pip:T,uv:E,winget:D}=v,O=m.latestVersion?r(m.latestVersion,m.currentVersion):!1,k=_.map(e=>({inspection:p(e),observation:e})),A=k.filter(({inspection:e})=>e.inPath).map(({inspection:e})=>({displayName:e.agent.displayName,installedVersion:e.installedVersion,latestVersion:e.latestVersion,lifecycle:e.lifecycle,outdated:!!(e.installedVersion&&e.latestVersion&&e.installedVersion!==e.latestVersion),sourceLabel:e.sourceLabel})),j=[],M=`docs/runbooks/quantex-troubleshooting.md`,N=`docs/runbooks/release-and-self-upgrade-debugging.md`;if(!b&&!w&&!y&&!x&&!S&&!C&&!T&&!E&&!D&&j.push({blocking:!0,category:`installers`,code:`NO_MANAGED_INSTALLER`,docsRef:M,message:`No managed installer found. Install bun, npm, brew, cargo, deno, mise, pip, uv, or winget before relying on managed lifecycle operations.`,severity:`warning`,subject:{kind:`system`},suggestedAction:`restore-managed-installer`,suggestedCommands:[]}),(m.installSource===`bun`&&!b||m.installSource===`npm`&&!w)&&j.push({blocking:!0,category:`self`,code:`SELF_INSTALLER_MISSING`,docsRef:N,message:`Quantex CLI is tracked as a ${m.installSource} install, but ${m.installSource} is not available in PATH. Reinstall that package manager or reinstall Quantex from a supported source.`,severity:`warning`,subject:{kind:`self`,name:`quantex`},suggestedAction:`restore-self-installer`,suggestedCommands:g(m.installSource,m.updateChannel)}),m.canAutoUpdate||j.push({blocking:!1,category:`self`,code:`SELF_AUTO_UPDATE_UNAVAILABLE`,docsRef:N,message:`Quantex CLI cannot auto-update from install source "${m.installSource}". Reinstall via bun, npm, or the standalone binary if you want \`quantex upgrade\` support.`,severity:`warning`,subject:{kind:`self`,name:`quantex`},suggestedAction:`reinstall-self-with-auto-update-source`,suggestedCommands:[]}),O&&m.recommendedUpgradeCommand){let e=s(m);j.push({blocking:!1,category:`self`,code:`SELF_UPDATE_AVAILABLE`,docsRef:N,message:e?`Quantex CLI ${m.currentVersion} is behind ${m.latestVersion}. Run ${m.recommendedUpgradeCommand} or follow: ${e}`:`Quantex CLI ${m.currentVersion} is behind ${m.latestVersion}. Run ${m.recommendedUpgradeCommand}.`,severity:`warning`,subject:{kind:`self`,name:`quantex`},suggestedAction:`run-self-upgrade`,suggestedCommands:[m.recommendedUpgradeCommand]})}for(let{inspection:n,observation:r}of k.filter(e=>e.inspection.inPath)){if(r.observation.drift.kind===`untracked`&&j.push({blocking:!1,category:`agent`,code:`AGENT_UNTRACKED_IN_PATH`,docsRef:M,message:`${n.agent.displayName} is available in PATH but not tracked as a managed Quantex install. Use \`quantex inspect ${n.agent.name} --json\` to confirm the source, then reinstall through Quantex if you want managed lifecycle operations.`,severity:`warning`,subject:{kind:`agent`,name:n.agent.name},suggestedAction:`inspect-agent-install-source`,suggestedCommands:[`quantex inspect ${n.agent.name} --json`,`quantex install ${n.agent.name}`]}),!(n.installedVersion&&n.latestVersion&&n.installedVersion!==n.latestVersion)||n.lifecycle===`managed`)continue;let i=t(n.agent,n.agent.selfUpdate?`self-update`:`manual-hint`)??e(n.agent);j.push({blocking:!1,category:`agent`,code:`AGENT_MANUAL_UPDATE_REQUIRED`,docsRef:M,message:`${n.agent.displayName} ${n.installedVersion} is behind ${n.latestVersion}, but the current source is ${n.sourceLabel}. ${i}`,severity:`warning`,subject:{kind:`agent`,name:n.agent.name},suggestedAction:n.agent.selfUpdate?`run-agent-self-update`:`follow-manual-agent-update`,suggestedCommands:n.agent.selfUpdate?[n.agent.selfUpdate.command.join(` `)]:[]})}return i(c({action:`doctor`,data:{agents:A,issues:j,installers:v,self:{canAutoUpdate:m.canAutoUpdate,currentVersion:m.currentVersion,installSource:m.installSource,latestVersion:m.latestVersion,outdated:!!O,recoveryHint:O?s(m):void 0}},target:{kind:`system`,name:`doctor`}}),h)}function h(e){if(e.data){if(console.log(l.bold(`
|
|
2
|
-
Quantex CLI Environment Check
|
|
3
|
-
`)),console.log(l.bold(`Managed Installers:`)),console.log(` Bun: ${e.data.installers.bun?l.green(`available`):l.red(`not found`)}`),console.log(` npm: ${e.data.installers.npm?l.green(`available`):l.red(`not found`)}`),console.log(` brew: ${e.data.installers.brew?l.green(`available`):l.red(`not found`)}`),console.log(` cargo: ${e.data.installers.cargo?l.green(`available`):l.red(`not found`)}`),console.log(` deno: ${e.data.installers.deno?l.green(`available`):l.red(`not found`)}`),console.log(` mise: ${e.data.installers.mise?l.green(`available`):l.red(`not found`)}`),console.log(` pip: ${e.data.installers.pip?l.green(`available`):l.red(`not found`)}`),console.log(` uv: ${e.data.installers.uv?l.green(`available`):l.red(`not found`)}`),console.log(` winget:${e.data.installers.winget?l.green(`available`):l.red(`not found`)}`),console.log(`\n${l.bold(`Quantex CLI:`)}`),console.log(` Version: ${e.data.self.currentVersion}`),console.log(` Source: ${e.data.self.installSource}`),console.log(` Auto-update: ${e.data.self.canAutoUpdate?l.green(`supported`):l.yellow(`unsupported`)}`),e.data.self.latestVersion&&console.log(` Latest: ${e.data.self.latestVersion}${e.data.self.outdated?l.yellow(` (update available)`):``}`),e.data.self.recoveryHint&&console.log(` Recovery: ${e.data.self.recoveryHint}`),console.log(`\n${l.bold(`Installed Agents:`)}`),e.data.agents.length===0)console.log(l.dim(` No agents installed`));else for(let t of e.data.agents)console.log(` ${t.displayName}: ${t.installedVersion??`unknown`} [${t.lifecycle}; ${t.sourceLabel}]${t.outdated?l.yellow(` (update available: ${t.latestVersion})`):``}`);if(console.log(`\n${l.bold(`Issues:`)}`),e.data.issues.length===0)console.log(l.green(` No issues found.`));else for(let t of e.data.issues)console.log(l.yellow(` - ${t.message}`)),t.suggestedCommands.length>0&&console.log(l.dim(` Next: ${t.suggestedCommands.join(` | `)}`));console.log()}}function g(e,t){let r=t===`beta`?`beta`:`latest`;return e===`bun`?[`bun add -g ${n}@${r}`]:e===`npm`?[`npm install -g ${n}@${r}`]:[]}export{m as doctorCommand};
|
package/dist/ensure-fBcWjPLH.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./ensure-zzTePhNS.mjs";export{e as ensureCommand};
|
package/dist/ensure-zzTePhNS.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as e,a as t,et as n,i as r,n as i,r as a,t as o}from"./color-D55TE_Ws.mjs";import{v as s}from"./provider-evidence-CcW0d2NQ.mjs";import{t as c}from"./agent-installation-DaFUJAc_.mjs";import{r as l}from"./lifecycle-observations-F8_4qbsU.mjs";import{n as u}from"./agents-DKvyp0t3.mjs";import{t as d}from"./lifecycle-errors-BXlHX_YF.mjs";import{a as f,i as p,n as m,r as h}from"./user-output-Dkv_5Lew.mjs";async function g(n){if(!u(n)||m())return _(n);try{return await s(()=>_(n))}catch(r){if(e(r))return t(i({action:`ensure`,...d(r,{kind:`agent`,name:n}),target:{kind:`agent`,name:n}}),C);throw r}}async function _(r){let a=await l(r);if(!a)return t(i({action:`ensure`,error:{code:`AGENT_NOT_FOUND`,details:{input:r},message:`Unknown agent: ${r}`},target:{kind:`agent`,name:r}}),C);let{agent:o}=a,s=a.pathExecutable.present,u=a.installedState,f=s&&!u?n(a.methods,a.resolvedBinaryPath??a.pathExecutable.path):void 0;if(s&&!u&&!f)return t(x(o),C);let p=u&&s?`satisfied`:f?`adopt`:`install`;if(m())return t(p===`satisfied`?b(o):y(o,p===`adopt`,!!u),C);p!==`satisfied`&&v(o);try{return t(S(o,p,await c({adoptableMethod:f,agent:o,observation:{inPath:s,installedState:u,lifecycle:a.observation,methods:a.methods},operation:`ensure`,route:p})),C)}catch(n){if(e(n))return t(i({action:`ensure`,data:{agent:{displayName:o.displayName,name:o.name},changed:!1,installed:s},...d(n,{kind:`agent`,name:o.name})}),C);throw n}}function v(e){r({action:`ensure`,data:{agent:{displayName:e.displayName,name:e.name}},target:{kind:`agent`,name:e.name},type:`started`})}function y(e,t,n){return a({action:`ensure`,data:{agent:{displayName:e.displayName,name:e.name},changed:!1,installed:t},target:{kind:`agent`,name:e.name},warnings:[{code:`DRY_RUN`,message:t?`Dry run: would record the existing ${e.displayName} install in Quantex state.`:n?`Dry run: would reinstall ${e.displayName} only if its recorded provider target is confirmed absent.`:`Dry run: would install ${e.displayName}.`}]})}function b(e){return a({action:`ensure`,data:{agent:{displayName:e.displayName,name:e.name},changed:!1,installed:!0},target:{kind:`agent`,name:e.name},warnings:[{code:`ALREADY_INSTALLED`,message:`${e.displayName} is already installed.`}]})}function x(e){return a({action:`ensure`,data:{agent:{displayName:e.displayName,name:e.name},changed:!1,installed:!0},target:{kind:`agent`,name:e.name},warnings:[{code:`UNTRACKED_EXISTING_INSTALL`,message:`${e.displayName} is already installed but not tracked by Quantex. Quantex could not safely determine the supported install source, so the existing install remains unmanaged.`}]})}function S(e,t,n){if(n.kind===`success`){if(t===`satisfied`)return b(e);let r=n.value.value.installedState;return a({action:`ensure`,data:{agent:{displayName:e.displayName,name:e.name},changed:n.value.changed,installState:n.value.changed?{installType:r.installType,packageName:r.packageName}:void 0,installed:!0},target:{kind:`agent`,name:e.name},warnings:t===`adopt`?[{code:`TRACKED_EXISTING_INSTALL`,message:`${e.displayName} is already installed. Quantex is now tracking the existing install.`}]:[]})}let r=n.kind===`cancelled`?{code:`CANCELLED`,message:`Ensure was cancelled before tracking could complete.`}:n.kind===`failed`&&n.reason===`receipt-write-failed`?{code:`INSTALL_FAILED`,details:{lifecycle:`state-write-failed`},message:`Failed to record verified state for ${e.displayName}.`}:n.kind===`failed`&&n.reason.endsWith(`-after-ensure`)||n.kind===`indeterminate`?{code:`INSTALL_FAILED`,details:{lifecycle:`verification-failed`},message:`${e.displayName} could not be verified after ensure completed.`}:{code:`INSTALL_FAILED`,message:`Failed to install ${e.displayName}.`};return i({action:`ensure`,data:{agent:{displayName:e.displayName,name:e.name},changed:!1,installed:!1},error:r,target:{kind:`agent`,name:e.name}})}function C(e){if(e.error){h(o.red(e.error.message));return}if(e.data){if(e.warnings.length>0){for(let t of e.warnings){if(t.code===`TRACKED_EXISTING_INSTALL`){p(o.green(t.message));continue}if(t.code===`DRY_RUN`){f(o.cyan(t.message));continue}f(o.yellow(t.message))}return}if(e.data.changed){p(o.cyan(`Installing ${e.data.agent.displayName}...`)),p(o.green(`${e.data.agent.displayName} is now installed.`));return}p(o.green(`${e.data.agent.displayName} is already installed.`))}}export{g as t};
|
package/dist/errors-BzuGM14H.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./errors-DXzIacfk.mjs";export{e as getExitCodeForResult};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./inspect-D-mA7LLF.mjs";export{e as inspectCommand};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as e,_n as t,a as n,et as r,i,n as a,r as o,t as s}from"./color-D55TE_Ws.mjs";import{v as c}from"./provider-evidence-CcW0d2NQ.mjs";import{t as l}from"./agent-installation-DaFUJAc_.mjs";import{r as u}from"./lifecycle-observations-F8_4qbsU.mjs";import{n as d}from"./agents-DKvyp0t3.mjs";import{t as f}from"./lifecycle-errors-BXlHX_YF.mjs";import{a as p,i as m,n as h,r as g}from"./user-output-Dkv_5Lew.mjs";import{o as _}from"./lifecycle-policy-Bkd-ZutQ.mjs";async function v(e){let r=_(Array.isArray(e)?e:[e]);if(r.length<=1)return n(await y(r[0],{emitStartedEvent:!0}),A);i({action:`install`,data:{scope:`batch`},target:{kind:`agent`},type:`started`});let s=[];for(let e of r){if(t().cancelled)break;let n=E(e,await y(e));if(s.push(n),i({action:`install`,data:n,target:{kind:`agent`,name:n.agent.name},type:`progress`}),t().cancelled)break}let c={results:s,scope:`batch`,summary:O(s)};return t().cancelled&&s.length<r.length?n(a({action:`install`,data:c,error:{code:`CANCELLED`,message:`Install was cancelled before all agents could be installed.`},target:{kind:`agent`}}),j):n(s.some(e=>!e.ok)?a({action:`install`,data:c,error:k(s),target:{kind:`agent`}}):o({action:`install`,data:c,target:{kind:`agent`}}),j)}async function y(n,r={}){if(t().cancelled||!d(n)||h())return b(n,r);try{return await c(()=>b(n,r))}catch(t){if(e(t))return a({action:`install`,...f(t,{kind:`agent`,name:n}),target:{kind:`agent`,name:n}});throw t}}async function b(n,i){if(t().cancelled)return a({action:`install`,error:{code:`CANCELLED`,message:`Install was cancelled before it could start.`},target:{kind:`agent`,name:n}});let o=await u(n);if(!o)return a({action:`install`,error:{code:`AGENT_NOT_FOUND`,details:{input:n},message:`Unknown agent: ${n}`},target:{kind:`agent`,name:n}});let{agent:s}=o,c=o.pathExecutable.present,d=o.installedState,p=c&&!d?r(o.methods,o.resolvedBinaryPath??o.pathExecutable.path):void 0;if(c&&!d&&!p)return w(s);let m=d&&c?`satisfied`:p?`adopt`:`install`;if(h())return m===`satisfied`?S(s):C(s,m===`adopt`,!!d);m!==`satisfied`&&T(s,i.emitStartedEvent);try{return x(s,m,await l({adoptableMethod:p,agent:s,observation:{inPath:c,installedState:d,lifecycle:o.observation,methods:o.methods},operation:`install`,route:m}))}catch(t){if(e(t))return a({action:`install`,data:{agent:{displayName:s.displayName,name:s.name},changed:!1,installed:c},...f(t,{kind:`agent`,name:s.name})});throw t}}function x(e,t,n){if(n.kind===`success`){if(t===`satisfied`)return S(e);let r=n.value.value.installedState;return o({action:`install`,data:{agent:{displayName:e.displayName,name:e.name},changed:n.value.changed,installState:{installType:r.installType,packageName:r.packageName},installed:!0},target:{kind:`agent`,name:e.name},warnings:t===`adopt`?[{code:`TRACKED_EXISTING_INSTALL`,message:`${e.displayName} is already installed. Quantex is now tracking the existing install.`}]:[]})}let r=n.kind===`cancelled`?{code:`CANCELLED`,message:`Install was cancelled before tracking could complete.`}:n.kind===`failed`&&n.reason===`receipt-write-failed`?{code:`INSTALL_FAILED`,details:{lifecycle:`state-write-failed`},message:`Failed to record verified state for ${e.displayName}.`}:n.kind===`failed`&&n.reason.endsWith(`-after-install`)||n.kind===`indeterminate`?{code:`INSTALL_FAILED`,details:{lifecycle:`verification-failed`},message:`${e.displayName} could not be verified after installation.`}:{code:`INSTALL_FAILED`,message:`Failed to install ${e.displayName}.`};return a({action:`install`,data:{agent:{displayName:e.displayName,name:e.name},changed:!1,installed:!1},error:r,target:{kind:`agent`,name:e.name}})}function S(e){return o({action:`install`,data:{agent:{displayName:e.displayName,name:e.name},changed:!1,installed:!0},target:{kind:`agent`,name:e.name},warnings:[{code:`ALREADY_INSTALLED`,message:`${e.displayName} is already installed.`}]})}function C(e,t,n){return o({action:`install`,data:{agent:{displayName:e.displayName,name:e.name},changed:!1,installed:t},target:{kind:`agent`,name:e.name},warnings:[{code:`DRY_RUN`,message:t?`Dry run: would record the existing ${e.displayName} install in Quantex state.`:n?`Dry run: would reinstall ${e.displayName} only if its recorded provider target is confirmed absent.`:`Dry run: would install ${e.displayName}.`}]})}function w(e){return o({action:`install`,data:{agent:{displayName:e.displayName,name:e.name},changed:!1,installed:!0},target:{kind:`agent`,name:e.name},warnings:[{code:`UNTRACKED_EXISTING_INSTALL`,message:`${e.displayName} is already installed but not tracked by Quantex. Quantex could not safely determine the supported install source, so the existing install remains unmanaged.`}]})}function T(e,t=!1){t&&i({action:`install`,data:{agent:{displayName:e.displayName,name:e.name}},target:{kind:`agent`,name:e.name},type:`started`})}function E(e,t){let n=t.data,r=t.warnings.map(e=>({code:e.code,message:e.message}));return{agent:n?.agent??{displayName:e,name:t.target?.name??e},changed:n?.changed??!1,error:t.error?{code:t.error.code,message:t.error.message}:void 0,input:e,installState:n?.installState,installed:n?.installed??!1,ok:t.ok,status:D(t),warnings:r}}function D(e){return e.ok?e.warnings.some(e=>e.code===`TRACKED_EXISTING_INSTALL`)?`tracked-existing-install`:e.warnings.some(e=>e.code===`UNTRACKED_EXISTING_INSTALL`)?`untracked-existing-install`:e.warnings.some(e=>e.code===`ALREADY_INSTALLED`)?`already-installed`:e.warnings.some(e=>e.code===`DRY_RUN`)?`planned`:`installed`:e.error?.code===`RESOURCE_LOCKED`?`locked`:`failed`}function O(e){let t={alreadyInstalled:0,failed:0,installed:0,locked:0,planned:0,trackedExistingInstall:0,untrackedExistingInstall:0};for(let n of e)switch(n.status){case`already-installed`:t.alreadyInstalled+=1;break;case`failed`:t.failed+=1;break;case`installed`:t.installed+=1;break;case`locked`:t.locked+=1;break;case`planned`:t.planned+=1;break;case`tracked-existing-install`:t.trackedExistingInstall+=1;break;case`untracked-existing-install`:t.untrackedExistingInstall+=1;break}return t}function k(e){let t=e.filter(e=>!e.ok),n=new Set(t.map(e=>e.error?.code));return n.size===1&&n.has(`RESOURCE_LOCKED`)?{code:`RESOURCE_LOCKED`,details:{failedAgents:t.map(e=>e.input)},message:`One or more agents could not be installed because another Quantex process is already using the agent lifecycle lock.`}:{code:`INSTALL_FAILED`,details:{failedAgents:t.map(e=>e.input)},message:`One or more agents failed to install.`}}function A(e){if(e.error){g(s.red(e.error.message));return}if(e.data){if(e.warnings.length>0){for(let t of e.warnings){if(t.code===`TRACKED_EXISTING_INSTALL`){m(s.green(t.message));continue}if(t.code===`DRY_RUN`){p(s.cyan(t.message));continue}p(s.yellow(t.message))}return}m(s.cyan(`Installing ${e.data.agent.displayName}...`)),m(s.green(`${e.data.agent.displayName} installed successfully!`))}}function j(e){if(!e.data){e.error&&g(s.red(e.error.message));return}for(let t of e.data.results)switch(t.status){case`installed`:m(s.cyan(`Installing ${t.agent.displayName}...`)),m(s.green(`${t.agent.displayName} installed successfully!`));break;case`tracked-existing-install`:m(s.green(M(t.warnings,`${t.agent.displayName} is already installed.`)));break;case`already-installed`:case`untracked-existing-install`:p(s.yellow(M(t.warnings,`${t.agent.displayName} is already installed.`)));break;case`planned`:p(s.cyan(M(t.warnings,`Dry run: would install ${t.agent.displayName}.`)));break;case`locked`:p(s.yellow(t.error?.message??`Another quantex process is already installing ${t.agent.displayName}.`));break;case`failed`:g(s.red(t.error?.message??`Failed to install ${t.agent.displayName}.`));break}N(e.data.summary)}function M(e,t){return e[0]?.message??t}function N(e){let t=[e.installed?`installed ${e.installed}`:void 0,e.alreadyInstalled?`already installed ${e.alreadyInstalled}`:void 0,e.trackedExistingInstall?`tracked existing ${e.trackedExistingInstall}`:void 0,e.untrackedExistingInstall?`untracked existing ${e.untrackedExistingInstall}`:void 0,e.failed?`failed ${e.failed}`:void 0,e.locked?`locked ${e.locked}`:void 0,e.planned?`planned ${e.planned}`:void 0].filter(Boolean);t.length>0&&m(s.bold(`Summary: ${t.join(`, `)}`))}export{v as installCommand};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Bt as e,C as t,Lt as n,Rt as r,S as i,Vt as a,cn as o,en as s,tn as c,tt as l,ut as u,zt as d}from"./color-D55TE_Ws.mjs";import{n as f,r as p}from"./agents-Dc-rbRUf.mjs";import{a as m,i as h,l as g,n as _,o as v,r as y,t as b}from"./provider-evidence-CcW0d2NQ.mjs";async function x(e,t){let[n,r,i]=await Promise.all([t.inspectExecutable(e),t.readInstalledState(e.name),t.readReceipt(e.name)]),a=t.clock(),o=y(e,t.platform),s=o.bindings,c=r?v(e,r):void 0,l=i?m(i):void 0,u=l??c,d={catalogMethods:s,executable:n,installedState:r,pathExecutable:n,persistedBinding:u,receipt:i};if(r&&!c||i&&!l)return{...d,capabilities:[],observation:w(e,a,`Persisted provider binding cannot be resolved.`)};if(c&&l&&!_(c,l,e.binaryName))return{...d,capabilities:[],observation:n.present?C(e,n,a,{kind:`conflicting-source`,observedProviderId:c.providerId,recordedProviderId:l.providerId}):{drift:{kind:`conflicting-source`,observedProviderId:c.providerId,recordedProviderId:l.providerId},kind:`absent`,observedAt:a,targetId:e.name}};let f=u;if(f){let o=await S(f,t),s=t.providerRegistry.getCapabilities(f.providerId);if(o.kind!==`success`)return{...d,binding:f,capabilities:s,observation:w(e,a,A(o)),providerOutcome:o};let c=o.value;if(!O(f,c))return{...d,binding:f,capabilities:s,observation:k(e,n,a),providerOutcome:o};if(c.kind===`absent`&&!n.present)return{...d,binding:f,capabilities:s,observation:{drift:{kind:`recorded-absent`},kind:`absent`,observedAt:a,targetId:e.name},providerOutcome:o};let l=c.kind!==(n.present?`present`:`absent`)||c.kind===`present`&&n.present&&c.executablePath!==void 0&&n.path!==void 0&&c.executablePath!==n.path||c.kind===`present`&&E(c.version,n.version)||i?.executablePath!==void 0&&n.path!==void 0&&i.executablePath!==n.path||D(e,r,i,f),u=T(n,c);return{...d,binding:f,capabilities:s,executable:u,observation:C(e,u,a,l?{kind:`conflicting-source`,observedProviderId:c.kind===`present`?f.providerId:void 0,recordedProviderId:f.providerId}:{kind:`none`},c.kind===`present`?f:void 0),providerOutcome:o}}let p=await Promise.all(s.map(async e=>({binding:e,outcome:await S(e,t)}))),h=p.find(e=>e.outcome.kind===`success`&&!O(e.binding,e.outcome.value));if(h)return{...d,capabilities:[],observation:k(e,n,a),providerOutcome:h.outcome};let g=p.filter(e=>e.outcome.kind===`success`&&e.outcome.value.kind===`present`),b=p.filter(e=>e.binding.providerId!==`binary`&&e.binding.providerId!==`script`),x=b.filter(e=>e.outcome.kind===`success`&&e.outcome.value.kind===`present`),M=b.some(e=>e.outcome.kind!==`success`),N=x.length>0?x:M?[]:g;if(N.length>1)return{...d,capabilities:[],observation:n.present?C(e,n,a,{kind:`conflicting-source`}):{drift:{kind:`conflicting-source`},kind:`indeterminate`,observedAt:a,reason:`Multiple catalog providers report the agent as present.`,targetId:e.name}};if(o.unresolvedCandidates.length>0)return{...d,capabilities:[],observation:w(e,a,`A catalog provider binding cannot be resolved.`)};let P=p.map(e=>e.outcome).find(j),F=p.map(e=>e.outcome).find(e=>e.kind===`cancelled`||e.kind===`timed-out`);if(F)return{...d,capabilities:[],observation:w(e,a,A(F)),providerOutcome:F};let I=N[0];if(I){let r=I.binding,i=I.outcome.value,o=T(n,i),s=!n.present||i.executablePath!==void 0&&n.path!==void 0&&i.executablePath!==n.path||E(i.version,n.version);return{...d,binding:r,capabilities:t.providerRegistry.getCapabilities(r.providerId),executable:o,observation:C(e,o,a,s?{kind:`conflicting-source`,observedProviderId:r.providerId}:{kind:`untracked`},r),providerOutcome:I.outcome}}let L=t.preferredCatalogBinding,R=L?p.find(t=>_(t.binding,L,e.binaryName)&&t.outcome.kind===`success`&&t.outcome.value.kind===`absent`):void 0;return!n.present&&g.length===0&&P&&R?{...d,capabilities:[],observation:{drift:{kind:`none`},kind:`absent`,observedAt:a,targetId:e.name},providerOutcome:R.outcome}:P?{...d,capabilities:[],observation:w(e,a,A(P)),providerOutcome:P}:{...d,capabilities:[],observation:n.present?C(e,n,a,{kind:`untracked`}):{drift:{kind:`none`},kind:`absent`,observedAt:a,targetId:e.name}}}async function S(e,t){try{return await(t.observeProvider??b)(e,{registry:t.providerRegistry,signal:t.signal,timeoutMs:t.timeoutMs})}catch(e){return{kind:`failed`,reason:M(e),retryable:!1}}}function C(e,t,n,r,i){return{drift:r,...t.path?{executablePath:t.path}:{},kind:`present`,observedAt:n,...i?{providerId:i.providerId,providerTargetId:i.target.id,providerTargetKind:i.target.kind}:{},targetId:e.name,...t.version?{version:t.version}:{}}}function w(e,t,n){return{drift:{kind:`indeterminate`,reason:n},kind:`indeterminate`,observedAt:t,reason:n,targetId:e.name}}function T(e,t){return t.kind===`absent`?e:{path:e.path??t.executablePath,present:!0,version:e.version??t.version}}function E(e,t){if(e===void 0||t===void 0)return!1;let r=n(e,t);return r===void 0?e!==t:r!==0}function D(e,t,n,r){let i=[e.binaryName,t?.binaryName,n?.executableName,r.target.binaryName].filter(e=>e!==void 0);return new Set(i).size>1}function O(e,t){return e.target.id===t.target.id&&e.target.kind===t.target.kind}function k(e,t,n){return t.present?C(e,t,n,{kind:`conflicting-source`}):{drift:{kind:`conflicting-source`},kind:`indeterminate`,observedAt:n,reason:`Provider evidence does not match the requested target identity.`,targetId:e.name}}function A(e){switch(e.kind){case`unsupported`:return e.reason??`Provider does not support ${e.operation}.`;case`unavailable`:case`failed`:case`indeterminate`:return e.reason;case`cancelled`:return e.reason??`Provider observation was cancelled.`;case`timed-out`:return`Provider observation timed out after ${e.timeoutMs}ms.`}}function j(e){return e.kind!==`success`}function M(e){return e instanceof Error&&e.message.trim().length>0?`Provider observation rejected: ${e.message.trim().slice(0,500)}`:`Provider observation rejected unexpectedly.`}function N(e,t={}){async function n(n){let r,i=()=>(r??=e.readInstalledState(n.name),r),a=await e.getOrderedInstallMethods(n),o=await e.observeAgentLifecycle(n,{clock:e.clock,inspectExecutable:async()=>e.inspectExecutable(n,await i()),platform:e.getPlatform(),preferredCatalogBinding:a[0]?h(n,a[0]):void 0,providerRegistry:e.providerRegistry,readInstalledState:i,readReceipt:e.readReceipt,signal:e.signal,timeoutMs:e.timeoutMs}),[s,c]=await Promise.all([t.resolveLatestVersion===!1?Promise.resolve(void 0):e.getLatestVersion(n,o.installedState,a),e.getResolvedBinaryPath(o.pathExecutable.path)]);return{agent:n,...o,latestVersion:s,methods:a,resolvedBinaryPath:c}}return{observeRegisteredAgents(){return Promise.all(e.getAllAgents().map(n))},async resolveAgentObservation(t){let r=e.getAgentByNameOrAlias(t);return r?n(r):void 0}}}function P(e,t){return t?I(t).resolveAgentObservation(e):L(t=>t.resolveAgentObservation(e))}function F(e){return e?I(e).observeRegisteredAgents():L(e=>e.observeRegisteredAgents())}function I(e,n={}){return N({clock:()=>new Date().toISOString(),getAllAgents:p,getAgentByNameOrAlias:f,getLatestVersion:(t,n,r)=>B(t,n,r,e),getOrderedInstallMethods:g,getPlatform:s,getResolvedBinaryPath:t=>a(t,e),inspectExecutable:(t,n)=>R(t,n,e),observeAgentLifecycle:x,providerRegistry:u,readInstalledState:i,readReceipt:t,signal:e.signal,timeoutMs:e.timeoutMs},n)}async function L(e){let t=o(),n=I(t.context);try{return await t.run(()=>e(n))}finally{t.dispose()}}async function R(e,t,n){let i=await c(e.binaryName,n);if(!i)return{present:!1};let[a,o]=await Promise.all([r(e.binaryName,n),z(e,t,n)]);return{path:a,present:i,version:o}}async function z(e,t,n){return d(e.binaryName,e.versionProbe,n)}async function B(t,n,r,i){let a=l(t,n,r);return a?e(a,`latest`,{context:i}):void 0}export{F as n,P as r,I as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Lt as e,cn as t,dt as n,tn as r}from"./color-D55TE_Ws.mjs";import{a as i,n as a,t as o}from"./provider-evidence-CcW0d2NQ.mjs";import{r as s}from"./lifecycle-observations-F8_4qbsU.mjs";import{n as c}from"./agents-DKvyp0t3.mjs";import{createHash as l}from"node:crypto";function u(e,t={}){let n=f(e.options??{});if(Array.isArray(n)||typeof n!=`object`||!n)throw TypeError(`Mutation options must be a JSON object.`);return{action:e.action,options:n,targets:[...new Set(e.targets)].sort(m)}}function d(e){return l(`sha256`).update(p(f(e)),`utf8`).digest(`hex`)}function f(e){if(e==null)return null;if(typeof e==`boolean`||typeof e==`string`)return e;if(typeof e==`number`){if(!Number.isFinite(e))throw TypeError(`Canonical numbers must be finite.`);return e}if(Array.isArray(e)){for(let t=0;t<e.length;t+=1)if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError(`Canonical arrays must not contain sparse positions.`);return e.map(f)}if(typeof e!=`object`)throw TypeError(`Unsupported canonical value: ${typeof e}`);let t=Object.getPrototypeOf(e);if(t!==Object.prototype&&t!==null)throw TypeError(`Canonical objects must be plain JSON objects.`);return Object.fromEntries(Object.keys(e).sort(m).flatMap(t=>{let n=e[t];return n===void 0?[]:[[t,f(n)]]}))}function p(e){return typeof e!=`object`||!e?JSON.stringify(e):Array.isArray(e)?`[${e.map(p).join(`,`)}]`:`{${Object.keys(e).sort(m).map(t=>`${JSON.stringify(t)}:${p(e[t])}`).join(`,`)}}`}function m(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let e=n.next(),t=r.next();if(e.done||t.done)return e.done===t.done?0:e.done?-1:1;let i=e.value.codePointAt(0)-t.value.codePointAt(0);if(i!==0)return i}}const ee=[`createdAt`,`expiresAt`,`postcondition`,`receipt`,`request`,`resolvedPlan`,`result`,`schemaVersion`],te=[`items`,`kind`,`schemaVersion`],ne=[`items`,`kind`];function h(e){if(e.length===0||!e.every(y))throw TypeError(`Receipt sets require at least one valid single-target receipt.`);return{items:fe(e,`Receipt sets must not contain duplicate receipts.`),kind:`receipt-set`,schemaVersion:1}}function g(e){if(e.length===0||!e.every(x))throw TypeError(`All-of postconditions require at least one valid single postcondition.`);return{items:fe(e,`All-of postconditions must not contain duplicate items.`),kind:`all-of`}}function re(e){if(!E(e))return _(`malformed-record`);if(!Object.hasOwn(e,`schemaVersion`))return _(`legacy-record`);if(e.schemaVersion!==1)return _(`unsupported-schema`);if(!O(e,ee))return _(`malformed-record`);if(!S(e.createdAt)||!S(e.expiresAt)||Date.parse(e.expiresAt)<=Date.parse(e.createdAt))return _(`invalid-timestamp`);let t=ie(e.result);if(t===`failed`)return _(`failed-result`);if(t===`malformed`||!v(e.request)||!v(e.resolvedPlan)||!v(e.receipt)||!v(e.postcondition))return _(`malformed-record`);if(!ce(e.request.payload)||!C(e.resolvedPlan.payload)||!le(e.receipt.payload)||!ue(e.postcondition.payload))return _(`invalid-payload`);for(let t of[e.request,e.resolvedPlan,e.receipt,e.postcondition])if(d(t.payload)!==t.fingerprint)return _(`fingerprint-mismatch`);return{kind:`valid`,record:e}}function _(e){return{kind:`invalid`,reason:e}}function ie(e){return!E(e)||!k(e,[`action`,`data`,`error`,`exitCode`,`meta`,`ok`,`target`,`warnings`])||!T(e.action)||!Object.hasOwn(e,`error`)||!Object.hasOwn(e,`ok`)||!ae(e.meta)||!Array.isArray(e.warnings)||!e.warnings.every(se)||Object.hasOwn(e,`exitCode`)&&e.exitCode!==void 0&&!Number.isInteger(e.exitCode)||Object.hasOwn(e,`target`)&&e.target!==void 0&&!oe(e.target)||Object.hasOwn(e,`data`)&&e.data!==void 0&&!w(e.data)?`malformed`:e.ok!==!0||e.error!==null||e.exitCode!==void 0&&e.exitCode!==0?e.ok===!1&&se(e.error)?`failed`:`malformed`:`valid`}function ae(e){return!E(e)||!k(e,[`fetchedAt`,`mode`,`runId`,`schemaVersion`,`source`,`staleAfter`,`timestamp`,`version`])?!1:(e.mode===`human`||e.mode===`json`||e.mode===`ndjson`)&&T(e.runId)&&T(e.schemaVersion)&&S(e.timestamp)&&T(e.version)&&(!Object.hasOwn(e,`fetchedAt`)||e.fetchedAt===void 0||S(e.fetchedAt))&&(!Object.hasOwn(e,`staleAfter`)||e.staleAfter===void 0||S(e.staleAfter))&&(!Object.hasOwn(e,`source`)||e.source===void 0||e.source===`cache`||e.source===`network`)}function oe(e){return E(e)&&k(e,[`kind`,`name`])&&(e.kind===`agent`||e.kind===`config`||e.kind===`self`||e.kind===`system`)&&(!Object.hasOwn(e,`name`)||e.name===void 0||T(e.name))}function se(e){return E(e)&&k(e,[`code`,`details`,`message`])&&T(e.code)&&T(e.message)&&(!Object.hasOwn(e,`details`)||e.details===void 0||C(e.details))}function v(e){return E(e)&&O(e,[`fingerprint`,`payload`])&&typeof e.fingerprint==`string`&&/^[0-9a-f]{64}$/.test(e.fingerprint)}function ce(e){return E(e)&&O(e,[`action`,`options`,`targets`])&&T(e.action)&&C(e.options)&&Array.isArray(e.targets)&&e.targets.every(T)?d(u({action:e.action,options:e.options,targets:e.targets}))===d(e):!1}function le(e){return C(e)?y(e)||b(e):!1}function y(e){return C(e)&&typeof e.schemaVersion==`number`&&Number.isInteger(e.schemaVersion)&&e.schemaVersion>=1&&T(e.providerId)&&T(e.targetId)&&(!Object.hasOwn(e,`version`)||e.version===void 0||T(e.version))}function b(e){return C(e)?O(e,te)&&e.kind===`receipt-set`&&e.schemaVersion===1&&de(e.items,y):!1}function ue(e){return!C(e)||!T(e.kind)?!1:e.kind===`all-of`?O(e,ne)&&de(e.items,x):x(e)}function x(e){if(!C(e)||!T(e.kind)||e.kind===`all-of`)return!1;switch(e.kind){case`package-absent`:case`package-present`:return T(e.providerId)&&T(e.targetId);case`executable-absent`:case`executable-present`:return T(e.executable);case`version-satisfies`:return T(e.expectedVersion)&&T(e.targetId);default:return!1}}function de(e,t){if(!Array.isArray(e)||e.length===0||!e.every(t))return!1;let n=e.map(d);return n.every((e,t)=>t===0||n[t-1]<e)}function fe(e,t){let n=e.map(e=>({fingerprint:d(e),item:e}));if(n.sort((e,t)=>e.fingerprint<t.fingerprint?-1:e.fingerprint>t.fingerprint?1:0),n.some((e,t)=>t>0&&n[t-1].fingerprint===e.fingerprint))throw TypeError(t);return n.map(e=>e.item)}function S(e){if(typeof e!=`string`)return!1;let t=Date.parse(e);return Number.isFinite(t)&&new Date(t).toISOString()===e}function C(e){return E(e)&&w(e)}function w(e,t=new WeakSet){if(e===null||typeof e==`boolean`||typeof e==`string`)return!0;if(typeof e==`number`)return Number.isFinite(e);if(typeof e!=`object`||t.has(e))return!1;t.add(e);try{if(Array.isArray(e)){let n=Reflect.ownKeys(e);if(!n.every(e=>typeof e==`string`)||n.length!==e.length+1)return!1;for(let n=0;n<e.length;n+=1){let r=Reflect.getOwnPropertyDescriptor(e,String(n));if(!D(r)||!w(r.value,t))return!1}return!0}return E(e)?Reflect.ownKeys(e).every(n=>{let r=Reflect.getOwnPropertyDescriptor(e,n);return D(r)&&w(r.value,t)}):!1}finally{t.delete(e)}}function T(e){return typeof e==`string`&&e.length>0}function E(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return(t===Object.prototype||t===null)&&Reflect.ownKeys(e).every(t=>typeof t==`string`&&D(Reflect.getOwnPropertyDescriptor(e,t)))}function D(e){return e!==void 0&&e.enumerable===!0&&Object.hasOwn(e,`value`)}function O(e,t){return Reflect.ownKeys(e).length===t.length&&k(e,t)&&t.every(t=>Object.hasOwn(e,t))}function k(e,t){let n=new Set(t);return Reflect.ownKeys(e).every(e=>typeof e==`string`&&n.has(e))}async function pe(e,t){let n=[],r=[];for(let i of e.targets){let e=i.outcome;if(e.kind!==`planned`){n.push({agentName:i.agentName,id:i.id,planning:e});continue}if(t.signal.aborted){r.push({agentName:i.agentName,id:i.id,planning:e,reason:z(t.signal)});continue}let a;try{a=await ve(e.planned,t)}catch(n){let r=t.classifyMutationLockError(n);a=r?{kind:`locked`,plan:e.planned,reason:r.reason,resource:r.resource}:{kind:`unexpected-failure`,plan:e.planned,reason:je(n)}}n.push({agentName:i.agentName,execution:a,id:i.id,planning:e})}return{cancellationRemainder:r,kind:`lifecycle-update-batch-outcome`,plan:e,results:n,success:r.length===0&&n.length===e.targets.length&&n.every(e=>me(e))}}function me(e){let t=e.execution?.kind;return t===`dry-run`||t===`not-executed`||t===`up-to-date`||t===`updated`||e.planning.kind===`blocked`&&[`manual-required`,`stale-state`,`untracked`].includes(e.planning.category)}async function he(e){let t=[...new Set(await e.listRegisteredAgentNames())].sort(L),n=[];for(let r of t){let t=await _e(r,e);ge(t)||n.push({agentName:r,id:N(r,t),outcome:t})}let r=new Map;for(let e of n){let t=Oe(e);if(!t)continue;let n=r.get(t)??[];n.push(e),r.set(t,n)}let i=[...r.entries()].sort(([e],[t])=>L(e,t)).map(([e,t])=>{let n=t[0].outcome;if(n.kind!==`planned`)throw Error(`Automatic update bucket contains a non-planned target.`);return{id:`update-bucket:${e};targets=${t.map(e=>e.id).join(`,`)}`,providerId:n.planned.binding.providerId,targets:t}}),a=`update-batch:targets=${n.map(e=>e.id).join(`,`)};buckets=${i.map(e=>e.id).join(`,`)}`;return{id:a,kind:`lifecycle-update-batch-plan`,providerBuckets:i,resolvedPlanId:a,targets:n}}function ge(e){if(e.kind===`unknown-agent`)return!1;let t=e.kind===`planned`?e.planned.before:e.before;return!t.executable.present&&t.installedState===void 0&&t.receipt===void 0}async function _e(e,t){let n=await t.observe(e);if(!n)return{agentName:e,kind:`unknown-agent`};if(t.signal.aborted)return{before:n,kind:`cancelled`,reason:z(t.signal)};let r=xe(n);if(!r){let e=n.observation.kind===`absent`&&n.observation.drift.kind===`recorded-absent`;return{before:n,category:e?`stale-state`:n.observation.drift.kind===`untracked`?`untracked`:`unsafe-source`,kind:`blocked`,reason:e?`${n.agent.displayName} has stale lifecycle evidence. Run \`quantex uninstall ${n.agent.name}\` to reconcile it.`:`The recorded update source does not match live provider evidence.`}}if(we(n.installedState)&&n.agent.selfUpdate){let e=A(n);return e?{kind:`planned`,planned:{before:n,beforeVersion:e,binding:r,commands:[n.agent.selfUpdate.command,...n.agent.selfUpdate.fallbackCommands??[]],planning:Te(n),strategy:`self-update`}}:{before:n,category:`manual-required`,kind:`blocked`,reason:`Cannot verify ${n.agent.displayName} self-update because its installed version is unknown.`}}let i=t.providerRegistry.get(r.providerId);if(!i?.resolveLatestVersion)return{before:n,category:`manual-required`,kind:`blocked`,reason:`Provider ${r.providerId} cannot resolve an update target version.`};let a=await i.resolveLatestVersion({context:M(t),target:r.target});if(a.kind!==`success`)return Ee(n,a);let o={capabilities:t.providerRegistry.getCapabilities(r.providerId),providerId:r.providerId,targetId:r.target.id,targetKind:r.target.kind},s=t.planLifecycleUpdate({intent:{kind:`update`,targetId:n.agent.name,targetVersion:a.value.version},observation:n.observation,provider:o});return{kind:`planned`,planned:{before:n,binding:r,plannedTargetVersion:a.value.version,planning:s,providerOptions:t.updateOptions,strategy:`managed-provider`}}}async function ve(e,t){if(e.planning.decision!==`upgrade`)return{kind:`not-executed`,plan:e};if(t.dryRun)return{kind:`dry-run`,plan:e};if(t.signal.aborted)return{kind:`cancelled`,plan:e,reason:z(t.signal)};let n=()=>ye(e,t);return t.withMutationLock?t.withMutationLock(n):n()}async function ye(e,t){if(e.strategy===`self-update`)return be(e,t);let n=t.providerRegistry.get(e.binding.providerId);if(!n?.update)return{kind:`provider-failed`,plan:e,providerOutcome:{kind:`unsupported`,operation:`update`,reason:`Provider ${e.binding.providerId} does not support update.`}};let r=await n.update({context:M(t),options:e.providerOptions,target:e.binding.target});if(r.kind===`timed-out`)return{kind:`timed-out`,plan:e,providerOutcome:r,timeoutMs:r.timeoutMs};if(r.kind===`cancelled`)return{kind:`cancelled`,plan:e,providerOutcome:r,reason:r.reason};if(r.kind!==`success`)return{kind:`provider-failed`,plan:e,providerOutcome:r};if(t.signal.aborted)return{kind:`cancelled`,plan:e,providerOutcome:r,reason:z(t.signal)};let i=await t.observe(e.before.agent.name);if(t.signal.aborted)return{after:i,kind:`cancelled`,plan:e,providerOutcome:r,reason:z(t.signal)};let a=Se(e,i);if(a.kind!==`satisfied`)return{after:i,kind:`verification-failed`,plan:e,providerOutcome:r,verification:a};let o=j(e,i,t.clock());try{await t.writeReceipt(o)}catch(t){return{after:i,kind:`receipt-failed`,plan:e,providerOutcome:r,reason:Ae(t),verification:a}}return{after:i,kind:`updated`,plan:e,providerOutcome:r,receipt:o,verification:a}}async function be(e,t){if(!t.executeSelfUpdate)return{kind:`provider-failed`,plan:e,providerOutcome:{kind:`unsupported`,operation:`update`,reason:`Self-update execution is unavailable.`}};let n=await t.executeSelfUpdate({commands:e.commands,context:M(t),target:e.binding.target});if(n.kind===`timed-out`)return{kind:`timed-out`,plan:e,providerOutcome:n,timeoutMs:n.timeoutMs};if(n.kind===`cancelled`)return{kind:`cancelled`,plan:e,providerOutcome:n,reason:n.reason};if(n.kind!==`success`)return{kind:`provider-failed`,plan:e,providerOutcome:n};if(t.signal.aborted)return{kind:`cancelled`,plan:e,providerOutcome:n,reason:z(t.signal)};let r=await t.observe(e.before.agent.name);if(t.signal.aborted)return{after:r,kind:`cancelled`,plan:e,providerOutcome:n,reason:z(t.signal)};let i=Ce(e,r);if(i.verification.kind!==`satisfied`)return{after:r,kind:`verification-failed`,plan:e,providerOutcome:n,verification:i.verification};let a=j(e,r,t.clock());try{await t.writeReceipt(a)}catch(t){return{after:r,kind:`receipt-failed`,plan:e,providerOutcome:n,reason:Ae(t),verification:i.verification}}return{after:r,kind:i.changed?`updated`:`up-to-date`,plan:e,providerOutcome:n,receipt:a,verification:i.verification}}function xe(e){let t=e.binding,n=e.persistedBinding,r=e.observation;if(!(!t||!n||r.kind!==`present`||r.drift.kind!==`none`)&&R(t,n,e.agent.binaryName)&&!(r.providerId!==t.providerId||r.providerTargetId!==t.target.id||r.providerTargetKind!==t.target.kind))return t}function Se(t,n){let r={expectedVersion:t.plannedTargetVersion,kind:`version-satisfies`,targetId:t.binding.target.id};if(!n)return{kind:`indeterminate`,postcondition:r,reason:`The agent disappeared after update.`};if(!R(t.binding,n.binding))return{kind:`unsatisfied`,observation:n.observation,postcondition:r,reason:`Fresh observation no longer matches the planned provider binding.`};if(n.observation.drift.kind!==`none`)return{kind:`unsatisfied`,observation:n.observation,postcondition:r,reason:`Fresh observation contains ${n.observation.drift.kind} drift.`};if(n.observation.kind!==`present`||!n.executable.present)return{kind:`unsatisfied`,observation:n.observation,postcondition:r,reason:`The provider target or executable is not present after update.`};let i=[n.observation.version,n.executable.version].filter(e=>e!==void 0),a=i[0];return a!==void 0&&i.some(t=>e(t,a)!==0)?{kind:`unsatisfied`,observation:n.observation,postcondition:r,reason:`Fresh observation contains conflicting versions: ${i.join(`, `)}.`}:a===void 0||i.some(n=>(e(n,t.plannedTargetVersion)??-1)<0)?{kind:`unsatisfied`,observation:n.observation,postcondition:r,reason:`Observed version ${a??`unknown`} does not satisfy target ${t.plannedTargetVersion}.`}:{kind:`satisfied`,observation:n.observation,postcondition:r}}function Ce(t,n){let r={expectedVersion:t.beforeVersion,kind:`version-satisfies`,targetId:t.binding.target.id};if(!n)return{changed:!1,verification:{kind:`indeterminate`,postcondition:r,reason:`The agent disappeared.`}};if(!R(t.binding,n.binding)||n.observation.drift.kind!==`none`)return{changed:!1,verification:{kind:`unsatisfied`,observation:n.observation,postcondition:r,reason:`Fresh observation no longer matches the recorded self-update source.`}};if(n.observation.kind!==`present`||!n.executable.present)return{changed:!1,verification:{kind:`unsatisfied`,observation:n.observation,postcondition:r,reason:`The executable is not present after self-update.`}};let i=A(n),a=i?e(i,t.beforeVersion):void 0;return!i||a===void 0||a<0?{changed:!1,verification:{kind:`unsatisfied`,observation:n.observation,postcondition:r,reason:`Observed version ${i??`unknown`} cannot verify self-update from ${t.beforeVersion}.`}}:{changed:a>0,verification:{kind:`satisfied`,observation:n.observation,postcondition:{expectedVersion:i,kind:`version-satisfies`,targetId:t.binding.target.id}}}}function A(t){let n=[t.observation.kind===`present`?t.observation.version:void 0,t.executable.version].filter(e=>e!==void 0),r=n[0];return r&&n.every(t=>e(t,r)===0)?r:void 0}function we(e){return e?.installType===`script`||e?.installType===`binary`}function Te(e){return{decision:`upgrade`,plan:{id:`self-update-${e.agent.name}`,intent:{kind:`update`,targetId:e.agent.name},kind:`lifecycle-plan`,observation:e.observation,steps:[]}}}function j(e,t,n){let r=t.observation;return{executableName:t.agent.binaryName,...r.executablePath?{executablePath:r.executablePath}:{},kind:`lifecycle-receipt`,providerId:e.binding.providerId,providerTargetId:e.binding.target.id,providerTargetKind:e.binding.target.kind,schemaVersion:1,targetId:e.before.agent.name,verifiedAt:n,version:r.version??t.executable.version}}function M(e){return{registerCleanup:e.registerCleanup,signal:e.signal,timeoutMs:e.timeoutMs}}function Ee(e,t){return t.kind===`cancelled`?{before:e,kind:`cancelled`,reason:t.reason}:t.kind===`timed-out`?{before:e,kind:`timed-out`,timeoutMs:t.timeoutMs}:{before:e,kind:`provider-failed`,providerOutcome:t}}function N(e,t){let n=`update-target:agent=${I(e)};outcome=${t.kind}`;if(t.kind===`planned`){let{binding:e,planning:r}=t.planned;if(t.planned.strategy===`self-update`)return`${n};strategy=self-update;provider=${I(e.providerId)};providerTargetKind=${I(e.target.kind)};providerTarget=${I(e.target.id)};binary=${I(e.target.binaryName)};beforeVersion=${I(t.planned.beforeVersion)};commands=${t.planned.commands.map(P).join(`|`)};plan=${I(r.plan.id)}`;let{plannedTargetVersion:i,providerOptions:a}=t.planned;return`${n};provider=${I(e.providerId)};providerTargetKind=${I(e.target.kind)};providerTarget=${I(e.target.id)};binary=${I(e.target.binaryName)};decision=${r.decision};plan=${I(r.plan.id)};version=${I(i)};${ke(a)}`}return t.kind===`unknown-agent`?`${n};agentName=${I(t.agentName)}`:t.kind===`blocked`?`${n};category=${t.category};reason=${I(t.reason)}`:t.kind===`cancelled`?`${n};reason=${I(t.reason)}`:t.kind===`timed-out`?`${n};timeoutMs=${t.timeoutMs}`:`${n};providerOutcome=${De(t.providerOutcome)}`}function De(e){switch(e.kind){case`unsupported`:return`unsupported;operation=${I(e.operation)};reason=${I(e.reason)}`;case`unavailable`:return`unavailable;command=${P(e.command)};reason=${I(e.reason)};retryable=${I(e.retryable)}`;case`failed`:return`failed;command=${P(e.command)};evidence=${F(e.evidence)};exitCode=${I(e.exitCode)};reason=${I(e.reason)};remediation=${I(e.remediation)};retryable=${I(e.retryable)}`;case`cancelled`:return`cancelled;reason=${I(e.reason)}`;case`timed-out`:return`timed-out;timeoutMs=${I(e.timeoutMs)}`;case`indeterminate`:return`indeterminate;evidence=${F(e.evidence)};reason=${I(e.reason)}`}}function P(e){return e?`argv:${e.map(I).join(`,`)}`:`undefined`}function F(e){return e?`items:${e.map(e=>`kind=${I(e.kind)}:value=${I(e.value)}`).sort(L).join(`,`)}`:`undefined`}function Oe(e){if(e.outcome.kind!==`planned`||e.outcome.planned.planning.decision!==`upgrade`)return;let t=e.outcome.planned;if(t.strategy===`managed-provider`)return`provider=${I(t.binding.providerId)};${ke(t.providerOptions)}`}function ke(e){return`distTag=${I(e?.distTag)};registry=${I(e?.registry)};updateStrategy=${I(e?.updateStrategy)}`}function I(e){return e===void 0?`undefined`:e===null?`null`:typeof e==`boolean`?e?`boolean:true`:`boolean:false`:typeof e==`number`?`number:${e}`:`string:${encodeURIComponent(e)}`}function L(e,t){return e<t?-1:e>t?1:0}function R(e,t,n){return!!(t&&t.providerId===e.providerId&&t.target.id===e.target.id&&t.target.kind===e.target.kind&&(t.target.binaryName??n)===(e.target.binaryName??n))}function z(e){if(e.reason!==void 0)return e.reason instanceof Error?e.reason.message:String(e.reason)}function Ae(e){return e instanceof Error&&e.message.trim()?e.message:`Failed to persist lifecycle receipt.`}function je(e){return e instanceof Error&&e.message.trim()?e.message:`Unexpected lifecycle update failure.`}function Me(e,t=e=>c(e)?.name){return[...u({action:`install`,targets:e.map(e=>t(e)??e)}).targets]}async function Ne(e,t){let n=await t.prepare(),r=n.kind===`planned`?n.planned.before.agent.name:c(e)?.name??e;return{async captureEvidence(){let e=t.getOutcome();if(!e)return;if(e.kind===`updated`||e.kind===`up-to-date`){let t=G(e.after,e.plan,e.receipt);return t.kind===`compatible`?t.evidence:void 0}if(e.kind!==`not-executed`||e.plan.planning.decision!==`up-to-date`)return;let n=await q(t.observe,r);if(n.kind===`failed`||!n.observation)return;let i=G(n.observation,e.plan);return i.kind===`compatible`?i.evidence:void 0},request:u({action:`update`,options:{requestedVersion:`latest`,scope:`single`},targets:[r]}),resolvedPlan:{kind:`agent-update`,planId:N(r,n),targetId:r},async validateLive(e){let n=Ue(e,r);if(!n)return{kind:`inconclusive`};let i=await q(t.observe,r);return i.kind===`failed`||!i.observation?{kind:`inconclusive`}:{kind:K(i.observation,n)}}}}async function Pe(e){let t=await e.prepare(),n=t.targets.map(e=>e.agentName);return{async captureEvidence(){let n=e.getOutcome();if(!n||n.plan!==t)return;let r=new Map(n.results.map(e=>[e.id,e])),i=[];for(let n of t.targets){if(n.outcome.kind!==`planned`)return;let t=r.get(n.id)?.execution,a;if(t?.kind===`updated`||t?.kind===`up-to-date`)a=G(t.after,t.plan,t.receipt);else if(t?.kind===`not-executed`&&t.plan.planning.decision===`up-to-date`){let r=await q(e.observe,n.agentName);if(r.kind===`failed`||!r.observation)return;a=G(r.observation,t.plan)}else return;if(a.kind!==`compatible`)return;i.push(a.evidence)}return{postcondition:g(i.map(e=>e.postcondition)),receipt:h(i.map(e=>e.receipt))}},request:u({action:`update`,options:{requestedVersion:`latest`,scope:`all`},targets:n}),resolvedPlan:{kind:`agent-update-batch`,planId:t.resolvedPlanId,targets:n},async validateLive(t){let r=We(t,n);if(!r)return{kind:`inconclusive`};let i=await Promise.all(n.map(async t=>{let n=await q(e.observe,t);return n.kind===`failed`||!n.observation?`inconclusive`:K(n.observation,r.get(t))}));return i.includes(`drifted`)?{kind:`drifted`}:i.includes(`inconclusive`)?{kind:`inconclusive`}:{kind:`satisfied`}}}}async function Fe(e,t={}){let n=t.observe??s,r=Me(e,t.resolveTarget),i=await Promise.all(r.map(e=>J(n,e)));return{async captureEvidence(){let e=await Promise.all(r.map(async e=>{let t=await J(n,e);return t.kind===`success`&&t.observation?H(t.observation):{kind:`inconclusive`}}));if(e.some(e=>e.kind!==`compatible`))return;let t=e.flatMap(e=>e.kind===`compatible`?[e.evidence]:[]);return{postcondition:g(t.map(e=>e.postcondition)),receipt:h(t.map(e=>e.receipt))}},request:u({action:`install`,targets:r}),resolvedPlan:{kind:`agent-presence-batch`,targets:i.map((e,t)=>({candidates:Re((e.kind===`success`?e.observation:void 0)?.catalogMethods.map(e=>({...e.target.binaryName?{binaryName:e.target.binaryName}:{},providerId:e.providerId,targetId:e.target.id,targetKind:e.target.kind}))??[]),targetId:r[t]}))},async validateLive(e){let t=Ie(e,r);if(!t)return{kind:`inconclusive`};let i=await Promise.all(r.map(async e=>{let r=await J(n,e);if(r.kind===`failed`||!r.observation)return`inconclusive`;let i=t.get(e),a=H(r.observation,i.receipt);return a.kind===`compatible`?d(a.evidence.postcondition)===d(i.postcondition)&&d(a.evidence.receipt)===d(i.receipt)?`satisfied`:`drifted`:a.kind}));return i.includes(`drifted`)?{kind:`drifted`}:i.includes(`inconclusive`)?{kind:`inconclusive`}:{kind:`satisfied`}}}}function Ie(e,t){if(e.postcondition.kind!==`all-of`||!b(e.receipt)||!Le(e.postcondition)||e.postcondition.items.length!==t.length||e.receipt.items.length!==t.length)return;let n=B(e.postcondition.items),r=B(e.receipt.items);if(!n||!r||!V(n,t)||!V(r,t))return;let i=new Map;for(let e of t){let t=n.get(e),a=r.get(e);if(t.kind!==`package-present`||t.providerId!==a.providerId||t.targetId!==a.targetId)return;i.set(e,{postcondition:t,receipt:a})}return i}function Le(e){try{return d(g(e.items))===d(e)}catch{return!1}}function B(e){let t=new Map;for(let n of e){let e=n.agentTargetId;if(typeof e!=`string`||e.length===0||t.has(e))return;t.set(e,n)}return t}function V(e,t){return e.size===t.length&&t.every(t=>e.has(t))}function Re(e){return[...e].sort((e,t)=>{let n=[e.providerId,e.targetKind,e.targetId,e.binaryName??``],r=[t.providerId,t.targetKind,t.targetId,t.binaryName??``];for(let e=0;e<n.length;e+=1){let t=ze(n[e],r[e]);if(t!==0)return t}return 0})}function ze(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let e=n.next(),t=r.next();if(e.done||t.done)return e.done===t.done?0:e.done?-1:1;let i=e.value.codePointAt(0)-t.value.codePointAt(0);if(i!==0)return i}}async function Be(e,t={}){let n=t.observe??s,i=await n(e),a=i?.agent.name??e,o=i?Ge(i):void 0,c=t.observeProviderTarget??Je,l=t.isExecutablePresent??r;return{async captureEvidence(){if(o&&Xe(await Y(c,o.binding),o.binding)&&await Ye(l,o.executableName)===!1)return qe(o)},request:u({action:`uninstall`,targets:[a]}),resolvedPlan:{kind:`agent-absence`,targetId:a},async validateLive(e){if(!Q(e))return{kind:`inconclusive`};let t=Ke({postcondition:e.postcondition,receipt:e.receipt},a);if(!t)return{kind:`inconclusive`};let r=await J(n,a);if(r.kind===`failed`||!r.observation)return{kind:`inconclusive`};let i=Ve(r.observation);if(i!==`clear`)return{kind:i};let o=await Y(c,t.binding);if(o.kind!==`success`||!X(t.binding,o.value))return{kind:`inconclusive`};if(o.value.kind===`present`)return{kind:`drifted`};let s=await Ye(l,t.executableName);return s===void 0?{kind:`inconclusive`}:s?{kind:`drifted`}:{kind:`satisfied`}}}}function Ve(e){return e.observation.kind===`indeterminate`||e.observation.drift.kind===`indeterminate`||e.observation.drift.kind===`conflicting-source`||e.providerOutcome!==void 0&&e.providerOutcome.kind!==`success`||e.binding&&(e.providerOutcome?.kind!==`success`||!X(e.binding,e.providerOutcome.value))?`inconclusive`:e.receipt||e.installedState||e.persistedBinding||e.binding||e.observation.kind===`present`||e.executable.present||e.pathExecutable.present?`drifted`:`clear`}async function He(e,t,n={}){let r=await(n.observe??s)(t),i=r?.agent.name??t;return{async captureEvidence(){let e=await(n.observe??s)(i);if(!e)return;let t=H(e);return t.kind===`compatible`?t.evidence:void 0},request:u({action:e,targets:[i]}),resolvedPlan:{candidates:r?.catalogMethods.map(e=>({...e.target.binaryName?{binaryName:e.target.binaryName}:{},providerId:e.providerId,targetId:e.target.id,targetKind:e.target.kind}))??[],kind:`agent-presence`,targetId:i},async validateLive(e){if(!Q(e))return{kind:`inconclusive`};let t=await(n.observe??s)(i);if(!t)return{kind:`inconclusive`};let r=H(t,e.receipt);return r.kind===`compatible`?d(r.evidence)===d(e)?{kind:`satisfied`}:{kind:`drifted`}:{kind:r.kind}}}}function H(e,t){let{agent:n,binding:r,observation:i,providerOutcome:a,receipt:o}=e;if(i.kind===`indeterminate`||i.drift.kind===`indeterminate`||a===void 0||a.kind!==`success`)return{kind:`inconclusive`};if(i.kind!==`present`||i.drift.kind!==`none`||!e.executable.present||!r||!o||a.value.kind!==`present`||i.providerId!==r.providerId||i.providerTargetId!==r.target.id||o.targetId!==n.name||o.providerId!==r.providerId||o.providerTargetId!==r.target.id||o.providerTargetKind!==void 0&&o.providerTargetKind!==r.target.kind||a.value.target.id!==r.target.id||a.value.target.kind!==r.target.kind)return{kind:`drifted`};let s=U([e.executable.version,i.version,a.value.version]);if(s.length>1)return{kind:`drifted`};let c=U([o.version,t?.version]);if(c.length>1)return{kind:`drifted`};let l=c[0];if(l!==void 0&&s.some(e=>e!==l))return{kind:`drifted`};if(l!==void 0&&s.length===0)return{kind:`inconclusive`};let u=U([e.executable.path,i.executablePath,a.value.executablePath]);if(u.length>1)return{kind:`drifted`};let d=U([o.executablePath,W(t,`executablePath`)]);if(d.length>1)return{kind:`drifted`};let f=d[0];if(f!==void 0&&u.some(e=>e!==f))return{kind:`drifted`};if(f!==void 0&&e.executable.path===void 0)return{kind:`inconclusive`};let p=f??u[0],m=l??s[0];return{evidence:{postcondition:{agentTargetId:n.name,kind:`package-present`,providerId:r.providerId,targetId:r.target.id},receipt:{agentTargetId:n.name,executableName:o.executableName??n.binaryName,...p?{executablePath:p}:{},providerId:r.providerId,providerTargetKind:r.target.kind,schemaVersion:o.schemaVersion,targetId:r.target.id,...m?{version:m}:{}}},kind:`compatible`}}function U(e){return[...new Set(e.filter(e=>e!==void 0))]}function W(e,t){let n=e?.[t];return typeof n==`string`?n:void 0}function Ue(t,n){if(!Q(t)||t.postcondition.kind!==`version-satisfies`)return;let r=W(t.receipt,`agentTargetId`),i=Z(t.postcondition,`agentTargetId`),a=Z(t.postcondition,`providerId`),o=Z(t.postcondition,`providerTargetKind`),s=W(t.receipt,`providerTargetKind`),c=t.receipt.providerId;if(!(t.postcondition.expectedVersion.length===0||e(t.postcondition.expectedVersion,t.postcondition.expectedVersion)===void 0||r!==n||i!==n||a!==c||o!==s||t.postcondition.targetId!==t.receipt.targetId||!Ze(c)||!Qe(s)||!$(c,s)))return{agentTargetId:n,expectedVersion:t.postcondition.expectedVersion,providerId:c,providerTargetId:t.receipt.targetId,providerTargetKind:s}}function We(e,t){if(e.postcondition.kind!==`all-of`||!b(e.receipt)||!Le(e.postcondition)||e.postcondition.items.length!==t.length||e.receipt.items.length!==t.length)return;let n=B(e.postcondition.items),r=B(e.receipt.items);if(!n||!r||!V(n,t)||!V(r,t))return;let i=new Map;for(let e of t){let t=Ue({postcondition:n.get(e),receipt:r.get(e)},e);if(!t)return;i.set(e,t)}return i}function G(e,t,n=e.receipt){let r=t.strategy===`managed-provider`?t.plannedTargetVersion:n?.version??(e.observation.kind===`present`?e.observation.version:void 0)??e.executable.version;if(!r)return{kind:`inconclusive`};let i={agentTargetId:t.before.agent.name,expectedVersion:r,providerId:t.binding.providerId,providerTargetId:t.binding.target.id,providerTargetKind:t.binding.target.kind},a=K(e,i,n);if(a!==`satisfied`)return{kind:a};if(e.observation.kind!==`present`||!n)return{kind:`inconclusive`};let o=e.observation,s=U([e.executable.version,o.version])[0];return{evidence:{postcondition:{agentTargetId:i.agentTargetId,expectedVersion:i.expectedVersion,kind:`version-satisfies`,providerId:i.providerId,providerTargetKind:i.providerTargetKind,targetId:i.providerTargetId},receipt:{agentTargetId:i.agentTargetId,executableName:n.executableName??e.agent.binaryName,...o.executablePath?{executablePath:o.executablePath}:{},providerId:i.providerId,providerTargetKind:i.providerTargetKind,schemaVersion:n.schemaVersion,targetId:i.providerTargetId,version:s}},kind:`compatible`}}function K(t,n,r=t.receipt){if(t.observation.kind===`indeterminate`||t.observation.drift.kind===`indeterminate`)return`inconclusive`;if(t.agent.name!==n.agentTargetId||t.observation.kind!==`present`||t.observation.drift.kind!==`none`||!t.executable.present)return`drifted`;if(!t.binding||!t.persistedBinding||!r)return`inconclusive`;let i={providerId:n.providerId,target:{id:n.providerTargetId,kind:n.providerTargetKind}};if(!a(i,t.binding,t.agent.binaryName)||!a(i,t.persistedBinding,t.agent.binaryName)||t.observation.providerId!==n.providerId||t.observation.providerTargetId!==n.providerTargetId||t.observation.providerTargetKind!==n.providerTargetKind||r.targetId!==n.agentTargetId||r.providerId!==n.providerId||r.providerTargetId!==n.providerTargetId||r.providerTargetKind!==n.providerTargetKind)return`drifted`;let o=U([t.executable.version,t.observation.version]);if(o.length===0)return`inconclusive`;if(o.length>1)return`drifted`;let s=e(o[0],n.expectedVersion);return s===void 0?`inconclusive`:s<0?`drifted`:`satisfied`}async function q(e,t){try{return{kind:`success`,observation:await e(t)}}catch{return{kind:`failed`}}}function Ge(e){let t=e.receipt?i(e.receipt):void 0;if(!(!t||!e.binding||!a(t,e.binding,e.agent.binaryName)||e.providerOutcome?.kind!==`success`||!X(t,e.providerOutcome.value)))return{agentTargetId:e.agent.name,binding:t,executableName:e.receipt?.executableName??t.target.binaryName??e.agent.binaryName,receiptSchemaVersion:e.receipt.schemaVersion}}function Ke(e,t){let n=W(e.receipt,`agentTargetId`),r=Z(e.postcondition,`agentTargetId`),i=W(e.receipt,`executableName`),a=W(e.receipt,`providerTargetKind`),o=e.receipt.providerId;if(!(e.postcondition.kind!==`package-absent`||e.postcondition.providerId!==e.receipt.providerId||e.postcondition.targetId!==e.receipt.targetId||n!==t||r!==t||!i||!Ze(o)||!Qe(a)||!$(o,a)))return{binding:{providerId:o,target:{binaryName:i,id:e.receipt.targetId,kind:a}},executableName:i}}function qe(e){return{postcondition:{agentTargetId:e.agentTargetId,kind:`package-absent`,providerId:e.binding.providerId,targetId:e.binding.target.id},receipt:{agentTargetId:e.agentTargetId,executableName:e.executableName,providerId:e.binding.providerId,providerTargetKind:e.binding.target.kind,schemaVersion:e.receiptSchemaVersion,targetId:e.binding.target.id}}}async function Je(e){let n=t();try{return await n.run(()=>o(e,{signal:n.context.signal,timeoutMs:n.context.timeoutMs}))}finally{n.dispose()}}async function J(e,t){try{return{kind:`success`,observation:await e(t)}}catch{return{kind:`failed`}}}async function Y(e,t){try{return await e(t)}catch(e){return{kind:`failed`,reason:e instanceof Error?e.message:String(e),retryable:!1}}}async function Ye(e,t){try{return await e(t)}catch{return}}function Xe(e,t){return e.kind===`success`&&e.value.kind===`absent`&&X(t,e.value)}function X(e,t){return e.target.id===t.target.id&&e.target.kind===t.target.kind}function Z(e,t){let n=e[t];return typeof n==`string`?n:void 0}function Q(e){return e.postcondition.kind!==`all-of`&&!b(e.receipt)}function Ze(e){return n.includes(e)}function Qe(e){return e===`binary`||e===`cask`||e===`formula`||e===`id`||e===`package`||e===`script`||e===`tool`}function $(e,t){switch(e){case`binary`:return t===`binary`;case`script`:return t===`script`;case`brew`:return t===`formula`||t===`cask`;case`winget`:return t===`id`;case`deno`:case`mise`:case`uv`:return t===`tool`;case`bun`:case`cargo`:case`npm`:case`pip`:return t===`package`}}export{Ne as a,ve as c,re as d,d as f,He as i,he as l,Fe as n,Me as o,Pe as r,pe as s,Be as t,_e as u};
|
package/dist/list-C_TqJIui.mjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{a as e,r as t,t as n}from"./color-D55TE_Ws.mjs";import{n as r}from"./lifecycle-observations-F8_4qbsU.mjs";import{t as i}from"./agent-inspection-CCNABDLw.mjs";async function a(){return e(t({action:`list`,data:{agents:(await r()).map(i).map(e=>({binaryName:e.agent.binaryName,displayName:e.agent.displayName,installed:e.inPath,installedVersion:e.installedVersion,latestVersion:e.latestVersion,lifecycle:e.lifecycle,name:e.agent.name,sourceLabel:e.sourceLabel,updateLabel:e.updateLabel}))},target:{kind:`system`,name:`agents`}}),o)}function o(e){console.log(n.bold(`
|
|
2
|
-
AI Agents:
|
|
3
|
-
`));for(let t of e.data?.agents??[]){let e=t.displayName.padEnd(18),r=t.installed?n.green(`installed`):n.gray(`not installed`),i=t.installed?n.dim(t.installedVersion??`unknown version`):``,a=t.installed?n.cyan(t.updateLabel):``,o=t.installed?n.dim(t.sourceLabel):``;console.log(` ${e} ${r} ${i}${a?` ${a}`:``}${o?` ${o}`:``}`)}console.log()}export{a as listCommand};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$t as e,At as t,Ct as n,Dt as r,Et as i,Ft as a,It as o,L as s,M as c,Mt as ee,Nt as te,O as l,Ot as ne,Pt as re,S as ie,St as ae,Tt as u,Xt as oe,Zt as se,_n as d,_t as ce,an as le,at as f,bt as ue,cn as p,dt as de,en as m,ft as fe,gt as pe,hn as h,ht as me,it as g,jt as _,kt as v,lt as y,mt as he,nt as b,on as x,pn as S,pt as ge,qt as C,ut as _e,vt as ve,wt as ye,xt as be,yt as xe}from"./color-D55TE_Ws.mjs";import Se from"node:process";import{AsyncLocalStorage as Ce}from"node:async_hooks";async function w(e){let t=m(),n=typeof e==`function`?e(t):e;try{return Se.platform===`win32`?await h(S([`powershell.exe`,`-Command`,n]))===0:await h(S([`sh`,`-c`,n]))===0}catch{return!1}}function T(e,t,n){return{type:e,getInstalledVersion:e=>n.getInstalledVersion(e),probePackagePresence:e=>n.probePackagePresence(e),isAvailable:e=>E(e,async e=>(await t.availability(e)).kind===`success`),install:async(e,n,r,i)=>t.install?E(i,i=>t.install({context:i,target:D(e,n,void 0,r)})):M(`install`),uninstall:async(e,n,r,i)=>t.uninstall?E(i,i=>t.uninstall({context:i,target:D(e,n,r?.binaryName)})):M(`uninstall`),update:async(e,n,r,i)=>{if(!t.update)return M(`update`);let a=O(r);return E(i,i=>t.update({context:i,...a?{options:a}:{},target:D(e,n,r?.binaryName,r?.packageInstallArgs)}))},updateMany:async(e,n,r)=>{if(!t.updateMany)return M(`update-many`);let i=O(n);return E(r,n=>t.updateMany({context:n,...i?{options:i}:{},targets:e.map(e=>D(e.packageName,e.packageTargetKind,e.binaryName,e.packageInstallArgs))}))}}}async function E(e,t){if(e)return t(e);let n=p();try{return await t(n.context)}finally{n.dispose()}}function D(e,t,n,r){return{...r?.length?{arguments:r}:{},...n?{binaryName:n}:{},id:e,kind:t??`package`}}function O(e){return e?.npmBunUpdateStrategy?{updateStrategy:e.npmBunUpdateStrategy}:void 0}function k(e,t,n,r={}){let i=(e,t,r,i)=>({...r?.length?{arguments:r}:{},...i?{binaryName:i}:{},id:e,kind:n(t)});return{...r,type:e,isAvailable:e=>E(e,async e=>(await t.availability(e)).kind===`success`),install:async(e,n,r,a)=>t.install?E(a,a=>t.install({context:a,target:i(e,n,r)})):M(`install`),uninstall:async(e,n,r,a)=>t.uninstall?E(a,a=>t.uninstall({context:a,target:i(e,n,void 0,r?.binaryName)})):M(`uninstall`),update:async(e,n,r,a)=>t.update?E(a,a=>t.update({context:a,target:i(e,n,r?.packageInstallArgs,r?.binaryName)})):M(`update`),updateMany:async(e,n,r)=>t.updateMany?E(r,n=>t.updateMany({context:n,targets:e.map(e=>i(e.packageName,e.packageTargetKind,e.packageInstallArgs,e.binaryName))})):M(`update-many`)}}const A={brew:k(`brew`,e,e=>e===`cask`?`cask`:`formula`,{getInstalledVersion:(e,t)=>le(e,t),probePackagePresence:(e,t)=>x(e,t)}),bun:T(`bun`,o,{getInstalledVersion:e=>oe(e),probePackagePresence:e=>se(e)}),cargo:k(`cargo`,te,()=>`package`,{getInstalledVersion:e=>re(e),probePackagePresence:e=>a(e)}),deno:k(`deno`,v,()=>`tool`,{getInstalledVersion:e=>t(_(e)),probePackagePresence:e=>ee(_(e))}),mise:k(`mise`,ye,()=>`tool`,{getInstalledVersion:e=>u(e),probePackagePresence:e=>i(e)}),npm:T(`npm`,be,{getInstalledVersion:e=>ae(e),probePackagePresence:e=>n(e)}),pip:k(`pip`,ve,()=>`package`,{getInstalledVersion:e=>xe(e),probePackagePresence:e=>ue(e)}),uv:k(`uv`,me,()=>`tool`,{getInstalledVersion:e=>pe(e),probePackagePresence:e=>ce(e)}),winget:k(`winget`,fe,()=>`id`,{getInstalledVersion:e=>ge(e),probePackagePresence:e=>he(e)})},we=Object.fromEntries(Object.entries(A).map(([e,t])=>[e,Ee(t)]));function Te(e){return we[e]}function j(e){return A[e]}function Ee(e){return{getInstalledVersion:e.getInstalledVersion,install:async(...t)=>(await e.install(...t)).kind===`success`,isAvailable:e.isAvailable,probePackagePresence:e.probePackagePresence,type:e.type,uninstall:async(...t)=>(await e.uninstall(...t)).kind===`success`,update:async(...t)=>(await e.update(...t)).kind===`success`,updateMany:async(...t)=>(await e.updateMany(...t)).kind===`success`}}function M(e){return{kind:`unsupported`,operation:e}}const De={resource:`agent lifecycle`,scope:[`agent-lifecycle`]},N=new Ce;function P(e){return N.getStore()?e():s(De,()=>N.run(!0,e))}async function Oe(){return(await C()).defaultPackageManager}async function F(){return{npmBunUpdateStrategy:(await C()).npmBunUpdateStrategy}}async function I(e){let t=m(),n=e.platforms[t];if(!n)return[];let r=await Oe();return r?[...n.filter(e=>e.type===r),...n.filter(e=>e.type!==r)]:[...n]}async function L(e,t,n,r,i,a,o,s){if(!s){let s=p();try{return await L(e,t,n,r,i,a,o,s.context)}finally{s.dispose()}}let c=j(e);return await c.isAvailable(s)?a===`install`?c.install(t,i,r,s):a===`update`?c.update(t,i,{binaryName:n,npmBunUpdateStrategy:o,packageInstallArgs:r},s):c.uninstall(t,i,{binaryName:n},s):{kind:`unavailable`,reason:`${e} executable is unavailable`,retryable:!1}}async function R(e,t,n,i){if(y(t.type)){let r=b(e,t);return r?L(t.type,r,t.binaryName??e.binaryName,t.packageInstallArgs,t.packageTargetKind,n,i):{kind:`failed`,reason:`package target is missing for ${e.name}`,retryable:!1}}if(n===`update`&&!f(t.type))return{kind:`unsupported`,operation:`update`};if(!t.command)return{kind:`failed`,reason:`install effect is missing for ${e.name}`,retryable:!1};let a=t.type===`script`?ne:r,o=p();try{return await a.install?.({context:o.context,target:{binaryName:t.binaryName??e.binaryName,effect:{command:t.command,kind:`shell-script`},id:e.name,kind:t.type}})??{kind:`unsupported`,operation:n}}finally{o.dispose()}}function z(e,t){if(e.packageName)return e.packageName;if(!(!t||!y(e.installType)))return b(t,{type:e.installType})}async function B(e,t,n){if(y(e.installType)){let r=z(e,n?.agent);return r?L(e.installType,r,e.binaryName,e.packageInstallArgs,e.packageTargetKind,t,n?.updateStrategy):{kind:`failed`,reason:`package target is missing for ${e.agentName}`,retryable:!1}}return t!==`install`||!e.command?{kind:`unsupported`,operation:t}:await w(e.command)?{kind:`success`,value:void 0}:{kind:`failed`,reason:`${t} command failed for ${e.agentName}`,retryable:!1}}async function V(e,t){if(!y(t.type))return;let n=b(e,t);n&&await L(t.type,n,t.binaryName??e.binaryName,t.packageInstallArgs,t.packageTargetKind,`uninstall`,void 0,K())}async function ke(e){if(!e.selfUpdate)return!1;let t=[e.selfUpdate.command,...e.selfUpdate.fallbackCommands??[]];for(let e of t)if(await w(e.join(` `)))return!0;return!1}function H(e,t){let n={agentName:e.name,installType:t.type,packageName:b(e,t),packageTargetKind:t.packageTargetKind,command:`command`in t?t.command:void 0},r=t.binaryName??(t.type===`deno`?e.binaryName:void 0);return r&&(n.binaryName=r),t.packageInstallArgs?.length&&(n.packageInstallArgs=t.packageInstallArgs),n}async function Ae(e,t){if(d().cancelled)return null;let n=H(e,t);return d().cancelled?null:(await c(n),d().cancelled?(await l(e.name),null):n)}async function U(e,t){return P(async()=>{let n=t?[...t]:await I(e),r;for(let t of n){if(d().cancelled)return{kind:`cancelled`,reason:`install-cancelled`};let n=await R(e,t,`install`);if(n.kind===`success`)return d().cancelled?(await V(e,t),{kind:`cancelled`,reason:`install-cancelled`}):{kind:`success`,value:{installedState:H(e,t)}};let i=J(n);if(i.kind===`cancelled`||i.kind===`timed-out`)return i;if(r=i,d().cancelled)return await V(e,t),{kind:`cancelled`,reason:`install-cancelled`}}return r??{kind:`failed`,reason:`install-failed`,retryable:!1}})}async function je(e){return P(async()=>{let t=await U(e);if(t.kind!==`success`||!t.value.installedState)return q(t);try{return d().cancelled?(await G(e,t.value.installedState),{success:!1}):(await c(t.value.installedState),d().cancelled?(await l(e.name),await G(e,t.value.installedState),{success:!1}):q(t))}catch(n){throw await G(e,t.value.installedState),n}})}async function Me(e,t){return P(async()=>{let{npmBunUpdateStrategy:n}=await F(),r=await I(e),i=t&&y(t.installType)?z(t,e):void 0,a=t?await B(t,`update`,{agent:e,updateStrategy:n}):void 0;if(t&&a?.kind===`success`)return d().cancelled||(await c(t),d().cancelled)?{kind:`cancelled`,reason:`update-cancelled`}:{kind:`success`,value:{installedState:t}};if(a?.kind===`cancelled`||a?.kind===`timed-out`)return J(a);if(!t)for(let t of r){let r=await R(e,t,`update`,n);if(r.kind===`success`){let n=await Ae(e,t);return n?{kind:`success`,value:{installedState:n}}:{kind:`cancelled`,reason:`update-cancelled`}}if(r.kind===`cancelled`||r.kind===`timed-out`)return J(r)}return(!t||!y(t.installType)||i)&&await ke(e)?{kind:`success`,value:{}}:{kind:`failed`,reason:`update-failed`,retryable:!1}})}async function Ne(e,t){return q(await Me(e,t))}async function Pe(e,t){return P(async()=>{let n=[...new Map(t.filter(e=>e.packageName).map(e=>[`${e.packageTargetKind??`package`}:${e.packageName}:${e.packageInstallArgs?.join(` `)??``}`,e])).values()];if(n.length===0)return!1;let r=j(e);return await r.isAvailable()?(await r.updateMany(n,await F())).kind===`success`:!1})}async function Fe(e,t,n){let r=j(e);if(r.getInstalledVersion&&await r.isAvailable())return r.getInstalledVersion(t,n)}async function Ie(e,t){if(!y(e.installType))return!1;let n=j(e.installType);if(!n.getInstalledVersion||!await n.isAvailable())return!1;let r=z(e,t);return r?n.probePackagePresence?await n.probePackagePresence(r,e.packageTargetKind)===`absent`:await n.getInstalledVersion(r,e.packageTargetKind)===void 0:!1}async function Le(e){return(await P(async()=>{let t=await ie(e.name);return t?W(e,t):{kind:`failed`,reason:`installed-state-missing`,retryable:!1}})).kind===`success`}async function W(e,t){if(!g(t.installType))return await l(e.name),{kind:`success`,value:{installedState:t}};let n=await B(t,`uninstall`,{agent:e});return n.kind===`success`||await Ie(t,e)?(await l(e.name),{kind:`success`,value:{installedState:t}}):J(n)}async function Re(e,t){let n=await B(t,`install`,{agent:e});return n.kind===`success`?{kind:`success`,value:{installedState:t}}:J(n)}async function G(e,t){if(!g(t.installType)||!y(t.installType))return;let n=z(t,e);n&&await L(t.installType,n,t.binaryName,t.packageInstallArgs,t.packageTargetKind,`uninstall`,void 0,K())}function K(){let e=d().timeoutMs;return{signal:new AbortController().signal,timeoutMs:e===void 0?5e3:Math.max(10,Math.min(e,5e3))}}function q(e){return e.kind===`success`?e.value.installedState?{installedState:e.value.installedState,success:!0}:{success:!0}:{success:!1}}function J(e){switch(e.kind){case`success`:return{kind:`success`,value:{}};case`cancelled`:return e;case`timed-out`:return e;case`failed`:return{kind:`failed`,reason:e.reason,retryable:e.retryable};case`unsupported`:return{capability:`provider-${e.operation}`,kind:`unsupported`,reason:e.reason};case`unavailable`:case`indeterminate`:return{kind:`indeterminate`,reason:e.reason}}}function Y(e,t){let n=$(t.installType);if(!n)return;let r=He(e,t);if(r)return{providerId:n,target:{...t.packageInstallArgs?.length?{arguments:t.packageInstallArgs}:{},...t.binaryName||n===`binary`||n===`script`||n===`deno`?{binaryName:t.binaryName??e.binaryName}:{},id:r,kind:Q(n,t.packageTargetKind)}}}function ze(e){let t=$(e.providerId);if(!(!t||e.providerTargetId.length===0)&&!(t===`brew`&&e.providerTargetKind!==`cask`&&e.providerTargetKind!==`formula`))return{providerId:t,target:{...e.executableName?{binaryName:e.executableName}:{},id:e.providerTargetId,kind:e.providerTargetKind??Q(t)}}}async function Be(e,t){let n=(t.registry??_e).get(e.providerId);return n?n.observe({context:{signal:t.signal,timeoutMs:t.timeoutMs},target:e.target}):{kind:`unavailable`,reason:`Provider ${e.providerId} is not registered.`,retryable:!1}}function X(e,t){return Y(e,{agentName:e.name,...t.binaryName?{binaryName:t.binaryName}:{},...t.command?{command:t.command}:{},installType:t.type,...t.packageInstallArgs?{packageInstallArgs:t.packageInstallArgs}:{},...t.packageName?{packageName:t.packageName}:{},...t.packageTargetKind?{packageTargetKind:t.packageTargetKind}:{}})}function Ve(e,t){let n=(e.platforms[t]??[]).map(t=>({binding:X(e,t),method:t})),r=n.map(e=>e.binding).filter(e=>e!==void 0);return{bindings:r.filter((t,n)=>r.findIndex(n=>Z(n,t,e.binaryName))===n),unresolvedCandidates:n.filter(e=>e.binding===void 0).map(e=>e.method)}}function Z(e,t,n){return e.providerId===t.providerId&&e.target.id===t.target.id&&e.target.kind===t.target.kind&&(e.target.binaryName??n)===(t.target.binaryName??n)}function He(e,t){if(t.packageName)return t.packageName;if(t.command)return t.command;if(t.binaryName)return t.binaryName;switch(t.installType){case`bun`:case`npm`:return e.packages?.npm;case`cargo`:return e.packages?.cargo;case`deno`:return e.packages?.deno;case`mise`:return e.packages?.mise;case`pip`:return e.packages?.pip;case`uv`:return e.packages?.uv;case`binary`:case`script`:return e.binaryName;case`brew`:case`winget`:return}}function Q(e,t){switch(e){case`binary`:return`binary`;case`brew`:return t===`cask`?`cask`:`formula`;case`deno`:case`mise`:case`uv`:return`tool`;case`script`:return`script`;case`winget`:return`id`;case`bun`:case`cargo`:case`npm`:case`pip`:return`package`}}function $(e){return de.includes(e)?e:void 0}export{Pe as _,ze as a,Fe as c,U as d,Re as f,Ne as g,W as h,X as i,I as l,Le as m,Z as n,Y as o,G as p,Ve as r,H as s,Be as t,je as u,P as v,Te as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./resolve-CTOjSJag.mjs";export{e as resolveCommand};
|
package/dist/schema-CsIhmOlH.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./schema-B1Gva91H.mjs";export{e as schemaCommand};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,I as t,M as n,N as r,O as i,S as a,_n as o,a as s,k as c,n as l,r as u,t as d,tn as f}from"./color-D55TE_Ws.mjs";import{a as p,h as m,o as h,t as g,v as _}from"./provider-evidence-CcW0d2NQ.mjs";import{n as v}from"./agents-DKvyp0t3.mjs";import{t as y}from"./lifecycle-errors-BXlHX_YF.mjs";import{a as b,i as x,n as S,r as C}from"./user-output-Dkv_5Lew.mjs";const w=e=>new Promise(t=>setTimeout(t,e));async function T(e,t={}){let n=Math.max(1,t.attempts??6),r=t.delay??w,i=Math.max(0,t.delayMs??100);for(let a=0;a<n;a+=1){if(t.signal?.aborted||t.isCancelled?.())return!1;let o=await e();if(t.signal?.aborted||t.isCancelled?.())return!1;if(o)return!0;a+1<n&&await r(i)}return!1}async function E(d){let g=v(d);if(!g)return s(l({action:`uninstall`,error:{code:`AGENT_NOT_FOUND`,details:{input:d},message:`Unknown agent: ${d}`},target:{kind:`agent`,name:d}}),N);try{return await _(async()=>{let[t,l]=await Promise.all([a(g.name),e(g.name)]);if(!t&&!l)return s(M(d,g),N);let _=await f(g.binaryName),v=t?h(g,t):void 0,y=l?p(l):void 0;if(t&&!v||l&&!y)return s(k(g,`indeterminate-source`,`Cannot resolve provider evidence for ${g.displayName}.`),N);if(v&&y&&!D(v,y))return s(k(g,`conflicting-source`,`Recorded sources disagree for ${g.displayName}.`),N);let b=v??y,x=await O(b);return x.kind===`success`?x.value.kind===`absent`?_?s(k(g,`conflicting-source`,`${g.displayName} is on PATH but its recorded provider target is absent.`),N):S()?s(A(g,`would reconcile stale lifecycle evidence`),N):(t&&await i(g.name),l&&await c(g.name),s(j(g),N)):t?S()?s(A(g,`would uninstall ${g.displayName}`),N):(l||await r({...b.target.binaryName?{executableName:b.target.binaryName}:{},kind:`lifecycle-receipt`,providerId:b.providerId,providerTargetId:b.target.id,providerTargetKind:b.target.kind,schemaVersion:1,targetId:g.name,verifiedAt:new Date().toISOString(),...x.value.executablePath?{executablePath:x.value.executablePath}:{},...x.value.version?{version:x.value.version}:{}}),(await m(g,t)).kind===`success`?await T(async()=>{let e=await O(b);return e.kind!==`success`||e.value.kind!==`absent`?!1:!await f(g.binaryName)},{isCancelled:()=>!!o().cancelled})?(await c(g.name),s(u({action:`uninstall`,data:{agent:{displayName:g.displayName,name:g.name},changed:!0},target:{kind:`agent`,name:g.name}}),N)):(await n(t),s(k(g,`verification-failed`,`${g.displayName} is still present after provider removal.`),N)):s(k(g,`provider-failure`,`Failed to uninstall ${g.displayName}.`),N)):s(k(g,`indeterminate-source`,`Cannot safely reconstruct ${g.displayName}'s uninstall source.`),N):s(k(g,`indeterminate-source`,`Cannot verify provider state for ${g.displayName}.`),N)})}catch(e){if(t(e))return s(l({action:`uninstall`,data:{agent:{displayName:g.displayName,name:g.name},changed:!1},...y(e,{kind:`agent`,name:g.name})}),N);throw e}}function D(e,t){return e.providerId===t.providerId&&e.target.id===t.target.id&&e.target.kind===t.target.kind&&e.target.binaryName===t.target.binaryName}async function O(e){let t=o(),n=new AbortController;return t.cancelled&&n.abort(`cli-cancelled`),g(e,{signal:n.signal,timeoutMs:t.timeoutMs})}function k(e,t,n){return l({action:`uninstall`,data:{agent:{displayName:e.displayName,name:e.name},changed:!1},error:{code:`UNINSTALL_FAILED`,details:{lifecycle:t},message:n},target:{kind:`agent`,name:e.name}})}function A(e,t){return u({action:`uninstall`,data:{agent:{displayName:e.displayName,name:e.name},changed:!1},target:{kind:`agent`,name:e.name},warnings:[{code:`DRY_RUN`,message:`Dry run: ${t}.`}]})}function j(e){return u({action:`uninstall`,data:{agent:{displayName:e.displayName,name:e.name},changed:!0},target:{kind:`agent`,name:e.name},warnings:[{code:`GHOST_STATE_RECONCILED`,message:`${e.displayName} was already absent; stale lifecycle evidence was removed.`}]})}function M(e,t){return l({action:`uninstall`,data:{agent:{displayName:t.displayName,name:t.name},changed:!1},error:{code:`UNINSTALL_UNMANAGED`,details:{canAutoUninstall:!1,displayName:t.displayName,input:e,lifecycle:`unmanaged`,name:t.name},message:`${t.displayName} is not managed by qtx, so qtx cannot auto-uninstall it. Run qtx inspect ${t.name} for details.`},target:{kind:`agent`,name:t.name}})}function N(e){if(e.error){C(d.red(e.error.message));return}if(e.data){if(e.warnings&&e.warnings.length>0){for(let t of e.warnings)b(d.yellow(t.message));return}x(d.cyan(`Uninstalling ${e.data.agent.displayName}...`)),x(d.green(`${e.data.agent.displayName} uninstalled successfully!`))}}export{E as uninstallCommand};
|
package/dist/update-_wy1PcLo.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"./messages-qcLhD-Gc.mjs";import{E as r,I as i,J as a,_n as o,a as s,cn as c,i as l,n as u,qt as d,r as f,sn as p,t as m,ut as h}from"./color-D55TE_Ws.mjs";import{r as g}from"./agents-Dc-rbRUf.mjs";import{v as _}from"./provider-evidence-CcW0d2NQ.mjs";import{t as v}from"./update-planner-B9twOaqE.mjs";import{t as y}from"./lifecycle-observations-F8_4qbsU.mjs";import{n as b}from"./agents-DKvyp0t3.mjs";import{a as x,i as S,n as C,r as w}from"./user-output-Dkv_5Lew.mjs";import{a as T,c as E,l as D,r as O,s as k,u as A}from"./lifecycle-policy-Bkd-ZutQ.mjs";async function j(e){let t;for(let n of e.commands){let r=await p(n,e.context,`agent self-update failed`);if(r.kind===`success`)return{kind:`success`,value:{evidence:[{kind:`command`,value:n.join(` `)}],target:e.target}};if(r.kind===`cancelled`||r.kind===`timed-out`)return r;t=r}return t??{kind:`unsupported`,operation:`update`,reason:`No self-update command is configured.`}}async function M(){let e=N();try{return await e.run()}finally{e.dispose()}}function N(){let e=c(),t=0,n=!1,a=!1,o,s,l,u,f=()=>{!n||a||t>0||(a=!0,e.dispose())},p=async r=>{if(n)throw Error(`Lifecycle update batch invocation has been disposed.`);t+=1;try{return await e.run(r)}finally{--t,f()}},m=()=>(l??=d().then(t=>{let n=y(e.context);return{classifyMutationLockError:e=>i(e)?{reason:e.message,resource:e.resource}:void 0,clock:()=>new Date().toISOString(),dryRun:C(),executeSelfUpdate:j,listRegisteredAgentNames:()=>g().map(e=>e.name),observe:n.resolveAgentObservation,planLifecycleUpdate:v,providerRegistry:h,registerCleanup:e.context.registerCleanup,signal:e.context.signal,timeoutMs:e.context.timeoutMs,updateOptions:{updateStrategy:t.npmBunUpdateStrategy},withMutationLock:_,writeReceipt:r.write}}),l),b=()=>n?Promise.reject(Error(`Lifecycle update batch invocation has been disposed.`)):(s??=p(async()=>D(await m())),s);return{dispose(){n||(n=!0,f())},getOutcome:()=>o,async observe(e){return p(async()=>(await m()).observe(e))},prepare:b,run(){return n?Promise.reject(Error(`Lifecycle update batch invocation has been disposed.`)):(u??=(async()=>{let e=await b();return o=await p(async()=>k(e,await m())),o})(),u)}}}async function P(e){let t=F(e);try{return await t.run()}finally{t.dispose()}}function F(e){let t=c(),n=0,i=!1,a=!1,o,s,l,u,f=()=>{!i||a||n>0||(a=!0,t.dispose())},p=async e=>{if(i)throw Error(`Single-agent update invocation has been disposed.`);n+=1;try{return await t.run(e)}finally{--n,f()}},m=()=>(l??=d().then(e=>{let n=y(t.context);return{clock:()=>new Date().toISOString(),dryRun:C(),executeSelfUpdate:j,observe:n.resolveAgentObservation,planLifecycleUpdate:v,providerRegistry:h,registerCleanup:t.context.registerCleanup,signal:t.context.signal,timeoutMs:t.context.timeoutMs,updateOptions:{updateStrategy:e.npmBunUpdateStrategy},withMutationLock:_,writeReceipt:r.write}}),l),g=()=>i?Promise.reject(Error(`Single-agent update invocation has been disposed.`)):(s??=p(async()=>A(e,await m())),s);return{dispose(){i||(i=!0,f())},getOutcome:()=>o,async observe(e){return p(async()=>(await m()).observe(e))},prepare:g,run(){return i?Promise.reject(Error(`Single-agent update invocation has been disposed.`)):(u??=(async()=>{let e=await g();return o=e.kind===`planned`?await p(async()=>E(e.planned,await m())):e,o})(),u)}}}async function I(e,t,n={runBatch:M,runSingle:P}){if(t)return R(n);if(!e)return s(u({action:`update`,error:{code:`INVALID_ARGUMENT`,message:`Please specify an agent name or use --all flag`},target:{kind:`agent`}}),Z);let r=b(e);return r?z(r,n):s(u({action:`update`,error:{code:`AGENT_NOT_FOUND`,details:{input:e},message:`Unknown agent: ${e}`},target:{kind:`agent`,name:e}}),Z)}function L(e,t){if(t){let t=N();return{dispose:t.dispose,idempotencyPolicy:()=>O(t),run:()=>I(e,!0,{runBatch:()=>t.run(),runSingle:P})}}if(!e)return{dispose(){},run:()=>I(e,t)};let n=F(e);return{dispose:n.dispose,idempotencyPolicy:()=>T(e,n),run:()=>I(e,!1,{runBatch:M,runSingle:()=>n.run()})}}async function R(e){l({action:`update`,data:{scope:`all`},target:{kind:`agent`},type:`started`});let t=await e.runBatch(),n=H(t),r=G(t);return Y(t)?s(u({action:`update`,data:{results:n,scope:`all`},error:{code:`CANCELLED`,message:`Update was cancelled before all agents could be updated.`},target:{kind:`agent`},warnings:r}),Z):n.some(e=>e.status===`failed`||e.status===`locked`)?s(u({action:`update`,data:{results:n,scope:`all`},error:{code:`UPDATE_FAILED`,message:`One or more agents failed to update.`},target:{kind:`agent`},warnings:r}),Z):s(f({action:`update`,data:{results:n,scope:`all`},target:{kind:`agent`},warnings:r}),Z)}async function z(e,t){l({action:`update`,data:{agent:e.name,scope:`single`},target:{kind:`agent`,name:e.name},type:`started`});let n;try{n=await t.runSingle(e.name)}catch(t){if(!i(t))throw t;return s(u({action:`update`,data:{results:[{displayName:e.displayName,message:t.message,name:e.name,resource:t.resource,status:`locked`}],scope:`single`},error:{code:`RESOURCE_LOCKED`,details:{resource:t.resource},message:t.message},target:{kind:`agent`,name:e.name}}),Z)}let r=V(n);if(n.kind===`unknown-agent`)return s(u({action:`update`,error:{code:`AGENT_NOT_FOUND`,message:`Unknown agent: ${e.name}`},target:{kind:`agent`,name:e.name}}),Z);if(r?.observation.kind===`absent`){let t=r.observation.drift.kind===`recorded-absent`?[K(e)]:[];return s(u({action:`update`,error:{code:`AGENT_NOT_INSTALLED`,message:`${e.displayName} is not installed.`},target:{kind:`agent`,name:e.name},warnings:t}),Z)}let a=B(e,n);return X([],a),n.kind===`cancelled`?s(u({action:`update`,data:{results:[a],scope:`single`},error:{code:`CANCELLED`,message:`Update of ${e.displayName} was cancelled.`},target:{kind:`agent`,name:e.name}}),Z):a.status===`failed`||a.status===`locked`?s(u({action:`update`,data:{results:[a],scope:`single`},error:{code:`UPDATE_FAILED`,message:`Failed to update ${e.displayName}.`},target:{kind:`agent`,name:e.name}}),Z):s(f({action:`update`,data:{results:[a],scope:`single`},target:{kind:`agent`,name:e.name}}),Z)}function B(n,r){let i=V(r),a=`plan`in r?r.plan:void 0,o=i?.observation.kind===`present`?i.observation.version:void 0,s=q(a),c=J(a)??i?.binding?.providerId;switch(r.kind){case`updated`:return{displayName:n.displayName,installedVersion:o,latestVersion:r.receipt.version??s,name:n.name,status:`updated`,strategy:c};case`up-to-date`:return{displayName:n.displayName,installedVersion:r.receipt.version??o,name:n.name,status:`up-to-date`,strategy:c};case`dry-run`:return{displayName:n.displayName,installedVersion:o,latestVersion:s,message:`Dry run: would update ${n.displayName}.`,name:n.name,status:`planned`,strategy:c};case`not-executed`:return r.plan.planning.decision===`up-to-date`?{displayName:n.displayName,installedVersion:o,latestVersion:s,name:n.name,status:`up-to-date`}:{displayName:n.displayName,installedVersion:o,latestVersion:s,message:e(n),name:n.name,status:`manual-required`};case`blocked`:return r.category===`untracked`?{displayName:n.displayName,installedVersion:o,message:t(n),name:n.name,status:`manual-required`}:r.category===`manual-required`?{displayName:n.displayName,installedVersion:o,message:e(n),name:n.name,status:`manual-required`}:{displayName:n.displayName,installedVersion:o,message:r.reason,name:n.name,status:`failed`};case`cancelled`:return{displayName:n.displayName,installedVersion:o,latestVersion:s,message:r.reason??`Update was cancelled before it could complete.`,name:n.name,status:`failed`,strategy:c};case`timed-out`:return{displayName:n.displayName,installedVersion:o,latestVersion:s,message:`Update timed out after ${r.timeoutMs}ms.`,name:n.name,status:`failed`,strategy:c};case`provider-failed`:return{displayName:n.displayName,installedVersion:o,latestVersion:s,name:n.name,status:`failed`,strategy:c};case`verification-failed`:case`receipt-failed`:return{displayName:n.displayName,installedVersion:o,latestVersion:s,message:r.kind===`receipt-failed`?r.reason:r.verification.reason,name:n.name,status:`failed`,strategy:c};case`unknown-agent`:return{displayName:n.displayName,name:n.name,status:`failed`}}}function V(e){if(`plan`in e)return e.plan.before;if(`before`in e)return e.before}function H(e){let t=new Map(e.results.map(e=>[e.id,e])),n=new Map(e.cancellationRemainder.map(e=>[e.id,e])),r=[];for(let i of e.plan.targets){let e=t.get(i.id),a=n.get(i.id);if(e){let t=U(e);t&&X(r,t)}else a&&X(r,W(a))}return r}function U(e){let t=e.planning.kind===`unknown-agent`?void 0:e.planning.kind===`planned`?e.planning.planned.before:e.planning.before,r=b(e.agentName);if(!r)return{displayName:t?.agent.displayName??e.agentName,name:e.agentName,status:`failed`};let i=e.execution;if(e.planning.kind===`blocked`&&e.planning.category===`stale-state`)return;if(i?.kind===`locked`)return{displayName:r.displayName,installedVersion:i.plan.before.observation.kind===`present`?i.plan.before.observation.version:void 0,latestVersion:q(i.plan),message:i.reason,name:r.name,resource:i.resource,status:`locked`,strategy:J(i.plan)};if(i?.kind===`unexpected-failure`)return{displayName:r.displayName,installedVersion:i.plan.before.observation.kind===`present`?i.plan.before.observation.version:void 0,latestVersion:q(i.plan),message:i.reason,name:r.name,status:`failed`,strategy:J(i.plan)};let o=i??(e.planning.kind===`planned`?{kind:`not-executed`,plan:e.planning.planned}:e.planning),s=B(r,o);return s.status===`failed`&&o.kind===`provider-failed`&&(s.hint=n(r,a({agent:r,installedState:t?.installedState,methods:[...t?.methods??[]]}))),s}function W(e){let t=b(e.agentName),n=e.planning.planned.before;return{displayName:t?.displayName??n.agent.displayName,installedVersion:n.observation.kind===`present`?n.observation.version:void 0,latestVersion:q(e.planning.planned),message:e.reason??`Update was cancelled before it could start.`,name:t?.name??e.agentName,status:`failed`,strategy:J(e.planning.planned)}}function G(e){return e.plan.targets.flatMap(e=>e.outcome.kind!==`blocked`||e.outcome.category!==`stale-state`?[]:[K(b(e.agentName)??e.outcome.before.agent)])}function K(e){return{code:`AGENT_STALE_STATE`,details:{agentName:e.name,suggestedAction:`reconcile-agent-state`,suggestedCommands:[`quantex uninstall ${e.name}`]},message:`${e.displayName} is not installed but has stale lifecycle evidence. Run \`quantex uninstall ${e.name}\` to reconcile it.`}}function q(e){return e?.strategy===`managed-provider`?e.plannedTargetVersion:void 0}function J(e){if(e)return e.strategy===`self-update`?`self-update`:`managed/${e.binding.providerId}`}function Y(e){return o().cancelled||e.cancellationRemainder.length>0||e.results.some(e=>e.planning.kind===`cancelled`||e.execution?.kind===`cancelled`)}function X(e,t){e.push(t),l({action:`update`,data:t,target:{kind:`agent`,name:t.name},type:`progress`})}function Z(e){if(!e.data){e.error&&w(m.red(e.error.message));return}for(let t of e.warnings)x(m.yellow(t.message));for(let t of e.data.results)switch(t.status){case`up-to-date`:S(m.green(`${t.displayName} is up to date (${t.installedVersion??`unknown`})`));break;case`manual-required`:x(m.yellow(`${t.displayName}: manual action required.`)),t.message&&x(m.cyan(`Next step: ${t.message}`));break;case`planned`:x(m.cyan(`Would update ${t.displayName}${t.strategy?` via ${t.strategy}`:``}${Q(t.installedVersion,t.latestVersion)}`));break;case`updated`:S(m.cyan(`Updating ${t.displayName}${t.strategy?` via ${t.strategy}`:``}...${Q(t.installedVersion,t.latestVersion)}`)),S(m.green(`${t.displayName} updated successfully!`));break;case`failed`:S(m.cyan(`Updating ${t.displayName}${t.strategy?` via ${t.strategy}`:``}...${Q(t.installedVersion,t.latestVersion)}`)),w(m.red(`Failed to update ${t.displayName}.`)),t.hint&&x(m.cyan(`Next step: ${t.hint}`));break;case`locked`:x(m.yellow(t.message??`Another quantex process is already updating ${t.displayName}.`));break}e.data.results.length>1&&$(e.data.results),!e.data.results.length&&e.error&&w(m.red(e.error.message))}function Q(e,t){return e?` (${e} -> ${t??`latest`})`:``}function $(e){let t={failed:0,locked:0,manualRequired:0,planned:0,upToDate:0,updated:0};for(let n of e)switch(n.status){case`up-to-date`:t.upToDate+=1;break;case`manual-required`:t.manualRequired+=1;break;case`planned`:t.planned+=1;break;case`updated`:t.updated+=1;break;case`failed`:t.failed+=1;break;case`locked`:t.locked+=1;break}let n=[t.updated?`updated ${t.updated}`:void 0,t.upToDate?`up to date ${t.upToDate}`:void 0,t.manualRequired?`manual ${t.manualRequired}`:void 0,t.failed?`failed ${t.failed}`:void 0,t.locked?`locked ${t.locked}`:void 0,t.planned?`planned ${t.planned}`:void 0].filter(Boolean);n.length>0&&S(m.bold(`Summary: ${n.join(`, `)}`))}export{L as createUpdateCommandInvocation};
|