@vpxa/aikit 0.1.282 → 0.1.283

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.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import{existsSync as e,mkdirSync as t,readFileSync as n,renameSync as r,rmSync as i,writeFileSync as a}from"node:fs";import{dirname as o,join as s,resolve as c}from"node:path";import{fileURLToPath as l}from"node:url";import{createLogger as u}from"../../core/dist/index.js";import{homedir as d}from"node:os";import{execFile as f,execSync as p}from"node:child_process";const m=`@vpxa/aikit`,h=`https://registry.npmjs.org/${m}/latest`,g=u(`server`),_=s(d(),`.aikit`),v=s(_,`current-version.json`),y=s(_,`versions`);function b(){let e=c(o(l(import.meta.url)),`..`,`..`,`..`,`package.json`);try{return JSON.parse(n(e,`utf-8`)).version??`0.0.0`}catch{return`0.0.0`}}function x(e,t){let n=e.split(`.`).map(Number),r=t.split(`.`).map(Number);for(let e=0;e<3;e++){let t=(n[e]??0)-(r[e]??0);if(t!==0)return t>0?1:-1}return 0}function S(e,t){let n=e.split(`.`).map(Number),r=t.split(`.`).map(Number);for(let e=0;e<3;e++){if((n[e]??0)>(r[e]??0))return!0;if((n[e]??0)<(r[e]??0))return!1}return!1}async function C(n){let o=s(_,`staging`,n),c=s(y,n);try{e(o)&&i(o,{recursive:!0,force:!0}),t(o,{recursive:!0}),p(`tar -xzf "${p(`npm pack ${m}@${n}`,{cwd:o,encoding:`utf-8`,timeout:6e4,windowsHide:!0}).trim()}"`,{cwd:o,encoding:`utf-8`,timeout:3e4,windowsHide:!0});let l=s(o,`package`);p(`npm install --production`,{cwd:l,encoding:`utf-8`,timeout:12e4,windowsHide:!0});let u=s(l,`packages`,`server`,`dist`,`bin.js`);if(!e(u))throw Error(`Server entry not found at ${u}`);e(c)&&i(c,{recursive:!0,force:!0}),r(l,c);let d=`${v}.tmp`;a(d,JSON.stringify({version:n,installedAt:new Date().toISOString()},null,2)),r(d,v),g.info(`Installed version ${n}`,{targetDir:c})}finally{e(o)&&i(o,{recursive:!0,force:!0})}}async function w(){try{let e=n(v,`utf-8`),{version:t}=JSON.parse(e),r=await fetch(h,{signal:AbortSignal.timeout(1e4)});if(!r.ok)return;let i=(await r.json()).version;if(!i||i===t||!S(i,t))return;g.info(`New version available: ${i}. Installing...`),await C(i),g.info(`Updated to v${i}. Restart to use.`)}catch(e){g.error(`Background update check failed: ${e instanceof Error?e.message:String(e)}`)}}function T(){if(e(v)){w();return}let t=b();fetch(h,{signal:AbortSignal.timeout(5e3)}).then(e=>{if(e.ok)return e.json()}).then(e=>{if(!e||typeof e!=`object`)return;let n=e.version;n&&x(t,n)<0&&g.warn(`Update available`,{currentVersion:t,latestVersion:n,updateCommand:`aikit upgrade`})}).catch(()=>{})}function E(){try{let t=c(d(),`.copilot`,`.aikit-scaffold.json`);return e(t)?JSON.parse(n(t,`utf-8`)).version??null:null}catch{return null}}function D(){try{let t=c(process.cwd(),`.github`,`.aikit-scaffold.json`);return e(t)?JSON.parse(n(t,`utf-8`)).version??null:null}catch{return null}}let O=`idle`,k=null;function A(){return{state:O,error:k}}function j(){try{let t=b(),n=E(),r=D();if(!(n!=null&&n!==t)&&!(r!=null&&r!==t)||O===`pending`||O===`success`)return;O=`pending`,k=null,g.info(`Scaffold version mismatch — auto-upgrading`,{serverVersion:t,userScaffoldVersion:n,workspaceScaffoldVersion:r});let i=o(l(import.meta.url)),a=[c(i,`..`,`..`,`..`,`bin`,`aikit.mjs`),c(i,`..`,`bin`,`aikit.mjs`),...process.argv[1]?[c(o(process.argv[1]),`aikit.mjs`)]:[]],s=a.find(t=>e(t));if(!s){O=`failed`,k=`aikit CLI binary not found. Tried: ${a.join(`, `)}`,g.warn(`Cannot auto-upgrade: aikit CLI binary not found`,{candidates:a,platform:process.platform});return}f(process.execPath,[s,`upgrade`],{timeout:3e4,windowsHide:!0},(e,n,r)=>{e?(O=`failed`,k=e.message,g.warn(`Auto-upgrade failed`,{error:e.message,stderr:r?.slice(0,500),binPath:s,platform:process.platform})):(O=`success`,k=null,g.info(`Auto-upgrade completed to version ${t}`))}).unref()}catch(e){O=`failed`,k=e instanceof Error?e.message:String(e),g.warn(`Auto-upgrade check failed`,{error:k})}}export{j as autoUpgradeScaffold,T as checkForUpdates,b as getCurrentVersion,A as getUpgradeState};
@@ -0,0 +1 @@
1
+ import{existsSync as e,mkdirSync as t,readFileSync as n,renameSync as r,rmSync as i,writeFileSync as a}from"node:fs";import{dirname as o,join as s,resolve as c}from"node:path";import{fileURLToPath as l}from"node:url";import{createLogger as u}from"../../core/dist/index.js";import{execFile as d,execSync as f}from"node:child_process";import{homedir as p}from"node:os";const m=`@vpxa/aikit`,h=`https://registry.npmjs.org/${m}/latest`,g=u(`server`),_=s(p(),`.aikit`),v=s(_,`current-version.json`),y=s(_,`versions`);function b(){let e=c(o(l(import.meta.url)),`..`,`..`,`..`,`package.json`);try{return JSON.parse(n(e,`utf-8`)).version??`0.0.0`}catch{return`0.0.0`}}function x(e,t){let n=e.split(`.`).map(Number),r=t.split(`.`).map(Number);for(let e=0;e<3;e++){let t=(n[e]??0)-(r[e]??0);if(t!==0)return t>0?1:-1}return 0}function S(e,t){let n=e.split(`.`).map(Number),r=t.split(`.`).map(Number);for(let e=0;e<3;e++){if((n[e]??0)>(r[e]??0))return!0;if((n[e]??0)<(r[e]??0))return!1}return!1}async function C(n){let o=s(_,`staging`,n),c=s(y,n);try{e(o)&&i(o,{recursive:!0,force:!0}),t(o,{recursive:!0}),f(`tar -xzf "${f(`npm pack ${m}@${n}`,{cwd:o,encoding:`utf-8`,timeout:6e4,windowsHide:!0}).trim()}"`,{cwd:o,encoding:`utf-8`,timeout:3e4,windowsHide:!0});let l=s(o,`package`);f(`npm install --production`,{cwd:l,encoding:`utf-8`,timeout:12e4,windowsHide:!0});let u=s(l,`packages`,`server`,`dist`,`bin.js`);if(!e(u))throw Error(`Server entry not found at ${u}`);e(c)&&i(c,{recursive:!0,force:!0}),r(l,c);let d=`${v}.tmp`;a(d,JSON.stringify({version:n,installedAt:new Date().toISOString()},null,2)),r(d,v),g.info(`Installed version ${n}`,{targetDir:c})}finally{e(o)&&i(o,{recursive:!0,force:!0})}}async function w(){try{let e=n(v,`utf-8`),{version:t}=JSON.parse(e),r=await fetch(h,{signal:AbortSignal.timeout(1e4)});if(!r.ok)return;let i=(await r.json()).version;if(!i||i===t||!S(i,t))return;g.info(`New version available: ${i}. Installing...`),await C(i),g.info(`Updated to v${i}. Restart to use.`)}catch(e){g.error(`Background update check failed: ${e instanceof Error?e.message:String(e)}`)}}function T(){if(e(v)){w();return}let t=b();fetch(h,{signal:AbortSignal.timeout(5e3)}).then(e=>{if(e.ok)return e.json()}).then(e=>{if(!e||typeof e!=`object`)return;let n=e.version;n&&x(t,n)<0&&g.warn(`Update available`,{currentVersion:t,latestVersion:n,updateCommand:`aikit upgrade`})}).catch(()=>{})}function E(){try{let t=c(p(),`.copilot`,`.aikit-scaffold.json`);return e(t)?JSON.parse(n(t,`utf-8`)).version??null:null}catch{return null}}function D(){try{let t=c(process.cwd(),`.github`,`.aikit-scaffold.json`);return e(t)?JSON.parse(n(t,`utf-8`)).version??null:null}catch{return null}}let O=`idle`,k=null;function A(){return{state:O,error:k}}function j(){try{let t=b(),n=E(),r=D();if(!(n!=null&&n!==t)&&!(r!=null&&r!==t)||O===`pending`||O===`success`)return;O=`pending`,k=null,g.info(`Scaffold version mismatch — auto-upgrading`,{serverVersion:t,userScaffoldVersion:n,workspaceScaffoldVersion:r});let i=o(l(import.meta.url)),a=[c(i,`..`,`..`,`..`,`bin`,`aikit.mjs`),c(i,`..`,`bin`,`aikit.mjs`),...process.argv[1]?[c(o(process.argv[1]),`aikit.mjs`)]:[]],s=a.find(t=>e(t));if(!s){O=`failed`,k=`aikit CLI binary not found. Tried: ${a.join(`, `)}`,g.warn(`Cannot auto-upgrade: aikit CLI binary not found`,{candidates:a,platform:process.platform});return}d(process.execPath,[s,`upgrade`],{timeout:3e4,windowsHide:!0},(e,n,r)=>{e?(O=`failed`,k=e.message,g.warn(`Auto-upgrade failed`,{error:e.message,stderr:r?.slice(0,500),binPath:s,platform:process.platform})):(O=`success`,k=null,g.info(`Auto-upgrade completed to version ${t}`))}).unref()}catch(e){O=`failed`,k=e instanceof Error?e.message:String(e),g.warn(`Auto-upgrade check failed`,{error:k})}}export{j as autoUpgradeScaffold,T as checkForUpdates,b as getCurrentVersion,A as getUpgradeState};
@@ -3,6 +3,6 @@
3
3
  "command": "node",
