@easbot/agent 0.2.42 → 0.2.43

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.
Files changed (103) hide show
  1. package/dist/assets/txt/command/builtin/loop.txt +10 -5
  2. package/dist/assets/txt/context/template/BOOT.txt +2 -0
  3. package/dist/assets/txt/scheduler/heartbeat.txt +18 -1
  4. package/dist/assets/txt/scheduler/scheduled.txt +17 -1
  5. package/dist/chunks/{acp-AJ7O6XNE.mjs → acp-OBY35HS7.mjs} +2 -2
  6. package/dist/chunks/adapter-loader-ZXPJJRRY.mjs +1 -0
  7. package/dist/chunks/{agent-SKRC54QG.mjs → agent-EJ64O3VC.mjs} +1 -1
  8. package/dist/chunks/{agent-VUPXBEWR.mjs → agent-WSRT77Z6.mjs} +1 -1
  9. package/dist/chunks/agent-service-registry-QA5V3B4G.mjs +1 -0
  10. package/dist/chunks/{app-EPNEAPMS.mjs → app-I6CHGBMN.mjs} +12 -12
  11. package/dist/chunks/{auth-34JK273T.mjs → auth-F3UJX6TK.mjs} +1 -1
  12. package/dist/chunks/bootstrap-O5UL3UT2.mjs +1 -0
  13. package/dist/chunks/build-program-LX6IAAHW.mjs +11 -0
  14. package/dist/chunks/bus-XKXFTFNZ.mjs +1 -0
  15. package/dist/chunks/{chunk-2YNYVTYT.mjs → chunk-3CQA7CJG.mjs} +1 -1
  16. package/dist/chunks/{chunk-BDS2JWYG.mjs → chunk-3UV6DBAA.mjs} +1 -1
  17. package/dist/chunks/{chunk-WGJIT5HU.mjs → chunk-4Q3JAZPL.mjs} +1 -1
  18. package/dist/chunks/{chunk-3472MC45.mjs → chunk-CDDE7L65.mjs} +1 -1
  19. package/dist/chunks/{chunk-JTVO3U27.mjs → chunk-EFJHO4OX.mjs} +1 -1
  20. package/dist/chunks/{chunk-EB3OP6TL.mjs → chunk-G63GWBVD.mjs} +1 -1
  21. package/dist/chunks/{chunk-J6VEDKPT.mjs → chunk-HIPEPY4E.mjs} +1 -1
  22. package/dist/chunks/{chunk-4OHDEBAX.mjs → chunk-LP2YYNMX.mjs} +1 -1
  23. package/dist/chunks/chunk-OSLGCE7R.mjs +1 -0
  24. package/dist/chunks/chunk-PT5TKWFJ.mjs +1051 -0
  25. package/dist/chunks/{chunk-UNBJ6Y7L.mjs → chunk-XQ3LMV3K.mjs} +2 -2
  26. package/dist/chunks/{chunk-PEMUENKB.mjs → chunk-ZH674M7Q.mjs} +1 -1
  27. package/dist/chunks/{command-CJGBEATT.mjs → command-34YNL5HZ.mjs} +1 -1
  28. package/dist/chunks/compaction-OCFEYJC4.mjs +1 -0
  29. package/dist/chunks/{config-YSZNIWZT.mjs → config-MLDSMYKU.mjs} +1 -1
  30. package/dist/chunks/{confirm-dialog-SJOXJWYU.mjs → confirm-dialog-PT62UY3W.mjs} +1 -1
  31. package/dist/chunks/{debug-GZCL57Q7.mjs → debug-GTUHAYVC.mjs} +3 -3
  32. package/dist/chunks/{export-4CIOZYMY.mjs → export-5BWFWBI3.mjs} +1 -1
  33. package/dist/chunks/file-P2YWB5Q7.mjs +1 -0
  34. package/dist/chunks/{gateway-D6XCB2OA.mjs → gateway-GFZFVEHP.mjs} +2 -2
  35. package/dist/chunks/{generate-NYQCTBY7.mjs → generate-FNIRYTGT.mjs} +1 -1
  36. package/dist/chunks/{github-IGWZXZRB.mjs → github-JPCEWX4N.mjs} +1 -1
  37. package/dist/chunks/global-HVRSDT3G.mjs +1 -0
  38. package/dist/chunks/{i18n-OMQXNLBR.mjs → i18n-4TNHSVRN.mjs} +1 -1
  39. package/dist/chunks/{import-TYN474UK.mjs → import-B5RTBC2W.mjs} +1 -1
  40. package/dist/chunks/installation-JDBMIGTK.mjs +1 -0
  41. package/dist/chunks/instance-5OB47GH5.mjs +1 -0
  42. package/dist/chunks/loader-GNE7KLKQ.mjs +1 -0
  43. package/dist/chunks/loader-J6SV3FLI.mjs +1 -0
  44. package/dist/chunks/lsp-QWPGRLGX.mjs +1 -0
  45. package/dist/chunks/{mcp-FYDYPGLE.mjs → mcp-5DZTVP6Z.mjs} +1 -1
  46. package/dist/chunks/mcp-KWZSND4L.mjs +1 -0
  47. package/dist/chunks/models-JIMJ74AN.mjs +1 -0
  48. package/dist/chunks/{pr-DQZIG2CT.mjs → pr-E7AEHZZT.mjs} +1 -1
  49. package/dist/chunks/preferences-KZ7TL4Q3.mjs +1 -0
  50. package/dist/chunks/project-3W6D3354.mjs +1 -0
  51. package/dist/chunks/prompt-7M7NMDG4.mjs +1 -0
  52. package/dist/chunks/provider-RGQTLMFK.mjs +1 -0
  53. package/dist/chunks/registry-AA7CYXUC.mjs +1 -0
  54. package/dist/chunks/revert-FOMRGDW5.mjs +1 -0
  55. package/dist/chunks/ripgrep-TBPFM3BV.mjs +1 -0
  56. package/dist/chunks/{run-EQ5GHPKF.mjs → run-MYXJU4RX.mjs} +1 -1
  57. package/dist/chunks/scheduler-YYOW743S.mjs +1 -0
  58. package/dist/chunks/server-SQMRITFT.mjs +1 -0
  59. package/dist/chunks/session-EPFSKATV.mjs +1 -0
  60. package/dist/chunks/session-FQ5O5XZY.mjs +1 -0
  61. package/dist/chunks/{session-R2LCLNAY.mjs → session-LWKQT4G7.mjs} +1 -1
  62. package/dist/chunks/{settings-panel-ZMAGAWRF.mjs → settings-panel-C32BQGOR.mjs} +1 -1
  63. package/dist/chunks/share-6NJ4W4CC.mjs +1 -0
  64. package/dist/chunks/snapshot-VO64Z4KV.mjs +1 -0
  65. package/dist/chunks/{stats-TREO4CFV.mjs → stats-6IILCYBN.mjs} +1 -1
  66. package/dist/chunks/storage-23DKEFPY.mjs +1 -0
  67. package/dist/chunks/{tui-FVQHBIJ7.mjs → tui-P4UKVVKY.mjs} +1 -1
  68. package/dist/chunks/{types-OIHWEQYC.mjs → types-2GDQRKMX.mjs} +1 -1
  69. package/dist/chunks/{types-GCXI5X7B.mjs → types-OCGSLJEP.mjs} +1 -1
  70. package/dist/chunks/{update-V3GTL4TX.mjs → update-NNMG3LC7.mjs} +1 -1
  71. package/dist/cli.mjs +2 -2
  72. package/package.json +13 -13
  73. package/dist/chunks/adapter-loader-VUS3UYMT.mjs +0 -1
  74. package/dist/chunks/agent-service-registry-DPO5SSXA.mjs +0 -1
  75. package/dist/chunks/bootstrap-3KXRWM6D.mjs +0 -1
  76. package/dist/chunks/build-program-2AR3LYQJ.mjs +0 -11
  77. package/dist/chunks/bus-QOWILU5Z.mjs +0 -1
  78. package/dist/chunks/chunk-2RSIOAZV.mjs +0 -1
  79. package/dist/chunks/chunk-XMIQEMED.mjs +0 -1051
  80. package/dist/chunks/compaction-R4RTVEDY.mjs +0 -1
  81. package/dist/chunks/file-G4WHJKUX.mjs +0 -1
  82. package/dist/chunks/global-5WFCDQ45.mjs +0 -1
  83. package/dist/chunks/installation-6S6OCY6F.mjs +0 -1
  84. package/dist/chunks/instance-YVRWMB6M.mjs +0 -1
  85. package/dist/chunks/loader-VV3FV5NS.mjs +0 -1
  86. package/dist/chunks/loader-XGUYA6ZM.mjs +0 -1
  87. package/dist/chunks/lsp-J7UR4JNX.mjs +0 -1
  88. package/dist/chunks/mcp-GEZSPY2W.mjs +0 -1
  89. package/dist/chunks/models-JNSS4QSZ.mjs +0 -1
  90. package/dist/chunks/preferences-QCM3RIAL.mjs +0 -1
  91. package/dist/chunks/project-53ZMRKRI.mjs +0 -1
  92. package/dist/chunks/prompt-XYHKPB7Q.mjs +0 -1
  93. package/dist/chunks/provider-2RFHZVX4.mjs +0 -1
  94. package/dist/chunks/registry-GGSZXBFC.mjs +0 -1
  95. package/dist/chunks/revert-7RBPZDWL.mjs +0 -1
  96. package/dist/chunks/ripgrep-U54LYBZO.mjs +0 -1
  97. package/dist/chunks/scheduler-3AYHIZGY.mjs +0 -1
  98. package/dist/chunks/server-ITUF2HX7.mjs +0 -1
  99. package/dist/chunks/session-5OU5P7UF.mjs +0 -1
  100. package/dist/chunks/session-XA4RMN7D.mjs +0 -1
  101. package/dist/chunks/share-45SYUA47.mjs +0 -1
  102. package/dist/chunks/snapshot-YC3DAH7Q.mjs +0 -1
  103. package/dist/chunks/storage-6F64537E.mjs +0 -1
