@easbot/agent 0.2.34 → 0.2.36
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-YNV6DSAY.mjs +22 -0
- package/dist/chunks/adapter-loader-ZVGLTKEK.mjs +1 -0
- package/dist/chunks/{agent-3TY5COL7.mjs → agent-42R2LKEK.mjs} +1 -1
- package/dist/chunks/{agent-SF44D677.mjs → agent-CBNCT4JD.mjs} +1 -1
- package/dist/chunks/app-267XBNKU.mjs +1 -0
- package/dist/chunks/bootstrap-YSY5JYBG.mjs +1 -0
- package/dist/chunks/{build-program-2H5HVRPR.mjs → build-program-DN4GMTCL.mjs} +1 -1
- package/dist/chunks/bus-MEXPAT3D.mjs +1 -0
- package/dist/chunks/{chunk-OI3BLNYR.mjs → chunk-3INOJAKC.mjs} +1 -1
- package/dist/chunks/{chunk-DPHR5M4T.mjs → chunk-ANA5RPJQ.mjs} +1 -1
- package/dist/chunks/{chunk-F6HODP64.mjs → chunk-B6I7MJE5.mjs} +1 -1
- package/dist/chunks/{chunk-HLW2EHPQ.mjs → chunk-DRWG7AVN.mjs} +1 -1
- package/dist/chunks/{chunk-BJ3DFGMC.mjs → chunk-HQE3WXCE.mjs} +1 -1
- package/dist/chunks/{chunk-OTJQZ7WY.mjs → chunk-IVLHWGNX.mjs} +7 -7
- package/dist/chunks/{chunk-JPLRWRX5.mjs → chunk-LQWOCD5V.mjs} +1 -1
- package/dist/chunks/chunk-SRFQPRTU.mjs +1050 -0
- package/dist/chunks/{chunk-352N6IPS.mjs → chunk-WQU6WFZO.mjs} +1 -1
- package/dist/chunks/{chunk-SGMMA2KV.mjs → chunk-YJG6NNVY.mjs} +1 -1
- package/dist/chunks/{chunk-KKGI52AW.mjs → chunk-ZV27OCHD.mjs} +1 -1
- package/dist/chunks/{command-M33DIHFA.mjs → command-TARCWEDT.mjs} +1 -1
- package/dist/chunks/compaction-2RGLDODF.mjs +1 -0
- package/dist/chunks/config-TCMIE43H.mjs +1 -0
- package/dist/chunks/{debug-C7S7OM6A.mjs → debug-IV6AE7PH.mjs} +3 -3
- package/dist/chunks/file-AOMTS73G.mjs +1 -0
- package/dist/chunks/gateway-SUNUN7H2.mjs +16 -0
- package/dist/chunks/{generate-QC7LMP4L.mjs → generate-CDWU5THL.mjs} +1 -1
- package/dist/chunks/{github-FO4EEXXO.mjs → github-4FJJXS4S.mjs} +2 -2
- package/dist/chunks/global-7MTUN7RF.mjs +1 -0
- package/dist/chunks/{import-YZ6DALJH.mjs → import-7URPIFDS.mjs} +1 -1
- package/dist/chunks/installation-RR72B5VK.mjs +1 -0
- package/dist/chunks/instance-JRUNVEOY.mjs +1 -0
- package/dist/chunks/loader-JM3F4QIB.mjs +1 -0
- package/dist/chunks/loader-UNE2FHGW.mjs +1 -0
- package/dist/chunks/lsp-BBUMLIWW.mjs +1 -0
- package/dist/chunks/{mcp-HYAPWABM.mjs → mcp-4N5YPRUC.mjs} +1 -1
- package/dist/chunks/mcp-6ZTBDPWC.mjs +1 -0
- package/dist/chunks/models-CJXQ73ZY.mjs +1 -0
- package/dist/chunks/{pr-HCRWGCWQ.mjs → pr-57GKW2NH.mjs} +1 -1
- package/dist/chunks/preferences-Y4LNARDF.mjs +1 -0
- package/dist/chunks/project-ZYIU2237.mjs +1 -0
- package/dist/chunks/prompt-GS6M2ZBC.mjs +1 -0
- package/dist/chunks/provider-O6YLQJVP.mjs +1 -0
- package/dist/chunks/registry-AMBTVLLZ.mjs +1 -0
- package/dist/chunks/revert-CRWOTK6M.mjs +1 -0
- package/dist/chunks/ripgrep-RAHKARMG.mjs +1 -0
- package/dist/chunks/{run-URKJ5DUT.mjs → run-SQ55OJGX.mjs} +2 -2
- package/dist/chunks/scheduler-TA5BQWMN.mjs +1 -0
- package/dist/chunks/server-6YDMGLVO.mjs +1 -0
- package/dist/chunks/session-5MTHIW6C.mjs +1 -0
- package/dist/chunks/session-DKFZNLKJ.mjs +1 -0
- package/dist/chunks/{session-MFCBHZIP.mjs → session-NGC7RO7S.mjs} +1 -1
- package/dist/chunks/share-JA7GTDRM.mjs +1 -0
- package/dist/chunks/snapshot-AAJ23W7N.mjs +1 -0
- package/dist/chunks/storage-L7PFYGAO.mjs +1 -0
- package/dist/chunks/tui-7JLDLNRO.mjs +1 -0
- package/dist/chunks/{tui-TT6OCQV4.mjs → tui-OM5OSJIB.mjs} +1 -1
- package/dist/chunks/types-SCQH7CCJ.mjs +1 -0
- package/dist/chunks/{update-VBHR764I.mjs → update-QUELQLCK.mjs} +1 -1
- package/dist/cli.mjs +2 -2
- package/package.json +13 -13
- package/dist/chunks/acp-AARVJTBA.mjs +0 -16
- package/dist/chunks/adapter-loader-CB3UW37H.mjs +0 -1
- package/dist/chunks/app-AGDSZJDM.mjs +0 -1
- package/dist/chunks/bootstrap-EDMSUWV2.mjs +0 -1
- package/dist/chunks/bus-YEQKNKMO.mjs +0 -1
- package/dist/chunks/chunk-QGDQQX6A.mjs +0 -1057
- package/dist/chunks/compaction-C7J7C53D.mjs +0 -1
- package/dist/chunks/config-4XNBHYBV.mjs +0 -1
- package/dist/chunks/file-7GFIUNTB.mjs +0 -1
- package/dist/chunks/gateway-GHZM2PJR.mjs +0 -16
- package/dist/chunks/global-SGSR543B.mjs +0 -1
- package/dist/chunks/installation-MSVVOKVK.mjs +0 -1
- package/dist/chunks/instance-7KTZRA5I.mjs +0 -1
- package/dist/chunks/loader-4M6NJ42J.mjs +0 -1
- package/dist/chunks/loader-Y2HF2YS3.mjs +0 -1
- package/dist/chunks/lsp-BBM7GYOR.mjs +0 -1
- package/dist/chunks/mcp-QADEQDMW.mjs +0 -1
- package/dist/chunks/models-STBKM4E7.mjs +0 -1
- package/dist/chunks/preferences-OIWBGPIP.mjs +0 -1
- package/dist/chunks/project-PGXZXAH4.mjs +0 -1
- package/dist/chunks/prompt-GCZ2IF3I.mjs +0 -1
- package/dist/chunks/provider-L2DUZROS.mjs +0 -1
- package/dist/chunks/registry-P52K6QCZ.mjs +0 -1
- package/dist/chunks/revert-RO5GTNSL.mjs +0 -1
- package/dist/chunks/ripgrep-TM67XB2T.mjs +0 -1
- package/dist/chunks/scheduler-336IG7TK.mjs +0 -1
- package/dist/chunks/server-AOQMZH73.mjs +0 -1
- package/dist/chunks/session-2GNR26CC.mjs +0 -1
- package/dist/chunks/session-MTKITUFM.mjs +0 -1
- package/dist/chunks/share-DNOEENLW.mjs +0 -1
- package/dist/chunks/snapshot-IQM4QQO6.mjs +0 -1
- package/dist/chunks/storage-6OI3SHPN.mjs +0 -1
- package/dist/chunks/tui-7R6TWIWS.mjs +0 -1
- package/dist/chunks/types-I46IFFJ2.mjs +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{a as CustomEditor,h as createTuiApp,d as editorTheme,c as selectListTheme,b as theme}from'./chunk-IVLHWGNX.mjs';import'./chunk-CQVEAYYW.mjs';import'./chunk-SRFQPRTU.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-YJG6NNVY.mjs';import'./chunk-ANA5RPJQ.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-LQWOCD5V.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-3INOJAKC.mjs';import'./chunk-B6I7MJE5.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-HQE3WXCE.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-ZV27OCHD.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a as a$3}from'./chunk-XPF2LJT2.mjs';import {a as a$1}from'./chunk-LAHYVX5K.mjs';import {a as a$4}from'./chunk-
|
|
1
|
+
import {a as a$3}from'./chunk-XPF2LJT2.mjs';import {a as a$1}from'./chunk-LAHYVX5K.mjs';import {a as a$4}from'./chunk-DRWG7AVN.mjs';import {a as a$2,b,c,d as d$1,e,h}from'./chunk-VII7JKGB.mjs';import {g,d,e as e$1}from'./chunk-M3K32WJV.mjs';import'./chunk-SRFQPRTU.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-YJG6NNVY.mjs';import'./chunk-ANA5RPJQ.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-LQWOCD5V.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-3INOJAKC.mjs';import'./chunk-B6I7MJE5.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-HQE3WXCE.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-ZV27OCHD.mjs';import {b as b$1}from'./chunk-X6ISXWBN.mjs';import'path';var o=a.create({service:"cli-command-tui"});async function C(e){await a$4(e.directory,async()=>{await N(e);});}async function N(e){let{createTuiApp:c}=await import('./tui-7JLDLNRO.mjs'),{TUI:n,ProcessTerminal:t}=await import('@easbot/tui'),a=e.agent;a?o.debug("Using agent from command line",{agentName:a}):o.debug("Agent not specified, will use persisted or default");let s=e.model;s?o.debug("Using model from command line",{modelInfo:s}):o.debug("Model not specified, will use persisted or agent default");let m=new t,d=new n(m),_=await c(d,{directory:e.directory,agent:e.agent,model:e.model,sessionId:e.sessionId,new:e.new,continue:e.continue,fork:e.fork,prompt:e.prompt,onExit:async()=>{await y();}});for(let l of _.children)d.addChild(l);d.start(),d.requestRender(),await new Promise(l=>{let P=()=>{d.stop(),l();};process.once("exit",P);});}async function y(){return Promise.resolve()}function j(e,c){e.command("tui").description(i("tui.command.description")).option("-m, --model <model>",i("tui.option.model")).option("-c, --continue",i("tui.option.continue")).option("-n, --new",i("tui.option.new")).option("-s, --session-id <id>",i("tui.option.session_id")).option("--agent <agent>",i("tui.option.agent",{vars:{agents:c.agentOptions}})).option("--prompt <prompt>",i("tui.option.prompt")).option("--fork",i("tui.option.fork")).option("--port <port>",i("tui.option.port"),parseInt).option("--hostname <hostname>",i("tui.option.hostname")).action(async n=>{o.debug("TUI command started",{hasOptions:!!n});try{console.log(g(i("tui.start.begin")));let t=c.config.directory;o.debug("Working directory resolved",{directory:t});let a=a$1(t);if(!a.valid)throw o.error("Working directory validation failed",{directory:t,error:a.error}),new Error(`Invalid working directory: ${a.error}`);let s=a.normalizedPath;o.debug("Working directory validated",{validatedDirectory:s}),console.log(g(i("tui.directory.change",{vars:{cwd:s}}))),o.debug("Validating options",{options:n}),x(n);let m={directory:s,new:n.new,sessionId:n.sessionId,agent:n.agent,model:n.model,prompt:n.prompt,fork:n.fork,continue:n.continue};o.info("Starting TUI",{tuiStartOptions:m}),await C(m),console.log(d(i("tui.start.success"))),o.info("TUI started successfully");}catch(t){throw o.error("TUI command failed",{error:t instanceof Error?t.message:String(t),stack:t instanceof Error?t.stack:void 0}),A(t),t}finally{await S();}});}function x(e$1){if(o.debug("Validating TUI options",{options:e$1}),e$1.new&&e$1.sessionId)throw new Error(i("tui.validation.new_and_session_id_conflict"));if(e$1.fork){if(e$1.new)throw new Error(i("tui.validation.fork_cannot_use_with_new"));if(!e$1.continue&&!e$1.sessionId)throw new Error(i("tui.validation.fork_requires_session"))}if(e$1.agent&&!a$2(e$1.agent))throw new Error(`Invalid agent ID format: ${e$1.agent}`);if(e$1.sessionId&&!b(e$1.sessionId))throw new Error(`Invalid session ID format: ${e$1.sessionId}`);if(e$1.model&&!c(e$1.model))throw new Error(`Invalid model name format: ${e$1.model}. Expected format: provider/model`);if(e$1.port!==void 0&&!d$1(e$1.port))throw new Error(`Invalid port number: ${e$1.port}. Port must be between 1 and 65535`);if(e$1.hostname&&!e(e$1.hostname))throw new Error(`Invalid hostname: ${e$1.hostname}`);if(e$1.prompt&&!h(e$1.prompt))throw new Error("Prompt text is too long. Maximum length is 10000 characters");o.debug("TUI options validated successfully");}var f=class extends Error{constructor(n,t,a){super(t);b$1(this,"code");b$1(this,"cause");this.name="TuiError",this.code=n,this.cause=a;}};function A(e){if(e instanceof f){switch(console.error(e$1(i("error.code",{vars:{code:e.code,message:e.message}}))),e.code){case "DIRECTORY_ERROR":console.error(e$1(i("error.directory.hint")));break;case "VALIDATION_ERROR":console.error(e$1(i("error.validation.hint")));break;case "PORT_ERROR":console.error(e$1(i("error.port.hint")));break;case "CONNECTION_ERROR":console.error(e$1(i("error.connection.hint")));break;case "INITIALIZATION_ERROR":console.error(e$1(i("error.initialization.hint")));break;case "RENDER_ERROR":console.error(e$1(i("error.render.hint")));break}e.cause&&console.error(e$1(i("error.original")),e.cause);}else e instanceof Error?(console.error(e$1(`${i("error.unknown")} ${e.message}`)),e.stack&&(console.error(e$1(i("error.stack"))),console.error(e.stack))):console.error(e$1(i("error.unknown")),e);}async function S(){o.debug("Starting TUI resource cleanup");try{await y(),o.debug("TUI API cleanup completed");}catch(e){o.error("TUI API cleanup failed",{error:e instanceof Error?e.message:String(e)});}try{await a$3.cleanup(),o.debug("Resource manager cleanup completed");}catch(e){o.error("Resource manager cleanup failed",{error:e instanceof Error?e.message:String(e)});}o.debug("TUI resource cleanup completed");}export{j as registerTuiCommand};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{R as Acp,fb as Agent,_ as Codebase,db as Command,K as Compaction,fa as Context,lb as Info,gb as Keybinds,jb as Layout,_a as Mcp,Xa as McpLocal,Ya as McpOAuth,Za as McpRemote,$ as Memory,Wa as ModelId,aa as Note,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}from'./chunk-SRFQPRTU.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-YJG6NNVY.mjs';import'./chunk-ANA5RPJQ.mjs';export{a as Gateway}from'./chunk-ZBRXNYEM.mjs';import'./chunk-LQWOCD5V.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-3INOJAKC.mjs';import'./chunk-B6I7MJE5.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-HQE3WXCE.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-ZV27OCHD.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-
|
|
1
|
+
import {a as a$1}from'./chunk-DRWG7AVN.mjs';import {h,g,e,d}from'./chunk-M3K32WJV.mjs';import'./chunk-SRFQPRTU.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-YJG6NNVY.mjs';import'./chunk-ANA5RPJQ.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-LQWOCD5V.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-3INOJAKC.mjs';import'./chunk-B6I7MJE5.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-HQE3WXCE.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-ZV27OCHD.mjs';import'./chunk-X6ISXWBN.mjs';import {Semver,Shell,Fetch,PKG}from'@easbot/utils';var m=a.create({service:"cli-command-update"});function H(t,i$1){t.command("update [target]").description(i("update.command.description")).option("--method <method>",i("update.option.method")).action(async(e$1,n)=>{m.debug("Update command started",{target:e$1,method:n.method});try{console.log(h(i("update.starting")));let{Global:s}=await import('./global-7MTUN7RF.mjs'),a=s.getVersion()||"unknown";console.log(g(i("update.current_version",{vars:{version:a}})));let o=e$1||"latest";o==="latest"&&(o=await f(),o==="latest"&&(console.error(e(i("update.latest_fetch_failed"))),process.exit(1))),console.log(g(i("update.target_version",{vars:{version:o}})));let p=o.replace(/^v/,"");Semver.isValid(p)||(console.error(e(i("update.invalid_version",{vars:{version:o}}))),process.exit(1));let v=Semver.compare(a,p);v===0&&(console.log(d(i("update.already_latest",{vars:{version:a}}))),process.exit(0)),v>0&&console.warn(g(i("update.downgrade_warning",{vars:{from:a,to:p}}))),console.log(g(i("update.downloading")));let l=await a$1(i$1.config.directory,()=>x(o,n.method));l.success?(console.log(d(i("update.success",{vars:{version:l.version||o}}))),process.exit(0)):(console.error(e(i("update.failed",{vars:{error:l.error||"Unknown error"}}))),process.exit(1));}catch(s){m.error("Update failed",{error:s instanceof Error?s.message:String(s)}),console.error(e(i("update.error",{vars:{error:s instanceof Error?s.message:String(s)}}))),process.exit(1);}});}async function x(t,i){try{let e=t;t==="latest"?e=await f():(e=t.replace(/^v/,""),Semver.isValid(e)||(e=await f(),m.debug("Invalid version provided, using latest",{target:t,version:e})));let n=i||await E();m.debug("Updating to version",{version:e,method:n});let s=process.platform==="win32"?"cmd":void 0,a=V(n,e);m.debug(`Using ${n} to update`,{version:e,shell:s,command:a});let o=await Shell.run(s,a,{windowsHide:!0,timeout:600*1e3,env:{npm_config_loglevel:"error",PNPM_LOGLEVEL:"error",BUN_LOG_LEVEL:"error"}});return o.code===0?{success:!0,version:e}:{success:!1,error:o.stderr||o.stdout||`Exit code: ${o.code}`||"Update failed"}}catch(e){return {success:false,error:e instanceof Error?e.message:String(e)}}}function V(t,i){let n=`@easbot/agent@${i}`;switch(t){case "pnpm":return `pnpm add -g ${n} --loglevel error`;case "bun":return `bun add -g ${n}`;default:return `npm install -g ${n} --loglevel error`}}async function f(){try{return (await Fetch.get("https://registry.npmjs.org/@easbot/agent/latest")).data?.version||"latest"}catch{return "latest"}}async function E(){let t=await PKG.packageManager();return t?t.name:"npm"}
|
|
2
2
|
export{H as registerUpdateCommand};
|
package/dist/cli.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {e,h}from'./chunks/chunk-M3K32WJV.mjs';import {a}from'./chunks/chunk-LFYBZHOI.mjs';import'./chunks/chunk-X6ISXWBN.mjs';process.noDeprecation=true;async function b(){let{loadEnv:o}=await import('@easbot/utils');o();let{Global:t}=await import('./chunks/global-
|
|
2
|
+
import {e,h}from'./chunks/chunk-M3K32WJV.mjs';import {a}from'./chunks/chunk-LFYBZHOI.mjs';import'./chunks/chunk-X6ISXWBN.mjs';process.noDeprecation=true;async function b(){let{loadEnv:o}=await import('@easbot/utils');o();let{Global:t}=await import('./chunks/global-7MTUN7RF.mjs');await t.init();let r=y(),h$1=()=>r.log_level?r.log_level:E.isLocal()?"DEBUG":"INFO";await a.init({logDir:t.Path.log,print:r.print_logs??false,dev:r.debug??false,level:h$1()});let w=a.create({service:"cli"}),{t:g}=await import('./chunks/i18n-OMQXNLBR.mjs'),{bootstrapProgram:m}=await import('./chunks/bootstrap-YSY5JYBG.mjs'),{Installation:E}=await import('./chunks/installation-RR72B5VK.mjs'),{isTuiMode:d}=await import('./chunks/is-tui-mode-TFK352KK.mjs');await t.init();let f=process.argv.includes("acp")||process.argv.includes("serve")||process.argv.includes("gateway"),p;try{p=(await import('./chunks/app-267XBNKU.mjs')).getGlobalErrorHandler;}catch{}process.on("unhandledRejection",e=>{let c=d(),i=p?.(),a=e instanceof Error?e.message:String(e),n=e instanceof Error?e.stack:"";if(c){if(i){i(e,"unhandledRejection");return}try{process.stderr.write(`[TUI unhandledRejection] ${a}
|
|
3
3
|
`),n&&process.stderr.write(`${n}
|
|
4
4
|
`);}catch{}return}try{process.stderr.write(`[unhandledRejection] ${a}
|
|
5
5
|
`),n&&process.stderr.write(`${n}
|
|
@@ -7,4 +7,4 @@ import {e,h}from'./chunks/chunk-M3K32WJV.mjs';import {a}from'./chunks/chunk-LFYB
|
|
|
7
7
|
`),n&&process.stderr.write(`${n}
|
|
8
8
|
`);}catch{}return}try{process.stderr.write(`[uncaughtException] ${a}
|
|
9
9
|
`),n&&process.stderr.write(`${n}
|
|
10
|
-
`);}catch{}f||process.exit(1);});try{let{initModelsRefresh:e}=await import('./chunks/models-
|
|
10
|
+
`);}catch{}f||process.exit(1);});try{let{initModelsRefresh:e}=await import('./chunks/models-CJXQ73ZY.mjs');e(),await(await m(r)).parseAsync(process.argv);}catch(e$1){w.error("CLI failed to execute",{error:e$1});let c=e$1 instanceof Error?e$1.message:String(e$1),i=e$1 instanceof Error?e$1.stack:"";console.error(e(g("cli.error.execution_failed"))),c&&console.error(h(g("cli.error.detail"))),i&&console.error(i),process.exit(1);}finally{await a.close();}}function y(){let s={directory:process.cwd(),print_logs:false,log_level:"INFO",debug:false};for(let o=0;o<process.argv.length;o++){let t=process.argv[o];if(t)if(t==="--cwd"&&o+1<process.argv.length){let r=process.argv[o+1];r&&!r.startsWith("-")&&(s.directory=r,o++);}else if(t.startsWith("--cwd="))s.directory=t.slice(6);else if(t==="--config"&&o+1<process.argv.length){let r=process.argv[o+1];r&&!r.startsWith("-")&&(s.config_path=r,o++);}else if(t.startsWith("--config="))s.config_path=t.slice(9);else if(t==="--print-logs")s.print_logs=true;else if(t==="--log-level"&&o+1<process.argv.length){let r=process.argv[o+1];r&&!r.startsWith("-")&&(s.log_level=r.toUpperCase(),o++);}else t.startsWith("--log-level=")?s.log_level=t.slice(12).toUpperCase():t==="--debug"&&(s.debug=true);}return s}b();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@easbot/agent",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.36",
|
|
4
4
|
"description": "Core Agent for the easbot monorepo ecosystem",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -112,18 +112,18 @@
|
|
|
112
112
|
"xdg-basedir": "5.1.0",
|
|
113
113
|
"zod": "^4.4.3",
|
|
114
114
|
"zod-to-json-schema": "^3.25.2",
|
|
115
|
-
"@easbot/codebase": "0.2.
|
|
116
|
-
"@easbot/gateway": "0.2.
|
|
117
|
-
"@easbot/local-model-sdk": "0.2.
|
|
118
|
-
"@easbot/
|
|
119
|
-
"@easbot/
|
|
120
|
-
"@easbot/note": "0.2.
|
|
121
|
-
"@easbot/
|
|
122
|
-
"@easbot/
|
|
123
|
-
"@easbot/
|
|
124
|
-
"@easbot/
|
|
125
|
-
"@easbot/
|
|
126
|
-
"@easbot/utils": "0.2.
|
|
115
|
+
"@easbot/codebase": "0.2.36",
|
|
116
|
+
"@easbot/gateway": "0.2.36",
|
|
117
|
+
"@easbot/local-model-sdk": "0.2.36",
|
|
118
|
+
"@easbot/memory": "0.2.36",
|
|
119
|
+
"@easbot/plugin": "0.2.36",
|
|
120
|
+
"@easbot/note": "0.2.36",
|
|
121
|
+
"@easbot/mcp": "0.2.36",
|
|
122
|
+
"@easbot/tui": "0.2.36",
|
|
123
|
+
"@easbot/ollama-sdk": "0.2.36",
|
|
124
|
+
"@easbot/sdk": "0.2.36",
|
|
125
|
+
"@easbot/types": "0.2.36",
|
|
126
|
+
"@easbot/utils": "0.2.36"
|
|
127
127
|
},
|
|
128
128
|
"devDependencies": {
|
|
129
129
|
"@actions/core": "^3.0.1",
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-LAHYVX5K.mjs';import {a as a$2}from'./chunk-HLW2EHPQ.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-QGDQQX6A.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-SGMMA2KV.mjs';import'./chunk-DPHR5M4T.mjs';import'./chunk-JPLRWRX5.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-OI3BLNYR.mjs';import'./chunk-F6HODP64.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-BJ3DFGMC.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-KKGI52AW.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};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{ha as getACPClientsConfig,ga as getACPServerConfig,ka as getAcpAgentName,ia as getAcpAgentRuntimeConfig,ja as getAcpModelConfig,fa as loadACPConfig}from'./chunk-QGDQQX6A.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-SGMMA2KV.mjs';import'./chunk-DPHR5M4T.mjs';import'./chunk-JPLRWRX5.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-OI3BLNYR.mjs';import'./chunk-F6HODP64.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-BJ3DFGMC.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-KKGI52AW.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{h as createTuiApp,g as getGlobalErrorHandler,e as registerGlobalErrorHandler,f as unregisterGlobalErrorHandler}from'./chunk-OTJQZ7WY.mjs';import'./chunk-CQVEAYYW.mjs';import'./chunk-QGDQQX6A.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-SGMMA2KV.mjs';import'./chunk-DPHR5M4T.mjs';import'./chunk-JPLRWRX5.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-OI3BLNYR.mjs';import'./chunk-F6HODP64.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-BJ3DFGMC.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-KKGI52AW.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{a as bootstrap,b as bootstrapProgram}from'./chunk-HLW2EHPQ.mjs';import'./chunk-QGDQQX6A.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-SGMMA2KV.mjs';import'./chunk-DPHR5M4T.mjs';import'./chunk-JPLRWRX5.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-OI3BLNYR.mjs';import'./chunk-F6HODP64.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-BJ3DFGMC.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-KKGI52AW.mjs';import'./chunk-X6ISXWBN.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{a as Bus}from'./chunk-QGDQQX6A.mjs';import'./chunk-ZBRXNYEM.mjs';import'./chunk-SGMMA2KV.mjs';import'./chunk-DPHR5M4T.mjs';import'./chunk-JPLRWRX5.mjs';import'./chunk-DEZT7DOH.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-OI3BLNYR.mjs';import'./chunk-F6HODP64.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-BJ3DFGMC.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-KKGI52AW.mjs';import'./chunk-X6ISXWBN.mjs';
|