4
4
  "args": [
5
5
  "-e",
6
- "const{execSync:x}=require('child_process');const{existsSync:e,renameSync:m}=require('fs');const{join:j}=require('path');const c=j(process.env.LOCALAPPDATA||process.env.HOME||'','npm-cache');const s={stdio:'inherit'};try{x('npx -y @vpxa/aikit@latest serve',s)}catch{try{const d=j(c,'_npx');if(e(d))m(d,j(c,'_npx_'+Date.now()))}catch{};try{x('npm cache verify',{stdio:'ignore',timeout:30000})}catch{};try{x('npx -y @vpxa/aikit@latest serve',s)}catch(e){process.stderr.write('aikit: all recovery attempts failed. Run: npm cache clean --force && npx -y @vpxa/aikit@latest serve');process.exit(1)}}"
6
+ "const{execSync:x}=require('child_process');const{existsSync:e,renameSync:m}=require('fs');const{join:j}=require('path');const c=j(process.env.LOCALAPPDATA||process.env.HOME||'','npm-cache');const s={stdio:'inherit'};try{x('npx -y @vpxa/aikit@latest serve',{...s,timeout:180000})}catch{try{const d=j(c,'_npx');if(e(d))m(d,j(c,'_npx_'+Date.now()))}catch{};try{x('npm cache verify',{stdio:'ignore',timeout:30000})}catch{};try{x('npm cache clean --force',{stdio:'ignore',timeout:30000})}catch{};try{x('npx -y @vpxa/aikit@latest serve',s)}catch(e){process.stderr.write('aikit: all recovery attempts failed. Run: npm cache clean --force && npx -y @vpxa/aikit@latest serve');process.exit(1)}}"
7
7
  ]