@@ -1 +1 @@
1
- import {a as a$3}from'./chunk-MYI75W3D.mjs';import'./chunk-CQVEAYYW.mjs';import'./chunk-FXOUIXIL.mjs';import {a as a$2}from'./chunk-PEMUENKB.mjs';import {l,d,e,h,i as i$1,b,c,a as a$4}from'./chunk-M3K32WJV.mjs';import'./chunk-XMIQEMED.mjs';import'./chunk-WGJIT5HU.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-3472MC45.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-J6VEDKPT.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-2RSIOAZV.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-4OHDEBAX.mjs';import'./chunk-EB3OP6TL.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-2YNYVTYT.mjs';import {a as a$1}from'./chunk-LFYBZHOI.mjs';import'./chunk-BDS2JWYG.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};
1
+ import {a as a$3}from'./chunk-MYI75W3D.mjs';import'./chunk-CQVEAYYW.mjs';import'./chunk-FXOUIXIL.mjs';import {a as a$2}from'./chunk-ZH674M7Q.mjs';import {l,d,e,h,i as i$1,b,c,a as a$4}from'./chunk-M3K32WJV.mjs';import'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import {i}from'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import {a as a$1}from'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.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-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -0,0 +1 @@
1
+ export{a as ModelsDev,b as initModelsRefresh}from'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -1,3 +1,3 @@
1
- import {e,h,g,d}from'./chunk-M3K32WJV.mjs';import {Sa}from'./chunk-XMIQEMED.mjs';import'./chunk-WGJIT5HU.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-3472MC45.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-J6VEDKPT.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-2RSIOAZV.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-4OHDEBAX.mjs';import'./chunk-EB3OP6TL.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-2YNYVTYT.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-BDS2JWYG.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{Sa.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(`
1
+ import {e,h,g,d}from'./chunk-M3K32WJV.mjs';import {Sa}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import {i}from'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.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{Sa.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-4Q3JAZPL.mjs';import'./chunk-3CQA7CJG.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -0,0 +1 @@
1
+ export{Ra as Project}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -0,0 +1 @@
1
+ export{Aa as SessionPrompt}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -0,0 +1 @@
1
+ export{j as Provider}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -0,0 +1 @@
1
+ export{ma as ToolRegistry}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -0,0 +1 @@
1
+ export{l as SessionRevert}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -0,0 +1 @@
1
+ export{a as Ripgrep}from'./chunk-CDDE7L65.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -1,4 +1,4 @@
1
- import {a as a$3}from'./chunk-FXOUIXIL.mjs';import {a as a$1}from'./chunk-PEMUENKB.mjs';import {e,f,b,c,a as a$2,g,i as i$1,d,j as j$1}from'./chunk-M3K32WJV.mjs';import {Aa,j,k as k$1,m as m$1}from'./chunk-XMIQEMED.mjs';import'./chunk-WGJIT5HU.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-3472MC45.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-J6VEDKPT.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-2RSIOAZV.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-4OHDEBAX.mjs';import'./chunk-EB3OP6TL.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-2YNYVTYT.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-BDS2JWYG.mjs';import'./chunk-X6ISXWBN.mjs';import x from'path';import {promises}from'fs';import {pathToFileURL}from'url';import {EOL}from'os';import {Locale}from'@easbot/utils';var V=a.create({service:"cli-command-run"});function G(t){let o=t.state;return {input:o.input,metadata:"metadata"in o?o.metadata:{},part:t}}function m(t){console.log(j$1(t.icon,t.title,t.description));}function k(t,o){console.log(),console.log(j$1(t.icon,t.title,t.description)),o?.trim()&&console.log(o),console.log();}function X(t){let o=t.state,n="input"in o?o.input:void 0,i=("title"in o&&o.title?o.title:void 0)||(n&&typeof n=="object"&&Object.keys(n).length>0?JSON.stringify(n):"Unknown");console.log(j$1("\u2699",`${t.tool} ${i}`));}function w(t){if(!t)return "";if(x.isAbsolute(t)){let o=x.posix.relative(process.cwd(),t)||".";return a$3(o)}return a$3(t)}var U={glob:t=>{let o=t.input.path??"",n=`Glob "${t.input.pattern}"`,i=o?`in ${w(o)}`:"",s=t.metadata.count,e=s===void 0?i:`${i}${i?" \xB7 ":""}${s} ${s===1?"match":"matches"}`;m({icon:"\u2731",title:n,...e&&{description:e}});},grep:t=>{let o=t.input.path??"",n=`Grep "${t.input.pattern}"`,i=o?`in ${w(o)}`:"",s=t.metadata.matches,e=s===void 0?i:`${i}${i?" \xB7 ":""}${s} ${s===1?"match":"matches"}`;m({icon:"\u2731",title:n,...e&&{description:e}});},list:t=>{let o=t.input.path?w(t.input.path):"";m({icon:"\u2192",title:o?`List ${o}`:"List"});},read:t=>{let o=w(t.input.filePath),n=Object.entries(t.input).filter(([s,e])=>s==="filePath"?false:typeof e=="string"||typeof e=="number"||typeof e=="boolean"),i=n.length>0?`[${n.map(([s,e])=>`${s}=${e}`).join(", ")}]`:void 0;m({icon:"\u2192",title:`Read ${o}`,...i&&{description:i}});},write:t=>{k({icon:"\u2190",title:`Write ${w(t.input.filePath)}`},t.part.state.status==="completed"?t.part.state.output:void 0);},webfetch:t=>{m({icon:"%",title:`WebFetch ${t.input.url}`});},edit:t=>{let o=w(t.input.filePath),n=t.metadata.diff;k({icon:"\u2190",title:`Edit ${o}`},n);},codesearch:t=>{m({icon:"\u25C7",title:`Exa Code Search "${t.input.query}"`});},websearch:t=>{m({icon:"\u25C8",title:`Exa Web Search "${t.input.query}"`});},task:t=>{if(t.input.operation==="create"){let n=Locale.titlecase(t.input.subagent_type??"unknown"),s=t.input.description??`${n} Task`;m({icon:"\u2022",title:s,description:`${n} Agent`});}else m({icon:"?",title:"Task Query"});},skill:t=>{m({icon:"\u2192",title:`Skill "${t.input.name}"`});},bash:t=>{let o=t.part.state.status==="completed"?t.part.state.output?.trim():void 0;k({icon:"$",title:`${t.input.command}`},o);},todo:t=>{if(t.input.operation==="write"){let o=t.input.todos;Array.isArray(o)&&k({icon:"#",title:"Todos"},o.map(n=>`${n.status==="completed"?"[x]":"[ ]"} ${n.content}`).join(`
1
+ import {a as a$3}from'./chunk-FXOUIXIL.mjs';import {a as a$1}from'./chunk-ZH674M7Q.mjs';import {e,f,b,c,a as a$2,g,i as i$1,d,j as j$1}from'./chunk-M3K32WJV.mjs';import {Aa,j,k as k$1,m as m$1}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import {i}from'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';import x from'path';import {promises}from'fs';import {pathToFileURL}from'url';import {EOL}from'os';import {Locale}from'@easbot/utils';var V=a.create({service:"cli-command-run"});function G(t){let o=t.state;return {input:o.input,metadata:"metadata"in o?o.metadata:{},part:t}}function m(t){console.log(j$1(t.icon,t.title,t.description));}function k(t,o){console.log(),console.log(j$1(t.icon,t.title,t.description)),o?.trim()&&console.log(o),console.log();}function X(t){let o=t.state,n="input"in o?o.input:void 0,i=("title"in o&&o.title?o.title:void 0)||(n&&typeof n=="object"&&Object.keys(n).length>0?JSON.stringify(n):"Unknown");console.log(j$1("\u2699",`${t.tool} ${i}`));}function w(t){if(!t)return "";if(x.isAbsolute(t)){let o=x.posix.relative(process.cwd(),t)||".";return a$3(o)}return a$3(t)}var U={glob:t=>{let o=t.input.path??"",n=`Glob "${t.input.pattern}"`,i=o?`in ${w(o)}`:"",s=t.metadata.count,e=s===void 0?i:`${i}${i?" \xB7 ":""}${s} ${s===1?"match":"matches"}`;m({icon:"\u2731",title:n,...e&&{description:e}});},grep:t=>{let o=t.input.path??"",n=`Grep "${t.input.pattern}"`,i=o?`in ${w(o)}`:"",s=t.metadata.matches,e=s===void 0?i:`${i}${i?" \xB7 ":""}${s} ${s===1?"match":"matches"}`;m({icon:"\u2731",title:n,...e&&{description:e}});},list:t=>{let o=t.input.path?w(t.input.path):"";m({icon:"\u2192",title:o?`List ${o}`:"List"});},read:t=>{let o=w(t.input.filePath),n=Object.entries(t.input).filter(([s,e])=>s==="filePath"?false:typeof e=="string"||typeof e=="number"||typeof e=="boolean"),i=n.length>0?`[${n.map(([s,e])=>`${s}=${e}`).join(", ")}]`:void 0;m({icon:"\u2192",title:`Read ${o}`,...i&&{description:i}});},write:t=>{k({icon:"\u2190",title:`Write ${w(t.input.filePath)}`},t.part.state.status==="completed"?t.part.state.output:void 0);},webfetch:t=>{m({icon:"%",title:`WebFetch ${t.input.url}`});},edit:t=>{let o=w(t.input.filePath),n=t.metadata.diff;k({icon:"\u2190",title:`Edit ${o}`},n);},codesearch:t=>{m({icon:"\u25C7",title:`Exa Code Search "${t.input.query}"`});},websearch:t=>{m({icon:"\u25C8",title:`Exa Web Search "${t.input.query}"`});},task:t=>{if(t.input.operation==="create"){let n=Locale.titlecase(t.input.subagent_type??"unknown"),s=t.input.description??`${n} Task`;m({icon:"\u2022",title:s,description:`${n} Agent`});}else m({icon:"?",title:"Task Query"});},skill:t=>{m({icon:"\u2192",title:`Skill "${t.input.name}"`});},bash:t=>{let o=t.part.state.status==="completed"?t.part.state.output?.trim():void 0;k({icon:"$",title:`${t.input.command}`},o);},todo:t=>{if(t.input.operation==="write"){let o=t.input.todos;Array.isArray(o)&&k({icon:"#",title:"Todos"},o.map(n=>`${n.status==="completed"?"[x]":"[ ]"} ${n.content}`).join(`
2
2
  `));}else if(t.input.operation==="read"){let o=t.metadata.todos;Array.isArray(o)&&k({icon:"#",title:"Todos"},o.map(n=>`${n.status==="completed"?"[x]":"[ ]"} ${n.content}`).join(`
3
3
  `));}}};function Z(t){let o=U[t.tool];o?o(G(t)):X(t);}function to(t,o){t.command("run [message...]").description(i("run.command.description")).option("--command <command>",i("run.option.command")).option("-c, --continue",i("run.option.continue")).option("-s, --session <id>",i("run.option.session")).option("--fork",i("run.option.fork")).option("--share",i("run.option.share")).option("-m, --model <model>",i("run.option.model")).option("--agent <agent>",i("run.option.agent")).option("--format <format>",i("run.option.format"),"default").option("-f, --file <files...>",i("run.option.file")).option("--title <title>",i("run.option.title")).option("--variant <variant>",i("run.option.variant")).option("--thinking",i("run.option.thinking"),false).action(async(n,i)=>{await tt(n,i,o),process.exit(0);});}async function tt(t,o,n){await a$1(n.config.directory,async()=>{await ot(t,o,n);});}async function ot(t,o,n){let i$1=t.join(" "),s=n.config.directory,e$1=[];if(o.file){let c=Array.isArray(o.file)?o.file:[o.file];for(let u of c){let T=x.resolve(s,u);try{let R=(await promises.stat(T)).isDirectory()?"application/x-directory":"text/plain";e$1.push({type:"file",url:pathToFileURL(T).href,filename:x.basename(T),mime:R});}catch(g){let R=g instanceof Error?g.message:String(g),H=g&&typeof g=="object"&&"code"in g?g.code:"UNKNOWN";console.error(e(i("run.error.file_not_found",{vars:{file:u}}))),V.error("Failed to access file",{filePath:u,resolvedPath:T,error:R,code:H}),process.exit(1);}}}i$1.trim().length===0&&!o.command&&(console.error(e(i("run.error.no_message"))),process.exit(1)),o.fork&&!o.continue&&!o.session&&(console.error(e(i("run.error.fork_requires_session"))),process.exit(1));let a=await(async()=>{if(!o.agent)return;let{data:c}=await n.sdk.app.agents({});if(!c?.find(T=>T.name===o.agent)){console.log(f(i("run.warning.agent_not_found",{vars:{agent:o.agent}})));return}return o.agent})(),l=await et(o,i$1,n);l||(console.error(e(i("run.error.session_not_found"))),process.exit(1));let h=!o.continue&&!o.session,I=new Map,y=new AbortController,q=new AbortController,C=await n.sdk.global.event({signal:y.signal}),{stream:f$1}=C,p,Q=new Promise(c=>{p=c;}),z=await n.sdk.session.event({sessionId:l},{signal:q.signal}),{stream:B}=z;(async()=>{try{for await(let c of f$1){let u=c.payload;rt(u,l,o,I);}}catch{}})();(async()=>{try{for await(let c of B){let u=c.payload;u.type==="session.status"&&u.properties.status.type==="idle"&&p?.();}}catch{}})();try{if(o.command)await Aa.command({sessionId:l,agent:a,model:o.model,command:o.command,arguments:i$1,variant:o.variant});else {let c=o.model?j.parseModel(o.model):void 0,u=c?{providerId:c.providerId||"default-provider",modelId:c.modelId}:void 0;await Aa.prompt({sessionId:l,agent:a,model:u,variant:o.variant,parts:[...e$1,{type:"text",text:i$1}]});}await Q;}finally{if(y.abort(),q.abort(),h)try{await n.sdk.session.delete({sessionId:l});}catch{console.warn(f(i("run.warning.session_cleanup_failed",{vars:{sessionId:l}})));}}}async function et(t,o,n){let s=(await n.sdk.session.list()).data,e=t.continue?s?.find(h=>!h.parentId)?.id:t.session;if(e&&t.fork)return (await n.sdk.session.fork({sessionId:e})).data?.id;if(e)return e;let a=nt(t,o);return (await n.sdk.session.create({title:a})).data?.id}function nt(t,o){if(t.title!==void 0)return t.title!==""?t.title:o.slice(0,50)+(o.length>50?"...":"")}async function rt(t,o,n,i$2){function s(e,a){return n.format==="json"?(process.stdout.write(JSON.stringify({type:e,timestamp:Date.now(),sessionId:o,...a})+EOL),true):false}if(t.type==="message.updated"&&t.properties.info.role==="assistant"&&n.format!=="json"&&i$2.get("start")!==true&&(console.log(),console.log(`> ${t.properties.info.agent} \xB7 ${t.properties.info.modelId}`),console.log(),i$2.set("start",true)),t.type==="message.part.updated"){let e=t.properties.part;if(e.sessionId!==o)return;if(e.type==="tool"&&e.state.status==="completed"){if(s("tool_use",{part:e}))return;Z(e);}if(e.type==="tool"&&e.tool==="task"&&e.state.status==="running"&&n.format!=="json"){if(i$2.get(e.id)===true)return;U.task(G(e)),i$2.set(e.id,true);}if(e.type==="step-start"&&s("step_start",{part:e})||e.type==="step-finish"&&s("step_finish",{part:e}))return;if(e.type==="text"&&e.time?.end){if(s("text",{part:e}))return;let a=e.text.trim();if(!a)return;if(!process.stdout.isTTY){process.stdout.write(a+EOL);return}console.log(),console.log(a),console.log();}if(e.type==="reasoning"&&e.time?.end&&n.thinking){if(s("reasoning",{part:e}))return;let a=e.text.trim();if(!a)return;let l=`Thinking: ${a}`;if(process.stdout.isTTY){console.log(),console.log(`\x1B[2m\x1B[3m${l}\x1B[0m`),console.log();return}process.stdout.write(l+EOL);}}if(t.type==="session.error"){let e$1=t.properties;if(e$1.sessionId!==o||!e$1.error)return;let a=String(e$1.error.name);if("data"in e$1.error&&e$1.error.data&&"message"in e$1.error.data&&(a=String(e$1.error.data.message)),s("error",{error:e$1.error}))return;console.error(e(a));}if(t.type==="permission.asked"){let e=t.properties;if(e.sessionId!==o)return;if(n.format==="json"){await k$1.reply({requestId:e.id,reply:"once"});return}let a=b();console.log(`
4
4
  `+c(a,a$2.muted,"=".repeat(80))),console.log(g(i("run.permission.request",{vars:{permission:e.permission}}))),console.log(i$1(i("run.permission.targets_label"),e.patterns.join(", "))),console.log(c(a,a$2.muted,"=".repeat(80)));let l=await st();await k$1.reply({requestId:e.id,reply:l});}if(t.type==="question.asked"){let e=t.properties;if(e.sessionId!==o)return;if(n.format==="json"){await m$1.reject(e.id);return}let a=b();console.log(`
@@ -0,0 +1 @@
1
+ export{Ca as DEFAULT_HEARTBEAT_TEMPLATE,Da as DEFAULT_SCHEDULED_TEMPLATE,Ia as HookEvent,Ea as PromptTemplate,Ha as Scheduler,Fa as TaskHistory,c as TaskStorage,d as TaskStore,i as describeCron,h as formatCronExpression,g as getNextFireTime,f as isValidCron,e as parseCronExpression,Ga as recordTaskExecution}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -0,0 +1 @@
1
+ export{wa as Server}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -0,0 +1 @@
1
+ export{Qa as Session}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -0,0 +1 @@
1
+ export{Qa as Session,$ as Task}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -1 +1 @@
1
- import {a as a$2}from'./chunk-MYI75W3D.mjs';import'./chunk-CQVEAYYW.mjs';import {a as a$4}from'./chunk-FXOUIXIL.mjs';import {a as a$1}from'./chunk-PEMUENKB.mjs';import {l,d,b,c,a as a$3,e,h,i as i$1}from'./chunk-M3K32WJV.mjs';import {ha}from'./chunk-XMIQEMED.mjs';import'./chunk-WGJIT5HU.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-3472MC45.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-J6VEDKPT.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-2RSIOAZV.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-4OHDEBAX.mjs';import'./chunk-EB3OP6TL.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-2YNYVTYT.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-BDS2JWYG.mjs';import'./chunk-X6ISXWBN.mjs';a.create({service:"cli-api-tui"});var t=a.create({service:"cli-command-session"});function se(P,n){let m=P.command("session").description(i("session.command.description"));m.command("list").description(i("session.command.list.description")).option("-n, --max-count <number>",i("session.command.list.option.max_count"),parseInt).option("--format <format>",i("session.command.list.option.format"),"table").action(async s=>{await a$1(n.config.directory,async()=>{try{t.info("Listing sessions",{maxCount:s.maxCount,format:s.format});let{data:e}=await n.sdk.session.list({limit:s.maxCount});if(!e||e.length===0){console.log(l(i("session.list.empty")));return}if(s.format==="json")console.log(ha.formatSessionJSON(e));else {console.log(d(i("session.list.success",{vars:{count:e.length}}))),console.log("");let p=b();console.log(a$2({columns:[{key:"id",header:i("session.table.header.id"),minWidth:25},{key:"title",header:i("session.table.header.title"),flex:!0,minWidth:20},{key:"created",header:i("session.table.header.created"),minWidth:20},{key:"updated",header:i("session.table.header.updated"),minWidth:20}],rows:e.map(a=>({id:a.id,title:a.title||c(p,a$3.muted,i("session.untitled")),created:new Date(a.time.created).toLocaleString(),updated:new Date(a.time.updated).toLocaleString()})),width:process.stdout.columns||120,border:"unicode"}));}t.debug("Session list displayed",{count:e.length});}catch(e$1){t.error("Failed to list sessions",{error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i("session.list.error"))),process.exit(1);}});}),m.command("info <session-id>").description(i("session.command.info.description")).action(async s=>{await a$1(n.config.directory,async()=>{try{t.debug("Getting session info",{sessionId:s});let{data:e$1}=await n.sdk.session.get({sessionId:s}),p=b();e$1||(console.error(e(i("session.get.not_found",{vars:{sessionId:s}}))),process.exit(1)),console.log(d(i("session.get.success"))),console.log(""),console.log(h(i("session.info.heading"))),console.log(""),console.log(i$1(i("session.field.id")+":",e$1.id,12)),console.log(i$1(i("session.field.title")+":",e$1.title||c(p,a$3.muted,i("session.untitled")),12)),console.log(i$1(i("session.field.created")+":",new Date(e$1.time.created).toLocaleString(),12)),console.log(i$1(i("session.field.updated")+":",new Date(e$1.time.updated).toLocaleString(),12)),e$1.directory&&console.log(i$1(i("session.field.directory")+":",a$4(e$1.directory),12)),e$1.providerId&&console.log(i$1(i("session.field.project_id")+":",e$1.providerId,12)),t.debug("Session info displayed",{sessionId:s});}catch(e$1){t.error("Failed to get session info",{sessionId:s,error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i("session.get.error"))),process.exit(1);}});}),m.command("delete <session-id>").description(i("session.command.delete.description")).action(async s=>{await a$1(n.config.directory,async()=>{try{t.debug("Deleting session",{sessionId:s}),await n.sdk.session.delete({sessionId:s}),console.log(d(i("session.delete.success"))),t.debug("Session deleted",{sessionId:s});}catch(e$1){t.error("Failed to delete session",{sessionId:s,error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i("session.delete.error"))),process.exit(1);}});});}export{se as registerSessionCommands};
1
+ import {a as a$2}from'./chunk-MYI75W3D.mjs';import'./chunk-CQVEAYYW.mjs';import {a as a$4}from'./chunk-FXOUIXIL.mjs';import {a as a$1}from'./chunk-ZH674M7Q.mjs';import {l,d,b,c,a as a$3,e,h,i as i$1}from'./chunk-M3K32WJV.mjs';import {ha}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import {i}from'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';a.create({service:"cli-api-tui"});var t=a.create({service:"cli-command-session"});function se(P,n){let m=P.command("session").description(i("session.command.description"));m.command("list").description(i("session.command.list.description")).option("-n, --max-count <number>",i("session.command.list.option.max_count"),parseInt).option("--format <format>",i("session.command.list.option.format"),"table").action(async s=>{await a$1(n.config.directory,async()=>{try{t.info("Listing sessions",{maxCount:s.maxCount,format:s.format});let{data:e}=await n.sdk.session.list({limit:s.maxCount});if(!e||e.length===0){console.log(l(i("session.list.empty")));return}if(s.format==="json")console.log(ha.formatSessionJSON(e));else {console.log(d(i("session.list.success",{vars:{count:e.length}}))),console.log("");let p=b();console.log(a$2({columns:[{key:"id",header:i("session.table.header.id"),minWidth:25},{key:"title",header:i("session.table.header.title"),flex:!0,minWidth:20},{key:"created",header:i("session.table.header.created"),minWidth:20},{key:"updated",header:i("session.table.header.updated"),minWidth:20}],rows:e.map(a=>({id:a.id,title:a.title||c(p,a$3.muted,i("session.untitled")),created:new Date(a.time.created).toLocaleString(),updated:new Date(a.time.updated).toLocaleString()})),width:process.stdout.columns||120,border:"unicode"}));}t.debug("Session list displayed",{count:e.length});}catch(e$1){t.error("Failed to list sessions",{error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i("session.list.error"))),process.exit(1);}});}),m.command("info <session-id>").description(i("session.command.info.description")).action(async s=>{await a$1(n.config.directory,async()=>{try{t.debug("Getting session info",{sessionId:s});let{data:e$1}=await n.sdk.session.get({sessionId:s}),p=b();e$1||(console.error(e(i("session.get.not_found",{vars:{sessionId:s}}))),process.exit(1)),console.log(d(i("session.get.success"))),console.log(""),console.log(h(i("session.info.heading"))),console.log(""),console.log(i$1(i("session.field.id")+":",e$1.id,12)),console.log(i$1(i("session.field.title")+":",e$1.title||c(p,a$3.muted,i("session.untitled")),12)),console.log(i$1(i("session.field.created")+":",new Date(e$1.time.created).toLocaleString(),12)),console.log(i$1(i("session.field.updated")+":",new Date(e$1.time.updated).toLocaleString(),12)),e$1.directory&&console.log(i$1(i("session.field.directory")+":",a$4(e$1.directory),12)),e$1.providerId&&console.log(i$1(i("session.field.project_id")+":",e$1.providerId,12)),t.debug("Session info displayed",{sessionId:s});}catch(e$1){t.error("Failed to get session info",{sessionId:s,error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i("session.get.error"))),process.exit(1);}});}),m.command("delete <session-id>").description(i("session.command.delete.description")).action(async s=>{await a$1(n.config.directory,async()=>{try{t.debug("Deleting session",{sessionId:s}),await n.sdk.session.delete({sessionId:s}),console.log(d(i("session.delete.success"))),t.debug("Session deleted",{sessionId:s});}catch(e$1){t.error("Failed to delete session",{sessionId:s,error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i("session.delete.error"))),process.exit(1);}});});}export{se as registerSessionCommands};
@@ -1 +1 @@
1
- import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-X6ISXWBN.mjs';import {SettingsList}from'@easbot/tui';var a={label:(t,i)=>i?`\x1B[1;36m${t}\x1B[0m`:t,value:(t,i)=>i?`\x1B[1;33m${t}\x1B[0m`:`\x1B[33m${t}\x1B[0m`,description:t=>`\x1B[90m${t}\x1B[0m`,cursor:"\x1B[36m\u2192\x1B[0m ",hint:t=>`\x1B[90m${t}\x1B[0m`};function b(t){let{currentSettings:i$1,onChange:n,onCancel:s,maxVisible:o=10}=t,l=[{id:"thinkingLevel",label:i("tui.settings.item.thinking_level"),currentValue:i$1.thinkingLevel||"off",description:i("tui.settings.desc.thinking_level"),values:["off","low","medium","high"]},{id:"showThinking",label:i("tui.settings.item.show_thinking"),currentValue:i$1.showThinking?"true":"false",description:i("tui.settings.desc.show_thinking"),values:["false","true"]},{id:"verboseLevel",label:i("tui.settings.item.verbose_level"),currentValue:i$1.verboseLevel||"off",description:i("tui.settings.desc.verbose_level"),values:["off","on"]},{id:"messageLimit",label:i("tui.settings.item.message_limit"),currentValue:String(i$1.messageLimit||50),description:i("tui.settings.desc.message_limit"),values:["25","50","100"]},{id:"toolsExpanded",label:i("tui.settings.item.tools_expanded"),currentValue:i$1.toolsExpanded?"true":"false",description:i("tui.settings.desc.tools_expanded"),values:["false","true"]},{id:"localShellPermission",label:i("tui.settings.item.local_shell_permission"),currentValue:i$1.localShellPermission||"ask",description:i("tui.settings.desc.local_shell_permission"),values:["ask","on","off"]},{id:"contextMode",label:i("tui.settings.item.context_mode"),currentValue:i$1.contextMode||"general",description:i("tui.settings.desc.context_mode"),values:["general","coder"]}];return new SettingsList(l,o,a,n,s,{enableSearch:false})}export{b as createSettingsPanel};
1
+ import {i}from'./chunk-XQ3LMV3K.mjs';import'./chunk-X6ISXWBN.mjs';import {SettingsList}from'@easbot/tui';var a={label:(t,i)=>i?`\x1B[1;36m${t}\x1B[0m`:t,value:(t,i)=>i?`\x1B[1;33m${t}\x1B[0m`:`\x1B[33m${t}\x1B[0m`,description:t=>`\x1B[90m${t}\x1B[0m`,cursor:"\x1B[36m\u2192\x1B[0m ",hint:t=>`\x1B[90m${t}\x1B[0m`};function b(t){let{currentSettings:i$1,onChange:n,onCancel:s,maxVisible:o=10}=t,l=[{id:"thinkingLevel",label:i("tui.settings.item.thinking_level"),currentValue:i$1.thinkingLevel||"off",description:i("tui.settings.desc.thinking_level"),values:["off","low","medium","high"]},{id:"showThinking",label:i("tui.settings.item.show_thinking"),currentValue:i$1.showThinking?"true":"false",description:i("tui.settings.desc.show_thinking"),values:["false","true"]},{id:"verboseLevel",label:i("tui.settings.item.verbose_level"),currentValue:i$1.verboseLevel||"off",description:i("tui.settings.desc.verbose_level"),values:["off","on"]},{id:"messageLimit",label:i("tui.settings.item.message_limit"),currentValue:String(i$1.messageLimit||50),description:i("tui.settings.desc.message_limit"),values:["25","50","100"]},{id:"toolsExpanded",label:i("tui.settings.item.tools_expanded"),currentValue:i$1.toolsExpanded?"true":"false",description:i("tui.settings.desc.tools_expanded"),values:["false","true"]},{id:"localShellPermission",label:i("tui.settings.item.local_shell_permission"),currentValue:i$1.localShellPermission||"ask",description:i("tui.settings.desc.local_shell_permission"),values:["ask","on","off"]},{id:"contextMode",label:i("tui.settings.item.context_mode"),currentValue:i$1.contextMode||"general",description:i("tui.settings.desc.context_mode"),values:["general","coder"]}];return new SettingsList(l,o,a,n,s,{enableSearch:false})}export{b as createSettingsPanel};
@@ -0,0 +1 @@
1
+ export{Pa as Share}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -0,0 +1 @@
1
+ export{Ja as Snapshot}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -1 +1 @@
1
- import {a as a$1}from'./chunk-MYI75W3D.mjs';import'./chunk-CQVEAYYW.mjs';import'./chunk-FXOUIXIL.mjs';import {h as h$1,d,e}from'./chunk-M3K32WJV.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-X6ISXWBN.mjs';var u=a.create({service:"cli-command-stats"});async function h(a,g){let{data:r}=await a.sdk.session.list({}),t={totalSessions:r?.length??0,totalMessages:0,totalCost:0,totalTokens:{input:0,output:0,reasoning:0,cache:{read:0,write:0}},toolUsage:{},modelUsage:{}};if(!r||r.length===0)return t;for(let d of r){let{data:l}=await a.sdk.session.messages({sessionId:d.id});if(l){t.totalMessages+=l.length;for(let s of l){if(s.info.role==="assistant"){t.totalCost+=s.info.cost||0;let o=`${s.info.providerId}/${s.info.modelId}`;t.modelUsage[o]||(t.modelUsage[o]={messages:0,tokens:0,cost:0}),t.modelUsage[o].messages++,t.modelUsage[o].cost+=s.info.cost||0,s.info.tokens&&(t.totalTokens.input+=s.info.tokens.input||0,t.totalTokens.output+=s.info.tokens.output||0,t.totalTokens.reasoning+=s.info.tokens.reasoning||0,t.totalTokens.cache.read+=s.info.tokens.cache?.read||0,t.totalTokens.cache.write+=s.info.tokens.cache?.write||0);}for(let o of s.parts)o.type==="tool"&&o.tool&&(t.toolUsage[o.tool]=(t.toolUsage[o.tool]||0)+1);}}}return t}function m(a){return a>=1e6?(a/1e6).toFixed(1)+"M":a>=1e3?(a/1e3).toFixed(1)+"K":a.toString()}function U(a,g){a.command("stats").description(i("stats.command.description")).option("--days <number>",i("stats.option.days")).option("--tools <number>",i("stats.option.tools")).option("--models [number]",i("stats.option.models")).action(async r=>{u.debug("Displaying stats",{options:r});try{console.log(h$1(i("stats.loading")));let t=await h(g,r.days);console.log(d(i("stats.display_ready"))),console.log(""),console.log(h$1(i("stats.overview"))),console.log(a$1({columns:[{key:"label",header:i("stats.table.header.metric"),minWidth:25},{key:"value",header:i("stats.table.header.value"),flex:!0}],rows:[{label:i("stats.metric.sessions"),value:t.totalSessions.toLocaleString()},{label:i("stats.metric.messages"),value:t.totalMessages.toLocaleString()}],width:process.stdout.columns||80,border:"unicode"})),console.log(""),console.log(h$1(i("stats.cost_tokens")));let d$1=Number.isNaN(t.totalCost)?0:t.totalCost;if(console.log(a$1({columns:[{key:"label",header:i("stats.table.header.metric"),minWidth:25},{key:"value",header:i("stats.table.header.value"),flex:!0}],rows:[{label:i("stats.metric.total_cost"),value:`$${d$1.toFixed(2)}`},{label:i("stats.metric.input"),value:m(t.totalTokens.input)},{label:i("stats.metric.output"),value:m(t.totalTokens.output)},{label:i("stats.metric.cache_read"),value:m(t.totalTokens.cache.read)},{label:i("stats.metric.cache_write"),value:m(t.totalTokens.cache.write)}],width:process.stdout.columns||80,border:"unicode"})),r.tools&&Object.keys(t.toolUsage).length>0){console.log(""),console.log(h$1(i("stats.tool_usage")));let l=Object.entries(t.toolUsage).sort(([,o],[,n])=>n-o).slice(0,r.tools),s=Object.values(t.toolUsage).reduce((o,n)=>o+n,0);console.log(a$1({columns:[{key:"tool",header:i("stats.table.header.tool"),minWidth:20},{key:"count",header:i("stats.table.header.count"),minWidth:10},{key:"percent",header:i("stats.table.header.percent"),flex:!0}],rows:l.map(([o,n])=>({tool:o,count:n.toString(),percent:`${(n/s*100).toFixed(1)}%`})),width:process.stdout.columns||80,border:"unicode"}));}u.debug("Stats displayed successfully");}catch(t){u.error("Failed to display stats",{error:t instanceof Error?t.message:String(t)}),console.error(e(i("stats.error.failed",{vars:{error:t instanceof Error?t.message:String(t)}}))),process.exit(1);}});}export{U as registerStatsCommand};
1
+ import {a as a$1}from'./chunk-MYI75W3D.mjs';import'./chunk-CQVEAYYW.mjs';import'./chunk-FXOUIXIL.mjs';import {h as h$1,d,e}from'./chunk-M3K32WJV.mjs';import {i}from'./chunk-XQ3LMV3K.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-X6ISXWBN.mjs';var u=a.create({service:"cli-command-stats"});async function h(a,g){let{data:r}=await a.sdk.session.list({}),t={totalSessions:r?.length??0,totalMessages:0,totalCost:0,totalTokens:{input:0,output:0,reasoning:0,cache:{read:0,write:0}},toolUsage:{},modelUsage:{}};if(!r||r.length===0)return t;for(let d of r){let{data:l}=await a.sdk.session.messages({sessionId:d.id});if(l){t.totalMessages+=l.length;for(let s of l){if(s.info.role==="assistant"){t.totalCost+=s.info.cost||0;let o=`${s.info.providerId}/${s.info.modelId}`;t.modelUsage[o]||(t.modelUsage[o]={messages:0,tokens:0,cost:0}),t.modelUsage[o].messages++,t.modelUsage[o].cost+=s.info.cost||0,s.info.tokens&&(t.totalTokens.input+=s.info.tokens.input||0,t.totalTokens.output+=s.info.tokens.output||0,t.totalTokens.reasoning+=s.info.tokens.reasoning||0,t.totalTokens.cache.read+=s.info.tokens.cache?.read||0,t.totalTokens.cache.write+=s.info.tokens.cache?.write||0);}for(let o of s.parts)o.type==="tool"&&o.tool&&(t.toolUsage[o.tool]=(t.toolUsage[o.tool]||0)+1);}}}return t}function m(a){return a>=1e6?(a/1e6).toFixed(1)+"M":a>=1e3?(a/1e3).toFixed(1)+"K":a.toString()}function U(a,g){a.command("stats").description(i("stats.command.description")).option("--days <number>",i("stats.option.days")).option("--tools <number>",i("stats.option.tools")).option("--models [number]",i("stats.option.models")).action(async r=>{u.debug("Displaying stats",{options:r});try{console.log(h$1(i("stats.loading")));let t=await h(g,r.days);console.log(d(i("stats.display_ready"))),console.log(""),console.log(h$1(i("stats.overview"))),console.log(a$1({columns:[{key:"label",header:i("stats.table.header.metric"),minWidth:25},{key:"value",header:i("stats.table.header.value"),flex:!0}],rows:[{label:i("stats.metric.sessions"),value:t.totalSessions.toLocaleString()},{label:i("stats.metric.messages"),value:t.totalMessages.toLocaleString()}],width:process.stdout.columns||80,border:"unicode"})),console.log(""),console.log(h$1(i("stats.cost_tokens")));let d$1=Number.isNaN(t.totalCost)?0:t.totalCost;if(console.log(a$1({columns:[{key:"label",header:i("stats.table.header.metric"),minWidth:25},{key:"value",header:i("stats.table.header.value"),flex:!0}],rows:[{label:i("stats.metric.total_cost"),value:`$${d$1.toFixed(2)}`},{label:i("stats.metric.input"),value:m(t.totalTokens.input)},{label:i("stats.metric.output"),value:m(t.totalTokens.output)},{label:i("stats.metric.cache_read"),value:m(t.totalTokens.cache.read)},{label:i("stats.metric.cache_write"),value:m(t.totalTokens.cache.write)}],width:process.stdout.columns||80,border:"unicode"})),r.tools&&Object.keys(t.toolUsage).length>0){console.log(""),console.log(h$1(i("stats.tool_usage")));let l=Object.entries(t.toolUsage).sort(([,o],[,n])=>n-o).slice(0,r.tools),s=Object.values(t.toolUsage).reduce((o,n)=>o+n,0);console.log(a$1({columns:[{key:"tool",header:i("stats.table.header.tool"),minWidth:20},{key:"count",header:i("stats.table.header.count"),minWidth:10},{key:"percent",header:i("stats.table.header.percent"),flex:!0}],rows:l.map(([o,n])=>({tool:o,count:n.toString(),percent:`${(n/s*100).toFixed(1)}%`})),width:process.stdout.columns||80,border:"unicode"}));}u.debug("Stats displayed successfully");}catch(t){u.error("Failed to display stats",{error:t instanceof Error?t.message:String(t)}),console.error(e(i("stats.error.failed",{vars:{error:t instanceof Error?t.message:String(t)}}))),process.exit(1);}});}export{U as registerStatsCommand};
@@ -0,0 +1 @@
1
+ export{a as Storage}from'./chunk-3CQA7CJG.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.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-PEMUENKB.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-XMIQEMED.mjs';import'./chunk-WGJIT5HU.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-3472MC45.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-J6VEDKPT.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-2RSIOAZV.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-4OHDEBAX.mjs';import'./chunk-EB3OP6TL.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-2YNYVTYT.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-BDS2JWYG.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('./app-EPNEAPMS.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};
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-ZH674M7Q.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-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import {i}from'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.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('./app-I6CHGBMN.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};
@@ -1 +1 @@
1
- export{S as Acp,jb as Agent,aa as Codebase,hb as Command,K as Compaction,La as Context,pb as Info,kb as Keybinds,nb as Layout,cb as Mcp,$a as McpLocal,ab as McpOAuth,bb as McpRemote,ba as Memory,_a as ModelId,ca as Note,gb as Permission,db as PermissionAction,eb as PermissionObject,fb as PermissionRule,ob as Provider,mb as Server,ib as Skills,Wa as SubAgent,Xa as SubAgentConfigSchema,Va as SubAgentModel,Ta as SubAgentRunMode,Ua as SubAgentTransportType,lb as TUI}from'./chunk-XMIQEMED.mjs';import'./chunk-WGJIT5HU.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-3472MC45.mjs';export{a as Gateway}from'./chunk-LGMGGNPW.mjs';import'./chunk-J6VEDKPT.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-4OHDEBAX.mjs';import'./chunk-EB3OP6TL.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-2YNYVTYT.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-BDS2JWYG.mjs';import'./chunk-X6ISXWBN.mjs';
1
+ export{S as Acp,jb as Agent,aa as Codebase,hb as Command,K as Compaction,La as Context,pb as Info,kb as Keybinds,nb as Layout,cb as Mcp,$a as McpLocal,ab as McpOAuth,bb as McpRemote,ba as Memory,_a as ModelId,ca as Note,gb as Permission,db as PermissionAction,eb as PermissionObject,fb as PermissionRule,ob as Provider,mb as Server,ib as Skills,Wa as SubAgent,Xa as SubAgentConfigSchema,Va as SubAgentModel,Ta as SubAgentRunMode,Ua as SubAgentTransportType,lb as TUI}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';export{a as Gateway}from'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -1 +1 @@
1
- export{m as BOOTSTRAP_FILE,p as BUILTIN_FILE_CONFIG,l as BUILTIN_SYSTEM_FILES,d as ContextModeEnum,e as ContextModeValues,c as ContextWindowExhaustedError,j as DEFAULT_FILE_CACHE_CONFIG,b as DEFAULT_FILE_CACHE_MAX_BYTES,a as DEFAULT_FILE_CACHE_MAX_ENTRIES,q as DEFAULT_TEMPLATE_PRIORITY,k as DEFAULT_TOKEN_ESTIMATION_CONFIG,f as DefaultContextMode,i as DefaultScope,r as RULES_TEMPLATE_PRIORITY,n as SPECIAL_FILE_PATHS,o as SUBAGENT_CORE_FILES,g as ScopeEnum,h as ScopeValues}from'./chunk-2RSIOAZV.mjs';import'./chunk-X6ISXWBN.mjs';
1
+ export{m as BOOTSTRAP_FILE,p as BUILTIN_FILE_CONFIG,l as BUILTIN_SYSTEM_FILES,d as ContextModeEnum,e as ContextModeValues,c as ContextWindowExhaustedError,j as DEFAULT_FILE_CACHE_CONFIG,b as DEFAULT_FILE_CACHE_MAX_BYTES,a as DEFAULT_FILE_CACHE_MAX_ENTRIES,q as DEFAULT_TEMPLATE_PRIORITY,k as DEFAULT_TOKEN_ESTIMATION_CONFIG,f as DefaultContextMode,i as DefaultScope,r as RULES_TEMPLATE_PRIORITY,n as SPECIAL_FILE_PATHS,o as SUBAGENT_CORE_FILES,g as ScopeEnum,h as ScopeValues}from'./chunk-OSLGCE7R.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -1,2 +1,2 @@
1
- import {a as a$1}from'./chunk-PEMUENKB.mjs';import {h,g,e,d}from'./chunk-M3K32WJV.mjs';import'./chunk-XMIQEMED.mjs';import'./chunk-WGJIT5HU.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-3472MC45.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-J6VEDKPT.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-2RSIOAZV.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-4OHDEBAX.mjs';import'./chunk-EB3OP6TL.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-2YNYVTYT.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-BDS2JWYG.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-5WFCDQ45.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"}
1
+ import {a as a$1}from'./chunk-ZH674M7Q.mjs';import {h,g,e,d}from'./chunk-M3K32WJV.mjs';import'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-HIPEPY4E.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-OSLGCE7R.mjs';import {i}from'./chunk-XQ3LMV3K.mjs';import'./chunk-LP2YYNMX.mjs';import'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-3CQA7CJG.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.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-HVRSDT3G.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 {c,d}from'./chunks/chunk-X6ISXWBN.mjs';process.noDeprecation=true;async function $(){var v=[];try{let s=!1;let{loadEnv:t,defer:o}=await import('@easbot/utils');t();let{Global:r}=await import('./chunks/global-5WFCDQ45.mjs');await r.init();let a$1=k();let y=()=>a$1.log_level?a$1.log_level:G.isLocal()?"DEBUG":"INFO";await a.init({logDir:r.Path.log,print:a$1.print_logs??!1,dev:a$1.debug??!1,level:y()});let L=c(v,o(async()=>await a.close()),!0);let _=a.create({service:"cli"});let{t:d}=await import('./chunks/i18n-OMQXNLBR.mjs');let{bootstrapProgram:x}=await import('./chunks/bootstrap-3KXRWM6D.mjs');let{Installation:G}=await import('./chunks/installation-6S6OCY6F.mjs');let{isTuiMode:f}=await import('./chunks/is-tui-mode-TFK352KK.mjs');await r.init();let u=process.argv.includes("acp")||process.argv.includes("serve")||process.argv.includes("gateway");let g;try{g=(await import('./chunks/app-EPNEAPMS.mjs')).getGlobalErrorHandler;}catch{}process.on("unhandledRejection",e=>{let c=f(),i=g?.(),l=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] ${l}
2
+ import {e,h}from'./chunks/chunk-M3K32WJV.mjs';import {a}from'./chunks/chunk-LFYBZHOI.mjs';import {c,d}from'./chunks/chunk-X6ISXWBN.mjs';process.noDeprecation=true;async function $(){var v=[];try{let s=!1;let{loadEnv:t,defer:o}=await import('@easbot/utils');t();let{Global:r}=await import('./chunks/global-HVRSDT3G.mjs');await r.init();let a$1=k();let y=()=>a$1.log_level?a$1.log_level:G.isLocal()?"DEBUG":"INFO";await a.init({logDir:r.Path.log,print:a$1.print_logs??!1,dev:a$1.debug??!1,level:y()});let L=c(v,o(async()=>await a.close()),!0);let _=a.create({service:"cli"});let{t:d}=await import('./chunks/i18n-4TNHSVRN.mjs');let{bootstrapProgram:x}=await import('./chunks/bootstrap-O5UL3UT2.mjs');let{Installation:G}=await import('./chunks/installation-JDBMIGTK.mjs');let{isTuiMode:f}=await import('./chunks/is-tui-mode-TFK352KK.mjs');await r.init();let u=process.argv.includes("acp")||process.argv.includes("serve")||process.argv.includes("gateway");let g;try{g=(await import('./chunks/app-I6CHGBMN.mjs')).getGlobalErrorHandler;}catch{}process.on("unhandledRejection",e=>{let c=f(),i=g?.(),l=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] ${l}
3
3
  `),n&&process.stderr.write(`${n}
4
4
  `);}catch{}return}try{process.stderr.write(`[unhandledRejection] ${l}
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] ${l}
9
9
  `),n&&process.stderr.write(`${n}
10
- `);}catch{}u||process.exit(1);});try{let{initModelsRefresh:e}=await import('./chunks/models-JNSS4QSZ.mjs');e(),await(await x(a$1)).parseAsync(process.argv);}catch(e$1){_.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(d("cli.error.execution_failed"))),c&&console.error(h(d("cli.error.detail"))),i&&console.error(i),process.exit(1);}}catch(M){var O=M,D=true;}finally{var h$1=d(v,O,D);h$1&&await h$1;}}function k(){let s={directory:process.cwd(),print_logs:false,log_level:"INFO",debug:false};for(let t=0;t<process.argv.length;t++){let o=process.argv[t];if(o)if(o==="--cwd"&&t+1<process.argv.length){let r=process.argv[t+1];r&&!r.startsWith("-")&&(s.directory=r,t++);}else if(o.startsWith("--cwd="))s.directory=o.slice(6);else if(o==="--config"&&t+1<process.argv.length){let r=process.argv[t+1];r&&!r.startsWith("-")&&(s.config_path=r,t++);}else if(o.startsWith("--config="))s.config_path=o.slice(9);else if(o==="--print-logs")s.print_logs=true;else if(o==="--log-level"&&t+1<process.argv.length){let r=process.argv[t+1];r&&!r.startsWith("-")&&(s.log_level=r.toUpperCase(),t++);}else o.startsWith("--log-level=")?s.log_level=o.slice(12).toUpperCase():o==="--debug"&&(s.debug=true);}return s}$();
10
+ `);}catch{}u||process.exit(1);});try{let{initModelsRefresh:e}=await import('./chunks/models-JIMJ74AN.mjs');e(),await(await x(a$1)).parseAsync(process.argv);}catch(e$1){_.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(d("cli.error.execution_failed"))),c&&console.error(h(d("cli.error.detail"))),i&&console.error(i),process.exit(1);}}catch(M){var O=M,D=true;}finally{var h$1=d(v,O,D);h$1&&await h$1;}}function k(){let s={directory:process.cwd(),print_logs:false,log_level:"INFO",debug:false};for(let t=0;t<process.argv.length;t++){let o=process.argv[t];if(o)if(o==="--cwd"&&t+1<process.argv.length){let r=process.argv[t+1];r&&!r.startsWith("-")&&(s.directory=r,t++);}else if(o.startsWith("--cwd="))s.directory=o.slice(6);else if(o==="--config"&&t+1<process.argv.length){let r=process.argv[t+1];r&&!r.startsWith("-")&&(s.config_path=r,t++);}else if(o.startsWith("--config="))s.config_path=o.slice(9);else if(o==="--print-logs")s.print_logs=true;else if(o==="--log-level"&&t+1<process.argv.length){let r=process.argv[t+1];r&&!r.startsWith("-")&&(s.log_level=r.toUpperCase(),t++);}else o.startsWith("--log-level=")?s.log_level=o.slice(12).toUpperCase():o==="--debug"&&(s.debug=true);}return s}$();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easbot/agent",
3
- "version": "0.2.42",
3
+ "version": "0.2.43",
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/types": "0.2.42",
116
- "@easbot/codebase": "0.2.42",
117
- "@easbot/utils": "0.2.42",
118
- "@easbot/gateway": "0.2.42",
119
- "@easbot/local-model-sdk": "0.2.42",
120
- "@easbot/memory": "0.2.42",
121
- "@easbot/note": "0.2.42",
122
- "@easbot/mcp": "0.2.42",
123
- "@easbot/plugin": "0.2.42",
124
- "@easbot/ollama-sdk": "0.2.42",
125
- "@easbot/sdk": "0.2.42",
126
- "@easbot/tui": "0.2.42"
115
+ "@easbot/types": "0.2.43",
116
+ "@easbot/codebase": "0.2.43",
117
+ "@easbot/utils": "0.2.43",
118
+ "@easbot/gateway": "0.2.43",
119
+ "@easbot/local-model-sdk": "0.2.43",
120
+ "@easbot/memory": "0.2.43",
121
+ "@easbot/mcp": "0.2.43",
122
+ "@easbot/note": "0.2.43",
123
+ "@easbot/plugin": "0.2.43",
124
+ "@easbot/ollama-sdk": "0.2.43",
125
+ "@easbot/sdk": "0.2.43",
126
+ "@easbot/tui": "0.2.43"
127
127
  },
