@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,4 +1,4 @@
1
- var f={languages:[{value:"zh-CN",name:"\u7B80\u4F53\u4E2D\u6587",example:"\u4F60\u597D\uFF0CEASBOT\uFF01",supported:true},{value:"en-US",name:"English (United States)",example:"Hello, EASBOT!",supported:true}]};var x=f.languages,A=x.filter(e=>e.supported).map(e=>e.value),o={defaultLocale:"zh-CN",timeZone:"Asia/Shanghai",locales:A},d={},p=(e,t)=>{let i=d[e]||{translation:{}};return d[e]={translation:{...i.translation,...t.translation}},d[e]},m=(e=o.defaultLocale)=>(d[e]||p(e,{translation:{}}),{locale:e,resources:d[e]||{translation:{}}}),R=e=>m(e),M=e=>d[e];var C={translation:{"common.yes":"\u662F","common.no":"\u5426","common.enabled":"\u5DF2\u542F\u7528","common.disabled":"\u5DF2\u7981\u7528","program.name":"easbot","program.description":"EASBot - \u591AAgent\u534F\u4F5C\u751F\u6001\u7CFB\u7EDF\u547D\u4EE4\u884C\u5DE5\u5177","program.version.banner":"EASBot v{{version}}","program.version.description":"\u663E\u793A\u7248\u672C\u53F7","program.option.cwd":"\u6307\u5B9A\u5DE5\u4F5C\u76EE\u5F55","program.option.config":"\u6307\u5B9A\u914D\u7F6E\u6587\u4EF6\u8DEF\u5F84","program.option.print_logs":"\u5C06\u65E5\u5FD7\u8F93\u51FA\u5230 stderr","program.option.log_level":"\u65E5\u5FD7\u7EA7\u522B (DEBUG, INFO, WARN, ERROR)","program.option.debug":"\u542F\u7528\u8C03\u8BD5\u6A21\u5F0F","program.help.option":"\u663E\u793A\u547D\u4EE4\u5E2E\u52A9\u4FE1\u606F","program.help.command":"\u663E\u793A\u547D\u4EE4\u5E2E\u52A9\u4FE1\u606F","program.help.examples":"\u793A\u4F8B","program.help.docs":"\u6587\u6863","program.error.unknown_command":"\u9519\u8BEF: \u672A\u77E5\u547D\u4EE4 '{{command}}'","program.error.unknown_command_hint":'\u8FD0\u884C "easbot --help" \u67E5\u770B\u53EF\u7528\u547D\u4EE4\u5217\u8868',"program.error.commander":"\u9519\u8BEF: {{message}}","help.example.tui":"\u542F\u52A8 TUI \u4EA4\u4E92\u754C\u9762","help.example.tui_continue":"\u7EE7\u7EED\u4E0A\u6B21\u7684\u4F1A\u8BDD","help.example.run":"\u8FD0\u884C\u5355\u6B21\u5BF9\u8BDD","help.example.agent_list":"\u5217\u51FA\u6240\u6709\u53EF\u7528\u7684 Agent","help.example.mcp_list":"\u5217\u51FA\u6240\u6709 MCP \u670D\u52A1\u5668","help.example.help":"\u663E\u793A\u5E2E\u52A9\u4FE1\u606F","tui.command.description":"\u542F\u52A8 TUI \u4EA4\u4E92\u754C\u9762","tui.option.model":"\u4F7F\u7528\u7684\u6A21\u578B\uFF08\u683C\u5F0F\uFF1Aprovider/model\uFF09","tui.option.new":"\u521B\u5EFA\u65B0\u4F1A\u8BDD","tui.option.continue":"\u7EE7\u7EED\u4E0A\u6B21\u4F1A\u8BDD","tui.option.session_id":"\u6307\u5B9A\u8981\u7EE7\u7EED\u7684\u4F1A\u8BDD ID","tui.option.agent":"\u4F7F\u7528\u7684 Agent\uFF08{{agents}}\uFF09","tui.option.prompt":"\u521D\u59CB\u63D0\u793A","tui.option.fork":"\u5206\u53C9\u4F1A\u8BDD\uFF08\u4E0E --continue \u6216 --session-id \u4E00\u8D77\u4F7F\u7528\uFF09","tui.option.port":"\u670D\u52A1\u5668\u7AEF\u53E3","tui.option.hostname":"\u670D\u52A1\u5668\u4E3B\u673A\u540D","tui.header.title":"EASBOT TUI - \u591AAgent\u534F\u4F5C\u751F\u6001\u7CFB\u7EDF","tui.footer.info":"Agent: {{agent}} | \u6A21\u578B: {{model}} | \u4F1A\u8BDD: {{session}}{{tokens}}","tui.start.begin":"\u6B63\u5728\u542F\u52A8 TUI...","tui.start.success":"TUI \u542F\u52A8\u6210\u529F","tui.start.error":"TUI \u542F\u52A8\u5931\u8D25: {{error}}","tui.directory.change":"\u5DE5\u4F5C\u76EE\u5F55: {{cwd}}","tui.directory.error":"\u65E0\u6CD5\u5207\u6362\u5230\u76EE\u5F55: {{cwd}}","tui.handler.status.title":"\u7CFB\u7EDF\u72B6\u6001","tui.handler.status.system_info":"\u7CFB\u7EDF\u4FE1\u606F","tui.handler.status.session_info":"\u4F1A\u8BDD\u4FE1\u606F","tui.handler.status.skills":"Skills","tui.handler.status.mcp":"MCP","tui.handler.status.commands":"Commands","tui.handler.status.services":"\u670D\u52A1\u72B6\u6001","tui.handler.status.system":"\u7CFB\u7EDF","tui.handler.status.ok":"\u6B63\u5E38","tui.handler.status.directory":"\u5DE5\u4F5C\u76EE\u5F55","tui.handler.status.global_paths":"Global \u8DEF\u5F84 (L49-69)","tui.handler.status.agent_label":"Agent","tui.handler.status.session_label":"\u4F1A\u8BDD","tui.handler.status.model_label":"\u6A21\u578B","tui.handler.status.count":"\u6570\u91CF","tui.handler.status.list":"\u5217\u8868","tui.handler.status.not_set":"\u672A\u8BBE\u7F6E","tui.handler.status.not_implemented":"\u672A\u5B9E\u73B0","tui.handler.status.error_loading":"\u52A0\u8F7D\u547D\u4EE4\u5217\u8868\u5931\u8D25","tui.handler.status.no_lsp":"\u65E0","tui.handler.status.error_loading_lsp":"\u52A0\u8F7D\u5931\u8D25","tui.handler.status.agent":"Agent: {{agentId}}","tui.handler.status.session":"\u4F1A\u8BDD: {{sessionKey}}","tui.handler.status.model":"\u6A21\u578B: {{model}}","tui.handler.status.model_not_set":"\u672A\u8BBE\u7F6E","tui.handler.agent.selector_dev":"Agent \u9009\u62E9\u5668\u5F00\u53D1\u4E2D...","tui.handler.agent.switched":"\u5DF2\u5207\u6362\u5230 Agent: {{agentId}}","tui.handler.session.selector_dev":"\u4F1A\u8BDD\u9009\u62E9\u5668\u5F00\u53D1\u4E2D...","tui.handler.session.switched":"\u5DF2\u5207\u6362\u5230\u4F1A\u8BDD: {{sessionKey}}","tui.handler.session.reset":"\u4F1A\u8BDD\u5DF2\u91CD\u7F6E","tui.handler.session.reset_error":"\u2717 \u91CD\u7F6E\u4F1A\u8BDD\u5931\u8D25: {{error}}","tui.handler.new.begin":"\u6B63\u5728\u521B\u5EFA\u65B0\u4F1A\u8BDD...","tui.handler.new.error":"\u2717 \u521B\u5EFA\u65B0\u4F1A\u8BDD\u5931\u8D25: {{error}}","tui.handler.fork.begin":"\u6B63\u5728 Fork \u4F1A\u8BDD...","tui.handler.fork.error":"\u2717 Fork \u4F1A\u8BDD\u5931\u8D25: {{error}}","tui.handler.model.selector_dev":"\u6A21\u578B\u9009\u62E9\u5668\u5F00\u53D1\u4E2D...","tui.handler.model.set":"\u6A21\u578B\u5DF2\u8BBE\u7F6E\u4E3A: {{model}}","tui.handler.settings.dev":"\u8BBE\u7F6E\u9762\u677F\u5F00\u53D1\u4E2D...","tui.handler.verbose.usage":"\u7528\u6CD5: /verbose <on|off>","tui.handler.verbose.set":"\u8BE6\u7EC6\u6A21\u5F0F\u5DF2\u8BBE\u7F6E\u4E3A: {{level}}","tui.handler.verbose_level.set":"\u8BE6\u7EC6\u6A21\u5F0F\u5DF2\u8BBE\u7F6E\u4E3A: {{level}}","tui.handler.message_limit.set":"\u6D88\u606F\u663E\u793A\u6570\u91CF\u5DF2\u8BBE\u7F6E\u4E3A: {{limit}}","tui.handler.verbose.invalid":"\u2717 \u65E0\u6548\u7684\u503C: {{value}}\uFF0C\u53EA\u652F\u6301 on \u6216 off","tui.handler.thinking.usage":"\u7528\u6CD5: /thinking <level>","tui.handler.thinking.set":"Thinking \u7EA7\u522B\u5DF2\u8BBE\u7F6E\u4E3A: {{level}}","tui.handler.thinking_level.set":"Thinking \u7EA7\u522B\u5DF2\u8BBE\u7F6E\u4E3A: {{level}}","tui.handler.abort.success":"\u5DF2\u4E2D\u6B62\u5F53\u524D\u4EFB\u52A1","tui.handler.abort.no_task":"\u6CA1\u6709\u6B63\u5728\u8FD0\u884C\u7684\u4EFB\u52A1","tui.handler.clear.success":"\u804A\u5929\u5386\u53F2\u5DF2\u6E05\u7A7A","tui.handler.clear.begin":"\u6B63\u5728\u6E05\u7A7A\u804A\u5929\u5386\u53F2...","tui.handler.clear.error":"\u6E05\u7A7A\u804A\u5929\u5386\u53F2\u5931\u8D25: {{error}}","tui.handler.compact.no_session":"\u2717 \u6CA1\u6709\u6D3B\u52A8\u4F1A\u8BDD","tui.handler.compact.no_model":"\u2717 \u672A\u8BBE\u7F6E\u6A21\u578B","tui.handler.compact.invalid_model":"\u2717 \u6A21\u578B\u683C\u5F0F\u65E0\u6548: {{model}}","tui.handler.compact.no_messages":"\u2717 \u6CA1\u6709\u6D88\u606F\u53EF\u538B\u7F29","tui.handler.compact.begin":"\u6B63\u5728\u538B\u7F29\u4E0A\u4E0B\u6587...","tui.handler.compact.processing":"\u2699 \u6B63\u5728\u538B\u7F29\u4E0A\u4E0B\u6587\uFF0C\u8BF7\u7A0D\u5019...","tui.handler.compact.success":"\u2713 \u4E0A\u4E0B\u6587\u538B\u7F29\u5DF2\u5B8C\u6210","tui.handler.compact.error":"\u2717 \u538B\u7F29\u5931\u8D25: {{error}}","tui.handler.skill.loaded":"\u2713 Skill \u5DF2\u52A0\u8F7D: {{name}}","tui.handler.skill.loading":"\u6B63\u5728\u52A0\u8F7D Skill...","tui.handler.skill.error":"\u2717 Skill \u52A0\u8F7D\u5931\u8D25: {{error}}","tui.handler.skill.notfound":"\u2717 Skill \u4E0D\u5B58\u5728: {{name}}","tui.handler.skill.not_found":'\u2717 Skill "{{name}}" \u4E0D\u5B58\u5728',"tui.handler.skill.list":"\u53EF\u7528\u7684 Skill:","tui.handler.skill.empty":"\u6CA1\u6709\u53EF\u7528\u7684 Skill","tui.handler.command.empty":"\u6CA1\u6709\u53EF\u7528\u7684\u547D\u4EE4","tui.handler.command.not_found":'\u2717 \u547D\u4EE4 "{{name}}" \u4E0D\u5B58\u5728',"tui.handler.command.error":"\u2717 \u547D\u4EE4\u6267\u884C\u5931\u8D25: /{{command}} - {{error}}","tui.handler.mcp.empty":"\u6CA1\u6709\u53EF\u7528\u7684 MCP prompts","tui.handler.mcp.not_found":'\u2717 MCP prompt "{{name}}" \u4E0D\u5B58\u5728',"tui.handler.mcp.error":"\u2717 MCP prompts \u52A0\u8F7D\u5931\u8D25: {{error}}","tui.handler.skill.executing":"\u2699 \u6B63\u5728\u6267\u884C Skill","tui.handler.command.executing":"\u2699 \u6B63\u5728\u6267\u884C\u547D\u4EE4","tui.handler.mcp.executing":"\u2699 \u6B63\u5728\u6267\u884C MCP prompt","tui.handler.executing":"\u6B63\u5728\u6267\u884C: {{command}}","tui.handler.local.completed":"\u2713 \u547D\u4EE4\u6267\u884C\u5B8C\u6210","tui.handler.local.output":"\u8F93\u51FA","tui.settings.open":"\u6253\u5F00\u8BBE\u7F6E\u9762\u677F","tui.settings.update":"\u8BBE\u7F6E\u66F4\u65B0\u6210\u529F","tui.settings.error":"\u8BBE\u7F6E\u66F4\u65B0\u5931\u8D25: {{error}}","tui.settings.cancel":"\u53D6\u6D88\u8BBE\u7F6E\u66F4\u65B0","tui.settings.title":"\u2699 \u8BBE\u7F6E","tui.settings.hint":"\u4F7F\u7528 \u2191\u2193 \u9009\u62E9\uFF0CEnter \u7F16\u8F91\uFF0CEsc \u53D6\u6D88","tui.settings.item.model":"\u6A21\u578B","tui.settings.item.agent":"Agent","tui.settings.item.thinking":"Thinking \u7EA7\u522B","tui.settings.item.thinking_level":"Thinking \u7EA7\u522B","tui.settings.item.show_thinking":"\u663E\u793A Thinking","tui.settings.item.verbose":"Verbose \u7EA7\u522B","tui.settings.item.verbose_level":"\u8BE6\u7EC6\u6A21\u5F0F","tui.settings.item.message_limit":"\u6D88\u606F\u663E\u793A\u6570\u91CF","tui.settings.item.tools_expanded":"\u5DE5\u5177\u5C55\u5F00","tui.settings.item.local_shell_permission":"Local Shell \u6743\u9650","tui.settings.item.context_mode":"\u4E0A\u4E0B\u6587\u6A21\u5F0F","tui.settings.desc.model":"\u8BBE\u7F6E\u4F7F\u7528\u7684 AI \u6A21\u578B","tui.settings.desc.agent":"\u8BBE\u7F6E\u5F53\u524D Agent","tui.settings.desc.thinking":"\u8BBE\u7F6E\u601D\u8003\u6A21\u5F0F\u7EA7\u522B","tui.settings.desc.thinking_level":"\u8BBE\u7F6E\u4F20\u7ED9 Agent \u7684\u601D\u8003\u7EA7\u522B (off/low/medium/high)","tui.settings.desc.show_thinking":"\u662F\u5426\u5728 TUI \u4E2D\u663E\u793A\u601D\u8003\u5185\u5BB9 (true/false)","tui.settings.desc.verbose":"\u63A7\u5236\u8BE6\u7EC6\u6A21\u5F0F\u663E\u793A (on/off)","tui.settings.desc.verbose_level":"\u63A7\u5236\u8BE6\u7EC6\u6A21\u5F0F\u663E\u793A (on/off)","tui.settings.desc.message_limit":"\u8BBE\u7F6E\u6D88\u606F\u663E\u793A\u6570\u91CF\u9650\u5236 (25/50/100)","tui.settings.desc.tools_expanded":"\u662F\u5426\u5C55\u5F00\u5DE5\u5177\u8BE6\u60C5","tui.settings.desc.local_shell_permission":"\u63A7\u5236\u672C\u5730 shell \u547D\u4EE4\u6267\u884C\u6743\u9650 (ask/on/off)","tui.settings.desc.context_mode":"\u8BBE\u7F6E\u4E0A\u4E0B\u6587\u6A21\u5F0F (general/coder)","tui.settings.value.not_set":"\u672A\u8BBE\u7F6E","tui.settings.value.default":"\u9ED8\u8BA4","tui.settings.value.enabled":"\u542F\u7528","tui.settings.value.disabled":"\u7981\u7528","tui.clear.begin":"\u6E05\u7A7A\u804A\u5929\u5386\u53F2\u5F00\u59CB","tui.clear.confirm":"\u786E\u8BA4\u6E05\u7A7A\u804A\u5929\u5386\u53F2","tui.clear.success":"\u6E05\u7A7A\u804A\u5929\u5386\u53F2\u6210\u529F","tui.clear.error":"\u6E05\u7A7A\u804A\u5929\u5386\u53F2\u5931\u8D25","tui.clear.cancel":"\u53D6\u6D88\u6E05\u7A7A\u64CD\u4F5C","tui.dialog.confirm":"\u786E\u8BA4","tui.dialog.cancel":"\u53D6\u6D88","tui.dialog.clear.message":"\u786E\u5B9A\u8981\u6E05\u7A7A\u6240\u6709\u804A\u5929\u5386\u53F2\u5417\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002","tui.abort.begin":"\u6B63\u5728\u4E2D\u6B62\u4F1A\u8BDD...","tui.abort.error":"\u4E2D\u6B62\u4F1A\u8BDD\u5931\u8D25: {{error}}","tui.abort.timeout":"\u4E2D\u6B62\u8D85\u65F6","tui.abort.success":"\u4F1A\u8BDD\u5DF2\u4E2D\u6B62","tui.abort.noactive":"\u6CA1\u6709\u6D3B\u52A8\u4F1A\u8BDD\u53EF\u4E2D\u6B62","tui.tool.expand":"\u5C55\u5F00\u5DE5\u5177\u8BE6\u60C5","tui.tool.collapse":"\u6298\u53E0\u5DE5\u5177\u8BE6\u60C5","tui.tool.notfound":"\u5DE5\u5177\u4E0D\u5B58\u5728","tui.tool.toggle":"\u5207\u6362\u5DE5\u5177\u5C55\u5F00/\u6298\u53E0\u72B6\u6001","tui.handler.send.sending":"\u6B63\u5728\u53D1\u9001\u6D88\u606F...","tui.handler.send.waiting":"\u7B49\u5F85\u54CD\u5E94...","tui.handler.send.error":"\u53D1\u9001\u5931\u8D25: {{error}}","tui.handler.send.error_status":"\u53D1\u9001\u5931\u8D25","session.command.description":"\u4F1A\u8BDD\u7BA1\u7406\u547D\u4EE4","session.command.list.description":"\u5217\u51FA\u6240\u6709\u4F1A\u8BDD","session.command.list.option.max_count":"\u663E\u793A\u7684\u6700\u5927\u4F1A\u8BDD\u6570\u91CF","session.command.list.option.format":"\u8F93\u51FA\u683C\u5F0F\uFF08table \u6216 json\uFF09","session.table.header.id":"ID","session.table.header.title":"\u6807\u9898","session.table.header.created":"\u521B\u5EFA\u65F6\u95F4","session.table.header.updated":"\u66F4\u65B0\u65F6\u95F4","session.info.heading":"\u4F1A\u8BDD\u4FE1\u606F","session.untitled":"(\u65E0\u6807\u9898)","session.command.info.description":"\u663E\u793A\u4F1A\u8BDD\u8BE6\u60C5","session.command.delete.description":"\u5220\u9664\u4F1A\u8BDD","session.list.success":"\u627E\u5230 {{count}} \u4E2A\u4F1A\u8BDD","session.list.empty":"\u6CA1\u6709\u627E\u5230\u4F1A\u8BDD","session.list.error":"\u83B7\u53D6\u4F1A\u8BDD\u5217\u8868\u5931\u8D25","session.get.success":"\u83B7\u53D6\u4F1A\u8BDD\u6210\u529F","session.get.error":"\u83B7\u53D6\u4F1A\u8BDD\u5931\u8D25","session.get.not_found":"\u4F1A\u8BDD\u4E0D\u5B58\u5728: {{sessionId}}","session.create.success":"\u4F1A\u8BDD\u521B\u5EFA\u6210\u529F","session.create.error":"\u521B\u5EFA\u4F1A\u8BDD\u5931\u8D25","session.fork.success":"\u4F1A\u8BDD Fork \u6210\u529F","session.fork.error":"Fork \u4F1A\u8BDD\u5931\u8D25","session.delete.success":"\u4F1A\u8BDD\u5220\u9664\u6210\u529F","session.delete.error":"\u5220\u9664\u4F1A\u8BDD\u5931\u8D25","session.field.id":"ID","session.field.title":"\u6807\u9898","session.field.created":"\u521B\u5EFA\u65F6\u95F4","session.field.updated":"\u66F4\u65B0\u65F6\u95F4","session.field.directory":"\u76EE\u5F55","session.field.project_id":"\u9879\u76EE ID","model.list.success":"\u627E\u5230 {{count}} \u4E2A\u6A21\u578B","model.list.empty":"\u6CA1\u6709\u627E\u5230\u6A21\u578B","model.list.error":"\u83B7\u53D6\u6A21\u578B\u5217\u8868\u5931\u8D25","model.refresh.begin":"\u6B63\u5728\u5237\u65B0\u6A21\u578B\u7F13\u5B58...","model.refresh.success":"\u6A21\u578B\u7F13\u5B58\u5237\u65B0\u6210\u529F","model.refresh.error":"\u5237\u65B0\u6A21\u578B\u7F13\u5B58\u5931\u8D25","model.parse.error":"\u65E0\u6548\u7684\u6A21\u578B\u683C\u5F0F: {{model}}","provider.list.success":"\u627E\u5230 {{count}} \u4E2A Provider","provider.list.empty":"\u6CA1\u6709\u627E\u5230 Provider","provider.list.error":"\u83B7\u53D6 Provider \u5217\u8868\u5931\u8D25","provider.not_found":"Provider \u4E0D\u5B58\u5728: {{providerId}}","message.send.start":"\u5F00\u59CB\u53D1\u9001\u6D88\u606F","message.send.success":"\u6D88\u606F\u53D1\u9001\u6210\u529F","message.send.error":"\u6D88\u606F\u53D1\u9001\u5931\u8D25","message.command.start":"\u5F00\u59CB\u6267\u884C\u547D\u4EE4","message.command.success":"\u547D\u4EE4\u6267\u884C\u6210\u529F","message.command.error":"\u547D\u4EE4\u6267\u884C\u5931\u8D25","message.stream.start":"\u5F00\u59CB\u6D41\u5F0F\u53D1\u9001\u6D88\u606F","message.stream.subscribed":"\u5DF2\u8BA2\u9605\u6D88\u606F\u6D41","message.stream.error":"\u6D41\u5F0F\u6D88\u606F\u53D1\u9001\u5931\u8D25","message.abort.start":"\u6B63\u5728\u4E2D\u6B62\u6D88\u606F","message.abort.success":"\u6D88\u606F\u5DF2\u4E2D\u6B62","message.history.start":"\u6B63\u5728\u83B7\u53D6\u6D88\u606F\u5386\u53F2","message.history.success":"\u6D88\u606F\u5386\u53F2\u83B7\u53D6\u6210\u529F","message.history.error":"\u6D88\u606F\u5386\u53F2\u83B7\u53D6\u5931\u8D25","tool.execute.start":"\u5F00\u59CB\u6267\u884C\u5DE5\u5177","tool.execute.success":"\u5DE5\u5177\u6267\u884C\u6210\u529F","tool.execute.error":"\u5DE5\u5177\u6267\u884C\u5931\u8D25","tool.list.start":"\u6B63\u5728\u83B7\u53D6\u5DE5\u5177\u5217\u8868","tool.list.success":"\u5DE5\u5177\u5217\u8868\u83B7\u53D6\u6210\u529F","tool.list.error":"\u5DE5\u5177\u5217\u8868\u83B7\u53D6\u5931\u8D25","acp.command.description":"\u542F\u52A8 ACP Agent \u901A\u4FE1\u9002\u914D\u5668\u670D\u52A1","acp.option.directory":"\u6307\u5B9A\u5DE5\u4F5C\u76EE\u5F55","acp.option.channel":"\u6307\u5B9A\u901A\u9053\u7C7B\u578B (stdio/http/websocket)","acp.option.port":"\u6307\u5B9A\u670D\u52A1\u7AEF\u53E3","acp.option.hostname":"\u6307\u5B9A\u4E3B\u673A\u5730\u5740","acp.option.timeout":"\u6307\u5B9A\u8BF7\u6C42\u8D85\u65F6\u65F6\u95F4","acp.option.debug":"\u542F\u7528\u8C03\u8BD5\u6A21\u5F0F","acp.help.examples":"\u793A\u4F8B:","acp.help.example.default":"\u4F7F\u7528\u9ED8\u8BA4\u914D\u7F6E\u542F\u52A8","acp.help.example.http":"\u4F7F\u7528 HTTP \u901A\u9053","acp.help.example.port":"\u6307\u5B9A\u7AEF\u53E3 8080","acp.help.example.hostname":"\u7ED1\u5B9A\u5230\u6240\u6709\u7F51\u7EDC\u63A5\u53E3","acp.help.example.debug":"\u542F\u7528\u8C03\u8BD5\u6A21\u5F0F","acp.help.env":"\u73AF\u5883\u53D8\u91CF:","acp.help.env.channel":"\u8986\u76D6\u901A\u9053\u7C7B\u578B (stdio/http/websocket)","acp.help.env.port":"\u8986\u76D6\u670D\u52A1\u7AEF\u53E3","acp.help.env.hostname":"\u8986\u76D6\u4E3B\u673A\u5730\u5740","acp.help.env.timeout":"\u8986\u76D6\u8BF7\u6C42\u8D85\u65F6\u65F6\u95F4","acp.help.env.enabled":"\u8986\u76D6\u542F\u7528\u72B6\u6001","acp.disabled":"ACP \u670D\u52A1\u5DF2\u88AB\u914D\u7F6E\u7981\u7528\u3002\u8BF7\u5728\u914D\u7F6E\u4E2D\u8BBE\u7F6E enabled: true \u540E\u91CD\u8BD5\u3002","acp.shutdown.received":"\u6536\u5230 {{signal}}\uFF0C\u6B63\u5728\u5173\u95ED...","acp.shutdown.completed":"ACP \u670D\u52A1\u6E05\u7406\u5B8C\u6210","tui.validation.new_and_session_id_conflict":"--new \u548C --session-id \u9009\u9879\u4E0D\u80FD\u540C\u65F6\u4F7F\u7528","tui.validation.fork_requires_session":"--fork \u9009\u9879\u5FC5\u987B\u4E0E --continue \u6216 --session-id \u4E00\u8D77\u4F7F\u7528","tui.validation.fork_cannot_use_with_new":"--fork \u9009\u9879\u4E0D\u80FD\u4E0E --new \u4E00\u8D77\u4F7F\u7528","tui.cleanup.begin":"\u6B63\u5728\u6E05\u7406\u8D44\u6E90...","tui.cleanup.complete":"\u8D44\u6E90\u6E05\u7406\u5B8C\u6210","tui.exit.resume_hint":"\u6062\u590D\u5F53\u524D\u4F1A\u8BDD: easbot tui --session-id {{sessionId}}","tui.config.display":"TUI \u542F\u52A8\u914D\u7F6E","tui.dev.notice":`
1
+ var f={languages:[{value:"zh-CN",name:"\u7B80\u4F53\u4E2D\u6587",example:"\u4F60\u597D\uFF0CEASBOT\uFF01",supported:true},{value:"en-US",name:"English (United States)",example:"Hello, EASBOT!",supported:true}]};var x=f.languages,A=x.filter(e=>e.supported).map(e=>e.value),o={defaultLocale:"zh-CN",timeZone:"Asia/Shanghai",locales:A},d={},p=(e,t)=>{let i=d[e]||{translation:{}};return d[e]={translation:{...i.translation,...t.translation}},d[e]},m=(e=o.defaultLocale)=>(d[e]||p(e,{translation:{}}),{locale:e,resources:d[e]||{translation:{}}}),R=e=>m(e),M=e=>d[e];var C={translation:{"common.yes":"\u662F","common.no":"\u5426","common.enabled":"\u5DF2\u542F\u7528","common.disabled":"\u5DF2\u7981\u7528","program.name":"easbot","program.description":"EASBot - \u591AAgent\u534F\u4F5C\u751F\u6001\u7CFB\u7EDF\u547D\u4EE4\u884C\u5DE5\u5177","program.version.banner":"EASBot v{{version}}","program.version.description":"\u663E\u793A\u7248\u672C\u53F7","program.option.cwd":"\u6307\u5B9A\u5DE5\u4F5C\u76EE\u5F55","program.option.config":"\u6307\u5B9A\u914D\u7F6E\u6587\u4EF6\u8DEF\u5F84","program.option.print_logs":"\u5C06\u65E5\u5FD7\u8F93\u51FA\u5230 stderr","program.option.log_level":"\u65E5\u5FD7\u7EA7\u522B (DEBUG, INFO, WARN, ERROR)","program.option.debug":"\u542F\u7528\u8C03\u8BD5\u6A21\u5F0F","program.help.option":"\u663E\u793A\u547D\u4EE4\u5E2E\u52A9\u4FE1\u606F","program.help.command":"\u663E\u793A\u547D\u4EE4\u5E2E\u52A9\u4FE1\u606F","program.help.examples":"\u793A\u4F8B","program.help.docs":"\u6587\u6863","program.error.unknown_command":"\u9519\u8BEF: \u672A\u77E5\u547D\u4EE4 '{{command}}'","program.error.unknown_command_hint":'\u8FD0\u884C "easbot --help" \u67E5\u770B\u53EF\u7528\u547D\u4EE4\u5217\u8868',"program.error.commander":"\u9519\u8BEF: {{message}}","help.example.tui":"\u542F\u52A8 TUI \u4EA4\u4E92\u754C\u9762","help.example.tui_continue":"\u7EE7\u7EED\u4E0A\u6B21\u7684\u4F1A\u8BDD","help.example.run":"\u8FD0\u884C\u5355\u6B21\u5BF9\u8BDD","help.example.agent_list":"\u5217\u51FA\u6240\u6709\u53EF\u7528\u7684 Agent","help.example.mcp_list":"\u5217\u51FA\u6240\u6709 MCP \u670D\u52A1\u5668","help.example.help":"\u663E\u793A\u5E2E\u52A9\u4FE1\u606F","tui.command.description":"\u542F\u52A8 TUI \u4EA4\u4E92\u754C\u9762","tui.option.model":"\u4F7F\u7528\u7684\u6A21\u578B\uFF08\u683C\u5F0F\uFF1Aprovider/model\uFF09","tui.option.new":"\u521B\u5EFA\u65B0\u4F1A\u8BDD","tui.option.continue":"\u7EE7\u7EED\u4E0A\u6B21\u4F1A\u8BDD","tui.option.session_id":"\u6307\u5B9A\u8981\u7EE7\u7EED\u7684\u4F1A\u8BDD ID","tui.option.agent":"\u4F7F\u7528\u7684 Agent\uFF08{{agents}}\uFF09","tui.option.prompt":"\u521D\u59CB\u63D0\u793A","tui.option.fork":"\u5206\u53C9\u4F1A\u8BDD\uFF08\u4E0E --continue \u6216 --session-id \u4E00\u8D77\u4F7F\u7528\uFF09","tui.option.port":"\u670D\u52A1\u5668\u7AEF\u53E3","tui.option.hostname":"\u670D\u52A1\u5668\u4E3B\u673A\u540D","tui.header.title":"EASBOT TUI - \u591AAgent\u534F\u4F5C\u751F\u6001\u7CFB\u7EDF","tui.footer.info":"Agent: {{agent}} | \u6A21\u578B: {{model}} | \u4F1A\u8BDD: {{session}}{{tokens}}","tui.start.begin":"\u6B63\u5728\u542F\u52A8 TUI...","tui.start.success":"TUI \u542F\u52A8\u6210\u529F","tui.start.error":"TUI \u542F\u52A8\u5931\u8D25: {{error}}","tui.directory.change":"\u5DE5\u4F5C\u76EE\u5F55: {{cwd}}","tui.directory.error":"\u65E0\u6CD5\u5207\u6362\u5230\u76EE\u5F55: {{cwd}}","tui.handler.status.title":"\u7CFB\u7EDF\u72B6\u6001","tui.handler.status.preferences":"\u504F\u597D\u8BBE\u7F6E","tui.handler.status.system_info":"\u7CFB\u7EDF\u4FE1\u606F","tui.handler.status.session_info":"\u4F1A\u8BDD\u4FE1\u606F","tui.handler.status.skills":"Skills","tui.handler.status.mcp":"MCP","tui.handler.status.commands":"Commands","tui.handler.status.services":"\u670D\u52A1\u72B6\u6001","tui.handler.status.system":"\u7CFB\u7EDF","tui.handler.status.ok":"\u6B63\u5E38","tui.handler.status.directory":"\u5DE5\u4F5C\u76EE\u5F55","tui.handler.status.global_paths":"Global \u8DEF\u5F84 (L49-69)","tui.handler.status.agent_label":"Agent","tui.handler.status.session_label":"\u4F1A\u8BDD","tui.handler.status.model_label":"\u6A21\u578B","tui.handler.status.count":"\u6570\u91CF","tui.handler.status.list":"\u5217\u8868","tui.handler.status.not_set":"\u672A\u8BBE\u7F6E","tui.handler.status.not_implemented":"\u672A\u5B9E\u73B0","tui.handler.status.error_loading":"\u52A0\u8F7D\u547D\u4EE4\u5217\u8868\u5931\u8D25","tui.handler.status.no_lsp":"\u65E0","tui.handler.status.error_loading_lsp":"\u52A0\u8F7D\u5931\u8D25","tui.handler.status.agent":"Agent: {{agentId}}","tui.handler.status.session":"\u4F1A\u8BDD: {{sessionKey}}","tui.handler.status.model":"\u6A21\u578B: {{model}}","tui.handler.status.model_not_set":"\u672A\u8BBE\u7F6E","tui.handler.agent.selector_dev":"Agent \u9009\u62E9\u5668\u5F00\u53D1\u4E2D...","tui.handler.agent.switched":"\u5DF2\u5207\u6362\u5230 Agent: {{agentId}}","tui.handler.session.selector_dev":"\u4F1A\u8BDD\u9009\u62E9\u5668\u5F00\u53D1\u4E2D...","tui.handler.session.switched":"\u5DF2\u5207\u6362\u5230\u4F1A\u8BDD: {{sessionKey}}","tui.handler.session.reset":"\u4F1A\u8BDD\u5DF2\u91CD\u7F6E","tui.handler.session.reset_error":"\u2717 \u91CD\u7F6E\u4F1A\u8BDD\u5931\u8D25: {{error}}","tui.handler.new.begin":"\u6B63\u5728\u521B\u5EFA\u65B0\u4F1A\u8BDD...","tui.handler.new.error":"\u2717 \u521B\u5EFA\u65B0\u4F1A\u8BDD\u5931\u8D25: {{error}}","tui.handler.fork.begin":"\u6B63\u5728 Fork \u4F1A\u8BDD...","tui.handler.fork.error":"\u2717 Fork \u4F1A\u8BDD\u5931\u8D25: {{error}}","tui.handler.model.selector_dev":"\u6A21\u578B\u9009\u62E9\u5668\u5F00\u53D1\u4E2D...","tui.handler.model.set":"\u6A21\u578B\u5DF2\u8BBE\u7F6E\u4E3A: {{model}}","tui.handler.settings.dev":"\u8BBE\u7F6E\u9762\u677F\u5F00\u53D1\u4E2D...","tui.handler.verbose.usage":"\u7528\u6CD5: /verbose <on|off>","tui.handler.verbose.set":"\u8BE6\u7EC6\u6A21\u5F0F\u5DF2\u8BBE\u7F6E\u4E3A: {{level}}","tui.handler.verbose_level.set":"\u8BE6\u7EC6\u6A21\u5F0F\u5DF2\u8BBE\u7F6E\u4E3A: {{level}}","tui.handler.message_limit.set":"\u6D88\u606F\u663E\u793A\u6570\u91CF\u5DF2\u8BBE\u7F6E\u4E3A: {{limit}}","tui.handler.verbose.invalid":"\u2717 \u65E0\u6548\u7684\u503C: {{value}}\uFF0C\u53EA\u652F\u6301 on \u6216 off","tui.handler.thinking.usage":"\u7528\u6CD5: /thinking <level>","tui.handler.thinking.set":"Thinking \u7EA7\u522B\u5DF2\u8BBE\u7F6E\u4E3A: {{level}}","tui.handler.thinking_level.set":"Thinking \u7EA7\u522B\u5DF2\u8BBE\u7F6E\u4E3A: {{level}}","tui.handler.abort.success":"\u5DF2\u4E2D\u6B62\u5F53\u524D\u4EFB\u52A1","tui.handler.abort.no_task":"\u6CA1\u6709\u6B63\u5728\u8FD0\u884C\u7684\u4EFB\u52A1","tui.handler.clear.success":"\u804A\u5929\u5386\u53F2\u5DF2\u6E05\u7A7A","tui.handler.clear.begin":"\u6B63\u5728\u6E05\u7A7A\u804A\u5929\u5386\u53F2...","tui.handler.clear.error":"\u6E05\u7A7A\u804A\u5929\u5386\u53F2\u5931\u8D25: {{error}}","tui.handler.compact.no_session":"\u2717 \u6CA1\u6709\u6D3B\u52A8\u4F1A\u8BDD","tui.handler.compact.no_model":"\u2717 \u672A\u8BBE\u7F6E\u6A21\u578B","tui.handler.compact.invalid_model":"\u2717 \u6A21\u578B\u683C\u5F0F\u65E0\u6548: {{model}}","tui.handler.compact.no_messages":"\u2717 \u6CA1\u6709\u6D88\u606F\u53EF\u538B\u7F29","tui.handler.compact.begin":"\u6B63\u5728\u538B\u7F29\u4E0A\u4E0B\u6587...","tui.handler.compact.processing":"\u2699 \u6B63\u5728\u538B\u7F29\u4E0A\u4E0B\u6587\uFF0C\u8BF7\u7A0D\u5019...","tui.handler.compact.success":"\u2713 \u4E0A\u4E0B\u6587\u538B\u7F29\u5DF2\u5B8C\u6210","tui.handler.compact.error":"\u2717 \u538B\u7F29\u5931\u8D25: {{error}}","tui.handler.skill.loaded":"\u2713 Skill \u5DF2\u52A0\u8F7D: {{name}}","tui.handler.skill.loading":"\u6B63\u5728\u52A0\u8F7D Skill...","tui.handler.skill.error":"\u2717 Skill \u52A0\u8F7D\u5931\u8D25: {{error}}","tui.handler.skill.notfound":"\u2717 Skill \u4E0D\u5B58\u5728: {{name}}","tui.handler.skill.not_found":'\u2717 Skill "{{name}}" \u4E0D\u5B58\u5728',"tui.handler.skill.list":"\u53EF\u7528\u7684 Skill:","tui.handler.skill.empty":"\u6CA1\u6709\u53EF\u7528\u7684 Skill","tui.handler.command.empty":"\u6CA1\u6709\u53EF\u7528\u7684\u547D\u4EE4","tui.handler.command.not_found":'\u2717 \u547D\u4EE4 "{{name}}" \u4E0D\u5B58\u5728',"tui.handler.command.error":"\u2717 \u547D\u4EE4\u6267\u884C\u5931\u8D25: /{{command}} - {{error}}","tui.handler.mcp.empty":"\u6CA1\u6709\u53EF\u7528\u7684 MCP prompts","tui.handler.mcp.not_found":'\u2717 MCP prompt "{{name}}" \u4E0D\u5B58\u5728',"tui.handler.mcp.error":"\u2717 MCP prompts \u52A0\u8F7D\u5931\u8D25: {{error}}","tui.handler.skill.executing":"\u2699 \u6B63\u5728\u6267\u884C Skill","tui.handler.command.executing":"\u2699 \u6B63\u5728\u6267\u884C\u547D\u4EE4","tui.handler.mcp.executing":"\u2699 \u6B63\u5728\u6267\u884C MCP prompt","tui.handler.executing":"\u6B63\u5728\u6267\u884C: {{command}}","tui.handler.local.completed":"\u2713 \u547D\u4EE4\u6267\u884C\u5B8C\u6210","tui.handler.local.output":"\u8F93\u51FA","tui.settings.open":"\u6253\u5F00\u8BBE\u7F6E\u9762\u677F","tui.settings.update":"\u8BBE\u7F6E\u66F4\u65B0\u6210\u529F","tui.settings.error":"\u8BBE\u7F6E\u66F4\u65B0\u5931\u8D25: {{error}}","tui.settings.cancel":"\u53D6\u6D88\u8BBE\u7F6E\u66F4\u65B0","tui.settings.title":"\u2699 \u8BBE\u7F6E","tui.settings.hint":"\u4F7F\u7528 \u2191\u2193 \u9009\u62E9\uFF0CEnter \u7F16\u8F91\uFF0CEsc \u53D6\u6D88","tui.settings.item.model":"\u6A21\u578B","tui.settings.item.agent":"Agent","tui.settings.item.thinking":"Thinking \u7EA7\u522B","tui.settings.item.thinking_level":"Thinking \u7EA7\u522B","tui.settings.item.show_thinking":"\u663E\u793A Thinking","tui.settings.item.verbose":"Verbose \u7EA7\u522B","tui.settings.item.verbose_level":"\u8BE6\u7EC6\u6A21\u5F0F","tui.settings.item.message_limit":"\u6D88\u606F\u663E\u793A\u6570\u91CF","tui.settings.item.tools_expanded":"\u5DE5\u5177\u5C55\u5F00","tui.settings.item.local_shell_permission":"Local Shell \u6743\u9650","tui.settings.item.context_mode":"\u4E0A\u4E0B\u6587\u6A21\u5F0F","tui.settings.desc.model":"\u8BBE\u7F6E\u4F7F\u7528\u7684 AI \u6A21\u578B","tui.settings.desc.agent":"\u8BBE\u7F6E\u5F53\u524D Agent","tui.settings.desc.thinking":"\u8BBE\u7F6E\u601D\u8003\u6A21\u5F0F\u7EA7\u522B","tui.settings.desc.thinking_level":"\u8BBE\u7F6E\u4F20\u7ED9 Agent \u7684\u601D\u8003\u7EA7\u522B (off/low/medium/high)","tui.settings.desc.show_thinking":"\u662F\u5426\u5728 TUI \u4E2D\u663E\u793A\u601D\u8003\u5185\u5BB9 (true/false)","tui.settings.desc.verbose":"\u63A7\u5236\u8BE6\u7EC6\u6A21\u5F0F\u663E\u793A (on/off)","tui.settings.desc.verbose_level":"\u63A7\u5236\u8BE6\u7EC6\u6A21\u5F0F\u663E\u793A (on/off)","tui.settings.desc.message_limit":"\u8BBE\u7F6E\u6D88\u606F\u663E\u793A\u6570\u91CF\u9650\u5236 (25/50/100)","tui.settings.desc.tools_expanded":"\u662F\u5426\u5C55\u5F00\u5DE5\u5177\u8BE6\u60C5","tui.settings.desc.local_shell_permission":"\u63A7\u5236\u672C\u5730 shell \u547D\u4EE4\u6267\u884C\u6743\u9650 (ask/on/off)","tui.settings.desc.context_mode":"\u8BBE\u7F6E\u4E0A\u4E0B\u6587\u6A21\u5F0F (general/coder)","tui.settings.value.not_set":"\u672A\u8BBE\u7F6E","tui.settings.value.default":"\u9ED8\u8BA4","tui.settings.value.enabled":"\u542F\u7528","tui.settings.value.disabled":"\u7981\u7528","tui.clear.begin":"\u6E05\u7A7A\u804A\u5929\u5386\u53F2\u5F00\u59CB","tui.clear.confirm":"\u786E\u8BA4\u6E05\u7A7A\u804A\u5929\u5386\u53F2","tui.clear.success":"\u6E05\u7A7A\u804A\u5929\u5386\u53F2\u6210\u529F","tui.clear.error":"\u6E05\u7A7A\u804A\u5929\u5386\u53F2\u5931\u8D25","tui.clear.cancel":"\u53D6\u6D88\u6E05\u7A7A\u64CD\u4F5C","tui.dialog.confirm":"\u786E\u8BA4","tui.dialog.cancel":"\u53D6\u6D88","tui.dialog.clear.message":"\u786E\u5B9A\u8981\u6E05\u7A7A\u6240\u6709\u804A\u5929\u5386\u53F2\u5417\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002","tui.abort.begin":"\u6B63\u5728\u4E2D\u6B62\u4F1A\u8BDD...","tui.abort.error":"\u4E2D\u6B62\u4F1A\u8BDD\u5931\u8D25: {{error}}","tui.abort.timeout":"\u4E2D\u6B62\u8D85\u65F6","tui.abort.success":"\u4F1A\u8BDD\u5DF2\u4E2D\u6B62","tui.abort.noactive":"\u6CA1\u6709\u6D3B\u52A8\u4F1A\u8BDD\u53EF\u4E2D\u6B62","tui.tool.expand":"\u5C55\u5F00\u5DE5\u5177\u8BE6\u60C5","tui.tool.collapse":"\u6298\u53E0\u5DE5\u5177\u8BE6\u60C5","tui.tool.notfound":"\u5DE5\u5177\u4E0D\u5B58\u5728","tui.tool.toggle":"\u5207\u6362\u5DE5\u5177\u5C55\u5F00/\u6298\u53E0\u72B6\u6001","tui.handler.send.sending":"\u6B63\u5728\u53D1\u9001\u6D88\u606F...","tui.handler.send.waiting":"\u7B49\u5F85\u54CD\u5E94...","tui.handler.send.error":"\u53D1\u9001\u5931\u8D25: {{error}}","tui.handler.send.error_status":"\u53D1\u9001\u5931\u8D25","session.command.description":"\u4F1A\u8BDD\u7BA1\u7406\u547D\u4EE4","session.command.list.description":"\u5217\u51FA\u6240\u6709\u4F1A\u8BDD","session.command.list.option.max_count":"\u663E\u793A\u7684\u6700\u5927\u4F1A\u8BDD\u6570\u91CF","session.command.list.option.format":"\u8F93\u51FA\u683C\u5F0F\uFF08table \u6216 json\uFF09","session.table.header.id":"ID","session.table.header.title":"\u6807\u9898","session.table.header.created":"\u521B\u5EFA\u65F6\u95F4","session.table.header.updated":"\u66F4\u65B0\u65F6\u95F4","session.info.heading":"\u4F1A\u8BDD\u4FE1\u606F","session.untitled":"(\u65E0\u6807\u9898)","session.command.info.description":"\u663E\u793A\u4F1A\u8BDD\u8BE6\u60C5","session.command.delete.description":"\u5220\u9664\u4F1A\u8BDD","session.list.success":"\u627E\u5230 {{count}} \u4E2A\u4F1A\u8BDD","session.list.empty":"\u6CA1\u6709\u627E\u5230\u4F1A\u8BDD","session.list.error":"\u83B7\u53D6\u4F1A\u8BDD\u5217\u8868\u5931\u8D25","session.get.success":"\u83B7\u53D6\u4F1A\u8BDD\u6210\u529F","session.get.error":"\u83B7\u53D6\u4F1A\u8BDD\u5931\u8D25","session.get.not_found":"\u4F1A\u8BDD\u4E0D\u5B58\u5728: {{sessionId}}","session.create.success":"\u4F1A\u8BDD\u521B\u5EFA\u6210\u529F","session.create.error":"\u521B\u5EFA\u4F1A\u8BDD\u5931\u8D25","session.fork.success":"\u4F1A\u8BDD Fork \u6210\u529F","session.fork.error":"Fork \u4F1A\u8BDD\u5931\u8D25","session.delete.success":"\u4F1A\u8BDD\u5220\u9664\u6210\u529F","session.delete.error":"\u5220\u9664\u4F1A\u8BDD\u5931\u8D25","session.field.id":"ID","session.field.title":"\u6807\u9898","session.field.created":"\u521B\u5EFA\u65F6\u95F4","session.field.updated":"\u66F4\u65B0\u65F6\u95F4","session.field.directory":"\u76EE\u5F55","session.field.project_id":"\u9879\u76EE ID","model.list.success":"\u627E\u5230 {{count}} \u4E2A\u6A21\u578B","model.list.empty":"\u6CA1\u6709\u627E\u5230\u6A21\u578B","model.list.error":"\u83B7\u53D6\u6A21\u578B\u5217\u8868\u5931\u8D25","model.refresh.begin":"\u6B63\u5728\u5237\u65B0\u6A21\u578B\u7F13\u5B58...","model.refresh.success":"\u6A21\u578B\u7F13\u5B58\u5237\u65B0\u6210\u529F","model.refresh.error":"\u5237\u65B0\u6A21\u578B\u7F13\u5B58\u5931\u8D25","model.parse.error":"\u65E0\u6548\u7684\u6A21\u578B\u683C\u5F0F: {{model}}","provider.list.success":"\u627E\u5230 {{count}} \u4E2A Provider","provider.list.empty":"\u6CA1\u6709\u627E\u5230 Provider","provider.list.error":"\u83B7\u53D6 Provider \u5217\u8868\u5931\u8D25","provider.not_found":"Provider \u4E0D\u5B58\u5728: {{providerId}}","message.send.start":"\u5F00\u59CB\u53D1\u9001\u6D88\u606F","message.send.success":"\u6D88\u606F\u53D1\u9001\u6210\u529F","message.send.error":"\u6D88\u606F\u53D1\u9001\u5931\u8D25","message.command.start":"\u5F00\u59CB\u6267\u884C\u547D\u4EE4","message.command.success":"\u547D\u4EE4\u6267\u884C\u6210\u529F","message.command.error":"\u547D\u4EE4\u6267\u884C\u5931\u8D25","message.stream.start":"\u5F00\u59CB\u6D41\u5F0F\u53D1\u9001\u6D88\u606F","message.stream.subscribed":"\u5DF2\u8BA2\u9605\u6D88\u606F\u6D41","message.stream.error":"\u6D41\u5F0F\u6D88\u606F\u53D1\u9001\u5931\u8D25","message.abort.start":"\u6B63\u5728\u4E2D\u6B62\u6D88\u606F","message.abort.success":"\u6D88\u606F\u5DF2\u4E2D\u6B62","message.history.start":"\u6B63\u5728\u83B7\u53D6\u6D88\u606F\u5386\u53F2","message.history.success":"\u6D88\u606F\u5386\u53F2\u83B7\u53D6\u6210\u529F","message.history.error":"\u6D88\u606F\u5386\u53F2\u83B7\u53D6\u5931\u8D25","tool.execute.start":"\u5F00\u59CB\u6267\u884C\u5DE5\u5177","tool.execute.success":"\u5DE5\u5177\u6267\u884C\u6210\u529F","tool.execute.error":"\u5DE5\u5177\u6267\u884C\u5931\u8D25","tool.list.start":"\u6B63\u5728\u83B7\u53D6\u5DE5\u5177\u5217\u8868","tool.list.success":"\u5DE5\u5177\u5217\u8868\u83B7\u53D6\u6210\u529F","tool.list.error":"\u5DE5\u5177\u5217\u8868\u83B7\u53D6\u5931\u8D25","acp.command.description":"\u542F\u52A8 ACP Agent \u901A\u4FE1\u9002\u914D\u5668\u670D\u52A1","acp.option.directory":"\u6307\u5B9A\u5DE5\u4F5C\u76EE\u5F55","acp.option.channel":"\u6307\u5B9A\u901A\u9053\u7C7B\u578B (stdio/http/websocket)","acp.option.port":"\u6307\u5B9A\u670D\u52A1\u7AEF\u53E3","acp.option.hostname":"\u6307\u5B9A\u4E3B\u673A\u5730\u5740","acp.option.timeout":"\u6307\u5B9A\u8BF7\u6C42\u8D85\u65F6\u65F6\u95F4","acp.option.debug":"\u542F\u7528\u8C03\u8BD5\u6A21\u5F0F","acp.help.examples":"\u793A\u4F8B:","acp.help.example.default":"\u4F7F\u7528\u9ED8\u8BA4\u914D\u7F6E\u542F\u52A8","acp.help.example.http":"\u4F7F\u7528 HTTP \u901A\u9053","acp.help.example.port":"\u6307\u5B9A\u7AEF\u53E3 8080","acp.help.example.hostname":"\u7ED1\u5B9A\u5230\u6240\u6709\u7F51\u7EDC\u63A5\u53E3","acp.help.example.debug":"\u542F\u7528\u8C03\u8BD5\u6A21\u5F0F","acp.help.env":"\u73AF\u5883\u53D8\u91CF:","acp.help.env.channel":"\u8986\u76D6\u901A\u9053\u7C7B\u578B (stdio/http/websocket)","acp.help.env.port":"\u8986\u76D6\u670D\u52A1\u7AEF\u53E3","acp.help.env.hostname":"\u8986\u76D6\u4E3B\u673A\u5730\u5740","acp.help.env.timeout":"\u8986\u76D6\u8BF7\u6C42\u8D85\u65F6\u65F6\u95F4","acp.help.env.enabled":"\u8986\u76D6\u542F\u7528\u72B6\u6001","acp.disabled":"ACP \u670D\u52A1\u5DF2\u88AB\u914D\u7F6E\u7981\u7528\u3002\u8BF7\u5728\u914D\u7F6E\u4E2D\u8BBE\u7F6E enabled: true \u540E\u91CD\u8BD5\u3002","acp.shutdown.received":"\u6536\u5230 {{signal}}\uFF0C\u6B63\u5728\u5173\u95ED...","acp.shutdown.completed":"ACP \u670D\u52A1\u6E05\u7406\u5B8C\u6210","tui.validation.new_and_session_id_conflict":"--new \u548C --session-id \u9009\u9879\u4E0D\u80FD\u540C\u65F6\u4F7F\u7528","tui.validation.fork_requires_session":"--fork \u9009\u9879\u5FC5\u987B\u4E0E --continue \u6216 --session-id \u4E00\u8D77\u4F7F\u7528","tui.validation.fork_cannot_use_with_new":"--fork \u9009\u9879\u4E0D\u80FD\u4E0E --new \u4E00\u8D77\u4F7F\u7528","tui.cleanup.begin":"\u6B63\u5728\u6E05\u7406\u8D44\u6E90...","tui.cleanup.complete":"\u8D44\u6E90\u6E05\u7406\u5B8C\u6210","tui.exit.resume_hint":"\u6062\u590D\u5F53\u524D\u4F1A\u8BDD: easbot tui --session-id {{sessionId}}","tui.config.display":"TUI \u542F\u52A8\u914D\u7F6E","tui.dev.notice":`
2
2
  \u6CE8\u610F: TUI \u529F\u80FD\u6B63\u5728\u5F00\u53D1\u4E2D\uFF0C\u5F53\u524D\u4EC5\u663E\u793A\u914D\u7F6E\u4FE1\u606F\u3002`,"tui.dev.modules":"\u5B8C\u6574\u5B9E\u73B0\u9700\u8981\u96C6\u6210\u4EE5\u4E0B\u6A21\u5757:","tui.dev.module.global":" - Global.init()","tui.dev.module.log":" - Log.init()","tui.dev.module.executor":" - AgentExecutor","tui.dev.module.render":" - @easbot/tui renderTui()","agent.command.description":"Agent \u7BA1\u7406\u547D\u4EE4","agent.command.list.description":"\u5217\u51FA\u6240\u6709\u53EF\u7528\u7684 Agent","agent.table.header.name":"\u540D\u79F0","agent.table.header.mode":"\u6A21\u5F0F","agent.table.header.native":"\u5185\u7F6E","agent.info.heading":"Agent \u4FE1\u606F","agent.command.info.description":"\u663E\u793A Agent \u8BE6\u7EC6\u4FE1\u606F","agent.command.create.description":"\u521B\u5EFA\u65B0\u7684 Agent","agent.command.create.option.name":"Agent \u540D\u79F0","agent.command.create.option.mode":"Agent \u6A21\u5F0F\uFF08subagent, primary, all\uFF09","agent.command.create.option.permission":"Agent \u6743\u9650\u914D\u7F6E\uFF08JSON \u683C\u5F0F\uFF09","agent.list.header":"\u53EF\u7528\u7684 Agent:","agent.list.primary":"\u4E3B Agent (Primary):","agent.list.subagent":"\u5B50 Agent (Subagent):","agent.list.all":"\u901A\u7528 Agent (All):","agent.list.hint":'\u63D0\u793A: \u4F7F\u7528 "easbot agent info <agent-id>" \u67E5\u770B\u8BE6\u7EC6\u4FE1\u606F',"agent.list.empty":"\u6CA1\u6709\u53EF\u7528\u7684 Agent","agent.list.success":"\u627E\u5230 {{count}} \u4E2A Agent","agent.list.error":"Agent \u5217\u8868\u83B7\u53D6\u5931\u8D25","agent.info.header":"Agent \u4FE1\u606F: {{agentId}}","agent.info.not_found":'Agent "{{agentId}}" \u672A\u627E\u5230',"agent.info.invalid_format":'Agent ID "{{agentId}}" \u683C\u5F0F\u65E0\u6548',"agent.info.format_hint":"\u63D0\u793A: Agent ID \u5E94\u8BE5\u53EA\u5305\u542B\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u8FDE\u5B57\u7B26\u548C\u4E0B\u5212\u7EBF","agent.info.list_hint":'\u63D0\u793A: \u4F7F\u7528 "easbot agent list" \u67E5\u770B\u6240\u6709\u53EF\u7528\u7684 Agent',"agent.info.available":"\u53EF\u7528\u7684 Agent:","agent.info.error":"Agent \u4FE1\u606F\u83B7\u53D6\u5931\u8D25: {{error}}","agent.info.field.name":"\u540D\u79F0","agent.info.field.mode":"\u6A21\u5F0F","agent.info.field.type":"\u7C7B\u578B","agent.info.field.description":"\u63CF\u8FF0","agent.info.field.model":"\u6A21\u578B","agent.info.field.temperature":"\u6E29\u5EA6","agent.info.field.top_p":"Top P","agent.info.field.steps":"\u6B65\u9AA4\u6570","agent.info.field.color":"\u989C\u8272","agent.info.type.native":"\u5185\u7F6E","agent.info.type.custom":"\u81EA\u5B9A\u4E49","agent.info.permissions":"\u6743\u9650\u914D\u7F6E:","agent.info.permissions_count":"\u5171 {{count}} \u6761\u6743\u9650\u89C4\u5219","agent.create.begin":"\u6B63\u5728\u521B\u5EFA Agent...","agent.create.success":'Agent "{{name}}" \u521B\u5EFA\u6210\u529F',"agent.create.error":"Agent \u521B\u5EFA\u5931\u8D25: {{error}}","agent.create.validation.name":"Agent \u540D\u79F0\u683C\u5F0F\u65E0\u6548","agent.create.validation.mode":"Agent \u6A21\u5F0F\u65E0\u6548\uFF08\u5FC5\u987B\u662F subagent\u3001primary \u6216 all\uFF09","agent.get.success":"Agent \u4FE1\u606F\u83B7\u53D6\u6210\u529F","agent.get.not_found":'Agent "{{agentId}}" \u672A\u627E\u5230',"agent.get.error":"Agent \u4FE1\u606F\u83B7\u53D6\u5931\u8D25","mcp.command.description":"MCP \u670D\u52A1\u5668\u7BA1\u7406\u547D\u4EE4","mcp.command.list.description":"\u5217\u51FA\u6240\u6709 MCP \u670D\u52A1\u5668","mcp.command.add.description":"\u6DFB\u52A0 MCP \u670D\u52A1\u5668","mcp.command.remove.description":"\u79FB\u9664 MCP \u670D\u52A1\u5668","mcp.command.info.description":"\u663E\u793A MCP \u670D\u52A1\u5668\u8BE6\u7EC6\u4FE1\u606F","mcp.command.add.option.name":"MCP \u670D\u52A1\u5668\u540D\u79F0","mcp.command.add.option.command":"MCP \u670D\u52A1\u5668\u542F\u52A8\u547D\u4EE4","mcp.command.add.option.args":"MCP \u670D\u52A1\u5668\u542F\u52A8\u53C2\u6570\uFF08JSON \u6570\u7EC4\u683C\u5F0F\uFF09","mcp.command.add.option.env":"MCP \u670D\u52A1\u5668\u73AF\u5883\u53D8\u91CF\uFF08JSON \u5BF9\u8C61\u683C\u5F0F\uFF09","mcp.list.begin":"\u6B63\u5728\u83B7\u53D6 MCP \u670D\u52A1\u5668\u5217\u8868...","mcp.list.success":"\u627E\u5230 {{count}} \u4E2A MCP \u670D\u52A1\u5668","mcp.list.empty":"\u6CA1\u6709\u914D\u7F6E MCP \u670D\u52A1\u5668","mcp.list.error":"MCP \u670D\u52A1\u5668\u5217\u8868\u83B7\u53D6\u5931\u8D25","mcp.add.begin":"\u6B63\u5728\u6DFB\u52A0 MCP \u670D\u52A1\u5668...","mcp.add.success":'MCP \u670D\u52A1\u5668 "{{name}}" \u6DFB\u52A0\u6210\u529F',"mcp.add.error":"MCP \u670D\u52A1\u5668\u6DFB\u52A0\u5931\u8D25: {{error}}","mcp.add.error.args_invalid":"\u53C2\u6570\u683C\u5F0F\u65E0\u6548\uFF0C\u5E94\u4E3A JSON \u6570\u7EC4","mcp.add.error.env_invalid":"\u73AF\u5883\u53D8\u91CF\u683C\u5F0F\u65E0\u6548\uFF0C\u5E94\u4E3A JSON \u5BF9\u8C61","mcp.remove.begin":"\u6B63\u5728\u79FB\u9664 MCP \u670D\u52A1\u5668...","mcp.remove.success":'MCP \u670D\u52A1\u5668 "{{name}}" \u79FB\u9664\u6210\u529F',"mcp.remove.error":"MCP \u670D\u52A1\u5668\u79FB\u9664\u5931\u8D25: {{error}}","mcp.info.begin":"\u6B63\u5728\u83B7\u53D6 MCP \u670D\u52A1\u5668\u4FE1\u606F...","mcp.info.heading":"MCP \u670D\u52A1\u5668\u4FE1\u606F","mcp.info.success":"MCP \u670D\u52A1\u5668\u4FE1\u606F\u83B7\u53D6\u6210\u529F","mcp.info.notfound":'MCP \u670D\u52A1\u5668 "{{name}}" \u4E0D\u5B58\u5728',"mcp.info.error":"MCP \u670D\u52A1\u5668\u4FE1\u606F\u83B7\u53D6\u5931\u8D25: {{error}}","mcp.table.header.name":"\u540D\u79F0","mcp.table.header.command":"\u547D\u4EE4","mcp.table.header.disabled":"\u5DF2\u7981\u7528","mcp.info.field.name":"\u540D\u79F0","mcp.info.field.type":"\u7C7B\u578B","mcp.info.field.command":"\u547D\u4EE4","mcp.info.field.enabled":"\u5DF2\u542F\u7528","mcp.info.field.environment":"\u73AF\u5883\u53D8\u91CF","mcp.info.field.url":"URL","mcp.info.field.headers":"\u8BF7\u6C42\u5934","run.command.description":"\u8FD0\u884C\u5355\u6B21\u5BF9\u8BDD","run.option.command":"\u8981\u8FD0\u884C\u7684\u547D\u4EE4\uFF0C\u4F7F\u7528\u6D88\u606F\u4F5C\u4E3A\u53C2\u6570","run.option.continue":"\u7EE7\u7EED\u4E0A\u6B21\u4F1A\u8BDD","run.option.session":"\u6307\u5B9A\u4F1A\u8BDD ID","run.option.fork":"\u5206\u53C9\u4F1A\u8BDD\uFF08\u9700\u8981 --continue \u6216 --session\uFF09","run.option.share":"\u5206\u4EAB\u4F1A\u8BDD","run.option.model":"\u6307\u5B9A\u6A21\u578B\uFF08\u683C\u5F0F\uFF1Aprovider/model\uFF09","run.option.agent":"\u6307\u5B9A Agent","run.option.format":"\u8F93\u51FA\u683C\u5F0F\uFF1Adefault\uFF08\u683C\u5F0F\u5316\uFF09\u6216 json\uFF08\u539F\u59CB JSON \u4E8B\u4EF6\uFF09","run.option.file":"\u9644\u52A0\u5230\u6D88\u606F\u7684\u6587\u4EF6","run.option.title":"\u4F1A\u8BDD\u6807\u9898\uFF08\u5982\u679C\u672A\u63D0\u4F9B\uFF0C\u4F7F\u7528\u622A\u65AD\u7684\u63D0\u793A\uFF09","run.option.variant":"\u6A21\u578B\u53D8\u4F53\uFF08\u7279\u5B9A\u4E8E Provider \u7684\u63A8\u7406\u52AA\u529B\uFF0C\u4F8B\u5982\uFF1Ahigh\u3001max\u3001minimal\uFF09","run.option.thinking":"\u663E\u793A\u601D\u8003\u5757","run.error.file_not_found":"\u6587\u4EF6\u672A\u627E\u5230: {{file}}","run.error.no_message":"\u5FC5\u987B\u63D0\u4F9B\u6D88\u606F\u6216\u547D\u4EE4","run.error.fork_requires_session":"--fork \u9700\u8981 --continue \u6216 --session","run.error.session_not_found":"\u4F1A\u8BDD\u672A\u627E\u5230","run.warning.agent_not_found":'Agent "{{agent}}" \u672A\u627E\u5230\u3002\u56DE\u9000\u5230\u9ED8\u8BA4 Agent',"run.warning.session_cleanup_failed":"\u8B66\u544A: \u4F1A\u8BDD\u6E05\u7406\u5931\u8D25 ({{sessionId}})","run.permission.request":"\u6743\u9650\u8BF7\u6C42: {{permission}}","run.permission.targets":"\u76EE\u6807: {{targets}}","run.permission.select_action":"\u9009\u62E9\u64CD\u4F5C:","run.permission.once":"\u5141\u8BB8\u4E00\u6B21 (once)","run.permission.always":"\u603B\u662F\u5141\u8BB8 (always)","run.permission.reject":"\u62D2\u7EDD (reject)","run.permission.input_prompt":"\u8BF7\u8F93\u5165 (y/a/n)","run.permission.allowed":"\u5DF2\u5141\u8BB8\u4E00\u6B21","run.permission.always_allowed":"\u5DF2\u603B\u662F\u5141\u8BB8","run.permission.rejected":"\u5DF2\u62D2\u7EDD","run.question.agent_asking":"Agent \u63D0\u95EE:","run.question.header":"\u95EE\u9898 {{current}}/{{total}}:","run.question.title":"\u6807\u9898: {{title}}","run.question.question":"\u95EE\u9898: {{question}}","run.question.options":"\u53EF\u9009\u9879:","run.question.custom_input":"\u81EA\u5B9A\u4E49\u8F93\u5165","run.question.input_prompt":"\u8BF7\u8F93\u5165\u9009\u9879\u7F16\u53F7\u6216\u81EA\u5B9A\u4E49\u7B54\u6848","run.question.input_prompt_multiple":"\u8BF7\u8F93\u5165\u9009\u9879\u7F16\u53F7\uFF08\u591A\u9009\u7528\u9017\u53F7\u5206\u9694\uFF0C\u5982 1,3\uFF09\u6216\u81EA\u5B9A\u4E49\u7B54\u6848","run.question.custom_input_prompt":"\u8BF7\u8F93\u5165\u81EA\u5B9A\u4E49\u7B54\u6848","run.question.answered":"\u5DF2\u56DE\u7B54: {{answer}}","run.question.hint.custom_enabled":"\u63D0\u793A: \u8F93\u5165\u9009\u9879\u7F16\u53F7\u6216\u8F93\u5165\u81EA\u5B9A\u4E49\u6587\u672C","run.question.hint.custom_enabled_multiple":"\u63D0\u793A: \u8F93\u5165\u9009\u9879\u7F16\u53F7\uFF08\u591A\u9009\u7528\u9017\u53F7\u5206\u9694\uFF0C\u5982 1,3\uFF09\u6216\u8F93\u5165\u81EA\u5B9A\u4E49\u6587\u672C","run.question.hint.custom_disabled":"\u63D0\u793A: \u53EA\u80FD\u8F93\u5165\u6709\u6548\u7684\u9009\u9879\u7F16\u53F7","run.question.hint.custom_disabled_multiple":"\u63D0\u793A: \u53EA\u80FD\u8F93\u5165\u6709\u6548\u7684\u9009\u9879\u7F16\u53F7\uFF08\u591A\u9009\u7528\u9017\u53F7\u5206\u9694\uFF0C\u5982 1,3\uFF09","run.question.invalid_input":"\u2717 \u65E0\u6548\u8F93\u5165\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165","run.question.invalid_option":"\u2717 \u65E0\u6548\u8F93\u5165\uFF0C\u53EA\u80FD\u8F93\u5165\u6709\u6548\u7684\u9009\u9879\u7F16\u53F7","generate.command.description":"\u751F\u6210 OpenAPI \u89C4\u8303","generate.error.failed":"\u751F\u6210 OpenAPI \u89C4\u8303\u5931\u8D25: {{error}}","cli.error.execution_failed":"CLI \u6267\u884C\u5931\u8D25","cli.error.fatal":"\u81F4\u547D\u9519\u8BEF","cli.error.message":"\u9519\u8BEF: {{message}}","cli.error.detail":"\u9519\u8BEF\u8BE6\u60C5","error.directory.hint":"\u63D0\u793A: \u8BF7\u68C0\u67E5\u76EE\u5F55\u8DEF\u5F84\u662F\u5426\u6B63\u786E\uFF0C\u6216\u8005\u662F\u5426\u6709\u8BBF\u95EE\u6743\u9650\u3002","error.validation.hint":'\u63D0\u793A: \u8BF7\u68C0\u67E5\u547D\u4EE4\u884C\u53C2\u6570\u662F\u5426\u6B63\u786E\u3002\u8FD0\u884C "easbot tui --help" \u67E5\u770B\u5E2E\u52A9\u3002',"error.port.hint":"\u63D0\u793A: \u7AEF\u53E3\u53EF\u80FD\u5DF2\u88AB\u5360\u7528\uFF0C\u8BF7\u5C1D\u8BD5\u4F7F\u7528\u5176\u4ED6\u7AEF\u53E3\u6216\u5173\u95ED\u5360\u7528\u8BE5\u7AEF\u53E3\u7684\u7A0B\u5E8F\u3002","error.connection.hint":"\u63D0\u793A: \u65E0\u6CD5\u8FDE\u63A5\u5230\u670D\u52A1\u5668\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8BBE\u7F6E\u6216\u670D\u52A1\u5668\u72B6\u6001\u3002","error.initialization.hint":"\u63D0\u793A: \u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u914D\u7F6E\u6587\u4EF6\u6216\u73AF\u5883\u53D8\u91CF\u3002","error.render.hint":"\u63D0\u793A: TUI \u6E32\u67D3\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7EC8\u7AEF\u662F\u5426\u652F\u6301 TUI \u663E\u793A\u3002","error.original":`
3
3
  \u539F\u59CB\u9519\u8BEF:`,"error.unknown":`
4
4
  \u672A\u77E5\u9519\u8BEF:`,"error.stack":`
@@ -11,7 +11,7 @@ var f={languages:[{value:"zh-CN",name:"\u7B80\u4F53\u4E2D\u6587",example:"\u4F60
11
11
  --tls \u542F\u7528 TLS
12
12
  --tls-cert <path> TLS \u8BC1\u4E66\u8DEF\u5F84
13
13
  --tls-key <path> TLS \u5BC6\u94A5\u8DEF\u5F84
14
- -d, --debug \u542F\u7528\u8C03\u8BD5\u6A21\u5F0F`,"auth.login.error":"\u767B\u5F55\u5931\u8D25: {{error}}","auth.interactive.title":"\u6DFB\u52A0\u51ED\u636E","auth.interactive.select_provider":"\u9009\u62E9 Provider:","auth.interactive.enter_number":"\u8F93\u5165\u7F16\u53F7\u9009\u62E9 (\u9ED8\u8BA4: 1)","auth.interactive.no_providers":"\u6CA1\u6709\u53EF\u7528\u7684 Provider","auth.logout.logging_out":"\u6B63\u5728\u767B\u51FA {{provider}}","auth.logout.success":"\u767B\u51FA\u6210\u529F: {{provider}}","auth.logout.not_found":"\u672A\u627E\u5230 Provider \u7684\u51ED\u636E: {{provider}}","auth.logout.error":"\u767B\u51FA\u5931\u8D25: {{error}}","pr.command.description":"\u68C0\u51FA GitHub PR \u5E76\u5BFC\u5165\u4F1A\u8BDD","pr.error.not_git_repo":"\u5F53\u524D\u76EE\u5F55\u4E0D\u662F Git \u4ED3\u5E93","pr.error.invalid_number":"\u65E0\u6548\u7684 PR \u7F16\u53F7: {{number}}","pr.error.checkout_failed":"PR \u68C0\u51FA\u5931\u8D25","pr.error.gh_not_installed":"\u8BF7\u786E\u4FDD\u5DF2\u5B89\u88C5 gh CLI \u5E76\u767B\u5F55","pr.checking_out":"\u6B63\u5728\u68C0\u51FA PR #{{prNumber}}","pr.checkout_success":"PR #{{prNumber}} \u5DF2\u68C0\u51FA\u4E3A\u5206\u652F {{branch}}","pr.added_fork_remote":"\u5DF2\u6DFB\u52A0 fork remote: {{remote}}","pr.found_session":"\u53D1\u73B0 easbot session: {{url}}","pr.session_imported":"Session \u5DF2\u5BFC\u5165: {{sessionId}}","pr.ready":"PR \u68C0\u51FA\u5B8C\u6210!","pr.start_easbot":'\u8FD0\u884C "easbot" \u542F\u52A8\u7F16\u8F91\u5668 (\u5206\u652F: {{branch}})',"pr.error.failed":"PR \u64CD\u4F5C\u5931\u8D25: {{error}}","github.command.description":"GitHub Agent \u7BA1\u7406","github.command.install.description":"\u5B89\u88C5 GitHub App","github.command.run.description":"\u8FD0\u884C GitHub Agent","github.option.provider":"\u6307\u5B9A Provider","github.option.model":"\u6307\u5B9A\u6A21\u578B","github.option.event":"\u6A21\u62DF GitHub \u4E8B\u4EF6 (JSON)","github.option.token":"GitHub Personal Access Token","github.error.not_git_repo":"\u5F53\u524D\u76EE\u5F55\u4E0D\u662F Git \u4ED3\u5E93","github.error.parse_remote":"\u65E0\u6CD5\u89E3\u6790 Git remote","github.field.owner":"Owner","github.field.repo":"Repo","github.install.starting":"\u5B89\u88C5 GitHub App","github.install.step1":"\u6B65\u9AA4 1: \u5728\u6D4F\u89C8\u5668\u4E2D\u6388\u6743 App","github.install.open_url":"\u8BF7\u8BBF\u95EE: {{url}}","github.install.waiting":"\u7B49\u5F85\u5B89\u88C5\u5B8C\u6210...","github.install.installed":"App \u5B89\u88C5\u6210\u529F!","github.install.timeout":"\u5B89\u88C5\u8D85\u65F6\uFF0C\u8BF7\u624B\u52A8\u5B8C\u6210\u5B89\u88C5\u540E\u91CD\u8BD5","github.install.select_provider":"\u9009\u62E9 Provider (\u9ED8\u8BA4: 1):","github.install.select_model":"\u9009\u62E9\u6A21\u578B (\u9ED8\u8BA4: 1):","github.install.generating_workflow":"\u6B63\u5728\u751F\u6210\u5DE5\u4F5C\u6D41\u914D\u7F6E...","github.install.workflow_created":"\u5DE5\u4F5C\u6D41\u6587\u4EF6\u5DF2\u521B\u5EFA: {{file}}","github.install.next_steps":"\u540E\u7EED\u6B65\u9AA4:","github.install.step1_hint":"\u63D0\u4EA4\u5E76\u63A8\u9001\u5DE5\u4F5C\u6D41\u6587\u4EF6","github.install.step2_hint":"\u5728 {{owner}}/{{repo}} \u4ED3\u5E93\u8BBE\u7F6E\u4E2D\u6DFB\u52A0\u73AF\u5883\u53D8\u91CF\u5BC6\u94A5","github.install.step3_hint":'\u5728 GitHub Issue \u4E2D\u8BC4\u8BBA "/oc" \u542F\u52A8 Agent',"github.install.error":"\u5B89\u88C5\u5931\u8D25: {{error}}","github.run.info":"GitHub Agent \u8FD0\u884C\u6A21\u5F0F\u9700\u8981\u5728 GitHub Actions \u4E2D\u6267\u884C"}},b=C;var T={translation:{"common.yes":"Yes","common.no":"No","common.enabled":"Enabled","common.disabled":"Disabled","program.name":"easbot","program.description":"EASBot - Multi-Agent Collaboration Ecosystem CLI Tool","program.version.banner":"EASBot v{{version}}","program.version.description":"Display version number","program.option.cwd":"Specify working directory","program.option.config":"Specify config file path","program.option.print_logs":"Print logs to stderr","program.option.log_level":"Log level (DEBUG, INFO, WARN, ERROR)","program.option.debug":"Enable debug mode","program.help.option":"Display command help information","program.help.command":"Display command help information","program.help.examples":"Examples","program.help.docs":"Documentation","program.error.unknown_command":"Error: Unknown command '{{command}}'","program.error.unknown_command_hint":'Run "easbot --help" to see available commands list',"program.error.commander":"Error: {{message}}","help.example.tui":"Start TUI interactive interface","help.example.tui_continue":"Continue from last session","help.example.run":"Run single conversation","help.example.agent_list":"List all available Agents","help.example.mcp_list":"List all MCP servers","help.example.help":"Display help information","tui.command.description":"Start TUI interactive interface","tui.option.model":"Model to use (format: provider/model)","tui.option.new":"Create new session","tui.option.continue":"Continue from last session","tui.option.session_id":"Specify session ID to continue","tui.option.agent":"Agent to use ({{agents}})","tui.option.prompt":"Initial prompt","tui.option.fork":"Fork session (use with --continue or --session-id)","tui.option.port":"Server port","tui.option.hostname":"Server hostname","tui.header.title":"EASBOT TUI - Multi-Agent Collaboration Ecosystem","tui.footer.info":"Agent: {{agent}} | Model: {{model}} | Session: {{session}}{{tokens}}","tui.start.begin":"Starting TUI...","tui.start.success":"TUI started successfully","tui.start.error":"TUI startup failed: {{error}}","tui.directory.change":"Working directory: {{cwd}}","tui.directory.error":"Unable to switch to directory: {{cwd}}","tui.handler.status.title":"System Status","tui.handler.status.system_info":"System Information","tui.handler.status.session_info":"Session Information","tui.handler.status.skills":"Skills","tui.handler.status.mcp":"MCP","tui.handler.status.commands":"Commands","tui.handler.status.services":"Services Status","tui.handler.status.system":"System","tui.handler.status.ok":"OK","tui.handler.status.directory":"Working Directory","tui.handler.status.global_paths":"Global Paths (L49-69)","tui.handler.status.agent_label":"Agent","tui.handler.status.session_label":"Session","tui.handler.status.model_label":"Model","tui.handler.status.count":"Count","tui.handler.status.list":"List","tui.handler.status.not_set":"Not Set","tui.handler.status.not_implemented":"Not Implemented","tui.handler.status.error_loading":"Failed to load command list","tui.handler.status.no_lsp":"None","tui.handler.status.error_loading_lsp":"Load failed","tui.handler.status.agent":"Agent: {{agentId}}","tui.handler.status.session":"Session: {{sessionKey}}","tui.handler.status.model":"Model: {{model}}","tui.handler.status.model_not_set":"Not set","tui.handler.agent.selector_dev":"Agent selector under development...","tui.handler.agent.switched":"Switched to Agent: {{agentId}}","tui.handler.session.selector_dev":"Session selector under development...","tui.handler.session.switched":"Switched to session: {{sessionKey}}","tui.handler.session.reset":"Session reset","tui.handler.session.reset_error":"\u2717 Failed to reset session: {{error}}","tui.handler.new.begin":"Creating new session...","tui.handler.new.error":"\u2717 Failed to create new session: {{error}}","tui.handler.fork.begin":"Forking session...","tui.handler.fork.error":"\u2717 Failed to fork session: {{error}}","tui.handler.model.selector_dev":"Model selector under development...","tui.handler.model.set":"Model set to: {{model}}","tui.handler.settings.dev":"Settings panel under development...","tui.handler.verbose.usage":"Usage: /verbose <on|off>","tui.handler.verbose.set":"Verbose mode set to: {{level}}","tui.handler.verbose_level.set":"Verbose level set to: {{level}}","tui.handler.message_limit.set":"Message display limit set to: {{limit}}","tui.handler.verbose.invalid":"\u2717 Invalid value: {{value}}, only supports on or off","tui.handler.thinking.usage":"Usage: /thinking <level>","tui.handler.thinking.set":"Thinking level set to: {{level}}","tui.handler.thinking_level.set":"Thinking level set to: {{level}}","tui.handler.abort.success":"Current task aborted","tui.handler.abort.no_task":"No running task","tui.handler.clear.success":"Chat history cleared","tui.handler.clear.begin":"Clearing chat history...","tui.handler.clear.error":"Failed to clear chat history: {{error}}","tui.handler.compact.no_session":"\u2717 No active session","tui.handler.compact.no_model":"\u2717 No model selected","tui.handler.compact.invalid_model":"\u2717 Invalid model format: {{model}}","tui.handler.compact.no_messages":"\u2717 No messages to compact","tui.handler.compact.begin":"Compressing context...","tui.handler.compact.processing":"\u2699 Compressing context, please wait...","tui.handler.compact.success":"\u2713 Context compression completed","tui.handler.compact.error":"\u2717 Compression failed: {{error}}","tui.handler.skill.loaded":"\u2713 Skill loaded: {{name}}","tui.handler.skill.loading":"Loading Skill...","tui.handler.skill.error":"\u2717 Skill loading failed: {{error}}","tui.handler.skill.notfound":"\u2717 Skill does not exist: {{name}}","tui.handler.skill.not_found":'\u2717 Skill "{{name}}" does not exist',"tui.handler.skill.list":"Available Skills:","tui.handler.skill.empty":"No skills available","tui.handler.command.empty":"No commands available","tui.handler.command.not_found":'\u2717 Command "{{name}}" does not exist',"tui.handler.command.error":"\u2717 Command execution failed: /{{command}} - {{error}}","tui.handler.mcp.empty":"No MCP prompts available","tui.handler.mcp.not_found":'\u2717 MCP prompt "{{name}}" does not exist',"tui.handler.mcp.error":"\u2717 MCP prompts loading failed: {{error}}","tui.handler.skill.executing":"\u2699 Executing Skill","tui.handler.command.executing":"\u2699 Executing command","tui.handler.mcp.executing":"\u2699 Executing MCP prompt","tui.handler.executing":"Executing: {{command}}","tui.handler.local.completed":"\u2713 Command completed","tui.handler.local.output":"Output","tui.settings.open":"Open settings panel","tui.settings.update":"Settings updated successfully","tui.settings.error":"Settings update failed: {{error}}","tui.settings.cancel":"Cancel settings update","tui.settings.title":"\u2699 Settings","tui.settings.hint":"Use \u2191\u2193 to select, Enter to edit, Esc to cancel","tui.settings.item.model":"Model","tui.settings.item.agent":"Agent","tui.settings.item.thinking":"Thinking Level","tui.settings.item.thinking_level":"Thinking Level","tui.settings.item.show_thinking":"Show Thinking","tui.settings.item.verbose":"Verbose Level","tui.settings.item.verbose_level":"Verbose Mode","tui.settings.item.message_limit":"Message Display Limit","tui.settings.item.tools_expanded":"Tools Expanded","tui.settings.item.local_shell_permission":"Local Shell Permission","tui.settings.item.context_mode":"Context Mode","tui.settings.desc.model":"Set AI model to use","tui.settings.desc.agent":"Set current Agent","tui.settings.desc.thinking":"Set thinking mode level","tui.settings.desc.thinking_level":"Set thinking level passed to Agent (off/low/medium/high)","tui.settings.desc.show_thinking":"Whether to show thinking content in TUI (true/false)","tui.settings.desc.verbose":"Control verbose mode display (on/off)","tui.settings.desc.verbose_level":"Control verbose mode display (on/off)","tui.settings.desc.message_limit":"Set message display limit (25/50/100)","tui.settings.desc.tools_expanded":"Whether to expand tool details","tui.settings.desc.local_shell_permission":"Control local shell command execution permission (ask/on/off)","tui.settings.desc.context_mode":"Set context mode (general/coder)","tui.settings.value.not_set":"Not Set","tui.settings.value.default":"Default","tui.settings.value.enabled":"Enabled","tui.settings.value.disabled":"Disabled","tui.clear.begin":"Clear chat history begin","tui.clear.confirm":"Confirm to clear chat history","tui.clear.success":"Clear chat history success","tui.clear.error":"Clear chat history failed","tui.clear.cancel":"Cancel clear operation","tui.dialog.confirm":"Confirm","tui.dialog.cancel":"Cancel","tui.dialog.clear.message":"Are you sure you want to clear all chat history? This operation cannot be undone.","tui.abort.begin":"Aborting session...","tui.abort.error":"Failed to abort session: {{error}}","tui.abort.timeout":"Abort timeout","tui.abort.success":"Session aborted","tui.abort.noactive":"No active session to abort","tui.tool.expand":"Expand tool details","tui.tool.collapse":"Collapse tool details","tui.tool.notfound":"Tool does not exist","tui.tool.toggle":"Toggle tool expand/collapse state","tui.handler.send.sending":"Sending message...","tui.handler.send.waiting":"Waiting for response...","tui.handler.send.error":"Send failed: {{error}}","tui.handler.send.error_status":"Send failed","session.command.description":"Session management command","session.command.list.description":"List all sessions","session.command.list.option.max_count":"Maximum number of sessions to display","session.command.list.option.format":"Output format (table or json)","session.command.info.description":"Display session details","session.command.delete.description":"Delete session","session.table.header.id":"ID","session.table.header.title":"Title","session.table.header.created":"Created","session.table.header.updated":"Updated","session.info.heading":"Session Information","session.untitled":"(Untitled)","session.list.success":"Found {{count}} sessions","session.list.empty":"No sessions found","session.list.error":"Failed to get session list","session.get.success":"Get session successful","session.get.error":"Get session failed","session.get.not_found":"Session does not exist: {{sessionId}}","session.create.success":"Session created successfully","session.create.error":"Failed to create session","session.fork.success":"Session forked successfully","session.fork.error":"Failed to fork session","session.delete.success":"Session deleted successfully","session.delete.error":"Failed to delete session","session.field.id":"ID","session.field.title":"Title","session.field.created":"Created","session.field.updated":"Updated","session.field.directory":"Directory","session.field.project_id":"Project ID","model.list.success":"Found {{count}} models","model.list.empty":"No models found","model.list.error":"Failed to get model list","model.refresh.begin":"Refreshing model cache...","model.refresh.success":"Model cache refreshed successfully","model.refresh.error":"Failed to refresh model cache","model.parse.error":"Invalid model format: {{model}}","provider.list.success":"Found {{count}} Providers","provider.list.empty":"No providers found","provider.list.error":"Failed to get provider list","provider.not_found":"Provider does not exist: {{providerId}}","message.send.start":"Start sending message","message.send.success":"Message sent successfully","message.send.error":"Failed to send message","message.command.start":"Start executing command","message.command.success":"Command executed successfully","message.command.error":"Failed to execute command","message.stream.start":"Start streaming message","message.stream.subscribed":"Subscribed to message stream","message.stream.error":"Streaming message failed","message.abort.start":"Aborting message","message.abort.success":"Message aborted","message.history.start":"Getting message history","message.history.success":"Message history retrieved successfully","message.history.error":"Failed to retrieve message history","tool.execute.start":"Start executing tool","tool.execute.success":"Tool executed successfully","tool.execute.error":"Tool execution failed","tool.list.start":"Getting tool list","tool.list.success":"Tool list retrieved successfully","tool.list.error":"Failed to retrieve tool list","acp.command.description":"Start ACP Agent communication adapter service","acp.option.directory":"Specify working directory","acp.option.channel":"Specify channel type (stdio/http/websocket)","acp.option.port":"Specify service port","acp.option.hostname":"Specify host address","acp.option.timeout":"Specify request timeout","acp.option.debug":"Enable debug mode","acp.help.examples":"Examples:","acp.help.example.default":"Start with default configuration","acp.help.example.http":"Use HTTP channel","acp.help.example.port":"Set port to 8080","acp.help.example.hostname":"Bind to all network interfaces","acp.help.example.debug":"Enable debug mode","acp.help.env":"Environment Variables:","acp.help.env.channel":"Override channel type (stdio/http/websocket)","acp.help.env.port":"Override service port","acp.help.env.hostname":"Override host address","acp.help.env.timeout":"Override request timeout","acp.help.env.enabled":"Override enabled status","acp.disabled":"ACP server is disabled. Set enabled: true in config to enable it.","acp.shutdown.received":"Received {{signal}}, shutting down...","acp.shutdown.completed":"ACP server cleanup completed","tui.validation.new_and_session_id_conflict":"--new and --session-id options cannot be used together","tui.validation.fork_requires_session":"--fork option must be used with --continue or --session-id","tui.validation.fork_cannot_use_with_new":"--fork option cannot be used with --new","tui.cleanup.begin":"Cleaning up resources...","tui.cleanup.complete":"Resource cleanup completed","tui.exit.resume_hint":"Resume current session: easbot tui --session-id {{sessionId}}","tui.config.display":"TUI startup configuration","tui.dev.notice":`
14
+ -d, --debug \u542F\u7528\u8C03\u8BD5\u6A21\u5F0F`,"auth.login.error":"\u767B\u5F55\u5931\u8D25: {{error}}","auth.interactive.title":"\u6DFB\u52A0\u51ED\u636E","auth.interactive.select_provider":"\u9009\u62E9 Provider:","auth.interactive.enter_number":"\u8F93\u5165\u7F16\u53F7\u9009\u62E9 (\u9ED8\u8BA4: 1)","auth.interactive.no_providers":"\u6CA1\u6709\u53EF\u7528\u7684 Provider","auth.logout.logging_out":"\u6B63\u5728\u767B\u51FA {{provider}}","auth.logout.success":"\u767B\u51FA\u6210\u529F: {{provider}}","auth.logout.not_found":"\u672A\u627E\u5230 Provider \u7684\u51ED\u636E: {{provider}}","auth.logout.error":"\u767B\u51FA\u5931\u8D25: {{error}}","pr.command.description":"\u68C0\u51FA GitHub PR \u5E76\u5BFC\u5165\u4F1A\u8BDD","pr.error.not_git_repo":"\u5F53\u524D\u76EE\u5F55\u4E0D\u662F Git \u4ED3\u5E93","pr.error.invalid_number":"\u65E0\u6548\u7684 PR \u7F16\u53F7: {{number}}","pr.error.checkout_failed":"PR \u68C0\u51FA\u5931\u8D25","pr.error.gh_not_installed":"\u8BF7\u786E\u4FDD\u5DF2\u5B89\u88C5 gh CLI \u5E76\u767B\u5F55","pr.checking_out":"\u6B63\u5728\u68C0\u51FA PR #{{prNumber}}","pr.checkout_success":"PR #{{prNumber}} \u5DF2\u68C0\u51FA\u4E3A\u5206\u652F {{branch}}","pr.added_fork_remote":"\u5DF2\u6DFB\u52A0 fork remote: {{remote}}","pr.found_session":"\u53D1\u73B0 easbot session: {{url}}","pr.session_imported":"Session \u5DF2\u5BFC\u5165: {{sessionId}}","pr.ready":"PR \u68C0\u51FA\u5B8C\u6210!","pr.start_easbot":'\u8FD0\u884C "easbot" \u542F\u52A8\u7F16\u8F91\u5668 (\u5206\u652F: {{branch}})',"pr.error.failed":"PR \u64CD\u4F5C\u5931\u8D25: {{error}}","github.command.description":"GitHub Agent \u7BA1\u7406","github.command.install.description":"\u5B89\u88C5 GitHub App","github.command.run.description":"\u8FD0\u884C GitHub Agent","github.option.provider":"\u6307\u5B9A Provider","github.option.model":"\u6307\u5B9A\u6A21\u578B","github.option.event":"\u6A21\u62DF GitHub \u4E8B\u4EF6 (JSON)","github.option.token":"GitHub Personal Access Token","github.error.not_git_repo":"\u5F53\u524D\u76EE\u5F55\u4E0D\u662F Git \u4ED3\u5E93","github.error.parse_remote":"\u65E0\u6CD5\u89E3\u6790 Git remote","github.field.owner":"Owner","github.field.repo":"Repo","github.install.starting":"\u5B89\u88C5 GitHub App","github.install.step1":"\u6B65\u9AA4 1: \u5728\u6D4F\u89C8\u5668\u4E2D\u6388\u6743 App","github.install.open_url":"\u8BF7\u8BBF\u95EE: {{url}}","github.install.waiting":"\u7B49\u5F85\u5B89\u88C5\u5B8C\u6210...","github.install.installed":"App \u5B89\u88C5\u6210\u529F!","github.install.timeout":"\u5B89\u88C5\u8D85\u65F6\uFF0C\u8BF7\u624B\u52A8\u5B8C\u6210\u5B89\u88C5\u540E\u91CD\u8BD5","github.install.select_provider":"\u9009\u62E9 Provider (\u9ED8\u8BA4: 1):","github.install.select_model":"\u9009\u62E9\u6A21\u578B (\u9ED8\u8BA4: 1):","github.install.generating_workflow":"\u6B63\u5728\u751F\u6210\u5DE5\u4F5C\u6D41\u914D\u7F6E...","github.install.workflow_created":"\u5DE5\u4F5C\u6D41\u6587\u4EF6\u5DF2\u521B\u5EFA: {{file}}","github.install.next_steps":"\u540E\u7EED\u6B65\u9AA4:","github.install.step1_hint":"\u63D0\u4EA4\u5E76\u63A8\u9001\u5DE5\u4F5C\u6D41\u6587\u4EF6","github.install.step2_hint":"\u5728 {{owner}}/{{repo}} \u4ED3\u5E93\u8BBE\u7F6E\u4E2D\u6DFB\u52A0\u73AF\u5883\u53D8\u91CF\u5BC6\u94A5","github.install.step3_hint":'\u5728 GitHub Issue \u4E2D\u8BC4\u8BBA "/oc" \u542F\u52A8 Agent',"github.install.error":"\u5B89\u88C5\u5931\u8D25: {{error}}","github.run.info":"GitHub Agent \u8FD0\u884C\u6A21\u5F0F\u9700\u8981\u5728 GitHub Actions \u4E2D\u6267\u884C"}},b=C;var T={translation:{"common.yes":"Yes","common.no":"No","common.enabled":"Enabled","common.disabled":"Disabled","program.name":"easbot","program.description":"EASBot - Multi-Agent Collaboration Ecosystem CLI Tool","program.version.banner":"EASBot v{{version}}","program.version.description":"Display version number","program.option.cwd":"Specify working directory","program.option.config":"Specify config file path","program.option.print_logs":"Print logs to stderr","program.option.log_level":"Log level (DEBUG, INFO, WARN, ERROR)","program.option.debug":"Enable debug mode","program.help.option":"Display command help information","program.help.command":"Display command help information","program.help.examples":"Examples","program.help.docs":"Documentation","program.error.unknown_command":"Error: Unknown command '{{command}}'","program.error.unknown_command_hint":'Run "easbot --help" to see available commands list',"program.error.commander":"Error: {{message}}","help.example.tui":"Start TUI interactive interface","help.example.tui_continue":"Continue from last session","help.example.run":"Run single conversation","help.example.agent_list":"List all available Agents","help.example.mcp_list":"List all MCP servers","help.example.help":"Display help information","tui.command.description":"Start TUI interactive interface","tui.option.model":"Model to use (format: provider/model)","tui.option.new":"Create new session","tui.option.continue":"Continue from last session","tui.option.session_id":"Specify session ID to continue","tui.option.agent":"Agent to use ({{agents}})","tui.option.prompt":"Initial prompt","tui.option.fork":"Fork session (use with --continue or --session-id)","tui.option.port":"Server port","tui.option.hostname":"Server hostname","tui.header.title":"EASBOT TUI - Multi-Agent Collaboration Ecosystem","tui.footer.info":"Agent: {{agent}} | Model: {{model}} | Session: {{session}}{{tokens}}","tui.start.begin":"Starting TUI...","tui.start.success":"TUI started successfully","tui.start.error":"TUI startup failed: {{error}}","tui.directory.change":"Working directory: {{cwd}}","tui.directory.error":"Unable to switch to directory: {{cwd}}","tui.handler.status.title":"System Status","tui.handler.status.preferences":"Preferences","tui.handler.status.system_info":"System Information","tui.handler.status.session_info":"Session Information","tui.handler.status.skills":"Skills","tui.handler.status.mcp":"MCP","tui.handler.status.commands":"Commands","tui.handler.status.services":"Services Status","tui.handler.status.system":"System","tui.handler.status.ok":"OK","tui.handler.status.directory":"Working Directory","tui.handler.status.global_paths":"Global Paths (L49-69)","tui.handler.status.agent_label":"Agent","tui.handler.status.session_label":"Session","tui.handler.status.model_label":"Model","tui.handler.status.count":"Count","tui.handler.status.list":"List","tui.handler.status.not_set":"Not Set","tui.handler.status.not_implemented":"Not Implemented","tui.handler.status.error_loading":"Failed to load command list","tui.handler.status.no_lsp":"None","tui.handler.status.error_loading_lsp":"Load failed","tui.handler.status.agent":"Agent: {{agentId}}","tui.handler.status.session":"Session: {{sessionKey}}","tui.handler.status.model":"Model: {{model}}","tui.handler.status.model_not_set":"Not set","tui.handler.agent.selector_dev":"Agent selector under development...","tui.handler.agent.switched":"Switched to Agent: {{agentId}}","tui.handler.session.selector_dev":"Session selector under development...","tui.handler.session.switched":"Switched to session: {{sessionKey}}","tui.handler.session.reset":"Session reset","tui.handler.session.reset_error":"\u2717 Failed to reset session: {{error}}","tui.handler.new.begin":"Creating new session...","tui.handler.new.error":"\u2717 Failed to create new session: {{error}}","tui.handler.fork.begin":"Forking session...","tui.handler.fork.error":"\u2717 Failed to fork session: {{error}}","tui.handler.model.selector_dev":"Model selector under development...","tui.handler.model.set":"Model set to: {{model}}","tui.handler.settings.dev":"Settings panel under development...","tui.handler.verbose.usage":"Usage: /verbose <on|off>","tui.handler.verbose.set":"Verbose mode set to: {{level}}","tui.handler.verbose_level.set":"Verbose level set to: {{level}}","tui.handler.message_limit.set":"Message display limit set to: {{limit}}","tui.handler.verbose.invalid":"\u2717 Invalid value: {{value}}, only supports on or off","tui.handler.thinking.usage":"Usage: /thinking <level>","tui.handler.thinking.set":"Thinking level set to: {{level}}","tui.handler.thinking_level.set":"Thinking level set to: {{level}}","tui.handler.abort.success":"Current task aborted","tui.handler.abort.no_task":"No running task","tui.handler.clear.success":"Chat history cleared","tui.handler.clear.begin":"Clearing chat history...","tui.handler.clear.error":"Failed to clear chat history: {{error}}","tui.handler.compact.no_session":"\u2717 No active session","tui.handler.compact.no_model":"\u2717 No model selected","tui.handler.compact.invalid_model":"\u2717 Invalid model format: {{model}}","tui.handler.compact.no_messages":"\u2717 No messages to compact","tui.handler.compact.begin":"Compressing context...","tui.handler.compact.processing":"\u2699 Compressing context, please wait...","tui.handler.compact.success":"\u2713 Context compression completed","tui.handler.compact.error":"\u2717 Compression failed: {{error}}","tui.handler.skill.loaded":"\u2713 Skill loaded: {{name}}","tui.handler.skill.loading":"Loading Skill...","tui.handler.skill.error":"\u2717 Skill loading failed: {{error}}","tui.handler.skill.notfound":"\u2717 Skill does not exist: {{name}}","tui.handler.skill.not_found":'\u2717 Skill "{{name}}" does not exist',"tui.handler.skill.list":"Available Skills:","tui.handler.skill.empty":"No skills available","tui.handler.command.empty":"No commands available","tui.handler.command.not_found":'\u2717 Command "{{name}}" does not exist',"tui.handler.command.error":"\u2717 Command execution failed: /{{command}} - {{error}}","tui.handler.mcp.empty":"No MCP prompts available","tui.handler.mcp.not_found":'\u2717 MCP prompt "{{name}}" does not exist',"tui.handler.mcp.error":"\u2717 MCP prompts loading failed: {{error}}","tui.handler.skill.executing":"\u2699 Executing Skill","tui.handler.command.executing":"\u2699 Executing command","tui.handler.mcp.executing":"\u2699 Executing MCP prompt","tui.handler.executing":"Executing: {{command}}","tui.handler.local.completed":"\u2713 Command completed","tui.handler.local.output":"Output","tui.settings.open":"Open settings panel","tui.settings.update":"Settings updated successfully","tui.settings.error":"Settings update failed: {{error}}","tui.settings.cancel":"Cancel settings update","tui.settings.title":"\u2699 Settings","tui.settings.hint":"Use \u2191\u2193 to select, Enter to edit, Esc to cancel","tui.settings.item.model":"Model","tui.settings.item.agent":"Agent","tui.settings.item.thinking":"Thinking Level","tui.settings.item.thinking_level":"Thinking Level","tui.settings.item.show_thinking":"Show Thinking","tui.settings.item.verbose":"Verbose Level","tui.settings.item.verbose_level":"Verbose Mode","tui.settings.item.message_limit":"Message Display Limit","tui.settings.item.tools_expanded":"Tools Expanded","tui.settings.item.local_shell_permission":"Local Shell Permission","tui.settings.item.context_mode":"Context Mode","tui.settings.desc.model":"Set AI model to use","tui.settings.desc.agent":"Set current Agent","tui.settings.desc.thinking":"Set thinking mode level","tui.settings.desc.thinking_level":"Set thinking level passed to Agent (off/low/medium/high)","tui.settings.desc.show_thinking":"Whether to show thinking content in TUI (true/false)","tui.settings.desc.verbose":"Control verbose mode display (on/off)","tui.settings.desc.verbose_level":"Control verbose mode display (on/off)","tui.settings.desc.message_limit":"Set message display limit (25/50/100)","tui.settings.desc.tools_expanded":"Whether to expand tool details","tui.settings.desc.local_shell_permission":"Control local shell command execution permission (ask/on/off)","tui.settings.desc.context_mode":"Set context mode (general/coder)","tui.settings.value.not_set":"Not Set","tui.settings.value.default":"Default","tui.settings.value.enabled":"Enabled","tui.settings.value.disabled":"Disabled","tui.clear.begin":"Clear chat history begin","tui.clear.confirm":"Confirm to clear chat history","tui.clear.success":"Clear chat history success","tui.clear.error":"Clear chat history failed","tui.clear.cancel":"Cancel clear operation","tui.dialog.confirm":"Confirm","tui.dialog.cancel":"Cancel","tui.dialog.clear.message":"Are you sure you want to clear all chat history? This operation cannot be undone.","tui.abort.begin":"Aborting session...","tui.abort.error":"Failed to abort session: {{error}}","tui.abort.timeout":"Abort timeout","tui.abort.success":"Session aborted","tui.abort.noactive":"No active session to abort","tui.tool.expand":"Expand tool details","tui.tool.collapse":"Collapse tool details","tui.tool.notfound":"Tool does not exist","tui.tool.toggle":"Toggle tool expand/collapse state","tui.handler.send.sending":"Sending message...","tui.handler.send.waiting":"Waiting for response...","tui.handler.send.error":"Send failed: {{error}}","tui.handler.send.error_status":"Send failed","session.command.description":"Session management command","session.command.list.description":"List all sessions","session.command.list.option.max_count":"Maximum number of sessions to display","session.command.list.option.format":"Output format (table or json)","session.command.info.description":"Display session details","session.command.delete.description":"Delete session","session.table.header.id":"ID","session.table.header.title":"Title","session.table.header.created":"Created","session.table.header.updated":"Updated","session.info.heading":"Session Information","session.untitled":"(Untitled)","session.list.success":"Found {{count}} sessions","session.list.empty":"No sessions found","session.list.error":"Failed to get session list","session.get.success":"Get session successful","session.get.error":"Get session failed","session.get.not_found":"Session does not exist: {{sessionId}}","session.create.success":"Session created successfully","session.create.error":"Failed to create session","session.fork.success":"Session forked successfully","session.fork.error":"Failed to fork session","session.delete.success":"Session deleted successfully","session.delete.error":"Failed to delete session","session.field.id":"ID","session.field.title":"Title","session.field.created":"Created","session.field.updated":"Updated","session.field.directory":"Directory","session.field.project_id":"Project ID","model.list.success":"Found {{count}} models","model.list.empty":"No models found","model.list.error":"Failed to get model list","model.refresh.begin":"Refreshing model cache...","model.refresh.success":"Model cache refreshed successfully","model.refresh.error":"Failed to refresh model cache","model.parse.error":"Invalid model format: {{model}}","provider.list.success":"Found {{count}} Providers","provider.list.empty":"No providers found","provider.list.error":"Failed to get provider list","provider.not_found":"Provider does not exist: {{providerId}}","message.send.start":"Start sending message","message.send.success":"Message sent successfully","message.send.error":"Failed to send message","message.command.start":"Start executing command","message.command.success":"Command executed successfully","message.command.error":"Failed to execute command","message.stream.start":"Start streaming message","message.stream.subscribed":"Subscribed to message stream","message.stream.error":"Streaming message failed","message.abort.start":"Aborting message","message.abort.success":"Message aborted","message.history.start":"Getting message history","message.history.success":"Message history retrieved successfully","message.history.error":"Failed to retrieve message history","tool.execute.start":"Start executing tool","tool.execute.success":"Tool executed successfully","tool.execute.error":"Tool execution failed","tool.list.start":"Getting tool list","tool.list.success":"Tool list retrieved successfully","tool.list.error":"Failed to retrieve tool list","acp.command.description":"Start ACP Agent communication adapter service","acp.option.directory":"Specify working directory","acp.option.channel":"Specify channel type (stdio/http/websocket)","acp.option.port":"Specify service port","acp.option.hostname":"Specify host address","acp.option.timeout":"Specify request timeout","acp.option.debug":"Enable debug mode","acp.help.examples":"Examples:","acp.help.example.default":"Start with default configuration","acp.help.example.http":"Use HTTP channel","acp.help.example.port":"Set port to 8080","acp.help.example.hostname":"Bind to all network interfaces","acp.help.example.debug":"Enable debug mode","acp.help.env":"Environment Variables:","acp.help.env.channel":"Override channel type (stdio/http/websocket)","acp.help.env.port":"Override service port","acp.help.env.hostname":"Override host address","acp.help.env.timeout":"Override request timeout","acp.help.env.enabled":"Override enabled status","acp.disabled":"ACP server is disabled. Set enabled: true in config to enable it.","acp.shutdown.received":"Received {{signal}}, shutting down...","acp.shutdown.completed":"ACP server cleanup completed","tui.validation.new_and_session_id_conflict":"--new and --session-id options cannot be used together","tui.validation.fork_requires_session":"--fork option must be used with --continue or --session-id","tui.validation.fork_cannot_use_with_new":"--fork option cannot be used with --new","tui.cleanup.begin":"Cleaning up resources...","tui.cleanup.complete":"Resource cleanup completed","tui.exit.resume_hint":"Resume current session: easbot tui --session-id {{sessionId}}","tui.config.display":"TUI startup configuration","tui.dev.notice":`
15
15
  Note: TUI functionality is under development, currently only displays configuration information.`,"tui.dev.modules":"Full implementation requires integration of the following modules:","tui.dev.module.global":" - Global.init()","tui.dev.module.log":" - Log.init()","tui.dev.module.executor":" - AgentExecutor","tui.dev.module.render":" - @easbot/tui renderTui()","agent.command.description":"Agent management command","agent.command.list.description":"List all available Agents","agent.table.header.name":"Name","agent.table.header.mode":"Mode","agent.table.header.native":"Native","agent.info.heading":"Agent Information","agent.command.info.description":"Display Agent detailed information","agent.command.create.description":"Create new Agent","agent.command.create.option.name":"Agent name","agent.command.create.option.mode":"Agent mode (subagent, primary, all)","agent.command.create.option.permission":"Agent permission configuration (JSON format)","agent.list.header":"Available Agents:","agent.list.primary":"Primary Agent:","agent.list.subagent":"Subagent:","agent.list.all":"General Agent (All):","agent.list.hint":'Tip: Use "easbot agent info <agent-id>" to view detailed information',"agent.list.empty":"No agents available","agent.list.success":"Found {{count}} agents","agent.list.error":"Failed to get agent list","agent.info.header":"Agent Information: {{agentId}}","agent.info.not_found":'Agent "{{agentId}}" not found',"agent.info.invalid_format":'Agent ID "{{agentId}}" format is invalid',"agent.info.format_hint":"Tip: Agent ID should only contain letters, numbers, hyphens and underscores","agent.info.list_hint":'Tip: Use "easbot agent list" to view all available agents',"agent.info.available":"Available Agents:","agent.info.error":"Failed to get agent information: {{error}}","agent.info.field.name":"Name","agent.info.field.mode":"Mode","agent.info.field.type":"Type","agent.info.field.description":"Description","agent.info.field.model":"Model","agent.info.field.temperature":"Temperature","agent.info.field.top_p":"Top P","agent.info.field.steps":"Steps","agent.info.field.color":"Color","agent.info.type.native":"Native","agent.info.type.custom":"Custom","agent.info.permissions":"Permission Configuration:","agent.info.permissions_count":"Total {{count}} permission rules","agent.create.begin":"Creating Agent...","agent.create.success":'Agent "{{name}}" created successfully',"agent.create.error":"Failed to create agent: {{error}}","agent.create.validation.name":"Agent name format is invalid","agent.create.validation.mode":"Agent mode is invalid (must be subagent, primary or all)","agent.get.success":"Agent information retrieved successfully","agent.get.not_found":'Agent "{{agentId}}" not found',"agent.get.error":"Failed to get agent information","mcp.command.description":"MCP server management command","mcp.command.list.description":"List all MCP servers","mcp.command.add.description":"Add MCP server","mcp.command.remove.description":"Remove MCP server","mcp.command.info.description":"Display MCP server detailed information","mcp.command.add.option.name":"MCP server name","mcp.command.add.option.command":"MCP server startup command","mcp.command.add.option.args":"MCP server startup arguments (JSON array format)","mcp.command.add.option.env":"MCP server environment variables (JSON object format)","mcp.list.begin":"Getting MCP server list...","mcp.list.success":"Found {{count}} MCP servers","mcp.list.empty":"No MCP servers configured","mcp.list.error":"Failed to get MCP server list","mcp.add.begin":"Adding MCP server...","mcp.add.success":'MCP server "{{name}}" added successfully',"mcp.add.error":"Failed to add MCP server: {{error}}","mcp.add.error.args_invalid":"Invalid arguments format, should be JSON array","mcp.add.error.env_invalid":"Invalid environment format, should be JSON object","mcp.remove.begin":"Removing MCP server...","mcp.remove.success":'MCP server "{{name}}" removed successfully',"mcp.remove.error":"Failed to remove MCP server: {{error}}","mcp.info.begin":"Getting MCP server information...","mcp.info.heading":"MCP Server Information","mcp.info.success":"MCP server information retrieved successfully","mcp.info.notfound":'MCP server "{{name}}" does not exist',"mcp.info.error":"Failed to get MCP server information: {{error}}","mcp.table.header.name":"Name","mcp.table.header.command":"Command","mcp.table.header.disabled":"Disabled","mcp.info.field.name":"Name","mcp.info.field.type":"Type","mcp.info.field.command":"Command","mcp.info.field.enabled":"Enabled","mcp.info.field.environment":"Environment","mcp.info.field.url":"URL","mcp.info.field.headers":"Headers","run.command.description":"Run single conversation","run.option.command":"Command to run, using message as argument","run.option.continue":"Continue from last session","run.option.session":"Specify session ID","run.option.fork":"Fork session (requires --continue or --session)","run.option.share":"Share session","run.option.model":"Specify model (format: provider/model)","run.option.agent":"Specify Agent","run.option.format":"Output format: default (formatted) or json (raw JSON events)","run.option.file":"File to attach to message","run.option.title":"Session title (if not provided, uses truncated prompt)","run.option.variant":"Model variant (provider-specific inference effort, e.g.: high, max, minimal)","run.option.thinking":"Display thinking blocks","run.error.file_not_found":"File not found: {{file}}","run.error.no_message":"Must provide message or command","run.error.fork_requires_session":"--fork requires --continue or --session","run.error.session_not_found":"Session not found","run.warning.agent_not_found":'Agent "{{agent}}" not found. Falling back to default Agent',"run.warning.session_cleanup_failed":"Warning: Session cleanup failed ({{sessionId}})","run.permission.request":"Permission Request: {{permission}}","run.permission.targets":"Targets: {{targets}}","run.permission.select_action":"Select Action:","run.permission.once":"Allow Once","run.permission.always":"Always Allow","run.permission.reject":"Reject","run.permission.input_prompt":"Please enter (y/a/n)","run.permission.allowed":"Allowed once","run.permission.always_allowed":"Always allowed","run.permission.rejected":"Rejected","run.question.agent_asking":"Agent Asking:","run.question.header":"Question {{current}}/{{total}}:","run.question.title":"Title: {{title}}","run.question.question":"Question: {{question}}","run.question.options":"Options:","run.question.custom_input":"Custom Input","run.question.input_prompt":"Please enter option number or custom answer","run.question.input_prompt_multiple":"Please enter option number (multiple separated by comma, e.g. 1,3) or custom answer","run.question.custom_input_prompt":"Please enter custom answer","run.question.answered":"Answered: {{answer}}","run.question.hint.custom_enabled":"Tip: Enter option number or input custom text","run.question.hint.custom_enabled_multiple":"Tip: Enter option number (multiple separated by comma, e.g. 1,3) or input custom text","run.question.hint.custom_disabled":"Tip: Only valid option numbers can be entered","run.question.hint.custom_disabled_multiple":"Tip: Only valid option numbers can be entered (multiple separated by comma, e.g. 1,3)","run.question.invalid_input":"\u2717 Invalid input, please re-enter","run.question.invalid_option":"\u2717 Invalid input, only valid option numbers can be entered","generate.command.description":"Generate OpenAPI specification","generate.error.failed":"Failed to generate OpenAPI specification: {{error}}","cli.error.execution_failed":"CLI execution failed","cli.error.fatal":"Fatal error","cli.error.message":"Error: {{message}}","cli.error.detail":"Error detail","error.directory.hint":"Tip: Please check if the directory path is correct, or if you have access permission.","error.validation.hint":'Tip: Please check if the command line arguments are correct. Run "easbot tui --help" for help.',"error.port.hint":"Tip: Port may be in use, please try another port or close the program using that port.","error.connection.hint":"Tip: Unable to connect to server, please check network settings or server status.","error.initialization.hint":"Tip: Initialization failed, please check configuration file or environment variables.","error.render.hint":"Tip: TUI rendering failed, please check if terminal supports TUI display.","error.original":`
16
16
  Original error:`,"error.unknown":`
17
17
  Unknown error:`,"error.stack":`
@@ -1 +1 @@
1
- import {Sa,ub}from'./chunk-XMIQEMED.mjs';import {a}from'./chunk-LFYBZHOI.mjs';var e=a.create({service:"cli-bootstrap"});async function f(o,i){let r=o||process.cwd();try{let{Global:t}=await import('./global-5WFCDQ45.mjs');await t.init();}catch(t){throw e.error("Failed to initialize Global",{error:t instanceof Error?t.message:String(t)}),new Error(`Global initialization failed: ${t instanceof Error?t.message:String(t)}`)}try{return await Sa.provide({directory:r,init:ub,fn:async()=>await i()})}catch(t){throw e.error("Failed to execute in Instance context",{directory:r,error:t instanceof Error?t.message:String(t)}),t}}async function g(o={}){let i=o.directory??process.cwd();try{let{Global:r}=await import('./global-5WFCDQ45.mjs');await r.init();}catch(r){throw e.error("Failed to initialize Global",{error:r instanceof Error?r.message:String(r)}),new Error(`Global initialization failed: ${r instanceof Error?r.message:String(r)}`)}try{return await Sa.provide({directory:i,init:ub,fn:async()=>{let{buildProgram:r}=await import('./build-program-2AR3LYQJ.mjs');return await r(o)}})}catch(r){throw e.error("Failed to build program in Instance context",{directory:i,error:r instanceof Error?r.message:String(r)}),r}}export{f as a,g as b};
1
+ import {Sa,ub}from'./chunk-PT5TKWFJ.mjs';import {a}from'./chunk-LFYBZHOI.mjs';var e=a.create({service:"cli-bootstrap"});async function f(o,i){let r=o||process.cwd();try{let{Global:t}=await import('./global-HVRSDT3G.mjs');await t.init();}catch(t){throw e.error("Failed to initialize Global",{error:t instanceof Error?t.message:String(t)}),new Error(`Global initialization failed: ${t instanceof Error?t.message:String(t)}`)}try{return await Sa.provide({directory:r,init:ub,fn:async()=>await i()})}catch(t){throw e.error("Failed to execute in Instance context",{directory:r,error:t instanceof Error?t.message:String(t)}),t}}async function g(o={}){let i=o.directory??process.cwd();try{let{Global:r}=await import('./global-HVRSDT3G.mjs');await r.init();}catch(r){throw e.error("Failed to initialize Global",{error:r instanceof Error?r.message:String(r)}),new Error(`Global initialization failed: ${r instanceof Error?r.message:String(r)}`)}try{return await Sa.provide({directory:i,init:ub,fn:async()=>{let{buildProgram:r}=await import('./build-program-LX6IAAHW.mjs');return await r(o)}})}catch(r){throw e.error("Failed to build program in Instance context",{directory:i,error:r instanceof Error?r.message:String(r)}),r}}export{f as a,g as b};
@@ -1 +1 @@
1
- export{a as CommandMetadataSchema,c as createCommandFromMarkdown,f as define,b as loadCommandFromFile,e as replaceTemplateVars,d as scanCommands}from'./chunk-J6VEDKPT.mjs';import'./chunk-X6ISXWBN.mjs';
1
+ export{a as CommandMetadataSchema,c as createCommandFromMarkdown,f as define,b as loadCommandFromFile,e as replaceTemplateVars,d as scanCommands}from'./chunk-HIPEPY4E.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -0,0 +1 @@
1
+ export{O as Compaction,o as CompactionCache,n as DEFAULT_CACHE_CONFIG,p as createCompactionCache,q as subscribeCacheEvents}from'./chunk-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
- export{jb as Agent,hb as Command,tb as Config,sb as ConfigDirectoryTypoError,pb as Info,v as InvalidError,u as JsonError,kb as Keybinds,nb as Layout,cb as Mcp,$a as McpLocal,ab as McpOAuth,bb as McpRemote,_a as ModelId,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,D as deduplicatePlugins,H as directories,G as get,V as getACPClientsConfig,U as getACPServerConfig,Y as getAcpAgentName,W as getAcpAgentRuntimeConfig,X as getAcpModelConfig,Ma as getFileCacheConfig,J as getGlobal,C as getPluginName,Za as getSubAgentConfig,Na as getTokenEstimationConfig,I as global,t as installDependencies,L as isAutoCompactEnabled,N as isBackupEnabled,M as isPruneEnabled,x as load,T as loadACPConfig,z as loadAgent,ea as loadCodebase,A as loadCommand,Oa as loadContextConfig,w as loadFile,ga as loadKnowledge,fa as loadMemory,da as loadNote,B as loadPlugin,Ya as loadSubAgentConfig,r as mergeConfigConcatArrays,s as needsInstall,y as parseConfig,E as state,qb as update,rb as updateGlobal,F as waitForDependencies}from'./chunk-XMIQEMED.mjs';import'./chunk-WGJIT5HU.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-3472MC45.mjs';export{h as getAgentRegistryConfig,o as getAgentSyncConfig,m as getAuthConfig,d as getChannelConfig,e as getConnectionPoolConfig,n as getGatewayClusterConfig,c as getGatewayServerConfig,l as getHTTPSConfig,f as getMessageQueueConfig,i as getSessionConfig,b as loadGatewayConfig}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{jb as Agent,hb as Command,tb as Config,sb as ConfigDirectoryTypoError,pb as Info,v as InvalidError,u as JsonError,kb as Keybinds,nb as Layout,cb as Mcp,$a as McpLocal,ab as McpOAuth,bb as McpRemote,_a as ModelId,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,D as deduplicatePlugins,H as directories,G as get,V as getACPClientsConfig,U as getACPServerConfig,Y as getAcpAgentName,W as getAcpAgentRuntimeConfig,X as getAcpModelConfig,Ma as getFileCacheConfig,J as getGlobal,C as getPluginName,Za as getSubAgentConfig,Na as getTokenEstimationConfig,I as global,t as installDependencies,L as isAutoCompactEnabled,N as isBackupEnabled,M as isPruneEnabled,x as load,T as loadACPConfig,z as loadAgent,ea as loadCodebase,A as loadCommand,Oa as loadContextConfig,w as loadFile,ga as loadKnowledge,fa as loadMemory,da as loadNote,B as loadPlugin,Ya as loadSubAgentConfig,r as mergeConfigConcatArrays,s as needsInstall,y as parseConfig,E as state,qb as update,rb as updateGlobal,F as waitForDependencies}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';export{h as getAgentRegistryConfig,o as getAgentSyncConfig,m as getAuthConfig,d as getChannelConfig,e as getConnectionPoolConfig,n as getGatewayClusterConfig,c as getGatewayServerConfig,l as getHTTPSConfig,f as getMessageQueueConfig,i as getSessionConfig,b as loadGatewayConfig}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
- import {i}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-X6ISXWBN.mjs';import {SelectList}from'@easbot/tui';var x={selectedPrefix:e=>`\x1B[36m${e}\x1B[0m`,selectedText:e=>`\x1B[1;36m${e}\x1B[0m`,description:e=>`\x1B[90m${e}\x1B[0m`,scrollInfo:e=>`\x1B[90m${e}\x1B[0m`,noMatch:e=>`\x1B[90m${e}\x1B[0m`};function C(e){let{message:o,confirmText:c,cancelText:r,onConfirm:s,onCancel:i$1}=e,l=[{label:c||i("tui.dialog.confirm"),value:"confirm",description:o},{label:r||i("tui.dialog.cancel"),value:"cancel",description:""}],t=new SelectList(l,2,x);return t.onSelect=m=>{m.value==="confirm"?s():i$1();},t.onCancel=i$1,t}export{C as createConfirmDialog};
1
+ import {i}from'./chunk-XQ3LMV3K.mjs';import'./chunk-X6ISXWBN.mjs';import {SelectList}from'@easbot/tui';var x={selectedPrefix:e=>`\x1B[36m${e}\x1B[0m`,selectedText:e=>`\x1B[1;36m${e}\x1B[0m`,description:e=>`\x1B[90m${e}\x1B[0m`,scrollInfo:e=>`\x1B[90m${e}\x1B[0m`,noMatch:e=>`\x1B[90m${e}\x1B[0m`};function C(e){let{message:o,confirmText:c,cancelText:r,onConfirm:s,onCancel:i$1}=e,l=[{label:c||i("tui.dialog.confirm"),value:"confirm",description:o},{label:r||i("tui.dialog.cancel"),value:"cancel",description:""}],t=new SelectList(l,2,x);return t.onSelect=m=>{m.value==="confirm"?s():i$1();},t.onCancel=i$1,t}export{C as createConfirmDialog};
@@ -1,3 +1,3 @@
1
- import {a as a$1}from'./chunk-PEMUENKB.mjs';import {e}from'./chunk-M3K32WJV.mjs';import {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'./chunk-EB3OP6TL.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-2YNYVTYT.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-BDS2JWYG.mjs';import {c,d}from'./chunk-X6ISXWBN.mjs';import {PKG}from'@easbot/utils';var k=a.create({service:"debug.config"});function F(g,s){g.command("config").description(i("debug.config.command.describe")).action(async()=>{k.debug("Loading configuration");try{let r=await s.sdk.config.get();console.log(JSON.stringify(r.data,null,2));}catch(r){k.error("Failed to load configuration",{error:r instanceof Error?r.message:String(r)}),console.error(e(i("debug.config.error.load_failed",{vars:{error:r instanceof Error?r.message:String(r)}}))),process.exit(1);}});}var l=a.create({service:"debug.file"});function L(g,s){let n=g.command("file").description(i("debug.file.command.describe"));n.command("search <query>").description(i("debug.file.search.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{File:t}=await import('./file-G4WHJKUX.mjs');l.debug("Searching files",{query:r});try{let o=await t.search({query:r});console.log(o.join(`
2
- `));}catch(o){l.error("File search failed",{query:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.file.search.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});}),n.command("read <path>").description(i("debug.file.read.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{File:t}=await import('./file-G4WHJKUX.mjs');l.debug("Reading file",{path:r});try{let o=await t.read(r);console.log(JSON.stringify(o,null,2));}catch(o){l.error("File read failed",{path:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.file.read.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});}),n.command("status").description(i("debug.file.status.command.describe")).action(async()=>{await a$1(s.config.directory,async()=>{let{File:r}=await import('./file-G4WHJKUX.mjs');l.debug("Getting file status");try{let t=await r.status();console.log(JSON.stringify(t,null,2));}catch(t){l.error("File status failed",{error:t instanceof Error?t.message:String(t)}),console.error(e(i("debug.file.status.error",{vars:{error:t instanceof Error?t.message:String(t)}}))),process.exit(1);}});}),n.command("list <path>").description(i("debug.file.list.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{File:t}=await import('./file-G4WHJKUX.mjs');l.debug("Listing files",{path:r});try{let o=await t.list(r);console.log(JSON.stringify(o,null,2));}catch(o){l.error("File list failed",{path:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.file.list.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});}),n.command("tree [dir]").description(i("debug.file.tree.command.describe")).option("--limit <number>",i("debug.file.tree.option.limit.description")).action(async(r,t)=>{await a$1(s.config.directory,async()=>{let{Ripgrep:o}=await import('./ripgrep-U54LYBZO.mjs'),{Instance:p}=await import('./instance-YVRWMB6M.mjs');l.debug("Showing file tree",{dir:r});try{let i=await o.tree({cwd:r||p.directory,limit:t?.limit||200});console.log(JSON.stringify(i,null,2));}catch(i$1){l.error("File tree failed",{dir:r,error:i$1 instanceof Error?i$1.message:String(i$1)}),console.error(e(i("debug.file.tree.error",{vars:{error:i$1 instanceof Error?i$1.message:String(i$1)}}))),process.exit(1);}});});}var u=a.create({service:"debug.lsp"});function P(g,s){let n=g.command("lsp").description(i("debug.lsp.command.describe"));n.command("diagnostics <file>").description(i("debug.lsp.diagnostics.command.describe")).action(async r=>{await la(async()=>{let{LSP:t}=await import('./lsp-J7UR4JNX.mjs');u.debug("Getting diagnostics",{file:r});try{await t.touchFile(r,!0),await PKG.sleep(1e3);let o=await t.diagnostics();console.log(JSON.stringify(o,null,2));}catch(o){u.error("Failed to get diagnostics",{file:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.lsp.diagnostics.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}},"CLI_DEBUG_ISP",{directory:s.config.directory});}),n.command("symbols <query>").description(i("debug.lsp.symbols.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{LSP:t}=await import('./lsp-J7UR4JNX.mjs');u.debug("Searching workspace symbols",{query:r});try{var o=[];try{let d=c(o,a.Default.time("symbols"));let h=await t.workspaceSymbol(r);console.log(JSON.stringify(h,null,2));}catch(p){var i$1=p,S=!0;}finally{d(o,i$1,S);}}catch(d){u.error("Failed to search symbols",{query:r,error:d instanceof Error?d.message:String(d)}),console.error(e(i("debug.lsp.symbols.error",{vars:{error:d instanceof Error?d.message:String(d)}}))),process.exit(1);}});}),n.command("document-symbols <file>").description(i("debug.lsp.document_symbols.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{LSP:t}=await import('./lsp-J7UR4JNX.mjs');u.debug("Getting document symbols",{file:r});try{var o=[];try{let d=c(o,a.Default.time("document-symbols"));let h=await t.documentSymbol({file:r});console.log(JSON.stringify(h,null,2));}catch(p){var i$1=p,S=!0;}finally{d(o,i$1,S);}}catch(d){u.error("Failed to get document symbols",{file:r,error:d instanceof Error?d.message:String(d)}),console.error(e(i("debug.lsp.document_symbols.error",{vars:{error:d instanceof Error?d.message:String(d)}}))),process.exit(1);}});});}var y=a.create({service:"debug.ripgrep"});function x(g,s){let n=g.command("rg").description(i("debug.ripgrep.command.describe"));n.command("tree").description(i("debug.ripgrep.tree.command.describe")).option("--limit <number>",i("debug.ripgrep.tree.option.limit.description")).action(async(r,t)=>{await a$1(s.config.directory,async()=>{let{Ripgrep:o}=await import('./ripgrep-U54LYBZO.mjs'),{Instance:p}=await import('./instance-YVRWMB6M.mjs');y.debug("Showing file tree",{limit:t?.limit});try{let i=await o.tree({cwd:p.directory,limit:t?.limit});console.log(i);}catch(i$1){y.error("File tree failed",{error:i$1 instanceof Error?i$1.message:String(i$1)}),console.error(e(i("debug.ripgrep.tree.error",{vars:{error:i$1 instanceof Error?i$1.message:String(i$1)}}))),process.exit(1);}});}),n.command("files").description(i("debug.ripgrep.files.command.describe")).option("--query <string>",i("debug.ripgrep.files.option.query.description")).option("--glob <string>",i("debug.ripgrep.files.option.glob.description")).option("--limit <number>",i("debug.ripgrep.files.option.limit.description")).action(async(r,t)=>{await a$1(s.config.directory,async()=>{let{Ripgrep:o}=await import('./ripgrep-U54LYBZO.mjs'),{Instance:p}=await import('./instance-YVRWMB6M.mjs');y.debug("Listing files",{query:t?.query,glob:t?.glob,limit:t?.limit});try{let i=[];for await(let S of o.files({cwd:p.directory,glob:t?.glob?[t.glob]:void 0}))if(i.push(S),t?.limit&&i.length>=t.limit)break;console.log(i.join(`
3
- `));}catch(i$1){y.error("File listing failed",{error:i$1 instanceof Error?i$1.message:String(i$1)}),console.error(e(i("debug.ripgrep.files.error",{vars:{error:i$1 instanceof Error?i$1.message:String(i$1)}}))),process.exit(1);}});}),n.command("search <pattern>").description(i("debug.ripgrep.search.command.describe")).option("--glob <glob...>",i("debug.ripgrep.search.option.glob.description")).option("--limit <number>",i("debug.ripgrep.search.option.limit.description")).action(async(r,t)=>{await a$1(s.config.directory,async()=>{let{Ripgrep:o}=await import('./ripgrep-U54LYBZO.mjs'),{Instance:p}=await import('./instance-YVRWMB6M.mjs');y.debug("Searching files",{pattern:r,glob:t?.glob,limit:t?.limit});try{let i=await o.search({cwd:p.directory,pattern:r,glob:t?.glob,limit:t?.limit});console.log(JSON.stringify(i,null,2));}catch(i$1){y.error("Search failed",{pattern:r,error:i$1 instanceof Error?i$1.message:String(i$1)}),console.error(e(i("debug.ripgrep.search.error",{vars:{error:i$1 instanceof Error?i$1.message:String(i$1)}}))),process.exit(1);}});});}var R=a.create({service:"debug.scrap"});function O(g,s){g.command("scrap").description(i("debug.scrap.command.describe")).action(async()=>{R.debug("Listing projects");let r=await s.sdk.project.list();console.log(JSON.stringify(r.data,null,2));});}var J=a.create({service:"debug.skill"});function N(g,s){g.command("skill").description(i("debug.skill.command.describe")).action(async()=>{J.debug("Listing skills");try{let r=await s.sdk.app.skills();console.log(JSON.stringify(r.data,null,2));}catch(r){J.error("Failed to list skills",{error:r instanceof Error?r.message:String(r)}),console.error(e(i("debug.skill.error.list_failed",{vars:{error:r instanceof Error?r.message:String(r)}}))),process.exit(1);}});}var w=a.create({service:"debug.snapshot"});function _(g,s){let n=g.command("snapshot").description(i("debug.snapshot.command.describe"));n.command("track").description(i("debug.snapshot.track.command.describe")).action(async()=>{await a$1(s.config.directory,async()=>{let{Snapshot:r}=await import('./snapshot-YC3DAH7Q.mjs');w.debug("Tracking snapshot");try{let t=await r.track();console.log(t);}catch(t){w.error("Snapshot track failed",{error:t instanceof Error?t.message:String(t)}),console.error(e(i("debug.snapshot.track.error",{vars:{error:t instanceof Error?t.message:String(t)}}))),process.exit(1);}});}),n.command("patch <hash>").description(i("debug.snapshot.patch.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{Snapshot:t}=await import('./snapshot-YC3DAH7Q.mjs');w.debug("Getting snapshot patch",{hash:r});try{let o=await t.patch(r);console.log(o);}catch(o){w.error("Snapshot patch failed",{hash:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.snapshot.patch.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});}),n.command("diff <hash>").description(i("debug.snapshot.diff.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{Snapshot:t}=await import('./snapshot-YC3DAH7Q.mjs');w.debug("Getting snapshot diff",{hash:r});try{let o=await t.diff(r);console.log(o);}catch(o){w.error("Snapshot diff failed",{hash:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.snapshot.diff.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});});}a.create({service:"debug"});function Gr(g,s){let n=g.command("debug").description(i("debug.command.description"));F(n,s),L(n,s),P(n,s),x(n,s),O(n,s),N(n,s),_(n,s),n.command("agent <name>").description(i("debug.agent.command.describe")).option("--tool <tool-id>",i("debug.agent.option.tool.description")).option("--params <json>",i("debug.agent.option.params.description")).action(async(r,t)=>{let{registerAgentCommand:o}=await import('./agent-VUPXBEWR.mjs');o(s,r,t);}),n.command("paths").description(i("debug.paths.command.describe")).action(async()=>{let{Global:r}=await import('./global-5WFCDQ45.mjs');for(let[t,o]of Object.entries(r.Path))console.log(`${t.padEnd(10)}${o}`);}),n.command("wait").description(i("debug.wait.command.describe")).action(async()=>{await a$1(s.config.directory,async()=>{await new Promise(r=>setTimeout(r,1e3*60*60*24));});});}export{Gr as registerDebugCommands};
1
+ import {a as a$1}from'./chunk-ZH674M7Q.mjs';import {e}from'./chunk-M3K32WJV.mjs';import {la}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 {c,d}from'./chunk-X6ISXWBN.mjs';import {PKG}from'@easbot/utils';var k=a.create({service:"debug.config"});function F(g,s){g.command("config").description(i("debug.config.command.describe")).action(async()=>{k.debug("Loading configuration");try{let r=await s.sdk.config.get();console.log(JSON.stringify(r.data,null,2));}catch(r){k.error("Failed to load configuration",{error:r instanceof Error?r.message:String(r)}),console.error(e(i("debug.config.error.load_failed",{vars:{error:r instanceof Error?r.message:String(r)}}))),process.exit(1);}});}var l=a.create({service:"debug.file"});function L(g,s){let n=g.command("file").description(i("debug.file.command.describe"));n.command("search <query>").description(i("debug.file.search.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{File:t}=await import('./file-P2YWB5Q7.mjs');l.debug("Searching files",{query:r});try{let o=await t.search({query:r});console.log(o.join(`
2
+ `));}catch(o){l.error("File search failed",{query:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.file.search.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});}),n.command("read <path>").description(i("debug.file.read.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{File:t}=await import('./file-P2YWB5Q7.mjs');l.debug("Reading file",{path:r});try{let o=await t.read(r);console.log(JSON.stringify(o,null,2));}catch(o){l.error("File read failed",{path:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.file.read.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});}),n.command("status").description(i("debug.file.status.command.describe")).action(async()=>{await a$1(s.config.directory,async()=>{let{File:r}=await import('./file-P2YWB5Q7.mjs');l.debug("Getting file status");try{let t=await r.status();console.log(JSON.stringify(t,null,2));}catch(t){l.error("File status failed",{error:t instanceof Error?t.message:String(t)}),console.error(e(i("debug.file.status.error",{vars:{error:t instanceof Error?t.message:String(t)}}))),process.exit(1);}});}),n.command("list <path>").description(i("debug.file.list.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{File:t}=await import('./file-P2YWB5Q7.mjs');l.debug("Listing files",{path:r});try{let o=await t.list(r);console.log(JSON.stringify(o,null,2));}catch(o){l.error("File list failed",{path:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.file.list.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});}),n.command("tree [dir]").description(i("debug.file.tree.command.describe")).option("--limit <number>",i("debug.file.tree.option.limit.description")).action(async(r,t)=>{await a$1(s.config.directory,async()=>{let{Ripgrep:o}=await import('./ripgrep-TBPFM3BV.mjs'),{Instance:p}=await import('./instance-5OB47GH5.mjs');l.debug("Showing file tree",{dir:r});try{let i=await o.tree({cwd:r||p.directory,limit:t?.limit||200});console.log(JSON.stringify(i,null,2));}catch(i$1){l.error("File tree failed",{dir:r,error:i$1 instanceof Error?i$1.message:String(i$1)}),console.error(e(i("debug.file.tree.error",{vars:{error:i$1 instanceof Error?i$1.message:String(i$1)}}))),process.exit(1);}});});}var u=a.create({service:"debug.lsp"});function P(g,s){let n=g.command("lsp").description(i("debug.lsp.command.describe"));n.command("diagnostics <file>").description(i("debug.lsp.diagnostics.command.describe")).action(async r=>{await la(async()=>{let{LSP:t}=await import('./lsp-QWPGRLGX.mjs');u.debug("Getting diagnostics",{file:r});try{await t.touchFile(r,!0),await PKG.sleep(1e3);let o=await t.diagnostics();console.log(JSON.stringify(o,null,2));}catch(o){u.error("Failed to get diagnostics",{file:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.lsp.diagnostics.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}},"CLI_DEBUG_ISP",{directory:s.config.directory});}),n.command("symbols <query>").description(i("debug.lsp.symbols.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{LSP:t}=await import('./lsp-QWPGRLGX.mjs');u.debug("Searching workspace symbols",{query:r});try{var o=[];try{let d=c(o,a.Default.time("symbols"));let h=await t.workspaceSymbol(r);console.log(JSON.stringify(h,null,2));}catch(p){var i$1=p,S=!0;}finally{d(o,i$1,S);}}catch(d){u.error("Failed to search symbols",{query:r,error:d instanceof Error?d.message:String(d)}),console.error(e(i("debug.lsp.symbols.error",{vars:{error:d instanceof Error?d.message:String(d)}}))),process.exit(1);}});}),n.command("document-symbols <file>").description(i("debug.lsp.document_symbols.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{LSP:t}=await import('./lsp-QWPGRLGX.mjs');u.debug("Getting document symbols",{file:r});try{var o=[];try{let d=c(o,a.Default.time("document-symbols"));let h=await t.documentSymbol({file:r});console.log(JSON.stringify(h,null,2));}catch(p){var i$1=p,S=!0;}finally{d(o,i$1,S);}}catch(d){u.error("Failed to get document symbols",{file:r,error:d instanceof Error?d.message:String(d)}),console.error(e(i("debug.lsp.document_symbols.error",{vars:{error:d instanceof Error?d.message:String(d)}}))),process.exit(1);}});});}var y=a.create({service:"debug.ripgrep"});function x(g,s){let n=g.command("rg").description(i("debug.ripgrep.command.describe"));n.command("tree").description(i("debug.ripgrep.tree.command.describe")).option("--limit <number>",i("debug.ripgrep.tree.option.limit.description")).action(async(r,t)=>{await a$1(s.config.directory,async()=>{let{Ripgrep:o}=await import('./ripgrep-TBPFM3BV.mjs'),{Instance:p}=await import('./instance-5OB47GH5.mjs');y.debug("Showing file tree",{limit:t?.limit});try{let i=await o.tree({cwd:p.directory,limit:t?.limit});console.log(i);}catch(i$1){y.error("File tree failed",{error:i$1 instanceof Error?i$1.message:String(i$1)}),console.error(e(i("debug.ripgrep.tree.error",{vars:{error:i$1 instanceof Error?i$1.message:String(i$1)}}))),process.exit(1);}});}),n.command("files").description(i("debug.ripgrep.files.command.describe")).option("--query <string>",i("debug.ripgrep.files.option.query.description")).option("--glob <string>",i("debug.ripgrep.files.option.glob.description")).option("--limit <number>",i("debug.ripgrep.files.option.limit.description")).action(async(r,t)=>{await a$1(s.config.directory,async()=>{let{Ripgrep:o}=await import('./ripgrep-TBPFM3BV.mjs'),{Instance:p}=await import('./instance-5OB47GH5.mjs');y.debug("Listing files",{query:t?.query,glob:t?.glob,limit:t?.limit});try{let i=[];for await(let S of o.files({cwd:p.directory,glob:t?.glob?[t.glob]:void 0}))if(i.push(S),t?.limit&&i.length>=t.limit)break;console.log(i.join(`
3
+ `));}catch(i$1){y.error("File listing failed",{error:i$1 instanceof Error?i$1.message:String(i$1)}),console.error(e(i("debug.ripgrep.files.error",{vars:{error:i$1 instanceof Error?i$1.message:String(i$1)}}))),process.exit(1);}});}),n.command("search <pattern>").description(i("debug.ripgrep.search.command.describe")).option("--glob <glob...>",i("debug.ripgrep.search.option.glob.description")).option("--limit <number>",i("debug.ripgrep.search.option.limit.description")).action(async(r,t)=>{await a$1(s.config.directory,async()=>{let{Ripgrep:o}=await import('./ripgrep-TBPFM3BV.mjs'),{Instance:p}=await import('./instance-5OB47GH5.mjs');y.debug("Searching files",{pattern:r,glob:t?.glob,limit:t?.limit});try{let i=await o.search({cwd:p.directory,pattern:r,glob:t?.glob,limit:t?.limit});console.log(JSON.stringify(i,null,2));}catch(i$1){y.error("Search failed",{pattern:r,error:i$1 instanceof Error?i$1.message:String(i$1)}),console.error(e(i("debug.ripgrep.search.error",{vars:{error:i$1 instanceof Error?i$1.message:String(i$1)}}))),process.exit(1);}});});}var R=a.create({service:"debug.scrap"});function O(g,s){g.command("scrap").description(i("debug.scrap.command.describe")).action(async()=>{R.debug("Listing projects");let r=await s.sdk.project.list();console.log(JSON.stringify(r.data,null,2));});}var J=a.create({service:"debug.skill"});function N(g,s){g.command("skill").description(i("debug.skill.command.describe")).action(async()=>{J.debug("Listing skills");try{let r=await s.sdk.app.skills();console.log(JSON.stringify(r.data,null,2));}catch(r){J.error("Failed to list skills",{error:r instanceof Error?r.message:String(r)}),console.error(e(i("debug.skill.error.list_failed",{vars:{error:r instanceof Error?r.message:String(r)}}))),process.exit(1);}});}var w=a.create({service:"debug.snapshot"});function _(g,s){let n=g.command("snapshot").description(i("debug.snapshot.command.describe"));n.command("track").description(i("debug.snapshot.track.command.describe")).action(async()=>{await a$1(s.config.directory,async()=>{let{Snapshot:r}=await import('./snapshot-VO64Z4KV.mjs');w.debug("Tracking snapshot");try{let t=await r.track();console.log(t);}catch(t){w.error("Snapshot track failed",{error:t instanceof Error?t.message:String(t)}),console.error(e(i("debug.snapshot.track.error",{vars:{error:t instanceof Error?t.message:String(t)}}))),process.exit(1);}});}),n.command("patch <hash>").description(i("debug.snapshot.patch.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{Snapshot:t}=await import('./snapshot-VO64Z4KV.mjs');w.debug("Getting snapshot patch",{hash:r});try{let o=await t.patch(r);console.log(o);}catch(o){w.error("Snapshot patch failed",{hash:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.snapshot.patch.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});}),n.command("diff <hash>").description(i("debug.snapshot.diff.command.describe")).action(async r=>{await a$1(s.config.directory,async()=>{let{Snapshot:t}=await import('./snapshot-VO64Z4KV.mjs');w.debug("Getting snapshot diff",{hash:r});try{let o=await t.diff(r);console.log(o);}catch(o){w.error("Snapshot diff failed",{hash:r,error:o instanceof Error?o.message:String(o)}),console.error(e(i("debug.snapshot.diff.error",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}});});}a.create({service:"debug"});function Gr(g,s){let n=g.command("debug").description(i("debug.command.description"));F(n,s),L(n,s),P(n,s),x(n,s),O(n,s),N(n,s),_(n,s),n.command("agent <name>").description(i("debug.agent.command.describe")).option("--tool <tool-id>",i("debug.agent.option.tool.description")).option("--params <json>",i("debug.agent.option.params.description")).action(async(r,t)=>{let{registerAgentCommand:o}=await import('./agent-WSRT77Z6.mjs');o(s,r,t);}),n.command("paths").description(i("debug.paths.command.describe")).action(async()=>{let{Global:r}=await import('./global-HVRSDT3G.mjs');for(let[t,o]of Object.entries(r.Path))console.log(`${t.padEnd(10)}${o}`);}),n.command("wait").description(i("debug.wait.command.describe")).action(async()=>{await a$1(s.config.directory,async()=>{await new Promise(r=>setTimeout(r,1e3*60*60*24));});});}export{Gr as registerDebugCommands};
@@ -1 +1 @@
1
- import {e,h}from'./chunk-M3K32WJV.mjs';import {i}from'./chunk-UNBJ6Y7L.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-X6ISXWBN.mjs';var n=a.create({service:"cli-command-export"});function S(c,i$1){c.command("export [sessionId]").description(i("export.command.description")).action(async o=>{n.debug("Exporting session",{sessionId:o});try{if(!o){let{data:e$1}=await i$1.sdk.session.list({});(!e$1||e$1.length===0)&&(console.error(e(i("export.error.no_sessions"))),process.exit(1));let a=[...e$1].sort((f,l)=>l.time.updated-f.time.updated)[0];a||(console.error(e(i("export.error.no_sessions"))),process.exit(1)),o=a.id,n.debug("Using latest session",{sessionId:o});}console.log(h(i("export.exporting",{vars:{sessionId:o}})));let{data:r}=await i$1.sdk.session.get({sessionId:o}),{data:d}=await i$1.sdk.session.messages({sessionId:o}),g={info:r,messages:(d??[]).map(e=>({info:e.info,parts:e.parts}))};console.log(JSON.stringify(g,null,2)),n.debug("Session exported successfully",{sessionId:o});}catch(r){n.error("Failed to export session",{sessionId:o,error:r instanceof Error?r.message:String(r)}),console.error(e(i("export.error.failed",{vars:{error:r instanceof Error?r.message:String(r)}}))),process.exit(1);}});}export{S as registerExportCommand};
1
+ import {e,h}from'./chunk-M3K32WJV.mjs';import {i}from'./chunk-XQ3LMV3K.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-X6ISXWBN.mjs';var n=a.create({service:"cli-command-export"});function S(c,i$1){c.command("export [sessionId]").description(i("export.command.description")).action(async o=>{n.debug("Exporting session",{sessionId:o});try{if(!o){let{data:e$1}=await i$1.sdk.session.list({});(!e$1||e$1.length===0)&&(console.error(e(i("export.error.no_sessions"))),process.exit(1));let a=[...e$1].sort((f,l)=>l.time.updated-f.time.updated)[0];a||(console.error(e(i("export.error.no_sessions"))),process.exit(1)),o=a.id,n.debug("Using latest session",{sessionId:o});}console.log(h(i("export.exporting",{vars:{sessionId:o}})));let{data:r}=await i$1.sdk.session.get({sessionId:o}),{data:d}=await i$1.sdk.session.messages({sessionId:o}),g={info:r,messages:(d??[]).map(e=>({info:e.info,parts:e.parts}))};console.log(JSON.stringify(g,null,2)),n.debug("Session exported successfully",{sessionId:o});}catch(r){n.error("Failed to export session",{sessionId:o,error:r instanceof Error?r.message:String(r)}),console.error(e(i("export.error.failed",{vars:{error:r instanceof Error?r.message:String(r)}}))),process.exit(1);}});}export{S as registerExportCommand};
@@ -0,0 +1 @@
1
+ export{ia as File}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,5 +1,5 @@
1
- import {a as a$1}from'./chunk-LAHYVX5K.mjs';import {a as a$2}from'./chunk-PEMUENKB.mjs';import'./chunk-VII7JKGB.mjs';import {g,f,e,d,h,k,a as a$3,c as c$1,b,i as i$1}from'./chunk-M3K32WJV.mjs';import {Aa,Sa,Ba,_}from'./chunk-XMIQEMED.mjs';import'./chunk-WGJIT5HU.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-3472MC45.mjs';import {c}from'./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 {a as a$4}from'./chunk-BDS2JWYG.mjs';import'./chunk-X6ISXWBN.mjs';import'commander';import {Gateway}from'@easbot/gateway';import {Identifier,getProxyConfig}from'@easbot/utils';var B=a.create({service:"local-agent"}),E;(a=>{function l(r){return r.map(o=>{if(o.type==="image"){let n="";return typeof o.image=="string"?n=o.image:o.image instanceof URL?n=o.image.toString():o.image instanceof Uint8Array&&(n=`data:${o.mime??"image/png"};base64,${Buffer.from(o.image).toString("base64")}`),{type:"file",mime:o.mime||"image/jpeg",url:n}}if(o.type==="file"&&"data"in o&&!("url"in o)){let n="";return typeof o.data=="string"?n=o.data:o.data instanceof URL?n=o.data.toString():o.data instanceof Uint8Array&&(n=`data:${o.mime??"application/octet-stream"};base64,${Buffer.from(o.data).toString("base64")}`),{...o,url:n}}return o})}async function i(r){let{source:o,title:n,agent:d,parts:c,model:m,system:p,tools:v}=r,H=Identifier.ascending("message"),R=c.find(y=>y.type==="command");if(R){let y=await Aa.command({sessionId:o,messageId:H,agent:d,model:m?`${m.providerId}/${m.modelId}`:void 0,arguments:R.arguments??"",command:R.command});return {title:n,output:y.output,metadata:{sessionId:o,source:o,agent:d,success:y.success,error:y.error,...y.metadata}}}let U=(await Aa.prompt({messageId:H,sessionId:o,system:p,tools:v,agent:d,model:m,parts:l(c)})).parts.findLast(y=>y.type==="text")?.text??"";return {title:n,output:U,metadata:{sessionId:o,source:o,agent:d}}}a.run=i;async function e(r,o){(async()=>{try{let n=await a.run(r);await o(n);}catch(n){B.error("LocalAgent.runAsync failed",{title:r.title,agent:r.agent,error:String(n)}),await o({title:r.title,output:`Error: ${n}`,metadata:{error:String(n)}});}})();}a.runAsync=e;})(E||(E={}));var s=a.create({service:"cli-command-gateway"});function O(l,i$2,e){let a=b();console.log(""),console.log(d(i("gateway.server.started"))),console.log(k(60)),e?.directory&&console.log(i$1(i("gateway.field.directory"),e.directory,15));let r={stopped:a$3.muted,starting:a$3.info,running:a$3.success,stopping:a$3.info,error:a$3.error},o=c$1(a,r[l]||a$3.muted,l.toUpperCase());if(console.log(i$1(i("gateway.field.status"),o,15)),l==="running"){let d=i$2.https?.enabled?"wss":"ws",c=i$2.path||"/",m=`${d}://${i$2.hostname}:${i$2.port}${c}`;console.log(i$1(i("gateway.field.ws_url"),m,15)),console.log(i$1(i("gateway.field.port"),String(i$2.port),15)),console.log(i$1(i("gateway.field.hostname"),i$2.hostname,15)),console.log(i$1(i("gateway.field.tls"),i$2.https?.enabled?i("common.enabled"):i("common.disabled"),15));}e?.debug!==void 0&&console.log(i$1(i("gateway.field.debug"),e.debug?c$1(a,a$3.success,i("common.enabled")):c$1(a,a$3.muted,i("common.disabled")),15));let n=getProxyConfig();if(n.enabled){let d=n.https||n.http||"configured";console.log(i$1(i("gateway.field.proxy"),d,15));}e?.error&&console.log(i$1(i("gateway.field.error"),e.error,15)),console.log(k(60)),console.log("");}function N(){let l=async i$1=>{s.debug(`Received ${i$1}, shutting down...`),console.log(`
2
- ${i("gateway.shutdown.received",{vars:{signal:i$1}})}`);try{await Gateway.stop(),s.debug("Gateway state destroyed"),console.log(d(i("gateway.shutdown.completed")));}catch(e){s.error("Error during shutdown",{error:e instanceof Error?e.message:String(e)});}process.exit(0);};process.on("SIGINT",()=>{l("SIGINT").catch(console.error);}),process.on("SIGTERM",()=>{l("SIGTERM").catch(console.error);});}async function Y(l,i){s.debug("createAgentAdapter: starting",{directory:l}),s.debug("createAgentAdapter: calling Instance.provide");let e=await Sa.provide({directory:l,fn:async()=>{s.debug("createAgentAdapter: Instance.provide fn called");let{Project:d}=await import('./project-53ZMRKRI.mjs');s.debug("createAgentAdapter: Project imported, calling fromDirectory");let{project:c,sandbox:m}=await d.fromDirectory(l);s.debug("createAgentAdapter: fromDirectory completed",{projectId:c.id});let p={directory:l,worktree:m,project:c};return s.debug("createAgentAdapter: fn returning",{directory:l,projectId:c.id}),p}});s.debug("createAgentAdapter: Instance.provide completed",{directory:e.directory,projectId:e.project.id});let a={Path:{home:a$4.Path.home,data:a$4.Path.data,cache:a$4.Path.cache,config:a$4.Path.config,state:a$4.Path.state,log:a$4.Path.log,bin:a$4.Path.bin}};s.debug("global paths injected",{data:a.Path.data,log:a.Path.log,home:a.Path.home});let r={directory:e.directory,worktree:e.worktree};return await _.state(),{subAgentRunner:{async run(d){try{let c={source:d.source||d.sessionId||"gateway",title:d.title||"Message from gateway",agent:d.agent||"gateway",parts:d.parts||[]},m=await _.run(c);return {success:!0,output:m.output,metadata:m.metadata}}catch(c){return s.error("SubAgent.run failed",{error:c instanceof Error?c.message:String(c)}),{success:false,error:c instanceof Error?c.message:String(c)}}}},localAgentRunner:{async run(d){try{let c=!d.source&&i.sdk,m=d.source||void 0;if(c){let v=await i.sdk.session.create({directory:i.config.directory});v.data&&(m=v.data.id,s.debug("LocalAgent.run: created new session",{sessionId:m}));}if(!m)throw new Error("No session ID available");let p=await E.run({...d,source:m});return s.debug("LocalAgent.run completed",{title:p.title,sessionId:m}),p}catch(c){throw s.error("LocalAgent.run failed",{error:c instanceof Error?c.message:String(c)}),c}}},hookRegistry:Ba,global:a,instance:r,sdk:i.sdk}}async function z(l,i$1,e$1){s.debug("Gateway start command executed",{options:i$1});try{let a=e$1.config.directory;s.debug("Working directory resolved",{directory:a});let r=a$1(a);if(!r.valid)throw s.error("Working directory validation failed",{directory:a,error:r.error}),new Error(`Invalid working directory: ${r.error}`);let o=r.normalizedPath;s.debug("Working directory validated",{validatedDirectory:o}),console.log(g(i("gateway.directory.resolved",{vars:{cwd:o}}))),await a$2(o,async()=>{let{initLog:n,setAgentAdapter:d}=await import('@easbot/gateway');await n({logDir:process.env.EASBOT_LOG_PATH??process.cwd(),print:e$1.config.print_logs??!1,dev:e$1.config.debug??!1,level:e$1.config.log_level??"INFO"});let m=await Y(o,e$1);s.debug("executeGatewayStart: createAgentAdapter completed"),d(m),s.debug("Agent adapter injected into Gateway");let p=await c();if(s.debug("Gateway server configuration",{port:p.port,hostname:p.hostname,path:p.path,tls:p.https?.enabled,enabled:p.enabled}),!p.enabled){s.warn("Gateway server is disabled by configuration"),console.log(f(i("gateway.disabled")));return}await Gateway.start(p),s.info("Gateway server started successfully"),O("running",p,{directory:o,debug:e$1.config.debug}),N(),await new Promise(()=>{});});}catch(a){s.error("Failed to start Gateway server",{error:a instanceof Error?a.message:String(a)}),console.error(e(i("gateway.error.start_failed",{vars:{error:a instanceof Error?a.message:String(a)}}))),process.exit(1);}}async function K(l,i$1){s.debug("Gateway stop command executed",{options:l});try{let e=i$1.config.directory;await a$2(e,async()=>{if(Gateway.getStatus()==="stopped"){console.log(g(i("gateway.status.already_stopped")));return}await Gateway.stop(),console.log(d(i("gateway.stopped")));let r=await c();O("stopped",r,{directory:e});});}catch(e$1){s.error("Failed to stop Gateway server",{error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i("gateway.error.stop_failed",{vars:{error:e$1 instanceof Error?e$1.message:String(e$1)}}))),process.exit(1);}}async function q(l,i$1,e$1){s.debug("Gateway restart command executed",{options:i$1});try{let a=e$1.config.directory;await a$2(a,async()=>{let r=await c();if(!r.enabled){s.warn("Gateway server is disabled by configuration"),console.log(f(i("gateway.disabled")));return}console.log(g(i("gateway.restarting"))),await Gateway.restart(r),console.log(d(i("gateway.restarted"))),O("running",r,{directory:a,debug:e$1.config.debug}),N(),await new Promise(()=>{});});}catch(a$1){s.error("Failed to restart Gateway server",{error:a$1 instanceof Error?a$1.message:String(a$1)}),console.error(e(i("gateway.error.restart_failed",{vars:{error:a$1 instanceof Error?a$1.message:String(a$1)}}))),await a.close(),process.exit(1);}}async function J(l,i$2){s.debug("Gateway status command executed",{options:l});try{let e=i$2.config.directory;await a$2(e,async()=>{let a=Gateway.getStatus(),o=(await Gateway.get())?.getStatus(),n=await c();console.log(""),console.log(h(i("gateway.status.title"))),console.log(k(60));let d={stopped:a$3.muted,starting:a$3.info,running:a$3.success,stopping:a$3.info,error:a$3.error},c$2=c$1(b(),d[a]||a$3.muted,a.toUpperCase());if(console.log(i$1(i("gateway.field.status"),c$2,15)),o){console.log(i$1(i("gateway.field.port"),String(o.port),15)),console.log(i$1(i("gateway.field.hostname"),o.hostname||n.hostname,15)),console.log(i$1(i("gateway.field.path"),n.path||"/",15)),console.log(i$1(i("gateway.field.connections"),String(o.connections||0),15));let m=n.https?.enabled?"wss":"ws",p=n.path||"/",v=`${m}://${o.hostname||n.hostname}:${o.port}${p}`;console.log(i$1(i("gateway.field.ws_url"),v,15));}console.log(k(60)),console.log("");});}catch(e$1){s.error("Failed to get Gateway status",{error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i("gateway.error.status_failed",{vars:{error:e$1 instanceof Error?e$1.message:String(e$1)}}))),process.exit(1);}}async function Q(l,i$2){s.debug("Gateway config show command executed",{options:l});try{let e=i$2.config.directory;await a$2(e,async()=>{let a=await Gateway.config();if(!a){console.log(f(i("gateway.config.not_found")));return}if(console.log(""),console.log(h(i("gateway.config.heading"))),console.log(k(60)),a.server&&(console.log(h(i("gateway.config.server"))),console.log(i$1(" enabled",String(a.server.enabled??!0),12)),console.log(i$1(" port",String(a.server.port??3001),12)),console.log(i$1(" hostname",a.server.hostname??"0.0.0.0",12)),console.log(i$1(" tls",String(a.server.https?.enabled??!1),12)),console.log(i$1(" cors",String(a.server.cors??!0),12))),a.channels){console.log(""),console.log(h(i("gateway.config.channels")));let r=Object.keys(a.channels);if(r.length===0)console.log(g(" "+i("gateway.config.no_channels")));else for(let o of r){let n=a.channels[o];n&&console.log(i$1(` ${o}`,n.enabled?i("common.enabled"):i("common.disabled"),12));}}a.connectionPool&&(console.log(""),console.log(h(i("gateway.config.connection_pool"))),console.log(i$1(" maxConnectionsPerChannel",String(a.connectionPool.maxConnectionsPerChannel??100),25)),console.log(i$1(" idleTimeout",`${a.connectionPool.idleTimeout??3e5}ms`,25)),console.log(i$1(" reuseStrategy",a.connectionPool.reuseStrategy??"lru",25))),a.agentRegistry&&(console.log(""),console.log(h(i("gateway.config.agent_registry"))),console.log(i$1(" heartbeatInterval",`${a.agentRegistry.heartbeatInterval??3e4}ms`,20)),console.log(i$1(" heartbeatTimeout",`${a.agentRegistry.heartbeatTimeout??9e4}ms`,20))),console.log(k(60)),console.log("");});}catch(e$1){s.error("Failed to show Gateway config",{error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i("gateway.error.config_failed",{vars:{error:e$1 instanceof Error?e$1.message:String(e$1)}}))),process.exit(1);}}function ve(l,i$1){let e=l.command("gateway").description(i("gateway.command.description")).helpOption("-h, --help",i("gateway.help.option")).addHelpText("after",`
1
+ import {a as a$1}from'./chunk-LAHYVX5K.mjs';import {a as a$2}from'./chunk-ZH674M7Q.mjs';import'./chunk-VII7JKGB.mjs';import {g,f,e,d,h,k,a as a$3,c as c$1,b,i as i$1}from'./chunk-M3K32WJV.mjs';import {Aa,Sa,Ba,_}from'./chunk-PT5TKWFJ.mjs';import'./chunk-4Q3JAZPL.mjs';import'./chunk-IJVW4VME.mjs';import'./chunk-CDDE7L65.mjs';import {c}from'./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 {a as a$4}from'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';import'commander';import {Gateway}from'@easbot/gateway';import {Identifier,getProxyConfig}from'@easbot/utils';var B=a.create({service:"local-agent"}),E;(a=>{function l(r){return r.map(o=>{if(o.type==="image"){let n="";return typeof o.image=="string"?n=o.image:o.image instanceof URL?n=o.image.toString():o.image instanceof Uint8Array&&(n=`data:${o.mime??"image/png"};base64,${Buffer.from(o.image).toString("base64")}`),{type:"file",mime:o.mime||"image/jpeg",url:n}}if(o.type==="file"&&"data"in o&&!("url"in o)){let n="";return typeof o.data=="string"?n=o.data:o.data instanceof URL?n=o.data.toString():o.data instanceof Uint8Array&&(n=`data:${o.mime??"application/octet-stream"};base64,${Buffer.from(o.data).toString("base64")}`),{...o,url:n}}return o})}async function i(r){let{source:o,title:n,agent:d,parts:c,model:m,system:p,tools:v}=r,H=Identifier.ascending("message"),R=c.find(y=>y.type==="command");if(R){let y=await Aa.command({sessionId:o,messageId:H,agent:d,model:m?`${m.providerId}/${m.modelId}`:void 0,arguments:R.arguments??"",command:R.command});return {title:n,output:y.output,metadata:{sessionId:o,source:o,agent:d,success:y.success,error:y.error,...y.metadata}}}let U=(await Aa.prompt({messageId:H,sessionId:o,system:p,tools:v,agent:d,model:m,parts:l(c)})).parts.findLast(y=>y.type==="text")?.text??"";return {title:n,output:U,metadata:{sessionId:o,source:o,agent:d}}}a.run=i;async function e(r,o){(async()=>{try{let n=await a.run(r);await o(n);}catch(n){B.error("LocalAgent.runAsync failed",{title:r.title,agent:r.agent,error:String(n)}),await o({title:r.title,output:`Error: ${n}`,metadata:{error:String(n)}});}})();}a.runAsync=e;})(E||(E={}));var s=a.create({service:"cli-command-gateway"});function O(l,i$2,e){let a=b();console.log(""),console.log(d(i("gateway.server.started"))),console.log(k(60)),e?.directory&&console.log(i$1(i("gateway.field.directory"),e.directory,15));let r={stopped:a$3.muted,starting:a$3.info,running:a$3.success,stopping:a$3.info,error:a$3.error},o=c$1(a,r[l]||a$3.muted,l.toUpperCase());if(console.log(i$1(i("gateway.field.status"),o,15)),l==="running"){let d=i$2.https?.enabled?"wss":"ws",c=i$2.path||"/",m=`${d}://${i$2.hostname}:${i$2.port}${c}`;console.log(i$1(i("gateway.field.ws_url"),m,15)),console.log(i$1(i("gateway.field.port"),String(i$2.port),15)),console.log(i$1(i("gateway.field.hostname"),i$2.hostname,15)),console.log(i$1(i("gateway.field.tls"),i$2.https?.enabled?i("common.enabled"):i("common.disabled"),15));}e?.debug!==void 0&&console.log(i$1(i("gateway.field.debug"),e.debug?c$1(a,a$3.success,i("common.enabled")):c$1(a,a$3.muted,i("common.disabled")),15));let n=getProxyConfig();if(n.enabled){let d=n.https||n.http||"configured";console.log(i$1(i("gateway.field.proxy"),d,15));}e?.error&&console.log(i$1(i("gateway.field.error"),e.error,15)),console.log(k(60)),console.log("");}function N(){let l=async i$1=>{s.debug(`Received ${i$1}, shutting down...`),console.log(`
2
+ ${i("gateway.shutdown.received",{vars:{signal:i$1}})}`);try{await Gateway.stop(),s.debug("Gateway state destroyed"),console.log(d(i("gateway.shutdown.completed")));}catch(e){s.error("Error during shutdown",{error:e instanceof Error?e.message:String(e)});}process.exit(0);};process.on("SIGINT",()=>{l("SIGINT").catch(console.error);}),process.on("SIGTERM",()=>{l("SIGTERM").catch(console.error);});}async function Y(l,i){s.debug("createAgentAdapter: starting",{directory:l}),s.debug("createAgentAdapter: calling Instance.provide");let e=await Sa.provide({directory:l,fn:async()=>{s.debug("createAgentAdapter: Instance.provide fn called");let{Project:d}=await import('./project-3W6D3354.mjs');s.debug("createAgentAdapter: Project imported, calling fromDirectory");let{project:c,sandbox:m}=await d.fromDirectory(l);s.debug("createAgentAdapter: fromDirectory completed",{projectId:c.id});let p={directory:l,worktree:m,project:c};return s.debug("createAgentAdapter: fn returning",{directory:l,projectId:c.id}),p}});s.debug("createAgentAdapter: Instance.provide completed",{directory:e.directory,projectId:e.project.id});let a={Path:{home:a$4.Path.home,data:a$4.Path.data,cache:a$4.Path.cache,config:a$4.Path.config,state:a$4.Path.state,log:a$4.Path.log,bin:a$4.Path.bin}};s.debug("global paths injected",{data:a.Path.data,log:a.Path.log,home:a.Path.home});let r={directory:e.directory,worktree:e.worktree};return await _.state(),{subAgentRunner:{async run(d){try{let c={source:d.source||d.sessionId||"gateway",title:d.title||"Message from gateway",agent:d.agent||"gateway",parts:d.parts||[]},m=await _.run(c);return {success:!0,output:m.output,metadata:m.metadata}}catch(c){return s.error("SubAgent.run failed",{error:c instanceof Error?c.message:String(c)}),{success:false,error:c instanceof Error?c.message:String(c)}}}},localAgentRunner:{async run(d){try{let c=!d.source&&i.sdk,m=d.source||void 0;if(c){let v=await i.sdk.session.create({directory:i.config.directory});v.data&&(m=v.data.id,s.debug("LocalAgent.run: created new session",{sessionId:m}));}if(!m)throw new Error("No session ID available");let p=await E.run({...d,source:m});return s.debug("LocalAgent.run completed",{title:p.title,sessionId:m}),p}catch(c){throw s.error("LocalAgent.run failed",{error:c instanceof Error?c.message:String(c)}),c}}},hookRegistry:Ba,global:a,instance:r,sdk:i.sdk}}async function z(l,i$1,e$1){s.debug("Gateway start command executed",{options:i$1});try{let a=e$1.config.directory;s.debug("Working directory resolved",{directory:a});let r=a$1(a);if(!r.valid)throw s.error("Working directory validation failed",{directory:a,error:r.error}),new Error(`Invalid working directory: ${r.error}`);let o=r.normalizedPath;s.debug("Working directory validated",{validatedDirectory:o}),console.log(g(i("gateway.directory.resolved",{vars:{cwd:o}}))),await a$2(o,async()=>{let{initLog:n,setAgentAdapter:d}=await import('@easbot/gateway');await n({logDir:process.env.EASBOT_LOG_PATH??process.cwd(),print:e$1.config.print_logs??!1,dev:e$1.config.debug??!1,level:e$1.config.log_level??"INFO"});let m=await Y(o,e$1);s.debug("executeGatewayStart: createAgentAdapter completed"),d(m),s.debug("Agent adapter injected into Gateway");let p=await c();if(s.debug("Gateway server configuration",{port:p.port,hostname:p.hostname,path:p.path,tls:p.https?.enabled,enabled:p.enabled}),!p.enabled){s.warn("Gateway server is disabled by configuration"),console.log(f(i("gateway.disabled")));return}await Gateway.start(p),s.info("Gateway server started successfully"),O("running",p,{directory:o,debug:e$1.config.debug}),N(),await new Promise(()=>{});});}catch(a){s.error("Failed to start Gateway server",{error:a instanceof Error?a.message:String(a)}),console.error(e(i("gateway.error.start_failed",{vars:{error:a instanceof Error?a.message:String(a)}}))),process.exit(1);}}async function K(l,i$1){s.debug("Gateway stop command executed",{options:l});try{let e=i$1.config.directory;await a$2(e,async()=>{if(Gateway.getStatus()==="stopped"){console.log(g(i("gateway.status.already_stopped")));return}await Gateway.stop(),console.log(d(i("gateway.stopped")));let r=await c();O("stopped",r,{directory:e});});}catch(e$1){s.error("Failed to stop Gateway server",{error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i("gateway.error.stop_failed",{vars:{error:e$1 instanceof Error?e$1.message:String(e$1)}}))),process.exit(1);}}async function q(l,i$1,e$1){s.debug("Gateway restart command executed",{options:i$1});try{let a=e$1.config.directory;await a$2(a,async()=>{let r=await c();if(!r.enabled){s.warn("Gateway server is disabled by configuration"),console.log(f(i("gateway.disabled")));return}console.log(g(i("gateway.restarting"))),await Gateway.restart(r),console.log(d(i("gateway.restarted"))),O("running",r,{directory:a,debug:e$1.config.debug}),N(),await new Promise(()=>{});});}catch(a$1){s.error("Failed to restart Gateway server",{error:a$1 instanceof Error?a$1.message:String(a$1)}),console.error(e(i("gateway.error.restart_failed",{vars:{error:a$1 instanceof Error?a$1.message:String(a$1)}}))),await a.close(),process.exit(1);}}async function J(l,i$2){s.debug("Gateway status command executed",{options:l});try{let e=i$2.config.directory;await a$2(e,async()=>{let a=Gateway.getStatus(),o=(await Gateway.get())?.getStatus(),n=await c();console.log(""),console.log(h(i("gateway.status.title"))),console.log(k(60));let d={stopped:a$3.muted,starting:a$3.info,running:a$3.success,stopping:a$3.info,error:a$3.error},c$2=c$1(b(),d[a]||a$3.muted,a.toUpperCase());if(console.log(i$1(i("gateway.field.status"),c$2,15)),o){console.log(i$1(i("gateway.field.port"),String(o.port),15)),console.log(i$1(i("gateway.field.hostname"),o.hostname||n.hostname,15)),console.log(i$1(i("gateway.field.path"),n.path||"/",15)),console.log(i$1(i("gateway.field.connections"),String(o.connections||0),15));let m=n.https?.enabled?"wss":"ws",p=n.path||"/",v=`${m}://${o.hostname||n.hostname}:${o.port}${p}`;console.log(i$1(i("gateway.field.ws_url"),v,15));}console.log(k(60)),console.log("");});}catch(e$1){s.error("Failed to get Gateway status",{error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i("gateway.error.status_failed",{vars:{error:e$1 instanceof Error?e$1.message:String(e$1)}}))),process.exit(1);}}async function Q(l,i$2){s.debug("Gateway config show command executed",{options:l});try{let e=i$2.config.directory;await a$2(e,async()=>{let a=await Gateway.config();if(!a){console.log(f(i("gateway.config.not_found")));return}if(console.log(""),console.log(h(i("gateway.config.heading"))),console.log(k(60)),a.server&&(console.log(h(i("gateway.config.server"))),console.log(i$1(" enabled",String(a.server.enabled??!0),12)),console.log(i$1(" port",String(a.server.port??3001),12)),console.log(i$1(" hostname",a.server.hostname??"0.0.0.0",12)),console.log(i$1(" tls",String(a.server.https?.enabled??!1),12)),console.log(i$1(" cors",String(a.server.cors??!0),12))),a.channels){console.log(""),console.log(h(i("gateway.config.channels")));let r=Object.keys(a.channels);if(r.length===0)console.log(g(" "+i("gateway.config.no_channels")));else for(let o of r){let n=a.channels[o];n&&console.log(i$1(` ${o}`,n.enabled?i("common.enabled"):i("common.disabled"),12));}}a.connectionPool&&(console.log(""),console.log(h(i("gateway.config.connection_pool"))),console.log(i$1(" maxConnectionsPerChannel",String(a.connectionPool.maxConnectionsPerChannel??100),25)),console.log(i$1(" idleTimeout",`${a.connectionPool.idleTimeout??3e5}ms`,25)),console.log(i$1(" reuseStrategy",a.connectionPool.reuseStrategy??"lru",25))),a.agentRegistry&&(console.log(""),console.log(h(i("gateway.config.agent_registry"))),console.log(i$1(" heartbeatInterval",`${a.agentRegistry.heartbeatInterval??3e4}ms`,20)),console.log(i$1(" heartbeatTimeout",`${a.agentRegistry.heartbeatTimeout??9e4}ms`,20))),console.log(k(60)),console.log("");});}catch(e$1){s.error("Failed to show Gateway config",{error:e$1 instanceof Error?e$1.message:String(e$1)}),console.error(e(i("gateway.error.config_failed",{vars:{error:e$1 instanceof Error?e$1.message:String(e$1)}}))),process.exit(1);}}function ve(l,i$1){let e=l.command("gateway").description(i("gateway.command.description")).helpOption("-h, --help",i("gateway.help.option")).addHelpText("after",`
3
3
 
4
4
  ${i("gateway.help.examples")}
5
5
  easbot gateway start # ${i("gateway.help.example.default")}
@@ -1,2 +1,2 @@
1
- import {e}from'./chunk-M3K32WJV.mjs';import {ya}from'./chunk-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'./chunk-LFYBZHOI.mjs';import'./chunk-BDS2JWYG.mjs';import'./chunk-X6ISXWBN.mjs';function g(o,a){o.command("generate").description(i("generate.command.description")).action(async()=>{await c();});}async function c(){try{let o=await ya();for(let t of Object.values(o.paths??{}))for(let r of ["get","post","put","delete","patch"]){let e=t[r];e?.operationId&&(e["x-codeSamples"]=[{lang:"js",source:['import { createEasbotClient } from "@easbot/sdk"',"","const client = createEasbotClient()",`await client.${e.operationId}({`," ...","})"].join(`
1
+ import {e}from'./chunk-M3K32WJV.mjs';import {ya}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'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';function g(o,a){o.command("generate").description(i("generate.command.description")).action(async()=>{await c();});}async function c(){try{let o=await ya();for(let t of Object.values(o.paths??{}))for(let r of ["get","post","put","delete","patch"]){let e=t[r];e?.operationId&&(e["x-codeSamples"]=[{lang:"js",source:['import { createEasbotClient } from "@easbot/sdk"',"","const client = createEasbotClient()",`await client.${e.operationId}({`," ...","})"].join(`
2
2
  `)}]);}let a=JSON.stringify(o,null,2);await new Promise((t,r)=>{process.stdout.write(a,e=>{e?r(e):t();});});}catch(o){console.error(e(i("generate.error.failed",{vars:{error:o instanceof Error?o.message:String(o)}}))),process.exit(1);}}export{g as registerGenerateCommand};
@@ -1,4 +1,4 @@
1
- import {a as a$1}from'./chunk-MYI75W3D.mjs';import'./chunk-CQVEAYYW.mjs';import'./chunk-FXOUIXIL.mjs';import {g,e,h,i as i$1,k,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,Fetch}from'@easbot/utils';var m=a.create({service:"cli-command-github"}),R=".github/workflows/opencode.yml",S="https://github.com/apps/opencode-agent";function z(e,t){let r=e.command("github").description(i("github.command.description"));r.command("install").description(i("github.command.install.description")).option("--provider <provider>",i("github.option.provider")).option("--model <model>",i("github.option.model")).action(async a=>{m.debug("Installing GitHub app"),await j(t,a);}),r.command("run").description(i("github.command.run.description")).option("--event <json>",i("github.option.event")).option("--token <token>",i("github.option.token")).action(async a=>{m.debug("Running GitHub agent",{options:a}),console.log(g(i("github.run.info")));});}async function j(e$1,t){try{Sa.project.vcs!=="git"&&(console.error(e(i("github.error.not_git_repo"))),process.exit(1)),console.log(h(i("github.install.starting")));let a=await W(),n=E(a);n||(console.error(e(i("github.error.parse_remote"))),process.exit(1)),console.log(i$1(i("github.field.owner"),n.owner)),console.log(i$1(i("github.field.repo"),n.repo)),console.log(k(60)),console.log(g(i("github.install.step1")));let i$2=`${S}?target=${n.owner}/${n.repo}`;console.log(g(i("github.install.open_url",{vars:{url:i$2}}))),await F(i$2),console.log(g(i("github.install.waiting")));let s=0,d$1=60;for(;s<d$1;){if(await H(n.owner,n.repo)){console.log(d(i("github.install.installed")));break}s++,await D(1e3);}s>=d$1&&(console.error(e(i("github.install.timeout"))),process.exit(1));let c=t.provider||await L(e$1),v=t.model||await T(e$1,c);console.log(k(60)),console.log(g(i("github.install.generating_workflow"))),await A(e$1,n.owner,n.repo,c,v),console.log(d(i("github.install.workflow_created",{vars:{file:R}}))),console.log(""),console.log(h(i("github.install.next_steps"))),console.log(g("1. "+i("github.install.step1_hint"))),console.log(g("2. "+i("github.install.step2_hint",{vars:{owner:n.owner,repo:n.repo}}))),console.log(g("3. "+i("github.install.step3_hint"))),m.debug("GitHub app installation complete",{owner:n.owner,repo:n.repo});}catch(r){m.error("Failed to install GitHub app",{error:r instanceof Error?r.message:String(r)}),console.error(e(i("github.install.error",{vars:{error:r instanceof Error?r.message:String(r)}}))),process.exit(1);}}async function W(){let e=process.platform==="win32"?"cmd":void 0,t=Shell.spawn(e,"git remote get-url origin");if(await t.exited!==0)throw new Error("Failed to get git remote");return await PKG.nodeReadableStreamToText(t.stdout)}function E(e){let t=e.match(/^(?:(?:https?|ssh):\/\/)?(?:git@)?github\.com[:/]([^/]+)\/([^/]+?)(?:\.git)?$/);return t?{owner:t[1],repo:t[2]}:null}async function F(e){let t=process.platform==="darwin"?`open ${e}`:process.platform==="win32"?`start ${e}`:`xdg-open ${e}`;try{let r=process.platform==="win32"?"cmd":void 0;await Shell.spawn(r,t).exited;}catch{m.debug("Could not open browser automatically");}}async function H(e,t){try{return !!(await Fetch.get(`https://api.opencode.ai/get_github_app_installation?owner=${e}&repo=${t}`)).data?.installation}catch{return false}}async function L(e){let{data:t}=await e.sdk.config.providers({}),r=t?.providers||[],a={easbot:0,anthropic:1,openai:2,google:3},n=r.sort((i,s)=>(a[i.id]??99)-(a[s.id]??99));return console.log(""),console.log(g(i("github.install.select_provider"))),console.log(a$1({columns:[{key:"index",header:"#",minWidth:4},{key:"id",header:i("github.table.header.id"),minWidth:15},{key:"name",header:i("github.table.header.name"),flex:true},{key:"hint",header:"",minWidth:15}],rows:n.map((i,s)=>({index:`${s+1}`,id:i.id,name:i.name||i.id,hint:i.id==="easbot"?"recommended":""})),width:process.stdout.columns||80,border:"unicode"})),console.log(""),n[0]?.id||"easbot"}async function T(e,t){let{data:r}=await e.sdk.config.providers({}),n=(r?.providers||[]).find(s=>s.id===t);if(!n?.models)return "default";let i$1=Object.entries(n.models);if(i$1.length===0)return "default";console.log(""),console.log(g(i("github.install.select_model")));for(let s=0;s<i$1.length;s++){let[d,c]=i$1[s];console.log(` ${s+1}. ${c.name||d}`);}return console.log(""),i$1[0]?.[0]||"default"}async function A(e,t,r,a,n){let{data:i}=await e.sdk.config.providers({}),c=(i?.providers||[]).find(p=>p.id===a)?.env||[],y=`name: opencode
1
+ import {a as a$1}from'./chunk-MYI75W3D.mjs';import'./chunk-CQVEAYYW.mjs';import'./chunk-FXOUIXIL.mjs';import {g,e,h,i as i$1,k,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,Fetch}from'@easbot/utils';var m=a.create({service:"cli-command-github"}),R=".github/workflows/opencode.yml",S="https://github.com/apps/opencode-agent";function z(e,t){let r=e.command("github").description(i("github.command.description"));r.command("install").description(i("github.command.install.description")).option("--provider <provider>",i("github.option.provider")).option("--model <model>",i("github.option.model")).action(async a=>{m.debug("Installing GitHub app"),await j(t,a);}),r.command("run").description(i("github.command.run.description")).option("--event <json>",i("github.option.event")).option("--token <token>",i("github.option.token")).action(async a=>{m.debug("Running GitHub agent",{options:a}),console.log(g(i("github.run.info")));});}async function j(e$1,t){try{Sa.project.vcs!=="git"&&(console.error(e(i("github.error.not_git_repo"))),process.exit(1)),console.log(h(i("github.install.starting")));let a=await W(),n=E(a);n||(console.error(e(i("github.error.parse_remote"))),process.exit(1)),console.log(i$1(i("github.field.owner"),n.owner)),console.log(i$1(i("github.field.repo"),n.repo)),console.log(k(60)),console.log(g(i("github.install.step1")));let i$2=`${S}?target=${n.owner}/${n.repo}`;console.log(g(i("github.install.open_url",{vars:{url:i$2}}))),await F(i$2),console.log(g(i("github.install.waiting")));let s=0,d$1=60;for(;s<d$1;){if(await H(n.owner,n.repo)){console.log(d(i("github.install.installed")));break}s++,await D(1e3);}s>=d$1&&(console.error(e(i("github.install.timeout"))),process.exit(1));let c=t.provider||await L(e$1),v=t.model||await T(e$1,c);console.log(k(60)),console.log(g(i("github.install.generating_workflow"))),await A(e$1,n.owner,n.repo,c,v),console.log(d(i("github.install.workflow_created",{vars:{file:R}}))),console.log(""),console.log(h(i("github.install.next_steps"))),console.log(g("1. "+i("github.install.step1_hint"))),console.log(g("2. "+i("github.install.step2_hint",{vars:{owner:n.owner,repo:n.repo}}))),console.log(g("3. "+i("github.install.step3_hint"))),m.debug("GitHub app installation complete",{owner:n.owner,repo:n.repo});}catch(r){m.error("Failed to install GitHub app",{error:r instanceof Error?r.message:String(r)}),console.error(e(i("github.install.error",{vars:{error:r instanceof Error?r.message:String(r)}}))),process.exit(1);}}async function W(){let e=process.platform==="win32"?"cmd":void 0,t=Shell.spawn(e,"git remote get-url origin");if(await t.exited!==0)throw new Error("Failed to get git remote");return await PKG.nodeReadableStreamToText(t.stdout)}function E(e){let t=e.match(/^(?:(?:https?|ssh):\/\/)?(?:git@)?github\.com[:/]([^/]+)\/([^/]+?)(?:\.git)?$/);return t?{owner:t[1],repo:t[2]}:null}async function F(e){let t=process.platform==="darwin"?`open ${e}`:process.platform==="win32"?`start ${e}`:`xdg-open ${e}`;try{let r=process.platform==="win32"?"cmd":void 0;await Shell.spawn(r,t).exited;}catch{m.debug("Could not open browser automatically");}}async function H(e,t){try{return !!(await Fetch.get(`https://api.opencode.ai/get_github_app_installation?owner=${e}&repo=${t}`)).data?.installation}catch{return false}}async function L(e){let{data:t}=await e.sdk.config.providers({}),r=t?.providers||[],a={easbot:0,anthropic:1,openai:2,google:3},n=r.sort((i,s)=>(a[i.id]??99)-(a[s.id]??99));return console.log(""),console.log(g(i("github.install.select_provider"))),console.log(a$1({columns:[{key:"index",header:"#",minWidth:4},{key:"id",header:i("github.table.header.id"),minWidth:15},{key:"name",header:i("github.table.header.name"),flex:true},{key:"hint",header:"",minWidth:15}],rows:n.map((i,s)=>({index:`${s+1}`,id:i.id,name:i.name||i.id,hint:i.id==="easbot"?"recommended":""})),width:process.stdout.columns||80,border:"unicode"})),console.log(""),n[0]?.id||"easbot"}async function T(e,t){let{data:r}=await e.sdk.config.providers({}),n=(r?.providers||[]).find(s=>s.id===t);if(!n?.models)return "default";let i$1=Object.entries(n.models);if(i$1.length===0)return "default";console.log(""),console.log(g(i("github.install.select_model")));for(let s=0;s<i$1.length;s++){let[d,c]=i$1[s];console.log(` ${s+1}. ${c.name||d}`);}return console.log(""),i$1[0]?.[0]||"default"}async function A(e,t,r,a,n){let{data:i}=await e.sdk.config.providers({}),c=(i?.providers||[]).find(p=>p.id===a)?.env||[],y=`name: opencode
2
2
 
3
3
  on:
4
4
  issue_comment:
@@ -0,0 +1 @@
1
+ export{a as Global}from'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -1 +1 @@
1
- export{c as I18n,b as LanguagesSupported,f as changeI18nLanguage,j as formatLog,l as getLocaleFromEnv,g as getRegisteredResources,e as initI18n,a as languages,k as negotiateLocale,d as registerI18nResources,i as t,h as translate}from'./chunk-UNBJ6Y7L.mjs';import'./chunk-X6ISXWBN.mjs';
1
+ export{c as I18n,b as LanguagesSupported,f as changeI18nLanguage,j as formatLog,l as getLocaleFromEnv,g as getRegisteredResources,e as initI18n,a as languages,k as negotiateLocale,d as registerI18nResources,i as t,h as translate}from'./chunk-XQ3LMV3K.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -1,2 +1,2 @@
1
- import {h,e,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 {a as a$1}from'./chunk-2YNYVTYT.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-BDS2JWYG.mjs';import'./chunk-X6ISXWBN.mjs';import {PKG}from'@easbot/utils';var m=a.create({service:"cli-command-import"});function _(g,u){g.command("import <file>").description(i("import.command.description")).action(async t=>{m.debug("Importing session",{file:t});try{let s=t.startsWith("http://")||t.startsWith("https://"),o;if(s){console.log(h(i("import.fetching_url",{vars:{url:t}})));let r=await fetch(t);r.ok||(console.error(e(i("import.error.fetch_failed",{vars:{status:r.statusText}}))),process.exit(1)),o=await r.json();}else {console.log(h(i("import.reading_file",{vars:{file:t}})));let r=await PKG.file(t).text();o=JSON.parse(r);}o?.info||(console.error(e(i("import.error.invalid_format"))),process.exit(1)),m.debug("Importing session data",{sessionId:o.info.id}),await a$1.write(["session",Sa.project.id,o.info.id],o.info);for(let r of o.messages){await a$1.write(["message",o.info.id,r.info.id],r.info);for(let c of r.parts)await a$1.write(["part",r.info.id,c.id],c);}console.log(d(i("import.success",{vars:{sessionId:o.info.id}})));}catch(s){m.error("Failed to import session",{file:t,error:s instanceof Error?s.message:String(s)}),console.error(e(i("import.error.failed",{vars:{error:s instanceof Error?s.message:String(s)}}))),process.exit(1);}});}
1
+ import {h,e,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 {a as a$1}from'./chunk-3CQA7CJG.mjs';import {a}from'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';import {PKG}from'@easbot/utils';var m=a.create({service:"cli-command-import"});function _(g,u){g.command("import <file>").description(i("import.command.description")).action(async t=>{m.debug("Importing session",{file:t});try{let s=t.startsWith("http://")||t.startsWith("https://"),o;if(s){console.log(h(i("import.fetching_url",{vars:{url:t}})));let r=await fetch(t);r.ok||(console.error(e(i("import.error.fetch_failed",{vars:{status:r.statusText}}))),process.exit(1)),o=await r.json();}else {console.log(h(i("import.reading_file",{vars:{file:t}})));let r=await PKG.file(t).text();o=JSON.parse(r);}o?.info||(console.error(e(i("import.error.invalid_format"))),process.exit(1)),m.debug("Importing session data",{sessionId:o.info.id}),await a$1.write(["session",Sa.project.id,o.info.id],o.info);for(let r of o.messages){await a$1.write(["message",o.info.id,r.info.id],r.info);for(let c of r.parts)await a$1.write(["part",r.info.id,c.id],c);}console.log(d(i("import.success",{vars:{sessionId:o.info.id}})));}catch(s){m.error("Failed to import session",{file:t,error:s instanceof Error?s.message:String(s)}),console.error(e(i("import.error.failed",{vars:{error:s instanceof Error?s.message:String(s)}}))),process.exit(1);}});}
2
2
  export{_ as registerImportCommand};
@@ -0,0 +1 @@
1
+ export{b as Installation}from'./chunk-G63GWBVD.mjs';import'./chunk-CJTCCLW4.mjs';import'./chunk-LFYBZHOI.mjs';import'./chunk-3UV6DBAA.mjs';import'./chunk-X6ISXWBN.mjs';
@@ -0,0 +1 @@
1
+ export{Sa as Instance}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 PluginLoader,b as createPluginLoader}from'./chunk-EFJHO4OX.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'./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{H as directories,G as get,J as getGlobal,I as global,E as state,F as waitForDependencies}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{b as LSP}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';