agentix-cli 0.63.0 → 0.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{agent-D2BHFDUA.js → agent-HUKCS3AK.js} +2 -2
- package/dist/{board-dashboard-SMCZBJKO.js → board-dashboard-S4V4WR2N.js} +382 -213
- package/dist/board-dashboard-S4V4WR2N.js.map +1 -0
- package/dist/{chunk-GUJB53QU.js → chunk-62EJKQFX.js} +2 -2
- package/dist/{chunk-TX3ZOO22.js → chunk-AVDWFQZ5.js} +2 -2
- package/dist/{chunk-KAFO5QZR.js → chunk-C4CDVE2E.js} +28 -28
- package/dist/chunk-C4CDVE2E.js.map +1 -0
- package/dist/chunk-ECBKTFTL.js +20 -0
- package/dist/chunk-ECBKTFTL.js.map +1 -0
- package/dist/chunk-EOKOGQZG.js +131 -0
- package/dist/chunk-EOKOGQZG.js.map +1 -0
- package/dist/{chunk-ZGWW6FZF.js → chunk-HSJRI3NW.js} +184 -184
- package/dist/chunk-HSJRI3NW.js.map +1 -0
- package/dist/{chunk-7LETLAIH.js → chunk-LEFRNHZF.js} +4 -4
- package/dist/{chunk-7LETLAIH.js.map → chunk-LEFRNHZF.js.map} +1 -1
- package/dist/{chunk-JZMKKDT3.js → chunk-OTTAKMGC.js} +54 -54
- package/dist/chunk-OTTAKMGC.js.map +1 -0
- package/dist/{chunk-33YJIUYL.js → chunk-WMDDQVCI.js} +2 -2
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/processes-TGFDGQYY.js +2 -0
- package/dist/{program-NPPLJAQ7.js → program-DZCKFNHD.js} +2 -2
- package/dist/registry-P7IAAFCX.js +2 -0
- package/package.json +1 -1
- package/dist/board-dashboard-SMCZBJKO.js.map +0 -1
- package/dist/chunk-5UYXEO3I.js +0 -131
- package/dist/chunk-5UYXEO3I.js.map +0 -1
- package/dist/chunk-JZMKKDT3.js.map +0 -1
- package/dist/chunk-KAFO5QZR.js.map +0 -1
- package/dist/chunk-PMGPGMBZ.js +0 -19
- package/dist/chunk-PMGPGMBZ.js.map +0 -1
- package/dist/chunk-ZGWW6FZF.js.map +0 -1
- package/dist/processes-NNXSRQSV.js +0 -2
- package/dist/registry-MRMQBYE4.js +0 -2
- /package/dist/{agent-D2BHFDUA.js.map → agent-HUKCS3AK.js.map} +0 -0
- /package/dist/{chunk-GUJB53QU.js.map → chunk-62EJKQFX.js.map} +0 -0
- /package/dist/{chunk-TX3ZOO22.js.map → chunk-AVDWFQZ5.js.map} +0 -0
- /package/dist/{chunk-33YJIUYL.js.map → chunk-WMDDQVCI.js.map} +0 -0
- /package/dist/{processes-NNXSRQSV.js.map → processes-TGFDGQYY.js.map} +0 -0
- /package/dist/{program-NPPLJAQ7.js.map → program-DZCKFNHD.js.map} +0 -0
- /package/dist/{registry-MRMQBYE4.js.map → registry-P7IAAFCX.js.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as ee,d as te,e as ne,f as F,g as C,h as j,i as B}from"./chunk-
|
|
1
|
+
import{c as ee,d as te,e as ne,f as F,g as C,h as j,i as B}from"./chunk-C4CDVE2E.js";import{a as Q,b as Z}from"./chunk-EA7H3EUX.js";import{a as V}from"./chunk-AZBOYKQA.js";import{t as O,v as G,w as _,z as M}from"./chunk-OVF37EXJ.js";import{existsSync as W,readFileSync as ce,writeFileSync as pe,appendFileSync as Ae,mkdirSync as Se}from"fs";import{dirname as Ce,resolve as P}from"path";import{fileURLToPath as Ie}from"url";import{hostname as Ee}from"os";import{spawn as Te}from"child_process";M();import{existsSync as re,readFileSync as ae,writeFileSync as L,copyFileSync as ye}from"fs";import{resolve as ie}from"path";function oe(e,t={}){let n=t.configPath||ie(process.cwd(),"agentx.json");if(!re(n))throw new Error(`agentx.json not found at ${n}`);let a=JSON.parse(ae(n,"utf-8")),r=e(a),i=typeof r=="string"?{summary:r}:r,c=JSON.stringify(a,null,2)+`
|
|
2
2
|
`,l=n+".tmp";L(l,c,"utf-8");try{JSON.parse(ae(l,"utf-8"))}catch(d){throw new Error(`config did not round-trip cleanly: ${d.message}`)}let o;return t.skipBackup||(o=`${n}.bak.${Date.now()}`,ye(n,o)),L(n,c,"utf-8"),t.skipReload||ke().catch(()=>{}),{summary:i.summary,payload:i.payload,backupPath:o}}function se(e,t={}){let n=t.configPath||ie(process.cwd(),"agentx.json");if(re(n)&&!t.overwrite)throw new Error(`agentx.json already exists at ${n}. Pass overwrite=true to replace it.`);return L(n,JSON.stringify(e,null,2)+`
|
|
3
3
|
`,"utf-8"),{file:n}}async function ke(){try{let t=_().dashboard.daemonUrl?.replace(/\/+$/,"")||"http://127.0.0.1:18800";await fetch(`${t}/reload`,{method:"POST"}).catch(()=>null)}catch{}}function le(e,t){let n=e.configExists?e.agentCount===0?"Add your first agent":"Add another agent":"Set up your team",a=`<header class="ax-topbar">
|
|
4
4
|
<div class="ax-topbar__left">
|
|
@@ -737,4 +737,4 @@ tr:hover td { background: var(--bg-hover); }
|
|
|
737
737
|
<h3><a href="${l}/article/${encodeURIComponent(d.path)}">${s(d.meta.title)}</a></h3>
|
|
738
738
|
</div>`;return $(`${t} \xB7 ${n}`,I(r),o)}function U(e,t,n){let a=e.rebuildIndex(),r=J(a.articles.map(c=>({title:c.title,path:c.path,tags:c.tags}))),i='<div class="nav-section">';i+=`<div class="nav-section-title">${s(t)}</div>`,i+=`<a class="nav-item${n?"":" active"}" href="/">Home</a>`,i+='<a class="nav-item" href="/lint">Health check</a>',i+="</div>";for(let[c,l]of r){i+='<div class="nav-section">',i+=`<div class="nav-section-title">${q(c)}</div>`;for(let o of l){let d=o.path===n;i+=`<a class="nav-item${d?" active":""}" href="/article/${encodeURIComponent(o.path)}">${s(o.title)}</a>`}i+="</div>"}return i}function Ye(e){let{wikiDir:t,agentFilter:n,peerUrls:a=[],mode:r="graph",pathPrefix:i=""}=e,c=i.replace(/\/+$/,""),l=new V(t,void 0,r),o=a.length>0?new H(a):null;return async(d,g)=>{let x=new URL(d.url||"/","http://localhost"),p=decodeURIComponent(x.pathname),f=c&&p.startsWith(c)?p.slice(c.length)||"/":p,h=null,T=200;try{if(f.startsWith("/remote/")&&o){let y=f.slice(8).split("/article/");if(y.length===2){let[b,v]=y,m=b.indexOf("/"),k=decodeURIComponent(b.slice(0,m)),u=b.slice(m+1),w=await o.getRemoteArticle(k,u,v);if(w){let z=await o.getRemoteAgents(),N=[...l.summary(),...z.map(S=>({...S,agentId:`${S.agentId} @${S.nodeId}`}))],A=`<div class="breadcrumb"><a href="/">Hub</a> / <span class="tag">remote</span> ${s(u)} @ ${s(k)}</div>`;A+=`<h1>${s(w.meta.title)}</h1>`,A+='<dl class="meta">',A+=`<dt>Tags</dt><dd>${(w.meta.tags||[]).map(S=>`<span class="tag">${S}</span>`).join(" ")}</dd>`,A+=`<dt>Owner</dt><dd>${s(w.meta.owner)}</dd>`,A+=`<dt>Source</dt><dd><span class="tag">remote</span> ${s(k)}</dd>`,A+=`<dt>Updated</dt><dd>${w.meta.lastUpdated}</dd>`,A+="</dl>";let E=new Map;A+=D(w.content,E),h=$(w.meta.title,I(N),A)}}}if(!h&&n){let y=l.getAgentWiki(n);if(f==="/"||f===""){let b=y.rebuildIndex(),v=l.getAgentEntries(n),m=`<h1>${s(n)}</h1>`;if(m+='<div class="stats">',m+=`<div class="stat-card"><div class="number">${b.articles.length}</div><div class="label">Articles</div></div>`,m+=`<div class="stat-card"><div class="number">${v.length}</div><div class="label">Entries</div></div>`,m+="</div>",b.articles.length>0){m+="<h2>Articles</h2><table><tr><th>Title</th><th>Type</th><th>Updated</th></tr>";for(let k of b.articles)m+=`<tr><td><a href="/article/${encodeURIComponent(k.path)}">${s(k.title)}</a></td><td><span class="tag">${(k.tags||[]).slice(0,3).join(", ")}</span></td><td>${k.lastUpdated||""}</td></tr>`;m+="</table>"}h=$(n,U(y,n),m)}else if(f.startsWith("/article/")){let b=f.slice(9),v=y.readArticle(b);if(v){let m=y.rebuildIndex(),k=new Map;for(let w of m.articles)k.set(w.title,w.path);let u=`<h1>${s(v.meta.title)}</h1>`;u+='<dl class="meta">',u+=`<dt>Tags</dt><dd>${(v.meta.tags||[]).map(w=>`<span class="tag">${w}</span>`).join(" ")}</dd>`,u+=`<dt>Updated</dt><dd>${v.meta.lastUpdated}</dd>`,v.meta.sources?.length&&(u+=`<dt>Sources</dt><dd>${v.meta.sources.length} entries</dd>`),u+="</dl>",u+=D(v.content,k),h=$(v.meta.title,U(y,n,b),u)}}else if(f==="/lint"){let b=y.lint(),v="<h1>Health Check</h1>";if(b.length===0)v+='<p style="color:green;">No issues.</p>';else{v+="<table><tr><th>Type</th><th>Article</th><th>Issue</th></tr>";for(let m of b)v+=`<tr><td><span class="tag">${m.type}</span></td><td>${s(m.article)}</td><td>${s(m.message)}</td></tr>`;v+="</table>"}h=$("Health Check",U(y,n),v)}else if(f==="/search"){let b=x.searchParams.get("q")||"",v=await y.findRelevantReranked(b,void 0,20),m=`<h1>Search: "${s(b)}"</h1>`;for(let k of v)m+=`<div class="entry-card"><h3><a href="/article/${encodeURIComponent(k.path)}">${s(k.meta.title)}</a></h3><p>${s(k.content.slice(0,200))}...</p></div>`;v.length===0&&(m+="<p>No results.</p>"),h=$(`Search: ${b}`,U(y,n),m)}else if(f.startsWith("/tag/")){let b=decodeURIComponent(f.slice(5)),v=y.findByTags([b],void 0,100),m=`<h1>Tag: <a class="tag" href="#">${s(b)}</a></h1>`;m+=`<p>${v.length} article${v.length===1?"":"s"} tagged <code>${s(b)}</code></p>`;for(let k of v)m+=`<div class="entry-card"><h3><a href="/article/${encodeURIComponent(k.path)}">${s(k.meta.title)}</a></h3><div class="meta-line">${R((k.meta.tags||[]).slice(0,6))}</div></div>`;v.length===0&&(m+="<p>No articles with this tag.</p>"),h=$(`Tag: ${b}`,U(y,n),m)}}else{let y=o?await o.getRemoteAgents():[],b=l.summary(),v=new Map(b.map(u=>[u.agentId,u])),m=[],k=new Set;for(let u of b){let w=y.find(z=>z.agentId===u.agentId);w&&w.totalArticles>u.totalArticles?m.push({...w,totalEntries:Math.max(u.totalEntries,w.totalEntries),unabsorbed:Math.max(u.unabsorbed,w.unabsorbed)}):m.push(u),k.add(u.agentId)}for(let u of y)k.has(u.agentId)||(m.push(u),k.add(u.agentId));if(f==="/"||f==="")h=Me(l,m,y);else if(f==="/entries")h=Le(l,m);else if(f==="/search")h=Je(l,x.searchParams.get("q")||"",m);else if(f.startsWith("/tag/"))h=qe(l,decodeURIComponent(f.slice(5)),m);else if(f.match(/^\/agent\/[^/]+\/tag\/.+/)){let u=f.match(/^\/agent\/([^/]+)\/tag\/(.+)$/);h=Ke(l,decodeURIComponent(u[1]),decodeURIComponent(u[2]),m)}else if(f.startsWith("/agent/")){let u=f.slice(7),w=u.indexOf("/article/");if(w===-1)h=Fe(l,u,m);else{let z=u.slice(0,w),N=u.slice(w+9);if(h=je(l,z,N,m),!h&&o){let A=y.find(E=>E.agentId===z);if(A){let E=await o.getRemoteArticle(A.peerUrl,z,N);if(E){let S=`<div class="breadcrumb"><a href="/">Hub</a> / <span class="tag">remote @ ${s(A.nodeId)}</span> / ${s(z)}</div>`;S+=`<h1>${s(E.meta.title)}</h1>`,S+='<dl class="meta">',S+=`<dt>Tags</dt><dd>${(E.meta.tags||[]).map(be=>`<span class="tag">${be}</span>`).join(" ")}</dd>`,S+=`<dt>Source</dt><dd><span class="tag">remote</span> ${s(A.nodeId)}</dd>`,S+=`<dt>Updated</dt><dd>${E.meta.lastUpdated}</dd>`,S+="</dl>",S+=D(E.content,new Map),h=$(E.meta.title,I(m),S)}}}}}}if(!h){T=404;let y=n?U(l.getAgentWiki(n),n):I(l.summary());h=$("Not Found",y,"<h1>Page not found</h1>")}}catch(y){T=500,h=$("Error","",`<h1>Error</h1><pre>${s(y.message)}</pre>`)}g.writeHead(T,{"Content-Type":"text/html; charset=utf-8"}),g.end(c?Xe(h,c):h)}}function Xe(e,t){e=e.replace(/(\s(?:href|action)=")\/(?!\/)/g,`$1${t}/`),e=e.replace(new RegExp(`(${t})${t}/`,"g"),`${t}/`);let n=`<a href="/admin" style="position:fixed;top:10px;right:14px;z-index:9999;padding:5px 11px;background:rgba(0,0,0,0.55);color:#fff;font:12px/1.2 'IBM Plex Sans',system-ui,sans-serif;text-decoration:none;border-radius:6px;border:1px solid rgba(255,255,255,0.18);backdrop-filter:blur(6px)">\u2190 Dashboard</a>`;return e=e.replace(/<body([^>]*)>/,`<body$1>${n}`),e}function Kt(e,t=4200,n,a=[],r="graph"){let i=Ye({wikiDir:e,agentFilter:n,peerUrls:a,mode:r});Ne((l,o)=>{i(l,o)}).listen(t)}import{createCipheriv as Ge,createDecipheriv as Ve,createHash as Qe,randomBytes as K,randomInt as Ze,scryptSync as et,timingSafeEqual as tt}from"crypto";import{existsSync as nt,mkdirSync as at,readFileSync as rt,renameSync as it,writeFileSync as ot}from"fs";import{dirname as st,resolve as lt}from"path";var Y="23456789ABCDEFGHJKMNPQRSTUVWXYZ",X=8,dt=10*60*1e3,ct=".agentx/pair-codes.json",pt={N:16384,r:8,p:1};function gt(){let e="";for(let t=0;t<X;t++)e+=Y[Ze(Y.length)];return e}function Qt(e){return`${e.slice(0,4)}-${e.slice(4)}`}function mt(e){if(typeof e!="string"||e.length>64)return null;let t=e.toUpperCase().replace(/[\s\-‐-―]/g,"");if(t.length!==X)return null;for(let n of t)if(!Y.includes(n))return null;return t}var ve=class{constructor(t=process.cwd(),n=ct,a=Date.now){this.now=a;this.file=lt(t,n)}file;create(t){let n=this.load(),a=gt(),{id:r,key:i}=xe(a,n.salt),c=this.now(),l=new Date(c+dt).toISOString();return n.codes=n.codes.filter(o=>Date.parse(o.expiresAt)>c),n.codes.push({id:r,tokenId:t.tokenId,name:t.name,sealed:ut(i,t.token),createdAt:new Date(c).toISOString(),expiresAt:l}),this.save(n),{code:a,expiresAt:l}}redeem(t){let n=this.load(),a=mt(t),{id:r,key:i}=xe(a??"-".repeat(X),n.salt);if(!a)return null;let c=Buffer.from(r),l=n.codes.find(d=>d.id.length===r.length&&tt(Buffer.from(d.id),c));if(!l||Date.parse(l.expiresAt)<=this.now())return null;let o=ft(i,l.sealed);return o?(n.codes=n.codes.filter(d=>d!==l&&Date.parse(d.expiresAt)>this.now()),this.save(n),{token:o,tokenId:l.tokenId,name:l.name}):null}load(){if(nt(this.file))try{let t=JSON.parse(rt(this.file,"utf-8"));if(t&&typeof t.salt=="string"&&Array.isArray(t.codes))return t}catch{}return{salt:K(16).toString("hex"),codes:[]}}save(t){at(st(this.file),{recursive:!0});let n=`${this.file}.${process.pid}.${K(4).toString("hex")}.tmp`;ot(n,JSON.stringify(t,null,2)+`
|
|
739
739
|
`,{encoding:"utf-8",mode:384}),it(n,this.file)}};function xe(e,t){let n=et(e,Buffer.from(t,"hex"),64,pt);return{id:"sha256:"+Qe("sha256").update(n.subarray(0,32)).digest("hex"),key:n.subarray(32)}}function ut(e,t){let n=K(12),a=Ge("aes-256-gcm",e,n),r=Buffer.concat([a.update(t,"utf-8"),a.final()]);return Buffer.concat([n,a.getAuthTag(),r]).toString("base64")}function ft(e,t){try{let n=Buffer.from(t,"base64"),a=Ve("aes-256-gcm",e,n.subarray(0,12));return a.setAuthTag(n.subarray(12,28)),Buffer.concat([a.update(n.subarray(28)),a.final()]).toString("utf-8")}catch{return null}}var ht="https://ntfy.sh";function en(e){return{enabled:!!e?.enabled,server:e?.server||ht,topicSet:!!e?.topic,tokenSet:!!e?.token}}function tn(e,t){let n={...e??{}};if("enabled"in t&&(n.enabled=!!t.enabled),"server"in t){let a=String(t.server).trim().replace(/\/+$/,"");if(!/^https?:\/\/\S+$/.test(a))throw new Error("ntfy server must be an http(s) URL");n.server=a}if("topic"in t){let a=String(t.topic).trim();if(!a)throw new Error("ntfy topic cannot be empty");n.topic=a}if("token"in t){let a=String(t.token??"").trim();a?n.token=a:delete n.token}if(n.enabled&&!n.topic)throw new Error("set a topic before enabling ntfy");return n}export{oe as a,ge as b,Pt as c,Rt as d,Ut as e,dt as f,Qt as g,ve as h,Ht as i,Dt as j,Ot as k,en as l,tn as m,Ye as n,Kt as o};
|
|
740
|
-
//# sourceMappingURL=chunk-
|
|
740
|
+
//# sourceMappingURL=chunk-WMDDQVCI.js.map
|
package/dist/cli.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{a as n}from"./chunk-
|
|
2
|
+
import{a as n}from"./chunk-LEFRNHZF.js";import"./chunk-5WMHW4A6.js";import"./chunk-N42YWYIR.js";import"./chunk-WMDDQVCI.js";import"./chunk-Z3IP66SL.js";import"./chunk-C4CDVE2E.js";import"./chunk-RKPAVWXF.js";import"./chunk-GV7S5BAX.js";import"./chunk-GSX4NK2N.js";import"./chunk-SZDACK6O.js";import"./chunk-HSJRI3NW.js";import"./chunk-EOKOGQZG.js";import"./chunk-5QP56S4O.js";import"./chunk-BYJ3A55Y.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-I2SD4XZ6.js";import"./chunk-XT3E5MLX.js";import"./chunk-2AXFYDWF.js";import"./chunk-AQASR6KR.js";import"./chunk-2D3RYIDU.js";import"./chunk-L53FTKEP.js";import"./chunk-OTTAKMGC.js";import"./chunk-ECBKTFTL.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import"./chunk-BHE5TJSN.js";import"./chunk-EA7H3EUX.js";import"./chunk-AVDWFQZ5.js";import"./chunk-SFQUP3BP.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-X5C5W3E4.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-LQ5J6COO.js";import"./chunk-DWADWDMU.js";import"./chunk-NO2HOK4B.js";import"./chunk-QD6IICK7.js";import"./chunk-VWTBHLMX.js";import"./chunk-AZBOYKQA.js";import"./chunk-WGWNVLVW.js";import"./chunk-PNWNVOEZ.js";import"./chunk-64P4QHSZ.js";import"./chunk-P4GOKVK2.js";import"./chunk-TFVUOC2C.js";import"./chunk-2GIDVZ4H.js";import"./chunk-PTB2TPOC.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-FX3D7YON.js";import"./chunk-QOYAX2FT.js";import"./chunk-SZJMS7K4.js";import"./chunk-7I7IEX4S.js";import"./chunk-VDMYBPYB.js";import"./chunk-DSYKYZMT.js";import"./chunk-OVF37EXJ.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";var r=["SIGINT","SIGTERM"];function o(t=process){for(let i of r)t.on(i,()=>{t.listenerCount(i)<=1&&t.exit(0)})}o();async function s(){let t=await n();if(process.argv.slice(2).length===0){t.outputHelp();return}t.parse()}s();
|
|
3
3
|
//# sourceMappingURL=cli.js.map
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as L}from"./chunk-Y57CULGE.js";import{a as St,b as kt,c as vt,d as xt,da as Tt,e as $t,ea as Mt,f as Ct,g as Pt,h as bt}from"./chunk-
|
|
1
|
+
import{a as L}from"./chunk-Y57CULGE.js";import{a as St,b as kt,c as vt,d as xt,da as Tt,e as $t,ea as Mt,f as Ct,g as Pt,h as bt}from"./chunk-HSJRI3NW.js";import"./chunk-EOKOGQZG.js";import"./chunk-5QP56S4O.js";import"./chunk-BYJ3A55Y.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-I2SD4XZ6.js";import"./chunk-XT3E5MLX.js";import"./chunk-2AXFYDWF.js";import"./chunk-AQASR6KR.js";import"./chunk-2D3RYIDU.js";import"./chunk-L53FTKEP.js";import{S as yt,l as lt,m as ct,n as dt,o as mt,p as pt}from"./chunk-OTTAKMGC.js";import"./chunk-ECBKTFTL.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import{s as ut}from"./chunk-BHE5TJSN.js";import"./chunk-EA7H3EUX.js";import{A as D,B as z,C as V,a as ye,b as we,c as Se,d as Ae,e as Ie,f as Oe,g as Ne,h as He,i as je,j as Ue,k as _e,l as I,m as q,n as Be,o as qe,p as Ye,q as O,r as ze,s as Ve,t as Xe,u as x,v as Y,w as Qe,x as Ze,y as et,z as wt}from"./chunk-AVDWFQZ5.js";import{a as B,b as M,c as F}from"./chunk-SFQUP3BP.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-X5C5W3E4.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-LQ5J6COO.js";import"./chunk-DWADWDMU.js";import"./chunk-NO2HOK4B.js";import"./chunk-QD6IICK7.js";import"./chunk-VWTBHLMX.js";import"./chunk-AZBOYKQA.js";import{a as gt,b as ft,e as ht}from"./chunk-WGWNVLVW.js";import"./chunk-PNWNVOEZ.js";import"./chunk-64P4QHSZ.js";import"./chunk-P4GOKVK2.js";import"./chunk-TFVUOC2C.js";import"./chunk-2GIDVZ4H.js";import{j as it,k as rt,l as at}from"./chunk-PTB2TPOC.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-FX3D7YON.js";import"./chunk-QOYAX2FT.js";import{a as ke,b as ve,c as xe,d as $e,e as Ce,f as Pe,g as be,h as Te,i as Me,j as Re,l as Ee,m as Ge,o as T,p as W}from"./chunk-SZJMS7K4.js";import{a as m,b as G}from"./chunk-7I7IEX4S.js";import{a as Fe,b as Le,c as A,d as De}from"./chunk-VDMYBPYB.js";import{a as Ke,b as Je,e as We}from"./chunk-DSYKYZMT.js";import{u as tt,w as st,x as ot,z as nt}from"./chunk-OVF37EXJ.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";W();G();import{execa as Rt}from"execa";import{existsSync as se,promises as X}from"fs";import S from"path";import ie from"node-fetch";async function Et(o,e){let t=o.split("/");if(t.length<2)throw new Error(`Invalid skill package ID: ${o}. Expected format: owner/repo`);let s=t[0],i=t[1],n=t[2];try{let a=n?`${s}/${i}/${n}`:`${s}/${i}`;await Rt("npx",["-y","skills","add",a],{cwd:e,stdio:"pipe"}),m.success(`Installed skill package: ${o}`);let r=S.resolve(e,".skills",`${s}_${i}`);if(se(r))return await ne(r,o);let d=S.resolve(e,".skills");return se(d)?await ne(d,o):[]}catch{return m.info(`Fetching skills directly from GitHub: ${s}/${i}`),await Gt(s,i,n,e)}}async function Gt(o,e,t,s){let i=[];try{let n=`https://api.github.com/repos/${o}/${e}/git/trees/main?recursive=1`,a=await ie(n);if(!a.ok)throw new Error(`GitHub API error: ${a.status}`);let d=(await a.json()).tree.filter(p=>p.type==="blob"&&p.path.endsWith("SKILL.md"));if(t){let p=d.find(f=>f.path.includes(`/${t}/`)||f.path===`${t}/SKILL.md`);if(p){let f=await oe(o,e,p.path,s);f&&i.push(f)}}else for(let p of d){let f=await oe(o,e,p.path,s);f&&i.push(f)}}catch(n){m.error(`Failed to fetch skills from GitHub: ${n.message}`)}return i}async function oe(o,e,t,s){try{let i=`https://raw.githubusercontent.com/${o}/${e}/main/${t}`,n=await ie(i);if(!n.ok)return null;let a=await n.text(),r=A(a);if(r){r.source="remote",r.packageId=`${o}/${e}`;let d=S.dirname(t),p=S.resolve(s,".skills",`${o}_${e}`,d);await X.mkdir(p,{recursive:!0}),await X.writeFile(S.resolve(p,"SKILL.md"),a),r.path=S.resolve(p,"SKILL.md")}return r}catch{return null}}async function ne(o,e){let t=[],{default:s}=await import("fast-glob"),i=await s.glob("**/SKILL.md",{cwd:o,deep:5});for(let n of i)try{let a=S.resolve(o,n),r=await X.readFile(a,"utf8"),d=A(r);d&&(d.source="remote",d.path=a,d.packageId=e,t.push(d))}catch{}return t}async function At(o,e,t,s,i){let n=["---",`name: ${o}`,`description: ${e}`];if(s?.length){n.push("tags:");for(let a of s)n.push(` - ${a}`)}if(i?.length){n.push("globs:");for(let a of i)n.push(` - ${a}`)}return n.push("---"),`${n.join(`
|
|
2
2
|
`)}
|
|
3
3
|
|
|
4
4
|
${t}`}async function It(o){let{loadLocalSkills:e}=await import("./loader-EVHZ2R73.js");return e(o)}async function Ot(o,e,t,s,i){let a=[{role:"system",content:`You are a skill author for the Agent Skills ecosystem (skills.sh).
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=program-
|
|
1
|
+
import{a}from"./chunk-LEFRNHZF.js";import"./chunk-5WMHW4A6.js";import"./chunk-N42YWYIR.js";import"./chunk-WMDDQVCI.js";import"./chunk-Z3IP66SL.js";import"./chunk-C4CDVE2E.js";import"./chunk-RKPAVWXF.js";import"./chunk-GV7S5BAX.js";import"./chunk-GSX4NK2N.js";import"./chunk-SZDACK6O.js";import"./chunk-HSJRI3NW.js";import"./chunk-EOKOGQZG.js";import"./chunk-5QP56S4O.js";import"./chunk-BYJ3A55Y.js";import"./chunk-LQRBGQIR.js";import"./chunk-ZVP6GB4G.js";import"./chunk-I2SD4XZ6.js";import"./chunk-XT3E5MLX.js";import"./chunk-2AXFYDWF.js";import"./chunk-AQASR6KR.js";import"./chunk-2D3RYIDU.js";import"./chunk-L53FTKEP.js";import"./chunk-OTTAKMGC.js";import"./chunk-ECBKTFTL.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import"./chunk-BHE5TJSN.js";import"./chunk-EA7H3EUX.js";import"./chunk-AVDWFQZ5.js";import"./chunk-SFQUP3BP.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-X5C5W3E4.js";import"./chunk-76Z4VHDX.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-LQ5J6COO.js";import"./chunk-DWADWDMU.js";import"./chunk-NO2HOK4B.js";import"./chunk-QD6IICK7.js";import"./chunk-VWTBHLMX.js";import"./chunk-AZBOYKQA.js";import"./chunk-WGWNVLVW.js";import"./chunk-PNWNVOEZ.js";import"./chunk-64P4QHSZ.js";import"./chunk-P4GOKVK2.js";import"./chunk-TFVUOC2C.js";import"./chunk-2GIDVZ4H.js";import"./chunk-PTB2TPOC.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-FX3D7YON.js";import"./chunk-QOYAX2FT.js";import"./chunk-SZJMS7K4.js";import"./chunk-7I7IEX4S.js";import"./chunk-VDMYBPYB.js";import"./chunk-DSYKYZMT.js";import"./chunk-OVF37EXJ.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{a as buildProgram};
|
|
2
|
+
//# sourceMappingURL=program-DZCKFNHD.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{I as a,J as b,K as c,L as d,M as e,N as f,O as g,P as h,Q as i,R as j,S as k,T as l}from"./chunk-OTTAKMGC.js";import"./chunk-ECBKTFTL.js";import"./chunk-WP6KLXTP.js";import"./chunk-N6EWZGIX.js";import"./chunk-DP7RTNDM.js";import"./chunk-BHE5TJSN.js";import"./chunk-EA7H3EUX.js";import"./chunk-J3SOEFRE.js";import"./chunk-SIU6STB2.js";import"./chunk-X5C5W3E4.js";import"./chunk-W4YR2RO2.js";import"./chunk-AFRHKA7B.js";import"./chunk-LQ5J6COO.js";import"./chunk-DWADWDMU.js";import"./chunk-NO2HOK4B.js";import"./chunk-QD6IICK7.js";import"./chunk-VWTBHLMX.js";import"./chunk-AZBOYKQA.js";import"./chunk-WGWNVLVW.js";import"./chunk-PNWNVOEZ.js";import"./chunk-64P4QHSZ.js";import"./chunk-P4GOKVK2.js";import"./chunk-TFVUOC2C.js";import"./chunk-2GIDVZ4H.js";import"./chunk-PTB2TPOC.js";import"./chunk-72SZI2UW.js";import"./chunk-FCPTN6NF.js";import"./chunk-FX3D7YON.js";import"./chunk-QOYAX2FT.js";import"./chunk-SZJMS7K4.js";import"./chunk-7I7IEX4S.js";import"./chunk-DSYKYZMT.js";import"./chunk-OVF37EXJ.js";import"./chunk-RGDKHYY2.js";import"./chunk-QIJLFPWE.js";export{k as AgentRegistry,f as TRACE_STEP_SUMMARY_BYTES,c as buildEntryMeta,d as buildEventDigest,e as buildWikiContext,g as clipForTrace,j as emitTraceStepsFromStreamEvent,i as firstMissingRequiredTool,b as getGlobalRegistry,l as richReplyPrompt,a as setGlobalRegistry,h as tallyToolUses};
|
|
2
|
+
//# sourceMappingURL=registry-P7IAAFCX.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentix-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.65.0",
|
|
4
4
|
"description": "AI operations layer for small and medium businesses. Routes Telegram, WhatsApp, GitLab, GitHub, crons, webhooks, and mesh tasks to AI agents. Web wizard for operators, CLI for engineers. Self-hosted.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|