128
128
  "devDependencies": {
129
129
  "@actions/core": "^3.0.1",
@@ -1 +0,0 @@
1
- export{V as getACPClientsConfig,U as getACPServerConfig,Y as getAcpAgentName,W as getAcpAgentRuntimeConfig,X as getAcpModelConfig,T as loadACPConfig}from'./chunk-XMIQEMED.mjs';import'./chunk-WGJIT5HU.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-3472MC45.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-J6VEDKPT.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-4OHDEBAX.mjs';import'./chunk-EB3OP6TL.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-2YNYVTYT.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-BDS2JWYG.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -1 +0,0 @@
1
- export{Z as AgentServices}from'./chunk-XMIQEMED.mjs';import'./chunk-WGJIT5HU.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-3472MC45.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-J6VEDKPT.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-4OHDEBAX.mjs';import'./chunk-EB3OP6TL.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-2YNYVTYT.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-BDS2JWYG.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -1 +0,0 @@
1
- export{a as bootstrap,b as bootstrapProgram}from'./chunk-PEMUENKB.mjs';import'./chunk-XMIQEMED.mjs';import'./chunk-WGJIT5HU.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-3472MC45.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-J6VEDKPT.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-4OHDEBAX.mjs';import'./chunk-EB3OP6TL.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-2YNYVTYT.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-BDS2JWYG.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -1,11 +0,0 @@
1
- import {b as b$1}from'./chunk-JTVO3U27.mjs';import {a as a$1}from'./chunk-XPF2LJT2.mjs';import {Sa,xa,la}from'./chunk-XMIQEMED.mjs';import'./chunk-WGJIT5HU.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-3472MC45.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-J6VEDKPT.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-2RSIOAZV.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-4OHDEBAX.mjs';import {b as b$2}from'./chunk-EB3OP6TL.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-2YNYVTYT.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-BDS2JWYG.mjs';import'./chunk-X6ISXWBN.mjs';import {Command}from'commander';import'path';import k from'fs/promises';import {parse}from'jsonc-parser';var h="easbot",P="EASBot - Multi-Agent Collaboration Ecosystem CLI Tool",x="build",b=["main","ops","explorer"];var w=a.create({service:"cli-config"});async function j(t){try{let o=await k.readFile(t,"utf-8");return parse(o)||{}}catch(o){if(o&&typeof o=="object"&&"code"in o){if(o.code==="ENOENT")return {};w.warn("Failed to read config file",{filePath:t,error:o.code});}else w.error("Failed to parse config file",{filePath:t,error:o instanceof Error?o.message:String(o)});return {}}}function B(...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 D(){return {server:{port:3e3,hostname:"localhost"},agent:{},model:{},permission:{}}}async function A(t={}){let{cwd:o=process.cwd(),customConfigPath:n}=t,e=D();if(t.sdk)try{let{data:i}=await t.sdk.config.get({});i&&(e=i);}catch{}if(n){let i=await j(n);Object.keys(i).length>0&&(e=B(e,i));}return e.directory=o,e}async function v(t={}){let o=t.cwd||process.cwd(),n=t.root||Sa.worktree,e=xa({directory:o}),i=await A({cwd:o,root:n,sdk:e,customConfigPath:t.customConfigPath});return {programVersion:b$2.getVersion(),channelOptions:["stdio","http","ws"],agentOptions:`${i.default_agent||x}|${b.join("|")}`,config:i,sdk:e}}var F=[{commands:[{name:"tui",description:"\u542F\u52A8 TUI \u754C\u9762",hasSubcommands:false}],register:async({program:t,ctx:o})=>{(await import('./tui-FVQHBIJ7.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-EQ5GHPKF.mjs')).registerRunCommand(t,o);}},{commands:[{name:"generate",description:"\u751F\u6210 OpenAPI \u89C4\u8303",hasSubcommands:false}],register:async({program:t,ctx:o})=>{(await import('./generate-NYQCTBY7.mjs')).registerGenerateCommand(t,o);}},{commands:[{name:"agent",description:"Agent \u7BA1\u7406\u547D\u4EE4",hasSubcommands:true}],register:async({program:t,ctx:o})=>{(await import('./agent-SKRC54QG.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-R2LCLNAY.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-FYDYPGLE.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-AJ7O6XNE.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-GZCL57Q7.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-D6XCB2OA.mjs')).registerGatewayCommand(t,o);}},{commands:[{name:"auth",description:"Provider \u51ED\u636E\u7BA1\u7406",hasSubcommands:true}],register:async({program:t,ctx:o})=>{(await import('./auth-34JK273T.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-4CIOZYMY.mjs')).registerExportCommand(t,o);}},{commands:[{name:"github",description:"GitHub Agent \u7BA1\u7406",hasSubcommands:true}],register:async({program:t,ctx:o})=>{(await import('./github-IGWZXZRB.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-TYN474UK.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-DQZIG2CT.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-TREO4CFV.mjs')).registerStatsCommand(t,o);}},{commands:[{name:"update",description:"\u66F4\u65B0 Easbot CLI",hasSubcommands:false}],register:async({program:t,ctx:o})=>{(await import('./update-V3GTL4TX.mjs')).registerUpdateCommand(t,o);}}];async function H(t,o,n=process.argv){for(let e of F)await e.register({program:t,ctx:o,argv:n});}async function E(t,o,n=process.argv){await H(t,o,n);}function _(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(S(n));},writeErr:n=>{process.stderr.write(S(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 S(t){return t.replace(/^Usage:/gm,"Usage:").replace(/^Options:/gm,"Options:").replace(/^Commands:/gm,"Commands:")}var L=a.create({service:"cli-preaction-hooks"}),R=false,I={tui:"tui",run:"run",acp:"acp",gateway:"gateway"},O=null;function N(t,o,n){t.hook("preAction",async(e,i)=>{M(i);let m=process.argv;if(U(m))return;let g=V(m);$(g)||z(o),O=g[0]??null,await W(O,n);});}function M(t){let o=t;for(;o.parent?.parent;)o=o.parent;let n=o.name();!n||n==="easbot"||(process.title=`easbot-${n}`);}function U(t){return t.some(o=>o==="-h"||o==="--help"||o==="-v"||o==="--version"||o==="help")}function V(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 $(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 z(t){R||(R=true,console.log(i("program.version.banner",{vars:{version:t}})));}async function W(t,o){try{t&&I[t]&&await la(async()=>{let{AgentServices:n}=await import('./agent-service-registry-DPO5SSXA.mjs'),e=I[t];await n.init(e??""),L.debug("AgentServices initialized",{command:t,prefix:e});},"CLI_INIT_AGENT_SERVICES",{directory:o.config.directory});}catch(n){L.warn("Failed to initialize AgentServices",{error:String(n)});}}var X=Symbol.for("easbot.cli.programContext");function T(t,o){t[X]=o;}var c=a.create({service:"cli-program"});async function Yo(t={}){c.debug("Initializing resource manager"),a$1.initialize();let o=new Command,n=await v({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 T(o,n),o.name(h).version(n.programVersion,"-V, --version",i("program.version.description")).description(P),_(o),N(o,n.programVersion,n),await K(o,n),await E(o,n,e),await q(o),await J(o),o}async function q(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);});}async function J(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});}async function K(t,o){try{c.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){c.debug("Registering plugin CLI commands",{count:o._pluginCliRegistrations.length});for(let m of o._pluginCliRegistrations)try{m.register({program:t,context:o}),c.debug("Plugin CLI commands registered",{pluginId:m.pluginId,commands:m.commands});}catch(g){c.error("Failed to register plugin CLI commands",{pluginId:m.pluginId,error:g});}}c.info("Plugin system loaded",{loadedPlugins:n.getLoadedPluginIds()});}catch(n){c.error("Failed to load plugin system",{error:n});}}export{Yo as buildProgram};
@@ -1 +0,0 @@
1
- export{a as Bus}from'./chunk-XMIQEMED.mjs';import'./chunk-WGJIT5HU.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-3472MC45.mjs';import'./chunk-LGMGGNPW.mjs';import'./chunk-J6VEDKPT.mjs';import'./chunk-AAJAKVQY.mjs';import'./chunk-2RSIOAZV.mjs';import'./chunk-UNBJ6Y7L.mjs';import'./chunk-4OHDEBAX.mjs';import'./chunk-EB3OP6TL.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-2YNYVTYT.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-BDS2JWYG.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -1 +0,0 @@
1
- import {b}from'./chunk-X6ISXWBN.mjs';var c=100,d=26214400,o=class extends Error{constructor(e){let n=`Context window exhausted: remaining ${e.remaining} tokens`;super(n);b(this,"remaining");b(this,"contextWindow");b(this,"tokenEstimate");this.name="ContextWindowExhaustedError",this.remaining=e.remaining,this.contextWindow=e.contextWindow,this.tokenEstimate=e.tokenEstimate;}},s={General:"general",Coder:"coder"},l=Object.values(s),x=s.General,r={General:"general",Coder:"coder",All:"all"},E=Object.values(r),g=r.All,T={maxEntries:100,maxBytes:26214400,timestampCheck:true},u={charsPerToken:4},y=["BOOT.md","IDENTITY.md","SOUL.md","USER.md","TOOLS.md","CONTEXT.md","CODER.md","HEARTBEAT.md"],M="BOOTSTRAP.md",C={"AGENTS.md":"AGENTS.md","MEMORY.md":".easbot/memory/MEMORY.md"},O=["SOUL.md","TOOLS.md","IDENTITY.md","USER.md","BOOT.md"],S={"BOOT.md":{type:"system",scope:"all",priority:10,source:"BOOT.txt",target:"BOOT.md"},"BOOTSTRAP.md":{type:"system",scope:"all",priority:20,source:"BOOTSTRAP.txt",target:"BOOTSTRAP.md"},"IDENTITY.md":{type:"system",scope:"all",priority:30,source:"IDENTITY.txt",target:"IDENTITY.md"},"SOUL.md":{type:"system",scope:"all",priority:40,source:"SOUL.txt",target:"SOUL.md"},"USER.md":{type:"system",scope:"all",priority:50,source:"USER.txt",target:"USER.md"},"TOOLS.md":{type:"system",scope:"all",priority:60,source:"TOOLS.txt",target:"TOOLS.md"},"CONTEXT.md":{type:"system",scope:"all",priority:70,source:"CONTEXT.txt",target:"CONTEXT.md"},"CODER.md":{type:"system",scope:"coder",priority:80,source:"CODER.txt",target:"CODER.md"},"HEARTBEAT.md":{type:"system",scope:"all",priority:90,dynamic:true,source:"HEARTBEAT.txt",target:"HEARTBEAT.md"},"MEMORY.md":{type:"system",scope:"all",priority:100,source:"MEMORY.txt",target:"MEMORY.md"},"AGENTS.md":{type:"system",scope:"all",priority:110,source:"AGENTS.txt",target:"AGENTS.md"}},A=1e3,I=2e3;export{c as a,d as b,o as c,s as d,l as e,x as f,r as g,E as h,g as i,T as j,u as k,y as l,M as m,C as n,O as o,S as p,A as q,I as r};