quantex-cli 1.8.12 → 1.9.1
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 +2 -2
- package/README.zh-CN.md +2 -2
- package/dist/{agent-installation-pNsgwXb9.mjs → agent-installation-BJJU5uXF.mjs} +1 -1
- package/dist/agents-C7P-xA0v.mjs +1 -0
- package/dist/agents-CB6EgrCq.mjs +1 -0
- package/dist/capabilities-Crhw_Blt.mjs +1 -0
- package/dist/{capabilities-BFPcyntd.mjs → capabilities-DRpX0oYJ.mjs} +1 -1
- package/dist/child-process-DzIdysOm.mjs +1 -0
- package/dist/{cli-operation-context-BFEu635L.mjs → cli-operation-context-BS5a069W.mjs} +1 -1
- package/dist/cli-operation-context-yd4c0OQH.mjs +1 -0
- package/dist/cli.mjs +1 -1
- package/dist/{commands-D1q4K0yE.mjs → commands-CEzaL8Yd.mjs} +1 -1
- package/dist/commands-xtFP6b7b.mjs +1 -0
- package/dist/config-BLkuHAGk.mjs +3 -0
- package/dist/{core-installation-cli-C0ae3SUn.mjs → core-installation-cli-CkmOzkYO.mjs} +1 -1
- package/dist/{core-read-observations-CHHS7xq2.mjs → core-read-observations-py_L86ID.mjs} +1 -1
- package/dist/{detect-DL6buUVi.mjs → detect-BUVMt8jZ.mjs} +1 -1
- package/dist/{doctor-aF8IIiYS.mjs → doctor-DWkPOpd3.mjs} +1 -1
- package/dist/{ensure-B4ynayjb.mjs → ensure-B1bA6QVE.mjs} +1 -1
- package/dist/ensure-BADZwjFz.mjs +1 -0
- package/dist/file-store-XNyirRRY.mjs +2 -0
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{info-EVHBg1nm.mjs → info-C18_hff4.mjs} +1 -1
- package/dist/{inspect-DJfaLc06.mjs → inspect-C9j-GclY.mjs} +1 -1
- package/dist/inspect-c7uT6XE1.mjs +1 -0
- package/dist/{install-DMpMUIwN.mjs → install-D1BMnGhP.mjs} +1 -1
- package/dist/{installation-compatibility-B2FzfkdC.mjs → installation-compatibility-Mc1ZlVS1.mjs} +1 -1
- package/dist/{installation-production-DnHYEiSa.mjs → installation-production-BuCazkkr.mjs} +1 -1
- package/dist/installation-provider-registry-Ca45gNu5.mjs +1 -0
- package/dist/{lifecycle-observations-Be3ngmis.mjs → lifecycle-observations-CfxGqoG1.mjs} +1 -1
- package/dist/{lifecycle-policy-B2DJsLmz.mjs → lifecycle-policy-CqPn6tyi.mjs} +1 -1
- package/dist/{list-CwjEeX3F.mjs → list-CWw2-6sr.mjs} +1 -1
- package/dist/mutation-recipe-catalog-DP_XMSYe.mjs +1 -0
- package/dist/npm-DUDR-Khz.mjs +5 -0
- package/dist/output-V8N4qh1L.mjs +5 -0
- package/dist/production-observation-DCU7IJZl.mjs +1 -0
- package/dist/{provider-evidence-Bn54ONe7.mjs → provider-evidence-B67K3coo.mjs} +1 -1
- package/dist/{provider-observation-registry-BaeYlsr4.mjs → provider-observation-registry-DRRQKxkl.mjs} +3 -3
- package/dist/{provider-observations-wolD6I6_.mjs → provider-observations-Csayzb91.mjs} +1 -1
- package/dist/{providers-AFXil8bm.mjs → providers-Dm1YYCk4.mjs} +1 -1
- package/dist/{resolve-CPLHsCmS.mjs → resolve-D0GUoUxE.mjs} +1 -1
- package/dist/resolve-DcQY7beJ.mjs +1 -0
- package/dist/{schema-di33Hdvd.mjs → schema-CbhvnjCG.mjs} +1 -1
- package/dist/schema-D-0a1QKv.mjs +1 -0
- package/dist/{uninstall-CiqF5NbQ.mjs → uninstall-BknTn1R8.mjs} +1 -1
- package/dist/unmanaged-install-compatibility-wJLJfXlr.mjs +1 -0
- package/dist/{update-Dbrry2-1.mjs → update-1wac4HvD.mjs} +1 -1
- package/dist/{upgrade-CuLiLc-z.mjs → upgrade-DQFtQVSO.mjs} +1 -1
- package/dist/{version-cache-CvZ20yUD.mjs → version-cache-jjIoeyWQ.mjs} +1 -1
- package/dist/{winget-Q_NhfOhY.mjs → winget-C8yBIi3u.mjs} +2 -2
- package/package.json +4 -4
- package/dist/agents-BX-dLvjD.mjs +0 -1
- package/dist/agents-DqoBOUq7.mjs +0 -1
- package/dist/capabilities-C-oWByEQ.mjs +0 -1
- package/dist/child-process-CBKnpMWt.mjs +0 -1
- package/dist/cli-operation-context-D-7o4gXx.mjs +0 -1
- package/dist/commands-h2c3xqyY.mjs +0 -1
- package/dist/config-BYgYHkKM.mjs +0 -3
- package/dist/ensure-BgQ_jxNF.mjs +0 -1
- package/dist/file-store-BdnwPxOg.mjs +0 -2
- package/dist/inspect-Cwz0pYtQ.mjs +0 -1
- package/dist/installation-provider-registry-AmLxw9hr.mjs +0 -1
- package/dist/mutation-recipe-catalog-CAvXPw6l.mjs +0 -1
- package/dist/npm-CJQfKklg.mjs +0 -4
- package/dist/output-DXP9RqRk.mjs +0 -5
- package/dist/production-observation-3CRKMj-q.mjs +0 -1
- package/dist/resolve-DkwAXDXK.mjs +0 -1
- package/dist/schema-DNGyzkMA.mjs +0 -1
- package/dist/unmanaged-install-compatibility-a4mdM5HM.mjs +0 -1
package/dist/output-DXP9RqRk.mjs
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{i as e,n as t,o as n,r,t as i}from"./child-process-CBKnpMWt.mjs";import{d as a,l as o,n as s}from"./npm-CJQfKklg.mjs";import{a as c,d as l,h as u,n as d,r as f,s as p,t as m}from"./file-store-BdnwPxOg.mjs";import{n as h,r as g,t as _}from"./registry-vhJzh8dW.mjs";import{s as v,t as ee}from"./schema-BBnWVY6R.mjs";import{n as y,r as te}from"./cli-context-DI43ouBg.mjs";import{existsSync as ne}from"node:fs";import{basename as re,dirname as b,join as x,win32 as S}from"node:path";import C from"node:process";import{chmod as ie,mkdir as ae,mkdtemp as oe,readFile as w,realpath as se,rename as T,rm as E,stat as ce,writeFile as le}from"node:fs/promises";import{homedir as ue}from"node:os";import{createHash as de}from"node:crypto";import{fileURLToPath as fe}from"node:url";import{gunzipSync as pe}from"node:zlib";import{Buffer as me}from"node:buffer";var he=class extends Error{timeoutMs;constructor(e){super(`Network attempt timed out after ${e}ms.`),this.name=`NetworkAttemptTimeoutError`,this.timeoutMs=e}};async function D(e,t,n={}){let r=await ge(e,t,`json`,n);if(r)try{return JSON.parse(r)}catch{return}}async function ge(e,t,n=`text`,r={}){let i=r.context?.signal??r.signal;O(i);let a=await l();O(i);let o=a.versionCacheTtlHours*60*60*1e3,s=r.cacheMode??y().cacheMode,c=s===`no-cache`?{entries:{}}:await Se();O(i);let u=c.entries[t],d=Date.now();if(s===`default`&&u&&u.expiresAt>d)return O(i),Te(u,o),u.body;let f=await _e(e,{context:r.context,headers:s!==`no-cache`&&u?.etag?{"If-None-Match":u.etag}:void 0,mode:n,networkPort:r.networkPort,retries:a.networkRetries,signal:i,timeoutMs:a.networkTimeoutMs});if(O(i),!f)return u&&(O(i),Te(u,o)),u?.body;if(f.status===304&&u)return O(i),c.entries[t]={...u,expiresAt:d+o,fetchedAt:d},s!==`no-cache`&&(O(i),await Ce(c)),O(i),Ee(d,d+o),u.body;if(!f.ok||!f.valid||f.body===void 0)return u&&(O(i),Te(u,o)),u?.body;O(i);let p={body:f.body,etag:f.etag,expiresAt:d+o,fetchedAt:d};return s!==`no-cache`&&(c.entries[t]=p,O(i),await Ce(c)),O(i),Ee(d,d+o),f.body}async function _e(e,t){let n=t.context?.timeoutMs===void 0?void 0:Date.now()+t.context.timeoutMs;for(let r=0;r<=t.retries;r++)try{return await ve(e,{...t,invocationDeadline:n})}catch(e){if(e instanceof i)throw e;if(r===t.retries)return}}async function ve(e,t){let n=t.networkPort;if(n)return ye(e,{...t,networkPort:n});let r=new AbortController,a,o,s,c,l,u=new Promise((e,t)=>c=t),d=()=>l??=xe(Promise.resolve().then(async()=>{a?await a.cancel(s):o?.body&&!o.body.locked&&await o.body.cancel(s)}).then(()=>void 0).catch(()=>void 0),250),f=e=>{let n=e===`cancelled`?k(t.signal):e===`invocation-timeout`?new i({kind:`timed-out`,timeoutMs:t.context?.timeoutMs??0}):new he(t.timeoutMs),a=s===void 0;return(a||s instanceof he&&n instanceof i)&&(s=n),a&&(r.abort(s),d().finally(()=>c(s))),d()},p=()=>void f(`cancelled`);t.signal?.addEventListener(`abort`,p,{once:!0});let m=t.context?.registerCleanup?.({cleanup:()=>f(`cancelled`),force:d}),h=Date.now()+t.timeoutMs,g=setTimeout(()=>void f(`network-timeout`),t.timeoutMs),_=t.invocationDeadline===void 0?void 0:setTimeout(()=>void f(`invocation-timeout`),Math.max(0,t.invocationDeadline-Date.now())),v=async()=>{if(s||(t.signal?.aborted?await f(`cancelled`):t.invocationDeadline!==void 0&&Date.now()>=t.invocationDeadline?await f(`invocation-timeout`):Date.now()>=h&&await f(`network-timeout`),s))throw s};try{t.signal?.aborted&&await f(`cancelled`);let n=(async()=>{o=await fetch(e,{headers:t.headers,signal:r.signal}),await v();let n=o.status,i=o.headers?.get?.(`etag`)??void 0;if(!o.ok)return await d(),{etag:i,ok:!1,status:n,valid:!0};let s=await be(o,e=>a=e);await v();let c=!0;if(t.mode===`json`)try{JSON.parse(s)}catch{c=!1}return await v(),{body:s,etag:i,ok:!0,status:n,valid:c}})();try{return await Promise.race([n,u])}catch(e){throw s?(await d(),s):e}}finally{clearTimeout(g),_&&clearTimeout(_),t.signal?.removeEventListener(`abort`,p),m?.()}}async function ye(e,t){if(t.signal?.aborted)throw k(t.signal);let n=Date.now();if(t.invocationDeadline!==void 0&&t.invocationDeadline<=n)throw new i({kind:`timed-out`,timeoutMs:t.context?.timeoutMs??0});let r=t.invocationDeadline===void 0?t.timeoutMs:Math.max(1,Math.min(t.timeoutMs,t.invocationDeadline-n)),a=t.signal??new AbortController().signal,o=await t.networkPort.request({headers:t.headers,signal:a,timeoutMs:r,url:e});if(o.kind===`failure`)throw t.signal?.aborted||o.error.kind===`cancelled`?k(t.signal):o.error.kind===`timed-out`?t.invocationDeadline!==void 0&&Date.now()>=t.invocationDeadline?new i({kind:`timed-out`,timeoutMs:t.context?.timeoutMs??0}):new he(t.timeoutMs):Error(o.error.message);let s=new TextDecoder().decode(o.value.body),c=!0;if(t.mode===`json`&&o.value.status>=200&&o.value.status<300)try{JSON.parse(s)}catch{c=!1}return{body:o.value.status>=200&&o.value.status<300?s:void 0,etag:o.value.headers.etag,ok:o.value.status>=200&&o.value.status<300,status:o.value.status,valid:c}}async function be(e,t){if(!e.body)return``;let n=e.body.getReader();t(n);let r=new TextDecoder,i=``;for(;;){let e=await n.read();if(e.done)break;i+=r.decode(e.value,{stream:!0})}return i+r.decode()}async function xe(e,t){let n;try{await Promise.race([e,new Promise(e=>{n=setTimeout(e,t)})])}finally{n&&clearTimeout(n)}}function O(e){if(e?.aborted)throw k(e)}function k(e){return e?.reason instanceof i?e.reason:new i({kind:`cancelled`,reason:typeof e?.reason==`string`?e.reason:e?.reason instanceof Error?e.reason.message:e?.reason===void 0?void 0:String(e.reason)})}async function Se(){try{return JSON.parse(await w(we(),`utf8`))}catch{return{entries:{}}}}async function Ce(e){await ae(x(p(),`cache`),{recursive:!0}),await le(we(),`${JSON.stringify(e,null,2)}\n`,`utf8`)}function we(){return x(p(),`cache`,`versions.json`)}function Te(e,t){let n=e.fetchedAt??Math.max(0,e.expiresAt-t);te({fetchedAt:new Date(n).toISOString(),source:`cache`,staleAfter:new Date(e.expiresAt).toISOString()})}function Ee(e,t){te({fetchedAt:new Date(e).toISOString(),source:`network`,staleAfter:new Date(t).toISOString()})}const De=/v?(\d+\.\d+\.\d+(?:-[a-z0-9.]+)?)/i;function Oe(e,t){if(t)return t(e);let n=e.trim().split(`
|
|
2
|
-
`)[0],r=n.match(De);return r?r[1]:n||void 0}function ke(e,t){return v(e,t)===1}function Ae(e,t,n){let r=t?.command??[e,`--version`];return!n||r[0]!==e?[...r]:[n,...r.slice(1)]}async function je(e,t,n){return Me(e,t,n)}async function Me(i,a,o,s){let c=Ae(i,a,s);try{let t=n(c,{detached:o!==void 0&&C.platform!==`win32`}),{exitCode:i,stderr:s,stdout:l}=o?await e(t,o):await r(t);return i===0?Oe(l,a?.parser)??Oe(s,a?.parser):void 0}catch(e){if(t(e))throw e;return}}async function Ne(e,t=`latest`,n={}){return Pe(e,t,n)}async function Pe(e,n=`latest`,r={}){try{let t=g(r.registry)??`https://registry.npmjs.org`,i=await D(h(e,n,t),`npm:${t}:${e}:${n}`,{cacheMode:r.cacheMode,context:r.context,networkPort:r.networkPort});if(r.context?.signal.aborted)throw A(r.context.signal);return i?.version}catch(e){if(t(e))throw e;if(r.context?.signal.aborted)throw A(r.context.signal);return}}async function Fe(e,t){return u(e,t)}async function Ie(e,t){if(e){if(t?.signal.aborted)throw A(t.signal);try{let n=await se(e);if(t?.signal.aborted)throw A(t.signal);return n}catch{if(t?.signal.aborted)throw A(t.signal);return e}}}function A(e){return new i({kind:`cancelled`,reason:typeof e.reason==`string`?e.reason:void 0})}const j={additionalProperties:!1,properties:{action:{type:`string`},data:{type:`object`},error:{additionalProperties:!1,properties:{code:{type:`string`},message:{type:`string`}},required:[`code`,`message`],type:`object`},exitCode:{type:`integer`},meta:{additionalProperties:!1,properties:{mode:{type:`string`},runId:{type:`string`},schemaVersion:{type:`string`},source:{type:`string`},fetchedAt:{type:`string`},staleAfter:{type:`string`},timestamp:{type:`string`},version:{type:`string`}},required:[`mode`,`runId`,`schemaVersion`,`timestamp`,`version`],type:`object`},ok:{type:`boolean`},target:{additionalProperties:!1,properties:{kind:{type:`string`},name:{type:`string`}},required:[`kind`],type:`object`},warnings:{items:{additionalProperties:!1,properties:{code:{type:`string`},message:{type:`string`}},required:[`code`,`message`],type:`object`},type:`array`}},required:[`action`,`error`,`meta`,`ok`,`warnings`],type:`object`},M={additionalProperties:!1,properties:{action:{type:`string`},data:{type:`object`},meta:{additionalProperties:!1,properties:{mode:{type:`string`},runId:{type:`string`},schemaVersion:{type:`string`},source:{type:`string`},fetchedAt:{type:`string`},staleAfter:{type:`string`},timestamp:{type:`string`},version:{type:`string`}},required:[`mode`,`runId`,`schemaVersion`,`timestamp`,`version`],type:`object`},target:{additionalProperties:!1,properties:{kind:{type:`string`},name:{type:`string`}},required:[`kind`],type:`object`},type:{type:`string`}},required:[`action`,`meta`,`type`],type:`object`},N={additionalProperties:!1,properties:{available:{type:`boolean`},reason:{type:`string`}},required:[`available`],type:`object`},Le={brew:N,bun:N,cargo:N,deno:N,mise:N,npm:N,pip:N,uv:N,winget:N},Re=[`brew`,`bun`,`cargo`,`deno`,`mise`,`npm`,`pip`,`uv`,`winget`],ze=[{dataSchema:{additionalProperties:!1,properties:{agents:{items:{type:`string`},type:`array`},features:{additionalProperties:!1,properties:{assumeYes:{type:`boolean`},cacheBypass:{type:`boolean`},cacheRefresh:{type:`boolean`},channels:{items:{type:`string`},type:`array`},colorModes:{items:{type:`string`},type:`array`},dryRun:{type:`boolean`},execInstallPolicies:{items:{type:`string`},type:`array`},freshnessMetadata:{type:`boolean`},idempotencyKey:{type:`boolean`},logLevels:{items:{type:`string`},type:`array`},quietLogs:{type:`boolean`},selfUpgrade:{type:`boolean`},timeout:{type:`boolean`}},required:[`assumeYes`,`cacheBypass`,`cacheRefresh`,`channels`,`colorModes`,`dryRun`,`execInstallPolicies`,`freshnessMetadata`,`idempotencyKey`,`logLevels`,`quietLogs`,`selfUpgrade`,`timeout`],type:`object`},installers:{additionalProperties:!1,properties:Le,required:Re,type:`object`},outputModes:{items:{type:`string`},type:`array`},platform:{additionalProperties:!1,properties:{arch:{type:`string`},os:{type:`string`}},required:[`arch`,`os`],type:`object`}},required:[`agents`,`features`,`installers`,`outputModes`,`platform`],type:`object`},description:`Environment and surface capabilities`,envelopeSchema:j,name:`capabilities`,ndjsonEventSchema:M},{dataSchema:{additionalProperties:!1,properties:{commands:{items:{additionalProperties:!1,properties:{flags:{items:{type:`string`},type:`array`},name:{type:`string`},outputSchemaRef:{type:`string`},stability:{type:`string`},summary:{type:`string`}},required:[`flags`,`name`,`outputSchemaRef`,`stability`,`summary`],type:`object`},type:`array`}},required:[`commands`],type:`object`},description:`Stable command catalog`,envelopeSchema:j,name:`commands`,ndjsonEventSchema:M},{dataSchema:{additionalProperties:!1,properties:{action:{type:`string`},config:{type:`object`},key:{type:`string`},value:{type:[`number`,`string`]}},required:[`action`],type:`object`},description:`Configuration read or mutation result`,envelopeSchema:j,name:`config`,ndjsonEventSchema:M},{dataSchema:{additionalProperties:!1,properties:{agents:{items:{additionalProperties:!1,properties:{displayName:{type:`string`},installedVersion:{type:`string`},latestVersion:{type:`string`},lifecycle:{type:`string`},outdated:{type:`boolean`},sourceLabel:{type:`string`}},required:[`displayName`,`lifecycle`,`outdated`,`sourceLabel`],type:`object`},type:`array`},installers:{additionalProperties:!1,properties:{brew:{type:`boolean`},bun:{type:`boolean`},cargo:{type:`boolean`},deno:{type:`boolean`},mise:{type:`boolean`},npm:{type:`boolean`},pip:{type:`boolean`},uv:{type:`boolean`},winget:{type:`boolean`}},required:Re,type:`object`},issues:{items:{additionalProperties:!1,properties:{blocking:{type:`boolean`},category:{type:`string`},code:{type:`string`},docsRef:{type:`string`},message:{type:`string`},severity:{type:`string`},subject:{additionalProperties:!1,properties:{kind:{type:`string`},name:{type:`string`}},required:[`kind`],type:`object`},suggestedAction:{type:`string`},suggestedCommands:{items:{type:`string`},type:`array`}},required:[`blocking`,`category`,`code`,`message`,`severity`,`subject`,`suggestedAction`,`suggestedCommands`],type:`object`},type:`array`},self:{additionalProperties:!1,properties:{canAutoUpdate:{type:`boolean`},currentVersion:{type:`string`},installSource:{type:`string`},latestVersion:{type:`string`},outdated:{type:`boolean`},recoveryHint:{type:`string`}},required:[`canAutoUpdate`,`currentVersion`,`installSource`,`outdated`],type:`object`}},required:[`agents`,`installers`,`issues`,`self`],type:`object`},description:`Diagnostic state and remediation guidance for the current environment`,envelopeSchema:j,name:`doctor`,ndjsonEventSchema:M},{dataSchema:{additionalProperties:!1,properties:{agent:{additionalProperties:!1,properties:{binaryName:{type:`string`},displayName:{type:`string`},name:{type:`string`}},required:[`name`],type:`object`},execution:{additionalProperties:!1,properties:{args:{items:{type:`string`},type:`array`},installGuidance:{additionalProperties:!1,properties:{docsRef:{type:`string`},installMethods:{items:{additionalProperties:!1,properties:{command:{type:`string`},label:{type:`string`},type:{type:`string`}},required:[`command`,`label`,`type`],type:`object`},type:`array`},suggestedAction:{type:`string`},suggestedEnsureCommand:{type:`string`},suggestedExecCommand:{type:`string`}},required:[`docsRef`,`installMethods`,`suggestedAction`,`suggestedEnsureCommand`,`suggestedExecCommand`],type:`object`},installPolicy:{type:`string`},installed:{type:`boolean`},interactive:{type:`boolean`},launched:{type:`boolean`}},required:[`args`,`installPolicy`,`installed`,`interactive`,`launched`],type:`object`}},required:[`agent`,`execution`],type:`object`},description:`Preflight contract for managed agent execution`,envelopeSchema:j,name:`exec`,ndjsonEventSchema:M},{dataSchema:{additionalProperties:!1,properties:{agent:{type:`object`},changed:{type:`boolean`},installState:{type:`object`},installed:{type:`boolean`}},required:[`agent`,`changed`,`installed`],type:`object`},description:`Ensure result for an agent`,envelopeSchema:j,name:`ensure`,ndjsonEventSchema:M},{dataSchema:{additionalProperties:!1,properties:{agent:{additionalProperties:!1,properties:{aliases:{items:{type:`string`},type:`array`},binaryName:{type:`string`},displayName:{type:`string`},installMethods:{items:{additionalProperties:!1,properties:{command:{type:`string`},label:{type:`string`},type:{type:`string`}},required:[`command`,`label`,`type`],type:`object`},type:`array`},name:{type:`string`},packageName:{type:`string`},selfUpdateCommands:{items:{type:`string`},type:`array`}},required:[`aliases`,`binaryName`,`displayName`,`installMethods`,`name`,`selfUpdateCommands`],type:`object`},inspection:{additionalProperties:!1,properties:{binaryPath:{type:`string`},installed:{type:`boolean`},installedVersion:{type:`string`},latestVersion:{type:`string`},lifecycle:{type:`string`},sourceLabel:{type:`string`}},required:[`installed`,`lifecycle`],type:`object`}},required:[`agent`,`inspection`],type:`object`},description:`Human-friendly details for an agent`,envelopeSchema:j,name:`info`,ndjsonEventSchema:M},{dataSchema:{additionalProperties:!1,properties:{agent:{type:`object`},capabilities:{type:`object`},inspection:{type:`object`}},required:[`agent`,`capabilities`,`inspection`],type:`object`},description:`Structured inspection result for an agent`,envelopeSchema:j,name:`inspect`,ndjsonEventSchema:M},{dataSchema:{additionalProperties:!1,properties:{agent:{type:`object`},changed:{type:`boolean`},installState:{type:`object`},installed:{type:`boolean`},results:{items:{additionalProperties:!1,properties:{agent:{type:`object`},changed:{type:`boolean`},error:{type:`object`},input:{type:`string`},installState:{type:`object`},installed:{type:`boolean`},ok:{type:`boolean`},status:{type:`string`},warnings:{items:{type:`object`},type:`array`}},required:[`agent`,`changed`,`input`,`installed`,`ok`,`status`,`warnings`],type:`object`},type:`array`},scope:{type:`string`},summary:{type:`object`}},type:`object`},description:`Install result for one or more agents`,envelopeSchema:j,name:`install`,ndjsonEventSchema:M},{dataSchema:{additionalProperties:!1,properties:{agents:{items:{additionalProperties:!1,properties:{binaryName:{type:`string`},displayName:{type:`string`},installed:{type:`boolean`},installedVersion:{type:`string`},latestVersion:{type:`string`},lifecycle:{type:`string`},name:{type:`string`},sourceLabel:{type:`string`},updateLabel:{type:`string`}},required:[`binaryName`,`displayName`,`installed`,`lifecycle`,`name`,`sourceLabel`,`updateLabel`],type:`object`},type:`array`}},required:[`agents`],type:`object`},description:`Supported agent catalog`,envelopeSchema:j,name:`list`,ndjsonEventSchema:M},{dataSchema:{additionalProperties:!1,properties:{agent:{type:`object`},resolution:{additionalProperties:!1,properties:{binaryPath:{type:`string`},installGuidance:{additionalProperties:!1,properties:{docsRef:{type:`string`},installMethods:{items:{additionalProperties:!1,properties:{command:{type:`string`},label:{type:`string`},type:{type:`string`}},required:[`command`,`label`,`type`],type:`object`},type:`array`},suggestedAction:{type:`string`},suggestedEnsureCommand:{type:`string`}},required:[`docsRef`,`installMethods`,`suggestedAction`,`suggestedEnsureCommand`],type:`object`},installed:{type:`boolean`},installSource:{type:`string`},installedVersion:{type:`string`},lifecycle:{type:`string`},sourceLabel:{type:`string`},suggestedLaunchCommand:{items:{type:`string`},type:`array`}},required:[`binaryPath`,`installed`,`installSource`,`lifecycle`,`sourceLabel`,`suggestedLaunchCommand`],type:`object`}},required:[`agent`,`resolution`],type:`object`},description:`Resolved executable entrypoint for an agent`,envelopeSchema:j,name:`resolve`,ndjsonEventSchema:M},{dataSchema:{additionalProperties:!1,properties:{commands:{items:{additionalProperties:!1,properties:{dataSchema:{type:`object`},description:{type:`string`},envelopeSchema:{type:`object`},name:{type:`string`},ndjsonEventSchema:{type:`object`}},required:[`dataSchema`,`description`,`envelopeSchema`,`name`],type:`object`},type:`array`}},required:[`commands`],type:`object`},description:`Structured schema catalog`,envelopeSchema:j,name:`schema`,ndjsonEventSchema:M},{dataSchema:{additionalProperties:!1,properties:{results:{items:{additionalProperties:!1,properties:{displayName:{type:`string`},hint:{type:`string`},installedVersion:{type:`string`},latestVersion:{type:`string`},message:{type:`string`},name:{type:`string`},resource:{type:`string`},status:{type:`string`},strategy:{type:`string`}},required:[`displayName`,`name`,`status`],type:`object`},type:`array`},scope:{type:`string`}},required:[`results`,`scope`],type:`object`},description:`Update result for one or all agents`,envelopeSchema:j,name:`update`,ndjsonEventSchema:M},{dataSchema:{additionalProperties:!1,properties:{agent:{additionalProperties:!1,properties:{displayName:{type:`string`},name:{type:`string`}},required:[`displayName`,`name`],type:`object`},changed:{type:`boolean`}},required:[`agent`,`changed`],type:`object`},description:`Uninstall result for an agent`,envelopeSchema:j,name:`uninstall`,ndjsonEventSchema:M},{dataSchema:{additionalProperties:!1,properties:{canAutoUpdate:{type:`boolean`},channel:{type:`string`},currentVersion:{type:`string`},installSource:{type:`string`},latestVersion:{type:`string`},recoveryHint:{type:`string`},status:{type:`string`}},required:[`canAutoUpdate`,`channel`,`currentVersion`,`installSource`,`status`],type:`object`},description:`Quantex self-upgrade status`,envelopeSchema:j,name:`upgrade`,ndjsonEventSchema:M}],P=[{description:`Output structured JSON`,flags:`--json`,id:`json`,value:`boolean`},{description:`Output mode: human, json, or ndjson`,flags:`--output <mode>`,id:`output`,value:`string`},{description:`Disable interactive prompts and confirmations`,flags:`--non-interactive`,id:`nonInteractive`,value:`boolean`},{description:`Automatically accept safe default confirmations`,flags:`--yes`,id:`yes`,value:`boolean`},{description:`Suppress non-essential human logs`,flags:`--quiet`,id:`quiet`,value:`boolean`},{description:`Color mode: auto, always, or never`,flags:`--color <mode>`,id:`color`,value:`string`},{description:`Log level: silent, error, warn, info, or debug`,flags:`--log-level <level>`,id:`logLevel`,value:`string`},{description:`Show what would happen without making changes`,flags:`--dry-run`,id:`dryRun`,value:`boolean`},{description:`Refresh cached version metadata before returning results`,flags:`--refresh`,id:`refresh`,value:`boolean`},{commanderProperty:`cache`,description:`Bypass the local version cache for this command`,flags:`--no-cache`,id:`noCache`,negateCommanderValue:!0,value:`boolean`},{description:`Attach a run id to structured output and logs`,flags:`--run-id <id>`,id:`runId`,value:`string`},{description:`Deduplicate repeated mutating requests by client-supplied key`,flags:`--idempotency-key <key>`,id:`idempotencyKey`,value:`string`},{description:`Abort a command after the given duration, e.g. 500ms, 30s, 5m`,flags:`--timeout <duration>`,id:`timeout`,value:`string`}],Be=new Map(P.map(e=>[e.id,e])),Ve=new Map(ze.map(e=>[e.name,e])),F=[`json`,`output`,`quiet`,`color`,`logLevel`,`refresh`,`noCache`,`timeout`],He=[`json`,`output`,`yes`,`quiet`,`color`,`logLevel`,`dryRun`,`timeout`,`idempotencyKey`],Ue=[I({aliases:[],description:`查看当前环境与 surface 能力`,effects:[`filesystem`,`network`,`process`],globalOptions:[`json`,`output`,`nonInteractive`,`quiet`,`color`,`logLevel`,`refresh`,`noCache`,`timeout`],name:`capabilities`,summary:`Return environment and surface capabilities`}),I({aliases:[],description:`查看命令目录与稳定能力`,effects:[],globalOptions:[`json`,`output`,`quiet`,`color`,`logLevel`,`timeout`],name:`commands`,summary:`Return the stable command catalog`}),I({aliases:[],arguments:[{description:`Action: get, set, reset`,name:`action`,syntax:`[action]`},{description:`Config key`,name:`key`,syntax:`[key]`},{description:`Config value`,name:`value`,syntax:`[value]`}],catalogTokens:[`get`,`set`,`reset`],description:`配置管理`,effects:[`filesystem`,`mutation`],globalOptions:[`json`,`output`,`quiet`,`color`,`logLevel`,`timeout`],name:`config`,summary:`Read and modify Quantex configuration`}),I({aliases:[],description:`检查环境`,effects:[`filesystem`,`network`,`process`],globalOptions:F,name:`doctor`,summary:`Diagnose the current environment and installed tools`}),I({aliases:[],allowUnknownOptions:!0,arguments:[{description:`Agent name or alias`,name:`agent`,syntax:`<agent>`},{description:`Arguments passed through to the agent`,name:`args`,syntax:`[args...]`}],description:`以显式策略启动 agent`,effects:[`filesystem`,`interaction`,`mutation`,`network`,`process`],globalOptions:[`nonInteractive`,`yes`,`quiet`,`color`,`logLevel`,`dryRun`,`output`],name:`exec`,options:[{defaultValue:`never`,description:`Install policy: never, if-missing, always`,flags:`--install <policy>`,id:`install`,value:`string`}],summary:`Run an agent with explicit install policy`}),I({aliases:[],arguments:[{description:`Agent name or alias`,name:`agent`,syntax:`<agent>`}],description:`确保指定 agent 已安装`,effects:[`filesystem`,`interaction`,`mutation`,`network`,`process`],globalOptions:He,name:`ensure`,summary:`Ensure an agent is installed`}),I({aliases:[],arguments:[{description:`Agent name or alias`,name:`agent`,syntax:`<agent>`}],description:`查看 agent 详细信息`,effects:[`filesystem`,`network`,`process`],globalOptions:F,name:`info`,summary:`Show human-friendly agent details`}),I({aliases:[],arguments:[{description:`Agent name or alias`,name:`agent`,syntax:`<agent>`}],description:`查看 agent 结构化状态`,effects:[`filesystem`,`network`,`process`],globalOptions:F,name:`inspect`,summary:`Return structured agent state`}),I({aliases:[`i`],arguments:[{description:`Agent names or aliases`,name:`agents`,syntax:`<agents...>`}],description:`安装指定 agent`,effects:[`filesystem`,`interaction`,`mutation`,`network`,`process`],globalOptions:He,name:`install`,summary:`Install one or more agents`}),I({aliases:[`ls`],description:`列出所有支持的 agent`,effects:[`filesystem`,`network`,`process`],globalOptions:F,name:`list`,summary:`List supported agents`}),I({aliases:[],arguments:[{description:`Agent name or alias`,name:`agent`,syntax:`<agent>`}],description:`解析 agent 可执行入口`,effects:[`filesystem`,`network`,`process`],globalOptions:F,name:`resolve`,summary:`Resolve an agent executable entrypoint`}),I({aliases:[],arguments:[{description:`Optional command name`,name:`command`,syntax:`[command]`}],description:`查看结构化输出 schema`,effects:[],globalOptions:[`json`,`output`,`quiet`,`color`,`logLevel`,`timeout`],name:`schema`,summary:`Return structured output schemas`}),I({aliases:[`u`],arguments:[{description:`Agent name or alias`,name:`agent`,syntax:`[agent]`}],description:`更新指定 agent`,effects:[`filesystem`,`mutation`,`network`,`process`],globalOptions:[`json`,`output`,`quiet`,`color`,`logLevel`,`dryRun`,`refresh`,`noCache`,`timeout`,`idempotencyKey`],name:`update`,options:[{description:`Update all installed agents`,flags:`--all`,id:`all`,value:`boolean`}],summary:`Update one or all agents`}),I({aliases:[`rm`],arguments:[{description:`Agent name or alias`,name:`agent`,syntax:`<agent>`}],description:`卸载指定 agent`,effects:[`filesystem`,`mutation`,`process`],globalOptions:[`json`,`output`,`quiet`,`color`,`logLevel`,`dryRun`,`timeout`,`idempotencyKey`],name:`uninstall`,summary:`Uninstall an agent`}),I({aliases:[],description:`升级 Quantex CLI`,effects:[`filesystem`,`mutation`,`network`,`process`],globalOptions:[`json`,`output`,`quiet`,`color`,`logLevel`,`dryRun`,`refresh`,`noCache`,`timeout`,`idempotencyKey`],name:`upgrade`,options:[{description:`Only check whether an update is available`,flags:`--check`,id:`check`,value:`boolean`},{description:`Update channel: stable or beta`,flags:`--channel <channel>`,id:`channel`,value:`string`}],summary:`Upgrade Quantex CLI itself`})];function We(){return Ue}function Ge(){return P}function Ke(e){let t={...e};for(let n of P){let r=n.commanderProperty??n.id;r in e&&(t[n.id]=n.negateCommanderValue?e[r]===!1:e[r],r!==n.id&&delete t[r])}return t}function qe(e){return{flags:L(e),name:e.name,outputSchemaRef:`#/commands/${e.schema.name}`,stability:e.stability,summary:e.summary}}function Je(e,t){let n=new Set,r=new Set;for(let t of e){if(n.has(t.name))throw Error(`Duplicate command name: ${t.name}`);n.add(t.name)}for(let t of e){let e=new Set,i=new Set,a=new Set,o=new Set;for(let e of t.aliases){if(n.has(e))throw Error(`Command alias collides with command name: ${e}`);if(r.has(e))throw Error(`Duplicate command alias: ${e}`);r.add(e)}for(let n of t.effects){if(e.has(n))throw Error(`Duplicate command effect: ${n}`);e.add(n)}for(let[e,n]of t.arguments.entries()){if(i.has(n.name))throw Error(`Duplicate command argument: ${t.name} ${n.name}`);if(i.add(n.name),n.syntax.includes(`...`)&&e!==t.arguments.length-1)throw Error(`Variadic command argument must be last: ${t.name} ${n.name}`)}let s=new Set;for(let e of t.globalOptions){let n=Be.get(e);if(!n)throw Error(`Unknown global option: ${t.name} ${e}`);let r=R(n.flags);if(s.has(r))throw Error(`Duplicate command global option: ${t.name} ${r}`);s.add(r)}for(let e of t.options){let n=R(e.flags);if(a.has(n))throw Error(`Duplicate command option: ${t.name} ${n}`);if(o.has(e.id))throw Error(`Duplicate command option id: ${t.name} ${e.id}`);if(s.has(n))throw Error(`Command option duplicates global option: ${t.name} ${n}`);Xe(e,t.name),a.add(n),o.add(e.id)}if((t.globalOptions.includes(`dryRun`)||t.globalOptions.includes(`idempotencyKey`)||t.options.some(e=>e.id===`dryRun`||e.id===`idempotencyKey`))&&!e.has(`mutation`)){let e=t.globalOptions.includes(`dryRun`)?`--dry-run`:`--idempotency-key`;throw Error(`Command effect mismatch: ${t.name} exposes ${e} without mutation`)}let c=L(t);if(c.length!==t.flags.length||c.some((e,n)=>e!==t.flags[n]))throw Error(`Command discovery option mismatch: ${t.name}`)}for(let t of e){if(!n.has(t.handlerId))throw Error(`Unresolved command handler: ${t.handlerId}`);if(!n.has(t.presenterId))throw Error(`Unresolved command presenter: ${t.presenterId}`)}let i=new Set(t);for(let t of e){if(!i.has(t.schemaName))throw Error(`Missing command schema: ${t.schemaName}`);if(t.schema.name!==t.schemaName)throw Error(`Command schema mismatch: ${t.name} ${t.schema.name}`)}}function I(e){let t=Ye(e.name),n={...e,arguments:e.arguments??[],catalogTokens:e.catalogTokens??[],flags:[],handlerId:e.name,options:e.options??[],presenterId:e.name,schema:t,schemaName:e.name,stability:`stable`};return{...n,flags:L(n)}}function Ye(e){let t=Ve.get(e);if(!t)throw Error(`Missing command schema: ${e}`);return t}function L(e){return[...e.catalogTokens,...e.options.map(e=>R(e.flags)),...e.globalOptions.map(t=>{let n=Be.get(t);if(!n)throw Error(`Unknown global option: ${e.name} ${t}`);return R(n.flags)})]}function R(e){let t=e.match(/--[a-z][a-z-]*/);if(!t)throw Error(`Command option requires a long flag: ${e}`);return t[0]}function Xe(e,t){let n=e.flags.includes(`<`)||e.flags.includes(`[`);if(e.value===`string`!==n)throw Error(`Command option value mismatch: ${t} ${R(e.flags)}`);if(e.value===`boolean`&&typeof e.defaultValue==`string`)throw Error(`Command option default mismatch: ${t} ${R(e.flags)}`)}const Ze=new Map(We().map(e=>[e.name,tt(e.presenterId)]));function Qe(e){return Ze.get(e)}function $e(e,t,n,r,i,a){if(t===`json`){i(e?.serializeJson(n)??JSON.stringify(n,null,2));return}if(t===`ndjson`){a(e?.toResultEvent(n)??nt(n));return}e?e.presentHuman(n,r):r(n)}function et(e,t,n,r){if(t===`ndjson`)return r(e?.toEvent(n)??n)}function tt(e){return{presenterId:e,presentHuman:(e,t)=>t(e),serializeJson:e=>JSON.stringify(e,null,2),toEvent:e=>e,toResultEvent:nt}}function nt(e){return{action:e.action,data:e,target:e.target,type:`result`}}const z=`quantex-cli`,rt=`https://github.com/Drswith/quantex-cli`,it=`1.8.12`;function at(e){return e.replaceAll(`\\`,`/`).toLowerCase()}function ot(e=C.execPath){let t=st(e);return t?`${t}.tar.gz`:void 0}function st(e=C.execPath){if(re(at(e)).endsWith(`.exe`))return`quantex-windows-x64.exe`;if(C.platform===`darwin`)return C.arch===`arm64`?`quantex-darwin-arm64`:`quantex-darwin-x64`;if(C.platform===`linux`)return C.arch===`arm64`?`quantex-linux-arm64`:`quantex-linux-x64`}function ct(e=C.execPath){let t=ot(e);if(t)return`${rt}/releases/latest/download/${t}`}function lt(e,t,n=C.env){return e||(n.QUANTEX_UPDATE_CHANNEL===`beta`?`beta`:n.QUANTEX_UPDATE_CHANNEL===`stable`?`stable`:t===`beta`?`beta`:`stable`)}async function ut(e,t,n,r){let i=await D(await dt(e,t,n,r),`self:manifest:${e}`,{cacheMode:r,context:t,networkPort:n});if(!i)throw Error(`Failed to download release manifest.`);return i}async function dt(e,t,n,r){if(e===`stable`)return`${rt}/releases/latest/download/manifest.json`;let i=(await ft(e,t,n,r)).assets.find(e=>e.name===`manifest.json`);if(!i?.browser_download_url)throw Error(`No manifest.json asset was found for the ${e} release channel.`);return i.browser_download_url}async function ft(e,t,n,r){let i=mt();if(!i)throw Error(`Failed to resolve the GitHub repository slug for Quantex releases.`);let a=await D(`https://api.github.com/repos/${i}/releases?per_page=20`,`self:github-releases`,{cacheMode:r,context:t,networkPort:n});if(!a)throw Error(`Failed to query GitHub releases.`);let o=a.find(t=>e===`beta`?t.prerelease:!t.prerelease);if(!o)throw Error(`No GitHub release was found for the ${e} channel.`);return o}function pt(e,t=C.execPath){let n=C.platform,r=C.arch===`arm64`?`arm64`:`x64`,i=ot(t);return e.assets.find(e=>e.platform===n&&e.arch===r&&(!i||e.name===i))}function mt(){return rt.match(/github\.com\/([^/]+\/[^/]+)$/)?.[1]}var B=class extends Error{constructor(e,t){super(e,t),this.name=`StateFileError`}};const ht={installedAgents:{},self:{}};function gt(){return d(p())}async function V(){return At()}async function _t(e){let t=await f({resource:`state`,scope:[`state`]});try{await jt(e)}finally{await t()}}async function vt(e){return(await V()).installedAgents[e]}async function yt(e){try{return await H().getReceipt(e)}catch(e){throw e instanceof B?e:new B(`Failed to read Quantex state file.`,{cause:e})}}async function bt(e){let t=await f({resource:`state`,scope:[`state`]});try{await H().setReceipt(e)}catch(e){throw e instanceof B?e:new B(`Failed to write Quantex state file.`,{cause:e})}finally{await t()}}async function xt(e,t){let n=await f({resource:`state`,scope:[`state`]});try{await H().setAgentLifecycleEvidence(e,t)}catch(e){throw e instanceof B?e:new B(`Failed to write Quantex state file.`,{cause:e})}finally{await n()}}async function St(e){let t=await f({resource:`state`,scope:[`state`]});try{await H().removeReceipt(e)}catch(e){throw e instanceof B?e:new B(`Failed to write Quantex state file.`,{cause:e})}finally{await t()}}const Ct=Object.freeze({read:yt,remove:St,write:bt});async function wt(e){await U(t=>{t.installedAgents[e.agentName]=e})}async function Tt(e){await U(t=>{delete t.installedAgents[e]})}async function Et(){return(await V()).self}async function Dt(e){await U(t=>{t.self.installSource=e})}async function Ot(){await U(e=>{delete e.self.installSource})}async function kt(e,t){await U(n=>{n.self.updateNoticeVersion=e,n.self.updateNoticeAt=t})}async function At(){try{return await H().loadProjection()}catch(e){if(Mt(e))return{...ht};throw e instanceof B?e:e instanceof ee?new B(`Failed to read Quantex state file: ${e.message}`,{cause:e}):new B(`Failed to read Quantex state file.`,{cause:e})}}async function jt(e){try{await H().saveProjection(e)}catch(e){throw e instanceof B?e:new B(`Failed to write Quantex state file.`,{cause:e})}}function H(){return m(p())}function Mt(e){let t=typeof e==`object`&&e&&`code`in e?e.code:void 0;return t===`ENOENT`||t===`ENOTDIR`}async function U(e){let t=await f({resource:`state`,scope:[`state`]});try{let t=await At();await e(t),await jt(t)}finally{await t()}}const Nt=`self:install-source`,Pt={clearInstallSource:Ot,getSelfState:Et,setInstallSource:Dt};function W(e=Pt){return{async load(t){let n=G(t.key,t.signal);if(n)return n;try{let t=(await e.getSelfState()).installSource;return It(t===void 0?{kind:`missing`}:{kind:`found`,snapshot:{value:t}})}catch(e){return Lt(`Failed to read the persisted self install source.`,e)}},async remove(t){let n=G(t.key,t.signal);if(n)return n;try{return await e.clearInstallSource(),It(void 0)}catch(e){return Lt(`Failed to remove the persisted self install source.`,e)}},async save(t){let n=G(t.key,t.signal);if(n)return n;if(!Ft(t.value))return K({kind:`invalid-data`,message:`The persisted self install source is invalid.`});try{return await e.setInstallSource(t.value),It({})}catch(e){return Lt(`Failed to persist the self install source.`,e)}}}}function G(e,t){if(t.aborted)return K({kind:`cancelled`,message:`Self install-source persistence was cancelled.`});if(e!==`self:install-source`)return K({kind:`invalid-data`,message:`Unsupported self persistence key "${e}".`})}function Ft(e){return e===`binary`||e===`bun`||e===`npm`||e===`source`||e===`unknown`}function It(e){return{kind:`success`,value:e}}function K(e){return{error:e,kind:`failure`}}function Lt(e,t){return K({details:{cause:t},kind:`failed`,message:e})}const Rt=z,zt=`/node_modules/${Rt}`;async function Bt(e){return Ht(e,!0)}async function Vt(e){return Ht(e,!1)}async function Ht(e,t){let n=await Yt(),r=C.execPath,i=n.foundPackageJson?Jt(n.packageRoot):Jt(``,r),a=e?.persistence??W(),o=e?.signal??new AbortController().signal,s=await Kt(a,o),c=t?await Gt(s,i,{persistence:a,signal:o}):Ut(s,i),u=await l(),d=lt(e?.updateChannel,u.selfUpdateChannel);return{canAutoUpdate:Wt(c),currentVersion:n.version||`1.8.12`,executablePath:r,installSource:c,packageRoot:n.packageRoot,updateChannel:d}}function Ut(e,t){return t===`unknown`?e??t:t}function Wt(e){return e===`binary`||e===`bun`||e===`npm`}async function Gt(e,t,n){if(t!==`unknown`&&e!==t){let e=await(n?.persistence??W()).save({key:Nt,signal:n?.signal??new AbortController().signal,value:t});return e.kind===`failure`&&qt(e.error),t}return Ut(e,t)}async function Kt(e,t){let n=await e.load({key:Nt,signal:t});if(n.kind===`failure`&&qt(n.error),n.value.kind===`missing`)return;let r=n.value.snapshot.value;if(r===`binary`||r===`bun`||r===`npm`||r===`source`||r===`unknown`)return r;throw Error(`The persisted self install source is invalid.`)}function qt(e){let t=e.details?.cause;throw t instanceof Error?t:e.kind===`cancelled`?new i({kind:`cancelled`,reason:e.message}):e.kind===`timed-out`?new i({kind:`timed-out`,timeoutMs:0}):Error(e.message)}function Jt(e,t=C.execPath){let n=Qt(e);return n.includes(`/.bun/install/global/`)?`bun`:n.includes(zt)?`npm`:n?`source`:$t(t)?`binary`:`unknown`}async function Yt(e=import.meta.url){let t=en(e),n=b(t);for(;;){let e=x(n,`package.json`),t=await Zt(e);if(t?.name===Rt)return{foundPackageJson:!0,packageJsonPath:e,packageRoot:n,version:t.version??`1.8.12`};let r=b(n);if(r===n)break;n=r}return{foundPackageJson:!1,packageJsonPath:x(b(t),`package.json`),packageRoot:b(t),version:it}}function Xt(){return it}async function Zt(e){try{return JSON.parse(await w(e,`utf8`))}catch{return}}function Qt(e){return e.replaceAll(`\\`,`/`).toLowerCase()}function $t(e){let t=re(Qt(e));return t!==`bun`&&t!==`bun.exe`}function en(e){try{return fe(e)}catch{return C.execPath}}async function tn(){try{return await f({resource:`self upgrade`,scope:[`self-upgrade`]})}catch(e){if(c(e))return;throw e}}function nn(){return{async acquire(e){if(e.signal.aborted)return q(`cancelled`,`Self-upgrade lock acquisition was cancelled.`);if(e.scope.length!==1||e.scope[0]!==`self-upgrade`)return q(`unavailable`,`Unsupported self-upgrade lock scope: ${e.scope.join(`/`)}`);let t=await tn();if(!t)return q(`conflict`,`Another qtx upgrade is already running.`);if(e.signal.aborted)return await t(),q(`cancelled`,`Self-upgrade lock acquisition was cancelled.`);let n=!1;return{kind:`success`,value:{async release(){if(n)return{kind:`success`,value:void 0};n=!0;try{return await t(),{kind:`success`,value:void 0}}catch(e){return q(`failed`,e instanceof Error?e.message:`Failed to release self-upgrade lock.`)}}}}}}}function q(e,t){return{error:{kind:e,message:t},kind:`failure`}}async function rn(e,t,n=C.env,r=C.cwd()){if(e!==`bun`&&e!==`npm`)return;let i=g(n.QTX_SELF_UPDATE_REGISTRY);return i?{isOverride:!0,registry:i,source:`quantex-env`}:t.selfUpdateRegistry?{isOverride:!0,registry:t.selfUpdateRegistry,source:`quantex-config`}:await an(e,n,r)||{isOverride:!1,registry:_,source:`fallback`}}async function an(e,t,n){if(e===`bun`){let e=on(t,[`BUN_CONFIG_REGISTRY`,`NPM_CONFIG_REGISTRY`,`npm_config_registry`]);if(e)return{isOverride:!1,registry:e,source:`bun-env`};let r=await sn(n,t);if(r)return{isOverride:!1,registry:r,source:`bunfig`}}let r=on(t,[`NPM_CONFIG_REGISTRY`,`npm_config_registry`]);if(r)return{isOverride:!1,registry:r,source:`npm-env`};let i=await ln(n,t);if(i)return{isOverride:!1,registry:i,source:`npmrc`}}function on(e,t){for(let n of t){let t=g(e[n]);if(t)return t}}async function sn(e,t){let n=fn(t),r=t.XDG_CONFIG_HOME,i=dn(e,`bunfig.toml`),a=[x(n,`.bunfig.toml`),r?x(r,`.bunfig.toml`):void 0];if(i){let e=await cn(i);if(e)return e}for(let e of a){if(!e||!ne(e))continue;let t=await cn(e);if(t)return t}}async function cn(e){try{return pn(await w(e,`utf8`))}catch{return}}async function ln(e,t){let n=fn(t),r=dn(e,`.npmrc`),i=x(n,`.npmrc`);if(r){let e=await un(r);if(e)return e}if(ne(i))return un(i)}async function un(e){try{let t=(await w(e,`utf8`)).split(`
|
|
3
|
-
`).map(e=>e.trim());for(let e=t.length-1;e>=0;--e){let n=t[e];if(!n||n.startsWith(`#`)||n.startsWith(`;`))continue;let r=n.match(/^registry\s*=\s*(.+)$/);if(!r?.[1])continue;let i=g(r[1]);if(i)return i}}catch{}}function dn(e,t){let n=e;for(;;){let e=x(n,t);if(ne(e))return e;let r=b(n);if(r===n)return;n=r}}function fn(e){return e.HOME||e.USERPROFILE||ue()}function pn(e){let t=mn(e,[/(?:^|\n)\s*install\.registry\s*=\s*["']([^"'#\n]+)["']/,/(?:^|\n)\s*install\.registry\s*=\s*\{\s*url\s*=\s*["']([^"'#\n]+)["']/,/(?:^|\n)\s*install\s*=\s*\{[\s\S]*?\bregistry\s*=\s*["']([^"'#\n]+)["'][\s\S]*?\}/,/(?:^|\n)\s*install\s*=\s*\{[\s\S]*?\bregistry\s*=\s*\{\s*url\s*=\s*["']([^"'#\n]+)["'][\s\S]*?\}[\s\S]*?\}/]);if(t)return g(t);let n=e.match(/(?:^|\n)\s*\[install\]\s*\n([\s\S]*?)(?=\n\s*\[[^\]]+\]|\s*$)/)?.[1];if(n)return g(mn(n,[/(?:^|\n)\s*registry\s*=\s*["']([^"'#\n]+)["']/,/(?:^|\n)\s*registry\s*=\s*\{\s*url\s*=\s*["']([^"'#\n]+)["']/]))}function mn(e,t){for(let n of t){let t=e.match(n)?.[1];if(t)return t}}function hn(e){return`self:update-metadata:${e.installSource}:${e.updateChannel}`}function gn(e){return{canAutoUpdate:!0,expiresAtMs:e.expiresAtMs,fetchedAtMs:e.fetchedAtMs,installSource:e.facts.installSource,schemaVersion:1,targetVersion:e.targetVersion,updateChannel:e.facts.updateChannel}}function _n(e,t){if(bn(e)&&e.schemaVersion===1&&!(e.canAutoUpdate!==!0||!t.facts.canAutoUpdate)&&!(e.installSource!==t.facts.installSource||e.updateChannel!==t.facts.updateChannel)&&!(typeof e.targetVersion!=`string`||v(e.targetVersion,e.targetVersion)!==0)&&!(!xn(e.fetchedAtMs)||!xn(e.expiresAtMs))&&!(e.fetchedAtMs>t.nowMs||e.expiresAtMs<=t.nowMs||e.fetchedAtMs>=e.expiresAtMs))return e}async function vn(e){let t=await e.cache.read({key:hn(e.facts),signal:e.signal});if(!(t.kind===`failure`||t.value.kind===`miss`)&&!(t.value.expiresAtMs!==void 0&&t.value.expiresAtMs<=e.nowMs))return _n(t.value.value,e)}function yn(e){return e.cache.write({expiresAtMs:e.metadata.expiresAtMs,key:hn(e.metadata),signal:e.signal,value:e.metadata})}function bn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function xn(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}async function Sn(e,n,r,i){let a=await l();if(e.installSource===`binary`)try{let t=n?await ut(e.updateChannel,n,r,i):await ut(e.updateChannel,void 0,r,i),a=pt(t,e.executablePath);return a?{binaryAsset:a,targetVersion:t.version}:{resolutionError:{detail:{channel:e.updateChannel},kind:`unsupported`,message:`No binary asset is available for the current platform on the ${e.updateChannel} channel.`}}}catch(n){if(t(n))throw n;return{resolutionError:{kind:`network`,message:`Failed to resolve the ${e.updateChannel} release manifest.`}}}let o=e.updateChannel===`beta`?`beta`:`latest`,s=await Pe(z,o,{...n?{context:n}:{},cacheMode:i,networkPort:r,registry:_});if(e.installSource===`bun`||e.installSource===`npm`){let t=await rn(e.installSource,a);return{managedRegistry:t?.registry,managedRegistryIsOverride:t?.isOverride??!1,packageTag:o,targetVersion:await Pe(z,o,{...n?{context:n}:{},cacheMode:i,networkPort:r,registry:t?.registry}),upstreamLatestVersion:s,verificationCommand:kn(e.packageRoot)}}return{packageTag:o,targetVersion:s,upstreamLatestVersion:s}}async function J(e){let t=e?.facts??await Bt({persistence:e?.persistencePort,signal:e?.context?.signal,updateChannel:e?.updateChannel}),n=e?.target??await Sn(t,e?.context,e?.networkPort,e?.metadataCacheMode),r=n.targetVersion?ke(n.targetVersion,t.currentVersion):!1,i={facts:t,status:En(t,n,r),target:n,updateAvailable:r};if(e?.metadataCache&&t.canAutoUpdate&&n.targetVersion){let r=e.nowMs??Date.now(),i=e.metadataTtlMs??(await l()).versionCacheTtlHours*60*60*1e3;await yn({cache:e.metadataCache,metadata:gn({expiresAtMs:r+i,facts:t,fetchedAtMs:r,targetVersion:n.targetVersion}),signal:e.context?.signal??new AbortController().signal})}return i}function Cn(e){return{canAutoUpdate:e.facts.canAutoUpdate,currentVersion:e.facts.currentVersion,executablePath:e.facts.executablePath,installSource:e.facts.installSource,latestVersion:e.target.targetVersion,managedRegistry:e.target.managedRegistry,managedRegistryIsOverride:e.target.managedRegistryIsOverride,packageRoot:e.facts.packageRoot,recommendedUpgradeCommand:e.facts.canAutoUpdate?`quantex upgrade`:void 0,upstreamLatestVersion:e.target.upstreamLatestVersion,updateChannel:e.facts.updateChannel}}async function wn(e,t,n){if(!t.success||e.facts.installSource!==`bun`&&e.facts.installSource!==`npm`)return t;let r=await Dn(e,n);if(!r)return{error:{kind:`verify`,message:`Managed self-upgrade finished but Quantex could not verify the installed version afterwards.`},installSource:e.facts.installSource,success:!1};let i=t.newVersion??e.target.targetVersion;return i&&r!==i?{error:{detail:{expectedVersion:i,observedVersion:r},kind:`verify`,message:`Managed self-upgrade installed version ${r}, but expected ${i}.`},installSource:e.facts.installSource,success:!1}:!i&&r===e.facts.currentVersion&&e.target.targetVersion!==void 0?{error:{detail:{observedVersion:r},kind:`verify`,message:`Managed self-upgrade completed without changing the installed Quantex version.`},installSource:e.facts.installSource,success:!1}:{...t,newVersion:r}}function Tn(e){let t={canAutoUpdate:e.canAutoUpdate,currentVersion:e.currentVersion,executablePath:e.executablePath,installSource:e.installSource,packageRoot:e.packageRoot,updateChannel:e.updateChannel},n={managedRegistry:e.managedRegistry,managedRegistryIsOverride:e.managedRegistryIsOverride,packageTag:e.updateChannel===`beta`?`beta`:`latest`,targetVersion:e.latestVersion,upstreamLatestVersion:e.upstreamLatestVersion,verificationCommand:kn(e.packageRoot)},r=e.latestVersion?ke(e.latestVersion,e.currentVersion):!1;return{facts:t,status:En(t,n,r),target:n,updateAvailable:r}}function En(e,t,n){return e.canAutoUpdate?t.targetVersion&&!n?`up-to-date`:t.targetVersion?`update-available`:`check-unavailable`:`manual-required`}async function Dn(e,t){let n=t?.process;if(n&&t){let r={...t,process:n};if(e.target.verificationCommand){let t=await On(e.target.verificationCommand,r);if(t)return t}return On([e.facts.executablePath,`--version`],r)}if(e.target.verificationCommand){let t=await je(e.facts.executablePath,{command:e.target.verificationCommand});if(t)return t}return je(e.facts.executablePath)}async function On(e,t){let n=await t.process.run({argv:e,signal:t.signal,stdio:[`ignore`,`pipe`,`ignore`],timeoutMs:t.timeoutMs});if(n.kind===`failure`){if(n.error.kind===`cancelled`)throw new i({kind:`cancelled`,reason:n.error.message});if(n.error.kind===`timed-out`)throw new i({kind:`timed-out`,timeoutMs:t.timeoutMs??0});return}if(n.value.exitCode!==0||!n.value.stdout)return;let r=new TextDecoder().decode(n.value.stdout).trim().split(`
|
|
4
|
-
`)[0];if(r)return r.match(/v?(\d+\.\d+\.\d+(?:-[a-z0-9.]+)?)/i)?.[1]??r}function kn(e){if(e)return[C.execPath,x(e,`dist`,`cli.mjs`),`--version`]}const An=[`quantex-darwin-arm64`,`quantex-darwin-x64`,`quantex-linux-arm64`,`quantex-linux-x64`,`quantex-windows-x64.exe`].map(jn);function jn(e){return`${e}.tar.gz`}function Y(e){if(!e.endsWith(`.tar.gz`))return;let t=e.slice(0,-7);return X(t)?t:void 0}function Mn(e){return`${e.sort((e,t)=>e.name.localeCompare(t.name)).map(e=>`${e.checksum} ${e.name}`).join(`
|
|
5
|
-
`)}\n`}function Nn(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 X(e){let t=(Y(e)??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 Pn(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 Fn(e){return e.includes(`beta`)?`beta`:`stable`}function In(e){let t=Pn(e.repositoryUrl),n=Fn(e.version),r=e.files.map(n=>{let r=X(n.name);if(!r)return;let i=e.checksums.get(n.name);if(!i)throw Error(`Missing checksum entry for ${n.name}.`);if(!Y(n.name))throw Error(`Release asset is not a compressed binary archive: ${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 Ln(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 An)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(!X(n.name))throw Error(`manifest.json contains an invalid binary asset name: ${n.name}.`)}}function Rn(e,t){if(Y(jn(t))!==t)throw Error(`Invalid expected release binary name: ${t}.`);let n;try{n=pe(e)}catch(e){throw Error(`Release archive is not a valid gzip stream.`,{cause:e})}let r=0,i;for(;r+512<=n.length;){let e=n.subarray(r,r+512);if(e.every(e=>e===0))break;let a=zn(e.subarray(0,100)),o=zn(e.subarray(345,500)),s=o?`${o}/${a}`:a,c=e[156],l=Bn(e.subarray(124,136)),u=r+512,d=u+l;if(!a||d>n.length)throw Error(`Release archive contains an invalid tar entry.`);if(c!==0&&c!==48)throw Error(`Release archive must contain only a regular file.`);if(s!==t||i)throw Error(`Release archive must contain exactly ${t}.`);i=n.slice(u,d),r=u+Math.ceil(l/512)*512}if(!i)throw Error(`Release archive does not contain ${t}.`);return i}function zn(e){let t=e.indexOf(0);return new TextDecoder().decode(t===-1?e:e.subarray(0,t))}function Bn(e){let t=zn(e).trim();if(!/^[0-7]+$/u.test(t))throw Error(`Release archive contains an invalid tar size.`);let n=Number.parseInt(t,8);if(!Number.isSafeInteger(n)||n<0)throw Error(`Release archive contains an unsafe tar size.`);return n}async function Vn(e,t,n,r,a=Wn(t),o){let s=o?.networkPort,c=s&&o?await Un(e,{...o,networkPort:s}):await Hn(e);if(c.kind===`failure`)return c.result;let l=c.binary;Z(o);let u=Zn(c.binary);if(u!==Qn(n))return $(`checksum`,`Checksum mismatch for ${e}. Expected ${Qn(n)}, got ${u}.`);if(o?.archiveEntryName)try{l=me.from(Rn(l,o.archiveEntryName))}catch(t){return $(`unknown`,`Failed to extract the expected binary from ${e}.`,t)}let d=await oe(x(b(t),`.quantex-upgrade-`)),f=x(d,re(t)),p=`${t}.bak`,m=!1,h=!1;try{Z(o);let e=await Gn(t);if(await le(f,l),Z(o),C.platform===`win32`){let e=Kn(f,t,p,d,r,a);return h=e.success,e}await ie(f,e),Z(o),await E(p,{force:!0}),await T(t,p),m=!0,await T(f,t);let n=await Xn(t,r,o);return n.success?(m=!1,await E(p,{force:!0}),{success:!0}):(await Yn(p,t),m=!1,n)}catch(e){if(m){try{await Yn(p,t)}catch{}m=!1}if(e instanceof i)throw e;return $(Jn(e),`Failed to replace the current Quantex binary.`,e)}finally{(C.platform!==`win32`||!h)&&await E(d,{recursive:!0,force:!0})}}function Z(e){if(e?.signal.aborted)throw new i({kind:`cancelled`,reason:e.signal.reason instanceof Error?e.signal.reason.message:String(e.signal.reason??``)})}async function Hn(e){let t;try{t=await fetch(e)}catch(t){return{kind:`failure`,result:$(`network`,`Failed to download ${e}.`,t)}}return t.ok?{binary:me.from(await t.arrayBuffer()),kind:`success`}:{kind:`failure`,result:$(`network`,`Failed to download ${e}: HTTP ${t.status}.`)}}async function Un(e,t){let n=await t.networkPort.request({signal:t.signal,timeoutMs:t.timeoutMs,url:e});if(n.kind===`failure`){if(n.error.kind===`cancelled`)throw new i({kind:`cancelled`,reason:n.error.message});if(n.error.kind===`timed-out`)throw new i({kind:`timed-out`,timeoutMs:t.timeoutMs??0});return{kind:`failure`,result:$(`network`,`Failed to download ${e}.`,n.error)}}return n.value.status<200||n.value.status>=300?{kind:`failure`,result:$(`network`,`Failed to download ${e}: HTTP ${n.value.status}.`)}:{binary:me.from(n.value.body),kind:`success`}}function Wn(e){if(C.platform!==`win32`)return;let t=S.basename(e).toLowerCase();if(t===`qtx.exe`)return S.join(S.dirname(e),`quantex.exe`);if(t===`quantex.exe`)return S.join(S.dirname(e),`qtx.exe`)}async function Gn(e){try{return(await ce(e)).mode&511}catch{return 493}}function Kn(e,t,r,i,a,o){try{return n([`powershell.exe`,`-NoProfile`,`-NonInteractive`,`-ExecutionPolicy`,`Bypass`,`-WindowStyle`,`Hidden`,`-Command`,qn(e,t,r,i,C.pid,a,o)],{stdio:[`ignore`,`ignore`,`ignore`],windowsHide:!0}).unref(),{success:!0}}catch(e){return $(`locked`,`Failed to schedule Windows binary replacement.`,e)}}function qn(e,t,n,r,i,a,o){let s=Q(e),c=Q(t),l=Q(n),u=Q(r),d=Q(a??``),f=Q(o??``);return[`$ErrorActionPreference = 'Stop'`,`$pidToWait = ${i}`,`$tempPath = '${s}'`,`$targetPath = '${c}'`,`$backupPath = '${l}'`,`$tempDir = '${u}'`,`$expectedVersion = '${d}'`,`$peerPath = '${f}'`,`while (Get-Process -Id $pidToWait -ErrorAction SilentlyContinue) { Start-Sleep -Milliseconds 200 }`,`$backupReady = $false`,`for ($attempt = 0; $attempt -lt 50; $attempt++) {`,` try {`,` if (Test-Path -LiteralPath $backupPath) { Remove-Item -LiteralPath $backupPath -Force -ErrorAction SilentlyContinue }`,` Move-Item -LiteralPath $targetPath -Destination $backupPath -Force -ErrorAction Stop`,` $backupReady = $true`,` break`,` }`,` catch {`,` Start-Sleep -Milliseconds 200`,` }`,`}`,`if (-not $backupReady) {`,` Remove-Item -LiteralPath $tempDir -Force -Recurse -ErrorAction SilentlyContinue`,` exit 1`,`}`,`try {`,` Move-Item -LiteralPath $tempPath -Destination $targetPath -Force`,`}`,`catch {`,` if (Test-Path -LiteralPath $backupPath) {`,` Move-Item -LiteralPath $backupPath -Destination $targetPath -Force -ErrorAction SilentlyContinue`,` }`,` Remove-Item -LiteralPath $tempDir -Force -Recurse -ErrorAction SilentlyContinue`,` exit 1`,`}`,`if ($expectedVersion -ne '') {`,` $output = & $targetPath --version 2>$null`,` if ($LASTEXITCODE -ne 0 -or ($output -notmatch [regex]::Escape($expectedVersion))) {`,` Remove-Item -LiteralPath $targetPath -Force -ErrorAction SilentlyContinue`,` Move-Item -LiteralPath $backupPath -Destination $targetPath -Force`,` Remove-Item -LiteralPath $tempDir -Force -Recurse -ErrorAction SilentlyContinue`,` exit 1`,` }`,`}`,`if ($peerPath -ne '') {`,` Copy-Item -LiteralPath $targetPath -Destination $peerPath -Force`,`}`,`Remove-Item -LiteralPath $backupPath -Force -ErrorAction SilentlyContinue`,`Remove-Item -LiteralPath $tempDir -Force -Recurse -ErrorAction SilentlyContinue`].join(`; `)}function Q(e){return e.replaceAll(`'`,`''`)}function $(e,t,n){return{error:{detail:n,kind:e,message:t},success:!1}}function Jn(e){let t=typeof e==`object`&&e&&`code`in e?String(e.code):``;return t===`EACCES`||t===`EPERM`?`permission`:t===`EBUSY`?`locked`:`unknown`}async function Yn(e,t){await E(t,{force:!0}),await T(e,t)}async function Xn(e,t,a){if(!t)return{success:!0};try{if(a?.processPort){let n=await a.processPort.run({argv:[e,`--version`],signal:a.signal,stdio:[`ignore`,`pipe`,`ignore`],timeoutMs:a.timeoutMs});if(n.kind===`failure`){if(n.error.kind===`cancelled`)throw new i({kind:`cancelled`,reason:n.error.message});if(n.error.kind===`timed-out`)throw new i({kind:`timed-out`,timeoutMs:a.timeoutMs??0});return $(`verify`,`Failed to execute the upgraded Quantex binary for verification.`,n.error)}let r=n.value.stdout?new TextDecoder().decode(n.value.stdout):``;return n.value.exitCode===0?r.includes(t)?{success:!0}:$(`verify`,`The upgraded Quantex binary reported an unexpected version during verification.`):$(`verify`,`The upgraded Quantex binary exited with code ${n.value.exitCode} during verification.`)}let{exitCode:o,stdout:s}=await r(n([e,`--version`],{stdio:[`ignore`,`pipe`,`ignore`]}));return o===0?s.includes(t)?{success:!0}:$(`verify`,`The upgraded Quantex binary reported an unexpected version during verification.`):$(`verify`,`The upgraded Quantex binary exited with code ${o} during verification.`)}catch(e){if(e instanceof i)throw e;return $(`verify`,`Failed to execute the upgraded Quantex binary for verification.`,e)}}function Zn(e){return de(`sha256`).update(e).digest(`hex`)}function Qn(e){return e.trim().toLowerCase()}const $n={source:`binary`,canHandle:e=>er(e)===`binary`,getRecoveryHint:(e,t)=>{let n=t?.error?.detail&&typeof t.error.detail==`object`&&`downloadUrl`in t.error.detail?String(t.error.detail.downloadUrl):ct(e.executablePath);if(n)return t?.error?.kind===`locked`?`close other qtx processes and retry, or download and replace the binary from ${n}`:t?.error?.kind===`permission`?`check write permission for the current binary path, or download and replace the binary from ${n}`:t?.error?.kind===`network`?`check network access and retry, or download and replace the binary from ${n}`:`download and replace the binary from ${n}`},async upgrade(e,t){let n=e.target.binaryAsset;if(!n)return{error:e.target.resolutionError??{kind:`unsupported`,message:`No release artifact is available for the current platform and architecture.`},installSource:e.facts.installSource,success:!1};let r=Wn(e.facts.executablePath),i=Y(n.name);if(!i)return{error:{kind:`unsupported`,message:`The resolved release artifact is not a compressed standalone binary archive.`},installSource:e.facts.installSource,success:!1};let a=await Vn(n.downloadUrl,e.facts.executablePath,n.checksum,e.target.targetVersion??`latest`,r,t?{archiveEntryName:i,networkPort:t.network,processPort:t.process,signal:t.signal,timeoutMs:t.timeoutMs}:{archiveEntryName:i,signal:new AbortController().signal});return{...!a.success&&a.error?{...a,error:{...a.error,detail:{...typeof a.error.detail==`object`&&a.error.detail?a.error.detail:{},downloadUrl:n.downloadUrl}}}:a,installSource:e.facts.installSource,newVersion:a.success?e.target.targetVersion:void 0}}};function er(e){return`facts`in e?e.facts.installSource:e.installSource}async function tr(e,t){return t.process?(await rr(e,t,{forwardPipedOutput:!0,stdio:t.stdio}))?.exitCode===0:!1}async function nr(e,t,n){if(!await tr(e,n))return!1;let r=await rr([`bun`,`pm`,`-g`,`untrusted`],n,{forwardPipedOutput:!1,stdio:[`ignore`,`pipe`,`pipe`]});return!r||r.exitCode!==0?!1:a(r.stdout?new TextDecoder().decode(r.stdout):``).has(t)?tr([`bun`,`pm`,`-g`,`trust`,t],n):!0}async function rr(e,t,n){if(!t.process)return;let r=await t.process.run({argv:e,forwardPipedOutput:n.forwardPipedOutput,signal:t.signal,stdio:n.stdio,timeoutMs:t.timeoutMs});if(r.kind===`success`)return r.value;if(r.error.kind===`cancelled`)throw new i({kind:`cancelled`,reason:r.error.message});if(r.error.kind===`timed-out`)throw new i({kind:`timed-out`,timeoutMs:t.timeoutMs??0})}const ir={source:`bun`,canHandle:e=>ar(e)===`bun`,getRecoveryHint:e=>`bun add -g ${z}@${e.updateChannel===`beta`?`beta`:`latest`}`,async upgrade(e,t){let n=e.target.packageTag??(e.facts.updateChannel===`beta`?`beta`:`latest`),r=t?.process?await nr([`bun`,`add`,`-g`,...e.target.managedRegistry?[`--registry`,e.target.managedRegistry]:[],`${z}@${n}`],z,t):await o(z,n,e.target.managedRegistry);return{error:r?void 0:{kind:`unknown`,message:`Failed to update ${z} through Bun.`},installSource:e.facts.installSource,newVersion:r?e.target.targetVersion:void 0,success:r}}};function ar(e){return`facts`in e?e.facts.installSource:e.installSource}const or={source:`npm`,canHandle:e=>sr(e)===`npm`,getRecoveryHint:e=>`npm install -g ${z}@${e.updateChannel===`beta`?`beta`:`latest`}`,async upgrade(e,t){let n=e.target.packageTag??(e.facts.updateChannel===`beta`?`beta`:`latest`),r=t?.process?await tr([`npm`,`install`,`-g`,`${z}@${n}`,...e.target.managedRegistry?[`--registry`,e.target.managedRegistry]:[]],t):await s(z,n,e.target.managedRegistry);return{error:r?void 0:{kind:`unknown`,message:`Failed to update ${z} through npm.`},installSource:e.facts.installSource,newVersion:r?e.target.targetVersion:void 0,success:r}}};function sr(e){return`facts`in e?e.facts.installSource:e.installSource}const cr={source:`source`,canHandle:e=>{let t=`facts`in e?e.facts.installSource:e.installSource;return t===`source`||t===`unknown`},getRecoveryHint:()=>void 0,async upgrade(e){return{error:{kind:`unsupported`,message:`Install source "${e.facts.installSource}" does not support auto-update.`},installSource:e.facts.installSource,success:!1}}},lr=[ir,or,$n,cr];function ur(e){return lr.find(t=>t.canHandle(e))??cr}function dr(e,t,n=`stable`){return ur({canAutoUpdate:e===`binary`||e===`bun`||e===`npm`,currentVersion:``,executablePath:t,installSource:e,packageRoot:``,updateChannel:n})}function fr(e,t,n=`stable`,r){return r?.error?.kind===`locked`?`another qtx upgrade is already running; wait for it to finish and retry`:dr(e,t,n).getRecoveryHint({canAutoUpdate:e===`binary`||e===`bun`||e===`npm`,currentVersion:``,executablePath:t,installSource:e,packageRoot:``,updateChannel:n},r)}function pr(e,t){return t?.error?.kind===`locked`?`another qtx upgrade is already running; wait for it to finish and retry`:ur(e).getRecoveryHint(e,t)}async function mr(e){return Cn(await J({updateChannel:e?.updateChannel}))}async function hr(e){let t=await Vt({updateChannel:e?.updateChannel});return Cn(await J({context:e?.context,facts:t}))}async function gr(e,t={}){let n=await yr(e),r=t.lockPort?await t.lockPort.acquire({resource:`self upgrade`,scope:[`self-upgrade`],signal:t.signal??new AbortController().signal,timeoutMs:t.timeoutMs}):await _r();if(r.kind===`failure`){if(r.error.kind===`cancelled`)throw new i({kind:`cancelled`});if(r.error.kind===`timed-out`)throw new i({kind:`timed-out`,timeoutMs:t.timeoutMs??0});return{error:{kind:r.error.kind===`conflict`?`locked`:`unknown`,message:r.error.message},installSource:n.facts.installSource,success:!1}}let a;try{let e=t.networkPort!==void 0||t.processPort!==void 0,r=t.signal??new AbortController().signal;a=await wn(n,await ur(n).upgrade(n,e?{network:t.networkPort,process:t.processPort,signal:r,stdio:t.stdio,timeoutMs:t.timeoutMs}:void 0),t.processPort?{process:t.processPort,signal:r,timeoutMs:t.timeoutMs}:void 0)}catch(e){let t=await r.value.release();throw t.kind===`failure`?Error(`Self-upgrade failed and its lock could not be released: ${t.error.message}`,{cause:e}):e}let o=await r.value.release();if(o.kind===`failure`)throw Error(o.error.message);return a}async function _r(){let e=await tn();return e?{kind:`success`,value:{async release(){return await e(),{kind:`success`,value:void 0}}}}:{error:{kind:`conflict`,message:`Another qtx upgrade is already running.`},kind:`failure`}}function vr(e,t=C.execPath){return fr(e,t)}async function yr(e){return e?`facts`in e?e:e.installSource===`binary`?J({facts:{canAutoUpdate:e.canAutoUpdate,currentVersion:e.currentVersion,executablePath:e.executablePath,installSource:e.installSource,packageRoot:e.packageRoot,updateChannel:e.updateChannel}}):Tn(e):J()}function br(e){return wr({...e,error:null,ok:!0})}function xr(e){return wr({...e,ok:!1})}function Sr(e,t,n={}){let r=y();return r.cancelled&&!n.force||$e(Qe(e.action),r.outputMode,e,t,e=>console.log(e),e=>Er(e)),e}function Cr(e,t={}){let n=y();if(!(n.cancelled&&!t.force))return et(Qe(e.action),n.outputMode,e,e=>Er(e))}function wr(e){let t=y();return{action:e.action,data:e.data,error:e.error??null,exitCode:e.exitCode,meta:{fetchedAt:t.freshness?.fetchedAt,mode:t.outputMode,runId:t.runId,schemaVersion:`1`,source:t.freshness?.source,staleAfter:t.freshness?.staleAfter,timestamp:new Date().toISOString(),version:Xt()},ok:e.ok,target:e.target,warnings:e.warnings??[]}}function Tr(e){let t=y();return{action:e.action,data:e.data,meta:{fetchedAt:t.freshness?.fetchedAt,mode:`ndjson`,runId:t.runId,schemaVersion:`1`,source:t.freshness?.source,staleAfter:t.freshness?.staleAfter,timestamp:new Date().toISOString(),version:Xt()},target:e.target,type:e.type}}function Er(e){let t=Tr(e);return Dr(t),t}function Dr(e){console.log(JSON.stringify(e))}export{Ie as $,Et as A,Dt as B,Jt as C,B as D,W as E,St as F,We as G,ot as H,_t as I,qe as J,Ge as K,xt as L,Ct as M,V as N,vt as O,Tt as P,Ne as Q,wt as R,Wt as S,Vt as T,ct as U,kt as V,z as W,Fe as X,Je as Y,je as Z,Ln as _,vr as a,vn as b,gr as c,In as d,ke as et,Mn as f,Fn as g,Nn as h,Sr as i,gt as j,yt as k,fr as l,X as m,br as n,mr as o,Pn as p,Ke as q,Cr as r,hr as s,xr as t,Me as tt,pr as u,Cn as v,Xt as w,nn as x,J as y,bt as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./executable-search-paths-Do0aoA1z.mjs";import{i as n,n as r,t as i}from"./schema-BBnWVY6R.mjs";import{r as a}from"./provider-binding-DV5J36pp.mjs";import{t as o}from"./agent-observation-CwtWTGGR.mjs";import{n as s,r as c,t as l}from"./provider-observation-registry-BaeYlsr4.mjs";import{constants as u}from"node:fs";import{isAbsolute as d,join as f,resolve as p}from"node:path";import m from"node:process";import{access as h,readFile as g,realpath as _}from"node:fs/promises";import{homedir as v}from"node:os";const y=[{binaryName:`amp`,displayName:`Amp`,homepage:`https://ampcode.com/`,name:`amp`,packages:{npm:`@sourcegraph/amp`},platforms:{linux:[{type:`bun`},{type:`npm`}],macos:[{type:`bun`},{type:`npm`}],windows:[{type:`bun`},{type:`npm`}]},versionProbe:{command:[`amp`,`version`]}},{binaryName:`agy`,displayName:`Antigravity CLI`,homepage:`https://antigravity.google/product/antigravity-cli`,lookupAliases:[`agy`,`antigravity-cli`],name:`antigravity`,platforms:{linux:[{command:`curl -fsSL https://antigravity.google/cli/install.sh | bash`,type:`script`}],macos:[{command:`curl -fsSL https://antigravity.google/cli/install.sh | bash`,type:`script`}],windows:[{command:`irm https://antigravity.google/cli/install.ps1 | iex`,type:`script`}]},versionProbe:{command:[`agy`,`--version`]}},{binaryName:`auggie`,displayName:`Auggie CLI`,homepage:`https://docs.augmentcode.com/cli/overview`,name:`auggie`,packages:{npm:`@augmentcode/auggie`},platforms:{linux:[{type:`bun`},{type:`npm`}],macos:[{type:`bun`},{type:`npm`}]},versionProbe:{command:[`auggie`,`--version`]}},{binaryName:`autohand`,displayName:`Autohand Code CLI`,homepage:`https://autohand.ai/cli/`,lookupAliases:[`autohand-cli`],name:`autohand`,packages:{npm:`autohand-cli`},platforms:{linux:[{command:`curl -fsSL https://autohand.ai/install.sh | bash`,type:`script`}],macos:[{command:`curl -fsSL https://autohand.ai/install.sh | bash`,type:`script`}],windows:[{command:`iwr -useb https://autohand.ai/install.ps1 | iex`,type:`script`}]},versionProbe:{command:[`autohand`,`--version`]}},{binaryName:`claude`,displayName:`Claude Code`,homepage:`https://code.claude.com/docs`,name:`claude`,packages:{npm:`@anthropic-ai/claude-code`},platforms:{linux:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://claude.ai/install.sh | bash`,type:`script`},{packageName:`claude-code`,packageTargetKind:`cask`,type:`brew`}],macos:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://claude.ai/install.sh | bash`,type:`script`},{packageName:`claude-code`,packageTargetKind:`cask`,type:`brew`}],windows:[{type:`bun`},{type:`npm`},{command:`irm https://claude.ai/install.ps1 | iex`,type:`script`},{packageName:`Anthropic.ClaudeCode`,packageTargetKind:`id`,type:`winget`}]}},{binaryName:`codebuddy`,displayName:`CodeBuddy Code`,homepage:`https://www.codebuddy.cn/docs/cli/installation`,lookupAliases:[`codebuddy-code`],name:`codebuddy`,packages:{npm:`@tencent-ai/codebuddy-code`},platforms:{linux:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://www.codebuddy.cn/cli/install.sh | bash`,type:`script`},{packageName:`Tencent-CodeBuddy/tap/codebuddy-code`,type:`brew`}],macos:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://www.codebuddy.cn/cli/install.sh | bash`,type:`script`},{packageName:`Tencent-CodeBuddy/tap/codebuddy-code`,type:`brew`}],windows:[{type:`bun`},{type:`npm`},{command:`irm https://www.codebuddy.cn/cli/install.ps1 | iex`,type:`script`}]},versionProbe:{command:[`codebuddy`,`--version`]}},{binaryName:`codewhale`,displayName:`CodeWhale`,homepage:`https://github.com/Hmbown/CodeWhale`,name:`codewhale`,packages:{npm:`codewhale`,cargo:`codewhale-cli`},platforms:{linux:[{type:`npm`},{packageInstallArgs:[`--locked`],type:`cargo`}],macos:[{type:`npm`},{packageInstallArgs:[`--locked`],type:`cargo`}],windows:[{type:`npm`},{packageInstallArgs:[`--locked`],type:`cargo`}]},versionProbe:{command:[`codewhale`,`--version`]}},{binaryName:`codex`,displayName:`Codex CLI`,homepage:`https://developers.openai.com/codex/cli`,name:`codex`,packages:{npm:`@openai/codex`,mise:`npm:@openai/codex`},platforms:{linux:[{type:`bun`},{type:`npm`},{type:`mise`},{packageName:`codex`,type:`brew`}],macos:[{type:`bun`},{type:`npm`},{type:`mise`},{packageName:`codex`,type:`brew`}],windows:[{type:`bun`},{type:`npm`},{type:`mise`}]}},{binaryName:`command-code`,displayName:`Command Code`,homepage:`https://commandcode.ai/docs/quickstart`,lookupAliases:[`command-code`,`cmd`,`cmdc`],name:`commandcode`,packages:{npm:`command-code`},platforms:{linux:[{type:`npm`}],macos:[{type:`npm`}],windows:[{type:`npm`}]},versionProbe:{command:[`command-code`,`--version`]}},{binaryName:`copilot`,displayName:`GitHub Copilot CLI`,homepage:`https://github.com/features/copilot/cli`,name:`copilot`,packages:{npm:`@github/copilot`},platforms:{linux:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://gh.io/copilot-install | bash`,type:`script`},{packageName:`copilot-cli`,type:`brew`}],macos:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://gh.io/copilot-install | bash`,type:`script`},{packageName:`copilot-cli`,type:`brew`}],windows:[{packageName:`GitHub.Copilot`,packageTargetKind:`id`,type:`winget`}]}},{binaryName:`crush`,displayName:`Crush`,homepage:`https://github.com/charmbracelet/crush`,name:`crush`,packages:{npm:`@charmland/crush`},platforms:{linux:[{type:`bun`},{type:`npm`},{packageName:`charmbracelet/tap/crush`,type:`brew`}],macos:[{type:`bun`},{type:`npm`},{packageName:`charmbracelet/tap/crush`,type:`brew`}],windows:[{type:`bun`},{type:`npm`},{packageName:`charmbracelet.crush`,packageTargetKind:`id`,type:`winget`}]},versionProbe:{command:[`crush`,`--version`]}},{binaryName:`agent`,displayName:`Cursor CLI`,homepage:`https://cursor.com/docs/cli`,lookupAliases:[`agent`],name:`cursor`,platforms:{linux:[{command:`curl https://cursor.com/install -fsS | bash`,type:`script`}],macos:[{command:`curl https://cursor.com/install -fsS | bash`,type:`script`}],windows:[{command:`irm 'https://cursor.com/install?win32=true' | iex`,type:`script`}]},versionProbe:{command:[`agent`,`--version`]}},{binaryName:`deepcode`,displayName:`Deep Code CLI`,homepage:`https://github.com/lessweb/deepcode-cli`,name:`deepcode`,packages:{npm:`@vegamo/deepcode-cli`},platforms:{linux:[{type:`npm`}],macos:[{type:`npm`}],windows:[{type:`npm`}]},versionProbe:{command:[`deepcode`,`--version`]}},{binaryName:`devin`,displayName:`Devin for Terminal`,homepage:`https://cli.devin.ai/`,name:`devin`,platforms:{linux:[{command:`curl -fsSL https://cli.devin.ai/install.sh | bash`,type:`script`}],macos:[{command:`curl -fsSL https://cli.devin.ai/install.sh | bash`,type:`script`}],windows:[{command:`irm https://static.devin.ai/cli/setup.ps1 | iex`,type:`script`}]},versionProbe:{command:[`devin`,`version`]}},{binaryName:`droid`,displayName:`Droid`,homepage:`https://docs.factory.ai/cli/getting-started/overview`,name:`droid`,packages:{npm:`droid`},platforms:{linux:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://app.factory.ai/cli | sh`,type:`script`},{packageName:`droid`,packageTargetKind:`cask`,type:`brew`}],macos:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://app.factory.ai/cli | sh`,type:`script`},{packageName:`droid`,packageTargetKind:`cask`,type:`brew`}],windows:[{type:`bun`},{type:`npm`},{command:`irm https://app.factory.ai/cli/windows | iex`,type:`script`}]}},{binaryName:`forge`,displayName:`ForgeCode`,homepage:`https://forgecode.dev`,lookupAliases:[`forge`],name:`forgecode`,packages:{npm:`forgecode`},platforms:{linux:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://forgecode.dev/cli | sh`,type:`script`}],macos:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://forgecode.dev/cli | sh`,type:`script`}],windows:[{type:`bun`},{type:`npm`},{command:`irm https://forgecode.dev/cli | iex`,type:`script`}]},versionProbe:{command:[`forge`,`--version`]}},{binaryName:`gemini`,displayName:`Gemini CLI`,homepage:`https://google-gemini.github.io/gemini-cli/docs/`,name:`gemini`,packages:{npm:`@google/gemini-cli`},platforms:{linux:[{type:`bun`},{type:`npm`},{packageName:`gemini-cli`,type:`brew`}],macos:[{type:`bun`},{type:`npm`},{packageName:`gemini-cli`,type:`brew`}],windows:[{type:`bun`},{type:`npm`}]}},{binaryName:`genie`,displayName:`Genie`,homepage:`https://jsr.io/@nicorio/genie`,name:`genie`,packages:{deno:`jsr:@nicorio/genie`},platforms:{linux:[{packageInstallArgs:[`-A`],type:`deno`}],macos:[{packageInstallArgs:[`-A`],type:`deno`}],windows:[{packageInstallArgs:[`-A`],type:`deno`}]}},{binaryName:`goose`,displayName:`Goose`,homepage:`https://github.com/aaif-goose/goose`,name:`goose`,platforms:{linux:[{command:`curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash`,type:`script`},{packageName:`block-goose-cli`,type:`brew`}],macos:[{command:`curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash`,type:`script`},{packageName:`block-goose-cli`,type:`brew`}],windows:[{command:`curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash`,type:`script`},{command:`Invoke-WebRequest -Uri "https://raw.githubusercontent.com/aaif-goose/goose/main/download_cli.ps1" -OutFile "download_cli.ps1"; ./download_cli.ps1`,type:`script`}]},versionProbe:{command:[`goose`,`--version`]}},{binaryName:`grok`,displayName:`Grok Build`,homepage:`https://docs.x.ai/build/overview`,lookupAliases:[`grok-build`],name:`grok`,platforms:{linux:[{command:`curl -fsSL https://x.ai/cli/install.sh | bash`,type:`script`}],macos:[{command:`curl -fsSL https://x.ai/cli/install.sh | bash`,type:`script`}],windows:[{command:`irm https://x.ai/cli/install.ps1 | iex`,type:`script`}]},versionProbe:{command:[`grok`,`--version`]}},{binaryName:`hermes`,displayName:`Hermes Agent`,homepage:`https://github.com/NousResearch/hermes-agent`,lookupAliases:[`hermes-agent`],name:`hermes`,platforms:{linux:[{command:`curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash`,type:`script`}],macos:[{command:`curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash`,type:`script`}],windows:[{command:`iex (irm https://hermes-agent.nousresearch.com/install.ps1)`,type:`script`}]},versionProbe:{command:[`hermes`,`--version`]}},{binaryName:`jcode`,displayName:`JCode`,homepage:`https://github.com/1jehuang/jcode`,name:`jcode`,platforms:{linux:[{command:`curl -fsSL https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/install.sh | bash`,type:`script`}],macos:[{packageName:`1jehuang/jcode/jcode`,type:`brew`},{command:`curl -fsSL https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/install.sh | bash`,type:`script`}],windows:[{command:`irm https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/install.ps1 | iex`,type:`script`}]},versionProbe:{command:[`jcode`,`--version`]}},{binaryName:`junie`,displayName:`Junie CLI`,homepage:`https://junie.jetbrains.com/docs/junie-cli.html`,name:`junie`,packages:{npm:`@jetbrains/junie`},platforms:{linux:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://junie.jetbrains.com/install.sh | bash`,type:`script`},{packageName:`jetbrains-junie/junie/junie`,type:`brew`}],macos:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://junie.jetbrains.com/install.sh | bash`,type:`script`},{packageName:`jetbrains-junie/junie/junie`,type:`brew`}],windows:[{type:`bun`},{type:`npm`},{command:`iex (irm 'https://junie.jetbrains.com/install.ps1')`,type:`script`}]},versionProbe:{command:[`junie`,`--version`]}},{binaryName:`kilo`,displayName:`Kilo CLI`,homepage:`https://kilo.ai/docs/cli`,name:`kilo`,packages:{npm:`@kilocode/cli`},platforms:{linux:[{type:`bun`},{type:`npm`}],macos:[{type:`bun`},{type:`npm`}],windows:[{type:`bun`},{type:`npm`}]}},{binaryName:`kimi`,displayName:`Kimi Code`,homepage:`https://moonshotai.github.io/kimi-code/`,lookupAliases:[`kimi-code`,`kimi-cli`],name:`kimi`,packages:{npm:`@moonshot-ai/kimi-code`},platforms:{linux:[{command:`curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash`,type:`script`},{type:`npm`}],macos:[{command:`curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash`,type:`script`},{type:`npm`}],windows:[{command:`irm https://code.kimi.com/kimi-code/install.ps1 | iex`,type:`script`},{type:`npm`}]},versionProbe:{command:[`kimi`,`--version`]}},{binaryName:`kiro-cli`,displayName:`Kiro CLI`,homepage:`https://kiro.dev/cli/`,lookupAliases:[`kiro-cli`],name:`kiro`,platforms:{linux:[{command:`curl -fsSL https://cli.kiro.dev/install | bash`,type:`script`}],macos:[{command:`curl -fsSL https://cli.kiro.dev/install | bash`,type:`script`}],windows:[{command:`irm 'https://cli.kiro.dev/install.ps1' | iex`,type:`script`}]},versionProbe:{command:[`kiro-cli`,`--version`]}},{binaryName:`mimo`,displayName:`MiMoCode`,homepage:`https://github.com/XiaomiMiMo/MiMo-Code`,lookupAliases:[`mimocode`,`mimo-code`],name:`mimo`,packages:{npm:`@mimo-ai/cli`},platforms:{linux:[{command:`curl -fsSL https://mimo.xiaomi.com/install | bash`,type:`script`},{type:`npm`}],macos:[{command:`curl -fsSL https://mimo.xiaomi.com/install | bash`,type:`script`},{type:`npm`}],windows:[{type:`npm`}]},versionProbe:{command:[`mimo`,`--version`]}},{binaryName:`omp`,displayName:`oh-my-pi (OMP)`,homepage:`https://github.com/can1357/oh-my-pi`,name:`omp`,packages:{npm:`@oh-my-pi/pi-coding-agent`},platforms:{linux:[{type:`bun`},{command:`curl -fsSL https://omp.sh/install | sh`,type:`script`}],macos:[{type:`bun`},{command:`curl -fsSL https://omp.sh/install | sh`,type:`script`}],windows:[{type:`bun`},{command:`irm https://omp.sh/install.ps1 | iex`,type:`script`}]},versionProbe:{command:[`omp`,`--version`]}},{binaryName:`openclaw`,displayName:`OpenClaw`,homepage:`https://github.com/openclaw/openclaw`,name:`openclaw`,packages:{npm:`openclaw`},platforms:{linux:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://openclaw.ai/install.sh | bash`,type:`script`}],macos:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://openclaw.ai/install.sh | bash`,type:`script`}],windows:[{type:`bun`},{type:`npm`},{command:`iwr -useb https://openclaw.ai/install.ps1 | iex`,type:`script`}]},versionProbe:{command:[`openclaw`,`--version`]}},{binaryName:`opencode`,displayName:`OpenCode`,homepage:`https://opencode.ai`,name:`opencode`,packages:{npm:`opencode-ai`},platforms:{linux:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://opencode.ai/install | bash`,type:`script`},{packageName:`anomalyco/tap/opencode`,type:`brew`}],macos:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://opencode.ai/install | bash`,type:`script`},{packageName:`anomalyco/tap/opencode`,type:`brew`}],windows:[{type:`bun`},{type:`npm`}]}},{binaryName:`openhands`,displayName:`OpenHands CLI`,homepage:`https://docs.openhands.dev/openhands/usage/cli/installation`,name:`openhands`,packages:{uv:`openhands`},platforms:{linux:[{packageInstallArgs:[`--python`,`3.12`],type:`uv`},{command:`curl -fsSL https://install.openhands.dev/install.sh | sh`,type:`script`}],macos:[{packageInstallArgs:[`--python`,`3.12`],type:`uv`},{command:`curl -fsSL https://install.openhands.dev/install.sh | sh`,type:`script`}]},versionProbe:{command:[`openhands`,`--version`]}},{binaryName:`pi`,displayName:`Pi`,homepage:`https://pi.dev`,name:`pi`,packages:{npm:`@mariozechner/pi-coding-agent`},platforms:{linux:[{type:`bun`},{type:`npm`}],macos:[{type:`bun`},{type:`npm`}],windows:[{type:`bun`},{type:`npm`}]}},{binaryName:`qodercli`,displayName:`Qoder CLI`,homepage:`https://docs.qoder.com/cli/quick-start`,lookupAliases:[`qodercli`],name:`qoder`,packages:{npm:`@qoder-ai/qodercli`},platforms:{linux:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://qoder.com/install | bash`,type:`script`},{packageName:`qoderai/qoder/qodercli`,packageTargetKind:`cask`,type:`brew`}],macos:[{type:`bun`},{type:`npm`},{command:`curl -fsSL https://qoder.com/install | bash`,type:`script`},{packageName:`qoderai/qoder/qodercli`,packageTargetKind:`cask`,type:`brew`}],windows:[{type:`bun`},{type:`npm`}]}},{binaryName:`qwen`,displayName:`Qwen Code`,homepage:`https://qwenlm.github.io/qwen-code-docs/`,name:`qwen`,packages:{npm:`@qwen-code/qwen-code`},platforms:{linux:[{command:`curl -fsSL https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen.sh | bash`,type:`script`},{type:`bun`},{type:`npm`},{packageName:`qwen-code`,type:`brew`}],macos:[{command:`curl -fsSL https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen.sh | bash`,type:`script`},{type:`bun`},{type:`npm`},{packageName:`qwen-code`,type:`brew`}],windows:[{command:`curl -fsSL -o %TEMP%\\install-qwen.bat https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen.bat && %TEMP%\\install-qwen.bat`,type:`script`},{type:`bun`},{type:`npm`}]}},{binaryName:`reasonix`,displayName:`Reasonix`,homepage:`https://github.com/esengine/DeepSeek-Reasonix`,lookupAliases:[`deepseek-reasonix`],name:`reasonix`,packages:{npm:`reasonix`},platforms:{linux:[{type:`npm`}],macos:[{type:`npm`}],windows:[{type:`npm`}]},versionProbe:{command:[`reasonix`,`--version`]}},{binaryName:`vibe`,displayName:`Mistral Vibe`,homepage:`https://docs.mistral.ai/mistral-vibe/terminal/install`,lookupAliases:[`mistral-vibe`],name:`vibe`,packages:{uv:`mistral-vibe`,pip:`mistral-vibe`},platforms:{linux:[{command:`curl -LsSf https://mistral.ai/vibe/install.sh | bash`,type:`script`},{packageName:`mistral-vibe`,type:`uv`},{packageName:`mistral-vibe`,type:`pip`}],macos:[{command:`curl -LsSf https://mistral.ai/vibe/install.sh | bash`,type:`script`},{packageName:`mistral-vibe`,type:`uv`},{packageName:`mistral-vibe`,type:`pip`}],windows:[{packageName:`mistral-vibe`,type:`uv`},{packageName:`mistral-vibe`,type:`pip`}]},versionProbe:{command:[`vibe`,`--version`]}},{binaryName:`vtcode`,displayName:`VTCode`,homepage:`https://github.com/vinhnx/vtcode`,name:`vtcode`,packages:{cargo:`vtcode`},platforms:{linux:[{command:`curl -fsSL https://raw.githubusercontent.com/vinhnx/vtcode/main/scripts/install.sh | bash`,type:`script`},{type:`cargo`},{packageName:`vtcode`,type:`brew`}],macos:[{command:`curl -fsSL https://raw.githubusercontent.com/vinhnx/vtcode/main/scripts/install.sh | bash`,type:`script`},{type:`cargo`},{packageName:`vtcode`,type:`brew`}],windows:[{type:`cargo`},{command:`irm https://raw.githubusercontent.com/vinhnx/vtcode/main/scripts/install.ps1 | iex`,type:`script`}]},versionProbe:{command:[`vtcode`,`--version`]}}];function b(){return y}function x(e){let t=y.find(t=>t.name===e||t.lookupAliases?.includes(e));if(t)return t;let n=S(e);return y.find(e=>S(e.displayName)===n)}function S(e){return e.trim().toLowerCase()}function C(e){return e===void 0?f(m.env.HOME||m.env.USERPROFILE||v(),`.quantex`):d(e)?e:p(e)}function w(e={}){let t=e.providerRegistry??l();return{async inspectAgent(e,n,r){let i=x(e);if(i)return E(i,n,t,r?.observationBinding)},async listAgents(e){return z(e.signal),b()}}}async function T(e){let t=f(e,`state.json`),a;try{a=await g(t,`utf8`)}catch(e){if(R(e))return r();throw e}let o;try{o=JSON.parse(a)}catch(e){throw new i(`state.json contains invalid JSON: ${V(e)}`)}return n(o).document}async function E(e,t,n,r){let[i,s]=await Promise.all([T(t.configDir),M(e,t.configDir,t.signal)]),c={registerCleanup:t.registerCleanup,signal:t.signal,timeoutMs:t.timeoutMs},l=await o(e,{clock:()=>new Date().toISOString(),inspectExecutable:()=>D(e,c),...r?{observationBinding:r}:{},platform:F(),preferredCatalogBinding:s[0]?a(e,s[0]):void 0,providerRegistry:n,readInstalledState:async e=>i.installedAgents[e],readReceipt:async e=>i.lifecycleReceipts[e],resolveExecutablePath:e=>j(e,t.signal),signal:t.signal,timeoutMs:t.timeoutMs,observeProvider:async e=>{let t=n.get(e.providerId);return t?t.observe({context:c,target:e.target}):{kind:`unavailable`,reason:`Provider ${e.providerId} is not registered.`,retryable:!1}}}),u=await j(l.pathExecutable.path,t.signal);return{agent:e,...l,methods:s,...u?{resolvedBinaryPath:u}:{}}}async function D(e,t){let n=await O(e.binaryName,t);if(!n)return{present:!1};let r=await j(n,t.signal)??n,i=await A(e,r,t);return{path:r,present:!0,...i?{version:i}:{}}}async function O(e,t){try{let n=await c([m.platform===`win32`?`where`:`which`,e],t);if(n.exitCode===0){let e=n.stdout.trim().split(/\r?\n/u)[0];if(e)return e}}catch(e){if(e instanceof s)throw e}return k(e)}async function k(n){let r={env:m.env,homeDir:v(),platform:m.platform},i=t(n,r);for(let t of e(r))for(let e of i){let n=f(t,e);try{return await h(n,u.X_OK),n}catch{}}}async function A(e,t,n){let r=e.versionProbe?.command??[e.binaryName,`--version`],i=r[0]===e.binaryName?[t,...r.slice(1)]:r;try{let t=await c(i,n);return t.exitCode===0?P(t.stdout,e.versionProbe?.parser)??P(t.stderr,e.versionProbe?.parser):void 0}catch(e){if(e instanceof s)throw e;return}}async function j(e,t){if(e){z(t);try{let n=await _(e);return z(t),n}catch{if(t.aborted)throw new s(B(t));return e}}}async function M(e,t,n){let r=e.platforms[F()]??[],i=await N(t,n);return[...r.filter(e=>e.type===i),...r.filter(e=>e.type!==i)]}async function N(e,t){z(t);try{let n=await g(f(e,`config.json`),`utf8`);z(t);let r=JSON.parse(n);if(L(r)&&I(r.defaultPackageManager))return r.defaultPackageManager}catch(e){if(t.aborted)throw new s(B(t));if(e instanceof s)throw e}return`bun`}function P(e,t){if(typeof t==`function`)return t(e);let n=e.trim().split(/\r?\n/u)[0];if(n)return n.match(/v?(\d+\.\d+\.\d+(?:-[a-z0-9.]+)?)/iu)?.[1]??n}function F(){return m.platform===`win32`?`windows`:m.platform===`darwin`?`macos`:`linux`}function I(e){return e===`bun`||e===`mise`||e===`npm`}function L(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function R(e){return!e||typeof e!=`object`||!(`code`in e)?!1:e.code===`ENOENT`||e.code===`ENOTDIR`}function z(e){if(e.aborted)throw new s(B(e))}function B(e){if(e.reason!==void 0)return e.reason instanceof Error?e.reason.message:String(e.reason)}function V(e){return e instanceof Error&&e.message?e.message:String(e)}export{C as n,w as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./resolve-CPLHsCmS.mjs";export{e as resolveCommand};
|
package/dist/schema-DNGyzkMA.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./schema-di33Hdvd.mjs";export{e as schemaCommand};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./detect-DL6buUVi.mjs";import{l as t}from"./providers-AFXil8bm.mjs";import{n}from"./agents-BX-dLvjD.mjs";import{n as r}from"./lifecycle-observations-Be3ngmis.mjs";async function i(i){let a=n(i);if(!a||!await e(a.binaryName))return;let o=await r(i);if(!(!o?.pathExecutable.present||o.installedState||o.receipt))return t(o.methods,o.resolvedBinaryPath??o.pathExecutable.path)?void 0:o.agent}export{i as t};
|