@easbot/agent 0.2.40 → 0.2.41
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/chunks/{acp-SMAI7EJF.mjs → acp-D5UOHKRU.mjs} +2 -2
- package/dist/chunks/adapter-loader-SHO4LOSU.mjs +1 -0
- package/dist/chunks/{agent-SXVN3QRB.mjs → agent-CYRU65IN.mjs} +1 -1
- package/dist/chunks/{agent-BS6BU766.mjs → agent-JHX64CI6.mjs} +1 -1
- package/dist/chunks/app-S6QDTGNJ.mjs +1 -0
- package/dist/chunks/bootstrap-FHSG4M5N.mjs +1 -0
- package/dist/chunks/{build-program-U2HDARWA.mjs → build-program-YDOM5ROT.mjs} +1 -1
- package/dist/chunks/bus-7GPWVWOA.mjs +1 -0
- package/dist/chunks/{chunk-ZFGVQIO5.mjs → chunk-75IQNF4I.mjs} +1 -1
- package/dist/chunks/{chunk-XQXI2ZHB.mjs → chunk-D4GDS5UI.mjs} +1 -1
- package/dist/chunks/{chunk-VLDQ4LGX.mjs → chunk-EM2QJ5NQ.mjs} +2 -2
- package/dist/chunks/{chunk-YGFGAD5H.mjs → chunk-FWVB6X4X.mjs} +13 -13
- package/dist/chunks/{chunk-JII5HRIF.mjs → chunk-GRDTQW6K.mjs} +1 -1
- package/dist/chunks/{chunk-IXO5FAWI.mjs → chunk-IEQ4VD66.mjs} +1 -1
- package/dist/chunks/{chunk-O2JOXYKG.mjs → chunk-KTMZPMCI.mjs} +1 -1
- package/dist/chunks/{chunk-3Q4UCILK.mjs → chunk-R4BPTF6V.mjs} +1 -1
- package/dist/chunks/{chunk-DJYON7M6.mjs → chunk-SB4J2R54.mjs} +1 -1
- package/dist/chunks/{chunk-H45MZAM6.mjs → chunk-UBCLKZWP.mjs} +1 -1
- package/dist/chunks/{chunk-ZG2HQDXQ.mjs → chunk-X7KLQIAQ.mjs} +1 -1
- package/dist/chunks/{command-B7POR3LZ.mjs → command-CPT2YSIR.mjs} +1 -1
- package/dist/chunks/compaction-JR5FOLBX.mjs +1 -0
- package/dist/chunks/{config-JY4V5KGI.mjs → config-O5EE574O.mjs} +1 -1
- package/dist/chunks/{debug-LXNXB4VY.mjs → debug-BWJVMW7Q.mjs} +3 -3
- package/dist/chunks/file-Q52INNX3.mjs +1 -0
- package/dist/chunks/{gateway-HTBKKYKV.mjs → gateway-XSXBPTB7.mjs} +2 -2
- package/dist/chunks/{generate-JBIFOTPV.mjs → generate-4UO6UCUB.mjs} +1 -1
- package/dist/chunks/{github-XXJJ62IF.mjs → github-XIWTIRCK.mjs} +1 -1
- package/dist/chunks/global-XQYOBWZR.mjs +1 -0
- package/dist/chunks/{import-37R7O4NM.mjs → import-K45ZW3NR.mjs} +1 -1
- package/dist/chunks/installation-55Z2PXMV.mjs +1 -0
- package/dist/chunks/instance-S5GBRS3K.mjs +1 -0
- package/dist/chunks/loader-JAKTXQ6M.mjs +1 -0
- package/dist/chunks/loader-S2BSLSAZ.mjs +1 -0
- package/dist/chunks/lsp-4VYPJGAN.mjs +1 -0
- package/dist/chunks/{mcp-X4FA7X53.mjs → mcp-JBHKJN6X.mjs} +1 -1
- package/dist/chunks/mcp-ZGGTG6YT.mjs +1 -0
- package/dist/chunks/models-TI5SNTLO.mjs +1 -0
- package/dist/chunks/{pr-WCMJT7VY.mjs → pr-MCLQ6KQO.mjs} +1 -1
- package/dist/chunks/preferences-LWCCEUB3.mjs +1 -0
- package/dist/chunks/project-OEBG6JHE.mjs +1 -0
- package/dist/chunks/prompt-JSZCNKQD.mjs +1 -0
- package/dist/chunks/provider-TU4AF2GP.mjs +1 -0
- package/dist/chunks/registry-NITFPORZ.mjs +1 -0
- package/dist/chunks/revert-PDDRJVNK.mjs +1 -0
- package/dist/chunks/ripgrep-7VVA7THG.mjs +1 -0
- package/dist/chunks/{run-PN7YADL6.mjs → run-EGRUZXP2.mjs} +1 -1
- package/dist/chunks/scheduler-VUQ33E5B.mjs +1 -0
- package/dist/chunks/server-3RDX4X3L.mjs +1 -0
- package/dist/chunks/session-GQAYKB6Q.mjs +1 -0
- package/dist/chunks/session-TXC5Z4O2.mjs +1 -0
- package/dist/chunks/{session-FVNB4WZV.mjs → session-VCIKEQYZ.mjs} +1 -1
- package/dist/chunks/share-RUV4SIRB.mjs +1 -0
- package/dist/chunks/snapshot-PXRGQ6JR.mjs +1 -0
- package/dist/chunks/storage-3T5H5KBY.mjs +1 -0
- package/dist/chunks/tui-5BQORL3N.mjs +1 -0
- package/dist/chunks/{tui-ABXWVS6I.mjs → tui-ZMS6CJQ7.mjs} +1 -1
- package/dist/chunks/{types-BFRURHUE.mjs → types-RWQQETDC.mjs} +1 -1
- package/dist/chunks/{update-SO2ZPDG3.mjs → update-KDCCJIPI.mjs} +1 -1
- package/dist/cli.mjs +2 -2
- package/package.json +13 -13
- package/dist/chunks/adapter-loader-X3GZRT3I.mjs +0 -1
- package/dist/chunks/app-4GCI3HZT.mjs +0 -1
- package/dist/chunks/bootstrap-SVDRDCAU.mjs +0 -1
- package/dist/chunks/bus-SGXNL3LP.mjs +0 -1
- package/dist/chunks/compaction-4CV7NS2Z.mjs +0 -1
- package/dist/chunks/file-Q7BJ3BEC.mjs +0 -1
- package/dist/chunks/global-FDT3NNWD.mjs +0 -1
- package/dist/chunks/installation-WZEFRTPQ.mjs +0 -1
- package/dist/chunks/instance-AK3F7UK2.mjs +0 -1
- package/dist/chunks/loader-2FMNUQDJ.mjs +0 -1
- package/dist/chunks/loader-JWZHDUVM.mjs +0 -1
- package/dist/chunks/lsp-N672BWEP.mjs +0 -1
- package/dist/chunks/mcp-JIUYQ7QS.mjs +0 -1
- package/dist/chunks/models-OEA6XF6K.mjs +0 -1
- package/dist/chunks/preferences-EUHOPNM3.mjs +0 -1
- package/dist/chunks/project-WTLNG2LH.mjs +0 -1
- package/dist/chunks/prompt-6OETS3YU.mjs +0 -1
- package/dist/chunks/provider-DC7XQTFP.mjs +0 -1
- package/dist/chunks/registry-ZXV6XNKB.mjs +0 -1
- package/dist/chunks/revert-PEILY52K.mjs +0 -1
- package/dist/chunks/ripgrep-4XTDDATX.mjs +0 -1
- package/dist/chunks/scheduler-2U6D3A47.mjs +0 -1
- package/dist/chunks/server-23WY43I2.mjs +0 -1
- package/dist/chunks/session-2ZGF74EQ.mjs +0 -1
- package/dist/chunks/session-CQ3VGE4U.mjs +0 -1
- package/dist/chunks/share-V2US2NJE.mjs +0 -1
- package/dist/chunks/snapshot-3CGXXTES.mjs +0 -1
- package/dist/chunks/storage-GQ3NTV5N.mjs +0 -1
- package/dist/chunks/tui-Y47JRG6G.mjs +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'./chunk-LFYBZHOI.mjs';import {a as a$1}from'./chunk-
|
|
1
|
+
import {a}from'./chunk-LFYBZHOI.mjs';import {a as a$1}from'./chunk-SB4J2R54.mjs';import {c,d}from'./chunk-X6ISXWBN.mjs';import o from'path';import a$2 from'fs/promises';import {NamedError,lazy,Filesystem,PKG,$,Lock}from'@easbot/utils';import E from'zod';import {glob}from'glob';var I;(v=>{let f=a.create({service:"storage"});v.NotFoundError=NamedError.create("NotFoundError",E.object({message:E.string()}));let O=[async i=>{let r=o.resolve(i,"../project");if(await Filesystem.isDir(r))for await(let n of new PKG.Glob("*").scan({cwd:r})){f.info(`migrating project ${n}`);let t=n,s=o.join(r,n),e="/";if(t!=="global"){let g=await glob("storage/session/message/*/*.json",{cwd:o.join(r,n),absolute:true});for(let c of g)if(e=(await a$2.readFile(c,"utf-8").then(m=>JSON.parse(m))).path?.root??"",e)break;if(!e||!await Filesystem.isDir(e))continue;let[u]=await $`git rev-list --max-parents=0 --all`.quiet().nothrow().cwd(e).text().then(c=>c.split(`
|
|
2
2
|
`).filter(Boolean).map(w=>w.trim()).toSorted());if(!u)continue;t=u,await PKG.write(o.join(i,"project",t+".json"),JSON.stringify({id:u,vcs:"git",worktree:e,time:{created:Date.now(),initialized:Date.now()}})),f.info(`migrating sessions for project ${t}`);for await(let c of new PKG.Glob("storage/session/info/*.json").scan({cwd:s,absolute:true})){let w=o.join(i,"session",t,o.basename(c));f.info("copying",{sessionFile:c,dest:w});let m=await a$2.readFile(c,"utf-8").then(p=>JSON.parse(p));await a$2.writeFile(w,JSON.stringify(m)),f.info(`migrating messages for session ${m.id}`);for await(let p of new PKG.Glob(`storage/session/message/${m.id}/*.json`).scan({cwd:s,absolute:true})){let J=o.join(i,"message",m.id,o.basename(p));f.info("copying",{msgFile:p,dest:J});let h=await a$2.readFile(p,"utf-8").then(j=>JSON.parse(j));await a$2.writeFile(J,JSON.stringify(h)),f.info(`migrating parts for message ${h.id}`);for await(let j of new PKG.Glob(`storage/session/part/${m.id}/${h.id}/*.json`).scan({cwd:s,absolute:true})){let S=o.join(i,"part",h.id,o.basename(j)),P=await PKG.file(j).json();f.info("copying",{partFile:j,dest:S}),await PKG.write(S,JSON.stringify(P));}}}}}},async i=>{for await(let r of new PKG.Glob("session/*/*.json").scan({cwd:i,absolute:true})){let n=await PKG.file(r).json();if(!n.providerId||!n.summary?.diffs)continue;let{diffs:t}=n.summary;await PKG.write(o.join(i,"session_diff",n.id+".json"),JSON.stringify(t)),await PKG.write(o.join(i,"session",n.providerId,n.id+".json"),JSON.stringify({...n,summary:{additions:t.reduce((s,e)=>s+e.additions,0),deletions:t.reduce((s,e)=>s+e.deletions,0)}}));}}],l=lazy(async()=>{let i=o.join(a$1.Path.data,"storage");await a$2.mkdir(i,{recursive:true});let r=o.join(i,"migration"),n=await a$2.readFile(r,"utf-8").then(t=>parseInt(t,10)).catch(()=>0);for(let t=n;t<O.length;t++){f.info("running migration",{index:t});let s=O[t];s&&(await s(i).catch(()=>f.error("failed to run migration",{index:t})),await a$2.writeFile(r,(t+1).toString(),"utf-8"));}return {dir:i}});async function M(i){let r=await l().then(t=>t.dir),n=o.join(r,...i)+".json";return y(async()=>{await a$2.unlink(n).catch(()=>{});})}v.remove=M;function R(i){return l().then(r=>o.join(r.dir,...i))}v.dir=R;async function A(i){return a$2.rmdir(i).catch(()=>{})}v.rmdir=A;async function B(i){let r=await l().then(t=>t.dir),n=o.join(r,...i)+".json";return y(async()=>{var e=[];try{let t=c(e,await Lock.read(n));let s=await a$2.readFile(n,"utf-8");return JSON.parse(s)}catch(g){var u=g,c$1=true;}finally{d(e,u,c$1);}})}v.read=B;async function q(i,r){let n=await l().then(s=>s.dir),t=o.join(n,...i)+".json";return y(async()=>{var g=[];try{let s=c(g,await Lock.write(t));let e=await a$2.readFile(t,"utf-8").then(m=>JSON.parse(m));r(e);await a$2.writeFile(t,JSON.stringify(e,null,2),"utf-8");return e}catch(u){var c$1=u,w=true;}finally{d(g,c$1,w);}})}v.update=q;async function H(i,r){let n=await l().then(s=>s.dir),t=o.join(n,...i)+".json";return y(async()=>{var e=[];try{let s=c(e,await Lock.write(t));await a$2.mkdir(o.dirname(t),{recursive:!0});await a$2.writeFile(t,JSON.stringify(r,null,2),"utf-8");}catch(g){var u=g,c$1=true;}finally{d(e,u,c$1);}})}v.write=H;async function y(i){return i().catch(r=>{if(!(r instanceof Error))throw r;let n=r;throw n.code==="ENOENT"?new v.NotFoundError({message:`Resource not found: ${n.path}`}):r})}let D="**/*";async function K(i){let r=await l().then(n=>n.dir);try{let t=(await glob(D,{cwd:o.join(r,...i),nodir:!0})).map(s=>[...i,...s.slice(0,-5).split(o.sep)]);return t.sort(),t}catch{return []}}v.list=K;})(I||(I={}));export{I as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {Oa}from'./chunk-
|
|
1
|
+
import {Oa}from'./chunk-FWVB6X4X.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import {a as a$1}from'./chunk-SB4J2R54.mjs';import {b as b$1}from'./chunk-X6ISXWBN.mjs';import d from'fs';import u from'path';var P=a.create({service:"cli-plugin"});function S(t,e,r){return {context:t,logger:a,config:r,registerCli(n,o){try{t._pluginCliRegistrations||(t._pluginCliRegistrations=[]),t._pluginCliRegistrations.push({pluginId:e,register:n,commands:o?.commands||[]}),P.debug("Plugin CLI registered",{pluginId:e,commands:o?.commands});}catch(a){throw P.error("Plugin CLI registration failed",{pluginId:e,error:a}),a}},registerCommand(n){try{if(t._pluginCommands||(t._pluginCommands=[]),!n.name||!/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(n.name))throw new Error(`Invalid command name: ${n.name}`);let o=t._pluginCommands.find(s=>s.name.toLowerCase()===n.name.toLowerCase());if(o)throw new Error(`Command "${n.name}" is already registered by plugin "${o.pluginId}"`);let a=async s=>{try{return await n.handler(s)}catch(i){return P.error("Plugin command handler failed",{pluginId:e,commandName:n.name,error:i}),{text:`Command failed: ${i instanceof Error?i.message:String(i)}`}}};t._pluginCommands.push({...n,handler:a,pluginId:e}),P.debug("Plugin command registered",{pluginId:e,commandName:n.name});}catch(o){throw P.error("Plugin command registration failed",{pluginId:e,error:o}),o}}}}var g=a.create({service:"cli-plugin-discovery"});async function F(t){if(t.enabled===false)return g.debug("Plugin system is disabled"),[];let e=[],r=new Set;if(t.loadPaths)for(let s of t.loadPaths){let i=await I(s,"npm");for(let l of i)r.has(l.id)||(e.push(l),r.add(l.id));}let n=u.join(Oa.directory,".easbot","extensions");if(d.existsSync(n)){let s=await h(n,"workspace");for(let i of s)r.has(i.id)||(e.push(i),r.add(i.id));}let o=u.join(a$1.Path.config,"extensions");if(d.existsSync(o)){let s=await h(o,"global");for(let i of s)r.has(i.id)||(e.push(i),r.add(i.id));}let a=e.filter(s=>t.deny?.includes(s.id)?(g.debug("Plugin denied by blacklist",{pluginId:s.id}),false):t.allow&&t.allow.length>0&&!t.allow.includes(s.id)?(g.debug("Plugin not in whitelist",{pluginId:s.id}),false):true);return g.info("Discovered plugins",{count:a.length,plugins:a.map(s=>s.id)}),a}async function I(t,e){if(!d.existsSync(t))return g.debug("Plugin path does not exist",{pluginPath:t}),[];let r=d.statSync(t);return r.isFile()?A(t,e):r.isDirectory()?h(t,e):[]}async function A(t,e){let r=u.dirname(t),n=u.join(r,"easbot.plugin.json"),o;if(d.existsSync(n))try{o=JSON.parse(d.readFileSync(n,"utf-8"));}catch(s){return g.error("Failed to read plugin manifest",{manifestPath:n,error:s}),[]}let a=o?.id||u.basename(t,u.extname(t));return [{id:a,name:o?.name||a,version:o?.version||"0.0.0",description:o?.description,path:t,source:e,enabled:true,manifest:o}]}async function h(t,e){let r=[];try{let n=d.readdirSync(t,{withFileTypes:!0});for(let o of n){let a=u.join(t,o.name);if(o.isFile()&&(o.name.endsWith(".ts")||o.name.endsWith(".js"))){let s=await A(a,e);r.push(...s);}else if(o.isDirectory()){let s=u.join(a,"easbot.plugin.json");if(!d.existsSync(s)){g.debug("Plugin directory missing manifest",{entryPath:a});continue}let i;try{i=JSON.parse(d.readFileSync(s,"utf-8"));}catch(m){g.error("Failed to read plugin manifest",{manifestPath:s,error:m});continue}let l=i.main||"index.ts",f=u.join(a,l);if(d.existsSync(f))r.push({id:i.id,name:i.name||i.id,version:i.version||"0.0.0",description:i.description,path:f,source:e,enabled:!0,manifest:i});else {let m=["index.js","plugin.ts","plugin.js"],w=!1;for(let E of m){let C=u.join(a,E);if(d.existsSync(C)){r.push({id:i.id,name:i.name||i.id,version:i.version||"0.0.0",description:i.description,path:C,source:e,enabled:!0,manifest:i}),w=!0;break}}w||g.error("Plugin entry file not found",{entryPath:a,entryFile:l});}}}}catch(n){g.error("Failed to read plugin directory",{dirPath:t,error:n});}return r}var c=a.create({service:"cli-plugin-loader"}),b=class{constructor(e){b$1(this,"loadedPlugins",new Map);b$1(this,"context");this.context=e;}async loadAll(e){let r=await F(e),n=await Promise.allSettled(r.map(async i=>{let l=this.context.config.plugins,f=l&&typeof l=="object"&&"entries"in l&&l.entries&&typeof l.entries=="object"?l.entries[i.id]:void 0;if(f&&typeof f=="object"&&"enabled"in f&&f.enabled===false)return c.info("Plugin disabled in config",{pluginId:i.id}),{pluginId:i.id,status:"disabled"};try{return await this.loadPlugin(i),{pluginId:i.id,status:"loaded"}}catch(m){return c.error("Failed to load plugin",{pluginId:i.id,error:m}),{pluginId:i.id,status:"failed",error:m}}})),o=n.filter(i=>i.status==="fulfilled"&&i.value.status==="loaded").length,a=n.filter(i=>i.status==="fulfilled"&&i.value.status==="failed").length,s=n.filter(i=>i.status==="fulfilled"&&i.value.status==="disabled").length;c.info("All plugins processed",{total:r.length,loaded:o,failed:a,disabled:s});}async loadPlugin(e){if(this.loadedPlugins.has(e.id)){c.debug("Plugin already loaded",{pluginId:e.id});return}c.debug("Loading plugin",{pluginId:e.id,path:e.path});try{let r=await import(e.path),n=r.default||r.plugin;if(!n)throw new Error("Plugin module does not export a plugin definition");if(typeof n!="function"&&(typeof n!="object"||!n.register))throw new Error("Plugin must be a function or an object with a register method");this.loadedPlugins.set(e.id,n),await this.initializePlugin(e.id,n),c.info("Plugin loaded successfully",{pluginId:e.id,name:e.name});}catch(r){let n=r instanceof Error?r.message:String(r),o=r instanceof Error?r.stack:void 0;throw c.error("Failed to load plugin module",{pluginId:e.id,path:e.path,error:n,stack:o}),new Error(`Failed to load plugin "${e.id}" from ${e.path}: ${n}`)}}async initializePlugin(e,r){let n=this.context.config.plugins,o=n&&typeof n=="object"&&"entries"in n&&n.entries&&typeof n.entries=="object"?n.entries[e]:void 0,a=(o&&typeof o=="object"&&"config"in o?o.config:{})||{},s=S(this.context,e,a);try{if(typeof r=="function")await r(s);else {let i=r;i.id&&i.id!==e&&c.warn("Plugin ID mismatch",{expected:e,actual:i.id}),await i.register(s);}c.debug("Plugin initialized",{pluginId:e});}catch(i){throw c.error("Plugin initialization failed",{pluginId:e,error:i}),this.loadedPlugins.delete(e),new Error(`Plugin "${e}" initialization failed: ${i instanceof Error?i.message:String(i)}`)}}getPlugin(e){return this.loadedPlugins.get(e)}getLoadedPluginIds(){return Array.from(this.loadedPlugins.keys())}};function H(t){return new b(t)}export{b as a,H as b};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-CJTCCLW4.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import {a as a$2}from'./chunk-
|
|
1
|
+
import {a as a$1}from'./chunk-CJTCCLW4.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import {a as a$2}from'./chunk-SB4J2R54.mjs';import D from'path';import {NamedError,$,Fetch,iife}from'@easbot/utils';import _ from'zod';function o(A){let T=process.env[A]?.toLowerCase();return T==="true"||T==="1"}function w(A,T){let B=process.env[A];if(B===void 0)return T;let m=Number(B);return Number.isNaN(m)?T:m}var i;(e=>{e.EASBOT_CONFIG=process.env.EASBOT_CONFIG,e.EASBOT_CONFIG_CONTENT=process.env.EASBOT_CONFIG_CONTENT,e.EASBOT_AUTO_SHARE=o("EASBOT_AUTO_SHARE"),e.EASBOT_DISABLE_AUTOUPDATE=o("EASBOT_DISABLE_AUTOUPDATE"),e.EASBOT_DISABLE_PRUNE=o("EASBOT_DISABLE_PRUNE"),e.EASBOT_DISABLE_TERMINAL_TITLE=o("EASBOT_DISABLE_TERMINAL_TITLE"),e.EASBOT_DISABLE_DEFAULT_PLUGINS=o("EASBOT_DISABLE_DEFAULT_PLUGINS"),e.EASBOT_DISABLE_LSP_DOWNLOAD=o("EASBOT_DISABLE_LSP_DOWNLOAD"),e.EASBOT_DISABLE_AUTOCOMPACT=o("EASBOT_DISABLE_AUTOCOMPACT"),e.EASBOT_DISABLE_MODELS_FETCH=o("EASBOT_DISABLE_MODELS_FETCH"),e.EASBOT_DISABLE_FILETIME_CHECK=o("EASBOT_DISABLE_FILETIME_CHECK"),e.EASBOT_ENABLE_EXPERIMENTAL_MODELS=o("EASBOT_ENABLE_EXPERIMENTAL_MODELS"),e.EASBOT_ENABLE_QUESTION_TOOL=o("EASBOT_ENABLE_QUESTION_TOOL"),e.EASBOT_DISABLE_EXTERNAL_SKILLS=o("EASBOT_DISABLE_EXTERNAL_SKILLS"),e.EASBOT_GIT_BASH_PATH=process.env.EASBOT_GIT_BASH_PATH,e.EASBOT_MODELS_URL=process.env.EASBOT_MODELS_URL,e.EASBOT_MODELS_PATH=process.env.EASBOT_MODELS_PATH,e.EASBOT_PERMISSION=process.env.EASBOT_PERMISSION,e.EASBOT_SERVER_USERNAME=process.env.EASBOT_SERVER_USERNAME,e.EASBOT_SERVER_PASSWORD=process.env.EASBOT_SERVER_PASSWORD,e.EASBOT_FAKE_VCS=process.env.EASBOT_FAKE_VCS,e.EASBOT_FILEWATCHER=o("EASBOT_FILEWATCHER"),e.EASBOT_ICON_DISCOVERY=o("EASBOT_ICON_DISCOVERY"),e.EASBOT_ENABLE_EXA=o("EASBOT_ENABLE_EXA"),e.EASBOT_BASH_DEFAULT_TIMEOUT_MS=O("EASBOT_BASH_DEFAULT_TIMEOUT_MS"),e.EASBOT_OUTPUT_TOKEN_MAX=O("EASBOT_OUTPUT_TOKEN_MAX"),e.EASBOT_OXFMT=o("EASBOT_OXFMT"),e.EASBOT_LSP_TY=o("EASBOT_LSP_TY"),e.EASBOT_LSP_TOOL=o("EASBOT_LSP_TOOL"),e.EASBOT_LSP_INIT_TIMEOUT=w("EASBOT_LSP_INIT_TIMEOUT",3e5),e.EASBOT_LSP_DIAGNOSTICS_TIMEOUT=w("EASBOT_LSP_DIAGNOSTICS_TIMEOUT",6e4),e.EASBOT_PLAN_MODE=o("EASBOT_PLAN_MODE"),e.EASBOT_MARKDOWN=o("EASBOT_MARKDOWN"),e.EASBOT_DISABLE_COMPACT=o("EASBOT_DISABLE_COMPACT"),e.EASBOT_DISABLE_AUTO_COMPACT=o("EASBOT_DISABLE_AUTO_COMPACT"),e.EASBOT_AUTOCOMPACT_PCT_OVERRIDE=O("EASBOT_AUTOCOMPACT_PCT_OVERRIDE"),e.EASBOT_AUTO_COMPACT_WINDOW=O("EASBOT_AUTO_COMPACT_WINDOW"),e.EASBOT_BLOCKING_LIMIT_OVERRIDE=O("EASBOT_BLOCKING_LIMIT_OVERRIDE"),e.EASBOT_MAX_CONTEXT_TOKENS=O("EASBOT_MAX_CONTEXT_TOKENS"),e.EASBOT_MAX_TOOL_USE_CONCURRENCY=O("EASBOT_MAX_TOOL_USE_CONCURRENCY");function O(y){let C=process.env[y];if(!C)return;let d=Number(C);return Number.isInteger(d)&&d>0?d:void 0}})(i||(i={}));Object.defineProperty(i,"EASBOT_DISABLE_PROJECT_CONFIG",{get(){return o("EASBOT_DISABLE_PROJECT_CONFIG")},enumerable:true,configurable:false});Object.defineProperty(i,"EASBOT_CONFIG_DIR",{get(){return process.env.EASBOT_CONFIG_DIR},enumerable:true,configurable:false});Object.defineProperty(i,"EASBOT_CLIENT",{get(){return process.env.EASBOT_CLIENT??"cli"},enumerable:true,configurable:false});var M;(S=>{let A=a.create({service:"installation"});S.Event={Updated:a$1.define("installation.updated",_.object({version:_.string()})),UpdateAvailable:a$1.define("installation.update-available",_.object({version:_.string()}))},S.Info=_.object({version:_.string(),latest:_.string()}).meta({ref:"InstallationInfo"});async function m(){return {version:I(),latest:await N()}}S.info=m;function P(){return a$2.isPreview()}S.isPreview=P;function R(){return a$2.isLocal()}S.isLocal=R;async function l(){if(process.execPath.includes(D.join(".easbot","bin"))||process.execPath.includes(D.join(".local","bin")))return "curl";let a=process.execPath.toLowerCase(),r=[{name:"npm",command:()=>$`npm list -g --depth=0`.throws(false).quiet().text()},{name:"yarn",command:()=>$`yarn global list`.throws(false).quiet().text()},{name:"pnpm",command:()=>$`pnpm list -g --depth=0`.throws(false).quiet().text()},{name:"bun",command:()=>$`bun pm ls -g`.throws(false).quiet().text()},{name:"brew",command:()=>$`brew list --formula easbot`.throws(false).quiet().text()},{name:"scoop",command:()=>$`scoop list easbot`.throws(false).quiet().text()},{name:"choco",command:()=>$`choco list --limit-output easbot`.throws(false).quiet().text()}];r.sort((t,s)=>{let E=a.includes(t.name),c=a.includes(s.name);return E&&!c?-1:!E&&c?1:0});for(let t of r){let s=await t.command(),E=(t.name==="brew"||t.name==="choco"||t.name==="scoop","easbot");if(s.includes(E))return t.name}return "unknown"}S.method=l,S.UpgradeFailedError=NamedError.create("UpgradeFailedError",_.object({stderr:_.string()}));async function f(){return (await $`brew list --formula anomalyco/tap/easbot`.throws(false).quiet().text()).includes("easbot")?"anomalyco/tap/easbot":((await $`brew list --formula easbot`.throws(false).quiet().text()).includes("easbot"),"easbot")}async function U(a,r){let t;switch(a){case "curl":t=$`curl -fsSL https://easbot.cn/install | bash`.env({...process.env,VERSION:r});break;case "npm":t=$`npm install -g easbot@${r}`;break;case "pnpm":t=$`pnpm install -g easbot@${r}`;break;case "bun":t=$`bun install -g easbot@${r}`;break;case "brew":{let E=await f();if(E.includes("/")){t=$`brew tap anomalyco/tap && cd "$(brew --repo anomalyco/tap)" && git pull --ff-only && brew upgrade ${E}`.env({HOMEBREW_NO_AUTO_UPDATE:"1",...process.env});break}t=$`brew upgrade ${E}`.env({HOMEBREW_NO_AUTO_UPDATE:"1",...process.env});break}case "choco":t=$`echo Y | choco upgrade easbot --version=${r}`;break;case "scoop":t=$`scoop install easbot@${r}`;break;default:throw new Error(`Unknown method: ${a}`)}let s=await t.quiet().throws(false);if(s.exitCode!==0){let E=a==="choco"?"not running from an elevated command shell":s.stderr.toString("utf8");throw new S.UpgradeFailedError({stderr:E})}A.info("upgraded",{method:a,target:r,stdout:s.stdout.toString(),stderr:s.stderr.toString()}),await $`${process.execPath} --version`.nothrow().quiet().text();}S.upgrade=U;function I(){return a$2.getVersion()}S.getVersion=I;function L(){return a$2.getChannel()}S.getChannel=L;function v(){return `easbot/${L()}/${I()}/${i.EASBOT_CLIENT}`}S.getUserAgent=v;async function N(a){let r=a||await l();if(r==="brew"){let t=await f();if(t.includes("/")){let s=await $`brew info --json=v2 ${t}`.quiet().text(),c=JSON.parse(s).formulae?.[0]?.versions?.stable;if(!c)throw new Error(`Could not detect version for tap formula: ${t}`);return c}return Fetch.get("https://formulae.brew.sh/api/formula/easbot.json").then(s=>{if(!s.ok)throw new Error(s.statusText);return s.data?.versions?.stable??"unknown"})}if(r==="npm"||r==="bun"||r==="pnpm"){let t=await iife(async()=>{let c=(await $`npm config get registry`.quiet().nothrow().text()).trim()||"https://registry.npmjs.org";return c.endsWith("/")?c.slice(0,-1):c}),s=L();return Fetch.get(`${t}/easbot/${s}`).then(E=>{if(!E.ok)throw new Error(E.statusText);return E.data?.version??"unknown"})}return r==="choco"?Fetch.get("https://community.chocolatey.org/api/v2/Packages?$filter=Id%20eq%20%27easbot%27%20and%20IsLatestVersion&$select=Version",{headers:{Accept:"application/json;odata=verbose"}}).then(t=>{if(!t.ok)throw new Error(t.statusText);return t.data?.d?.results?.[0]?.Version??"unknown"}):r==="scoop"?Fetch.get("https://raw.githubusercontent.com/ScoopInstaller/Main/master/bucket/easbot.json",{headers:{Accept:"application/json"}}).then(t=>{if(!t.ok)throw new Error(t.statusText);return t.data?.version??"unknown"}):Fetch.get("https://api.github.com/repos/houjallen/easbot/releases/latest").then(t=>{if(!t.ok)throw new Error(t.statusText);return (t.data?.tag_name??"unknown").replace(/^v/,"")})}S.latest=N;})(M||(M={}));
|
|
2
2
|
export{i as a,M as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {Oa,qb}from'./chunk-
|
|
1
|
+
import {Oa,qb}from'./chunk-FWVB6X4X.mjs';import {a}from'./chunk-LFYBZHOI.mjs';var e=a.create({service:"cli-bootstrap"});async function f(o,i){let r=o||process.cwd();try{let{Global:t}=await import('./global-XQYOBWZR.mjs');await t.init();}catch(t){throw e.error("Failed to initialize Global",{error:t instanceof Error?t.message:String(t)}),new Error(`Global initialization failed: ${t instanceof Error?t.message:String(t)}`)}try{return await Oa.provide({directory:r,init:qb,fn:async()=>await i()})}catch(t){throw e.error("Failed to execute in Instance context",{directory:r,error:t instanceof Error?t.message:String(t)}),t}}async function g(o={}){let i=o.directory??process.cwd();try{let{Global:r}=await import('./global-XQYOBWZR.mjs');await r.init();}catch(r){throw e.error("Failed to initialize Global",{error:r instanceof Error?r.message:String(r)}),new Error(`Global initialization failed: ${r instanceof Error?r.message:String(r)}`)}try{return await Oa.provide({directory:i,init:qb,fn:async()=>{let{buildProgram:r}=await import('./build-program-YDOM5ROT.mjs');return await r(o)}})}catch(r){throw e.error("Failed to build program in Instance context",{directory:i,error:r instanceof Error?r.message:String(r)}),r}}export{f as a,g as b};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {mkdir,readFile,readdir,rm,writeFile}from'fs/promises';import s from'path';import {xdgData,xdgCache,xdgConfig,xdgState}from'xdg-basedir';import S from'os';import {Filesystem}from'@easbot/utils';var l={name:"@easbot/agent",version:"0.2.
|
|
1
|
+
import {mkdir,readFile,readdir,rm,writeFile}from'fs/promises';import s from'path';import {xdgData,xdgCache,xdgConfig,xdgState}from'xdg-basedir';import S from'os';import {Filesystem}from'@easbot/utils';var l={name:"@easbot/agent",version:"0.2.41",description:"Core Agent for the easbot monorepo ecosystem",type:"module",bin:{easbot:"./dist/cli.mjs"},scripts:{dev:"cross-env NODE_ENV=development tsx src/cli.ts -- tui",start:"cross-env NODE_ENV=production node dist/cli.mjs tui --new",build:"tsup --env.NODE_ENV production",test:"vitest","test:run":"vitest run","test:ui":"vitest --ui","test:watch":"vitest --watch","test:coverage":"vitest run --coverage","test:unit":"vitest run --config ./vitest.unit.config.ts","test:unit:watch":"vitest --config ./vitest.unit.config.ts","test:integration":"vitest run --config ./vitest.integration.config.ts","test:integration:watch":"vitest --config ./vitest.integration.config.ts","test:e2e":"vitest run --config ./vitest.e2e.config.ts","test:e2e:watch":"vitest --config ./vitest.e2e.config.ts",lint:"biome check .","lint:fix":"biome check --write .","lint:fix:unsafe":"biome check --write --unsafe ./src","lint:report":"biome check --reporter=summary .",format:"biome format .","format:fix":"biome format --write .","type-check":"tsc --noEmit",clean:"npx rimraf dist node_modules",prepare:"echo 'agent: Environment ready for CLI usage'","publish:npm":"bash scripts/publish.sh","publish:npm:win":"powershell -ExecutionPolicy Bypass -File scripts/publish.ps1"},keywords:["ai","agent","eas","bot","automation"],author:"houjallen",license:"MIT",publishConfig:{access:"public"},repository:{type:"git",url:"https://github.com/houjallen/easbot.git",directory:"packages/agent"},homepage:"https://github.com/houjallen/easbot/tree/main/packages/agent#readme",bugs:{url:"https://github.com/houjallen/easbot/issues"},files:["dist","README.md","README.en.md","LICENSE"],dependencies:{"@agentclientprotocol/sdk":"^0.25.0","@ai-sdk/alibaba":"^1.0.23","@ai-sdk/amazon-bedrock":"^4.0.105","@ai-sdk/anthropic":"^3.0.77","@ai-sdk/azure":"^3.0.64","@ai-sdk/cerebras":"^2.0.51","@ai-sdk/cohere":"3.0.35","@ai-sdk/deepinfra":"^2.0.51","@ai-sdk/deepseek":"^2.0.35","@ai-sdk/gateway":"^3.0.114","@ai-sdk/google":"^3.0.73","@ai-sdk/google-vertex":"^4.0.128","@ai-sdk/groq":"^3.0.39","@ai-sdk/mistral":"^3.0.37","@ai-sdk/openai":"^3.0.63","@ai-sdk/openai-compatible":"^2.0.47","@ai-sdk/perplexity":"^3.0.33","@ai-sdk/provider":"^3.0.10","@ai-sdk/provider-utils":"^4.0.27","@ai-sdk/togetherai":"^2.0.51","@ai-sdk/vercel":"^2.0.49","@ai-sdk/xai":"^3.0.90","@aws-sdk/credential-providers":"^3.1047.0","@clack/prompts":"^1.4.0","@easbot/types":"workspace:*","@easbot/utils":"workspace:*","@easbot/codebase":"workspace:*","@easbot/gateway":"workspace:*","@easbot/local-model-sdk":"workspace:*","@easbot/memory":"workspace:*","@easbot/mcp":"workspace:*","@easbot/note":"workspace:*","@easbot/ollama-sdk":"workspace:*","@easbot/plugin":"workspace:*","@easbot/sdk":"workspace:*","@easbot/tui":"workspace:*","@hono/node-server":"^2.0.2","@hono/node-ws":"^1.3.1","@hono/standard-validator":"^0.2.2","@hono/zod-validator":"^0.7.6","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.9.0","@parcel/watcher":"^2.5.6","@standard-schema/spec":"^1.1.0","@wasmer/wasi":"^1.2.2","@zip.js/zip.js":"^2.8.26",ai:"^6.0.182","ai-gateway-provider":"^3.1.3",ajv:"^8.20.0",axios:"^1.16.1","bash-parser":"^0.5.0","bonjour-service":"^1.4.0",chalk:"^5.6.2",clipboardy:"^5.3.1",commander:"^14.0.3","decimal.js":"^10.6.0",dotenv:"^17.4.2",diff:"^9.0.0","drizzle-orm":"^0.45.2","fast-check":"^4.8.0",fuzzysort:"^3.1.0","gitlab-ai-provider":"^6.6.0",glob:"^13.0.6","google-auth-library":"^10.6.2","gray-matter":"^4.0.3",hono:"^4.12.18","hono-openapi":"^1.3.0",ignore:"^7.0.5","jieba-wasm":"^2.4.0",jiti:"^2.7.0","jsonc-parser":"^3.3.1","lru-cache":"^11.3.6",minimatch:"^10.2.5","node-gyp":"^12.3.0","node-html-parser":"^7.1.0","node-pty":"^1.1.0",open:"^11.0.0",remeda:"^2.34.1","tree-sitter-bash":"^0.25.1",turndown:"^7.2.4",ulid:"^3.0.2",undici:"^8.3.0","vscode-jsonrpc":"^8.2.1","vscode-languageserver-types":"^3.17.5",which:"^6.0.1","why-is-node-running":"^3.2.2",ws:"^8.20.1","xdg-basedir":"5.1.0",zod:"^4.4.3","zod-to-json-schema":"^3.25.2"},devDependencies:{"@actions/core":"^3.0.1","@actions/github":"^9.1.1","@octokit/graphql":"^9.0.3","@octokit/rest":"^22.0.1","@octokit/webhooks-types":"^7.6.1","@types/node":"^25.8.0","@types/turndown":"^5.0.6","@types/which":"^3.0.4","@types/ws":"^8.18.1","@vitest/coverage-v8":"^4.1.6",esbuild:"^0.28.0","esbuild-plugin-alias":"^0.2.1",tsup:"^8.5.1",tsx:"^4.22.0",typescript:"^6.0.3",vitest:"^4.1.6"}};var c="easbot",p=Filesystem.normalize(s.join(xdgData,c)),z=Filesystem.normalize(s.join(xdgCache,c)),N=Filesystem.normalize(s.join(xdgConfig,c)),B=Filesystem.normalize(s.join(xdgState,c)),v;(e=>{e.Path={get home(){return Filesystem.normalize(process.env.EASBOT_TEST_HOME||S.homedir())},data:p,bin:Filesystem.normalize(s.join(p,"bin")),log:Filesystem.normalize(s.join(p,"log")),cache:z,config:N,state:B};function C(){return (process.env.PATH||process.env.Path||"")+s.delimiter+e.Path.bin}e.getPathWithBin=C;let t=null,o=null;async function f(){if(t)return t;if(process.env.EASBOT_VERSION)return t=process.env.EASBOT_VERSION,t;try{t=l.version||"local";}catch{t="local";}return t||"local"}function k(){if(t)return t;if(process.env.EASBOT_VERSION)return t=process.env.EASBOT_VERSION,t;try{t=l.version||"local";}catch{t="local";}return t||"local"}e.getVersion=k;function d(){if(o)return o;if(process.env.EASBOT_CHANNEL)return o=process.env.EASBOT_CHANNEL,o;let i=k();return i==="local"||i.includes("dev")?o="local":i.includes("beta")||i.includes("alpha")?o="preview":o="latest",o||"local"}e.getChannel=d;function H(){return d()==="local"}e.isLocal=H;function V(){return d()==="preview"}e.isPreview=V;let u=false,n=null;async function I(){if(!u)return n||(n=(async()=>{await f(),await Promise.all([mkdir(e.Path.data,{recursive:true}),mkdir(e.Path.config,{recursive:true}),mkdir(e.Path.state,{recursive:true}),mkdir(e.Path.log,{recursive:true}),mkdir(e.Path.bin,{recursive:true}),mkdir(e.Path.cache,{recursive:true})]);let i=process.env.PATH||process.env.Path||"";process.env.PATH=i+s.delimiter+e.Path.bin,process.env.EASBOT_DATA_PATH=e.Path.data,process.env.EASBOT_CONFIG_PATH=e.Path.config,process.env.EASBOT_STATE_PATH=e.Path.state,process.env.EASBOT_LOG_PATH=e.Path.log,process.env.EASBOT_BIN_PATH=e.Path.bin,process.env.EASBOT_CACHE_PATH=e.Path.cache;let h="1",m=s.join(e.Path.cache,"version");if(await readFile(m,"utf-8").catch(()=>"0")!==h){try{let g=await readdir(e.Path.cache);await Promise.all(g.map(w=>rm(s.join(e.Path.cache,w),{recursive:!0,force:!0})));}catch{}await writeFile(m,h);}u=true;})(),n)}e.init=I;})(v||(v={}));
|
|
2
2
|
export{v as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-
|
|
1
|
+
import {a as a$1}from'./chunk-GRDTQW6K.mjs';import {a}from'./chunk-LFYBZHOI.mjs';var n=a.create({service:"tui-state-storage"}),i={toolsExpanded:true,showThinking:true,verboseLevel:"off",thinkingLevel:"low",messageLimit:50,localShellPermission:"ask"};async function h(o){try{let e=await a$1.read(["tui",o]),t={toolsExpanded:typeof e.toolsExpanded=="boolean"?e.toolsExpanded:i.toolsExpanded,showThinking:typeof e.showThinking=="boolean"?e.showThinking:i.showThinking,verboseLevel:e.verboseLevel==="on"||e.verboseLevel==="off"?e.verboseLevel:i.verboseLevel,thinkingLevel:e.thinkingLevel==="off"||e.thinkingLevel==="low"||e.thinkingLevel==="medium"||e.thinkingLevel==="high"?e.thinkingLevel:i.thinkingLevel,messageLimit:e.messageLimit===25||e.messageLimit===50||e.messageLimit===100?e.messageLimit:i.messageLimit,localShellPermission:e.localShellPermission==="on"||e.localShellPermission==="off"||e.localShellPermission==="ask"?e.localShellPermission:i.localShellPermission,contextMode:e.contextMode==="general"||e.contextMode==="coder"?e.contextMode:void 0,model:e.model,agent:e.agent,sessionId:e.sessionId};return n.debug("TUI state loaded",{sessionId:o,state:t}),t}catch(e){return e instanceof a$1.NotFoundError?n.debug("TUI state not found, using defaults",{sessionId:o}):n.warn("Failed to load TUI state, using defaults",{sessionId:o,error:e}),{...i}}}async function r(o,e){try{await a$1.write(["tui",o],e),n.debug("TUI state saved",{sessionId:o,state:e});}catch(t){n.error("Failed to save TUI state",{sessionId:o,error:t});}}async function c(o){if(!o.currentSessionId){n.warn("Cannot save TUI state: no session ID");return}let e={toolsExpanded:o.toolsExpanded,showThinking:o.showThinking,thinkingLevel:o.thinkingLevel,verboseLevel:o.verboseLevel,messageLimit:o.messageLimit,localShellPermission:o.localShellPermission,contextMode:o.contextMode,model:o.sessionInfo.model,agent:o.agent||void 0,sessionId:o.currentSessionId};await r(o.currentSessionId,e);}export{h as a,c as b};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$2,b}from'./chunk-
|
|
1
|
+
import {a as a$2,b}from'./chunk-KTMZPMCI.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import {a as a$1}from'./chunk-SB4J2R54.mjs';import _ from'path';import d from'fs/promises';import t from'zod';import {lazy,Fetch}from'@easbot/utils';var n;(r=>{let g=a.create({service:"models.dev"}),s=_.join(a$1.Path.cache,"models.json");r.Model=t.object({id:t.string(),name:t.string(),family:t.string().optional(),release_date:t.string(),attachment:t.boolean(),reasoning:t.boolean(),temperature:t.boolean(),tool_call:t.boolean(),interleaved:t.union([t.literal(true),t.object({field:t.enum(["reasoning_content","reasoning_details"])}).strict()]).optional(),cost:t.object({input:t.number(),output:t.number(),cache_read:t.number().optional(),cache_write:t.number().optional(),context_over_200k:t.object({input:t.number(),output:t.number(),cache_read:t.number().optional(),cache_write:t.number().optional()}).optional()}).optional(),limit:t.object({context:t.number(),input:t.number().optional(),output:t.number()}),modalities:t.object({input:t.array(t.enum(["text","audio","image","video","pdf"])),output:t.array(t.enum(["text","audio","image","video","pdf"]))}).optional(),experimental:t.boolean().optional(),status:t.enum(["alpha","beta","deprecated"]).optional(),options:t.record(t.string(),t.any()),headers:t.record(t.string(),t.string()).optional(),provider:t.object({npm:t.string()}).optional(),variants:t.record(t.string(),t.record(t.string(),t.any())).optional()}),r.Provider=t.object({api:t.string().optional(),name:t.string(),env:t.array(t.string()),id:t.string(),npm:t.string().optional(),models:t.record(t.string(),r.Model)});function a$3(){return a$2.EASBOT_MODELS_URL||"https://models.dev"}r.Data=lazy(async()=>{let e=a$2.EASBOT_MODELS_PATH??s,p=await d.readFile(e,"utf-8").then(i=>JSON.parse(i)).catch(()=>{});if(p)return p;let c=await import('./models-snapshot-XTWYGG3T.mjs').then(i=>i.snapshot).catch(()=>{});return c||(a$2.EASBOT_DISABLE_MODELS_FETCH?{}:(await Fetch.get(a$3())).data)});async function E(){return await(0, r.Data)()}r.get=E;async function v(){try{let e=await Fetch.get(a$3(),{headers:{"User-Agent":`EasBot/${b.getVersion()}`},responseType:"text"});e.ok&&(await d.writeFile(s,e.data),r.Data.reset());}catch(e){g.warn("Failed to refresh models from models.dev, using cached or snapshot data",{error:e instanceof Error?e.message:String(e),url:a$3()});}}r.refresh=v;})(n||(n={}));function z(){a$2.EASBOT_DISABLE_MODELS_FETCH||(n.refresh(),setInterval(async()=>{await n.refresh();},60*1e3*60).unref());}
|
|
2
2
|
export{n as a,z as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{a as CommandMetadataSchema,c as createCommandFromMarkdown,f as define,b as loadCommandFromFile,e as replaceTemplateVars,d as scanCommands}from'./chunk-
|
|
1
|
+
export{a as CommandMetadataSchema,c as createCommandFromMarkdown,f as define,b as loadCommandFromFile,e as replaceTemplateVars,d as scanCommands}from'./chunk-75IQNF4I.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{O as Compaction,o as CompactionCache,n as DEFAULT_CACHE_CONFIG,p as createCompactionCache,q as subscribeCacheEvents}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{fb as Agent,db as Command,pb as Config,ob as ConfigDirectoryTypoError,lb as Info,v as InvalidError,u as JsonError,gb as Keybinds,jb as Layout,_a as Mcp,Xa as McpLocal,Ya as McpOAuth,Za as McpRemote,Wa as ModelId,cb as Permission,$a as PermissionAction,ab as PermissionObject,bb as PermissionRule,kb as Provider,ib as Server,eb as Skills,Sa as SubAgent,Ta as SubAgentConfigSchema,Ra as SubAgentModel,Pa as SubAgentRunMode,Qa as SubAgentTransportType,hb as TUI,D as deduplicatePlugins,H as directories,G as get,U as getACPClientsConfig,T as getACPServerConfig,X as getAcpAgentName,V as getAcpAgentRuntimeConfig,W as getAcpModelConfig,ga as getFileCacheConfig,J as getGlobal,C as getPluginName,Va as getSubAgentConfig,ha as getTokenEstimationConfig,I as global,t as installDependencies,L as isAutoCompactEnabled,N as isBackupEnabled,M as isPruneEnabled,x as load,S as loadACPConfig,z as loadAgent,ca as loadCodebase,A as loadCommand,ia as loadContextConfig,w as loadFile,ea as loadKnowledge,da as loadMemory,ba as loadNote,B as loadPlugin,Ua as loadSubAgentConfig,r as mergeConfigConcatArrays,s as needsInstall,y as parseConfig,E as state,mb as update,nb as updateGlobal,F as waitForDependencies}from'./chunk-
|
|
1
|
+
export{fb as Agent,db as Command,pb as Config,ob as ConfigDirectoryTypoError,lb as Info,v as InvalidError,u as JsonError,gb as Keybinds,jb as Layout,_a as Mcp,Xa as McpLocal,Ya as McpOAuth,Za as McpRemote,Wa as ModelId,cb as Permission,$a as PermissionAction,ab as PermissionObject,bb as PermissionRule,kb as Provider,ib as Server,eb as Skills,Sa as SubAgent,Ta as SubAgentConfigSchema,Ra as SubAgentModel,Pa as SubAgentRunMode,Qa as SubAgentTransportType,hb as TUI,D as deduplicatePlugins,H as directories,G as get,U as getACPClientsConfig,T as getACPServerConfig,X as getAcpAgentName,V as getAcpAgentRuntimeConfig,W as getAcpModelConfig,ga as getFileCacheConfig,J as getGlobal,C as getPluginName,Va as getSubAgentConfig,ha as getTokenEstimationConfig,I as global,t as installDependencies,L as isAutoCompactEnabled,N as isBackupEnabled,M as isPruneEnabled,x as load,S as loadACPConfig,z as loadAgent,ca as loadCodebase,A as loadCommand,ia as loadContextConfig,w as loadFile,ea as loadKnowledge,da as loadMemory,ba as loadNote,B as loadPlugin,Ua as loadSubAgentConfig,r as mergeConfigConcatArrays,s as needsInstall,y as parseConfig,E as state,mb as update,nb as updateGlobal,F as waitForDependencies}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';export{h as getAgentRegistryConfig,m as getAgentSyncConfig,k as getAuthConfig,d as getChannelConfig,e as getConnectionPoolConfig,l as getGatewayClusterConfig,c as getGatewayServerConfig,j as getHTTPSConfig,f as getMessageQueueConfig,i as getSessionConfig,b as loadGatewayConfig}from'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-
|
|
2
|
-
`));}catch(o){l.error("File search failed",{query:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.file.search.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});}),n.command("read <path>").description(i("debug.file.read.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{File:t}=await import('./file-
|
|
3
|
-
`));}catch(i$1){y.error("File listing failed",{error:i$1 instanceof Error?i$1.message:String(i$1)}),console.error(e(i("debug.ripgrep.files.error",{vars:{error:i$1 instanceof Error?i$1.message:String(i$1)}}))),process.exit(1);}});}),n.command("search <pattern>").description(i("debug.ripgrep.search.command.describe")).option("--glob <glob...>",i("debug.ripgrep.search.option.glob.description")).option("--limit <number>",i("debug.ripgrep.search.option.limit.description")).action(async(r,t)=>{await a$1(s.config.directory,async()=>{let{Ripgrep:o}=await import('./ripgrep-
|
|
1
|
+
import {a as a$1}from'./chunk-R4BPTF6V.mjs';import {e}from'./chunk-M3K32WJV.mjs';import'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import {c,d}from'./chunk-X6ISXWBN.mjs';import {PKG}from'@easbot/utils';var v=a.create({service:"debug.config"});function k(g,s){g.command("config").description(i("debug.config.command.describe")).action(async()=>{v.debug("Loading configuration");try{let r=await s.sdk.config.get();console.log(JSON.stringify(r.data,null,2));}catch(r){v.error("Failed to load configuration",{error:r instanceof Error?r.message:String(r)}),console.error(e(i("debug.config.error.load_failed",{vars:{error:r instanceof Error?r.message:String(r)}}))),process.exit(1);}});}var l=a.create({service:"debug.file"});function F(g,s){let n=g.command("file").description(i("debug.file.command.describe"));n.command("search <query>").description(i("debug.file.search.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{File:t}=await import('./file-Q52INNX3.mjs');l.debug("Searching files",{query:r});try{let o=await t.search({query:r});console.log(o.join(`
|
|
2
|
+
`));}catch(o){l.error("File search failed",{query:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.file.search.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});}),n.command("read <path>").description(i("debug.file.read.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{File:t}=await import('./file-Q52INNX3.mjs');l.debug("Reading file",{path:r});try{let o=await t.read(r);console.log(JSON.stringify(o,null,2));}catch(o){l.error("File read failed",{path:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.file.read.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});}),n.command("status").description(i("debug.file.status.command.describe")).action(async()=>{await a$1(s.config.directory,async()=>{let{File:r}=await import('./file-Q52INNX3.mjs');l.debug("Getting file status");try{let t=await r.status();console.log(JSON.stringify(t,null,2));}catch(t){l.error("File status failed",{error:t instanceof Error?t.message:String(t)}),console.error(e(i("debug.file.status.error",{vars:{error:t instanceof Error?t.message:String(t)}}))),process.exit(1);}});}),n.command("list <path>").description(i("debug.file.list.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{File:t}=await import('./file-Q52INNX3.mjs');l.debug("Listing files",{path:r});try{let o=await t.list(r);console.log(JSON.stringify(o,null,2));}catch(o){l.error("File list failed",{path:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.file.list.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});}),n.command("tree [dir]").description(i("debug.file.tree.command.describe")).option("--limit <number>",i("debug.file.tree.option.limit.description")).action(async(r,t)=>{await a$1(s.config.directory,async()=>{let{Ripgrep:o}=await import('./ripgrep-7VVA7THG.mjs'),{Instance:p}=await import('./instance-S5GBRS3K.mjs');l.debug("Showing file tree",{dir:r});try{let i=await o.tree({cwd:r||p.directory,limit:t?.limit||200});console.log(JSON.stringify(i,null,2));}catch(i$1){l.error("File tree failed",{dir:r,error:i$1 instanceof Error?i$1.message:String(i$1)}),console.error(e(i("debug.file.tree.error",{vars:{error:i$1 instanceof Error?i$1.message:String(i$1)}}))),process.exit(1);}});});}var u=a.create({service:"debug.lsp"});function x(g,s){let n=g.command("lsp").description(i("debug.lsp.command.describe"));n.command("diagnostics <file>").description(i("debug.lsp.diagnostics.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{LSP:t}=await import('./lsp-4VYPJGAN.mjs');u.debug("Getting diagnostics",{file:r});try{await t.touchFile(r,!0),await PKG.sleep(1e3);let o=await t.diagnostics();console.log(JSON.stringify(o,null,2));}catch(o){u.error("Failed to get diagnostics",{file:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.lsp.diagnostics.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});}),n.command("symbols <query>").description(i("debug.lsp.symbols.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{LSP:t}=await import('./lsp-4VYPJGAN.mjs');u.debug("Searching workspace symbols",{query:r});try{var o=[];try{let d=c(o,a.Default.time("symbols"));let h=await t.workspaceSymbol(r);console.log(JSON.stringify(h,null,2));}catch(p){var i$1=p,S=!0;}finally{d(o,i$1,S);}}catch(d){u.error("Failed to search symbols",{query:r,error:d instanceof Error?d.message:String(d)}),console.error(e(i("debug.lsp.symbols.error",{vars:{error:d instanceof Error?d.message:String(d)}}))),process.exit(1);}});}),n.command("document-symbols <file>").description(i("debug.lsp.document_symbols.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{LSP:t}=await import('./lsp-4VYPJGAN.mjs');u.debug("Getting document symbols",{file:r});try{var o=[];try{let d=c(o,a.Default.time("document-symbols"));let h=await t.documentSymbol({file:r});console.log(JSON.stringify(h,null,2));}catch(p){var i$1=p,S=!0;}finally{d(o,i$1,S);}}catch(d){u.error("Failed to get document symbols",{file:r,error:d instanceof Error?d.message:String(d)}),console.error(e(i("debug.lsp.document_symbols.error",{vars:{error:d instanceof Error?d.message:String(d)}}))),process.exit(1);}});});}var y=a.create({service:"debug.ripgrep"});function L(g,s){let n=g.command("rg").description(i("debug.ripgrep.command.describe"));n.command("tree").description(i("debug.ripgrep.tree.command.describe")).option("--limit <number>",i("debug.ripgrep.tree.option.limit.description")).action(async(r,t)=>{await a$1(s.config.directory,async()=>{let{Ripgrep:o}=await import('./ripgrep-7VVA7THG.mjs'),{Instance:p}=await import('./instance-S5GBRS3K.mjs');y.debug("Showing file tree",{limit:t?.limit});try{let i=await o.tree({cwd:p.directory,limit:t?.limit});console.log(i);}catch(i$1){y.error("File tree failed",{error:i$1 instanceof Error?i$1.message:String(i$1)}),console.error(e(i("debug.ripgrep.tree.error",{vars:{error:i$1 instanceof Error?i$1.message:String(i$1)}}))),process.exit(1);}});}),n.command("files").description(i("debug.ripgrep.files.command.describe")).option("--query <string>",i("debug.ripgrep.files.option.query.description")).option("--glob <string>",i("debug.ripgrep.files.option.glob.description")).option("--limit <number>",i("debug.ripgrep.files.option.limit.description")).action(async(r,t)=>{await a$1(s.config.directory,async()=>{let{Ripgrep:o}=await import('./ripgrep-7VVA7THG.mjs'),{Instance:p}=await import('./instance-S5GBRS3K.mjs');y.debug("Listing files",{query:t?.query,glob:t?.glob,limit:t?.limit});try{let i=[];for await(let S of o.files({cwd:p.directory,glob:t?.glob?[t.glob]:void 0}))if(i.push(S),t?.limit&&i.length>=t.limit)break;console.log(i.join(`
|
|
3
|
+
`));}catch(i$1){y.error("File listing failed",{error:i$1 instanceof Error?i$1.message:String(i$1)}),console.error(e(i("debug.ripgrep.files.error",{vars:{error:i$1 instanceof Error?i$1.message:String(i$1)}}))),process.exit(1);}});}),n.command("search <pattern>").description(i("debug.ripgrep.search.command.describe")).option("--glob <glob...>",i("debug.ripgrep.search.option.glob.description")).option("--limit <number>",i("debug.ripgrep.search.option.limit.description")).action(async(r,t)=>{await a$1(s.config.directory,async()=>{let{Ripgrep:o}=await import('./ripgrep-7VVA7THG.mjs'),{Instance:p}=await import('./instance-S5GBRS3K.mjs');y.debug("Searching files",{pattern:r,glob:t?.glob,limit:t?.limit});try{let i=await o.search({cwd:p.directory,pattern:r,glob:t?.glob,limit:t?.limit});console.log(JSON.stringify(i,null,2));}catch(i$1){y.error("Search failed",{pattern:r,error:i$1 instanceof Error?i$1.message:String(i$1)}),console.error(e(i("debug.ripgrep.search.error",{vars:{error:i$1 instanceof Error?i$1.message:String(i$1)}}))),process.exit(1);}});});}var G=a.create({service:"debug.scrap"});function P(g,s){g.command("scrap").description(i("debug.scrap.command.describe")).action(async()=>{G.debug("Listing projects");let r=await s.sdk.project.list();console.log(JSON.stringify(r.data,null,2));});}var O=a.create({service:"debug.skill"});function J(g,s){g.command("skill").description(i("debug.skill.command.describe")).action(async()=>{O.debug("Listing skills");try{let r=await s.sdk.app.skills();console.log(JSON.stringify(r.data,null,2));}catch(r){O.error("Failed to list skills",{error:r instanceof Error?r.message:String(r)}),console.error(e(i("debug.skill.error.list_failed",{vars:{error:r instanceof Error?r.message:String(r)}}))),process.exit(1);}});}var w=a.create({service:"debug.snapshot"});function N(g,s){let n=g.command("snapshot").description(i("debug.snapshot.command.describe"));n.command("track").description(i("debug.snapshot.track.command.describe")).action(async()=>{await a$1(s.config.directory,async()=>{let{Snapshot:r}=await import('./snapshot-PXRGQ6JR.mjs');w.debug("Tracking snapshot");try{let t=await r.track();console.log(t);}catch(t){w.error("Snapshot track failed",{error:t instanceof Error?t.message:String(t)}),console.error(e(i("debug.snapshot.track.error",{vars:{error:t instanceof Error?t.message:String(t)}}))),process.exit(1);}});}),n.command("patch <hash>").description(i("debug.snapshot.patch.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{Snapshot:t}=await import('./snapshot-PXRGQ6JR.mjs');w.debug("Getting snapshot patch",{hash:r});try{let o=await t.patch(r);console.log(o);}catch(o){w.error("Snapshot patch failed",{hash:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.snapshot.patch.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});}),n.command("diff <hash>").description(i("debug.snapshot.diff.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{Snapshot:t}=await import('./snapshot-PXRGQ6JR.mjs');w.debug("Getting snapshot diff",{hash:r});try{let o=await t.diff(r);console.log(o);}catch(o){w.error("Snapshot diff failed",{hash:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.snapshot.diff.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});});}a.create({service:"debug"});function Nr(g,s){let n=g.command("debug").description(i("debug.command.description"));k(n,s),F(n,s),x(n,s),L(n,s),P(n,s),J(n,s),N(n,s),n.command("agent <name>").description(i("debug.agent.command.describe")).option("--tool <tool-id>",i("debug.agent.option.tool.description")).option("--params <json>",i("debug.agent.option.params.description")).action(async(r,t)=>{let{registerAgentCommand:o}=await import('./agent-JHX64CI6.mjs');o(s,r,t);}),n.command("paths").description(i("debug.paths.command.describe")).action(async()=>{let{Global:r}=await import('./global-XQYOBWZR.mjs');for(let[t,o]of Object.entries(r.Path))console.log(`${t.padEnd(10)}${o}`);}),n.command("wait").description(i("debug.wait.command.describe")).action(async()=>{await a$1(s.config.directory,async()=>{await new Promise(r=>setTimeout(r,1e3*60*60*24));});});}export{Nr as registerDebugCommands};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{ka as File}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-LAHYVX5K.mjs';import {a as a$2}from'./chunk-
|
|
2
|
-
${i("gateway.shutdown.received",{vars:{signal:s}})}`);try{await Gateway.stop(),n.debug("Gateway state destroyed"),console.log(d(i("gateway.shutdown.completed")));}catch(e){n.error("Error during shutdown",{error:e instanceof Error?e.message:String(e)});}process.exit(0);};process.on("SIGINT",()=>{d$1("SIGINT").catch(console.error);}),process.on("SIGTERM",()=>{d$1("SIGTERM").catch(console.error);});}async function z(d,s){n.debug("createAgentAdapter: starting",{directory:d}),n.debug("createAgentAdapter: calling Instance.provide");let e=await Oa.provide({directory:d,fn:async()=>{n.debug("createAgentAdapter: Instance.provide fn called");let{Project:l}=await import('./project-
|
|
1
|
+
import {a as a$1}from'./chunk-LAHYVX5K.mjs';import {a as a$2}from'./chunk-R4BPTF6V.mjs';import'./chunk-VII7JKGB.mjs';import {g,f,e,d,h,k,a as a$3,c as c$1,b,i as i$1}from'./chunk-M3K32WJV.mjs';import {Aa,Oa,Ba,Y}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import {c}from'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import {a as a$4}from'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';import'commander';import {Gateway}from'@easbot/gateway';import {Identifier,getProxyConfig}from'@easbot/utils';var P=a.create({service:"local-agent"}),_;(o=>{function d(r){return r.map(a=>a.type==="image"?{type:"file",mime:a.mime||"image/jpeg",url:typeof a.image=="string"?a.image:a.image.toString()}:a.type==="file"&&"data"in a&&!("url"in a)?{...a,url:typeof a.data=="string"?a.data:a.data.toString()}:a)}async function s(r){let{source:a,title:i,agent:l,parts:c,model:m,system:p,tools:A}=r;P.debug("LocalAgent.run started",{source:a,title:i,agent:l});let H=Identifier.ascending("message"),I=c.find(y=>y.type==="command");if(I){P.debug("LocalAgent.run: executing command",{command:I.command,arguments:I.arguments});let y=await Aa.command({sessionId:a,messageId:H,agent:l,model:m?`${m.providerId}/${m.modelId}`:void 0,arguments:I.arguments??"",command:I.command});return {title:i,output:y.output,metadata:{sessionId:a,source:a,agent:l,success:y.success,error:y.error,...y.metadata}}}let j=(await Aa.prompt({messageId:H,sessionId:a,system:p,tools:A,agent:l,model:m,parts:d(c)})).parts.findLast(y=>y.type==="text")?.text??"";return P.debug("LocalAgent.run completed",{source:a,title:i,agent:l,contentLength:j.length}),{title:i,output:j,metadata:{sessionId:a,source:a,agent:l}}}o.run=s;async function e(r,a){P.debug("LocalAgent.runAsync started",{title:r.title,agent:r.agent}),(async()=>{try{let i=await o.run(r);P.debug("LocalAgent.runAsync completed, triggering callback",{title:r.title,agent:r.agent,contentLength:i.output.length}),await a(i);}catch(i){P.error("LocalAgent.runAsync failed",{title:r.title,agent:r.agent,error:String(i)}),await a({title:r.title,output:`Error: ${i}`,metadata:{error:String(i)}});}})();}o.runAsync=e;})(_||(_={}));var n=a.create({service:"cli-command-gateway"});function O(d$1,s,e){let o=b();console.log(""),console.log(d(i("gateway.server.started"))),console.log(k(60)),e?.directory&&console.log(i$1(i("gateway.field.directory"),e.directory,15));let r={stopped:a$3.muted,starting:a$3.info,running:a$3.success,stopping:a$3.info,error:a$3.error},a=c$1(o,r[d$1]||a$3.muted,d$1.toUpperCase());if(console.log(i$1(i("gateway.field.status"),a,15)),d$1==="running"){let l=s.https?.enabled?"wss":"ws",c=s.path||"/",m=`${l}://${s.hostname}:${s.port}${c}`;console.log(i$1(i("gateway.field.ws_url"),m,15)),console.log(i$1(i("gateway.field.port"),String(s.port),15)),console.log(i$1(i("gateway.field.hostname"),s.hostname,15)),console.log(i$1(i("gateway.field.tls"),s.https?.enabled?i("common.enabled"):i("common.disabled"),15));}e?.debug!==void 0&&console.log(i$1(i("gateway.field.debug"),e.debug?c$1(o,a$3.success,i("common.enabled")):c$1(o,a$3.muted,i("common.disabled")),15));let i$2=getProxyConfig();if(i$2.enabled){let l=i$2.https||i$2.http||"configured";console.log(i$1(i("gateway.field.proxy"),l,15));}e?.error&&console.log(i$1(i("gateway.field.error"),e.error,15)),console.log(k(60)),console.log("");}function F(){let d$1=async s=>{n.debug(`Received ${s}, shutting down...`),console.log(`
|
|
2
|
+
${i("gateway.shutdown.received",{vars:{signal:s}})}`);try{await Gateway.stop(),n.debug("Gateway state destroyed"),console.log(d(i("gateway.shutdown.completed")));}catch(e){n.error("Error during shutdown",{error:e instanceof Error?e.message:String(e)});}process.exit(0);};process.on("SIGINT",()=>{d$1("SIGINT").catch(console.error);}),process.on("SIGTERM",()=>{d$1("SIGTERM").catch(console.error);});}async function z(d,s){n.debug("createAgentAdapter: starting",{directory:d}),n.debug("createAgentAdapter: calling Instance.provide");let e=await Oa.provide({directory:d,fn:async()=>{n.debug("createAgentAdapter: Instance.provide fn called");let{Project:l}=await import('./project-OEBG6JHE.mjs');n.debug("createAgentAdapter: Project imported, calling fromDirectory");let{project:c,sandbox:m}=await l.fromDirectory(d);n.debug("createAgentAdapter: fromDirectory completed",{projectId:c.id});let p={directory:d,worktree:m,project:c};return n.debug("createAgentAdapter: fn returning",{directory:d,projectId:c.id}),p}});n.debug("createAgentAdapter: Instance.provide completed",{directory:e.directory,projectId:e.project.id});let o={Path:{home:a$4.Path.home,data:a$4.Path.data,cache:a$4.Path.cache,config:a$4.Path.config,state:a$4.Path.state,log:a$4.Path.log,bin:a$4.Path.bin}};n.debug("global paths injected",{data:o.Path.data,log:o.Path.log,home:o.Path.home});let r={directory:e.directory,worktree:e.worktree};return await Y.state(),{subAgentRunner:{async run(l){try{let c={source:l.source||l.sessionId||"gateway",title:l.title||"Message from gateway",agent:l.agent||"gateway",parts:l.parts||[]},m=await Y.run(c);return {success:!0,output:m.output,metadata:m.metadata}}catch(c){return n.error("SubAgent.run failed",{error:c instanceof Error?c.message:String(c)}),{success:false,error:c instanceof Error?c.message:String(c)}}}},localAgentRunner:{async run(l){try{let c=!l.source&&s.sdk,m=l.source||void 0;if(c){let A=await s.sdk.session.create({directory:s.config.directory});A.data&&(m=A.data.id,n.debug("LocalAgent.run: created new session",{sessionId:m}));}if(!m)throw new Error("No session ID available");let p=await _.run({...l,source:m});return n.debug("LocalAgent.run completed",{title:p.title,sessionId:m}),p}catch(c){throw n.error("LocalAgent.run failed",{error:c instanceof Error?c.message:String(c)}),c}}},hookRegistry:Ba,global:o,instance:r,sdk:s.sdk}}async function B(d,s,e$1){n.debug("Gateway start command executed",{options:s});try{let o=e$1.config.directory;n.debug("Working directory resolved",{directory:o});let r=a$1(o);if(!r.valid)throw n.error("Working directory validation failed",{directory:o,error:r.error}),new Error(`Invalid working directory: ${r.error}`);let a=r.normalizedPath;n.debug("Working directory validated",{validatedDirectory:a}),console.log(g(i("gateway.directory.resolved",{vars:{cwd:a}}))),await a$2(a,async()=>{let{initLog:i$1,setAgentAdapter:l}=await import('@easbot/gateway');await i$1({logDir:process.env.EASBOT_LOG_PATH??process.cwd(),print:e$1.config.print_logs??!1,dev:e$1.config.debug??!1,level:e$1.config.log_level??"INFO"});let m=await z(a,e$1);n.debug("executeGatewayStart: createAgentAdapter completed"),l(m),n.debug("Agent adapter injected into Gateway");let p=await c();if(n.debug("Gateway server configuration",{port:p.port,hostname:p.hostname,path:p.path,tls:p.https?.enabled,enabled:p.enabled}),!p.enabled){n.warn("Gateway server is disabled by configuration"),console.log(f(i("gateway.disabled")));return}await Gateway.start(p),n.info("Gateway server started successfully"),O("running",p,{directory:a,debug:e$1.config.debug}),F(),await new Promise(()=>{});});}catch(o){n.error("Failed to start Gateway server",{error:o instanceof Error?o.message:String(o)}),console.error(e(i("gateway.error.start_failed",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}}async function K(d$1,s){n.debug("Gateway stop command executed",{options:d$1});try{let e=s.config.directory;await a$2(e,async()=>{if(Gateway.getStatus()==="stopped"){console.log(g(i("gateway.status.already_stopped")));return}await Gateway.stop(),console.log(d(i("gateway.stopped")));let r=await c();O("stopped",r,{directory:e});});}catch(e$1){n.error("Failed to stop Gateway server",{error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i("gateway.error.stop_failed",{vars:{error:e$1 instanceof Error?e$1.message:String(e$1)}}))),process.exit(1);}}async function q(d$1,s,e$1){n.debug("Gateway restart command executed",{options:s});try{let o=e$1.config.directory;await a$2(o,async()=>{let r=await c();if(!r.enabled){n.warn("Gateway server is disabled by configuration"),console.log(f(i("gateway.disabled")));return}console.log(g(i("gateway.restarting"))),await Gateway.restart(r),console.log(d(i("gateway.restarted"))),O("running",r,{directory:o,debug:e$1.config.debug}),F(),await new Promise(()=>{});});}catch(o){n.error("Failed to restart Gateway server",{error:o instanceof Error?o.message:String(o)}),console.error(e(i("gateway.error.restart_failed",{vars:{error:o instanceof Error?o.message:String(o)}}))),await a.close(),process.exit(1);}}async function J(d,s){n.debug("Gateway status command executed",{options:d});try{let e=s.config.directory;await a$2(e,async()=>{let o=Gateway.getStatus(),a=(await Gateway.get())?.getStatus(),i$2=await c();console.log(""),console.log(h(i("gateway.status.title"))),console.log(k(60));let l={stopped:a$3.muted,starting:a$3.info,running:a$3.success,stopping:a$3.info,error:a$3.error},c$2=c$1(b(),l[o]||a$3.muted,o.toUpperCase());if(console.log(i$1(i("gateway.field.status"),c$2,15)),a){console.log(i$1(i("gateway.field.port"),String(a.port),15)),console.log(i$1(i("gateway.field.hostname"),a.hostname||i$2.hostname,15)),console.log(i$1(i("gateway.field.path"),i$2.path||"/",15)),console.log(i$1(i("gateway.field.connections"),String(a.connections||0),15));let m=i$2.https?.enabled?"wss":"ws",p=i$2.path||"/",A=`${m}://${a.hostname||i$2.hostname}:${a.port}${p}`;console.log(i$1(i("gateway.field.ws_url"),A,15));}console.log(k(60)),console.log("");});}catch(e$1){n.error("Failed to get Gateway status",{error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i("gateway.error.status_failed",{vars:{error:e$1 instanceof Error?e$1.message:String(e$1)}}))),process.exit(1);}}async function Q(d,s){n.debug("Gateway config show command executed",{options:d});try{let e=s.config.directory;await a$2(e,async()=>{let o=await Gateway.config();if(!o){console.log(f(i("gateway.config.not_found")));return}if(console.log(""),console.log(h(i("gateway.config.heading"))),console.log(k(60)),o.server&&(console.log(h(i("gateway.config.server"))),console.log(i$1(" enabled",String(o.server.enabled??!0),12)),console.log(i$1(" port",String(o.server.port??3001),12)),console.log(i$1(" hostname",o.server.hostname??"0.0.0.0",12)),console.log(i$1(" tls",String(o.server.https?.enabled??!1),12)),console.log(i$1(" cors",String(o.server.cors??!0),12))),o.channels){console.log(""),console.log(h(i("gateway.config.channels")));let r=Object.keys(o.channels);if(r.length===0)console.log(g(" "+i("gateway.config.no_channels")));else for(let a of r){let i$2=o.channels[a];i$2&&console.log(i$1(` ${a}`,i$2.enabled?i("common.enabled"):i("common.disabled"),12));}}o.connectionPool&&(console.log(""),console.log(h(i("gateway.config.connection_pool"))),console.log(i$1(" maxConnectionsPerChannel",String(o.connectionPool.maxConnectionsPerChannel??100),25)),console.log(i$1(" idleTimeout",`${o.connectionPool.idleTimeout??3e5}ms`,25)),console.log(i$1(" reuseStrategy",o.connectionPool.reuseStrategy??"lru",25))),o.agentRegistry&&(console.log(""),console.log(h(i("gateway.config.agent_registry"))),console.log(i$1(" heartbeatInterval",`${o.agentRegistry.heartbeatInterval??3e4}ms`,20)),console.log(i$1(" heartbeatTimeout",`${o.agentRegistry.heartbeatTimeout??9e4}ms`,20))),console.log(k(60)),console.log("");});}catch(e$1){n.error("Failed to show Gateway config",{error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i("gateway.error.config_failed",{vars:{error:e$1 instanceof Error?e$1.message:String(e$1)}}))),process.exit(1);}}function Ae(d,s){let e=d.command("gateway").description(i("gateway.command.description")).helpOption("-h, --help",i("gateway.help.option")).addHelpText("after",`
|
|
3
3
|
|
|
4
4
|
${i("gateway.help.examples")}
|
|
5
5
|
easbot gateway start # ${i("gateway.help.example.default")}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {e}from'./chunk-M3K32WJV.mjs';import {ya}from'./chunk-
|
|
1
|
+
import {e}from'./chunk-M3K32WJV.mjs';import {ya}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';function g(o,a){o.command("generate").description(i("generate.command.description")).action(async()=>{await c();});}async function c(){try{let o=await ya();for(let t of Object.values(o.paths??{}))for(let r of ["get","post","put","delete","patch"]){let e=t[r];e?.operationId&&(e["x-codeSamples"]=[{lang:"js",source:['import { createEasbotClient } from "@easbot/sdk"',"","const client = createEasbotClient()",`await client.${e.operationId}({`," ...","})"].join(`
|
|
2
2
|
`)}]);}let a=JSON.stringify(o,null,2);await new Promise((t,r)=>{process.stdout.write(a,e=>{e?r(e):t();});});}catch(o){console.error(e(i("generate.error.failed",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}}export{g as registerGenerateCommand};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-TYD2M4SP.mjs';import'./chunk-FXOUIXIL.mjs';import'./chunk-CQVEAYYW.mjs';import {g,e,h,i as i$1,k,d}from'./chunk-M3K32WJV.mjs';import {Oa}from'./chunk-
|
|
1
|
+
import {a as a$1}from'./chunk-TYD2M4SP.mjs';import'./chunk-FXOUIXIL.mjs';import'./chunk-CQVEAYYW.mjs';import {g,e,h,i as i$1,k,d}from'./chunk-M3K32WJV.mjs';import {Oa}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';import {Shell,PKG,Fetch}from'@easbot/utils';var m=a.create({service:"cli-command-github"}),R=".github/workflows/opencode.yml",S="https://github.com/apps/opencode-agent";function z(e,t){let r=e.command("github").description(i("github.command.description"));r.command("install").description(i("github.command.install.description")).option("--provider <provider>",i("github.option.provider")).option("--model <model>",i("github.option.model")).action(async a=>{m.debug("Installing GitHub app"),await j(t,a);}),r.command("run").description(i("github.command.run.description")).option("--event <json>",i("github.option.event")).option("--token <token>",i("github.option.token")).action(async a=>{m.debug("Running GitHub agent",{options:a}),console.log(g(i("github.run.info")));});}async function j(e$1,t){try{Oa.project.vcs!=="git"&&(console.error(e(i("github.error.not_git_repo"))),process.exit(1)),console.log(h(i("github.install.starting")));let a=await W(),n=E(a);n||(console.error(e(i("github.error.parse_remote"))),process.exit(1)),console.log(i$1(i("github.field.owner"),n.owner)),console.log(i$1(i("github.field.repo"),n.repo)),console.log(k(60)),console.log(g(i("github.install.step1")));let i$2=`${S}?target=${n.owner}/${n.repo}`;console.log(g(i("github.install.open_url",{vars:{url:i$2}}))),await F(i$2),console.log(g(i("github.install.waiting")));let s=0,d$1=60;for(;s<d$1;){if(await H(n.owner,n.repo)){console.log(d(i("github.install.installed")));break}s++,await D(1e3);}s>=d$1&&(console.error(e(i("github.install.timeout"))),process.exit(1));let c=t.provider||await L(e$1),v=t.model||await T(e$1,c);console.log(k(60)),console.log(g(i("github.install.generating_workflow"))),await A(e$1,n.owner,n.repo,c,v),console.log(d(i("github.install.workflow_created",{vars:{file:R}}))),console.log(""),console.log(h(i("github.install.next_steps"))),console.log(g("1. "+i("github.install.step1_hint"))),console.log(g("2. "+i("github.install.step2_hint",{vars:{owner:n.owner,repo:n.repo}}))),console.log(g("3. "+i("github.install.step3_hint"))),m.debug("GitHub app installation complete",{owner:n.owner,repo:n.repo});}catch(r){m.error("Failed to install GitHub app",{error:r instanceof Error?r.message:String(r)}),console.error(e(i("github.install.error",{vars:{error:r instanceof Error?r.message:String(r)}}))),process.exit(1);}}async function W(){let e=process.platform==="win32"?"cmd":void 0,t=Shell.spawn(e,"git remote get-url origin");if(await t.exited!==0)throw new Error("Failed to get git remote");return await PKG.nodeReadableStreamToText(t.stdout)}function E(e){let t=e.match(/^(?:(?:https?|ssh):\/\/)?(?:git@)?github\.com[:/]([^/]+)\/([^/]+?)(?:\.git)?$/);return t?{owner:t[1],repo:t[2]}:null}async function F(e){let t=process.platform==="darwin"?`open ${e}`:process.platform==="win32"?`start ${e}`:`xdg-open ${e}`;try{let r=process.platform==="win32"?"cmd":void 0;await Shell.spawn(r,t).exited;}catch{m.debug("Could not open browser automatically");}}async function H(e,t){try{return !!(await Fetch.get(`https://api.opencode.ai/get_github_app_installation?owner=${e}&repo=${t}`)).data?.installation}catch{return false}}async function L(e){let{data:t}=await e.sdk.config.providers({}),r=t?.providers||[],a={easbot:0,anthropic:1,openai:2,google:3},n=r.sort((i,s)=>(a[i.id]??99)-(a[s.id]??99));return console.log(""),console.log(g(i("github.install.select_provider"))),console.log(a$1({columns:[{key:"index",header:"#",minWidth:4},{key:"id",header:i("github.table.header.id"),minWidth:15},{key:"name",header:i("github.table.header.name"),flex:true},{key:"hint",header:"",minWidth:15}],rows:n.map((i,s)=>({index:`${s+1}`,id:i.id,name:i.name||i.id,hint:i.id==="easbot"?"recommended":""})),width:process.stdout.columns||80,border:"unicode"})),console.log(""),n[0]?.id||"easbot"}async function T(e,t){let{data:r}=await e.sdk.config.providers({}),n=(r?.providers||[]).find(s=>s.id===t);if(!n?.models)return "default";let i$1=Object.entries(n.models);if(i$1.length===0)return "default";console.log(""),console.log(g(i("github.install.select_model")));for(let s=0;s<i$1.length;s++){let[d,c]=i$1[s];console.log(` ${s+1}. ${c.name||d}`);}return console.log(""),i$1[0]?.[0]||"default"}async function A(e,t,r,a,n){let{data:i}=await e.sdk.config.providers({}),c=(i?.providers||[]).find(p=>p.id===a)?.env||[],y=`name: opencode
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
issue_comment:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{a as Global}from'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {h,e,d}from'./chunk-M3K32WJV.mjs';import {Oa}from'./chunk-
|
|
1
|
+
import {h,e,d}from'./chunk-M3K32WJV.mjs';import {Oa}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import {a as a$1}from'./chunk-GRDTQW6K.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';import {PKG}from'@easbot/utils';var m=a.create({service:"cli-command-import"});function _(g,u){g.command("import <file>").description(i("import.command.description")).action(async t=>{m.debug("Importing session",{file:t});try{let s=t.startsWith("http://")||t.startsWith("https://"),o;if(s){console.log(h(i("import.fetching_url",{vars:{url:t}})));let r=await fetch(t);r.ok||(console.error(e(i("import.error.fetch_failed",{vars:{status:r.statusText}}))),process.exit(1)),o=await r.json();}else {console.log(h(i("import.reading_file",{vars:{file:t}})));let r=await PKG.file(t).text();o=JSON.parse(r);}o?.info||(console.error(e(i("import.error.invalid_format"))),process.exit(1)),m.debug("Importing session data",{sessionId:o.info.id}),await a$1.write(["session",Oa.project.id,o.info.id],o.info);for(let r of o.messages){await a$1.write(["message",o.info.id,r.info.id],r.info);for(let c of r.parts)await a$1.write(["part",r.info.id,c.id],c);}console.log(d(i("import.success",{vars:{sessionId:o.info.id}})));}catch(s){m.error("Failed to import session",{file:t,error:s instanceof Error?s.message:String(s)}),console.error(e(i("import.error.failed",{vars:{error:s instanceof Error?s.message:String(s)}}))),process.exit(1);}});}
|
|
2
2
|
export{_ as registerImportCommand};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{b as Installation}from'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{Oa as Instance}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{H as directories,G as get,J as getGlobal,I as global,E as state,F as waitForDependencies}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{a as PluginLoader,b as createPluginLoader}from'./chunk-IEQ4VD66.mjs';import'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{b as LSP}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a as a$3}from'./chunk-TYD2M4SP.mjs';import'./chunk-FXOUIXIL.mjs';import {a as a$2}from'./chunk-
|
|
1
|
+
import {a as a$3}from'./chunk-TYD2M4SP.mjs';import'./chunk-FXOUIXIL.mjs';import {a as a$2}from'./chunk-R4BPTF6V.mjs';import'./chunk-CQVEAYYW.mjs';import {l,d,e,h,i as i$1,b,c,a as a$4}from'./chunk-M3K32WJV.mjs';import'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import {a as a$1}from'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';var a=a$1.create({service:"cli-command-mcp"});function T(w,c$1){let M=w.command("mcp").description(i("mcp.command.description"));M.command("list").description(i("mcp.command.list.description")).action(async()=>{await a$2(c$1.config.directory,async()=>{try{a.info("Listing MCP servers");let{data:o}=await c$1.sdk.config.get({directory:c$1.config.directory}),r=o?.mcp||{},n=Object.entries(r).map(([s,m])=>({name:s,type:m.type||"local",command:m.command,url:m.url,enabled:m.enabled,environment:m.environment,headers:m.headers}));if(n.length===0){console.log(l(i("mcp.list.empty")));return}console.log(d(i("mcp.list.success",{vars:{count:n.length}}))),console.log(""),console.log(a$3({columns:[{key:"name",header:i("mcp.table.header.name"),minWidth:20},{key:"command",header:i("mcp.table.header.command"),minWidth:30},{key:"disabled",header:i("mcp.table.header.disabled"),minWidth:10}],rows:n.map(s=>({name:s.name,command:s.type==="local"?s.command?.join(" ")||"":s.url||"",disabled:s.enabled===!1?i("common.yes"):i("common.no")})),width:process.stdout.columns||80,border:"unicode"})),a.debug("MCP server list displayed",{count:n.length});}catch(o){a.error("Failed to list MCP servers",{error:o instanceof Error?o.message:String(o)}),console.error(e(i("mcp.list.error"))),process.exit(1);}});}),M.command("info <name>").description(i("mcp.command.info.description")).action(async o=>{await a$2(c$1.config.directory,async()=>{try{a.debug("Getting MCP server info",{name:o});let{data:r}=await c$1.sdk.config.get({directory:c$1.config.directory}),n=r?.mcp?.[o];n||(console.error(e(i("mcp.info.notfound",{vars:{name:o}}))),process.exit(1));let s=n.type||"local",m=n.command,d$1=n.url,l=n.enabled,f=n.environment,g=n.headers;if(console.log(d(i("mcp.info.success"))),console.log(""),console.log(h(i("mcp.info.heading"))),console.log(""),console.log(i$1(i("mcp.info.field.name")+":",o)),console.log(i$1(i("mcp.info.field.type")+":",s)),s==="local"||!s){if(console.log(i$1(i("mcp.info.field.command")+":",m?.join(" ")||"")),console.log(i$1(i("mcp.info.field.enabled")+":",l!==!1?i("common.yes"):i("common.no"))),f&&Object.keys(f).length>0){console.log(i$1(i("mcp.info.field.environment")+":",""));let p=b();console.log(c(p,a$4.muted,JSON.stringify(f,null,2)));}}else if(s==="remote"&&(console.log(i$1(i("mcp.info.field.url")+":",d$1||"")),console.log(i$1(i("mcp.info.field.enabled")+":",l!==!1?i("common.yes"):i("common.no"))),g&&Object.keys(g).length>0)){console.log(i$1(i("mcp.info.field.headers")+":",""));let p=b();console.log(c(p,a$4.muted,JSON.stringify(g,null,2)));}a.debug("MCP server info displayed",{name:o});}catch(r){a.error("Failed to get MCP server info",{name:o,error:r instanceof Error?r.message:String(r)}),console.error(e(i("mcp.info.error",{vars:{error:String(r)}}))),process.exit(1);}});}),M.command("add").description(i("mcp.command.add.description")).requiredOption("--name <name>",i("mcp.command.add.option.name")).requiredOption("--command <command>",i("mcp.command.add.option.command")).option("--args <json>",i("mcp.command.add.option.args")).option("--env <json>",i("mcp.command.add.option.env")).action(async o=>{await a$2(c$1.config.directory,async()=>{try{a.debug("Adding MCP server",{name:o.name}),console.log(h(i("mcp.add.begin")));let r;if(o.args)try{r=JSON.parse(o.args),Array.isArray(r)||(console.error(e(i("mcp.add.error.args_invalid"))),process.exit(1));}catch{console.error(e(i("mcp.add.error.args_invalid"))),process.exit(1);}let n;if(o.env)try{n=JSON.parse(o.env),(typeof n!="object"||Array.isArray(n))&&(console.error(e(i("mcp.add.error.env_invalid"))),process.exit(1));}catch{console.error(e(i("mcp.add.error.env_invalid"))),process.exit(1);}let s={type:"local",command:[o.command,...r||[]]};n&&(s.environment=n),await c$1.sdk.config.update({directory:c$1.config.directory,config:{mcp:{[o.name]:s}}});let{data:m}=await c$1.sdk.config.get({directory:c$1.config.directory}),d$1=m?.mcp?.[o.name],l=d$1.type;console.log(d(i("mcp.add.success",{vars:{name:o.name}}))),console.log(""),console.log(h(i("mcp.info.heading"))),console.log(""),console.log(i$1(i("mcp.info.field.name")+":",o.name)),console.log(i$1(i("mcp.info.field.type")+":",l||"local"));let f=d$1.command,g=d$1.environment,p=d$1.url,P=d$1.headers;if(l==="local"||!l){if(console.log(i$1(i("mcp.info.field.command")+":",f?.join(" ")||[o.command].join(" "))),g&&Object.keys(g).length>0){console.log(i$1(i("mcp.info.field.environment")+":",""));let S=b();console.log(c(S,a$4.muted,JSON.stringify(g,null,2)));}}else if(l==="remote"&&(console.log(i$1(i("mcp.info.field.url")+":",p||"")),P&&Object.keys(P).length>0)){console.log(i$1(i("mcp.info.field.headers")+":",""));let S=b();console.log(c(S,a$4.muted,JSON.stringify(P,null,2)));}a.debug("MCP server added successfully",{name:o.name});}catch(r){a.error("Failed to add MCP server",{name:o.name,error:r instanceof Error?r.message:String(r)}),console.error(e(i("mcp.add.error",{vars:{error:r instanceof Error?r.message:String(r)}}))),process.exit(1);}});}),M.command("remove <name>").description(i("mcp.command.remove.description")).action(async o=>{await a$2(c$1.config.directory,async()=>{try{a.debug("Removing MCP server",{name:o}),console.log(h(i("mcp.remove.begin")));let{data:r}=await c$1.sdk.config.get({directory:c$1.config.directory});r?.mcp?.[o]||(console.error(e(i("mcp.remove.not_found",{vars:{name:o}}))),process.exit(1)),await c$1.sdk.config.update({directory:c$1.config.directory,config:{mcp:{[o]:null}}}),console.log(d(i("mcp.remove.success",{vars:{name:o}}))),a.debug("MCP server removed successfully",{name:o});}catch(r){a.error("Failed to remove MCP server",{name:o,error:r instanceof Error?r.message:String(r)}),console.error(e(i("mcp.remove.error",{vars:{error:r instanceof Error?r.message:String(r)}}))),process.exit(1);}});});}export{T as registerMcpCommands};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{P as MCP}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{a as ModelsDev,b as initModelsRefresh}from'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {e,h,g,d}from'./chunk-M3K32WJV.mjs';import {Oa}from'./chunk-
|
|
1
|
+
import {e,h,g,d}from'./chunk-M3K32WJV.mjs';import {Oa}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';import {Shell,PKG}from'@easbot/utils';var f=a.create({service:"cli-command-pr"});function F(N,v){N.command("pr <number>").description(i("pr.command.description")).action(async d$1=>{f.debug("Checking out PR",{prNumber:d$1});try{Oa.project.vcs!=="git"&&(console.error(e(i("pr.error.not_git_repo"))),process.exit(1));let r=parseInt(d$1,10);(Number.isNaN(r)||r<=0)&&(console.error(e(i("pr.error.invalid_number",{vars:{number:d$1}}))),process.exit(1)),console.log(h(i("pr.checking_out",{vars:{prNumber:String(r)}})));let c=process.platform==="win32"?"cmd":void 0,g$1=`pr/${r}`;await Shell.spawn(c,`gh pr checkout ${r} --branch ${g$1} --force`).exited!==0&&(console.error(e(i("pr.error.checkout_failed"))),console.error(g(i("pr.error.gh_not_installed"))),process.exit(1)),console.log(d(i("pr.checkout_success",{vars:{prNumber:String(r),branch:g$1}})));let w=Shell.spawn(c,`gh pr view ${r} --json headRepository,headRepositoryOwner,isCrossRepository,headRefName,body`),C=await w.exited,h$1;if(C===0){let y=await PKG.nodeReadableStreamToText(w.stdout);if(y.trim())try{let t=JSON.parse(y);if(t?.isCrossRepository&&t.headRepository&&t.headRepositoryOwner){let n=t.headRepositoryOwner.login,m=t.headRepository.name,s=n,u=Shell.spawn(c,"git remote"),R=await PKG.nodeReadableStreamToText(u.stdout);await u.exited,R.split(`
|
|
2
2
|
`).includes(s)||(await Shell.spawn(c,`git remote add ${s} https://github.com/${n}/${m}.git`).exited,console.log(g(i("pr.added_fork_remote",{vars:{remote:s}}))));}if(t?.body){let n=t.body.match(/https:\/\/opncd\.ai\/s\/([a-zA-Z0-9_-]+)/);if(n){let m=n[0];console.log(g(i("pr.found_session",{vars:{url:m}})));let s=Shell.spawn(c,`easbot import ${m}`);if(await s.exited===0){let x=(await PKG.nodeReadableStreamToText(s.stdout)).match(/Imported session: ([a-zA-Z0-9_-]+)/);x&&(h$1=x[1],console.log(d(i("pr.session_imported",{vars:{sessionId:h$1}}))));}}}}catch{f.debug("Failed to parse PR info JSON");}}console.log(""),console.log(d(i("pr.ready"))),console.log(g(i("pr.start_easbot",{vars:{branch:g$1}}))),f.debug("PR checkout complete",{prNumber:r,sessionId:h$1});}catch(e$1){f.error("Failed to checkout PR",{prNumber:d$1,error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i("pr.error.failed",{vars:{error:e$1 instanceof Error?e$1.message:String(e$1)}}))),process.exit(1);}});}
|
|
3
3
|
export{F as registerPrCommand};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{a as loadTuiState,b as saveTuiStateToStorage}from'./chunk-UBCLKZWP.mjs';import'./chunk-GRDTQW6K.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{Na as Project}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{Aa as SessionPrompt}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{j as Provider}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{na as ToolRegistry}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{l as SessionRevert}from'./chunk-FWVB6X4X.mjs';import'./chunk-CCRIJZBK.mjs';import'./chunk-D4GDS5UI.mjs';import'./chunk-75IQNF4I.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-UBCLKZWP.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-X7KLQIAQ.mjs';import'./chunk-KTMZPMCI.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-GRDTQW6K.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{a as Ripgrep}from'./chunk-D4GDS5UI.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-SB4J2R54.mjs';import'./chunk-X6ISXWBN.mjs';
|