@zenku/cli-node 0.1.19 → 0.1.20
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/package.json +1 -1
- package/zenku-bundle.cjs +1 -1
package/package.json
CHANGED
package/zenku-bundle.cjs
CHANGED
|
@@ -236,4 +236,4 @@ ${r.result.output}
|
|
|
236
236
|
`),process.stdout.write(`
|
|
237
237
|
Contents:
|
|
238
238
|
`);for(let o of i)process.stdout.write(` ${o}
|
|
239
|
-
`)}})}),e.command("install").description("Install a skill, agent, or persona into the current project").argument("<name>","skill, agent, or persona name").option("--force","overwrite existing installation").option("--global","install to home directory (~/) instead of project root").option(...sa).action(async(t,n)=>{let i=ia(n.target),{item:r,zipBytes:o,version:a}=await C("Fetching kit catalog...",async()=>{let c=await On(),l=ra(c,t);l||$('"%s" not found in agent-kit (run `zenku agent-kit list` to see available items)',t);let d=await na(l.name,l.type);return{item:l,zipBytes:d,version:c.version}}),s=oa(n.global),u=i.map(c=>aa(s,r.name,r.type,c));if(!n.force){let c=u.filter(l=>(0,W.existsSync)(l));c.length>0&&$('"%s" is already installed at %s (use --force to overwrite)',t,c.join(", "))}for(let c of u)r.type==="skill"?((0,W.existsSync)(c)&&(0,W.rmSync)(c,{recursive:!0}),dD(o,c)):pD(o,c);_({json:()=>({installed:r.name,type:r.type,version:a,targets:i,paths:u}),human:()=>{for(let c of u)O("Installed %s (%s) -> %s",r.name,r.type,c)}})}),e.command("uninstall").description("Remove an installed skill, agent, or persona").argument("<name>","skill, agent, or persona name").option("--global","uninstall from home directory (~/) instead of project root").option(...sa).action(async(t,n)=>{try{let i=ia(n.target),r=oa(n.global),o=[];for(let a of i){let s=aa(r,t,"skill",a),u=aa(r,t,"agent",a),c=(0,W.existsSync)((0,ue.join)(s,"SKILL.md")),l=(0,W.existsSync)(u);c&&((0,W.rmSync)(s,{recursive:!0}),o.push({target:a,type:"skill"})),l&&((0,W.rmSync)(u),o.push({target:a,type:"agent"}))}o.length===0&&$('"%s" is not installed (run `zenku agent-kit installed` to see installed items)',t),_({json:()=>({uninstalled:t,type:o[0].type,targets:[...new Set(o.map(a=>a.target))]}),human:()=>O("Uninstalled %s",t)})}catch(i){$("%s",Z(i))}}),e.command("installed").description("List installed skills and agents").option("--skills","show skills only").option("--agents","show agents only").option("--global","list installed items in home directory (~/) instead of project root").option(...sa).action(async t=>{try{let n=ia(t.target),i=oa(t.global),r=lD(i,n);if(t.skills&&(r=r.filter(o=>o.type==="skill")),t.agents&&(r=r.filter(o=>o.type==="agent")),r.length===0){_({json:()=>({items:[]}),human:()=>Q("No skills or agents installed.")});return}_({json:()=>({items:r}),human:()=>{ee(["NAME","TYPE","TARGETS"],r.map(o=>[o.name,o.type,o.targets.join(", ")]))}})}catch(n){$("%s",Z(n))}}),e.command("update").description("Update installed items to the latest kit version").argument("[name]","skill, agent, or persona name (omit with --all)").option("--all","update all installed items").option("--global","update items in home directory (~/) instead of project root").option(...sa).action(async(t,n)=>{!t&&!n.all&&$("provide <name> or use --all"),t&&n.all&&$("use either <name> or --all, not both");let i=ia(n.target),r=oa(n.global),o=await C("Checking for updates...",()=>On()),a;if(n.all){a=new Map;let u=lD(r,i),c=new Set(o.items.map(l=>l.name));for(let l of u)c.has(l.name)&&a.set(l.name,l.targets)}else a=new Map([[t,i]]);if(a.size===0){Q("No kit items installed to update.");return}let s=[];for(let[u,c]of a){let l=ra(o,u);if(!l){s.push({name:u,action:"not-found"});continue}let d=await C(`Updating ${u}...`,()=>na(l.name,l.type));for(let p of c){let m=aa(r,u,l.type,p);l.type==="skill"?((0,W.existsSync)(m)&&(0,W.rmSync)(m,{recursive:!0}),dD(d,m)):pD(d,m)}s.push({name:u,action:"updated",targets:c})}_({json:()=>({version:o.version,results:s}),human:()=>{for(let u of s)u.action==="updated"?O("%s: updated to v%s",u.name,o.version):Q("%s: not found in agent-kit (may have been removed)",u.name)}})}),e}function mD(e){e.addCommand(kx())}var ua=require("node:child_process"),de=require("node:fs"),gD=require("node:os"),kt=require("node:path");function hD(){return!0}var vD="https://registry.npmjs.org",Cx=15e3,DD="@zenku";function Ix(){let{platform:e,arch:t}=process,n=["darwin-arm64","darwin-x64","linux-arm64","linux-x64"],i=`${e}-${t}`;return n.includes(i)||$("Unsupported platform: %s",i),`cli-${i}`}async function Sx(e){let t=`${vD}/${DD}/${e}/latest`,n=new AbortController,i=setTimeout(()=>n.abort(),Cx);try{let r=await fetch(t,{signal:n.signal});if(!r.ok)throw new Error(`HTTP ${r.status}`);return(await r.json()).version}catch(r){throw r instanceof DOMException&&r.name==="AbortError"?new Error("request timed out"):r}finally{clearTimeout(i)}}function Ex(e,t){let n=`${e}-${t}.tgz`,i=`${vD}/${DD}/${e}/-/${n}`,r=(0,de.mkdtempSync)((0,kt.join)((0,gD.tmpdir)(),"zenku-upgrade-"));try{(0,ua.execSync)(`curl -fsSL "${i}" -o "${(0,kt.join)(r,n)}"`,{stdio:"pipe"}),(0,ua.execSync)(`tar xzf "${(0,kt.join)(r,n)}" -C "${r}"`,{stdio:"pipe"});let o=(0,kt.join)(r,"package","zenku"),a=process.execPath,s=(0,kt.dirname)(a),u=(0,kt.join)(s,`.zenku-upgrade-${process.pid}`),c=!1;try{(0,de.accessSync)(s,de.constants.W_OK)}catch{c=!0}if(c)(0,ua.execSync)(`sudo install -m 755 "${o}" "${a}"`,{stdio:"inherit"});else{(0,de.copyFileSync)(o,u),(0,de.chmodSync)(u,493);try{(0,de.renameSync)(u,a)}catch{try{(0,de.unlinkSync)(u)}catch{}throw new Error(`failed to replace binary at ${a}`)}}}finally{(0,de.rmSync)(r,{recursive:!0,force:!0})}}function yD(e){e.addCommand(new T("upgrade").description("Upgrade zenku to the latest version").action(async()=>{if(hD()){_({json:()=>({mode:"bundle",message:"Self-upgrade not available in bundle mode. Use: npm update -g @zenku/cli-node"}),human:()=>{Q("Self-upgrade is not available in bundle mode."),Q("Update via npm: npm update -g @zenku/cli-node")}});return}let t=Xp(),n=Ix(),i=await C("Checking for updates...",()=>Sx(n));if(t===i){_({json:()=>({previous:t,latest:i,upgraded:!1}),human:()=>Q("Already up to date (v%s).",t)});return}Q("v%s \u2192 v%s",t,i),await C(`Downloading v${i}...`,async()=>{Ex(n,i)}),_({json:()=>({previous:t,latest:i,upgraded:!0}),human:()=>Q("Upgraded zenku to v%s.",i)})}))}var Fx={};function Xp(){return"0.1.
|
|
239
|
+
`)}})}),e.command("install").description("Install a skill, agent, or persona into the current project").argument("<name>","skill, agent, or persona name").option("--force","overwrite existing installation").option("--global","install to home directory (~/) instead of project root").option(...sa).action(async(t,n)=>{let i=ia(n.target),{item:r,zipBytes:o,version:a}=await C("Fetching kit catalog...",async()=>{let c=await On(),l=ra(c,t);l||$('"%s" not found in agent-kit (run `zenku agent-kit list` to see available items)',t);let d=await na(l.name,l.type);return{item:l,zipBytes:d,version:c.version}}),s=oa(n.global),u=i.map(c=>aa(s,r.name,r.type,c));if(!n.force){let c=u.filter(l=>(0,W.existsSync)(l));c.length>0&&$('"%s" is already installed at %s (use --force to overwrite)',t,c.join(", "))}for(let c of u)r.type==="skill"?((0,W.existsSync)(c)&&(0,W.rmSync)(c,{recursive:!0}),dD(o,c)):pD(o,c);_({json:()=>({installed:r.name,type:r.type,version:a,targets:i,paths:u}),human:()=>{for(let c of u)O("Installed %s (%s) -> %s",r.name,r.type,c)}})}),e.command("uninstall").description("Remove an installed skill, agent, or persona").argument("<name>","skill, agent, or persona name").option("--global","uninstall from home directory (~/) instead of project root").option(...sa).action(async(t,n)=>{try{let i=ia(n.target),r=oa(n.global),o=[];for(let a of i){let s=aa(r,t,"skill",a),u=aa(r,t,"agent",a),c=(0,W.existsSync)((0,ue.join)(s,"SKILL.md")),l=(0,W.existsSync)(u);c&&((0,W.rmSync)(s,{recursive:!0}),o.push({target:a,type:"skill"})),l&&((0,W.rmSync)(u),o.push({target:a,type:"agent"}))}o.length===0&&$('"%s" is not installed (run `zenku agent-kit installed` to see installed items)',t),_({json:()=>({uninstalled:t,type:o[0].type,targets:[...new Set(o.map(a=>a.target))]}),human:()=>O("Uninstalled %s",t)})}catch(i){$("%s",Z(i))}}),e.command("installed").description("List installed skills and agents").option("--skills","show skills only").option("--agents","show agents only").option("--global","list installed items in home directory (~/) instead of project root").option(...sa).action(async t=>{try{let n=ia(t.target),i=oa(t.global),r=lD(i,n);if(t.skills&&(r=r.filter(o=>o.type==="skill")),t.agents&&(r=r.filter(o=>o.type==="agent")),r.length===0){_({json:()=>({items:[]}),human:()=>Q("No skills or agents installed.")});return}_({json:()=>({items:r}),human:()=>{ee(["NAME","TYPE","TARGETS"],r.map(o=>[o.name,o.type,o.targets.join(", ")]))}})}catch(n){$("%s",Z(n))}}),e.command("update").description("Update installed items to the latest kit version").argument("[name]","skill, agent, or persona name (omit with --all)").option("--all","update all installed items").option("--global","update items in home directory (~/) instead of project root").option(...sa).action(async(t,n)=>{!t&&!n.all&&$("provide <name> or use --all"),t&&n.all&&$("use either <name> or --all, not both");let i=ia(n.target),r=oa(n.global),o=await C("Checking for updates...",()=>On()),a;if(n.all){a=new Map;let u=lD(r,i),c=new Set(o.items.map(l=>l.name));for(let l of u)c.has(l.name)&&a.set(l.name,l.targets)}else a=new Map([[t,i]]);if(a.size===0){Q("No kit items installed to update.");return}let s=[];for(let[u,c]of a){let l=ra(o,u);if(!l){s.push({name:u,action:"not-found"});continue}let d=await C(`Updating ${u}...`,()=>na(l.name,l.type));for(let p of c){let m=aa(r,u,l.type,p);l.type==="skill"?((0,W.existsSync)(m)&&(0,W.rmSync)(m,{recursive:!0}),dD(d,m)):pD(d,m)}s.push({name:u,action:"updated",targets:c})}_({json:()=>({version:o.version,results:s}),human:()=>{for(let u of s)u.action==="updated"?O("%s: updated to v%s",u.name,o.version):Q("%s: not found in agent-kit (may have been removed)",u.name)}})}),e}function mD(e){e.addCommand(kx())}var ua=require("node:child_process"),de=require("node:fs"),gD=require("node:os"),kt=require("node:path");function hD(){return!0}var vD="https://registry.npmjs.org",Cx=15e3,DD="@zenku";function Ix(){let{platform:e,arch:t}=process,n=["darwin-arm64","darwin-x64","linux-arm64","linux-x64"],i=`${e}-${t}`;return n.includes(i)||$("Unsupported platform: %s",i),`cli-${i}`}async function Sx(e){let t=`${vD}/${DD}/${e}/latest`,n=new AbortController,i=setTimeout(()=>n.abort(),Cx);try{let r=await fetch(t,{signal:n.signal});if(!r.ok)throw new Error(`HTTP ${r.status}`);return(await r.json()).version}catch(r){throw r instanceof DOMException&&r.name==="AbortError"?new Error("request timed out"):r}finally{clearTimeout(i)}}function Ex(e,t){let n=`${e}-${t}.tgz`,i=`${vD}/${DD}/${e}/-/${n}`,r=(0,de.mkdtempSync)((0,kt.join)((0,gD.tmpdir)(),"zenku-upgrade-"));try{(0,ua.execSync)(`curl -fsSL "${i}" -o "${(0,kt.join)(r,n)}"`,{stdio:"pipe"}),(0,ua.execSync)(`tar xzf "${(0,kt.join)(r,n)}" -C "${r}"`,{stdio:"pipe"});let o=(0,kt.join)(r,"package","zenku"),a=process.execPath,s=(0,kt.dirname)(a),u=(0,kt.join)(s,`.zenku-upgrade-${process.pid}`),c=!1;try{(0,de.accessSync)(s,de.constants.W_OK)}catch{c=!0}if(c)(0,ua.execSync)(`sudo install -m 755 "${o}" "${a}"`,{stdio:"inherit"});else{(0,de.copyFileSync)(o,u),(0,de.chmodSync)(u,493);try{(0,de.renameSync)(u,a)}catch{try{(0,de.unlinkSync)(u)}catch{}throw new Error(`failed to replace binary at ${a}`)}}}finally{(0,de.rmSync)(r,{recursive:!0,force:!0})}}function yD(e){e.addCommand(new T("upgrade").description("Upgrade zenku to the latest version").action(async()=>{if(hD()){_({json:()=>({mode:"bundle",message:"Self-upgrade not available in bundle mode. Use: npm update -g @zenku/cli-node"}),human:()=>{Q("Self-upgrade is not available in bundle mode."),Q("Update via npm: npm update -g @zenku/cli-node")}});return}let t=Xp(),n=Ix(),i=await C("Checking for updates...",()=>Sx(n));if(t===i){_({json:()=>({previous:t,latest:i,upgraded:!1}),human:()=>Q("Already up to date (v%s).",t)});return}Q("v%s \u2192 v%s",t,i),await C(`Downloading v${i}...`,async()=>{Ex(n,i)}),_({json:()=>({previous:t,latest:i,upgraded:!0}),human:()=>Q("Upgraded zenku to v%s.",i)})}))}var Fx={};function Xp(){return"0.1.20"}function _D(){let e=new T;return e.name("zenku").description("Zenku CLI \u2014 manage PocketBase services from the terminal.").version(Xp()).option("--profile <name>","config profile to use").option("--tenant <id>","override tenant ID for this command").option("--account <id>","override account ID for this command").option("--json","output as JSON").option("--interactive","force interactive mode").option("--non-interactive","force non-interactive mode").hook("preAction",t=>{let n=t.optsWithGlobals();Av(n.profile??""),bv(n.tenant??""),$v(n.account??""),vv(!!n.json),n.interactive&&n.nonInteractive&&$("--interactive and --non-interactive cannot be used together"),n.interactive?Td("interactive"):n.nonInteractive&&Td("non-interactive")}),e.commandsGroup("Core Commands:"),Gv(e),Kv(e),Yv(e),mD(e),e.commandsGroup("Platform Commands:"),Vv(e),qv(e),e.commandsGroup("Auth & Config:"),Nv(e),Bv(e),Rv(e),Lv(e),e.commandsGroup("Other:"),yD(e),e.addHelpCommand(new T("help").argument("[command]")),e}var Ox=_D();Ox.parse();
|