8
8
  }
@@ -3,6 +3,6 @@
3
3
  "command": "node",
4
4
  "args": [
5
5
  "-e",
6
- "const{execSync:x}=require('child_process');const{existsSync:e,renameSync:m}=require('fs');const{join:j}=require('path');const c=j(process.env.LOCALAPPDATA||process.env.HOME||'','npm-cache');const s={stdio:'inherit'};try{x('npx -y @vpxa/aikit@latest serve',s)}catch{try{const d=j(c,'_npx');if(e(d))m(d,j(c,'_npx_'+Date.now()))}catch{};try{x('npm cache verify',{stdio:'ignore',timeout:30000})}catch{};try{x('npx -y @vpxa/aikit@latest serve',s)}catch(e){process.stderr.write('aikit: all recovery attempts failed. Run: npm cache clean --force && npx -y @vpxa/aikit@latest serve');process.exit(1)}}"
6
+ "const{execSync:x}=require('child_process');const{existsSync:e,renameSync:m}=require('fs');const{join:j}=require('path');const c=j(process.env.LOCALAPPDATA||process.env.HOME||'','npm-cache');const s={stdio:'inherit'};try{x('npx -y @vpxa/aikit@latest serve',{...s,timeout:180000})}catch{try{const d=j(c,'_npx');if(e(d))m(d,j(c,'_npx_'+Date.now()))}catch{};try{x('npm cache verify',{stdio:'ignore',timeout:30000})}catch{};try{x('npm cache clean --force',{stdio:'ignore',timeout:30000})}catch{};try{x('npx -y @vpxa/aikit@latest serve',s)}catch(e){process.stderr.write('aikit: all recovery attempts failed. Run: npm cache clean --force && npx -y @vpxa/aikit@latest serve');process.exit(1)}}"
7
7
  ]
