quantex-cli 0.29.1 → 1.1.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/dist/{agent-inspection-YgRBlO4j.mjs → agent-inspection-wRTbdD0j.mjs} +1 -1
- package/dist/{agent-installation-DYK5G54m.mjs → agent-installation-BkHxGD5U.mjs} +1 -1
- package/dist/{agents-BHbkPVvR.mjs → agents-QYkiyHCD.mjs} +1 -1
- package/dist/{capabilities-DwvTrIyT.mjs → capabilities-Bh_eBfhw.mjs} +1 -1
- package/dist/capabilities-ch-hI24w.mjs +1 -0
- package/dist/cli.mjs +1 -1
- package/dist/{color-DRZEEJuf.mjs → color-nTiVIiHx.mjs} +1 -1
- package/dist/commands-CYTtSxZf.mjs +1 -0
- package/dist/{commands-BV_8m8O3.mjs → commands-nkGABksp.mjs} +1 -1
- package/dist/{config-CW5KWpFO.mjs → config-EvqcZt-0.mjs} +1 -1
- package/dist/{doctor-oscs3vHZ.mjs → doctor-EOCE9dy3.mjs} +1 -1
- package/dist/{ensure-CtIsNpIc.mjs → ensure-D25oxWUc.mjs} +1 -1
- package/dist/ensure-dKuczClK.mjs +1 -0
- package/dist/index.mjs +1 -1
- package/dist/{info-CC9R6coD.mjs → info-BcXErzU4.mjs} +1 -1
- package/dist/inspect-OWIjKOVn.mjs +1 -0
- package/dist/{inspect-BBCaK7m4.mjs → inspect-twIhr3au.mjs} +1 -1
- package/dist/{install-Qs0Hjurc.mjs → install-DQDkbPV-.mjs} +1 -1
- package/dist/{lifecycle-observations-AFJINgqR.mjs → lifecycle-observations-DulNFMcZ.mjs} +1 -1
- package/dist/{lifecycle-policy-Djgq_8nm.mjs → lifecycle-policy-a_ing0Qc.mjs} +1 -1
- package/dist/{list-BdZDS8uV.mjs → list-DTqeDd5E.mjs} +1 -1
- package/dist/{provider-evidence-CQl_J-gP.mjs → provider-evidence-BjjRgpNG.mjs} +1 -1
- package/dist/{provider-observations-CjH7BgJJ.mjs → provider-observations-DWwL6PR0.mjs} +1 -1
- package/dist/{resolve-D8sxYL1V.mjs → resolve-BOxNGmVh.mjs} +1 -1
- package/dist/resolve-CTU1uwe8.mjs +1 -0
- package/dist/{schema-CGsjqfua.mjs → schema-Bl1ZPNI9.mjs} +1 -1
- package/dist/schema-zT2KCR-F.mjs +1 -0
- package/dist/{uninstall-jVywxQNe.mjs → uninstall-DV8hdNkb.mjs} +1 -1
- package/dist/{update-CNH0qEtB.mjs → update-BJCwO1ja.mjs} +1 -1
- package/dist/{update-planner-BhJnvNKA.mjs → update-planner-B74AB4_X.mjs} +1 -1
- package/dist/{upgrade-DUSUcwD7.mjs → upgrade-81zRKaAq.mjs} +1 -1
- package/dist/{user-output-CnLEBgDD.mjs → user-output-CgBsxSsM.mjs} +1 -1
- package/dist/{version-cache-BRDGus3W.mjs → version-cache-pl3cl25u.mjs} +1 -1
- package/package.json +1 -1
- package/dist/capabilities-CtAVoTl3.mjs +0 -1
- package/dist/commands-BFAz9rp0.mjs +0 -1
- package/dist/ensure-TjHi-p6p.mjs +0 -1
- package/dist/inspect-e9CX-iny.mjs +0 -1
- package/dist/resolve-BZug-bO0.mjs +0 -1
- package/dist/schema-BFd8FNZw.mjs +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{Bt as e,It as t,Lt as n,Rt as r,Ut as i,a,n as o,r as s,t as c,zt as l}from"./color-
|
|
1
|
+
import{Bt as e,It as t,Lt as n,Rt as r,Ut as i,a,n as o,r as s,t as c,zt as l}from"./color-nTiVIiHx.mjs";async function u(c,u,f){if(!c)return a(s({action:`config`,data:{action:`list`,config:await r()},target:{kind:`config`}}),d);switch(c){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 r())[u];return a(s({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`&&!t(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`&&!i(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 e={};try{e=await r()}catch{}return e[u]=[`networkRetries`,`networkTimeoutMs`,`versionCacheTtlHours`].includes(u)?Number.parseInt(f,10):u===`selfUpdateRegistry`?i(f):f,await l(e),a(s({action:`config`,data:{action:`set`,key:u,value:e[u]},target:{kind:`config`,name:u}}),d)}case`reset`:return await l(e),a(s({action:`config`,data:{action:`reset`,config:e},target:{kind:`config`}}),d);default:return a(o({action:`config`,error:{code:`INVALID_ARGUMENT`,details:{action:c},message:`Unknown action: ${c}`},target:{kind:`config`},warnings:[{code:`AVAILABLE_ACTIONS`,message:`Available actions: get, set, reset`}]}),d)}}function d(e){if(e.error){console.log(c.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(c.bold(`
|
|
2
2
|
Current Configuration:
|
|
3
3
|
`)),console.log(JSON.stringify(e.data.config,null,2)),console.log();break;case`get`:console.log(e.data.value===void 0?c.gray(`(not set)`):String(e.data.value));break;case`set`:console.log(c.green(`Set ${e.data.key} = ${e.data.value}`));break;case`reset`:console.log(c.green(`Configuration reset to defaults.`));break}}export{u as configCommand};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{n as e,t}from"./messages-qcLhD-Gc.mjs";import{B as n,Nt as r,Xt as i,a,c as o,d as s,r as c,t as l}from"./color-
|
|
1
|
+
import{n as e,t}from"./messages-qcLhD-Gc.mjs";import{B as n,Nt as r,Xt as i,a,c as o,d as s,r as c,t as l}from"./color-nTiVIiHx.mjs";import{n as u,t as d}from"./provider-observations-DWwL6PR0.mjs";import{n as f}from"./lifecycle-observations-DulNFMcZ.mjs";import{t as p}from"./agent-inspection-wRTbdD0j.mjs";async function m(){let n=i(),l,m,_;try{[l,m,_]=await n.run(()=>Promise.all([d({context:n.context}),o({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 a(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
2
|
Quantex CLI Environment Check
|
|
3
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};
|
|
@@ -1 +1 @@
|
|
|
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-
|
|
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-nTiVIiHx.mjs";import{v as s}from"./provider-evidence-BjjRgpNG.mjs";import{t as c}from"./agent-installation-BkHxGD5U.mjs";import{r as l}from"./lifecycle-observations-DulNFMcZ.mjs";import{n as u}from"./agents-QYkiyHCD.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-CgBsxSsM.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./ensure-D25oxWUc.mjs";export{e as ensureCommand};
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e,t}from"./messages-qcLhD-Gc.mjs";import{A as n,At as r,D as i,F as a,Ft as o,Gt as s,J as c,Jt as l,K as ee,Kt as te,M as ne,O as re,P as ie,Pt as ae,R as u,Rt as oe,S as se,T as ce,Y as d,Yt as le,_ as ue,a as de,an as f,at as p,cn as m,ct as h,d as g,g as _,it as v,jt as y,kt as b,l as x,ln as S,lt as C,n as w,nt as T,o as E,ot as D,q as O,qt as k,r as A,rn as j,rt as M,s as N,sn as P,st as F,tn as I,u as L,v as R,w as z,z as B,zt as V}from"./color-
|
|
1
|
+
import{n as e,t}from"./messages-qcLhD-Gc.mjs";import{A as n,At as r,D as i,F as a,Ft as o,Gt as s,J as c,Jt as l,K as ee,Kt as te,M as ne,O as re,P as ie,Pt as ae,R as u,Rt as oe,S as se,T as ce,Y as d,Yt as le,_ as ue,a as de,an as f,at as p,cn as m,ct as h,d as g,g as _,it as v,jt as y,kt as b,l as x,ln as S,lt as C,n as w,nt as T,o as E,ot as D,q as O,qt as k,r as A,rn as j,rt as M,s as N,sn as P,st as F,tn as I,u as L,v as R,w as z,z as B,zt as V}from"./color-nTiVIiHx.mjs";import{A as H,C as fe,D as pe,E as me,F as he,M as ge,N as _e,O as ve,P as ye,S as be,T as xe,_ as Se,a as Ce,b as we,c as Te,d as Ee,f as De,g as Oe,h as ke,i as Ae,j as U,k as je,l as Me,m as Ne,n as Pe,o as Fe,p as Ie,r as Le,s as Re,t as ze,u as Be,v as Ve,w as He,x as Ue,y as We}from"./agents-Dc-rbRUf.mjs";import{t as Ge}from"./capabilities-Bh_eBfhw.mjs";import{t as Ke}from"./commands-nkGABksp.mjs";import{_ as qe,g as Je,l as Ye,m as Xe,u as Ze,y as Qe}from"./provider-evidence-BjjRgpNG.mjs";import{t as $e}from"./update-planner-B74AB4_X.mjs";import{a as et,i as W,n as tt,r as nt,t as G}from"./agents-QYkiyHCD.mjs";import{t as rt}from"./ensure-D25oxWUc.mjs";import{t as it}from"./inspect-twIhr3au.mjs";import{t as at}from"./resolve-BOxNGmVh.mjs";import{n as ot,t as st}from"./schema-Bl1ZPNI9.mjs";import{n as ct,r as lt}from"./errors-DXzIacfk.mjs";function K(e,t={}){let n=h(),r=n.reduce((e,t)=>(e[t]=[],e),{}),i=[],a=[],o=[],s=[];for(let n of e){if(!n.inPath)continue;if(t.skipUntrackedInPath&&!n.installedState){o.push(n);continue}let e=J(n);if(e===`indeterminate`||e===`manual-required`||e===`blocked-source`){a.push(n);continue}if(e!==`upgrade`){s.push(n);continue}let c=d({agent:n.agent,installedState:n.installedState,methods:n.methods}),l=c.strategy===`managed`?c.getManagedInstallerType?.({agent:n.agent,installedState:n.installedState,methods:n.methods}):void 0;if(l){let e={inspection:n,installerType:l,strategy:`grouped`};r[l].push(e);continue}i.push({inspection:n,strategy:c.strategy===`self-update`?`self-update`:`manual`})}return{entries:[...n.flatMap(e=>r[e]),...i],grouped:r,manual:i,skippedManualCheck:a,untrackedInPath:o,upToDate:s}}function q(e){return J(e)===`upgrade`}function J(e){return $e({intent:{kind:`update`,targetId:`compatibility-update`,targetVersion:e.latestVersion},observation:{drift:{kind:`none`},kind:`present`,providerId:`compatibility`,providerTargetId:`compatibility-update`,providerTargetKind:`package`,targetId:`compatibility-update`,version:e.installedVersion},provider:{capabilities:[`observe`,`update`,`verify`],providerId:`compatibility`,targetId:`compatibility-update`,targetKind:`package`}}).decision}const ut=[`quantex-darwin-arm64`,`quantex-darwin-x64`,`quantex-linux-arm64`,`quantex-linux-x64`,`quantex-windows-x64.exe`];function dt(e){return`${e.sort((e,t)=>e.name.localeCompare(t.name)).map(e=>`${e.checksum} ${e.name}`).join(`
|
|
2
2
|
`)}\n`}function ft(e){let t=new Map;for(let n of e.split(/\r?\n/)){let e=n.trim();if(!e)continue;let[r,i]=e.split(/\s+/,2),a=i?.replace(/^\*/,``);r&&a&&t.set(a,r)}return t}function Y(e){let t=e.match(/^quantex-(darwin|linux|windows)-(arm64|x64)(?:\.exe)?$/);if(t)return{arch:t[2]===`arm64`?`arm64`:`x64`,platform:t[1]===`windows`?`win32`:t[1]===`darwin`?`darwin`:`linux`}}function X(e){return e?e.startsWith(`git+`)?e.slice(4).replace(/\.git$/,``):e.startsWith(`git@github.com:`)?e.replace(`git@github.com:`,`https://github.com/`).replace(/\.git$/,``):e.replace(/\.git$/,``):`https://github.com/Drswith/quantex-cli`}function Z(e){return e.includes(`beta`)?`beta`:`stable`}function pt(e){let t=X(e.repositoryUrl),n=Z(e.version),r=e.files.map(n=>{let r=Y(n.name);if(!r)return;let i=e.checksums.get(n.name);if(!i)throw Error(`Missing checksum entry for ${n.name}.`);return{arch:r.arch,checksum:i,downloadUrl:`${t}/releases/download/v${e.version}/${n.name}`,name:n.name,platform:r.platform,size:n.size}}).filter(e=>e!==void 0).sort((e,t)=>e.name.localeCompare(t.name));if(r.length===0)throw Error(`No release binaries were found when creating manifest.json.`);return{assets:r,channel:n,version:e.version}}function mt(e,t){if(e.assets.length===0)throw Error(`manifest.json must contain at least one binary asset.`);let n=new Set(e.assets.map(e=>e.name));for(let e of ut)if(!n.has(e))throw Error(`manifest.json is missing required release asset: ${e}.`);for(let n of e.assets){let e=t.get(n.name);if(!e)throw Error(`manifest.json references ${n.name}, but it is missing from SHA256SUMS.txt.`);if(n.checksum!==e)throw Error(`manifest.json checksum mismatch for ${n.name}.`);if(!Y(n.name))throw Error(`manifest.json contains an invalid binary asset name: ${n.name}.`)}}async function ht(e){let t=await W(e);return{agent:e,inspection:t,updateAvailable:q(t)}}async function gt(){return _t(await G(),{skipUntrackedInPath:!0})}function _t(e,t={}){let n=K(e,t),r=[],i=h().map(e=>vt(e,n.grouped[e],r)).filter(e=>e!==void 0);return{entries:n.entries.map(e=>$(e.inspection)),grouped:i,manual:[...r,...n.manual.map(e=>$(e.inspection))],skippedManualCheck:n.skippedManualCheck,untrackedInPath:n.untrackedInPath,upToDate:n.upToDate}}function vt(e,t,n){if(t.length===0)return;let r=t.map(e=>$(e.inspection)),i=r.filter(Q);if(n.push(...r.filter(e=>!Q(e))),i.length!==0)return{type:e,packages:i.map(e=>e.package),updates:i}}function Q(e){return!!e.package?.packageName}function $(e){let t=d({agent:e.agent,installedState:e.installedState,methods:e.methods}),n=t.getManagedInstallerType?.({agent:e.agent,installedState:e.installedState,methods:e.methods});return{agent:e.agent,inspection:e,installerType:n,package:n?yt(e.agent,e.installedState,e.methods,n):void 0,state:e.installedState,strategy:t.strategy}}function yt(e,t,n,r){if(t?.packageName&&t.installType===r)return{packageName:t.packageName,binaryName:r===`deno`?t.binaryName:void 0,packageInstallArgs:t.packageInstallArgs,packageTargetKind:t.packageTargetKind};let i=n.find(e=>e.type===r);if(!i)return;let a=T(e,i);if(a)return{packageName:a,binaryName:i.binaryName??(r===`deno`?e.binaryName:void 0),packageInstallArgs:i.packageInstallArgs,packageTargetKind:i.packageTargetKind}}async function bt(e,t){try{let n=await j(I([e,...t]));return{success:n===0,exitCode:n}}catch{return{success:!1,exitCode:1}}}export{_e as agentCatalogEntrySchema,ye as agentCatalogJsonSchema,he as agentCatalogSchema,ee as agentUpdateProviders,Ae as autohand,_ as canAutoUpdateSelf,M as canLookupLatestVersionForInstallType,O as canResolveAgentUpdate,v as canUninstallInstallType,p as canUpdateInstallType,Ge as capabilitiesCommand,Ce as claude,Fe as codebuddy,Re as codewhale,Te as codex,Ke as commandsCommand,Me as copilot,w as createErrorResult,pt as createReleaseManifest,A as createSuccessResult,K as createUpdatePlan,Be as cursor,Ee as deepcode,ue as detectSelfInstallSource,De as devin,Ie as droid,de as emitCommandResult,rt as ensureCommand,bt as execCommand,dt as formatChecksums,Ne as gemini,ke as genie,ze as getAgentByLookupName,Pe as getAgentByNameOrAlias,t as getAgentUpdateFailureHint,c as getAgentUpdateStrategy,Le as getAllAgents,b as getBinaryPath,u as getBinaryReleaseAssetName,B as getBinaryReleaseDownloadUrl,U as getCatalogAgent,ge as getCatalogAgents,f as getCliContext,ae as getConfigDir,o as getConfigFilePath,ct as getExitCodeForError,lt as getExitCodeForResult,D as getInstallLifecycle,se as getInstalledAgentState,r as getInstalledVersion,F as getInstallerCapabilities,y as getLatestVersion,Qe as getManagedInstaller,e as getManualAgentUpdateMessage,E as getManualSelfUpgradeCommand,Ye as getOrderedInstallMethods,s as getPlatform,st as getSchemaCatalog,z as getSelfState,L as getSelfUpgradeRecoveryHint,g as getSelfUpgradeRecoveryHintForInspection,R as getSelfVersion,ht as getSingleAgentUpdateStatus,ce as getStateFilePath,Oe as grok,Se as hermes,W as inspectAgent,et as inspectAllAgents,it as inspectCommand,G as inspectRegisteredAgents,N as inspectSelf,Ze as installAgent,te as isBinaryInPath,k as isBunAvailable,l as isDenoAvailable,q as isInspectionUpdateAvailable,C as isManagedInstallType,le as isNpmAvailable,Ve as jcode,We as junie,we as kilo,oe as loadConfig,i as loadState,Ue as mimo,X as normalizeRepositoryUrl,be as omp,fe as openclaw,He as opencode,xe as openhands,Y as parseBinaryTarget,ft as parseChecksums,me as pi,gt as planAgentUpdates,pe as qoder,ve as reasonix,re as removeInstalledAgentState,P as resetCliContext,tt as resolveAgent,nt as resolveAgentInspection,d as resolveAgentUpdateProvider,m as resolveCliContext,at as resolveCommand,Z as resolveReleaseChannel,V as saveConfig,n as saveState,ot as schemaCommand,S as setCliContext,ne as setInstalledAgentState,ie as setSelfInstallSource,a as setSelfUpdateNoticeState,Xe as uninstallAgent,Je as updateAgent,qe as updateAgentsByType,x as upgradeSelf,mt as validateReleaseManifest,je as vibe,H as vtcode};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{X as e,Z as t,a as n,n as r,r as i,t as a}from"./color-
|
|
1
|
+
import{X as e,Z as t,a as n,n as r,r as i,t as a}from"./color-nTiVIiHx.mjs";import{r as o}from"./lifecycle-observations-DulNFMcZ.mjs";import{t as s}from"./agent-inspection-wRTbdD0j.mjs";async function c(a){let c=await o(a);if(!c)return n(r({action:`info`,error:{code:`AGENT_NOT_FOUND`,details:{input:a},message:`Unknown agent: ${a}`},target:{kind:`agent`,name:a}}),l);let{agent:u}=c,d=s(c),f=u.selfUpdate?[u.selfUpdate.command,...u.selfUpdate.fallbackCommands??[]].map(e=>e.join(` `)):[];return n(i({action:`info`,data:{agent:{aliases:u.lookupAliases??[],binaryName:u.binaryName,displayName:u.displayName,installMethods:d.methods.map(n=>({command:e(u,n),label:t(n),type:n.type})),name:u.name,packageName:u.packages?.npm,selfUpdateCommands:f},inspection:{binaryPath:d.binaryPath,installed:d.inPath,installedVersion:d.installedVersion,latestVersion:d.latestVersion,lifecycle:d.lifecycle,sourceLabel:d.inPath?d.sourceLabel:void 0}},target:{kind:`agent`,name:u.name}}),l)}function l(e){if(e.error){console.log(a.red(e.error.message));return}if(e.data){console.log(a.bold(`\n${e.data.agent.displayName}\n`)),console.log(` Name: ${e.data.agent.name}`),console.log(` Aliases: ${e.data.agent.aliases.join(`, `)||`-`}`),console.log(` Package: ${e.data.agent.packageName??`-`}`),console.log(` Binary: ${e.data.agent.binaryName}`),console.log(` Update: ${e.data.agent.selfUpdateCommands.join(` || `)||`-`}`),console.log(` Installed: ${e.data.inspection.installed?a.green(`Yes`):a.red(`No`)}`),e.data.inspection.sourceLabel&&console.log(` Source: ${e.data.inspection.sourceLabel}`),e.data.inspection.installed&&console.log(` Lifecycle: ${e.data.inspection.lifecycle}`),e.data.inspection.installedVersion&&console.log(` Version: ${e.data.inspection.installedVersion}`),e.data.inspection.latestVersion&&console.log(` Latest: ${e.data.inspection.latestVersion}`),e.data.inspection.binaryPath&&console.log(` Path: ${e.data.inspection.binaryPath}`),console.log(a.bold(`
|
|
2
2
|
Install Methods:`));for(let t of e.data.agent.installMethods)console.log(` ${a.green(`+`)} [${t.label}] ${t.command}`);console.log()}}export{c as infoCommand};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./inspect-twIhr3au.mjs";export{e as inspectCommand};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{X as e,Z as t,a as n,n as r,r as i,t as a}from"./color-
|
|
1
|
+
import{X as e,Z as t,a as n,n as r,r as i,t as a}from"./color-nTiVIiHx.mjs";import{r as o}from"./lifecycle-observations-DulNFMcZ.mjs";import{t as s}from"./agent-inspection-wRTbdD0j.mjs";async function c(a){let c=await o(a);if(!c)return n(r({action:`inspect`,error:{code:`AGENT_NOT_FOUND`,details:{input:a},message:`Unknown agent: ${a}`},target:{kind:`agent`,name:a}}),l);let{agent:u}=c,d=s(c),f=u.selfUpdate?[u.selfUpdate.command,...u.selfUpdate.fallbackCommands??[]].map(e=>e.join(` `)):[];return n(i({action:`inspect`,data:{agent:{aliases:u.lookupAliases??[],binaryName:u.binaryName,displayName:u.displayName,installMethods:d.methods.map(n=>({command:e(u,n),label:t(n),type:n.type})),name:u.name,packageName:u.packages?.npm,selfUpdateCommands:f},capabilities:{canAutoInstall:d.methods.length>0,canAutoUninstall:d.inPath&&d.lifecycle===`managed`,canRun:d.inPath,canSelfUpdate:f.length>0},inspection:{binaryPath:d.binaryPath,installed:d.inPath,installedVersion:d.installedVersion,latestVersion:d.latestVersion,lifecycle:d.lifecycle,sourceLabel:d.inPath?d.sourceLabel:void 0,updateLabel:d.updateLabel}},target:{kind:`agent`,name:u.name}}),l)}function l(e){if(e.error){console.log(a.red(e.error.message));return}if(e.data){console.log(a.bold(`\n${e.data.agent.displayName}\n`)),console.log(` Name: ${e.data.agent.name}`),console.log(` Aliases: ${e.data.agent.aliases.join(`, `)||`-`}`),console.log(` Package: ${e.data.agent.packageName??`-`}`),console.log(` Binary: ${e.data.agent.binaryName}`),console.log(` Installed: ${e.data.inspection.installed?a.green(`Yes`):a.red(`No`)}`),console.log(` Update Mode: ${e.data.inspection.updateLabel}`),console.log(` Self Update: ${e.data.agent.selfUpdateCommands.join(` || `)||`-`}`),e.data.inspection.sourceLabel&&console.log(` Source: ${e.data.inspection.sourceLabel}`),e.data.inspection.installedVersion&&console.log(` Version: ${e.data.inspection.installedVersion}`),e.data.inspection.latestVersion&&console.log(` Latest: ${e.data.inspection.latestVersion}`),e.data.inspection.binaryPath&&console.log(` Path: ${e.data.inspection.binaryPath}`),console.log(a.bold(`
|
|
2
2
|
Capabilities:`)),console.log(` auto-install: ${e.data.capabilities.canAutoInstall?`yes`:`no`}`),console.log(` self-update: ${e.data.capabilities.canSelfUpdate?`yes`:`no`}`),console.log(` auto-uninstall: ${e.data.capabilities.canAutoUninstall?`yes`:`no`}`),console.log(` runnable: ${e.data.capabilities.canRun?`yes`:`no`}`),console.log(a.bold(`
|
|
3
3
|
Install Methods:`));for(let t of e.data.agent.installMethods)console.log(` ${a.green(`+`)} [${t.label}] ${t.command}`);console.log()}}export{c as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as e,a as t,an as n,et as r,i,n as a,r as o,t as s}from"./color-
|
|
1
|
+
import{I as e,a as t,an as n,et as r,i,n as a,r as o,t as s}from"./color-nTiVIiHx.mjs";import{v as c}from"./provider-evidence-BjjRgpNG.mjs";import{t as l}from"./agent-installation-BkHxGD5U.mjs";import{r as u}from"./lifecycle-observations-DulNFMcZ.mjs";import{n as d}from"./agents-QYkiyHCD.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-CgBsxSsM.mjs";import{o as _}from"./lifecycle-policy-a_ing0Qc.mjs";async function v(e){let r=_(Array.isArray(e)?e:[e]);if(r.length<=1)return t(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(n().cancelled)break;let t=E(e,await y(e));if(s.push(t),i({action:`install`,data:t,target:{kind:`agent`,name:t.agent.name},type:`progress`}),n().cancelled)break}let c={results:s,scope:`batch`,summary:O(s)};return n().cancelled&&s.length<r.length?t(a({action:`install`,data:c,error:{code:`CANCELLED`,message:`Install was cancelled before all agents could be installed.`},target:{kind:`agent`}}),j):t(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(t,r={}){if(n().cancelled||!d(t)||h())return b(t,r);try{return await c(()=>b(t,r))}catch(n){if(e(n))return a({action:`install`,...f(n,{kind:`agent`,name:t}),target:{kind:`agent`,name:t}});throw n}}async function b(t,i){if(n().cancelled)return a({action:`install`,error:{code:`CANCELLED`,message:`Install was cancelled before it could start.`},target:{kind:`agent`,name:t}});let o=await u(t);if(!o)return a({action:`install`,error:{code:`AGENT_NOT_FOUND`,details:{input:t},message:`Unknown agent: ${t}`},target:{kind:`agent`,name:t}});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 +1 @@
|
|
|
1
|
-
import{At as e,C as t,Gt as n,Kt as r,Mt as i,Ot as a,S as o,Xt as s,jt as c,kt as l,tt as u,ut as d}from"./color-
|
|
1
|
+
import{At as e,C as t,Gt as n,Kt as r,Mt as i,Ot as a,S as o,Xt as s,jt as c,kt as l,tt as u,ut as d}from"./color-nTiVIiHx.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-BjjRgpNG.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 n=a(e,t);return n===void 0?e!==t:n!==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,r={}){return N({clock:()=>new Date().toISOString(),getAllAgents:p,getAgentByNameOrAlias:f,getLatestVersion:(t,n,r)=>B(t,n,r,e),getOrderedInstallMethods:g,getPlatform:n,getResolvedBinaryPath:t=>i(t,e),inspectExecutable:(t,n)=>R(t,n,e),observeAgentLifecycle:x,providerRegistry:d,readInstalledState:o,readReceipt:t,signal:e.signal,timeoutMs:e.timeoutMs},r)}async function L(e){let t=s(),n=I(t.context);try{return await t.run(()=>e(n))}finally{t.dispose()}}async function R(e,t,n){let i=await r(e.binaryName,n);if(!i)return{present:!1};let[a,o]=await Promise.all([l(e.binaryName,n),z(e,t,n)]);return{path:a,present:i,version:o}}async function z(t,n,r){return e(t.binaryName,t.versionProbe,r)}async function B(e,t,n,r){let i=u(e,t,n);return i?c(i,`latest`,{context:r}):void 0}export{F as n,P as r,I as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Kt as e,Ot as t,Xt as n,dt as r}from"./color-DRZEEJuf.mjs";import{a as i,n as a,t as o}from"./provider-evidence-CQl_J-gP.mjs";import{r as s}from"./lifecycle-observations-AFJINgqR.mjs";import{n as c}from"./agents-BHbkPVvR.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:B(t.signal)});continue}let a;try{a=await j(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:Te(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===`updated`}async function he(e){let t=[...new Set(await e.listRegisteredAgentNames())].sort(R),n=[];for(let r of t){let t=await A(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=Ce(e);if(!t)continue;let n=r.get(t)??[];n.push(e),r.set(t,n)}let i=[...r.entries()].sort(([e],[t])=>R(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!==`blocked`||e.category!==`unsafe-source`)return!1;let t=e.before;return t.observation.kind===`absent`&&t.observation.drift.kind===`none`&&!t.executable.present&&t.binding===void 0&&t.persistedBinding===void 0&&t.installedState===void 0&&t.receipt===void 0}async function A(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:B(t.signal)};let r=ve(n);if(!r)return{before:n,category:n.observation.drift.kind===`untracked`?`untracked`:`unsafe-source`,kind:`blocked`,reason:`The recorded update source does not match live provider evidence.`};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 xe(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}}}async function j(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:B(t.signal)};let n=()=>_e(e,t);return t.withMutationLock?t.withMutationLock(n):n()}async function _e(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:B(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:B(t.signal)};let a=ye(e,i);if(a.kind!==`satisfied`)return{after:i,kind:`verification-failed`,plan:e,providerOutcome:r,verification:a};let o=be(e,i,t.clock());try{await t.writeReceipt(o)}catch(t){return{after:i,kind:`receipt-failed`,plan:e,providerOutcome:r,reason:we(t),verification:a}}return{after:i,kind:`updated`,plan:e,providerOutcome:r,receipt:o,verification:a}}function ve(e){let t=e.binding,n=e.persistedBinding,r=e.observation;if(!(!t||!n||r.kind!==`present`||r.drift.kind!==`none`)&&z(t,n,e.agent.binaryName)&&!(r.providerId!==t.providerId||r.providerTargetId!==t.target.id||r.providerTargetKind!==t.target.kind))return t}function ye(e,n){let r={expectedVersion:e.plannedTargetVersion,kind:`version-satisfies`,targetId:e.binding.target.id};if(!n)return{kind:`indeterminate`,postcondition:r,reason:`The agent disappeared after update.`};if(!z(e.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(e=>t(e,a)!==0)?{kind:`unsatisfied`,observation:n.observation,postcondition:r,reason:`Fresh observation contains conflicting versions: ${i.join(`, `)}.`}:a===void 0||i.some(n=>(t(n,e.plannedTargetVersion)??-1)<0)?{kind:`unsatisfied`,observation:n.observation,postcondition:r,reason:`Observed version ${a??`unknown`} does not satisfy target ${e.plannedTargetVersion}.`}:{kind:`satisfied`,observation:n.observation,postcondition:r}}function be(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 xe(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=${L(e)};outcome=${t.kind}`;if(t.kind===`planned`){let{binding:e,plannedTargetVersion:r,planning:i,providerOptions:a}=t.planned;return`${n};provider=${L(e.providerId)};providerTargetKind=${L(e.target.kind)};providerTarget=${L(e.target.id)};binary=${L(e.target.binaryName)};decision=${i.decision};plan=${L(i.plan.id)};version=${L(r)};${I(a)}`}return t.kind===`unknown-agent`?`${n};agentName=${L(t.agentName)}`:t.kind===`blocked`?`${n};category=${t.category};reason=${L(t.reason)}`:t.kind===`cancelled`?`${n};reason=${L(t.reason)}`:t.kind===`timed-out`?`${n};timeoutMs=${t.timeoutMs}`:`${n};providerOutcome=${Se(t.providerOutcome)}`}function Se(e){switch(e.kind){case`unsupported`:return`unsupported;operation=${L(e.operation)};reason=${L(e.reason)}`;case`unavailable`:return`unavailable;command=${P(e.command)};reason=${L(e.reason)};retryable=${L(e.retryable)}`;case`failed`:return`failed;command=${P(e.command)};evidence=${F(e.evidence)};exitCode=${L(e.exitCode)};reason=${L(e.reason)};remediation=${L(e.remediation)};retryable=${L(e.retryable)}`;case`cancelled`:return`cancelled;reason=${L(e.reason)}`;case`timed-out`:return`timed-out;timeoutMs=${L(e.timeoutMs)}`;case`indeterminate`:return`indeterminate;evidence=${F(e.evidence)};reason=${L(e.reason)}`}}function P(e){return e?`argv:${e.map(L).join(`,`)}`:`undefined`}function F(e){return e?`items:${e.map(e=>`kind=${L(e.kind)}:value=${L(e.value)}`).sort(R).join(`,`)}`:`undefined`}function Ce(e){if(e.outcome.kind!==`planned`||e.outcome.planned.planning.decision!==`upgrade`)return;let t=e.outcome.planned;return`provider=${L(t.binding.providerId)};${I(t.providerOptions)}`}function I(e){return`distTag=${L(e?.distTag)};registry=${L(e?.registry)};updateStrategy=${L(e?.updateStrategy)}`}function L(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 R(e,t){return e<t?-1:e>t?1:0}function z(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 B(e){if(e.reason!==void 0)return e.reason instanceof Error?e.reason.message:String(e.reason)}function we(e){return e instanceof Error&&e.message.trim()?e.message:`Failed to persist lifecycle receipt.`}function Te(e){return e instanceof Error&&e.message.trim()?e.message:`Unexpected lifecycle update failure.`}function Ee(e,t=e=>c(e)?.name){return[...u({action:`install`,targets:e.map(e=>t(e)??e)}).targets]}async function De(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`){let t=K(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 J(t.observe,r);if(n.kind===`failed`||!n.observation)return;let i=K(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=Le(e,r);if(!n)return{kind:`inconclusive`};let i=await J(t.observe,r);return i.kind===`failed`||!i.observation?{kind:`inconclusive`}:{kind:q(i.observation,n)}}}}async function Oe(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`)a=K(t.after,t.plan,t.receipt);else if(t?.kind===`not-executed`&&t.plan.planning.decision===`up-to-date`){let r=await J(e.observe,n.agentName);if(r.kind===`failed`||!r.observation)return;a=K(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=Re(t,n);if(!r)return{kind:`inconclusive`};let i=await Promise.all(n.map(async t=>{let n=await J(e.observe,t);return n.kind===`failed`||!n.observation?`inconclusive`:q(n.observation,r.get(t))}));return i.includes(`drifted`)?{kind:`drifted`}:i.includes(`inconclusive`)?{kind:`inconclusive`}:{kind:`satisfied`}}}}async function ke(e,t={}){let n=t.observe??s,r=Ee(e,t.resolveTarget),i=await Promise.all(r.map(e=>Y(n,e)));return{async captureEvidence(){let e=await Promise.all(r.map(async e=>{let t=await Y(n,e);return t.kind===`success`&&t.observation?U(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:Me((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=Ae(e,r);if(!t)return{kind:`inconclusive`};let i=await Promise.all(r.map(async e=>{let r=await Y(n,e);if(r.kind===`failed`||!r.observation)return`inconclusive`;let i=t.get(e),a=U(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 Ae(e,t){if(e.postcondition.kind!==`all-of`||!b(e.receipt)||!je(e.postcondition)||e.postcondition.items.length!==t.length||e.receipt.items.length!==t.length)return;let n=V(e.postcondition.items),r=V(e.receipt.items);if(!n||!r||!H(n,t)||!H(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 je(e){try{return d(g(e.items))===d(e)}catch{return!1}}function V(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 H(e,t){return e.size===t.length&&t.every(t=>e.has(t))}function Me(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=Ne(n[e],r[e]);if(t!==0)return t}return 0})}function Ne(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 Pe(t,n={}){let r=n.observe??s,i=await r(t),a=i?.agent.name??t,o=i?ze(i):void 0,c=n.observeProviderTarget??He,l=n.isExecutablePresent??e;return{async captureEvidence(){if(o&&Ge(await Ue(c,o.binding),o.binding)&&await We(l,o.executableName)===!1)return Ve(o)},request:u({action:`uninstall`,targets:[a]}),resolvedPlan:{kind:`agent-absence`,targetId:a},async validateLive(e){if(!Q(e))return{kind:`inconclusive`};let t=Be({postcondition:e.postcondition,receipt:e.receipt},a);if(!t)return{kind:`inconclusive`};let n=await Y(r,a);if(n.kind===`failed`||!n.observation)return{kind:`inconclusive`};let i=Fe(n.observation);if(i!==`clear`)return{kind:i};let o=await Ue(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 We(l,t.executableName);return s===void 0?{kind:`inconclusive`}:s?{kind:`drifted`}:{kind:`satisfied`}}}}function Fe(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 Ie(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=U(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=U(t,e.receipt);return r.kind===`compatible`?d(r.evidence)===d(e)?{kind:`satisfied`}:{kind:`drifted`}:{kind:r.kind}}}}function U(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=W([e.executable.version,i.version,a.value.version]);if(s.length>1)return{kind:`drifted`};let c=W([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=W([e.executable.path,i.executablePath,a.value.executablePath]);if(u.length>1)return{kind:`drifted`};let d=W([o.executablePath,G(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 W(e){return[...new Set(e.filter(e=>e!==void 0))]}function G(e,t){let n=e?.[t];return typeof n==`string`?n:void 0}function Le(e,n){if(!Q(e)||e.postcondition.kind!==`version-satisfies`)return;let r=G(e.receipt,`agentTargetId`),i=Z(e.postcondition,`agentTargetId`),a=Z(e.postcondition,`providerId`),o=Z(e.postcondition,`providerTargetKind`),s=G(e.receipt,`providerTargetKind`),c=e.receipt.providerId;if(!(e.postcondition.expectedVersion.length===0||t(e.postcondition.expectedVersion,e.postcondition.expectedVersion)===void 0||r!==n||i!==n||a!==c||o!==s||e.postcondition.targetId!==e.receipt.targetId||!Ke(c)||!qe(s)||!$(c,s)))return{agentTargetId:n,expectedVersion:e.postcondition.expectedVersion,providerId:c,providerTargetId:e.receipt.targetId,providerTargetKind:s}}function Re(e,t){if(e.postcondition.kind!==`all-of`||!b(e.receipt)||!je(e.postcondition)||e.postcondition.items.length!==t.length||e.receipt.items.length!==t.length)return;let n=V(e.postcondition.items),r=V(e.receipt.items);if(!n||!r||!H(n,t)||!H(r,t))return;let i=new Map;for(let e of t){let t=Le({postcondition:n.get(e),receipt:r.get(e)},e);if(!t)return;i.set(e,t)}return i}function K(e,t,n=e.receipt){let r={agentTargetId:t.before.agent.name,expectedVersion:t.plannedTargetVersion,providerId:t.binding.providerId,providerTargetId:t.binding.target.id,providerTargetKind:t.binding.target.kind},i=q(e,r,n);if(i!==`satisfied`)return{kind:i};if(e.observation.kind!==`present`||!n)return{kind:`inconclusive`};let a=e.observation,o=W([e.executable.version,a.version])[0];return{evidence:{postcondition:{agentTargetId:r.agentTargetId,expectedVersion:r.expectedVersion,kind:`version-satisfies`,providerId:r.providerId,providerTargetKind:r.providerTargetKind,targetId:r.providerTargetId},receipt:{agentTargetId:r.agentTargetId,executableName:n.executableName??e.agent.binaryName,...a.executablePath?{executablePath:a.executablePath}:{},providerId:r.providerId,providerTargetKind:r.providerTargetKind,schemaVersion:n.schemaVersion,targetId:r.providerTargetId,version:o}},kind:`compatible`}}function q(e,n,r=e.receipt){if(e.observation.kind===`indeterminate`||e.observation.drift.kind===`indeterminate`)return`inconclusive`;if(e.agent.name!==n.agentTargetId||e.observation.kind!==`present`||e.observation.drift.kind!==`none`||!e.executable.present)return`drifted`;if(!e.binding||!e.persistedBinding||!r)return`inconclusive`;let i={providerId:n.providerId,target:{id:n.providerTargetId,kind:n.providerTargetKind}};if(!a(i,e.binding,e.agent.binaryName)||!a(i,e.persistedBinding,e.agent.binaryName)||e.observation.providerId!==n.providerId||e.observation.providerTargetId!==n.providerTargetId||e.observation.providerTargetKind!==n.providerTargetKind||r.targetId!==n.agentTargetId||r.providerId!==n.providerId||r.providerTargetId!==n.providerTargetId||r.providerTargetKind!==n.providerTargetKind)return`drifted`;let o=W([e.executable.version,e.observation.version]);if(o.length===0)return`inconclusive`;if(o.length>1)return`drifted`;let s=t(o[0],n.expectedVersion);return s===void 0?`inconclusive`:s<0?`drifted`:`satisfied`}async function J(e,t){try{return{kind:`success`,observation:await e(t)}}catch{return{kind:`failed`}}}function ze(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 Be(e,t){let n=G(e.receipt,`agentTargetId`),r=Z(e.postcondition,`agentTargetId`),i=G(e.receipt,`executableName`),a=G(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||!Ke(o)||!qe(a)||!$(o,a)))return{binding:{providerId:o,target:{binaryName:i,id:e.receipt.targetId,kind:a}},executableName:i}}function Ve(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 He(e){let t=n();try{return await t.run(()=>o(e,{signal:t.context.signal,timeoutMs:t.context.timeoutMs}))}finally{t.dispose()}}async function Y(e,t){try{return{kind:`success`,observation:await e(t)}}catch{return{kind:`failed`}}}async function Ue(e,t){try{return await e(t)}catch(e){return{kind:`failed`,reason:e instanceof Error?e.message:String(e),retryable:!1}}}async function We(e,t){try{return await e(t)}catch{return}}function Ge(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 Ke(e){return r.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{De as a,j as c,re as d,d as f,Ie as i,he as l,ke as n,Ee as o,Oe as r,pe as s,Pe as t,A as u};
|
|
1
|
+
import{Kt as e,Ot as t,Xt as n,dt as r}from"./color-nTiVIiHx.mjs";import{a as i,n as a,t as o}from"./provider-evidence-BjjRgpNG.mjs";import{r as s}from"./lifecycle-observations-DulNFMcZ.mjs";import{n as c}from"./agents-QYkiyHCD.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:B(t.signal)});continue}let a;try{a=await j(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:Te(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===`updated`}async function he(e){let t=[...new Set(await e.listRegisteredAgentNames())].sort(R),n=[];for(let r of t){let t=await A(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=Ce(e);if(!t)continue;let n=r.get(t)??[];n.push(e),r.set(t,n)}let i=[...r.entries()].sort(([e],[t])=>R(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!==`blocked`||e.category!==`unsafe-source`)return!1;let t=e.before;return t.observation.kind===`absent`&&t.observation.drift.kind===`none`&&!t.executable.present&&t.binding===void 0&&t.persistedBinding===void 0&&t.installedState===void 0&&t.receipt===void 0}async function A(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:B(t.signal)};let r=ve(n);if(!r)return{before:n,category:n.observation.drift.kind===`untracked`?`untracked`:`unsafe-source`,kind:`blocked`,reason:`The recorded update source does not match live provider evidence.`};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 xe(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}}}async function j(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:B(t.signal)};let n=()=>_e(e,t);return t.withMutationLock?t.withMutationLock(n):n()}async function _e(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:B(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:B(t.signal)};let a=ye(e,i);if(a.kind!==`satisfied`)return{after:i,kind:`verification-failed`,plan:e,providerOutcome:r,verification:a};let o=be(e,i,t.clock());try{await t.writeReceipt(o)}catch(t){return{after:i,kind:`receipt-failed`,plan:e,providerOutcome:r,reason:we(t),verification:a}}return{after:i,kind:`updated`,plan:e,providerOutcome:r,receipt:o,verification:a}}function ve(e){let t=e.binding,n=e.persistedBinding,r=e.observation;if(!(!t||!n||r.kind!==`present`||r.drift.kind!==`none`)&&z(t,n,e.agent.binaryName)&&!(r.providerId!==t.providerId||r.providerTargetId!==t.target.id||r.providerTargetKind!==t.target.kind))return t}function ye(e,n){let r={expectedVersion:e.plannedTargetVersion,kind:`version-satisfies`,targetId:e.binding.target.id};if(!n)return{kind:`indeterminate`,postcondition:r,reason:`The agent disappeared after update.`};if(!z(e.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(e=>t(e,a)!==0)?{kind:`unsatisfied`,observation:n.observation,postcondition:r,reason:`Fresh observation contains conflicting versions: ${i.join(`, `)}.`}:a===void 0||i.some(n=>(t(n,e.plannedTargetVersion)??-1)<0)?{kind:`unsatisfied`,observation:n.observation,postcondition:r,reason:`Observed version ${a??`unknown`} does not satisfy target ${e.plannedTargetVersion}.`}:{kind:`satisfied`,observation:n.observation,postcondition:r}}function be(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 xe(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=${L(e)};outcome=${t.kind}`;if(t.kind===`planned`){let{binding:e,plannedTargetVersion:r,planning:i,providerOptions:a}=t.planned;return`${n};provider=${L(e.providerId)};providerTargetKind=${L(e.target.kind)};providerTarget=${L(e.target.id)};binary=${L(e.target.binaryName)};decision=${i.decision};plan=${L(i.plan.id)};version=${L(r)};${I(a)}`}return t.kind===`unknown-agent`?`${n};agentName=${L(t.agentName)}`:t.kind===`blocked`?`${n};category=${t.category};reason=${L(t.reason)}`:t.kind===`cancelled`?`${n};reason=${L(t.reason)}`:t.kind===`timed-out`?`${n};timeoutMs=${t.timeoutMs}`:`${n};providerOutcome=${Se(t.providerOutcome)}`}function Se(e){switch(e.kind){case`unsupported`:return`unsupported;operation=${L(e.operation)};reason=${L(e.reason)}`;case`unavailable`:return`unavailable;command=${P(e.command)};reason=${L(e.reason)};retryable=${L(e.retryable)}`;case`failed`:return`failed;command=${P(e.command)};evidence=${F(e.evidence)};exitCode=${L(e.exitCode)};reason=${L(e.reason)};remediation=${L(e.remediation)};retryable=${L(e.retryable)}`;case`cancelled`:return`cancelled;reason=${L(e.reason)}`;case`timed-out`:return`timed-out;timeoutMs=${L(e.timeoutMs)}`;case`indeterminate`:return`indeterminate;evidence=${F(e.evidence)};reason=${L(e.reason)}`}}function P(e){return e?`argv:${e.map(L).join(`,`)}`:`undefined`}function F(e){return e?`items:${e.map(e=>`kind=${L(e.kind)}:value=${L(e.value)}`).sort(R).join(`,`)}`:`undefined`}function Ce(e){if(e.outcome.kind!==`planned`||e.outcome.planned.planning.decision!==`upgrade`)return;let t=e.outcome.planned;return`provider=${L(t.binding.providerId)};${I(t.providerOptions)}`}function I(e){return`distTag=${L(e?.distTag)};registry=${L(e?.registry)};updateStrategy=${L(e?.updateStrategy)}`}function L(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 R(e,t){return e<t?-1:e>t?1:0}function z(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 B(e){if(e.reason!==void 0)return e.reason instanceof Error?e.reason.message:String(e.reason)}function we(e){return e instanceof Error&&e.message.trim()?e.message:`Failed to persist lifecycle receipt.`}function Te(e){return e instanceof Error&&e.message.trim()?e.message:`Unexpected lifecycle update failure.`}function Ee(e,t=e=>c(e)?.name){return[...u({action:`install`,targets:e.map(e=>t(e)??e)}).targets]}async function De(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`){let t=K(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 J(t.observe,r);if(n.kind===`failed`||!n.observation)return;let i=K(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=Le(e,r);if(!n)return{kind:`inconclusive`};let i=await J(t.observe,r);return i.kind===`failed`||!i.observation?{kind:`inconclusive`}:{kind:q(i.observation,n)}}}}async function Oe(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`)a=K(t.after,t.plan,t.receipt);else if(t?.kind===`not-executed`&&t.plan.planning.decision===`up-to-date`){let r=await J(e.observe,n.agentName);if(r.kind===`failed`||!r.observation)return;a=K(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=Re(t,n);if(!r)return{kind:`inconclusive`};let i=await Promise.all(n.map(async t=>{let n=await J(e.observe,t);return n.kind===`failed`||!n.observation?`inconclusive`:q(n.observation,r.get(t))}));return i.includes(`drifted`)?{kind:`drifted`}:i.includes(`inconclusive`)?{kind:`inconclusive`}:{kind:`satisfied`}}}}async function ke(e,t={}){let n=t.observe??s,r=Ee(e,t.resolveTarget),i=await Promise.all(r.map(e=>Y(n,e)));return{async captureEvidence(){let e=await Promise.all(r.map(async e=>{let t=await Y(n,e);return t.kind===`success`&&t.observation?U(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:Me((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=Ae(e,r);if(!t)return{kind:`inconclusive`};let i=await Promise.all(r.map(async e=>{let r=await Y(n,e);if(r.kind===`failed`||!r.observation)return`inconclusive`;let i=t.get(e),a=U(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 Ae(e,t){if(e.postcondition.kind!==`all-of`||!b(e.receipt)||!je(e.postcondition)||e.postcondition.items.length!==t.length||e.receipt.items.length!==t.length)return;let n=V(e.postcondition.items),r=V(e.receipt.items);if(!n||!r||!H(n,t)||!H(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 je(e){try{return d(g(e.items))===d(e)}catch{return!1}}function V(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 H(e,t){return e.size===t.length&&t.every(t=>e.has(t))}function Me(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=Ne(n[e],r[e]);if(t!==0)return t}return 0})}function Ne(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 Pe(t,n={}){let r=n.observe??s,i=await r(t),a=i?.agent.name??t,o=i?ze(i):void 0,c=n.observeProviderTarget??He,l=n.isExecutablePresent??e;return{async captureEvidence(){if(o&&Ge(await Ue(c,o.binding),o.binding)&&await We(l,o.executableName)===!1)return Ve(o)},request:u({action:`uninstall`,targets:[a]}),resolvedPlan:{kind:`agent-absence`,targetId:a},async validateLive(e){if(!Q(e))return{kind:`inconclusive`};let t=Be({postcondition:e.postcondition,receipt:e.receipt},a);if(!t)return{kind:`inconclusive`};let n=await Y(r,a);if(n.kind===`failed`||!n.observation)return{kind:`inconclusive`};let i=Fe(n.observation);if(i!==`clear`)return{kind:i};let o=await Ue(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 We(l,t.executableName);return s===void 0?{kind:`inconclusive`}:s?{kind:`drifted`}:{kind:`satisfied`}}}}function Fe(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 Ie(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=U(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=U(t,e.receipt);return r.kind===`compatible`?d(r.evidence)===d(e)?{kind:`satisfied`}:{kind:`drifted`}:{kind:r.kind}}}}function U(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=W([e.executable.version,i.version,a.value.version]);if(s.length>1)return{kind:`drifted`};let c=W([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=W([e.executable.path,i.executablePath,a.value.executablePath]);if(u.length>1)return{kind:`drifted`};let d=W([o.executablePath,G(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 W(e){return[...new Set(e.filter(e=>e!==void 0))]}function G(e,t){let n=e?.[t];return typeof n==`string`?n:void 0}function Le(e,n){if(!Q(e)||e.postcondition.kind!==`version-satisfies`)return;let r=G(e.receipt,`agentTargetId`),i=Z(e.postcondition,`agentTargetId`),a=Z(e.postcondition,`providerId`),o=Z(e.postcondition,`providerTargetKind`),s=G(e.receipt,`providerTargetKind`),c=e.receipt.providerId;if(!(e.postcondition.expectedVersion.length===0||t(e.postcondition.expectedVersion,e.postcondition.expectedVersion)===void 0||r!==n||i!==n||a!==c||o!==s||e.postcondition.targetId!==e.receipt.targetId||!Ke(c)||!qe(s)||!$(c,s)))return{agentTargetId:n,expectedVersion:e.postcondition.expectedVersion,providerId:c,providerTargetId:e.receipt.targetId,providerTargetKind:s}}function Re(e,t){if(e.postcondition.kind!==`all-of`||!b(e.receipt)||!je(e.postcondition)||e.postcondition.items.length!==t.length||e.receipt.items.length!==t.length)return;let n=V(e.postcondition.items),r=V(e.receipt.items);if(!n||!r||!H(n,t)||!H(r,t))return;let i=new Map;for(let e of t){let t=Le({postcondition:n.get(e),receipt:r.get(e)},e);if(!t)return;i.set(e,t)}return i}function K(e,t,n=e.receipt){let r={agentTargetId:t.before.agent.name,expectedVersion:t.plannedTargetVersion,providerId:t.binding.providerId,providerTargetId:t.binding.target.id,providerTargetKind:t.binding.target.kind},i=q(e,r,n);if(i!==`satisfied`)return{kind:i};if(e.observation.kind!==`present`||!n)return{kind:`inconclusive`};let a=e.observation,o=W([e.executable.version,a.version])[0];return{evidence:{postcondition:{agentTargetId:r.agentTargetId,expectedVersion:r.expectedVersion,kind:`version-satisfies`,providerId:r.providerId,providerTargetKind:r.providerTargetKind,targetId:r.providerTargetId},receipt:{agentTargetId:r.agentTargetId,executableName:n.executableName??e.agent.binaryName,...a.executablePath?{executablePath:a.executablePath}:{},providerId:r.providerId,providerTargetKind:r.providerTargetKind,schemaVersion:n.schemaVersion,targetId:r.providerTargetId,version:o}},kind:`compatible`}}function q(e,n,r=e.receipt){if(e.observation.kind===`indeterminate`||e.observation.drift.kind===`indeterminate`)return`inconclusive`;if(e.agent.name!==n.agentTargetId||e.observation.kind!==`present`||e.observation.drift.kind!==`none`||!e.executable.present)return`drifted`;if(!e.binding||!e.persistedBinding||!r)return`inconclusive`;let i={providerId:n.providerId,target:{id:n.providerTargetId,kind:n.providerTargetKind}};if(!a(i,e.binding,e.agent.binaryName)||!a(i,e.persistedBinding,e.agent.binaryName)||e.observation.providerId!==n.providerId||e.observation.providerTargetId!==n.providerTargetId||e.observation.providerTargetKind!==n.providerTargetKind||r.targetId!==n.agentTargetId||r.providerId!==n.providerId||r.providerTargetId!==n.providerTargetId||r.providerTargetKind!==n.providerTargetKind)return`drifted`;let o=W([e.executable.version,e.observation.version]);if(o.length===0)return`inconclusive`;if(o.length>1)return`drifted`;let s=t(o[0],n.expectedVersion);return s===void 0?`inconclusive`:s<0?`drifted`:`satisfied`}async function J(e,t){try{return{kind:`success`,observation:await e(t)}}catch{return{kind:`failed`}}}function ze(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 Be(e,t){let n=G(e.receipt,`agentTargetId`),r=Z(e.postcondition,`agentTargetId`),i=G(e.receipt,`executableName`),a=G(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||!Ke(o)||!qe(a)||!$(o,a)))return{binding:{providerId:o,target:{binaryName:i,id:e.receipt.targetId,kind:a}},executableName:i}}function Ve(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 He(e){let t=n();try{return await t.run(()=>o(e,{signal:t.context.signal,timeoutMs:t.context.timeoutMs}))}finally{t.dispose()}}async function Y(e,t){try{return{kind:`success`,observation:await e(t)}}catch{return{kind:`failed`}}}async function Ue(e,t){try{return await e(t)}catch(e){return{kind:`failed`,reason:e instanceof Error?e.message:String(e),retryable:!1}}}async function We(e,t){try{return await e(t)}catch{return}}function Ge(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 Ke(e){return r.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{De as a,j as c,re as d,d as f,Ie as i,he as l,ke as n,Ee as o,Oe as r,pe as s,Pe as t,A as u};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as e,r as t,t as n}from"./color-
|
|
1
|
+
import{a as e,r as t,t as n}from"./color-nTiVIiHx.mjs";import{n as r}from"./lifecycle-observations-DulNFMcZ.mjs";import{t as i}from"./agent-inspection-wRTbdD0j.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
2
|
AI Agents:
|
|
3
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 +1 @@
|
|
|
1
|
-
import{Ct as e,Dt as t,Et as n,Gt as r,Ht as i,L as a,M as o,O as s,Rt as c,S as ee,St as te,Tt as ne,Vt as re,Wt as ie,Xt as l,_t as ae,an as u,at as d,bt as f,dt as p,ft as oe,gt as se,ht as ce,it as m,lt as h,mt as le,nt as g,pt as ue,rn as _,tn as v,ut as de,vt as fe,wt as pe,xt as me,yt as y}from"./color-DRZEEJuf.mjs";import b from"node:process";import{AsyncLocalStorage as he}from"node:async_hooks";async function x(e){let t=r(),n=typeof e==`function`?e(t):e;try{return b.platform===`win32`?await _(v([`powershell.exe`,`-Command`,n]))===0:await _(v([`sh`,`-c`,n]))===0}catch{return!1}}function S(e,t,n){return{type:e,getInstalledVersion:e=>n.getInstalledVersion(e),probePackagePresence:e=>n.probePackagePresence(e),isAvailable:e=>C(e,async e=>(await t.availability(e)).kind===`success`),install:async(e,n,r,i)=>t.install?C(i,i=>t.install({context:i,target:w(e,n,void 0,r)})):k(`install`),uninstall:async(e,n,r,i)=>t.uninstall?C(i,i=>t.uninstall({context:i,target:w(e,n,r?.binaryName)})):k(`uninstall`),update:async(e,n,r,i)=>{if(!t.update)return k(`update`);let a=T(r);return C(i,i=>t.update({context:i,...a?{options:a}:{},target:w(e,n,r?.binaryName,r?.packageInstallArgs)}))},updateMany:async(e,n,r)=>{if(!t.updateMany)return k(`update-many`);let i=T(n);return C(r,n=>t.updateMany({context:n,...i?{options:i}:{},targets:e.map(e=>w(e.packageName,e.packageTargetKind,e.binaryName,e.packageInstallArgs))}))}}}async function C(e,t){if(e)return t(e);let n=l();try{return await t(n.context)}finally{n.dispose()}}function w(e,t,n,r){return{...r?.length?{arguments:r}:{},...n?{binaryName:n}:{},id:e,kind:t??`package`}}function T(e){return e?.npmBunUpdateStrategy?{updateStrategy:e.npmBunUpdateStrategy}:void 0}function E(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=>C(e,async e=>(await t.availability(e)).kind===`success`),install:async(e,n,r,a)=>t.install?C(a,a=>t.install({context:a,target:i(e,n,r)})):k(`install`),uninstall:async(e,n,r,a)=>t.uninstall?C(a,a=>t.uninstall({context:a,target:i(e,n,void 0,r?.binaryName)})):k(`uninstall`),update:async(e,n,r,a)=>t.update?C(a,a=>t.update({context:a,target:i(e,n,r?.packageInstallArgs,r?.binaryName)})):k(`update`),updateMany:async(e,n,r)=>t.updateMany?C(r,n=>t.updateMany({context:n,targets:e.map(e=>i(e.packageName,e.packageTargetKind,e.packageInstallArgs,e.binaryName))})):k(`update-many`)}}const D={brew:E(`brew`,ie,e=>e===`cask`?`cask`:`formula`),bun:S(`bun`,t,{getInstalledVersion:e=>re(e),probePackagePresence:e=>i(e)}),cargo:E(`cargo`,n,()=>`package`),deno:E(`deno`,ne,()=>`tool`),mise:E(`mise`,f,()=>`tool`,{getInstalledVersion:e=>me(e),probePackagePresence:e=>te(e)}),npm:S(`npm`,ae,{getInstalledVersion:e=>fe(e),probePackagePresence:e=>y(e)}),pip:E(`pip`,se,()=>`package`),uv:E(`uv`,ue,()=>`tool`,{getInstalledVersion:e=>le(e),probePackagePresence:e=>ce(e)}),winget:E(`winget`,oe,()=>`id`)},ge=Object.fromEntries(Object.entries(D).map(([e,t])=>[e,ve(t)]));function _e(e){return ge[e]}function O(e){return D[e]}function ve(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 k(e){return{kind:`unsupported`,operation:e}}const A={resource:`agent lifecycle`,scope:[`agent-lifecycle`]},j=new he;function M(e){return j.getStore()?e():a(A,()=>j.run(!0,e))}async function N(){return(await c()).defaultPackageManager}async function P(){return{npmBunUpdateStrategy:(await c()).npmBunUpdateStrategy}}async function F(e){let t=r(),n=e.platforms[t];if(!n)return[];let i=await N();return i?[...n.filter(e=>e.type===i),...n.filter(e=>e.type!==i)]:[...n]}async function I(e,t,n,r,i,a,o,s){if(!s){let s=l();try{return await I(e,t,n,r,i,a,o,s.context)}finally{s.dispose()}}let c=O(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 L(t,n,r,i){if(h(n.type)){let e=g(t,n);return e?I(n.type,e,n.binaryName??t.binaryName,n.packageInstallArgs,n.packageTargetKind,r,i):{kind:`failed`,reason:`package target is missing for ${t.name}`,retryable:!1}}if(r===`update`&&!d(n.type))return{kind:`unsupported`,operation:`update`};if(!n.command)return{kind:`failed`,reason:`install effect is missing for ${t.name}`,retryable:!1};let a=n.type===`script`?pe:e,o=l();try{return await a.install?.({context:o.context,target:{binaryName:n.binaryName??t.binaryName,effect:{command:n.command,kind:`shell-script`},id:t.name,kind:n.type}})??{kind:`unsupported`,operation:r}}finally{o.dispose()}}function R(e,t){if(e.packageName)return e.packageName;if(!(!t||!h(e.installType)))return g(t,{type:e.installType})}async function z(e,t,n){if(h(e.installType)){let r=R(e,n?.agent);return r?I(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 x(e.command)?{kind:`success`,value:void 0}:{kind:`failed`,reason:`${t} command failed for ${e.agentName}`,retryable:!1}}async function B(e,t){if(!h(t.type))return;let n=g(e,t);n&&await I(t.type,n,t.binaryName??e.binaryName,t.packageInstallArgs,t.packageTargetKind,`uninstall`,void 0,K())}async function ye(e){if(!e.selfUpdate)return!1;let t=[e.selfUpdate.command,...e.selfUpdate.fallbackCommands??[]];for(let e of t)if(await x(e.join(` `)))return!0;return!1}function V(e,t){let n={agentName:e.name,installType:t.type,packageName:g(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 be(e,t){if(u().cancelled)return null;let n=V(e,t);return u().cancelled?null:(await o(n),u().cancelled?(await s(e.name),null):n)}async function H(e,t){return M(async()=>{let n=t?[...t]:await F(e),r;for(let t of n){if(u().cancelled)return{kind:`cancelled`,reason:`install-cancelled`};let n=await L(e,t,`install`);if(n.kind===`success`)return u().cancelled?(await B(e,t),{kind:`cancelled`,reason:`install-cancelled`}):{kind:`success`,value:{installedState:V(e,t)}};let i=J(n);if(i.kind===`cancelled`||i.kind===`timed-out`)return i;if(r=i,u().cancelled)return await B(e,t),{kind:`cancelled`,reason:`install-cancelled`}}return r??{kind:`failed`,reason:`install-failed`,retryable:!1}})}async function xe(e){return M(async()=>{let t=await H(e);if(t.kind!==`success`||!t.value.installedState)return q(t);try{return u().cancelled?(await G(e,t.value.installedState),{success:!1}):(await o(t.value.installedState),u().cancelled?(await s(e.name),await G(e,t.value.installedState),{success:!1}):q(t))}catch(n){throw await G(e,t.value.installedState),n}})}async function Se(e,t){return M(async()=>{let{npmBunUpdateStrategy:n}=await P(),r=await F(e),i=t&&h(t.installType)?R(t,e):void 0,a=t?await z(t,`update`,{agent:e,updateStrategy:n}):void 0;if(t&&a?.kind===`success`)return u().cancelled||(await o(t),u().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 L(e,t,`update`,n);if(r.kind===`success`){let n=await be(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||!h(t.installType)||i)&&await ye(e)?{kind:`success`,value:{}}:{kind:`failed`,reason:`update-failed`,retryable:!1}})}async function U(e,t){return q(await Se(e,t))}async function Ce(e,t){return M(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=O(e);return await r.isAvailable()?(await r.updateMany(n,await P())).kind===`success`:!1})}async function we(e,t,n){let r=O(e);if(r.getInstalledVersion&&await r.isAvailable())return r.getInstalledVersion(t,n)}async function Te(e,t){if(!h(e.installType))return!1;let n=O(e.installType);if(!n.getInstalledVersion||!await n.isAvailable())return!1;let r=R(e,t);return r?n.probePackagePresence?await n.probePackagePresence(r,e.packageTargetKind)===`absent`:await n.getInstalledVersion(r,e.packageTargetKind)===void 0:!1}async function Ee(e){return(await M(async()=>{let t=await ee(e.name);return t?W(e,t):{kind:`failed`,reason:`installed-state-missing`,retryable:!1}})).kind===`success`}async function W(e,t){if(!m(t.installType))return await s(e.name),{kind:`success`,value:{installedState:t}};let n=await z(t,`uninstall`,{agent:e});return n.kind===`success`||await Te(t,e)?(await s(e.name),{kind:`success`,value:{installedState:t}}):J(n)}async function De(e,t){let n=await z(t,`install`,{agent:e});return n.kind===`success`?{kind:`success`,value:{installedState:t}}:J(n)}async function G(e,t){if(!m(t.installType)||!h(t.installType))return;let n=R(t,e);n&&await I(t.installType,n,t.binaryName,t.packageInstallArgs,t.packageTargetKind,`uninstall`,void 0,K())}function K(){let e=u().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=je(e,t);if(r)return{providerId:n,target:{...t.packageInstallArgs?.length?{arguments:t.packageInstallArgs}:{},...t.binaryName||n===`binary`||n===`script`?{binaryName:t.binaryName??e.binaryName}:{},id:r,kind:Q(n,t.packageTargetKind)}}}function Oe(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 ke(e,t){let n=(t.registry??de).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 Ae(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 je(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 p.includes(e)?e:void 0}export{Ce as _,Oe as a,we as c,H as d,De as f,U as g,W as h,X as i,F as l,Ee as m,Z as n,Y as o,G as p,Ae as r,V as s,ke as t,xe as u,M as v,_e as y};
|
|
1
|
+
import{Ct as e,Dt as t,Et as n,Gt as r,Ht as i,L as a,M as o,O as s,Rt as c,S as ee,St as te,Tt as ne,Vt as re,Wt as ie,Xt as l,_t as ae,an as u,at as d,bt as f,dt as p,ft as oe,gt as se,ht as ce,it as m,lt as h,mt as le,nt as g,pt as ue,rn as _,tn as v,ut as de,vt as fe,wt as pe,xt as me,yt as y}from"./color-nTiVIiHx.mjs";import b from"node:process";import{AsyncLocalStorage as he}from"node:async_hooks";async function x(e){let t=r(),n=typeof e==`function`?e(t):e;try{return b.platform===`win32`?await _(v([`powershell.exe`,`-Command`,n]))===0:await _(v([`sh`,`-c`,n]))===0}catch{return!1}}function S(e,t,n){return{type:e,getInstalledVersion:e=>n.getInstalledVersion(e),probePackagePresence:e=>n.probePackagePresence(e),isAvailable:e=>C(e,async e=>(await t.availability(e)).kind===`success`),install:async(e,n,r,i)=>t.install?C(i,i=>t.install({context:i,target:w(e,n,void 0,r)})):k(`install`),uninstall:async(e,n,r,i)=>t.uninstall?C(i,i=>t.uninstall({context:i,target:w(e,n,r?.binaryName)})):k(`uninstall`),update:async(e,n,r,i)=>{if(!t.update)return k(`update`);let a=T(r);return C(i,i=>t.update({context:i,...a?{options:a}:{},target:w(e,n,r?.binaryName,r?.packageInstallArgs)}))},updateMany:async(e,n,r)=>{if(!t.updateMany)return k(`update-many`);let i=T(n);return C(r,n=>t.updateMany({context:n,...i?{options:i}:{},targets:e.map(e=>w(e.packageName,e.packageTargetKind,e.binaryName,e.packageInstallArgs))}))}}}async function C(e,t){if(e)return t(e);let n=l();try{return await t(n.context)}finally{n.dispose()}}function w(e,t,n,r){return{...r?.length?{arguments:r}:{},...n?{binaryName:n}:{},id:e,kind:t??`package`}}function T(e){return e?.npmBunUpdateStrategy?{updateStrategy:e.npmBunUpdateStrategy}:void 0}function E(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=>C(e,async e=>(await t.availability(e)).kind===`success`),install:async(e,n,r,a)=>t.install?C(a,a=>t.install({context:a,target:i(e,n,r)})):k(`install`),uninstall:async(e,n,r,a)=>t.uninstall?C(a,a=>t.uninstall({context:a,target:i(e,n,void 0,r?.binaryName)})):k(`uninstall`),update:async(e,n,r,a)=>t.update?C(a,a=>t.update({context:a,target:i(e,n,r?.packageInstallArgs,r?.binaryName)})):k(`update`),updateMany:async(e,n,r)=>t.updateMany?C(r,n=>t.updateMany({context:n,targets:e.map(e=>i(e.packageName,e.packageTargetKind,e.packageInstallArgs,e.binaryName))})):k(`update-many`)}}const D={brew:E(`brew`,ie,e=>e===`cask`?`cask`:`formula`),bun:S(`bun`,t,{getInstalledVersion:e=>re(e),probePackagePresence:e=>i(e)}),cargo:E(`cargo`,n,()=>`package`),deno:E(`deno`,ne,()=>`tool`),mise:E(`mise`,f,()=>`tool`,{getInstalledVersion:e=>me(e),probePackagePresence:e=>te(e)}),npm:S(`npm`,ae,{getInstalledVersion:e=>fe(e),probePackagePresence:e=>y(e)}),pip:E(`pip`,se,()=>`package`),uv:E(`uv`,ue,()=>`tool`,{getInstalledVersion:e=>le(e),probePackagePresence:e=>ce(e)}),winget:E(`winget`,oe,()=>`id`)},ge=Object.fromEntries(Object.entries(D).map(([e,t])=>[e,ve(t)]));function _e(e){return ge[e]}function O(e){return D[e]}function ve(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 k(e){return{kind:`unsupported`,operation:e}}const A={resource:`agent lifecycle`,scope:[`agent-lifecycle`]},j=new he;function M(e){return j.getStore()?e():a(A,()=>j.run(!0,e))}async function N(){return(await c()).defaultPackageManager}async function P(){return{npmBunUpdateStrategy:(await c()).npmBunUpdateStrategy}}async function F(e){let t=r(),n=e.platforms[t];if(!n)return[];let i=await N();return i?[...n.filter(e=>e.type===i),...n.filter(e=>e.type!==i)]:[...n]}async function I(e,t,n,r,i,a,o,s){if(!s){let s=l();try{return await I(e,t,n,r,i,a,o,s.context)}finally{s.dispose()}}let c=O(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 L(t,n,r,i){if(h(n.type)){let e=g(t,n);return e?I(n.type,e,n.binaryName??t.binaryName,n.packageInstallArgs,n.packageTargetKind,r,i):{kind:`failed`,reason:`package target is missing for ${t.name}`,retryable:!1}}if(r===`update`&&!d(n.type))return{kind:`unsupported`,operation:`update`};if(!n.command)return{kind:`failed`,reason:`install effect is missing for ${t.name}`,retryable:!1};let a=n.type===`script`?pe:e,o=l();try{return await a.install?.({context:o.context,target:{binaryName:n.binaryName??t.binaryName,effect:{command:n.command,kind:`shell-script`},id:t.name,kind:n.type}})??{kind:`unsupported`,operation:r}}finally{o.dispose()}}function R(e,t){if(e.packageName)return e.packageName;if(!(!t||!h(e.installType)))return g(t,{type:e.installType})}async function z(e,t,n){if(h(e.installType)){let r=R(e,n?.agent);return r?I(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 x(e.command)?{kind:`success`,value:void 0}:{kind:`failed`,reason:`${t} command failed for ${e.agentName}`,retryable:!1}}async function B(e,t){if(!h(t.type))return;let n=g(e,t);n&&await I(t.type,n,t.binaryName??e.binaryName,t.packageInstallArgs,t.packageTargetKind,`uninstall`,void 0,K())}async function ye(e){if(!e.selfUpdate)return!1;let t=[e.selfUpdate.command,...e.selfUpdate.fallbackCommands??[]];for(let e of t)if(await x(e.join(` `)))return!0;return!1}function V(e,t){let n={agentName:e.name,installType:t.type,packageName:g(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 be(e,t){if(u().cancelled)return null;let n=V(e,t);return u().cancelled?null:(await o(n),u().cancelled?(await s(e.name),null):n)}async function H(e,t){return M(async()=>{let n=t?[...t]:await F(e),r;for(let t of n){if(u().cancelled)return{kind:`cancelled`,reason:`install-cancelled`};let n=await L(e,t,`install`);if(n.kind===`success`)return u().cancelled?(await B(e,t),{kind:`cancelled`,reason:`install-cancelled`}):{kind:`success`,value:{installedState:V(e,t)}};let i=J(n);if(i.kind===`cancelled`||i.kind===`timed-out`)return i;if(r=i,u().cancelled)return await B(e,t),{kind:`cancelled`,reason:`install-cancelled`}}return r??{kind:`failed`,reason:`install-failed`,retryable:!1}})}async function xe(e){return M(async()=>{let t=await H(e);if(t.kind!==`success`||!t.value.installedState)return q(t);try{return u().cancelled?(await G(e,t.value.installedState),{success:!1}):(await o(t.value.installedState),u().cancelled?(await s(e.name),await G(e,t.value.installedState),{success:!1}):q(t))}catch(n){throw await G(e,t.value.installedState),n}})}async function Se(e,t){return M(async()=>{let{npmBunUpdateStrategy:n}=await P(),r=await F(e),i=t&&h(t.installType)?R(t,e):void 0,a=t?await z(t,`update`,{agent:e,updateStrategy:n}):void 0;if(t&&a?.kind===`success`)return u().cancelled||(await o(t),u().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 L(e,t,`update`,n);if(r.kind===`success`){let n=await be(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||!h(t.installType)||i)&&await ye(e)?{kind:`success`,value:{}}:{kind:`failed`,reason:`update-failed`,retryable:!1}})}async function U(e,t){return q(await Se(e,t))}async function Ce(e,t){return M(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=O(e);return await r.isAvailable()?(await r.updateMany(n,await P())).kind===`success`:!1})}async function we(e,t,n){let r=O(e);if(r.getInstalledVersion&&await r.isAvailable())return r.getInstalledVersion(t,n)}async function Te(e,t){if(!h(e.installType))return!1;let n=O(e.installType);if(!n.getInstalledVersion||!await n.isAvailable())return!1;let r=R(e,t);return r?n.probePackagePresence?await n.probePackagePresence(r,e.packageTargetKind)===`absent`:await n.getInstalledVersion(r,e.packageTargetKind)===void 0:!1}async function Ee(e){return(await M(async()=>{let t=await ee(e.name);return t?W(e,t):{kind:`failed`,reason:`installed-state-missing`,retryable:!1}})).kind===`success`}async function W(e,t){if(!m(t.installType))return await s(e.name),{kind:`success`,value:{installedState:t}};let n=await z(t,`uninstall`,{agent:e});return n.kind===`success`||await Te(t,e)?(await s(e.name),{kind:`success`,value:{installedState:t}}):J(n)}async function De(e,t){let n=await z(t,`install`,{agent:e});return n.kind===`success`?{kind:`success`,value:{installedState:t}}:J(n)}async function G(e,t){if(!m(t.installType)||!h(t.installType))return;let n=R(t,e);n&&await I(t.installType,n,t.binaryName,t.packageInstallArgs,t.packageTargetKind,`uninstall`,void 0,K())}function K(){let e=u().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=je(e,t);if(r)return{providerId:n,target:{...t.packageInstallArgs?.length?{arguments:t.packageInstallArgs}:{},...t.binaryName||n===`binary`||n===`script`?{binaryName:t.binaryName??e.binaryName}:{},id:r,kind:Q(n,t.packageTargetKind)}}}function Oe(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 ke(e,t){let n=(t.registry??de).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 Ae(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 je(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 p.includes(e)?e:void 0}export{Ce as _,Oe as a,we as c,H as d,De as f,U as g,W as h,X as i,F as l,Ee as m,Z as n,Y as o,G as p,Ae as r,V as s,ke as t,xe as u,M as v,_e as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ut as e}from"./color-
|
|
1
|
+
import{ut as e}from"./color-nTiVIiHx.mjs";const t=Object.freeze([`brew`,`bun`,`cargo`,`deno`,`mise`,`npm`,`pip`,`uv`,`winget`]);async function n(t){let n=t.registry??e;return Promise.all(n.list().map(async e=>({availability:await i(e.availability,t.context),capabilities:n.getCapabilities(e.id),id:e.id})))}function r(e,n){let r=new Map(e.map(e=>[e.id,e]));return Object.fromEntries(t.map(e=>{let t=r.get(e);if(!t)throw Error(`Provider snapshot is missing first-party adapter: ${e}`);return[e,n(t)]}))}async function i(e,t){try{return await e(t)}catch(e){return{kind:`failed`,reason:e instanceof Error?e.message:String(e),retryable:!1}}}export{r as n,n as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{X as e,Z as t,a as n,n as r,r as i,t as a}from"./color-
|
|
1
|
+
import{X as e,Z as t,a as n,n as r,r as i,t as a}from"./color-nTiVIiHx.mjs";import{r as o}from"./lifecycle-observations-DulNFMcZ.mjs";import{t as s}from"./agent-inspection-wRTbdD0j.mjs";async function c(a){let c=await o(a);if(!c)return n(r({action:`resolve`,error:{code:`AGENT_NOT_FOUND`,details:{input:a},message:`Unknown agent: ${a}`},target:{kind:`agent`,name:a}}),l);let{agent:u}=c,d=s(c);if(!d.inPath||!d.binaryPath){let i=d.methods.map(n=>({command:e(u,n),label:t(n),type:n.type})).filter(e=>e.command);return n(r({action:`resolve`,data:{agent:{binaryName:u.binaryName,displayName:u.displayName,name:u.name},resolution:{binaryPath:``,installGuidance:{docsRef:`skills/quantex-cli/references/command-recipes.md`,installMethods:i,suggestedAction:`ensure-agent-installed`,suggestedEnsureCommand:`quantex ensure ${u.name}`},installed:!1,installSource:`not-installed`,lifecycle:`unmanaged`,sourceLabel:`not installed`,suggestedLaunchCommand:[]}},error:{code:`AGENT_NOT_INSTALLED`,details:{docsRef:`skills/quantex-cli/references/command-recipes.md`,installMethods:i,suggestedAction:`ensure-agent-installed`,suggestedEnsureCommand:`quantex ensure ${u.name}`},message:`${u.displayName} is not installed.`},target:{kind:`agent`,name:u.name}}),l)}return n(i({action:`resolve`,data:{agent:{binaryName:u.binaryName,displayName:u.displayName,name:u.name},resolution:{binaryPath:d.binaryPath,installed:!0,installSource:d.installedState?.installType??`detected-in-path`,installedVersion:d.installedVersion,lifecycle:d.lifecycle,sourceLabel:d.sourceLabel,suggestedLaunchCommand:[d.binaryPath]}},target:{kind:`agent`,name:u.name}}),l)}function l(e){if(e.error){console.log(a.red(e.error.message));let t=e.data?.resolution.installGuidance;if(t){console.log(a.dim(`Try: ${t.suggestedEnsureCommand}`));for(let e of t.installMethods)console.log(a.dim(`Install: [${e.label}] ${e.command}`))}return}e.data&&(console.log(a.bold(`\n${e.data.agent.displayName}\n`)),console.log(` Name: ${e.data.agent.name}`),console.log(` Binary: ${e.data.agent.binaryName}`),console.log(` Path: ${e.data.resolution.binaryPath}`),console.log(` Source: ${e.data.resolution.sourceLabel}`),console.log(` Lifecycle: ${e.data.resolution.lifecycle}`),console.log(` Install Type: ${e.data.resolution.installSource}`),e.data.resolution.installedVersion&&console.log(` Version: ${e.data.resolution.installedVersion}`),console.log(` Launch: ${e.data.resolution.suggestedLaunchCommand.join(` `)}`),console.log())}export{c as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./resolve-BOxNGmVh.mjs";export{e as resolveCommand};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{V as e,a as t,n,r,t as i}from"./color-
|
|
1
|
+
import{V as e,a as t,n,r,t as i}from"./color-nTiVIiHx.mjs";async function a(e){let i=s(),a=e?i.filter(t=>t.name===e):i;return e&&a.length===0?t(n({action:`schema`,error:{code:`INVALID_ARGUMENT`,details:{command:e},message:`Unknown schema target: ${e}`},target:{kind:`system`,name:`schema`}}),o):t(r({action:`schema`,data:{commands:a},target:{kind:`system`,name:`schema`}}),o)}function o(e){if(e.error){console.log(i.red(e.error.message));return}if(e.data){console.log(i.bold(`
|
|
2
2
|
Quantex Schemas
|
|
3
3
|
`));for(let t of e.data.commands)console.log(` ${i.cyan(t.name)}`),console.log(` ${t.description}`);console.log()}}function s(){return e().map(e=>e.schema)}export{a as n,s as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./schema-Bl1ZPNI9.mjs";export{e as schemaCommand};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,I as t,Kt as n,M as r,N as i,O as a,S as o,a as s,an as c,k as l,n as u,r as d,t as f}from"./color-
|
|
1
|
+
import{C as e,I as t,Kt as n,M as r,N as i,O as a,S as o,a as s,an as c,k as l,n as u,r as d,t as f}from"./color-nTiVIiHx.mjs";import{a as p,h as m,o as h,t as g,v as _}from"./provider-evidence-BjjRgpNG.mjs";import{n as v}from"./agents-QYkiyHCD.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-CgBsxSsM.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(f){let g=v(f);if(!g)return s(u({action:`uninstall`,error:{code:`AGENT_NOT_FOUND`,details:{input:f},message:`Unknown agent: ${f}`},target:{kind:`agent`,name:f}}),N);try{return await _(async()=>{let[t,u]=await Promise.all([o(g.name),e(g.name)]);if(!t&&!u)return s(M(f,g),N);let _=await n(g.binaryName),v=t?h(g,t):void 0,y=u?p(u):void 0;if(t&&!v||u&&!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 a(g.name),u&&await l(g.name),s(j(g),N)):t?S()?s(A(g,`would uninstall ${g.displayName}`),N):(u||await i({...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 n(g.binaryName)},{isCancelled:()=>!!c().cancelled})?(await l(g.name),s(d({action:`uninstall`,data:{agent:{displayName:g.displayName,name:g.name},changed:!0},target:{kind:`agent`,name:g.name}}),N)):(await r(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(u({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=c(),n=new AbortController;return t.cancelled&&n.abort(`cli-cancelled`),g(e,{signal:n.signal,timeoutMs:t.timeoutMs})}function k(e,t,n){return u({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 d({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 d({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 u({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(f.red(e.error.message));return}if(e.data){if(e.warnings&&e.warnings.length>0){for(let t of e.warnings)b(f.yellow(t.message));return}x(f.cyan(`Uninstalling ${e.data.agent.displayName}...`)),x(f.green(`${e.data.agent.displayName} uninstalled successfully!`))}}export{E as uninstallCommand};
|
|
@@ -1 +1 @@
|
|
|
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,Rt as o,Xt as s,a as c,an as l,i as u,n as d,r as f,t as p,ut as m}from"./color-DRZEEJuf.mjs";import{r as h}from"./agents-Dc-rbRUf.mjs";import{v as g}from"./provider-evidence-CQl_J-gP.mjs";import{t as _}from"./update-planner-BhJnvNKA.mjs";import{t as v}from"./lifecycle-observations-AFJINgqR.mjs";import{n as y}from"./agents-BHbkPVvR.mjs";import{a as b,i as x,n as S,r as C}from"./user-output-CnLEBgDD.mjs";import{a as w,c as T,l as E,r as D,s as O,u as k}from"./lifecycle-policy-Djgq_8nm.mjs";async function A(){let e=j();try{return await e.run()}finally{e.dispose()}}function j(){let e=s(),t=0,n=!1,a=!1,c,l,u,d,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()}},y=()=>(u??=o().then(t=>{let n=v(e.context);return{classifyMutationLockError:e=>i(e)?{reason:e.message,resource:e.resource}:void 0,clock:()=>new Date().toISOString(),dryRun:S(),listRegisteredAgentNames:()=>h().map(e=>e.name),observe:n.resolveAgentObservation,planLifecycleUpdate:_,providerRegistry:m,registerCleanup:e.context.registerCleanup,signal:e.context.signal,timeoutMs:e.context.timeoutMs,updateOptions:{updateStrategy:t.npmBunUpdateStrategy},withMutationLock:g,writeReceipt:r.write}}),u),b=()=>n?Promise.reject(Error(`Lifecycle update batch invocation has been disposed.`)):(l??=p(async()=>E(await y())),l);return{dispose(){n||(n=!0,f())},getOutcome:()=>c,async observe(e){return p(async()=>(await y()).observe(e))},prepare:b,run(){return n?Promise.reject(Error(`Lifecycle update batch invocation has been disposed.`)):(d??=(async()=>{let e=await b();return c=await p(async()=>O(e,await y())),c})(),d)}}}async function M(e){let t=N(e);try{return await t.run()}finally{t.dispose()}}function N(e){let t=s(),n=0,i=!1,a=!1,c,l,u,d,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()}},h=()=>(u??=o().then(e=>{let n=v(t.context);return{clock:()=>new Date().toISOString(),dryRun:S(),observe:n.resolveAgentObservation,planLifecycleUpdate:_,providerRegistry:m,registerCleanup:t.context.registerCleanup,signal:t.context.signal,timeoutMs:t.context.timeoutMs,updateOptions:{updateStrategy:e.npmBunUpdateStrategy},withMutationLock:g,writeReceipt:r.write}}),u),y=()=>i?Promise.reject(Error(`Single-agent update invocation has been disposed.`)):(l??=p(async()=>k(e,await h())),l);return{dispose(){i||(i=!0,f())},getOutcome:()=>c,async observe(e){return p(async()=>(await h()).observe(e))},prepare:y,run(){return i?Promise.reject(Error(`Single-agent update invocation has been disposed.`)):(d??=(async()=>{let e=await y();return c=e.kind===`planned`?await p(async()=>T(e.planned,await h())):e,c})(),d)}}}async function P(e,t,n={runBatch:A,runSingle:M}){if(t)return I(n);if(!e)return c(d({action:`update`,error:{code:`INVALID_ARGUMENT`,message:`Please specify an agent name or use --all flag`},target:{kind:`agent`}}),G);let r=y(e);return r?L(r,n):c(d({action:`update`,error:{code:`AGENT_NOT_FOUND`,details:{input:e},message:`Unknown agent: ${e}`},target:{kind:`agent`,name:e}}),G)}function F(e,t){if(t){let t=j();return{dispose:t.dispose,idempotencyPolicy:()=>D(t),run:()=>P(e,!0,{runBatch:()=>t.run(),runSingle:M})}}if(!e)return{dispose(){},run:()=>P(e,t)};let n=N(e);return{dispose:n.dispose,idempotencyPolicy:()=>w(e,n),run:()=>P(e,!1,{runBatch:A,runSingle:()=>n.run()})}}async function I(e){u({action:`update`,data:{scope:`all`},target:{kind:`agent`},type:`started`});let t=await e.runBatch(),n=B(t);return U(t)?c(d({action:`update`,data:{results:n,scope:`all`},error:{code:`CANCELLED`,message:`Update was cancelled before all agents could be updated.`},target:{kind:`agent`}}),G):n.some(e=>e.status===`failed`||e.status===`locked`)?c(d({action:`update`,data:{results:n,scope:`all`},error:{code:`UPDATE_FAILED`,message:`One or more agents failed to update.`},target:{kind:`agent`}}),G):c(f({action:`update`,data:{results:n,scope:`all`},target:{kind:`agent`}}),G)}async function L(e,t){u({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 c(d({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}}),G)}let r=z(n);if(n.kind===`unknown-agent`)return c(d({action:`update`,error:{code:`AGENT_NOT_FOUND`,message:`Unknown agent: ${e.name}`},target:{kind:`agent`,name:e.name}}),G);if(r?.observation.kind===`absent`)return c(d({action:`update`,error:{code:`AGENT_NOT_INSTALLED`,message:`${e.displayName} is not installed.`},target:{kind:`agent`,name:e.name}}),G);let a=R(e,n);return W([],a),n.kind===`cancelled`?c(d({action:`update`,data:{results:[a],scope:`single`},error:{code:`CANCELLED`,message:`Update of ${e.displayName} was cancelled.`},target:{kind:`agent`,name:e.name}}),G):a.status===`failed`||a.status===`locked`?c(d({action:`update`,data:{results:[a],scope:`single`},error:{code:`UPDATE_FAILED`,message:`Failed to update ${e.displayName}.`},target:{kind:`agent`,name:e.name}}),G):c(f({action:`update`,data:{results:[a],scope:`single`},target:{kind:`agent`,name:e.name}}),G)}function R(t,n){let r=z(n),i=`plan`in n?n.plan:void 0,a=r?.observation.kind===`present`?r.observation.version:void 0,o=i?.plannedTargetVersion,s=i?`managed/${i.binding.providerId}`:r?.binding?.providerId;switch(n.kind){case`updated`:return{displayName:t.displayName,installedVersion:a,latestVersion:n.receipt.version??o,name:t.name,status:`updated`,strategy:s};case`dry-run`:return{displayName:t.displayName,installedVersion:a,latestVersion:o,message:`Dry run: would update ${t.displayName}.`,name:t.name,status:`planned`,strategy:s};case`not-executed`:return n.plan.planning.decision===`up-to-date`?{displayName:t.displayName,installedVersion:a,latestVersion:o,name:t.name,status:`up-to-date`}:{displayName:t.displayName,installedVersion:a,latestVersion:o,message:e(t),name:t.name,status:`manual-required`};case`blocked`:return{displayName:t.displayName,installedVersion:a,message:n.reason,name:t.name,status:`failed`};case`cancelled`:return{displayName:t.displayName,installedVersion:a,latestVersion:o,message:n.reason??`Update was cancelled before it could complete.`,name:t.name,status:`failed`,strategy:s};case`timed-out`:return{displayName:t.displayName,installedVersion:a,latestVersion:o,message:`Update timed out after ${n.timeoutMs}ms.`,name:t.name,status:`failed`,strategy:s};case`provider-failed`:return{displayName:t.displayName,installedVersion:a,latestVersion:o,name:t.name,status:`failed`,strategy:s};case`verification-failed`:case`receipt-failed`:return{displayName:t.displayName,installedVersion:a,latestVersion:o,message:n.kind===`receipt-failed`?n.reason:n.verification.reason,name:t.name,status:`failed`,strategy:s};case`unknown-agent`:return{displayName:t.displayName,name:t.name,status:`failed`}}}function z(e){if(`plan`in e)return e.plan.before;if(`before`in e)return e.before}function B(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);e?W(r,V(e)):a&&W(r,H(a))}return r}function V(r){let i=r.planning.kind===`unknown-agent`?void 0:r.planning.kind===`planned`?r.planning.planned.before:r.planning.before,o=y(r.agentName);if(!o)return{displayName:i?.agent.displayName??r.agentName,name:r.agentName,status:`failed`};let s=r.execution;if(r.planning.kind===`blocked`&&r.planning.category===`untracked`)return{displayName:o.displayName,installedVersion:r.planning.before.observation.kind===`present`?r.planning.before.observation.version:void 0,message:t(o),name:o.name,status:`manual-required`};if(r.planning.kind===`blocked`&&r.planning.category===`manual-required`)return{displayName:o.displayName,installedVersion:r.planning.before.observation.kind===`present`?r.planning.before.observation.version:void 0,message:e(o),name:o.name,status:`manual-required`};if(s?.kind===`locked`)return{displayName:o.displayName,installedVersion:s.plan.before.observation.kind===`present`?s.plan.before.observation.version:void 0,latestVersion:s.plan.plannedTargetVersion,message:s.reason,name:o.name,resource:s.resource,status:`locked`,strategy:`managed/${s.plan.binding.providerId}`};if(s?.kind===`unexpected-failure`)return{displayName:o.displayName,installedVersion:s.plan.before.observation.kind===`present`?s.plan.before.observation.version:void 0,latestVersion:s.plan.plannedTargetVersion,message:s.reason,name:o.name,status:`failed`,strategy:`managed/${s.plan.binding.providerId}`};let c=s??(r.planning.kind===`planned`?{kind:`not-executed`,plan:r.planning.planned}:r.planning),l=R(o,c);return l.status===`failed`&&c.kind===`provider-failed`&&(l.hint=n(o,a({agent:o,installedState:i?.installedState,methods:[...i?.methods??[]]}))),l}function H(e){let t=y(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:e.planning.planned.plannedTargetVersion,message:e.reason??`Update was cancelled before it could start.`,name:t?.name??e.agentName,status:`failed`,strategy:`managed/${e.planning.planned.binding.providerId}`}}function U(e){return l().cancelled||e.cancellationRemainder.length>0||e.results.some(e=>e.planning.kind===`cancelled`||e.execution?.kind===`cancelled`)}function W(e,t){e.push(t),u({action:`update`,data:t,target:{kind:`agent`,name:t.name},type:`progress`})}function G(e){if(!e.data){e.error&&C(p.red(e.error.message));return}for(let t of e.data.results)switch(t.status){case`up-to-date`:x(p.green(`${t.displayName} is up to date (${t.installedVersion??`unknown`})`));break;case`manual-required`:b(p.yellow(`${t.displayName}: manual action required.`)),t.message&&b(p.cyan(`Next step: ${t.message}`));break;case`planned`:b(p.cyan(`Would update ${t.displayName}${t.strategy?` via ${t.strategy}`:``}${K(t.installedVersion,t.latestVersion)}`));break;case`updated`:x(p.cyan(`Updating ${t.displayName}${t.strategy?` via ${t.strategy}`:``}...${K(t.installedVersion,t.latestVersion)}`)),x(p.green(`${t.displayName} updated successfully!`));break;case`failed`:x(p.cyan(`Updating ${t.displayName}${t.strategy?` via ${t.strategy}`:``}...${K(t.installedVersion,t.latestVersion)}`)),C(p.red(`Failed to update ${t.displayName}.`)),t.hint&&b(p.cyan(`Next step: ${t.hint}`));break;case`locked`:b(p.yellow(t.message??`Another quantex process is already updating ${t.displayName}.`));break}e.data.results.length>1&&q(e.data.results),!e.data.results.length&&e.error&&C(p.red(e.error.message))}function K(e,t){return e?` (${e} -> ${t??`latest`})`:``}function q(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&&x(p.bold(`Summary: ${n.join(`, `)}`))}export{F as createUpdateCommandInvocation};
|
|
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,Rt as o,Xt as s,a as c,an as l,i as u,n as d,r as f,t as p,ut as m}from"./color-nTiVIiHx.mjs";import{r as h}from"./agents-Dc-rbRUf.mjs";import{v as g}from"./provider-evidence-BjjRgpNG.mjs";import{t as _}from"./update-planner-B74AB4_X.mjs";import{t as v}from"./lifecycle-observations-DulNFMcZ.mjs";import{n as y}from"./agents-QYkiyHCD.mjs";import{a as b,i as x,n as S,r as C}from"./user-output-CgBsxSsM.mjs";import{a as w,c as T,l as E,r as D,s as O,u as k}from"./lifecycle-policy-a_ing0Qc.mjs";async function A(){let e=j();try{return await e.run()}finally{e.dispose()}}function j(){let e=s(),t=0,n=!1,a=!1,c,l,u,d,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()}},y=()=>(u??=o().then(t=>{let n=v(e.context);return{classifyMutationLockError:e=>i(e)?{reason:e.message,resource:e.resource}:void 0,clock:()=>new Date().toISOString(),dryRun:S(),listRegisteredAgentNames:()=>h().map(e=>e.name),observe:n.resolveAgentObservation,planLifecycleUpdate:_,providerRegistry:m,registerCleanup:e.context.registerCleanup,signal:e.context.signal,timeoutMs:e.context.timeoutMs,updateOptions:{updateStrategy:t.npmBunUpdateStrategy},withMutationLock:g,writeReceipt:r.write}}),u),b=()=>n?Promise.reject(Error(`Lifecycle update batch invocation has been disposed.`)):(l??=p(async()=>E(await y())),l);return{dispose(){n||(n=!0,f())},getOutcome:()=>c,async observe(e){return p(async()=>(await y()).observe(e))},prepare:b,run(){return n?Promise.reject(Error(`Lifecycle update batch invocation has been disposed.`)):(d??=(async()=>{let e=await b();return c=await p(async()=>O(e,await y())),c})(),d)}}}async function M(e){let t=N(e);try{return await t.run()}finally{t.dispose()}}function N(e){let t=s(),n=0,i=!1,a=!1,c,l,u,d,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()}},h=()=>(u??=o().then(e=>{let n=v(t.context);return{clock:()=>new Date().toISOString(),dryRun:S(),observe:n.resolveAgentObservation,planLifecycleUpdate:_,providerRegistry:m,registerCleanup:t.context.registerCleanup,signal:t.context.signal,timeoutMs:t.context.timeoutMs,updateOptions:{updateStrategy:e.npmBunUpdateStrategy},withMutationLock:g,writeReceipt:r.write}}),u),y=()=>i?Promise.reject(Error(`Single-agent update invocation has been disposed.`)):(l??=p(async()=>k(e,await h())),l);return{dispose(){i||(i=!0,f())},getOutcome:()=>c,async observe(e){return p(async()=>(await h()).observe(e))},prepare:y,run(){return i?Promise.reject(Error(`Single-agent update invocation has been disposed.`)):(d??=(async()=>{let e=await y();return c=e.kind===`planned`?await p(async()=>T(e.planned,await h())):e,c})(),d)}}}async function P(e,t,n={runBatch:A,runSingle:M}){if(t)return I(n);if(!e)return c(d({action:`update`,error:{code:`INVALID_ARGUMENT`,message:`Please specify an agent name or use --all flag`},target:{kind:`agent`}}),G);let r=y(e);return r?L(r,n):c(d({action:`update`,error:{code:`AGENT_NOT_FOUND`,details:{input:e},message:`Unknown agent: ${e}`},target:{kind:`agent`,name:e}}),G)}function F(e,t){if(t){let t=j();return{dispose:t.dispose,idempotencyPolicy:()=>D(t),run:()=>P(e,!0,{runBatch:()=>t.run(),runSingle:M})}}if(!e)return{dispose(){},run:()=>P(e,t)};let n=N(e);return{dispose:n.dispose,idempotencyPolicy:()=>w(e,n),run:()=>P(e,!1,{runBatch:A,runSingle:()=>n.run()})}}async function I(e){u({action:`update`,data:{scope:`all`},target:{kind:`agent`},type:`started`});let t=await e.runBatch(),n=B(t);return U(t)?c(d({action:`update`,data:{results:n,scope:`all`},error:{code:`CANCELLED`,message:`Update was cancelled before all agents could be updated.`},target:{kind:`agent`}}),G):n.some(e=>e.status===`failed`||e.status===`locked`)?c(d({action:`update`,data:{results:n,scope:`all`},error:{code:`UPDATE_FAILED`,message:`One or more agents failed to update.`},target:{kind:`agent`}}),G):c(f({action:`update`,data:{results:n,scope:`all`},target:{kind:`agent`}}),G)}async function L(e,t){u({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 c(d({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}}),G)}let r=z(n);if(n.kind===`unknown-agent`)return c(d({action:`update`,error:{code:`AGENT_NOT_FOUND`,message:`Unknown agent: ${e.name}`},target:{kind:`agent`,name:e.name}}),G);if(r?.observation.kind===`absent`)return c(d({action:`update`,error:{code:`AGENT_NOT_INSTALLED`,message:`${e.displayName} is not installed.`},target:{kind:`agent`,name:e.name}}),G);let a=R(e,n);return W([],a),n.kind===`cancelled`?c(d({action:`update`,data:{results:[a],scope:`single`},error:{code:`CANCELLED`,message:`Update of ${e.displayName} was cancelled.`},target:{kind:`agent`,name:e.name}}),G):a.status===`failed`||a.status===`locked`?c(d({action:`update`,data:{results:[a],scope:`single`},error:{code:`UPDATE_FAILED`,message:`Failed to update ${e.displayName}.`},target:{kind:`agent`,name:e.name}}),G):c(f({action:`update`,data:{results:[a],scope:`single`},target:{kind:`agent`,name:e.name}}),G)}function R(t,n){let r=z(n),i=`plan`in n?n.plan:void 0,a=r?.observation.kind===`present`?r.observation.version:void 0,o=i?.plannedTargetVersion,s=i?`managed/${i.binding.providerId}`:r?.binding?.providerId;switch(n.kind){case`updated`:return{displayName:t.displayName,installedVersion:a,latestVersion:n.receipt.version??o,name:t.name,status:`updated`,strategy:s};case`dry-run`:return{displayName:t.displayName,installedVersion:a,latestVersion:o,message:`Dry run: would update ${t.displayName}.`,name:t.name,status:`planned`,strategy:s};case`not-executed`:return n.plan.planning.decision===`up-to-date`?{displayName:t.displayName,installedVersion:a,latestVersion:o,name:t.name,status:`up-to-date`}:{displayName:t.displayName,installedVersion:a,latestVersion:o,message:e(t),name:t.name,status:`manual-required`};case`blocked`:return{displayName:t.displayName,installedVersion:a,message:n.reason,name:t.name,status:`failed`};case`cancelled`:return{displayName:t.displayName,installedVersion:a,latestVersion:o,message:n.reason??`Update was cancelled before it could complete.`,name:t.name,status:`failed`,strategy:s};case`timed-out`:return{displayName:t.displayName,installedVersion:a,latestVersion:o,message:`Update timed out after ${n.timeoutMs}ms.`,name:t.name,status:`failed`,strategy:s};case`provider-failed`:return{displayName:t.displayName,installedVersion:a,latestVersion:o,name:t.name,status:`failed`,strategy:s};case`verification-failed`:case`receipt-failed`:return{displayName:t.displayName,installedVersion:a,latestVersion:o,message:n.kind===`receipt-failed`?n.reason:n.verification.reason,name:t.name,status:`failed`,strategy:s};case`unknown-agent`:return{displayName:t.displayName,name:t.name,status:`failed`}}}function z(e){if(`plan`in e)return e.plan.before;if(`before`in e)return e.before}function B(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);e?W(r,V(e)):a&&W(r,H(a))}return r}function V(r){let i=r.planning.kind===`unknown-agent`?void 0:r.planning.kind===`planned`?r.planning.planned.before:r.planning.before,o=y(r.agentName);if(!o)return{displayName:i?.agent.displayName??r.agentName,name:r.agentName,status:`failed`};let s=r.execution;if(r.planning.kind===`blocked`&&r.planning.category===`untracked`)return{displayName:o.displayName,installedVersion:r.planning.before.observation.kind===`present`?r.planning.before.observation.version:void 0,message:t(o),name:o.name,status:`manual-required`};if(r.planning.kind===`blocked`&&r.planning.category===`manual-required`)return{displayName:o.displayName,installedVersion:r.planning.before.observation.kind===`present`?r.planning.before.observation.version:void 0,message:e(o),name:o.name,status:`manual-required`};if(s?.kind===`locked`)return{displayName:o.displayName,installedVersion:s.plan.before.observation.kind===`present`?s.plan.before.observation.version:void 0,latestVersion:s.plan.plannedTargetVersion,message:s.reason,name:o.name,resource:s.resource,status:`locked`,strategy:`managed/${s.plan.binding.providerId}`};if(s?.kind===`unexpected-failure`)return{displayName:o.displayName,installedVersion:s.plan.before.observation.kind===`present`?s.plan.before.observation.version:void 0,latestVersion:s.plan.plannedTargetVersion,message:s.reason,name:o.name,status:`failed`,strategy:`managed/${s.plan.binding.providerId}`};let c=s??(r.planning.kind===`planned`?{kind:`not-executed`,plan:r.planning.planned}:r.planning),l=R(o,c);return l.status===`failed`&&c.kind===`provider-failed`&&(l.hint=n(o,a({agent:o,installedState:i?.installedState,methods:[...i?.methods??[]]}))),l}function H(e){let t=y(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:e.planning.planned.plannedTargetVersion,message:e.reason??`Update was cancelled before it could start.`,name:t?.name??e.agentName,status:`failed`,strategy:`managed/${e.planning.planned.binding.providerId}`}}function U(e){return l().cancelled||e.cancellationRemainder.length>0||e.results.some(e=>e.planning.kind===`cancelled`||e.execution?.kind===`cancelled`)}function W(e,t){e.push(t),u({action:`update`,data:t,target:{kind:`agent`,name:t.name},type:`progress`})}function G(e){if(!e.data){e.error&&C(p.red(e.error.message));return}for(let t of e.data.results)switch(t.status){case`up-to-date`:x(p.green(`${t.displayName} is up to date (${t.installedVersion??`unknown`})`));break;case`manual-required`:b(p.yellow(`${t.displayName}: manual action required.`)),t.message&&b(p.cyan(`Next step: ${t.message}`));break;case`planned`:b(p.cyan(`Would update ${t.displayName}${t.strategy?` via ${t.strategy}`:``}${K(t.installedVersion,t.latestVersion)}`));break;case`updated`:x(p.cyan(`Updating ${t.displayName}${t.strategy?` via ${t.strategy}`:``}...${K(t.installedVersion,t.latestVersion)}`)),x(p.green(`${t.displayName} updated successfully!`));break;case`failed`:x(p.cyan(`Updating ${t.displayName}${t.strategy?` via ${t.strategy}`:``}...${K(t.installedVersion,t.latestVersion)}`)),C(p.red(`Failed to update ${t.displayName}.`)),t.hint&&b(p.cyan(`Next step: ${t.hint}`));break;case`locked`:b(p.yellow(t.message??`Another quantex process is already updating ${t.displayName}.`));break}e.data.results.length>1&&q(e.data.results),!e.data.results.length&&e.error&&C(p.red(e.error.message))}function K(e,t){return e?` (${e} -> ${t??`latest`})`:``}function q(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&&x(p.bold(`Summary: ${n.join(`, `)}`))}export{F as createUpdateCommandInvocation};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ot as e}from"./color-
|
|
1
|
+
import{Ot as e}from"./color-nTiVIiHx.mjs";const t=[`observe`,`update`,`verify`];function n(e){let t=i(e),n=r(e,t);return{decision:n,plan:{id:`update-${e.intent.targetId}`,intent:e.intent,kind:`lifecycle-plan`,observation:e.observation,steps:n===`upgrade`?[o(e,t)]:[]}}}function r(n,r){let{observation:i}=n;if(a(n))return`blocked-source`;if(i.kind!==`present`||i.drift.kind===`indeterminate`)return`indeterminate`;let o=n.intent.targetVersion;if(!i.version||!o)return`indeterminate`;let s=e(o,i.version);return s===void 0?`indeterminate`:s<0?`blocked-downgrade`:s===0?`up-to-date`:!r||!t.every(e=>r.capabilities.includes(e))?`manual-required`:`upgrade`}function i(e){if(!a(e))return e.provider}function a(e){let{observation:t,provider:n}=e;return t.targetId!==e.intent.targetId||t.drift.kind===`conflicting-source`?!0:t.kind!==`present`||!n?!1:t.providerId!==n.providerId||t.providerTargetId!==n.targetId||t.providerTargetKind!==n.targetKind}function o(e,t){return{dependsOn:[],effects:[{capability:`${t.providerId}-observe`,kind:`provider-observation`,providerId:t.providerId,targetId:t.targetId},{capability:`${t.providerId}-update`,kind:`provider-mutation`,providerId:t.providerId,targetId:t.targetId},{capability:`${t.providerId}-verify`,kind:`provider-observation`,providerId:t.providerId,targetId:t.targetId}],id:`update-${e.intent.targetId}`,kind:`operation`,postconditions:[{expectedVersion:e.intent.targetVersion,kind:`version-satisfies`,targetId:t.targetId}],preconditions:[]}}export{n as t};
|