quantex-cli 1.12.0 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/{agent-inspection-2y2K-DCH.mjs → agent-inspection-FouaG2Iz.mjs} +1 -1
- package/dist/{agent-observation-CmB6ofFL.mjs → agent-observation-CcBKTAZT.mjs} +1 -1
- package/dist/{agents-CESJI54l.mjs → agents-Dd4G-47n.mjs} +1 -1
- package/dist/{agents-iJvqIhMa.mjs → agents-DqDXuTf0.mjs} +1 -1
- package/dist/capabilities-OcvdqVp1.mjs +1 -0
- package/dist/{capabilities-DIRMPhTg.mjs → capabilities-YTL8Nroj.mjs} +1 -1
- package/dist/{cli-read-projection-Cj1sCG7X.mjs → cli-read-projection-DOFWDJDZ.mjs} +1 -1
- package/dist/cli.mjs +1 -1
- package/dist/commands-BFpfOP6I.mjs +1 -0
- package/dist/{commands-BQuwJ1s0.mjs → commands-D6ixcs0U.mjs} +1 -1
- package/dist/{config-CW3EEuhm.mjs → config-DUeu2PRE.mjs} +1 -1
- package/dist/{core-installation-cli-B-UNzCXn.mjs → core-installation-cli-BF2QdfHE.mjs} +1 -1
- package/dist/{doctor-CFLfa3z8.mjs → doctor-DXpczWOV.mjs} +1 -1
- package/dist/ensure-CPWDOyF2.mjs +1 -0
- package/dist/ensure-RiH3rJ1Q.mjs +1 -0
- package/dist/index.mjs +1 -1
- package/dist/{info-DP2wtQYw.mjs → info-DXcPuaGM.mjs} +1 -1
- package/dist/inspect-BBNpi7tS.mjs +1 -0
- package/dist/{inspect-OQUNwZEP.mjs → inspect-DZMJfYDG.mjs} +1 -1
- package/dist/install-DmKhdgRw.mjs +1 -0
- package/dist/installation-compatibility-X6JPRI5_.mjs +1 -0
- package/dist/{installation-compatibility-BBIt-_Gy.mjs → installation-compatibility-vSytV42c.mjs} +1 -1
- package/dist/installation-executor-4u0aboZw.mjs +1 -0
- package/dist/{installation-production-Dy8XTuRy.mjs → installation-production-DxkcDNwa.mjs} +1 -1
- package/dist/installation-routing-B16E-ssd.mjs +1 -0
- package/dist/installation-routing-CuPHXckO.mjs +1 -0
- package/dist/{lifecycle-observations-DIBfXLT1.mjs → lifecycle-observations-orGecdi1.mjs} +1 -1
- package/dist/{lifecycle-policy-0Wodv3-H.mjs → lifecycle-policy-jVfC5DFa.mjs} +1 -1
- package/dist/{list-aak6ch3E.mjs → list-BPx1_Y-v.mjs} +1 -1
- package/dist/{output-CLgmLN2q.mjs → output-CbB-lipw.mjs} +2 -2
- package/dist/{package-manager-uPteT1B0.mjs → package-manager-6SgDzwkw.mjs} +1 -1
- package/dist/{production-observation-CLYtqs1E.mjs → production-observation-v7S1oqsN.mjs} +1 -1
- package/dist/{provider-evidence-AfeylhA4.mjs → provider-evidence-DxydUqAR.mjs} +1 -1
- package/dist/{provider-observations-CY8vphIo.mjs → provider-observations-DzRKCxpH.mjs} +1 -1
- package/dist/{providers-CjFAR4Vt.mjs → providers-DUaztLRJ.mjs} +1 -1
- package/dist/resolve-BhL4HG0c.mjs +1 -0
- package/dist/{resolve-BihHZ39p.mjs → resolve-iQLTTM2u.mjs} +1 -1
- package/dist/schema-C5Ka2AH1.mjs +1 -0
- package/dist/{schema-rHlg-voJ.mjs → schema-C7Q6DeFc.mjs} +1 -1
- package/dist/{uninstall-USu8oluL.mjs → uninstall-wNejJx5C.mjs} +1 -1
- package/dist/{unmanaged-install-compatibility-KGtKiyzS.mjs → unmanaged-install-compatibility-cMT5elJV.mjs} +1 -1
- package/dist/{update-aRYrYbRj.mjs → update-DC18mjYw.mjs} +1 -1
- package/dist/{upgrade-CI-MZFjs.mjs → upgrade-CZHbCBUm.mjs} +1 -1
- package/package.json +1 -1
- package/dist/capabilities-CMnop3RC.mjs +0 -1
- package/dist/commands-BPpo5qw8.mjs +0 -1
- package/dist/ensure-BfY3mjy5.mjs +0 -1
- package/dist/ensure-CsRGwJHS.mjs +0 -1
- package/dist/inspect-DVgAp7qL.mjs +0 -1
- package/dist/install-D5IP8S3z.mjs +0 -1
- package/dist/installation-compatibility-CBA7XDvH.mjs +0 -1
- package/dist/installation-executor-BS0GowyT.mjs +0 -1
- package/dist/installation-routing-BhB6puwg.mjs +0 -1
- package/dist/installation-routing-D_8D3v0X.mjs +0 -1
- package/dist/resolve-Cf5ZZLZM.mjs +0 -1
- package/dist/schema-DxgWH0za.mjs +0 -1
- /package/dist/{provider-binding-DB7IXxJp.mjs → provider-binding-DW-oviNl.mjs} +0 -0
- /package/dist/{update-planner-Cr9XVW1l.mjs → update-planner-Bnlt3KKP.mjs} +0 -0
- /package/dist/{user-output-c8fjdhfk.mjs → user-output-CF4UAX0c.mjs} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,n as t,r as n,t as r}from"./messages-D6r2o7w-.mjs";import{g as i}from"./npm-PO9Nwgt_.mjs";import{a,c as o}from"./file-store-oHCTTnLn.mjs";import{t as s}from"./detect-Dou6fit1.mjs";import{R as c,r as l}from"./agents-iJvqIhMa.mjs";import{n as ee}from"./cli-context-DI43ouBg.mjs";import{a as te}from"./config-jsaRCEWF.mjs";import{E as u,Q as d,S as ne,T as f,et as re,i as p,n as m,r as h,t as g,x as _}from"./output-CLgmLN2q.mjs";import{f as v,r as ie}from"./providers-CjFAR4Vt.mjs";import{t as y}from"./cli-operation-context-CzjG_eom.mjs";import{t as b}from"./color-CLDVRyIs.mjs";import{l as x,r as S}from"./package-manager-uPteT1B0.mjs";import{n as C}from"./agents-CESJI54l.mjs";import{t as w}from"./update-planner-Cr9XVW1l.mjs";import{r as ae}from"./provider-binding-DB7IXxJp.mjs";import{t as oe}from"./agent-observation-CmB6ofFL.mjs";import{t as se}from"./lifecycle-observations-DIBfXLT1.mjs";import{a as T,i as E,n as D,r as O}from"./user-output-c8fjdhfk.mjs";import{n as ce,r as le}from"./installation-routing-BhB6puwg.mjs";import{i as ue,n as de,r as fe}from"./production-observation-CLYtqs1E.mjs";import{a as pe,c as me,l as he,r as ge,s as _e,u as k}from"./lifecycle-policy-0Wodv3-H.mjs";import{n as A}from"./installation-failure-diagnostics-DjaKNCw3.mjs";async function j(e){let t;for(let n of e.commands){let r=await i(n,e.context,`agent self-update failed`);if(r.kind===`success`)return{kind:`success`,value:{evidence:[{kind:`command`,value:n.join(` `)}],target:e.target}};if(r.kind===`cancelled`||r.kind===`timed-out`)return r;t=r}return t??{kind:`unsupported`,operation:`update`,reason:`No self-update command is configured.`}}async function M(e={}){let t=e.npmBunUpdateStrategy??(await import(`./config-DzIZHWeq.mjs`)).loadConfig().then(e=>e.npmBunUpdateStrategy);return N({...e,configDir:de(e.configDir),npmBunUpdateStrategy:typeof t==`string`?t:await t})}function N(e){let t=e.providerRegistry??c,n=e.signal??new AbortController().signal;return{clock:()=>new Date().toISOString(),dryRun:e.dryRun??!1,executeSelfUpdate:j,observe:r=>F(r,{providerRegistry:t,signal:n,timeoutMs:e.timeoutMs}),planLifecycleUpdate:w,providerRegistry:t,registerCleanup:e.registerCleanup,signal:n,timeoutMs:e.timeoutMs,updateOptions:{updateStrategy:e.npmBunUpdateStrategy},withMutationLock:x,writeReceipt:f.write,classifyMutationLockError:e=>a(e)?{reason:e.message,resource:e.resource}:void 0,listRegisteredAgentNames:e.listRegisteredAgentNames??(()=>ue().map(e=>e.name))}}function P(){return async()=>Object.keys((await u()).installedAgents)}async function F(e,t){let n=fe(e);if(!n)return;let r={signal:t.signal,...t.timeoutMs===void 0?{}:{timeoutMs:t.timeoutMs}},i,a=()=>(i??=_(n.name),i),o=await S(n);return I(n,o,await oe(n,{clock:()=>new Date().toISOString(),inspectExecutable:async()=>ve(n,r),platform:s(),preferredCatalogBinding:o[0]?ae(n,o[0]):void 0,providerRegistry:t.providerRegistry,readInstalledState:a,readReceipt:()=>ne(n.name),resolveExecutablePath:e=>d(e,r),signal:t.signal,timeoutMs:t.timeoutMs}))}function I(e,t,n){return{agent:{binaryName:e.binaryName,displayName:e.displayName,name:e.name,...e.packages?{packages:e.packages}:{},...e.selfUpdate?{selfUpdate:e.selfUpdate}:{}},...n.binding?{binding:n.binding}:{},capabilities:n.capabilities,executable:n.executable,...n.installedState?{installedState:n.installedState}:{},methods:[...t],observation:n.observation,...n.persistedBinding?{persistedBinding:n.persistedBinding}:{},...n.receipt?{receipt:n.receipt}:{}}}async function ve(e,t){let n=await o(e.binaryName,t);if(!n)return{present:!1};let r=await re(e.binaryName,e.versionProbe,t,n);return{path:await d(n,t)??n,present:!0,version:r}}function ye(e,t={}){let n=!1,r,i,a,o,s=()=>(a??=t.loadPorts?.()??M({configDir:t.configDir,dryRun:t.dryRun,registerCleanup:t.registerCleanup,signal:t.signal,timeoutMs:t.timeoutMs}),a);return{dispose(){n=!0},getOutcome:()=>r,async observe(e){if(n)throw Error(`Core update invocation has been disposed.`);return(await s()).observe(e)},prepare(){return n?Promise.reject(Error(`Core update invocation has been disposed.`)):(i??=s().then(t=>k(e,t)),i)},run(){return n?Promise.reject(Error(`Core update invocation has been disposed.`)):(o??=(async()=>{let e=await this.prepare();if(n)throw Error(`Core update invocation has been disposed.`);return r=e.kind===`planned`?await me(e.planned,await s()):e,r})(),o)}}}function be(e,t={}){let n=!1,r,i,a,o,s=()=>(a??=t.loadPorts?.()??M({configDir:t.configDir,dryRun:t.dryRun,listRegisteredAgentNames:e===`managed`?P():void 0,registerCleanup:t.registerCleanup,signal:t.signal,timeoutMs:t.timeoutMs}),a);return{dispose(){n=!0},getOutcome:()=>r,async observe(e){if(n)throw Error(`Core update batch invocation has been disposed.`);return(await s()).observe(e)},prepare(){return n?Promise.reject(Error(`Core update batch invocation has been disposed.`)):(i??=s().then(e=>he(e)),i)},run(){return n?Promise.reject(Error(`Core update batch invocation has been disposed.`)):(o??=(async()=>{let e=await this.prepare();if(n)throw Error(`Core update batch invocation has been disposed.`);return r=await _e(e,await s()),r})(),o)}}}async function L(){let e=R();try{return await e.run()}finally{e.dispose()}}function R(){return V(`all`,()=>l().map(e=>e.name))}function xe(){return V(`managed`,async()=>Object.keys((await u()).installedAgents))}async function z(e){let t=B(e);try{return await t.run()}finally{t.dispose()}}function B(e){return Se(e)}function Se(e){let t=y(),n=0,r=!1,i=!1,a=ye(e,H(t)),o=()=>{!r||i||n>0||(i=!0,t.dispose())},s=async e=>{if(r)throw Error(`Single-agent update invocation has been disposed.`);n+=1;try{return await t.run(e)}finally{--n,o()}};return{dispose(){r||(r=!0,a.dispose(),o())},getOutcome:()=>a.getOutcome(),observe(e){return s(()=>a.observe(e))},prepare(){return s(()=>a.prepare())},run(){return s(()=>a.run())}}}function V(e,t){let n=y(),r=0,i=!1,o=!1,s=be(e,{...H(n),loadPorts:async()=>({...await U(n),classifyMutationLockError:e=>a(e)?{reason:e.message,resource:e.resource}:void 0,listRegisteredAgentNames:t})}),c=()=>{!i||o||r>0||(o=!0,n.dispose())},l=async e=>{if(i)throw Error(`Lifecycle update batch invocation has been disposed.`);r+=1;try{return await n.run(e)}finally{--r,c()}};return{dispose(){i||(i=!0,s.dispose(),c())},getOutcome:()=>s.getOutcome(),observe(e){return l(()=>s.observe(e))},prepare(){return l(()=>s.prepare())},run(){return l(()=>s.run())}}}function H(e){return{dryRun:D(),loadPorts:()=>U(e),registerCleanup:e.context.registerCleanup,signal:e.context.signal,timeoutMs:e.context.timeoutMs}}async function U(e){let t=await te(),n=se(e.context);return{classifyMutationLockError:e=>a(e)?{reason:e.message,resource:e.resource}:void 0,clock:()=>new Date().toISOString(),dryRun:D(),executeSelfUpdate:j,listRegisteredAgentNames:()=>l().map(e=>e.name),observe:n.resolveAgentObservation,planLifecycleUpdate:w,providerRegistry:c,registerCleanup:e.context.registerCleanup,signal:e.context.signal,timeoutMs:e.context.timeoutMs,updateOptions:{updateStrategy:t.npmBunUpdateStrategy},withMutationLock:x,writeReceipt:f.write}}async function W(e,t,n={runBatch:L,runManagedBatch:L,runSingle:z},r=!1){if(ce(`update`,le(`update`)),r&&!t)return p(g({action:`update`,error:{code:`INVALID_ARGUMENT`,message:`The --managed option requires --all.`},target:{kind:`agent`}}),Q);if(t)return we(n,r?`managed`:`all`);if(!e)return p(g({action:`update`,error:{code:`INVALID_ARGUMENT`,message:`Please specify an agent name or use --all flag`},target:{kind:`agent`}}),Q);let i=C(e);return i?Te(i,n):p(g({action:`update`,error:{code:`AGENT_NOT_FOUND`,details:{input:e},message:`Unknown agent: ${e}`},target:{kind:`agent`,name:e}}),Q)}function Ce(e,t,n=!1){if(t){let t=n?xe():R();return{dispose:t.dispose,idempotencyPolicy:()=>ge(t),run:()=>W(e,!0,{runBatch:()=>t.run(),runManagedBatch:()=>t.run(),runSingle:z},n)}}if(!e)return{dispose(){},run:()=>W(e,t,void 0,n)};let r=B(e);return{dispose:r.dispose,idempotencyPolicy:()=>pe(e,r),run:()=>W(e,!1,{runBatch:L,runManagedBatch:L,runSingle:()=>r.run()},n)}}async function we(e,t){h({action:`update`,data:{scope:t},target:{kind:`agent`},type:`started`});let n=await(t===`managed`?(e.runManagedBatch??e.runBatch)():e.runBatch()),r=q(n),i=ke(n);return Ae(n)?p(g({action:`update`,data:{results:r,scope:t},error:{code:`CANCELLED`,message:`Update was cancelled before all agents could be updated.`},target:{kind:`agent`},warnings:i}),Q):r.some(e=>e.status===`failed`||e.status===`locked`)?p(g({action:`update`,data:{results:r,scope:t},error:{code:`UPDATE_FAILED`,message:`One or more agents failed to update.`},target:{kind:`agent`},warnings:i}),Q):p(m({action:`update`,data:{results:r,scope:t},target:{kind:`agent`},warnings:i}),Q)}async function Te(e,t){h({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(!a(t))throw t;return p(g({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}}),Q)}let r=K(n);if(n.kind===`unknown-agent`)return p(g({action:`update`,error:{code:`AGENT_NOT_FOUND`,message:`Unknown agent: ${e.name}`},target:{kind:`agent`,name:e.name}}),Q);if(r?.observation.kind===`absent`){let t=r.observation.drift.kind===`recorded-absent`?[J(e)]:[];return p(g({action:`update`,error:{code:`AGENT_NOT_INSTALLED`,message:`${e.displayName} is not installed.`},target:{kind:`agent`,name:e.name},warnings:t}),Q)}let i=G(e,n);return Z([],i),n.kind===`cancelled`?p(g({action:`update`,data:{results:[i],scope:`single`},error:{code:`CANCELLED`,message:`Update of ${e.displayName} was cancelled.`},target:{kind:`agent`,name:e.name}}),Q):i.status===`failed`||i.status===`locked`?p(g({action:`update`,data:{results:[i],scope:`single`},error:{code:`UPDATE_FAILED`,message:`Failed to update ${e.displayName}.`},target:{kind:`agent`,name:e.name}}),Q):p(m({action:`update`,data:{results:[i],scope:`single`},target:{kind:`agent`,name:e.name},warnings:Ee(e,n)}),Q)}function Ee(e,t){if(t.kind!==`blocked`||t.category!==`superseded-package`)return[];let n=v(e,t.before.installedState);return n?[r(e,n)]:[]}function G(t,r){let i=K(r),a=`plan`in r?r.plan:void 0,o=i?.observation.kind===`present`?i.observation.version:void 0,s=Y(a),c=X(a)??i?.binding?.providerId;switch(r.kind){case`updated`:return{displayName:t.displayName,installedVersion:o,latestVersion:r.receipt.version??s,name:t.name,status:`updated`,strategy:c};case`up-to-date`:return{displayName:t.displayName,installedVersion:r.receipt.version??o,name:t.name,status:`up-to-date`,strategy:c};case`dry-run`:return{displayName:t.displayName,installedVersion:o,latestVersion:s,message:`Dry run: would update ${t.displayName}.`,name:t.name,status:`planned`,strategy:c};case`not-executed`:return r.plan.planning.decision===`up-to-date`?{displayName:t.displayName,installedVersion:o,latestVersion:s,name:t.name,status:`up-to-date`}:{displayName:t.displayName,installedVersion:o,latestVersion:s,message:n(t),name:t.name,status:`manual-required`};case`blocked`:return r.category===`untracked`?{displayName:t.displayName,installedVersion:o,message:e(t),name:t.name,status:`manual-required`}:r.category===`manual-required`?{displayName:t.displayName,installedVersion:o,message:n(t),name:t.name,status:`manual-required`}:r.category===`superseded-package`?{displayName:t.displayName,installedVersion:o,message:r.reason,name:t.name,status:`manual-required`}:{displayName:t.displayName,installedVersion:o,message:r.reason,name:t.name,status:`failed`};case`cancelled`:return{displayName:t.displayName,installedVersion:o,latestVersion:s,message:r.reason??`Update was cancelled before it could complete.`,name:t.name,status:`failed`,strategy:c};case`timed-out`:return{displayName:t.displayName,installedVersion:o,latestVersion:s,message:`Update timed out after ${r.timeoutMs}ms.`,name:t.name,status:`failed`,strategy:c};case`provider-failed`:return{displayName:t.displayName,installedVersion:o,latestVersion:s,name:t.name,status:`failed`,strategy:c};case`verification-failed`:case`receipt-failed`:return{displayName:t.displayName,installedVersion:o,latestVersion:s,message:r.kind===`receipt-failed`?r.reason:r.verification.reason,name:t.name,status:`failed`,strategy:c};case`unknown-agent`:return{displayName:t.displayName,name:t.name,status:`failed`}}}function K(e){if(`plan`in e)return e.plan.before;if(`before`in e)return e.before}function q(e){let t=new Map(e.results.map(e=>[e.id,e])),n=new Map(e.cancellationRemainder.map(e=>[e.id,e])),r=[];for(let i of e.plan.targets){let e=t.get(i.id),a=n.get(i.id);if(e){let t=De(e);t&&Z(r,t)}else a&&Z(r,Oe(a))}return r}function De(e){let n=e.planning.kind===`unknown-agent`?void 0:e.planning.kind===`planned`?e.planning.planned.before:e.planning.before,r=C(e.agentName);if(!r)return{displayName:n?.agent.displayName??e.agentName,name:e.agentName,status:`failed`};let i=e.execution;if(e.planning.kind===`blocked`&&e.planning.category===`stale-state`)return;if(i?.kind===`locked`)return{displayName:r.displayName,installedVersion:i.plan.before.observation.kind===`present`?i.plan.before.observation.version:void 0,latestVersion:Y(i.plan),message:i.reason,name:r.name,resource:i.resource,status:`locked`,strategy:X(i.plan)};if(i?.kind===`unexpected-failure`)return{displayName:r.displayName,installedVersion:i.plan.before.observation.kind===`present`?i.plan.before.observation.version:void 0,latestVersion:Y(i.plan),message:i.reason,name:r.name,status:`failed`,strategy:X(i.plan)};let a=i??(e.planning.kind===`planned`?{kind:`not-executed`,plan:e.planning.planned}:e.planning),o=G(r,a);return o.status===`failed`&&a.kind===`provider-failed`&&(o.hint=t(r,ie({agent:r,installedState:n?.installedState,methods:[...n?.methods??[]]}))),o}function Oe(e){let t=C(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:Y(e.planning.planned),message:e.reason??`Update was cancelled before it could start.`,name:t?.name??e.agentName,status:`failed`,strategy:X(e.planning.planned)}}function ke(e){return e.plan.targets.flatMap(e=>{if(e.outcome.kind!==`blocked`)return[];let t=C(e.agentName)??e.outcome.before.agent;if(e.outcome.category===`stale-state`)return[J(t)];if(e.outcome.category===`superseded-package`){let n=v(t,e.outcome.before.installedState);return n?[r(t,n)]:[]}return[]})}function J(e){return{code:`AGENT_STALE_STATE`,details:{agentName:e.name,suggestedAction:`reconcile-agent-state`,suggestedCommands:[`quantex uninstall ${e.name}`]},message:`${e.displayName} is not installed but has stale lifecycle evidence. Run \`quantex uninstall ${e.name}\` to reconcile it.`}}function Y(e){return e?.strategy===`managed-provider`?e.plannedTargetVersion:void 0}function X(e){if(e)return e.strategy===`self-update`?`self-update`:`managed/${e.binding.providerId}`}function Ae(e){return ee().cancelled||e.cancellationRemainder.length>0||e.results.some(e=>e.planning.kind===`cancelled`||e.execution?.kind===`cancelled`)}function Z(e,t){e.push(t),h({action:`update`,data:t,target:{kind:`agent`,name:t.name},type:`progress`})}function Q(e){if(!e.data){e.error&&O(b.red(e.error.message));return}for(let t of e.warnings)T(b.yellow(t.message));for(let t of e.data.results)switch(t.status){case`up-to-date`:E(b.green(`${t.displayName} is up to date (${t.installedVersion??`unknown`})`));break;case`manual-required`:T(b.yellow(`${t.displayName}: manual action required.`)),t.message&&T(b.cyan(`Next step: ${t.message}`));break;case`planned`:T(b.cyan(`Would update ${t.displayName}${t.strategy?` via ${t.strategy}`:``}${$(t.installedVersion,t.latestVersion)}`));break;case`updated`:E(b.cyan(`Updating ${t.displayName}${t.strategy?` via ${t.strategy}`:``}...${$(t.installedVersion,t.latestVersion)}`)),E(b.green(`${t.displayName} updated successfully!`));break;case`failed`:E(b.cyan(`Updating ${t.displayName}${t.strategy?` via ${t.strategy}`:``}...${$(t.installedVersion,t.latestVersion)}`)),O(b.red(A(`Failed to update ${t.displayName}.`,t.message))),t.hint&&T(b.cyan(`Next step: ${t.hint}`));break;case`locked`:T(b.yellow(t.message??`Another quantex process is already updating ${t.displayName}.`));break}e.data.results.length>1&&je(e.data.results),!e.data.results.length&&e.error&&O(b.red(e.error.message))}function $(e,t){return e?` (${e} -> ${t??`latest`})`:``}function je(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&&E(b.bold(`Summary: ${n.join(`, `)}`))}export{Ce as createUpdateCommandInvocation};
|
|
1
|
+
import{a as e,n as t,r as n,t as r}from"./messages-D6r2o7w-.mjs";import{g as i}from"./npm-PO9Nwgt_.mjs";import{a,c as o}from"./file-store-oHCTTnLn.mjs";import{t as s}from"./detect-Dou6fit1.mjs";import{R as c,r as l}from"./agents-DqDXuTf0.mjs";import{n as ee}from"./cli-context-DI43ouBg.mjs";import{a as u}from"./config-jsaRCEWF.mjs";import{E as d,Q as f,S as te,T as p,et as ne,i as m,n as h,r as g,t as _,x as v}from"./output-CbB-lipw.mjs";import{f as y,r as re}from"./providers-DUaztLRJ.mjs";import{t as b}from"./cli-operation-context-CzjG_eom.mjs";import{t as x}from"./color-CLDVRyIs.mjs";import{a as S,i as C,n as w,r as T}from"./user-output-CF4UAX0c.mjs";import{n as ie,r as ae}from"./installation-routing-CuPHXckO.mjs";import{l as E,r as oe}from"./package-manager-6SgDzwkw.mjs";import{n as D}from"./agents-Dd4G-47n.mjs";import{t as O}from"./update-planner-Bnlt3KKP.mjs";import{r as se}from"./provider-binding-DW-oviNl.mjs";import{t as ce}from"./agent-observation-CcBKTAZT.mjs";import{t as le}from"./lifecycle-observations-orGecdi1.mjs";import{i as ue,n as de,r as fe}from"./production-observation-v7S1oqsN.mjs";import{a as pe,c as me,l as he,r as ge,s as _e,u as k}from"./lifecycle-policy-jVfC5DFa.mjs";import{n as A}from"./installation-failure-diagnostics-DjaKNCw3.mjs";async function j(e){let t;for(let n of e.commands){let r=await i(n,e.context,`agent self-update failed`);if(r.kind===`success`)return{kind:`success`,value:{evidence:[{kind:`command`,value:n.join(` `)}],target:e.target}};if(r.kind===`cancelled`||r.kind===`timed-out`)return r;t=r}return t??{kind:`unsupported`,operation:`update`,reason:`No self-update command is configured.`}}async function M(e={}){let t=e.npmBunUpdateStrategy??(await import(`./config-DzIZHWeq.mjs`)).loadConfig().then(e=>e.npmBunUpdateStrategy);return N({...e,configDir:de(e.configDir),npmBunUpdateStrategy:typeof t==`string`?t:await t})}function N(e){let t=e.providerRegistry??c,n=e.signal??new AbortController().signal;return{clock:()=>new Date().toISOString(),dryRun:e.dryRun??!1,executeSelfUpdate:j,observe:r=>F(r,{providerRegistry:t,signal:n,timeoutMs:e.timeoutMs}),planLifecycleUpdate:O,providerRegistry:t,registerCleanup:e.registerCleanup,signal:n,timeoutMs:e.timeoutMs,updateOptions:{updateStrategy:e.npmBunUpdateStrategy},withMutationLock:E,writeReceipt:p.write,classifyMutationLockError:e=>a(e)?{reason:e.message,resource:e.resource}:void 0,listRegisteredAgentNames:e.listRegisteredAgentNames??(()=>ue().map(e=>e.name))}}function P(){return async()=>Object.keys((await d()).installedAgents)}async function F(e,t){let n=fe(e);if(!n)return;let r={signal:t.signal,...t.timeoutMs===void 0?{}:{timeoutMs:t.timeoutMs}},i,a=()=>(i??=v(n.name),i),o=await oe(n);return I(n,o,await ce(n,{clock:()=>new Date().toISOString(),inspectExecutable:async()=>ve(n,r),platform:s(),preferredCatalogBinding:o[0]?se(n,o[0]):void 0,providerRegistry:t.providerRegistry,readInstalledState:a,readReceipt:()=>te(n.name),resolveExecutablePath:e=>f(e,r),signal:t.signal,timeoutMs:t.timeoutMs}))}function I(e,t,n){return{agent:{binaryName:e.binaryName,displayName:e.displayName,name:e.name,...e.packages?{packages:e.packages}:{},...e.selfUpdate?{selfUpdate:e.selfUpdate}:{}},...n.binding?{binding:n.binding}:{},capabilities:n.capabilities,executable:n.executable,...n.installedState?{installedState:n.installedState}:{},methods:[...t],observation:n.observation,...n.persistedBinding?{persistedBinding:n.persistedBinding}:{},...n.receipt?{receipt:n.receipt}:{}}}async function ve(e,t){let n=await o(e.binaryName,t);if(!n)return{present:!1};let r=await ne(e.binaryName,e.versionProbe,t,n);return{path:await f(n,t)??n,present:!0,version:r}}function ye(e,t={}){let n=!1,r,i,a,o,s=()=>(a??=t.loadPorts?.()??M({configDir:t.configDir,dryRun:t.dryRun,registerCleanup:t.registerCleanup,signal:t.signal,timeoutMs:t.timeoutMs}),a);return{dispose(){n=!0},getOutcome:()=>r,async observe(e){if(n)throw Error(`Core update invocation has been disposed.`);return(await s()).observe(e)},prepare(){return n?Promise.reject(Error(`Core update invocation has been disposed.`)):(i??=s().then(t=>k(e,t)),i)},run(){return n?Promise.reject(Error(`Core update invocation has been disposed.`)):(o??=(async()=>{let e=await this.prepare();if(n)throw Error(`Core update invocation has been disposed.`);return r=e.kind===`planned`?await me(e.planned,await s()):e,r})(),o)}}}function be(e,t={}){let n=!1,r,i,a,o,s=()=>(a??=t.loadPorts?.()??M({configDir:t.configDir,dryRun:t.dryRun,listRegisteredAgentNames:e===`managed`?P():void 0,registerCleanup:t.registerCleanup,signal:t.signal,timeoutMs:t.timeoutMs}),a);return{dispose(){n=!0},getOutcome:()=>r,async observe(e){if(n)throw Error(`Core update batch invocation has been disposed.`);return(await s()).observe(e)},prepare(){return n?Promise.reject(Error(`Core update batch invocation has been disposed.`)):(i??=s().then(e=>he(e)),i)},run(){return n?Promise.reject(Error(`Core update batch invocation has been disposed.`)):(o??=(async()=>{let e=await this.prepare();if(n)throw Error(`Core update batch invocation has been disposed.`);return r=await _e(e,await s()),r})(),o)}}}async function L(){let e=R();try{return await e.run()}finally{e.dispose()}}function R(){return V(`all`,()=>l().map(e=>e.name))}function xe(){return V(`managed`,async()=>Object.keys((await d()).installedAgents))}async function z(e){let t=B(e);try{return await t.run()}finally{t.dispose()}}function B(e){return Se(e)}function Se(e){let t=b(),n=0,r=!1,i=!1,a=ye(e,H(t)),o=()=>{!r||i||n>0||(i=!0,t.dispose())},s=async e=>{if(r)throw Error(`Single-agent update invocation has been disposed.`);n+=1;try{return await t.run(e)}finally{--n,o()}};return{dispose(){r||(r=!0,a.dispose(),o())},getOutcome:()=>a.getOutcome(),observe(e){return s(()=>a.observe(e))},prepare(){return s(()=>a.prepare())},run(){return s(()=>a.run())}}}function V(e,t){let n=b(),r=0,i=!1,o=!1,s=be(e,{...H(n),loadPorts:async()=>({...await U(n),classifyMutationLockError:e=>a(e)?{reason:e.message,resource:e.resource}:void 0,listRegisteredAgentNames:t})}),c=()=>{!i||o||r>0||(o=!0,n.dispose())},l=async e=>{if(i)throw Error(`Lifecycle update batch invocation has been disposed.`);r+=1;try{return await n.run(e)}finally{--r,c()}};return{dispose(){i||(i=!0,s.dispose(),c())},getOutcome:()=>s.getOutcome(),observe(e){return l(()=>s.observe(e))},prepare(){return l(()=>s.prepare())},run(){return l(()=>s.run())}}}function H(e){return{dryRun:w(),loadPorts:()=>U(e),registerCleanup:e.context.registerCleanup,signal:e.context.signal,timeoutMs:e.context.timeoutMs}}async function U(e){let t=await u(),n=le(e.context);return{classifyMutationLockError:e=>a(e)?{reason:e.message,resource:e.resource}:void 0,clock:()=>new Date().toISOString(),dryRun:w(),executeSelfUpdate:j,listRegisteredAgentNames:()=>l().map(e=>e.name),observe:n.resolveAgentObservation,planLifecycleUpdate:O,providerRegistry:c,registerCleanup:e.context.registerCleanup,signal:e.context.signal,timeoutMs:e.context.timeoutMs,updateOptions:{updateStrategy:t.npmBunUpdateStrategy},withMutationLock:E,writeReceipt:p.write}}async function W(e,t,n={runBatch:L,runManagedBatch:L,runSingle:z},r=!1){if(ie(`update`,ae(`update`)),r&&!t)return m(_({action:`update`,error:{code:`INVALID_ARGUMENT`,message:`The --managed option requires --all.`},target:{kind:`agent`}}),Q);if(t)return we(n,r?`managed`:`all`);if(!e)return m(_({action:`update`,error:{code:`INVALID_ARGUMENT`,message:`Please specify an agent name or use --all flag`},target:{kind:`agent`}}),Q);let i=D(e);return i?Te(i,n):m(_({action:`update`,error:{code:`AGENT_NOT_FOUND`,details:{input:e},message:`Unknown agent: ${e}`},target:{kind:`agent`,name:e}}),Q)}function Ce(e,t,n=!1){if(t){let t=n?xe():R();return{dispose:t.dispose,idempotencyPolicy:()=>ge(t),run:()=>W(e,!0,{runBatch:()=>t.run(),runManagedBatch:()=>t.run(),runSingle:z},n)}}if(!e)return{dispose(){},run:()=>W(e,t,void 0,n)};let r=B(e);return{dispose:r.dispose,idempotencyPolicy:()=>pe(e,r),run:()=>W(e,!1,{runBatch:L,runManagedBatch:L,runSingle:()=>r.run()},n)}}async function we(e,t){g({action:`update`,data:{scope:t},target:{kind:`agent`},type:`started`});let n=await(t===`managed`?(e.runManagedBatch??e.runBatch)():e.runBatch()),r=q(n),i=ke(n);return Ae(n)?m(_({action:`update`,data:{results:r,scope:t},error:{code:`CANCELLED`,message:`Update was cancelled before all agents could be updated.`},target:{kind:`agent`},warnings:i}),Q):r.some(e=>e.status===`failed`||e.status===`locked`)?m(_({action:`update`,data:{results:r,scope:t},error:{code:`UPDATE_FAILED`,message:`One or more agents failed to update.`},target:{kind:`agent`},warnings:i}),Q):m(h({action:`update`,data:{results:r,scope:t},target:{kind:`agent`},warnings:i}),Q)}async function Te(e,t){g({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(!a(t))throw t;return m(_({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}}),Q)}let r=K(n);if(n.kind===`unknown-agent`)return m(_({action:`update`,error:{code:`AGENT_NOT_FOUND`,message:`Unknown agent: ${e.name}`},target:{kind:`agent`,name:e.name}}),Q);if(r?.observation.kind===`absent`){let t=r.observation.drift.kind===`recorded-absent`?[J(e)]:[];return m(_({action:`update`,error:{code:`AGENT_NOT_INSTALLED`,message:`${e.displayName} is not installed.`},target:{kind:`agent`,name:e.name},warnings:t}),Q)}let i=G(e,n);return Z([],i),n.kind===`cancelled`?m(_({action:`update`,data:{results:[i],scope:`single`},error:{code:`CANCELLED`,message:`Update of ${e.displayName} was cancelled.`},target:{kind:`agent`,name:e.name}}),Q):i.status===`failed`||i.status===`locked`?m(_({action:`update`,data:{results:[i],scope:`single`},error:{code:`UPDATE_FAILED`,message:`Failed to update ${e.displayName}.`},target:{kind:`agent`,name:e.name}}),Q):m(h({action:`update`,data:{results:[i],scope:`single`},target:{kind:`agent`,name:e.name},warnings:Ee(e,n)}),Q)}function Ee(e,t){if(t.kind!==`blocked`||t.category!==`superseded-package`)return[];let n=y(e,t.before.installedState);return n?[r(e,n)]:[]}function G(t,r){let i=K(r),a=`plan`in r?r.plan:void 0,o=i?.observation.kind===`present`?i.observation.version:void 0,s=Y(a),c=X(a)??i?.binding?.providerId;switch(r.kind){case`updated`:return{displayName:t.displayName,installedVersion:o,latestVersion:r.receipt.version??s,name:t.name,status:`updated`,strategy:c};case`up-to-date`:return{displayName:t.displayName,installedVersion:r.receipt.version??o,name:t.name,status:`up-to-date`,strategy:c};case`dry-run`:return{displayName:t.displayName,installedVersion:o,latestVersion:s,message:`Dry run: would update ${t.displayName}.`,name:t.name,status:`planned`,strategy:c};case`not-executed`:return r.plan.planning.decision===`up-to-date`?{displayName:t.displayName,installedVersion:o,latestVersion:s,name:t.name,status:`up-to-date`}:{displayName:t.displayName,installedVersion:o,latestVersion:s,message:n(t),name:t.name,status:`manual-required`};case`blocked`:return r.category===`untracked`?{displayName:t.displayName,installedVersion:o,message:e(t),name:t.name,status:`manual-required`}:r.category===`manual-required`?{displayName:t.displayName,installedVersion:o,message:n(t),name:t.name,status:`manual-required`}:r.category===`superseded-package`?{displayName:t.displayName,installedVersion:o,message:r.reason,name:t.name,status:`manual-required`}:{displayName:t.displayName,installedVersion:o,message:r.reason,name:t.name,status:`failed`};case`cancelled`:return{displayName:t.displayName,installedVersion:o,latestVersion:s,message:r.reason??`Update was cancelled before it could complete.`,name:t.name,status:`failed`,strategy:c};case`timed-out`:return{displayName:t.displayName,installedVersion:o,latestVersion:s,message:`Update timed out after ${r.timeoutMs}ms.`,name:t.name,status:`failed`,strategy:c};case`provider-failed`:return{displayName:t.displayName,installedVersion:o,latestVersion:s,name:t.name,status:`failed`,strategy:c};case`verification-failed`:case`receipt-failed`:return{displayName:t.displayName,installedVersion:o,latestVersion:s,message:r.kind===`receipt-failed`?r.reason:r.verification.reason,name:t.name,status:`failed`,strategy:c};case`unknown-agent`:return{displayName:t.displayName,name:t.name,status:`failed`}}}function K(e){if(`plan`in e)return e.plan.before;if(`before`in e)return e.before}function q(e){let t=new Map(e.results.map(e=>[e.id,e])),n=new Map(e.cancellationRemainder.map(e=>[e.id,e])),r=[];for(let i of e.plan.targets){let e=t.get(i.id),a=n.get(i.id);if(e){let t=De(e);t&&Z(r,t)}else a&&Z(r,Oe(a))}return r}function De(e){let n=e.planning.kind===`unknown-agent`?void 0:e.planning.kind===`planned`?e.planning.planned.before:e.planning.before,r=D(e.agentName);if(!r)return{displayName:n?.agent.displayName??e.agentName,name:e.agentName,status:`failed`};let i=e.execution;if(e.planning.kind===`blocked`&&e.planning.category===`stale-state`)return;if(i?.kind===`locked`)return{displayName:r.displayName,installedVersion:i.plan.before.observation.kind===`present`?i.plan.before.observation.version:void 0,latestVersion:Y(i.plan),message:i.reason,name:r.name,resource:i.resource,status:`locked`,strategy:X(i.plan)};if(i?.kind===`unexpected-failure`)return{displayName:r.displayName,installedVersion:i.plan.before.observation.kind===`present`?i.plan.before.observation.version:void 0,latestVersion:Y(i.plan),message:i.reason,name:r.name,status:`failed`,strategy:X(i.plan)};let a=i??(e.planning.kind===`planned`?{kind:`not-executed`,plan:e.planning.planned}:e.planning),o=G(r,a);return o.status===`failed`&&a.kind===`provider-failed`&&(o.hint=t(r,re({agent:r,installedState:n?.installedState,methods:[...n?.methods??[]]}))),o}function Oe(e){let t=D(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:Y(e.planning.planned),message:e.reason??`Update was cancelled before it could start.`,name:t?.name??e.agentName,status:`failed`,strategy:X(e.planning.planned)}}function ke(e){return e.plan.targets.flatMap(e=>{if(e.outcome.kind!==`blocked`)return[];let t=D(e.agentName)??e.outcome.before.agent;if(e.outcome.category===`stale-state`)return[J(t)];if(e.outcome.category===`superseded-package`){let n=y(t,e.outcome.before.installedState);return n?[r(t,n)]:[]}return[]})}function J(e){return{code:`AGENT_STALE_STATE`,details:{agentName:e.name,suggestedAction:`reconcile-agent-state`,suggestedCommands:[`quantex uninstall ${e.name}`]},message:`${e.displayName} is not installed but has stale lifecycle evidence. Run \`quantex uninstall ${e.name}\` to reconcile it.`}}function Y(e){return e?.strategy===`managed-provider`?e.plannedTargetVersion:void 0}function X(e){if(e)return e.strategy===`self-update`?`self-update`:`managed/${e.binding.providerId}`}function Ae(e){return ee().cancelled||e.cancellationRemainder.length>0||e.results.some(e=>e.planning.kind===`cancelled`||e.execution?.kind===`cancelled`)}function Z(e,t){e.push(t),g({action:`update`,data:t,target:{kind:`agent`,name:t.name},type:`progress`})}function Q(e){if(!e.data){e.error&&T(x.red(e.error.message));return}for(let t of e.warnings)S(x.yellow(t.message));for(let t of e.data.results)switch(t.status){case`up-to-date`:C(x.green(`${t.displayName} is up to date (${t.installedVersion??`unknown`})`));break;case`manual-required`:S(x.yellow(`${t.displayName}: manual action required.`)),t.message&&S(x.cyan(`Next step: ${t.message}`));break;case`planned`:S(x.cyan(`Would update ${t.displayName}${t.strategy?` via ${t.strategy}`:``}${$(t.installedVersion,t.latestVersion)}`));break;case`updated`:C(x.cyan(`Updating ${t.displayName}${t.strategy?` via ${t.strategy}`:``}...${$(t.installedVersion,t.latestVersion)}`)),C(x.green(`${t.displayName} updated successfully!`));break;case`failed`:C(x.cyan(`Updating ${t.displayName}${t.strategy?` via ${t.strategy}`:``}...${$(t.installedVersion,t.latestVersion)}`)),T(x.red(A(`Failed to update ${t.displayName}.`,t.message))),t.hint&&S(x.cyan(`Next step: ${t.hint}`));break;case`locked`:S(x.yellow(t.message??`Another quantex process is already updating ${t.displayName}.`));break}e.data.results.length>1&&je(e.data.results),!e.data.results.length&&e.error&&T(x.red(e.error.message))}function $(e,t){return e?` (${e} -> ${t??`latest`})`:``}function je(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&&C(x.bold(`Summary: ${n.join(`, `)}`))}export{Ce as createUpdateCommandInvocation};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e,o as t,t as n}from"./child-process-DzIdysOm.mjs";import{s as r}from"./schema-BBnWVY6R.mjs";import{i,n as a}from"./cli-context-DI43ouBg.mjs";import{c as o,d as s,f as c,i as l,m as u,n as d,t as f,u as p,y as m}from"./output-
|
|
1
|
+
import{c as e,o as t,t as n}from"./child-process-DzIdysOm.mjs";import{s as r}from"./schema-BBnWVY6R.mjs";import{i,n as a}from"./cli-context-DI43ouBg.mjs";import{c as o,d as s,f as c,i as l,m as u,n as d,t as f,u as p,y as m}from"./output-CbB-lipw.mjs";import{t as h}from"./color-CLDVRyIs.mjs";import{a as g,i as _,n as v,r as y}from"./user-output-CF4UAX0c.mjs";import{n as b,t as x}from"./version-cache-BPRXYft0.mjs";const S={platform:process.platform,spawn:(e,n)=>t(e,{...n,stdio:n.stdio?[...n.stdio]:void 0}),terminate:e,writeStderr:e=>{process.stderr.write(e)}};function C(e=S){let t=b(e);return{run:e=>t.run({...e,forwardPipedOutput:e.forwardPipedOutput??!1})}}const w={fetch:globalThis.fetch.bind(globalThis)};function T(e=w){return{async request(t){if(t.signal.aborted)return E(t.signal);let n=new AbortController,r,i,a=!1,o=new Promise(e=>i=e),s=e=>{a||(a=!0,n.abort(),i(e))},c=()=>s(E(t.signal));t.signal.addEventListener(`abort`,c,{once:!0}),t.signal.aborted&&c(),t.timeoutMs!==void 0&&(r=setTimeout(()=>s(D(`timed-out`,`Network request timed out after ${t.timeoutMs}ms.`)),t.timeoutMs));let l=Promise.resolve().then(async()=>{let r=await e.fetch(t.url,{body:t.body,headers:t.headers,method:t.method,signal:n.signal}),i={};return r.headers.forEach((e,t)=>i[t.toLowerCase()]=e),{kind:`success`,value:{body:new Uint8Array(await r.arrayBuffer()),headers:i,status:r.status}}}).catch(e=>t.signal.aborted?E(t.signal):n.signal.aborted&&t.timeoutMs!==void 0?D(`timed-out`,`Network request timed out after ${t.timeoutMs}ms.`):D(`failed`,e instanceof Error?e.message:`Network request failed.`));try{return await Promise.race([l,o])}finally{a=!0,r&&clearTimeout(r),t.signal.removeEventListener(`abort`,c)}}}}function E(e){return D(`cancelled`,e.reason instanceof Error?e.reason.message:String(e.reason??`Network request was cancelled.`))}function D(e,t){return{error:{kind:e,message:t},kind:`failure`}}function O(e){let t=new AbortController,n=new Set,r=Object.freeze({cacheMode:e.cacheMode??`default`,dryRun:e.dryRun??!1,outputMode:e.outputMode??`human`,quiet:e.quiet??!1,timeoutMs:e.timeoutMs}),i=Object.freeze({...e.ports}),a;return{options:r,ports:i,signal:t.signal,cancel(e){if(a)return a;let r;a=new Promise(e=>{r=e}),t.abort(e);let i=[...n];return n.clear(),Promise.allSettled(i.map(t=>Promise.resolve().then(()=>t(e)))).then(()=>r()),a},onCancel(e){return t.signal.aborted?()=>void 0:(n.add(e),()=>{n.delete(e)})}}}async function k(e,t,n){if(t.signal.aborted)return A();let r=await n.plan({context:{signal:t.signal,timeoutMs:t.options.timeoutMs},metadataCache:t.ports.cache,metadataCacheMode:t.options.cacheMode===`no-cache`?`no-cache`:`refresh`,networkPort:t.ports.network,persistencePort:t.ports.persistence,updateChannel:e.updateChannel});return t.signal.aborted?A(r):e.check||e.dryRun||r.status!==`update-available`?{kind:`planned`,plan:r}:{kind:`executed`,plan:r,result:await n.upgrade(r,{lockPort:t.ports.locks,networkPort:t.ports.network,processPort:t.ports.process,signal:t.signal,stdio:t.options.outputMode===`human`?[`inherit`,`inherit`,`inherit`]:[`ignore`,`pipe`,`pipe`],timeoutMs:t.options.timeoutMs})}}function A(e){return{error:{kind:`cancelled`,message:`Self-upgrade invocation was cancelled.`},kind:`interrupted`,...e?{plan:e}:{}}}function j(){let e=a(),t=O({cacheMode:e.cacheMode,dryRun:e.dryRun,outputMode:e.outputMode,ports:M(),quiet:e.quiet,timeoutMs:e.timeoutMs});e.cancelled&&t.cancel(`cancelled`);let n=i(()=>t.cancel(`cancelled`)),r=!1,s={plan:e=>c({context:e.context,metadataCache:e.metadataCache,metadataCacheMode:e.metadataCacheMode,networkPort:e.networkPort,persistencePort:e.persistencePort,updateChannel:e.updateChannel}),upgrade:(e,t)=>o(e,t)};return{dispose(){r||(r=!0,n())},run:e=>k(e,t,s)}}function M(){return{cache:x(),clock:{now:Date.now,sleep:N},fileSystem:{makeDirectory:N,readFile:N,remove:N,rename:N,writeFile:N},locks:u(),network:T(),persistence:m(),process:C()}}async function N(){return{error:{kind:`unavailable`,message:`Runtime port is not bound for this self-upgrade operation.`},kind:`failure`}}function P(e){if(e===`stable`||e===`beta`)return e}async function F(e={}){let t=v(),r=j(),i=await r.run({check:e.check??!1,dryRun:t,updateChannel:e.channel}).finally(()=>r.dispose());if(i.kind===`interrupted`)throw new n({kind:`cancelled`,reason:i.error.message});let a=i.plan,o=s(a),c=L(o),u=z(o);if(a.status===`up-to-date`)return l(d({action:`upgrade`,data:{canAutoUpdate:o.canAutoUpdate,channel:o.updateChannel,currentVersion:o.currentVersion,installSource:o.installSource,latestVersion:o.latestVersion,status:`up-to-date`},target:{kind:`self`,name:`quantex`},warnings:[...c,...u?[u]:[]]}),I);if(e.check||t)return a.status===`update-available`?l(d({action:`upgrade`,data:{canAutoUpdate:o.canAutoUpdate,channel:o.updateChannel,currentVersion:o.currentVersion,installSource:o.installSource,latestVersion:o.latestVersion,status:`update-available`},exitCode:e.check?1:void 0,target:{kind:`self`,name:`quantex`},warnings:[...c,...u?[u]:[],...t?[{code:`DRY_RUN`,message:`Dry run: would upgrade Quantex CLI.`}]:[]]}),I):l(f({action:`upgrade`,data:{canAutoUpdate:o.canAutoUpdate,channel:o.updateChannel,currentVersion:o.currentVersion,installSource:o.installSource,status:`check-unavailable`},error:{code:`NETWORK_ERROR`,message:`Unable to determine the latest Quantex CLI version.`},target:{kind:`self`,name:`quantex`},warnings:[...c,...u?[u]:[]]}),I);if(a.status===`manual-required`){let e=p(o);return l(f({action:`upgrade`,data:{canAutoUpdate:o.canAutoUpdate,channel:o.updateChannel,currentVersion:o.currentVersion,installSource:o.installSource,latestVersion:o.latestVersion,recoveryHint:e,status:`manual-required`},error:{code:`MANUAL_ACTION_REQUIRED`,message:`Quantex CLI cannot auto-update from the current install source: ${o.installSource}.`},target:{kind:`self`,name:`quantex`},warnings:[...c,...u?[u]:[]]}),I)}if(i.kind!==`executed`)throw Error(`Self-upgrade execution did not produce a result.`);let m=i.result;if(m.success)return l(d({action:`upgrade`,data:{canAutoUpdate:o.canAutoUpdate,channel:o.updateChannel,currentVersion:o.currentVersion,installSource:o.installSource,latestVersion:o.latestVersion,status:`updated`},target:{kind:`self`,name:`quantex`},warnings:[...c,...u?[u]:[]]}),I);let h=p(o,m);return l(f({action:`upgrade`,data:{canAutoUpdate:o.canAutoUpdate,channel:o.updateChannel,currentVersion:o.currentVersion,installSource:o.installSource,latestVersion:o.latestVersion,recoveryHint:h,status:`manual-required`},error:{code:`UPGRADE_FAILED`,details:m.error?.kind?{kind:m.error.kind}:void 0,message:m.error?.message??`Failed to upgrade Quantex CLI.`},target:{kind:`self`,name:`quantex`},warnings:[...c,...h?[{code:`MANUAL_RECOVERY`,message:`Manual recovery: ${h}`}]:[]]}),I)}function I(e){if(!e.data){e.error&&y(h.red(e.error.message));return}if(e.data.status===`up-to-date`){_(h.green(`Quantex CLI is already up to date (${e.data.currentVersion}).`)),R(e.warnings);return}if(e.data.status===`update-available`){let t=e.warnings.some(e=>e.message.includes(`Dry run`))?`Dry run: `:``;g(h.yellow(`${t}Update available for Quantex CLI: ${e.data.currentVersion} -> ${e.data.latestVersion} (${e.data.channel}).`)),R(e.warnings);return}if(e.data.status===`check-unavailable`){e.error&&g(h.yellow(e.error.message)),R(e.warnings);return}if(e.data.status===`manual-required`&&e.error?.code===`MANUAL_ACTION_REQUIRED`){g(h.yellow(e.error.message)),e.data.recoveryHint&&g(h.cyan(`Next step: ${e.data.recoveryHint}`));return}let t=e.data.latestVersion?` (${e.data.currentVersion} -> ${e.data.latestVersion})`:` (${e.data.currentVersion})`;if(_(h.cyan(`Upgrading Quantex CLI...${t}`)),!e.error){_(h.green(`Quantex CLI upgraded successfully.`)),R(e.warnings);return}y(h.red(`Failed to upgrade Quantex CLI.`)),g(h.yellow(`Reason: ${e.error.message}`));for(let t of e.warnings)g(h.cyan(t.message.replace(/^Manual recovery:/,`Next step:`)))}function L(e){return!e.latestVersion||!e.upstreamLatestVersion||e.latestVersion===e.upstreamLatestVersion||e.installSource!==`bun`&&e.installSource!==`npm`?[]:[{code:`MIRROR_LAG`,details:{installableLatestVersion:e.latestVersion,upstreamLatestVersion:e.upstreamLatestVersion},message:`The selected registry currently installs ${e.latestVersion}, while upstream npm has ${e.upstreamLatestVersion}. Retry later or set selfUpdateRegistry / QTX_SELF_UPDATE_REGISTRY to another registry if you need the upstream release now.`}]}function R(e){for(let t of e)t.code===`DRY_RUN`||t.code===`MANUAL_RECOVERY`||g(h.yellow(t.message))}function z(e){if(!e.latestVersion)return;let t=r(e.latestVersion,e.currentVersion);if(!(t===void 0||t>=0))return{code:`STALE_LATEST_VERSION`,details:{currentVersion:e.currentVersion,latestVersion:e.latestVersion},message:`The resolved latest version ${e.latestVersion} is older than the installed Quantex CLI ${e.currentVersion}. Quantex will not downgrade; retry with --refresh or --no-cache if you need a fresh check.`}}export{P as resolveUpgradeChannelOption,F as upgradeCommand};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "quantex-cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.13.0",
|
|
4
4
|
"description": "Agent-friendly lifecycle CLI for AI coding assistant CLIs: install, inspect, update, uninstall, run, and automate Codex, Claude Code, Gemini, Cursor, OpenCode, and more",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent-cli",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./capabilities-DIRMPhTg.mjs";export{e as capabilitiesCommand};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./commands-BQuwJ1s0.mjs";export{e as commandsCommand};
|
package/dist/ensure-BfY3mjy5.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./ensure-CsRGwJHS.mjs";export{t as ensureCommand,e as ensureCommandWithRoute};
|
package/dist/ensure-CsRGwJHS.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,n as t,t as n}from"./output-CLgmLN2q.mjs";import{l as r}from"./providers-CjFAR4Vt.mjs";import{t as i}from"./color-CLDVRyIs.mjs";import{n as a}from"./agents-CESJI54l.mjs";import{n as o}from"./lifecycle-observations-DIBfXLT1.mjs";import{a as s,i as c,r as l}from"./user-output-c8fjdhfk.mjs";import{n as u,r as d}from"./installation-routing-BhB6puwg.mjs";import{t as f}from"./unmanaged-install-compatibility-KGtKiyzS.mjs";async function p(e){return await m(e,d(`ensure`))}async function m(t,n){if(u(`ensure`,n),n.engine===`dry-run-planning`)return e(await h(t),b);let r=await f(t);if(r)return e(y(r),b);let{createCoreInstallationCliSession:i}=await import(`./core-installation-cli-B-UNzCXn.mjs`),a=i(`ensure`);try{return e(await a.execute(t,{emitStartedEvent:!0}),b)}finally{a.dispose()}}async function h(e){if(!a(e))return g(e);let t=await o(e);if(!t)return g(e);let{agent:n}=t,i=t.pathExecutable.present,s=t.installedState,c=i&&!s?r(t.methods,t.resolvedBinaryPath??t.pathExecutable.path):void 0;return i&&!s&&!c?y(n):s&&i?v(n):_(n,!!c,!!s)}function g(e){return n({action:`ensure`,error:{code:`AGENT_NOT_FOUND`,details:{input:e},message:`Unknown agent: ${e}`},target:{kind:`agent`,name:e}})}function _(e,n,r){return t({action:`ensure`,data:{agent:{displayName:e.displayName,name:e.name},changed:!1,installed:n},target:{kind:`agent`,name:e.name},warnings:[{code:`DRY_RUN`,message:n?`Dry run: would record the existing ${e.displayName} install in Quantex state.`:r?`Dry run: would reinstall ${e.displayName} only if its recorded provider target is confirmed absent.`:`Dry run: would install ${e.displayName}.`}]})}function v(e){return t({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 y(e){return t({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 b(e){if(e.error){l(i.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`){c(i.green(t.message));continue}if(t.code===`DRY_RUN`){s(i.cyan(t.message));continue}s(i.yellow(t.message))}return}if(e.data.changed){c(i.cyan(`Installing ${e.data.agent.displayName}...`)),c(i.green(`${e.data.agent.displayName} is now installed.`));return}c(i.green(`${e.data.agent.displayName} is already installed.`))}}export{m as n,p as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./inspect-OQUNwZEP.mjs";export{e as inspectCommand};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./cli-context-DI43ouBg.mjs";import{i as t,n,r,t as i}from"./output-CLgmLN2q.mjs";import{l as a}from"./providers-CjFAR4Vt.mjs";import{t as o}from"./color-CLDVRyIs.mjs";import{n as s}from"./agents-CESJI54l.mjs";import{n as c}from"./lifecycle-observations-DIBfXLT1.mjs";import{a as l,i as u,r as d}from"./user-output-c8fjdhfk.mjs";import{n as f,r as p}from"./installation-routing-BhB6puwg.mjs";import{t as m}from"./unmanaged-install-compatibility-KGtKiyzS.mjs";import{o as h}from"./lifecycle-policy-0Wodv3-H.mjs";async function g(e){return await _(e,p(`install`))}async function _(e,t){if(f(`install`,t),t.engine===`dry-run-planning`)return await v(e,void 0);let{createCoreInstallationCliSession:n}=await import(`./core-installation-cli-B-UNzCXn.mjs`),r=n(`install`);try{return await v(e,r)}finally{r.dispose()}}async function v(a,o){let s=h(Array.isArray(a)?a:[a]);if(s.length<=1)return t(await y(s[0],{emitStartedEvent:!0},o),D);r({action:`install`,data:{scope:`batch`},target:{kind:`agent`},type:`started`});let c=[];for(let t of s){if(e().cancelled)break;let n=C(t,await y(t,{},o));if(c.push(n),r({action:`install`,data:n,target:{kind:`agent`,name:n.agent.name},type:`progress`}),e().cancelled)break}let l={results:c,scope:`batch`,summary:T(c)};return e().cancelled&&c.length<s.length?t(i({action:`install`,data:l,error:{code:`CANCELLED`,message:`Install was cancelled before all agents could be installed.`},target:{kind:`agent`}}),O):t(c.some(e=>!e.ok)?i({action:`install`,data:l,error:E(c),target:{kind:`agent`}}):n({action:`install`,data:l,target:{kind:`agent`}}),O)}async function y(e,t={},n){if(!n)return b(e);let r=await m(e);return r?S(r):await n.execute(e,t)}async function b(e){if(!s(e))return x(e);let t=await c(e);if(!t)return x(e);let{agent:r}=t,i=t.pathExecutable.present,o=t.installedState,l=i&&!o?a(t.methods,t.resolvedBinaryPath??t.pathExecutable.path):void 0;return i&&!o&&!l?S(r):n(o&&i?{action:`install`,data:{agent:{displayName:r.displayName,name:r.name},changed:!1,installed:!0},target:{kind:`agent`,name:r.name},warnings:[{code:`ALREADY_INSTALLED`,message:`${r.displayName} is already installed.`}]}:{action:`install`,data:{agent:{displayName:r.displayName,name:r.name},changed:!1,installed:!!l},target:{kind:`agent`,name:r.name},warnings:[{code:`DRY_RUN`,message:l?`Dry run: would record the existing ${r.displayName} install in Quantex state.`:o?`Dry run: would reinstall ${r.displayName} only if its recorded provider target is confirmed absent.`:`Dry run: would install ${r.displayName}.`}]})}function x(e){return i({action:`install`,error:{code:`AGENT_NOT_FOUND`,details:{input:e},message:`Unknown agent: ${e}`},target:{kind:`agent`,name:e}})}function S(e){return n({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 C(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:w(t),warnings:r}}function w(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 T(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 E(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 D(e){if(e.error){d(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`){u(o.green(t.message));continue}if(t.code===`DRY_RUN`){l(o.cyan(t.message));continue}l(o.yellow(t.message))}return}u(o.cyan(`Installing ${e.data.agent.displayName}...`)),u(o.green(`${e.data.agent.displayName} installed successfully!`))}}function O(e){if(!e.data){e.error&&d(o.red(e.error.message));return}for(let t of e.data.results)switch(t.status){case`installed`:u(o.cyan(`Installing ${t.agent.displayName}...`)),u(o.green(`${t.agent.displayName} installed successfully!`));break;case`tracked-existing-install`:u(o.green(k(t.warnings,`${t.agent.displayName} is already installed.`)));break;case`already-installed`:case`untracked-existing-install`:l(o.yellow(k(t.warnings,`${t.agent.displayName} is already installed.`)));break;case`planned`:l(o.cyan(k(t.warnings,`Dry run: would install ${t.agent.displayName}.`)));break;case`locked`:l(o.yellow(t.error?.message??`Another quantex process is already installing ${t.agent.displayName}.`));break;case`failed`:d(o.red(t.error?.message??`Failed to install ${t.agent.displayName}.`));break}A(e.data.summary)}function k(e,t){return e[0]?.message??t}function A(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&&u(o.bold(`Summary: ${t.join(`, `)}`))}export{g as installCommand,_ as installCommandWithRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./installation-compatibility-BBIt-_Gy.mjs";export{e as createCoreInstallationCompatibilityExecutor};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,o as t,t as n}from"./provider-binding-DB7IXxJp.mjs";function r(e){let t=e.providerOutcome;if(t?.kind===`cancelled`||t?.kind===`timed-out`)return{kind:`interrupted`,outcome:t};let n=e.observation;if(n.drift.kind===`conflicting-source`)return{code:`conflict`,kind:`blocked`,reason:`Live and recorded installation evidence conflict.`};if(n.kind===`indeterminate`||n.drift.kind===`indeterminate`)return{code:`indeterminate`,kind:`blocked`,reason:n.kind===`indeterminate`?n.reason:n.drift.kind===`indeterminate`?n.drift.reason:`Provider evidence is indeterminate.`};if(n.kind===`present`){if(n.drift.kind===`untracked`)return{...e.binding?{binding:e.binding}:{},changed:!1,decision:`external-preserved`,kind:`ready`};let t=e.persistedBinding??e.binding;return t?{binding:t,changed:!1,decision:`already-satisfied`,kind:`ready`}:{code:`indeterminate`,kind:`blocked`,reason:`A present managed installation has no resolvable source evidence.`}}return n.drift.kind===`recorded-absent`?e.persistedBinding?{decision:`reinstall`,kind:`ready`,requiredBinding:e.persistedBinding,wouldChange:!0}:{code:`indeterminate`,kind:`blocked`,reason:`Recorded installation evidence cannot be resolved to a supported source.`}:{decision:`install`,kind:`ready`,wouldChange:!0}}var i=class{active=!0;cleanupPromise;commitStarted=!1;record;recordWrite;unregister;constructor(e,t,n){this.recipe=e,this.context=t,this.ports=n}register(){this.unregister=this.context.registerCleanup(this)}attachRecord(e){this.record=e}async applyRecord(){if(!this.record)throw Error(`Installation record was not prepared.`);this.recordWrite=Promise.resolve().then(()=>this.record.apply()),await this.recordWrite}async commitRecord(){if(!this.record)throw Error(`Installation record was not prepared.`);this.commitStarted=!0,await this.record.commit()}cleanup(){return this.recover().then(()=>void 0)}force(){return this.cleanup()}recover(){return this.cleanupPromise||=this.runRecovery(),this.cleanupPromise}close(){this.active=!1,this.unregister?.()}async runRecovery(){if(!this.active)return{sideEffect:`none`};if(this.commitStarted)return c(this.context,`compensate`,`may-remain`),{reason:`State commit crossed its irreversible boundary; resources were preserved.`,remediation:p(),sideEffect:`may-remain`};let e=await this.rollbackState();if(e)return c(this.context,`compensate`,`may-remain`),{reason:e,remediation:p(),sideEffect:`may-remain`};if(this.recipe.ownership===`pre-existing`)return c(this.context,`compensate`,`compensated`),{sideEffect:`compensated`};if(this.recipe.compensation===`manual`)return c(this.context,`compensate`,`may-remain`),{sideEffect:`may-remain`};let t;try{t=await this.ports.compensate(this.recipe,u(this.context.timeoutMs))}catch(e){return c(this.context,`compensate`,`may-remain`),{reason:`Compensation failed: ${f(e)}`,sideEffect:`may-remain`}}return t.kind===`success`?(c(this.context,`compensate`,`compensated`),{sideEffect:`compensated`}):(c(this.context,`compensate`,`may-remain`),{reason:d(t),sideEffect:`may-remain`})}async rollbackState(){if(this.record)try{await this.recordWrite?.catch(()=>void 0),await this.record.rollback();return}catch(e){return`State rollback failed: ${f(e)}`}}},a=class extends Error{details;kind;reason;timeoutMs;constructor(e,t,n){super(e.kind===`timed-out`?`Core mutation timed out.`:`Core mutation was cancelled.`),this.name=`CoreMutationInterruption`,this.kind=e.kind,this.details={phase:t,sideEffect:n},e.kind===`timed-out`?this.timeoutMs=e.timeoutMs:this.reason=e.reason}};function o(e,t,n){return new a(e,t,n)}function s(e,t,n){return o({kind:`cancelled`,...e.reason===void 0?{}:{reason:f(e.reason)}},t,n)}function c(e,t,n){e.setInterruptionDetails({phase:t,sideEffect:n})}function l(e){let t,n=new Promise(e=>{t=e}),r=e.registerCleanup({cleanup:()=>n,force:()=>n});return{release(){r(),t()}}}function u(e){return{signal:new AbortController().signal,timeoutMs:e===void 0?5e3:Math.max(10,Math.min(e,5e3))}}function d(e){return`reason`in e&&e.reason?e.reason:e.kind===`unsupported`?`Provider does not support ${e.operation}.`:`Provider ${e.kind} during compensation.`}function f(e){return e instanceof Error&&e.message.trim()?e.message:typeof e==`string`&&e.trim()?e:`Core lifecycle operation failed.`}function p(){return`Keep the installed resource in place. Inspect Quantex state and lock files, then run inspect or ensure again.`}async function m(e,t,n,r={}){let i=l(t);c(t,`decide`,`none`);let o;try{return e.mode===`preview`?await h(e,t,n,r):(V(t,`decide`,`none`),await n.withMutationLock(e.name,t,async()=>(o=await g(e,t,n,r),o)))}catch(e){if(e instanceof a)throw e;let n=I(o);if(t.signal.aborted)throw s(t.signal,n===`none`?`decide`:`record`,n);return O(`execution-failed`,n===`none`?`decide`:`record`,n,`Lifecycle mutation lock failed: ${q(e)}`,!1,void 0,e)}finally{i.release()}}async function h(e,t,n,r){let i=await b(e.name,t,n);if(i.kind!==`ready`)return i.outcome;let{before:a,directive:o}=i;if(!z(o)){if(o.decision!==`external-preserved`)return E(a,o);let e=await _(a,t,r);return e.kind===`terminal`?e.outcome:e.kind===`none`?E(a,o):{kind:`success`,value:{before:a,binding:e.value.binding,compatibility:{kind:`adopt`},decision:o.decision,kind:`preview`,wouldChange:!0}}}let s=await x(e,a,o,t,n);return s.kind===`ready`?{kind:`success`,value:{before:a,binding:s.value.binding,decision:o.decision,kind:`preview`,wouldChange:!0}}:s.outcome}async function g(e,t,n,r){let a=await b(e.name,t,n);if(a.kind!==`ready`)return a.outcome;let{before:l,directive:u}=a;if(!z(u)){if(u.decision!==`external-preserved`)return await S(e.name,l,u,t,n);let i=await _(l,t,r);return i.kind===`terminal`?i.outcome:i.kind===`ready`?await y(e.name,l,i.value,t,n,r):await S(e.name,l,u,t,n)}let d=await x(e,l,u,t,n);if(d.kind!==`ready`)return d.outcome;let f=d.value;r.onMutationStart?.({before:l,binding:f.binding,decision:u.decision}),c(t,`execute`,`may-remain`);let p;try{p=await n.install(f,H(t))}catch(e){if(t.signal.aborted)throw s(t.signal,`execute`,`may-remain`);return O(`execution-failed`,`execute`,`may-remain`,q(e),!1,K())}if(B(p))throw o(p,`execute`,`may-remain`);if(p.kind!==`success`)return D(`execution-failed`,`execute`,p);let m=new i(f,t,n);if(m.register(),t.signal.aborted)return await w(t.signal,`execute`,m);c(t,`verify`,`may-remain`);let h;try{h=await n.verify(f,H(t))}catch(e){return await C(m,`verification-failed`,`verify`,q(e),!1,e)}if(B(h))return await T(h,`verify`,m);if(h.kind!==`success`)return await C(m,`verification-failed`,`verify`,U(h),W(h));if(h.value.kind===`unsatisfied`)return await C(m,`verification-failed`,`verify`,h.value.reason,!1);let g;try{g=await n.observe(e.name,t,{observationBinding:f.binding})}catch(e){return await C(m,`verification-failed`,`verify`,q(e),!1,e)}if(t.signal.aborted)return await w(t.signal,`verify`,m);let v=F(g);if(v)return await T(v,`verify`,m);if(!g||!k(g,f))return await C(m,`verification-failed`,`verify`,`Fresh post-mutation observation did not confirm the selected provider source.`,!1);try{if(c(t,`record`,`may-remain`),m.attachRecord(await n.prepareRecord({before:l,context:t,recipe:f,verified:g})),t.signal.aborted)return await w(t.signal,`record`,m);await m.applyRecord()}catch(e){return await C(m,`recording-failed`,`record`,q(e),!1,e)}if(t.signal.aborted)return await w(t.signal,`record`,m);c(t,`verify`,`may-remain`);let E;try{E=await n.observe(e.name,t)}catch(e){return await C(m,`verification-failed`,`verify`,q(e),!1,e)}if(t.signal.aborted)return await w(t.signal,`verify`,m);let A=F(E);if(A)return await T(A,`verify`,m);if(!E||!j(E,f))return await C(m,`verification-failed`,`verify`,`Fresh post-mutation observation did not confirm the recorded provider source.`,!1);try{if(c(t,`record`,`may-remain`),t.signal.aborted)return await w(t.signal,`record`,m);await m.commitRecord()}catch(e){return await C(m,`recording-failed`,`record`,q(e),!1,e)}return t.signal.aborted?await w(t.signal,`record`,m):(m.close(),{kind:`success`,value:{after:E,before:l,binding:f.binding,changed:!0,decision:u.decision,kind:`apply`}})}async function _(e,t,n){if(!n.resolveAdoption)return{kind:`none`};let r;try{r=await n.resolveAdoption(e,t)}catch(e){if(t.signal.aborted)throw s(t.signal,`decide`,`none`);return{kind:`terminal`,outcome:O(`decision-indeterminate`,`decide`,`none`,q(e),!1,void 0,e)}}if(V(t,`decide`,`none`),!r)return{kind:`none`};let i=v(e,r);return i?{kind:`terminal`,outcome:O(`decision-indeterminate`,`decide`,`none`,i,!1)}:{kind:`ready`,value:r}}function v(e,n){if(e.observation.kind!==`present`||e.observation.drift.kind!==`untracked`)return`Compatibility adoption requires a fresh untracked present observation.`;if(n.installedState.agentName!==e.agent.name)return`Compatibility adoption state does not target the observed agent.`;if(e.binding&&!N(e.binding,n.binding,e.agent.binaryName))return`Compatibility adoption does not preserve the observed provider source.`;let r=t(e.agent,n.installedState);if(!r||!N(r,n.binding,e.agent.binaryName))return`Compatibility adoption state does not resolve to the selected provider source.`}async function y(e,t,n,r,a,l){let u={binding:n.binding,compensation:`manual`,installedState:n.installedState,ownership:`pre-existing`};c(r,`verify`,`none`);let d;try{d=await a.verify(u,H(r))}catch(e){if(r.signal.aborted)throw s(r.signal,`verify`,`none`);return O(`verification-failed`,`verify`,`none`,q(e),!1,void 0,e)}if(B(d))throw o(d,`verify`,`none`);if(d.kind!==`success`)return O(`verification-failed`,`verify`,`none`,U(d),W(d),G(d));if(d.value.kind===`unsatisfied`)return O(`verification-failed`,`verify`,`none`,d.value.reason,!1);let f;try{f=await a.observe(e,r,{observationBinding:u.binding})}catch(e){if(r.signal.aborted)throw s(r.signal,`verify`,`none`);return O(`verification-failed`,`verify`,`none`,q(e),!1,void 0,e)}V(r,`verify`,`none`);let p=F(f);if(p)throw o(p,`verify`,`none`);if(!f||!A(f,u))return O(`verification-failed`,`verify`,`none`,`Fresh observation did not confirm the compatibility adoption source.`,!1);l.onMutationStart?.({before:t,binding:u.binding,decision:`external-preserved`});let m;try{c(r,`record`,`none`),m=await a.prepareRecord({before:t,context:r,recipe:u,verified:f})}catch(e){if(r.signal.aborted)throw s(r.signal,`record`,`none`);return O(`recording-failed`,`record`,`none`,q(e),!1,void 0,e)}let h=new i(u,r,a);if(h.attachRecord(m),h.register(),r.signal.aborted)return await w(r.signal,`record`,h);try{c(r,`record`,`may-remain`),await h.applyRecord()}catch(e){return await C(h,`recording-failed`,`record`,q(e),!1,e)}if(r.signal.aborted)return await w(r.signal,`record`,h);c(r,`verify`,`may-remain`);let g;try{g=await a.observe(e,r)}catch(e){return await C(h,`verification-failed`,`verify`,q(e),!1,e)}if(r.signal.aborted)return await w(r.signal,`verify`,h);let _=F(g);if(_)return await T(_,`verify`,h);if(!g||!j(g,u))return await C(h,`verification-failed`,`verify`,`Fresh observation did not confirm the recorded compatibility adoption source.`,!1);try{c(r,`record`,`may-remain`),await h.commitRecord()}catch(e){return await C(h,`recording-failed`,`record`,q(e),!1,e)}return r.signal.aborted?await w(r.signal,`record`,h):(h.close(),{kind:`success`,value:{after:g,before:t,binding:u.binding,changed:!0,compatibility:{kind:`adopt`},decision:`external-preserved`,kind:`apply`}})}async function b(e,t,n){V(t,`decide`,`none`);let i;try{i=await n.observe(e,t)}catch(e){if(t.signal.aborted)throw s(t.signal,`decide`,`none`);return{kind:`terminal`,outcome:O(`decision-indeterminate`,`decide`,`none`,q(e),!1,void 0,e)}}if(V(t,`decide`,`none`),!i)return{kind:`terminal`,outcome:{kind:`agent-not-found`,name:e}};let a=r(i);if(a.kind===`interrupted`)throw o(a.outcome,`decide`,`none`);return a.kind===`blocked`?{kind:`terminal`,outcome:O(a.code===`conflict`?`decision-conflict`:`decision-indeterminate`,`decide`,`none`,a.reason,!1)}:{before:i,directive:a,kind:`ready`}}async function x(e,t,n,r,i){let a;try{a=await i.resolveRecipe({context:H(r),directive:n,observed:t,operation:e.operation})}catch(e){if(r.signal.aborted)throw s(r.signal,`decide`,`none`);return{kind:`terminal`,outcome:O(`recipe-unavailable`,`decide`,`none`,q(e),!1)}}if(V(r,`decide`,`none`),a.kind===`interrupted`)throw o(a.outcome,`decide`,`none`);if(a.kind===`ready`){let e=M(t,a.recipe);return e?{kind:`terminal`,outcome:O(`recipe-unavailable`,`decide`,`none`,e,!1)}:{kind:`ready`,value:a.recipe}}return{kind:`terminal`,outcome:O(`recipe-unavailable`,`decide`,`none`,a.reason,a.retryable,a.remediation)}}async function S(e,t,n,i,a){c(i,`verify`,`none`);let l;try{l=await a.observe(e,i)}catch(e){if(i.signal.aborted)throw s(i.signal,`verify`,`none`);return O(`verification-failed`,`verify`,`none`,q(e),!1,void 0,e)}if(V(i,`verify`,`none`),!l)return O(`verification-failed`,`verify`,`none`,`The agent disappeared.`,!0);let u=r(l);if(u.kind!==`ready`||!(`changed`in u)||u.decision!==n.decision||!L(u.binding,n.binding,t.agent.binaryName)||!R(t,l)){if(u.kind===`interrupted`)throw o(u.outcome,`verify`,`none`);return O(`verification-failed`,`verify`,`none`,`Fresh observation changed the no-op decision.`,!0)}return{kind:`success`,value:{after:l,before:t,...n.binding?{binding:n.binding}:{},changed:!1,decision:n.decision,kind:`apply`}}}async function C(e,t,n,r,i,a){let o=await e.recover();return e.close(),o.reason?O(`compensation-failed`,`compensate`,o.sideEffect,`${r} ${o.reason}`,!1,o.remediation??K(),a,t===`compensation-failed`?void 0:t):O(t,n,o.sideEffect,r,i,o.sideEffect===`may-remain`?K():void 0,a)}async function w(e,t,n){let r=await n.recover();throw n.close(),s(e,t,r.sideEffect)}async function T(e,t,n){let r=await n.recover();throw n.close(),o(e,t,r.sideEffect)}function E(e,t){return{kind:`success`,value:{before:e,...t.binding?{binding:t.binding}:{},decision:t.decision,kind:`preview`,wouldChange:!1}}}function D(e,t,n){return O(e,t,`may-remain`,U(n),W(n),G(n))}function O(e,t,n,r,i,a,o,s){return{error:{...o===void 0?{}:{cause:o},code:e,...s?{originCode:s}:{},phase:t,reason:r,...a?{remediation:a}:{},retryable:i,sideEffect:n},kind:`failed`}}function k(e,t){return e.observation.kind===`present`&&e.executable.present&&e.binding!==void 0&&N(e.binding,t.binding,e.agent.binaryName)}function A(e,t){return k(e,t)&&e.observation.drift.kind===`untracked`&&e.installedState===void 0&&e.persistedBinding===void 0&&e.receipt===void 0}function j(i,a){let o=r(i),s=i.installedState?t(i.agent,i.installedState):void 0,c=i.receipt?e(i.receipt):void 0;return o.kind===`ready`&&`changed`in o&&o.decision===`already-satisfied`&&s!==void 0&&c!==void 0&&N(s,a.binding,i.agent.binaryName)&&n(c,a.binding,i.agent.binaryName)}function M(e,n){if(n.ownership!==`created-on-success`)return`Resolved installation recipes must prove created-on-success ownership.`;if(n.installedState.agentName!==e.agent.name)return`Resolved recipe state does not target the observed agent.`;let r=t(e.agent,n.installedState);if(!r||!N(r,n.binding,e.agent.binaryName))return`Resolved recipe does not preserve the schema-v2 provider source identity.`}function N(e,t,r){return n(e,t,r)&&P(e.target.arguments,t.target.arguments)}function P(e,t){return!e||!t?e===t:e.length===t.length&&e.every((e,n)=>e===t[n])}function F(e){let t=e?.providerOutcome;return t&&B(t)?t:void 0}function I(e){return e?e.kind===`failed`?e.error.sideEffect:e.kind===`success`&&e.value.kind===`apply`&&e.value.changed?`may-remain`:`none`:`none`}function L(e,t,n){return!e||!t?e===t:N(e,t,n)}function R(n,r){return L(n.installedState?t(n.agent,n.installedState):void 0,r.installedState?t(r.agent,r.installedState):void 0,n.agent.binaryName)?L(n.receipt?e(n.receipt):void 0,r.receipt?e(r.receipt):void 0,n.agent.binaryName):!1}function z(e){return`wouldChange`in e}function B(e){return e.kind===`cancelled`||e.kind===`timed-out`}function V(e,t,n){if(e.signal.aborted)throw s(e.signal,t,n)}function H(e){return{registerCleanup:e.registerCleanup,signal:e.signal,timeoutMs:e.timeoutMs}}function U(e){return`reason`in e&&e.reason?e.reason:e.kind===`unsupported`?`Provider does not support ${e.operation}.`:`Provider ${e.kind} during the lifecycle mutation.`}function W(e){return e.kind===`failed`?e.retryable:e.kind===`unavailable`?e.retryable??!0:!1}function G(e){return e.kind===`failed`?e.remediation:void 0}function K(){return`Inspect the selected provider target and remove any partial installation manually before retrying.`}function q(e){return e instanceof Error&&e.message.trim()?e.message:typeof e==`string`&&e.trim()?e:`Core lifecycle operation failed.`}export{a as CoreMutationInterruption,m as executeCoreInstallation};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./cli-context-DI43ouBg.mjs";import t from"node:process";const n=Object.freeze({adoption:`v1-safe`,engine:`core`,source:`stable-default`}),r=Object.freeze({engine:`dry-run-planning`,source:`dry-run-compatibility`});function i(t){return t===`update`||t===`uninstall`?n:e().dryRun?r:n}function a(){return Object.freeze({adoption:`v1-safe`,engine:`core`,source:`test`})}function o(n,r){e().logLevel===`debug`&&t.stderr.write(`[quantex:debug] ${n} engine=${r.engine} source=${r.source}\n`)}export{o as n,i as r,a as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"./installation-routing-BhB6puwg.mjs";export{n as createCoreInstallationTestRoute,e as reportInstallationEngineRoute,t as selectInstallationEngineRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./resolve-BihHZ39p.mjs";export{e as resolveCommand};
|
package/dist/schema-DxgWH0za.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./schema-rHlg-voJ.mjs";export{e as schemaCommand};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|