8
8
  }
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{existsSync as e,readFileSync as t}from"node:fs";import{dirname as n,resolve as r}from"node:path";import{fileURLToPath as i}from"node:url";import{createLogger as a}from"../../core/dist/index.js";import{homedir as o}from"node:os";import{execFile as s}from"node:child_process";const c=a(`server`);function l(){let e=r(n(i(import.meta.url)),`..`,`..`,`..`,`package.json`);try{return JSON.parse(t(e,`utf-8`)).version??`0.0.0`}catch{return`0.0.0`}}function u(e,t){let n=e.split(`.`).map(Number),r=t.split(`.`).map(Number);for(let e=0;e<3;e++){let t=(n[e]??0)-(r[e]??0);if(t!==0)return t>0?1:-1}return 0}function d(){let e=l();fetch(`https://registry.npmjs.org/@vpxa/aikit/latest`,{signal:AbortSignal.timeout(5e3)}).then(e=>{if(e.ok)return e.json()}).then(t=>{if(!t||typeof t!=`object`)return;let n=t.version;n&&u(e,n)<0&&c.warn(`Update available`,{currentVersion:e,latestVersion:n,updateCommand:`aikit upgrade`})}).catch(()=>{})}function f(){try{let n=r(o(),`.copilot`,`.aikit-scaffold.json`);return e(n)?JSON.parse(t(n,`utf-8`)).version??null:null}catch{return null}}function p(){try{let n=r(process.cwd(),`.github`,`.aikit-scaffold.json`);return e(n)?JSON.parse(t(n,`utf-8`)).version??null:null}catch{return null}}let m=`idle`,h=null;function g(){return{state:m,error:h}}function _(){try{let t=l(),a=f(),o=p();if(!(a!=null&&a!==t)&&!(o!=null&&o!==t)||m===`pending`||m===`success`)return;m=`pending`,h=null,c.info(`Scaffold version mismatch — auto-upgrading`,{serverVersion:t,userScaffoldVersion:a,workspaceScaffoldVersion:o});let u=n(i(import.meta.url)),d=[r(u,`..`,`..`,`..`,`bin`,`aikit.mjs`),r(u,`..`,`bin`,`aikit.mjs`),...process.argv[1]?[r(n(process.argv[1]),`aikit.mjs`)]:[]],g=d.find(t=>e(t));if(!g){m=`failed`,h=`aikit CLI binary not found. Tried: ${d.join(`, `)}`,c.warn(`Cannot auto-upgrade: aikit CLI binary not found`,{candidates:d,platform:process.platform});return}s(process.execPath,[g,`upgrade`],{timeout:3e4,windowsHide:!0},(e,n,r)=>{e?(m=`failed`,h=e.message,c.warn(`Auto-upgrade failed`,{error:e.message,stderr:r?.slice(0,500),binPath:g,platform:process.platform})):(m=`success`,h=null,c.info(`Auto-upgrade completed to version ${t}`))}).unref()}catch(e){m=`failed`,h=e instanceof Error?e.message:String(e),c.warn(`Auto-upgrade check failed`,{error:h})}}export{_ as autoUpgradeScaffold,d as checkForUpdates,l as getCurrentVersion,g as getUpgradeState};
@@ -1 +0,0 @@
1
- import{existsSync as e,readFileSync as t}from"node:fs";import{dirname as n,resolve as r}from"node:path";import{fileURLToPath as i}from"node:url";import{createLogger as a}from"../../core/dist/index.js";import{execFile as o}from"node:child_process";import{homedir as s}from"node:os";const c=a(`server`);function l(){let e=r(n(i(import.meta.url)),`..`,`..`,`..`,`package.json`);try{return JSON.parse(t(e,`utf-8`)).version??`0.0.0`}catch{return`0.0.0`}}function u(e,t){let n=e.split(`.`).map(Number),r=t.split(`.`).map(Number);for(let e=0;e<3;e++){let t=(n[e]??0)-(r[e]??0);if(t!==0)return t>0?1:-1}return 0}function d(){let e=l();fetch(`https://registry.npmjs.org/@vpxa/aikit/latest`,{signal:AbortSignal.timeout(5e3)}).then(e=>{if(e.ok)return e.json()}).then(t=>{if(!t||typeof t!=`object`)return;let n=t.version;n&&u(e,n)<0&&c.warn(`Update available`,{currentVersion:e,latestVersion:n,updateCommand:`aikit upgrade`})}).catch(()=>{})}function f(){try{let n=r(s(),`.copilot`,`.aikit-scaffold.json`);return e(n)?JSON.parse(t(n,`utf-8`)).version??null:null}catch{return null}}function p(){try{let n=r(process.cwd(),`.github`,`.aikit-scaffold.json`);return e(n)?JSON.parse(t(n,`utf-8`)).version??null:null}catch{return null}}let m=`idle`,h=null;function g(){return{state:m,error:h}}function _(){try{let t=l(),a=f(),s=p();if(!(a!=null&&a!==t)&&!(s!=null&&s!==t)||m===`pending`||m===`success`)return;m=`pending`,h=null,c.info(`Scaffold version mismatch — auto-upgrading`,{serverVersion:t,userScaffoldVersion:a,workspaceScaffoldVersion:s});let u=n(i(import.meta.url)),d=[r(u,`..`,`..`,`..`,`bin`,`aikit.mjs`),r(u,`..`,`bin`,`aikit.mjs`),...process.argv[1]?[r(n(process.argv[1]),`aikit.mjs`)]:[]],g=d.find(t=>e(t));if(!g){m=`failed`,h=`aikit CLI binary not found. Tried: ${d.join(`, `)}`,c.warn(`Cannot auto-upgrade: aikit CLI binary not found`,{candidates:d,platform:process.platform});return}o(process.execPath,[g,`upgrade`],{timeout:3e4,windowsHide:!0},(e,n,r)=>{e?(m=`failed`,h=e.message,c.warn(`Auto-upgrade failed`,{error:e.message,stderr:r?.slice(0,500),binPath:g,platform:process.platform})):(m=`success`,h=null,c.info(`Auto-upgrade completed to version ${t}`))}).unref()}catch(e){m=`failed`,h=e instanceof Error?e.message:String(e),c.warn(`Auto-upgrade check failed`,{error:h})}}export{_ as autoUpgradeScaffold,d as checkForUpdates,l as getCurrentVersion,g as getUpgradeState};