@easbot/agent 0.2.30 → 0.2.33
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-VDKINAWR.mjs +16 -0
- package/dist/chunks/adapter-loader-HTS4EEL4.mjs +1 -0
- package/dist/chunks/agent-EXH3EXNP.mjs +1 -0
- package/dist/chunks/agent-IKNANWOU.mjs +1 -0
- package/dist/chunks/app-BZWD4E32.mjs +1 -0
- package/dist/chunks/{auth-4K3ZL6IZ.mjs → auth-3CQMCCCN.mjs} +1 -1
- package/dist/chunks/bootstrap-CB65J4FA.mjs +1 -0
- package/dist/chunks/build-program-HXXT6DQM.mjs +11 -0
- package/dist/chunks/bus-S6EWJZAJ.mjs +1 -0
- package/dist/chunks/{chunk-Z7TE4DF3.mjs → chunk-3GBVNLVL.mjs} +1 -1
- package/dist/chunks/{chunk-7P4KNLBL.mjs → chunk-4GMKI6FY.mjs} +1 -1
- package/dist/chunks/chunk-EXZOV2YR.mjs +1043 -0
- package/dist/chunks/{chunk-4HF47RUG.mjs → chunk-HACAZH7T.mjs} +1 -1
- package/dist/chunks/{chunk-AJ67PJXE.mjs → chunk-OEPPJZFZ.mjs} +1 -1
- package/dist/chunks/{chunk-BS7N6B5S.mjs → chunk-R3MXNCX5.mjs} +1 -1
- package/dist/chunks/chunk-T75GE4R6.mjs +59 -0
- package/dist/chunks/{chunk-5HMIZBWX.mjs → chunk-UNBJ6Y7L.mjs} +3 -3
- package/dist/chunks/{chunk-TM2XNUSK.mjs → chunk-W7J4LU42.mjs} +1 -1
- package/dist/chunks/{chunk-LK3TQ5IO.mjs → chunk-WIU6CVKP.mjs} +1 -1
- package/dist/chunks/{chunk-CTNROYWQ.mjs → chunk-XTHATUY4.mjs} +1 -1
- package/dist/chunks/{chunk-7GBBUT6F.mjs → chunk-YZOAYITQ.mjs} +1 -1
- package/dist/chunks/{command-O3GFGULS.mjs → command-V7QNKP7O.mjs} +1 -1
- package/dist/chunks/compaction-HKN7HOBD.mjs +1 -0
- package/dist/chunks/config-LSCANUOQ.mjs +1 -0
- package/dist/chunks/confirm-dialog-SJOXJWYU.mjs +1 -0
- package/dist/chunks/debug-4SGU2Y2Q.mjs +3 -0
- package/dist/chunks/export-PNCMUMDM.mjs +1 -0
- package/dist/chunks/file-KHHRKYLJ.mjs +1 -0
- package/dist/chunks/gateway-SSDLJMXI.mjs +16 -0
- package/dist/chunks/generate-NUX2GBYY.mjs +2 -0
- package/dist/chunks/github-W2LFG2G6.mjs +33 -0
- package/dist/chunks/global-ZK2HE4L2.mjs +1 -0
- package/dist/chunks/i18n-OMQXNLBR.mjs +1 -0
- package/dist/chunks/import-NFHPQNA7.mjs +2 -0
- package/dist/chunks/installation-4XG5GKF2.mjs +1 -0
- package/dist/chunks/instance-6HPNQZR5.mjs +1 -0
- package/dist/chunks/loader-4EPHUIR3.mjs +1 -0
- package/dist/chunks/loader-PVSCRHAG.mjs +1 -0
- package/dist/chunks/lsp-XWC37KPE.mjs +1 -0
- package/dist/chunks/mcp-BR3CYNJB.mjs +1 -0
- package/dist/chunks/mcp-MMYCROXT.mjs +1 -0
- package/dist/chunks/models-M5BT6WMD.mjs +1 -0
- package/dist/chunks/pr-4X42BEJT.mjs +3 -0
- package/dist/chunks/preferences-XV3DOFFV.mjs +1 -0
- package/dist/chunks/project-VUSYTQRZ.mjs +1 -0
- package/dist/chunks/prompt-TC6ZOCJ7.mjs +1 -0
- package/dist/chunks/provider-RSD6RHBA.mjs +1 -0
- package/dist/chunks/registry-JC6QFFEI.mjs +1 -0
- package/dist/chunks/revert-Q4KBW2OL.mjs +1 -0
- package/dist/chunks/ripgrep-CKVVXX5D.mjs +1 -0
- package/dist/chunks/run-BD36UNJF.mjs +22 -0
- package/dist/chunks/scheduler-S37CNKWR.mjs +1 -0
- package/dist/chunks/server-PWL7MLW7.mjs +1 -0
- package/dist/chunks/session-27P45HFD.mjs +1 -0
- package/dist/chunks/session-2ECCHYP7.mjs +1 -0
- package/dist/chunks/session-R3U252OC.mjs +1 -0
- package/dist/chunks/settings-panel-ZMAGAWRF.mjs +1 -0
- package/dist/chunks/share-VRVDSUF4.mjs +1 -0
- package/dist/chunks/snapshot-JKLZBDBN.mjs +1 -0
- package/dist/chunks/stats-QSNMP7FP.mjs +1 -0
- package/dist/chunks/storage-2SFY3R4G.mjs +1 -0
- package/dist/chunks/tui-P7HR545F.mjs +1 -0
- package/dist/chunks/tui-SW7BOEMQ.mjs +1 -0
- package/dist/chunks/types-WCQ4KHSB.mjs +1 -0
- package/dist/chunks/update-424STNM5.mjs +2 -0
- package/dist/cli.mjs +7 -7
- package/package.json +13 -13
- package/dist/chunks/acp-SPVCZX63.mjs +0 -16
- package/dist/chunks/adapter-loader-SXX45I3Z.mjs +0 -1
- package/dist/chunks/agent-MZLOGOQI.mjs +0 -1
- package/dist/chunks/agent-NGOXDVCS.mjs +0 -1
- package/dist/chunks/app-O5NQHNXV.mjs +0 -1
- package/dist/chunks/bootstrap-DR4J35PX.mjs +0 -1
- package/dist/chunks/build-program-P7RW5T4M.mjs +0 -11
- package/dist/chunks/bus-KR322KXZ.mjs +0 -1
- package/dist/chunks/chunk-OMJJOGWG.mjs +0 -1060
- package/dist/chunks/chunk-Q4GRHLDQ.mjs +0 -59
- package/dist/chunks/compaction-3MYHNS44.mjs +0 -1
- package/dist/chunks/config-LDSDIKTW.mjs +0 -1
- package/dist/chunks/confirm-dialog-JSKEM3X2.mjs +0 -1
- package/dist/chunks/debug-RSDPOIUJ.mjs +0 -3
- package/dist/chunks/export-CLUTYBVZ.mjs +0 -1
- package/dist/chunks/file-ZOJ6S2UR.mjs +0 -1
- package/dist/chunks/gateway-YVMVF6XX.mjs +0 -16
- package/dist/chunks/generate-5ZEWLM3X.mjs +0 -2
- package/dist/chunks/github-GY4WY3V6.mjs +0 -33
- package/dist/chunks/global-5ORB5ZJI.mjs +0 -1
- package/dist/chunks/import-NJ27YSF4.mjs +0 -2
- package/dist/chunks/installation-Z2BKBIKH.mjs +0 -1
- package/dist/chunks/instance-J5JTNYNN.mjs +0 -1
- package/dist/chunks/loader-LIGT5CRC.mjs +0 -1
- package/dist/chunks/loader-TZZM2FQ7.mjs +0 -1
- package/dist/chunks/lsp-W37T7EBX.mjs +0 -1
- package/dist/chunks/mcp-LU6TQSHT.mjs +0 -1
- package/dist/chunks/mcp-UXTV2MD5.mjs +0 -1
- package/dist/chunks/models-TNJAQQV6.mjs +0 -1
- package/dist/chunks/pr-NWXGDNAA.mjs +0 -3
- package/dist/chunks/preferences-IPQIZ4PF.mjs +0 -1
- package/dist/chunks/project-XTL74VR6.mjs +0 -1
- package/dist/chunks/prompt-EGX2NAWC.mjs +0 -1
- package/dist/chunks/provider-YEOVG4GT.mjs +0 -1
- package/dist/chunks/registry-5OGN2DD4.mjs +0 -1
- package/dist/chunks/revert-UEWEVDZW.mjs +0 -1
- package/dist/chunks/ripgrep-Z3UZ5FOB.mjs +0 -1
- package/dist/chunks/run-TJFYT5A2.mjs +0 -22
- package/dist/chunks/scheduler-GNEGF2HE.mjs +0 -1
- package/dist/chunks/server-K7LUKQBB.mjs +0 -1
- package/dist/chunks/session-DVY2QAPP.mjs +0 -1
- package/dist/chunks/session-HARVTO2S.mjs +0 -1
- package/dist/chunks/session-YY3OP5DZ.mjs +0 -1
- package/dist/chunks/settings-panel-SM37CCB4.mjs +0 -1
- package/dist/chunks/share-VULKGSBV.mjs +0 -1
- package/dist/chunks/snapshot-IN2OXNN4.mjs +0 -1
- package/dist/chunks/stats-FP5BZIOF.mjs +0 -1
- package/dist/chunks/storage-OTAVCTZ6.mjs +0 -1
- package/dist/chunks/tui-IZJVGM2K.mjs +0 -1
- package/dist/chunks/tui-XXGYOYB4.mjs +0 -1
- package/dist/chunks/types-NRDHCKIO.mjs +0 -1
- package/dist/chunks/update-6CXRBZ6A.mjs +0 -2
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {a as a$1}from'./chunk-LAHYVX5K.mjs';import {a as a$2}from'./chunk-3GBVNLVL.mjs';import'./chunk-VII7JKGB.mjs';import {g,e,d,k,i as i$1,b,h,c,a as a$3}from'./chunk-M3K32WJV.mjs';import {ob,da,wa,Na}from'./chunk-EXZOV2YR.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-WIU6CVKP.mjs';import'./chunk-XTHATUY4.mjs';import'./chunk-W7J4LU42.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-OEPPJZFZ.mjs';import'./chunk-4GMKI6FY.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-YZOAYITQ.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-R3MXNCX5.mjs';import'./chunk-X6ISXWBN.mjs';import'commander';import {z as z$1}from'zod';import U from'path';import {getProxyConfig}from'@easbot/utils';z$1.object({agentId:z$1.string(),agentType:z$1.string(),directory:z$1.string(),timestamp:z$1.number()});z$1.object({agentId:z$1.string(),reason:z$1.enum(["normal","error","timeout"]),timestamp:z$1.number()});z$1.object({agentId:z$1.string(),status:z$1.enum(["idle","busy","error"]),timestamp:z$1.number()});z$1.object({agentId:z$1.string(),error:z$1.string(),context:z$1.record(z$1.string(),z$1.any()).optional(),timestamp:z$1.number()});z$1.object({sessionId:z$1.string(),update:z$1.record(z$1.string(),z$1.any()),timestamp:z$1.number()});z$1.object({requestId:z$1.string(),sessionId:z$1.string(),permission:z$1.string(),tool:z$1.object({callID:z$1.string().optional()}).optional(),metadata:z$1.record(z$1.string(),z$1.any()).optional(),timestamp:z$1.number()});z$1.object({sessionId:z$1.string(),timestamp:z$1.number()});z$1.object({sessionId:z$1.string(),inputTokens:z$1.number(),outputTokens:z$1.number(),totalTokens:z$1.number(),model:z$1.string(),timestamp:z$1.number()});z$1.object({sessionId:z$1.string(),messageId:z$1.string(),messageType:z$1.enum(["text","tool_call","tool_result","system"]),content:z$1.any(),timestamp:z$1.number()});z$1.object({sessionId:z$1.string(),messageId:z$1.string(),messageType:z$1.enum(["text","tool_call","tool_result","system"]),response:z$1.any(),duration:z$1.number(),timestamp:z$1.number()});z$1.object({sessionId:z$1.string(),messageId:z$1.string(),toolName:z$1.string(),input:z$1.record(z$1.string(),z$1.any()),output:z$1.any().optional(),status:z$1.enum(["started","completed","failed"]),error:z$1.string().optional(),duration:z$1.number().optional(),timestamp:z$1.number()});z$1.object({sessionId:z$1.string().optional(),errorType:z$1.enum(["connection","timeout","validation","runtime","unknown"]),code:z$1.string().optional(),message:z$1.string(),stack:z$1.string().optional(),context:z$1.record(z$1.string(),z$1.any()).optional(),timestamp:z$1.number()});z$1.object({sessionId:z$1.string(),previousState:z$1.enum(["idle","active","paused","terminated"]),newState:z$1.enum(["idle","active","paused","terminated"]),reason:z$1.string().optional(),timestamp:z$1.number()});a.create({service:"event-subscription-flow"});var r=a.create({service:"cli-command-acp"});async function B(c,t){let o=await ob.getACPServerConfig();r.debug("Merging ACP configuration",{baseConfig:{channel:o.channel,port:o.port,hostname:o.hostname,timeout:o.timeout},cliOptions:{channel:t.channel,port:t.port,hostname:t.hostname,timeout:t.timeout}});let s={};if(t.channel!==void 0){let l=t.channel.toLowerCase();Object.values(da).includes(l)?(s.channel=l,r.debug("CLI override: channel",{value:s.channel})):r.warn("Invalid channel type from command line",{value:t.channel});}if(t.port!==void 0&&(t.port>0&&t.port<=65535?(s.port=t.port,r.debug("CLI override: port",{value:s.port})):r.warn("Invalid port from command line",{value:t.port})),t.hostname!==void 0&&(s.hostname=t.hostname,r.debug("CLI override: hostname",{value:s.hostname})),t.timeout!==void 0&&(t.timeout>0?(s.timeout=t.timeout,r.debug("CLI override: timeout",{value:s.timeout})):r.warn("Invalid timeout from command line",{value:t.timeout})),t.hostname!==void 0||t.port!==void 0){let l=t.hostname??o.hostname??"127.0.0.1",a=t.port??o.port??3e3;o.ws&&(s.ws={...o.ws,url:`ws://${l}:${a}`}),o.http&&(s.http={...o.http,baseUrl:`http://${l}:${a}`}),r.debug("CLI override: ws.url and http.baseUrl updated",{hostname:t.hostname,port:t.port,wsUrl:s.ws?.url,httpBaseUrl:s.http?.baseUrl});}t.timeout!==void 0&&(s.ws||s.http)&&(s.ws&&(s.ws.timeout=t.timeout),s.http&&(s.http.timeout=t.timeout),r.debug("CLI override: ws.timeout and http.timeout updated",{timeout:t.timeout}));let p={...o,...s};return r.debug("Merged ACP configuration",{channel:p.channel,port:p.port,hostname:p.hostname,timeout:p.timeout}),p}async function D(c$1,t,o){r.info("Starting ACP service",{channel:t.channel,port:t.port,hostname:t.hostname,debug:o.config.debug}),await wa.init({directory:c$1,printLogs:o.config.print_logs,logLevel:o.config.log_level,channel:t.channel});await wa.ensureACPService(t);console.log(""),console.log(d(i("acp.server.started"))),console.log(k(60)),console.log(i$1(i("acp.field.directory"),c$1,15)),console.log(i$1(i("acp.field.worktree"),Na.project.worktree||"N/A",15)),console.log(i$1(i("acp.field.channel"),t.channel,15));let p=b();switch(t.channel){case "websocket":{let a,d="/";if(t.ws?.url)try{let u=new URL(t.ws.url),m=u.port||"3000",$=u.hostname;d=u.pathname||"/",a=`ws://${$}:${m}${d==="/"?"":d}`;}catch{a=t.ws.url;}else a=`ws://${t.hostname}:${t.port}`;console.log(i$1(i("acp.field.ws_url"),a,15)),console.log(i$1(i("acp.field.ws_path"),d,15)),t.ws?(console.log(h(i("acp.websocket.config"))),console.log(i$1(i("acp.field.timeout"),`${t.ws.timeout??t.timeout}ms`,15)),console.log(i$1(i("acp.field.batch_size"),`${t.ws.batchSize??10}`,15)),console.log(i$1(i("acp.field.batch_interval"),`${t.ws.batchInterval??50}ms`,15)),console.log(i$1(i("acp.field.heartbeat"),`${t.ws.heartbeatInterval??3e4}ms`,15))):console.log(i$1(i("acp.field.timeout"),`${t.timeout}ms`,15));break}case "http":t.http?.baseUrl?console.log(i$1(i("acp.field.base_url"),t.http.baseUrl,15)):console.log(i$1(i("acp.field.host"),`${t.hostname}:${t.port}`,15)),t.http?.timeout?console.log(i$1(i("acp.field.timeout"),`${t.http.timeout}ms`,15)):console.log(i$1(i("acp.field.timeout"),`${t.timeout}ms`,15));break;case "stdio":console.log(i$1(i("acp.field.mode"),i("acp.mode.stdio"),15)),console.log(i$1(i("acp.field.protocol"),i("acp.protocol"),15)),console.log(i$1(i("acp.field.timeout"),`${t.timeout}ms`,15));break;default:console.log(i$1(i("acp.field.host"),`${t.hostname}:${t.port}`,15)),console.log(i$1(i("acp.field.timeout"),`${t.timeout}ms`,15));}console.log(i$1(i("acp.field.debug"),o.config.debug?c(p,a$3.success,i("common.enabled")):c(p,a$3.muted,i("common.disabled")),15));let l=getProxyConfig();if(l.enabled){let a=l.https||l.http||"configured";console.log(i$1(i("acp.field.proxy"),a,15));}console.log(k(60)),console.log(""),r.info("ACPServer started successfully"),z();}function z(){let c=process.env.EASBOT_RUN_MODE==="ephemeral"||!process.stdin.isTTY&&process.env.EASBOT_RUN_MODE!=="persistent",t=async o=>{r.debug(`Received ${o}, shutting down...`),c||console.log(`
|
|
2
|
+
${i("acp.shutdown.received",{vars:{signal:o}})}`);try{await wa.destroy(),r.debug("EasbotAdapter state destroyed"),c||console.log(d(i("acp.shutdown.completed")));}catch(s){r.error("Error during shutdown",{error:s instanceof Error?s.message:String(s)});}c?process.kill(process.pid,"SIGKILL"):process.exit(0);};process.on("SIGINT",()=>{t("SIGINT").catch(console.error);}),process.on("SIGTERM",()=>{t("SIGTERM").catch(console.error);}),process.stdout.on("error",o=>{(o.code==="EPIPE"||o.code==="EIO")&&(r.info("stdout pipe broken, exiting"),t("stdout-broken").catch(()=>{c?process.kill(process.pid,"SIGKILL"):process.exit(0);}));});}async function O(c,t,o){r.debug("ACP command executed",{options:t});let s=o?.config?.debug??false,p=o?.config?.print_logs??false,l=o?.config?.log_level??"INFO";r.debug("Global options from context",{debug:o?.config?.debug,print_logs:o?.config?.print_logs,log_level:o?.config?.log_level,isDebug:s,printLogs:p,logLevel:l});try{let a=o.config.directory?U.resolve(o.config.directory):process.cwd();r.debug("Working directory resolved",{directory:a});let d=a$1(a);if(!d.valid)throw r.error("Working directory validation failed",{directory:a,error:d.error}),new Error(`Invalid working directory: ${d.error}`);let u=d.normalizedPath;r.debug("Working directory validated",{validatedDirectory:u}),console.log(g(i("acp.directory.resolved",{vars:{cwd:u}}))),await a$2(u,async()=>{let m=await B(u,t);if(r.debug("ACP server configuration",{channel:m.channel,port:m.port,hostname:m.hostname,timeout:m.timeout,enabled:m.enabled}),!m.enabled){r.warn("ACP server is disabled by configuration"),console.log(g(i("acp.disabled")));return}await D(u,m,o),r.info("ACP server started successfully");});}catch(a){r.error("Failed to start ACP server",{error:a instanceof Error?a.message:String(a)}),console.error(e(i("acp.error.start_failed",{vars:{error:a instanceof Error?a.message:String(a)}}))),process.exit(1);}}function We(c,t){let o=c.command("acp").description(i("acp.command.description")).addHelpText("after",`
|
|
3
|
+
|
|
4
|
+
${i("acp.help.examples")}
|
|
5
|
+
$ agent acp # ${i("acp.help.example.default")}
|
|
6
|
+
$ agent acp --channel http # ${i("acp.help.example.http")}
|
|
7
|
+
$ agent acp --port 8080 # ${i("acp.help.example.port")}
|
|
8
|
+
$ agent acp --hostname 0.0.0.0 # ${i("acp.help.example.hostname")}
|
|
9
|
+
$ agent acp --channel ws --debug # ${i("acp.help.example.debug")}
|
|
10
|
+
|
|
11
|
+
${i("acp.help.env")}
|
|
12
|
+
ACP_CHANNEL ${i("acp.help.env.channel")}
|
|
13
|
+
ACP_PORT ${i("acp.help.env.port")}
|
|
14
|
+
ACP_HOSTNAME ${i("acp.help.env.hostname")}
|
|
15
|
+
ACP_TIMEOUT ${i("acp.help.env.timeout")}
|
|
16
|
+
ACP_ENABLED ${i("acp.help.env.enabled")}`);o.option("-c, --channel <type>",i("acp.option.channel")).option("-p, --port <number>",i("acp.option.port"),s=>parseInt(s,10)).option("-H, --hostname <address>",i("acp.option.hostname")).option("-t, --timeout <milliseconds>",i("acp.option.timeout"),s=>parseInt(s,10)),o.command("*",{isDefault:true}).action(async()=>{let s=o.opts();await O(o,s,t);});}export{We as registerAcpCommand};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{ha as getACPClientsConfig,ga as getACPServerConfig,ka as getAcpAgentName,ia as getAcpAgentRuntimeConfig,ja as getAcpModelConfig,fa as loadACPConfig}from'./chunk-EXZOV2YR.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-WIU6CVKP.mjs';import'./chunk-XTHATUY4.mjs';import'./chunk-W7J4LU42.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-OEPPJZFZ.mjs';import'./chunk-4GMKI6FY.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-YZOAYITQ.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-R3MXNCX5.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {a as a$3}from'./chunk-TYD2M4SP.mjs';import'./chunk-FXOUIXIL.mjs';import {a as a$2}from'./chunk-3GBVNLVL.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-EXZOV2YR.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-WIU6CVKP.mjs';import'./chunk-XTHATUY4.mjs';import'./chunk-W7J4LU42.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-OEPPJZFZ.mjs';import'./chunk-4GMKI6FY.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-YZOAYITQ.mjs';import {a as a$1}from'./chunk-LFYBZHOI.mjs';import'./chunk-R3MXNCX5.mjs';import'./chunk-X6ISXWBN.mjs';var a=a$1.create({service:"cli-command-agent"});function W(C,c$1){let y=C.command("agent").description(i("agent.command.description"));y.command("list").description(i("agent.command.list.description")).action(async()=>{await a$2(c$1.config.directory,async()=>{try{a.debug("Listing agents");let{data:o}=await c$1.sdk.app.agents({});if(!o||o.length===0){console.log(l(i("agent.list.empty")));return}let r=[...o].sort((n,t)=>{let g="native"in n&&n.native,d="native"in t&&t.native;return g!==d?g?-1:1:n.name.localeCompare(t.name)});console.log(d(i("agent.list.success",{vars:{count:o.length}}))),console.log(""),console.log(a$3({columns:[{key:"name",header:i("agent.table.header.name"),minWidth:15},{key:"mode",header:i("agent.table.header.mode"),minWidth:10},{key:"native",header:i("agent.table.header.native"),minWidth:8}],rows:r.map(n=>({name:n.name,mode:"mode"in n&&n.mode||"primary",native:"native"in n&&n.native?i("common.yes"):i("common.no")})),width:process.stdout.columns||80,border:"unicode"})),a.debug("Agent list displayed",{count:o.length});}catch(o){a.error("Failed to list agents",{error:o instanceof Error?o.message:String(o)}),console.error(e(i("agent.list.error"))),process.exit(1);}});}),y.command("info <agent-id>").description(i("agent.command.info.description")).action(async o=>{await a$2(c$1.config.directory,async()=>{try{a.debug("Getting agent info",{agentId:o});let{data:r}=await c$1.sdk.app.agents({}),n=r?.find(t=>t.name===o);if(n||(console.error(e(i("agent.get.not_found",{vars:{agentId:o}}))),process.exit(1)),console.log(d(i("agent.get.success"))),console.log(""),console.log(h(i("agent.info.heading"))),console.log(""),console.log(i$1(i("agent.info.field.name")+":",n.name)),console.log(i$1(i("agent.info.field.mode")+":","mode"in n&&n.mode||"primary")),console.log(i$1(i("agent.info.field.native")+":","native"in n&&n.native?i("common.yes"):i("common.no"))),"permission"in n&&n.permission){console.log(i$1(i("agent.info.field.permission")+":",""));let t=b();console.log(c(t,a$4.muted,JSON.stringify(n.permission,null,2)));}a.debug("Agent info displayed",{agentId:o});}catch(r){a.error("Failed to get agent info",{agentId:o,error:r instanceof Error?r.message:String(r)}),console.error(e(i("agent.get.error"))),process.exit(1);}});}),y.command("create").description(i("agent.command.create.description")).requiredOption("--name <name>",i("agent.command.create.option.name")).option("--mode <mode>",i("agent.command.create.option.mode"),"chat").option("--permission <json>",i("agent.command.create.option.permission")).action(async o=>{await a$2(c$1.config.directory,async()=>{try{a.debug("Creating agent",{name:o.name,mode:o.mode}),console.log(h(i("agent.create.begin")));let{validateAgentName:r,validateAgentMode:n,validateJsonString:t}=await import('./input-validation-FWKKVCYC.mjs');r(o.name)||(a.error("Invalid agent name",{name:o.name}),console.error(e(i("agent.create.validation.name"))),process.exit(1));let g=o.mode||"primary";n(g)||(a.error("Invalid agent mode",{mode:o.mode}),console.error(e(i("agent.create.validation.mode"))),process.exit(1));let d$1;if(o.permission){let l=t(o.permission,"permission");l||(a.error("Invalid permission JSON format",{permission:o.permission}),console.error(e(i("agent.create.error",{vars:{error:"Invalid permission JSON format"}}))),process.exit(1)),d$1=l;}let{data:m}=await c$1.sdk.agent.create({name:o.name,mode:g,permission:d$1});if(m||(console.error(e(i("agent.create.error",{vars:{error:"Agent creation failed"}}))),process.exit(1)),console.log(d(i("agent.create.success",{vars:{name:m.name}}))),console.log(""),console.log(h(i("agent.info.heading"))),console.log(""),console.log(i$1(i("agent.info.field.name")+":",m.name)),console.log(i$1(i("agent.info.field.mode")+":",m.mode??"all")),console.log(i$1(i("agent.info.field.native")+":",m.native?i("common.yes"):i("common.no"))),m.permission){console.log(i$1(i("agent.info.field.permission")+":",""));let l=b();console.log(c(l,a$4.muted,JSON.stringify(m.permission,null,2)));}a.debug("Agent created successfully",{name:m.name});}catch(r){a.error("Failed to create agent",{name:o.name,error:r instanceof Error?r.message:String(r)}),console.error(e(i("agent.create.error",{vars:{error:r instanceof Error?r.message:String(r)}}))),process.exit(1);}});});}export{W as registerAgentCommands};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {e}from'./chunk-M3K32WJV.mjs';import {j,xa,k,La}from'./chunk-EXZOV2YR.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-WIU6CVKP.mjs';import'./chunk-XTHATUY4.mjs';import'./chunk-W7J4LU42.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-OEPPJZFZ.mjs';import'./chunk-4GMKI6FY.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-YZOAYITQ.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-R3MXNCX5.mjs';import'./chunk-X6ISXWBN.mjs';import {basename}from'path';import {iife,Identifier}from'@easbot/utils';var D=a.create({service:"debug.agent"});function z(r,o,e$1){(async()=>{D.debug("Getting agent info",{agentName:o});let t=(await r.sdk.agent.get({agentID:o})).data;t||(console.error(e(i("debug.agent.error.not_found",{vars:{agentName:o,command:basename(process.execPath)}}))),process.exit(1));let a=t,d=await C(a),i$1=await P(a,d);if(e$1.tool){let c=d.find(A=>A.id===e$1.tool);c||(console.error(e(i("debug.agent.tool.error.not_found",{vars:{toolID:e$1.tool,agentName:o}}))),process.exit(1)),i$1[e$1.tool]===false&&(console.error(e(i("debug.agent.tool.error.disabled",{vars:{toolID:e$1.tool,agentName:o}}))),process.exit(1));let g=T(e$1.params),b=await E(a,r);D.debug("Executing tool",{toolID:e$1.tool,params:g});let y=await c.execute(g,b);console.log(JSON.stringify({tool:e$1.tool,input:g,result:y},null,2));return}let m={...t,tools:i$1};console.log(JSON.stringify(m,null,2));})();}async function C(r){let o=r.model??await j.defaultModel();return o.providerID||(o={...o,providerID:"default-provider"}),xa.tools(o,r)}async function P(r,o){let e=k.disabled(o.map(t=>t.id),r.permission),s={};for(let t of o)s[t.id]=!e.has(t.id);return s}function T(r){if(!r)return {};let o=r.trim();if(o.length===0)return {};let e=iife(()=>{try{return JSON.parse(o)}catch(s){try{return new Function(`return (${o})`)()}catch(t){throw new Error(i("debug.agent.tool.params.parse_error",{vars:{jsonError:s,evalError:t}}))}}});if(!e||typeof e!="object"||Array.isArray(e))throw new Error(i("debug.agent.tool.params.must_be_object"));return e}async function E(r,o){let e=await La.create({title:`Debug tool run (${r.name})`}),s=Identifier.ascending("message"),t=r.model??await j.defaultModel();t.providerID||(t={...t,providerID:t.providerID||"default-provider"});let a=Date.now(),d={id:s,sessionID:e.id,role:"assistant",time:{created:a},parentID:s,modelID:t.modelID,providerID:t.providerID,mode:"debug",agent:r.name,path:{cwd:o.config.directory,root:o.config.worktree},cost:0,tokens:{input:0,output:0,reasoning:0,cache:{read:0,write:0}}};await La.updateMessage(d);let i=k.merge(r.permission,e.permission??[]);return {sessionID:e.id,messageID:s,callID:Identifier.ascending("part"),agent:r.name,abort:new AbortController().signal,messages:[],metadata:()=>{},async ask(m){for(let c of m.patterns)if(k.evaluate(m.permission,c,i).action==="deny")throw new k.DeniedError(i)}}}export{z as registerAgentCommand};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{h as createTuiApp,g as getGlobalErrorHandler,e as registerGlobalErrorHandler,f as unregisterGlobalErrorHandler}from'./chunk-T75GE4R6.mjs';import'./chunk-CQVEAYYW.mjs';import'./chunk-EXZOV2YR.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-WIU6CVKP.mjs';import'./chunk-XTHATUY4.mjs';import'./chunk-W7J4LU42.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-OEPPJZFZ.mjs';import'./chunk-4GMKI6FY.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-YZOAYITQ.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-R3MXNCX5.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a as a$
|
|
1
|
+
import {a as a$1}from'./chunk-TYD2M4SP.mjs';import'./chunk-FXOUIXIL.mjs';import'./chunk-CQVEAYYW.mjs';import {h,g,e,d}from'./chunk-M3K32WJV.mjs';import {i as i$1}from'./chunk-UNBJ6Y7L.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-X6ISXWBN.mjs';var i=a.create({service:"cli-command-auth"});function E(n,o){let e=n.command("auth").description(i$1("auth.command.description"));e.command("list").description(i$1("auth.command.list.description")).aliases(["ls"]).action(async()=>{i.debug("Listing credentials"),await v(o);}),e.command("login [provider]").description(i$1("auth.command.login.description")).option("--key <key>",i$1("auth.option.key")).action(async(t,g)=>{t?(i.debug("Logging in to provider",{provider:t}),await f(o,t,g.key)):(i.debug("Interactive login"),await y(o));}),e.command("logout <provider>").description(i$1("auth.command.logout.description")).action(async t=>{i.debug("Logging out from provider",{provider:t}),await b(o,t);});}async function v(n){try{let{data:o}=await n.sdk.config.providers({}),e=o?.providers||[];if(console.log(h(i$1("auth.list.title"))),console.log(""),e.length===0){console.log(g(i$1("auth.list.empty")));return}console.log(a$1({columns:[{key:"provider",header:i$1("auth.table.header.provider"),minWidth:20},{key:"type",header:i$1("auth.table.header.type"),minWidth:15}],rows:e.map(t=>({provider:t.name||t.id,type:"configured"})),width:process.stdout.columns||80,border:"unicode"})),i.debug("Credentials listed",{count:e.length});}catch(o){i.error("Failed to list credentials",{error:o instanceof Error?o.message:String(o)}),console.error(e(i$1("auth.list.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}}async function f(n,o,e$1){try{e$1||(console.error(e(i$1("auth.login.key_required"))),console.log(g(i$1("auth.login.key_hint"))),process.exit(1)),console.log(h(i$1("auth.login.logging_in",{vars:{provider:o}}))),await n.sdk.auth.set({providerID:o,info:{type:"api",key:e$1}}),console.log(d(i$1("auth.login.success",{vars:{provider:o}}))),i.debug("Login successful",{provider:o});}catch(t){i.error("Login failed",{provider:o,error:t instanceof Error?t.message:String(t)}),console.error(e(i$1("auth.login.error",{vars:{error:t instanceof Error?t.message:String(t)}}))),process.exit(1);}}async function y(n){try{console.log(h(i$1("auth.interactive.title")));let{data:o}=await n.sdk.config.providers({}),e$1=o?.providers||[],t={easbot:0,anthropic:1,openai:2,google:3},g$1=e$1.sort((s,l)=>(t[s.id]??99)-(t[l.id]??99)).map(s=>({value:s.id,label:s.name||s.id,hint:s.id==="easbot"?"recommended":void 0}));console.log(""),console.log(g(i$1("auth.interactive.select_provider"))),console.log(a$1({columns:[{key:"index",header:"#",minWidth:4},{key:"provider",header:i$1("auth.table.header.provider"),minWidth:25},{key:"hint",header:i$1("auth.table.header.hint"),flex:!0}],rows:g$1.map((s,l)=>({index:`${l+1}`,provider:s.label,hint:s.hint||""})),width:process.stdout.columns||80,border:"unicode"})),console.log(""),console.log(g(i$1("auth.interactive.enter_number")));let h$1=g$1[0]?.value;h$1||(console.error(e(i$1("auth.interactive.no_providers"))),process.exit(1)),await f(n,h$1);}catch(o){i.error("Interactive login failed",{error:o instanceof Error?o.message:String(o)}),console.error(e(i$1("auth.login.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}}async function b(n,o){try{console.log(h(i$1("auth.logout.logging_out",{vars:{provider:o}}))),await n.sdk.auth.remove({providerID:o}),console.log(d(i$1("auth.logout.success",{vars:{provider:o}}))),i.debug("Logout successful",{provider:o});}catch(e$1){i.error("Logout failed",{provider:o,error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i$1("auth.logout.error",{vars:{error:e$1 instanceof Error?e$1.message:String(e$1)}}))),process.exit(1);}}export{E as registerAuthCommand};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{a as bootstrap,b as bootstrapProgram}from'./chunk-3GBVNLVL.mjs';import'./chunk-EXZOV2YR.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-WIU6CVKP.mjs';import'./chunk-XTHATUY4.mjs';import'./chunk-W7J4LU42.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-OEPPJZFZ.mjs';import'./chunk-4GMKI6FY.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-YZOAYITQ.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-R3MXNCX5.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {b as b$1}from'./chunk-HACAZH7T.mjs';import {a as a$1}from'./chunk-XPF2LJT2.mjs';import {Na,ua}from'./chunk-EXZOV2YR.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-WIU6CVKP.mjs';import'./chunk-XTHATUY4.mjs';import'./chunk-W7J4LU42.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-OEPPJZFZ.mjs';import {b as b$2}from'./chunk-4GMKI6FY.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-YZOAYITQ.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-R3MXNCX5.mjs';import'./chunk-X6ISXWBN.mjs';import {Command}from'commander';import'path';import O from'fs/promises';import {parse}from'jsonc-parser';var y="easbot",h="EASBot - Multi-Agent Collaboration Ecosystem CLI Tool",P="build",x=["main","ops","explorer"];var b=a.create({service:"cli-config"});async function N(t){try{let o=await O.readFile(t,"utf-8");return parse(o)||{}}catch(o){if(o&&typeof o=="object"&&"code"in o){if(o.code==="ENOENT")return {};b.warn("Failed to read config file",{filePath:t,error:o.code});}else b.error("Failed to parse config file",{filePath:t,error:o instanceof Error?o.message:String(o)});return {}}}function T(...t){let o={};for(let n of t)for(let[e,i]of Object.entries(n))i!==void 0&&(typeof i=="object"&&!Array.isArray(i)&&i!==null?o[e]={...o[e],...i}:o[e]=i);return o}function k(){return {server:{port:3e3,hostname:"localhost"},agent:{},model:{},permission:{}}}async function w(t={}){let{cwd:o=process.cwd(),customConfigPath:n}=t,e=k();if(t.sdk)try{let{data:i}=await t.sdk.config.get({});i&&(e=i);}catch{}if(n){let i=await N(n);Object.keys(i).length>0&&(e=T(e,i));}return e.directory=o,e}async function A(t={}){let o=t.cwd||process.cwd(),n=t.root||Na.worktree,e=ua({directory:o}),i=await w({cwd:o,root:n,sdk:e,customConfigPath:t.customConfigPath});return {programVersion:b$2.getVersion(),channelOptions:["stdio","http","ws"],agentOptions:`${i.default_agent||P}|${x.join("|")}`,config:i,sdk:e}}var j=[{commands:[{name:"tui",description:"\u542F\u52A8 TUI \u754C\u9762",hasSubcommands:false}],register:async({program:t,ctx:o})=>{(await import('./tui-SW7BOEMQ.mjs')).registerTuiCommand(t,o);}},{commands:[{name:"run",description:"\u8FD0\u884C\u5355\u6B21\u5BF9\u8BDD",hasSubcommands:false}],register:async({program:t,ctx:o})=>{(await import('./run-BD36UNJF.mjs')).registerRunCommand(t,o);}},{commands:[{name:"generate",description:"\u751F\u6210 OpenAPI \u89C4\u8303",hasSubcommands:false}],register:async({program:t,ctx:o})=>{(await import('./generate-NUX2GBYY.mjs')).registerGenerateCommand(t,o);}},{commands:[{name:"agent",description:"Agent \u7BA1\u7406\u547D\u4EE4",hasSubcommands:true}],register:async({program:t,ctx:o})=>{(await import('./agent-EXH3EXNP.mjs')).registerAgentCommands(t,o);}},{commands:[{name:"session",description:"\u4F1A\u8BDD\u7BA1\u7406\u547D\u4EE4",hasSubcommands:true}],register:async({program:t,ctx:o})=>{let{registerSessionCommands:n}=await import('./session-R3U252OC.mjs');n(t,o);}},{commands:[{name:"mcp",description:"MCP \u670D\u52A1\u5668\u7BA1\u7406",hasSubcommands:true}],register:async({program:t,ctx:o})=>{(await import('./mcp-BR3CYNJB.mjs')).registerMcpCommands(t,o);}},{commands:[{name:"acp",description:"ACP Agent \u901A\u4FE1\u9002\u914D\u5668\u547D\u4EE4",hasSubcommands:true}],register:async({program:t,ctx:o})=>{(await import('./acp-VDKINAWR.mjs')).registerAcpCommand(t,o);}},{commands:[{name:"debug",description:"\u8C03\u8BD5\u548C\u8BCA\u65AD\u5DE5\u5177",hasSubcommands:true}],register:async({program:t,ctx:o})=>{(await import('./debug-4SGU2Y2Q.mjs')).registerDebugCommands(t,o);}},{commands:[{name:"gateway",description:"Gateway \u670D\u52A1\u7BA1\u7406\u547D\u4EE4",hasSubcommands:true}],register:async({program:t,ctx:o})=>{(await import('./gateway-SSDLJMXI.mjs')).registerGatewayCommand(t,o);}},{commands:[{name:"auth",description:"Provider \u51ED\u636E\u7BA1\u7406",hasSubcommands:true}],register:async({program:t,ctx:o})=>{(await import('./auth-3CQMCCCN.mjs')).registerAuthCommand(t,o);}},{commands:[{name:"export",description:"\u5BFC\u51FA\u4F1A\u8BDD\u6570\u636E",hasSubcommands:false}],register:async({program:t,ctx:o})=>{(await import('./export-PNCMUMDM.mjs')).registerExportCommand(t,o);}},{commands:[{name:"github",description:"GitHub Agent \u7BA1\u7406",hasSubcommands:true}],register:async({program:t,ctx:o})=>{(await import('./github-W2LFG2G6.mjs')).registerGithubCommand(t,o);}},{commands:[{name:"import",description:"\u5BFC\u5165\u4F1A\u8BDD\u6570\u636E",hasSubcommands:false}],register:async({program:t,ctx:o})=>{(await import('./import-NFHPQNA7.mjs')).registerImportCommand(t,o);}},{commands:[{name:"pr",description:"PR \u68C0\u51FA\u548C\u4F1A\u8BDD\u5BFC\u5165",hasSubcommands:false}],register:async({program:t,ctx:o})=>{(await import('./pr-4X42BEJT.mjs')).registerPrCommand(t,o);}},{commands:[{name:"stats",description:"Token \u4F7F\u7528\u91CF\u548C\u6210\u672C\u7EDF\u8BA1",hasSubcommands:false}],register:async({program:t,ctx:o})=>{(await import('./stats-QSNMP7FP.mjs')).registerStatsCommand(t,o);}},{commands:[{name:"update",description:"\u66F4\u65B0 Easbot CLI",hasSubcommands:false}],register:async({program:t,ctx:o})=>{(await import('./update-424STNM5.mjs')).registerUpdateCommand(t,o);}}];async function B(t,o,n=process.argv){for(let e of j)await e.register({program:t,ctx:o,argv:n});}async function v(t,o,n=process.argv){await B(t,o,n);}function L(t,o){t.name(i("program.name")).description(i("program.description")),t.option("--cwd <directory>",i("program.option.cwd"),process.cwd()),t.option("--config <path>",i("program.option.config")),t.option("--print-logs",i("program.option.print_logs")),t.option("--log-level <level>",i("program.option.log_level"),"INFO"),t.option("--debug",i("program.option.debug")),t.helpOption("-h, --help",i("program.help.option")),t.helpCommand("help [command]",i("program.help.command")),t.configureHelp({sortSubcommands:true,sortOptions:true,optionTerm:n=>n.flags,subcommandTerm:n=>n.name()}),t.configureOutput({writeOut:n=>{process.stdout.write(E(n));},writeErr:n=>{process.stderr.write(E(n));},outputError:(n,e)=>{e(n);}}),t.addHelpText("afterAll",({command:n})=>n!==t?"":`
|
|
2
|
+
${i("program.help.examples")}:
|
|
3
|
+
easbot # ${i("help.example.tui")}
|
|
4
|
+
easbot tui --continue # ${i("help.example.tui_continue")}
|
|
5
|
+
easbot run --prompt "Hello" # ${i("help.example.run")}
|
|
6
|
+
easbot agent list # ${i("help.example.agent_list")}
|
|
7
|
+
easbot mcp list # ${i("help.example.mcp_list")}
|
|
8
|
+
easbot --help # ${i("help.example.help")}
|
|
9
|
+
|
|
10
|
+
${i("program.help.docs")}: https://easbot.dev/docs
|
|
11
|
+
`);}function E(t){return t.replace(/^Usage:/gm,"Usage:").replace(/^Options:/gm,"Options:").replace(/^Commands:/gm,"Commands:")}var _=false;function R(t,o){t.hook("preAction",async(n,e)=>{G(e);let i=process.argv;if(D(i))return;let c=F(i);H(c)||M(o);});}function G(t){let o=t;for(;o.parent?.parent;)o=o.parent;let n=o.name();!n||n==="easbot"||(process.title=`easbot-${n}`);}function D(t){return t.some(o=>o==="-h"||o==="--help"||o==="-v"||o==="--version"||o==="help")}function F(t){let o=[];for(let n=2;n<t.length;n++){let e=t[n];if(e){if(e.startsWith("-"))break;o.push(e);}}return o}function H(t){if(process.env.EASBOT_HIDE_BANNER==="1"||process.env.EASBOT_HIDE_BANNER==="true")return true;let o=new Set(["completion","update"]),n=t[0];return n!==void 0&&o.has(n)}function M(t){_||(_=true,console.log(i("program.version.banner",{vars:{version:t}})));}var U=Symbol.for("easbot.cli.programContext");function S(t,o){t[U]=o;}var m=a.create({service:"cli-program"});async function Ho(t={}){m.debug("Initializing resource manager"),a$1.initialize();let o=new Command,n=await A({cwd:t.directory,root:void 0,customConfigPath:t.config_path});Object.assign(n.config,{print_logs:t.print_logs,log_level:t.log_level,debug:t.debug});let e=process.argv;return S(o,n),o.name(y).version(n.programVersion,"-V, --version",i("program.version.description")).description(h),L(o),R(o,n.programVersion),await $(o,n),await v(o,n,e),W(o),z(o),o}async function $(t,o){try{m.debug("Loading plugin system");let n=b$1(o),e=o.config.plugins,i={enabled:e&&typeof e=="object"&&"enabled"in e?e.enabled!==!1:!0,loadPaths:e&&typeof e=="object"&&"load"in e&&e.load&&typeof e.load=="object"&&"paths"in e.load&&Array.isArray(e.load.paths)?e.load.paths:[],allow:e&&typeof e=="object"&&"allow"in e&&Array.isArray(e.allow)?e.allow:[],deny:e&&typeof e=="object"&&"deny"in e&&Array.isArray(e.deny)?e.deny:[]};if(await n.loadAll(i),o._pluginCliRegistrations&&o._pluginCliRegistrations.length>0){m.debug("Registering plugin CLI commands",{count:o._pluginCliRegistrations.length});for(let c of o._pluginCliRegistrations)try{c.register({program:t,context:o}),m.debug("Plugin CLI commands registered",{pluginId:c.pluginId,commands:c.commands});}catch(p){m.error("Failed to register plugin CLI commands",{pluginId:c.pluginId,error:p});}}m.info("Plugin system loaded",{loadedPlugins:n.getLoadedPluginIds()});}catch(n){m.error("Failed to load plugin system",{error:n});}}function W(t){t.on("command:*",o=>{let n=o[0];console.error(i("program.error.unknown_command",{vars:{command:n}})),console.error(""),console.error(i("program.error.unknown_command_hint")),process.exit(1);});}function z(t){t.exitOverride(o=>{throw o.code==="commander.help"&&process.exit(0),o.code==="commander.version"&&process.exit(0),o.code==="commander.helpDisplayed"&&process.exit(0),o.code?.startsWith("commander.")&&(console.error(i("program.error.commander",{vars:{message:o.message}})),process.exit(1)),o});}export{Ho as buildProgram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{a as Bus}from'./chunk-EXZOV2YR.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-WIU6CVKP.mjs';import'./chunk-XTHATUY4.mjs';import'./chunk-W7J4LU42.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-OEPPJZFZ.mjs';import'./chunk-4GMKI6FY.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-YZOAYITQ.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-R3MXNCX5.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {Na,pb}from'./chunk-
|
|
1
|
+
import {Na,pb}from'./chunk-EXZOV2YR.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-ZK2HE4L2.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 Na.provide({directory:r,init:pb,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-ZK2HE4L2.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 Na.provide({directory:i,init:pb,fn:async()=>{let{buildProgram:r}=await import('./build-program-HXXT6DQM.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 {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-R3MXNCX5.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};
|