cerebrex 0.3.0 → 0.3.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/dist/index.js +3 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -685,13 +685,13 @@ Make sure you have wrangler configured: bunx wrangler login
|
|
|
685
685
|
`)),process.exit(1);let Y=kD("Creating package tarball...").start();try{let q=`${X.replace(/\//g,"-")}-${J}.tgz`,H=KD.join(Vy.tmpdir(),q),{execa:B}=await Promise.resolve().then(() => (R4(),E4));await B("tar",["-czf",H,"-C",KD.dirname(F),KD.basename(F)]),Y.text="Uploading to CerebreX Registry...";let G=$D.readFileSync(H),V=await new A5({authToken:Q}).publish(G,{name:X,version:J,description:Z.description||"",tags:[D.tag]});$D.unlinkSync(H),Y.succeed(L.green("Package published!")),console.log(L.cyan(`
|
|
686
686
|
View your package at:`)),console.log(L.bold(` ${V.url}
|
|
687
687
|
`))}catch(q){Y.fail(L.red("Publish failed"));let H=q.message;if(console.error(L.dim(` ${H}`)),/fetch|ECONNREFUSED|ENOTFOUND/.test(H))console.error(L.dim(`
|
|
688
|
-
|
|
688
|
+
Registry: https://cerebrex-registry.therealjosefdmcclammey.workers.dev
|
|
689
689
|
`));process.exit(1)}}),Ey=new VD("install").description("Install an MCP server from the CerebreX Registry").argument("<package>","Package to install (e.g. @arealcoolco/stripe-mcp)").option("-v, --ver <version>","Version to install","latest").option("-d, --dir <path>","Installation directory","./cerebrex-servers").action(async(D,F)=>{console.log(L.blue(`
|
|
690
690
|
\uD83D\uDCE5 Installing ${L.bold(D)} from CerebreX Registry
|
|
691
691
|
`));let $=lQ(),Z=new A5({authToken:$??void 0}),X=KD.resolve(process.cwd(),F.dir),J=kD(`Fetching ${D}@${F.ver}...`).start();try{let Q=await Z.download(D,F.ver);J.text="Extracting package...",$D.mkdirSync(X,{recursive:!0});let Y=KD.join(Vy.tmpdir(),`${D.replace(/\//g,"-")}.tgz`);$D.writeFileSync(Y,Q);let{execa:q}=await Promise.resolve().then(() => (R4(),E4));await q("tar",["-xzf",Y,"-C",X]),$D.unlinkSync(Y);let H=KD.join(X,KD.basename(D));J.succeed(L.green(`Installed ${D}@${F.ver}`)),console.log(L.dim(`
|
|
692
692
|
Installed to: ${H}`)),console.log(L.dim(` Deploy it: cerebrex deploy --dir ${H}
|
|
693
693
|
`))}catch(Q){J.fail(L.red("Install failed"));let Y=Q.message;if(console.error(L.dim(` ${Y}`)),/fetch|ECONNREFUSED|ENOTFOUND/.test(Y))console.error(L.dim(`
|
|
694
|
-
|
|
694
|
+
Registry: https://cerebrex-registry.therealjosefdmcclammey.workers.dev
|
|
695
695
|
`));process.exit(1)}});mD();import Py from"path";import YKD from"os";import P4 from"fs";import Ry from"crypto";var qKD=Py.join(YKD.homedir(),".cerebrex","memex");class X8{dir;constructor(D=qKD){this.dir=D,P4.mkdirSync(this.dir,{recursive:!0})}set(D,F,$={}){this.validateKey(D);let Z=$.namespace??"default",X=this.load(Z),J=X[D],Q={id:J?.id??Ry.randomUUID(),namespace:Z,type:$.type??"episodic",key:D,value:F,checksum:this.checksum(F),createdAt:J?.createdAt??new Date().toISOString(),expiresAt:$.ttlSeconds!=null?new Date(Date.now()+$.ttlSeconds*1000).toISOString():void 0,metadata:$.metadata};return X[D]=Q,this.save(Z,X),Q}get(D,F="default"){let $=this.load(F),Z=$[D];if(!Z)return null;if(Z.expiresAt&&new Date(Z.expiresAt)<new Date)return delete $[D],this.save(F,$),null;if(Z.checksum!==this.checksum(Z.value))throw new Z3(D);return Z}list(D,F){let $=D?[D]:this.namespaces(),Z=new Date,X=[];for(let J of $){let Q=this.load(J);for(let Y of Object.values(Q)){if(Y.expiresAt&&new Date(Y.expiresAt)<Z)continue;if(F&&Y.type!==F)continue;X.push(Y)}}return X.sort((J,Q)=>J.createdAt.localeCompare(Q.createdAt))}delete(D,F="default"){let $=this.load(F);if(!(D in $))return!1;return delete $[D],this.save(F,$),!0}clear(D){if(D){let $=this.load(D),Z=Object.keys($).length;return this.save(D,{}),Z}let F=0;for(let $ of this.namespaces()){let Z=this.load($);F+=Object.keys(Z).length,this.save($,{})}return F}namespaces(){if(!P4.existsSync(this.dir))return[];return P4.readdirSync(this.dir).filter((D)=>D.endsWith(".json")).map((D)=>D.replace(".json",""))}load(D){let F=this.storePath(D);if(!P4.existsSync(F))return{};try{return JSON.parse(P4.readFileSync(F,"utf-8"))}catch{return{}}}save(D,F){P4.writeFileSync(this.storePath(D),JSON.stringify(F,null,2))}storePath(D){let F=D.replace(/[^a-zA-Z0-9_\-]/g,"_");if(!F)throw new $3("Namespace name is invalid");return Py.join(this.dir,`${F}.json`)}checksum(D){return Ry.createHash("sha256").update(JSON.stringify(D)).digest("hex")}validateKey(D){if(!D||D.trim().length===0)throw new $3("Key cannot be empty");if(D.length>512)throw new $3("Key exceeds maximum length of 512 characters")}}var k2=["episodic","semantic","working"];function HKD(D){try{return JSON.parse(D)}catch{return D}}function BKD(D){let F=JSON.stringify(D);return F.length>80?F.slice(0,77)+"…":F}var J8=new VD("memex").description("Persistent agent memory — store and retrieve key-value data across sessions");J8.command("set <key> <value>").description("Store a value in agent memory").option("-n, --namespace <ns>","Memory namespace","default").option("-t, --type <type>",`Memory type: ${k2.join(" | ")}`,"episodic").option("--ttl <seconds>","Time-to-live in seconds (entry auto-expires after this)").action((D,F,$)=>{if(!k2.includes($.type))console.error(L.red(`
|
|
696
696
|
Invalid type '${$.type}'. Choose: ${k2.join(", ")}
|
|
697
697
|
`)),process.exit(1);let Z=$.ttl?parseInt($.ttl,10):void 0;if(Z!==void 0&&(isNaN(Z)||Z<=0))console.error(L.red(`
|
|
@@ -755,7 +755,7 @@ Make sure you have wrangler configured: bunx wrangler login
|
|
|
755
755
|
`)),process.exit(1);let $=kD(`Sending task '${D.type}' to agent ${D.agent}...`).start();try{let Z=await fetch(`${D.hiveUrl}/tasks`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${D.token}`},body:JSON.stringify({agent_id:D.agent,type:D.type,payload:F})});if(!Z.ok){let J=await Z.json();throw Error(J.error||`HTTP ${Z.status}`)}let{task:X}=await Z.json();$.succeed(L.green("Task queued")),console.log(L.dim(`
|
|
756
756
|
Task ID: ${X.id}`)),console.log(L.dim(` Status: ${X.status}
|
|
757
757
|
`))}catch(Z){$.fail(L.red("Failed to send task")),console.error(L.dim(` ${Z.message}
|
|
758
|
-
`)),process.exit(1)}});var jy="0.3.
|
|
758
|
+
`)),process.exit(1)}});var jy="0.3.1",gD=new VD,VKD=`
|
|
759
759
|
${L.cyan(" ██████╗███████╗██████╗ ███████╗██████╗ ██████╗ ███████╗██╗ ██╗")}
|
|
760
760
|
${L.cyan(" ██╔════╝██╔════╝██╔══██╗██╔════╝██╔══██╗██╔══██╗██╔════╝╚██╗██╔╝")}
|
|
761
761
|
${L.cyan(" ██║ █████╗ ██████╔╝█████╗ ██████╔╝██████╔╝█████╗ ╚███╔╝ ")}
|