myagent-ai 1.23.52 → 1.23.55

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 (746) hide show
  1. package/agents/main_agent.py +17 -1
  2. package/chatbot/manager.py +1 -1
  3. package/core/context_builder.py +29 -8
  4. package/core/tool_dispatcher.py +40 -9
  5. package/package.json +2 -2
  6. package/scripts/cli.py +137 -5
  7. package/start.js +4 -0
  8. package/web/api_server.py +34 -3
  9. package/web/ui/admin/admin-platforms.js +6 -4
  10. package/web/ui/chat/chat_main.js +5 -4
  11. package/myagent/Dockerfile +0 -54
  12. package/myagent/README.md +0 -375
  13. package/myagent/agents/__init__.py +0 -6
  14. package/myagent/agents/base.py +0 -441
  15. package/myagent/agents/main_agent.py +0 -1697
  16. package/myagent/agents/memory_agent.py +0 -423
  17. package/myagent/agents/tool_agent.py +0 -248
  18. package/myagent/chatbot/__init__.py +0 -5
  19. package/myagent/chatbot/base.py +0 -124
  20. package/myagent/chatbot/discord_bot.py +0 -146
  21. package/myagent/chatbot/feishu_bot.py +0 -548
  22. package/myagent/chatbot/manager.py +0 -251
  23. package/myagent/chatbot/qq_bot.py +0 -189
  24. package/myagent/chatbot/telegram_bot.py +0 -167
  25. package/myagent/chatbot/wechat_bot.py +0 -558
  26. package/myagent/chatbot/whatsapp_bot.py +0 -330
  27. package/myagent/chatbot/whatsapp_bridge/bridge.mjs +0 -192
  28. package/myagent/chatbot/whatsapp_bridge/package.json +0 -11
  29. package/myagent/communication/__init__.py +0 -66
  30. package/myagent/communication/channel.py +0 -576
  31. package/myagent/communication/crypto.py +0 -347
  32. package/myagent/communication/manager.py +0 -417
  33. package/myagent/communication/peer.py +0 -156
  34. package/myagent/config.py +0 -533
  35. package/myagent/core/__init__.py +0 -4
  36. package/myagent/core/config_broadcast.py +0 -307
  37. package/myagent/core/config_validator.py +0 -740
  38. package/myagent/core/context_builder.py +0 -934
  39. package/myagent/core/context_manager.py +0 -506
  40. package/myagent/core/deps_checker.py +0 -542
  41. package/myagent/core/llm.py +0 -1046
  42. package/myagent/core/logger.py +0 -295
  43. package/myagent/core/output_parser.py +0 -694
  44. package/myagent/core/permissions.py +0 -372
  45. package/myagent/core/stt.py +0 -320
  46. package/myagent/core/task_persistence.py +0 -359
  47. package/myagent/core/task_queue.py +0 -440
  48. package/myagent/core/tool_dispatcher.py +0 -727
  49. package/myagent/core/update_manager.py +0 -1358
  50. package/myagent/core/utils.py +0 -202
  51. package/myagent/core/version.py +0 -71
  52. package/myagent/core/vnc_manager.py +0 -1211
  53. package/myagent/core/web_control.py +0 -729
  54. package/myagent/data/novnc/lib/base64.js +0 -101
  55. package/myagent/data/novnc/lib/decoders/copyrect.js +0 -42
  56. package/myagent/data/novnc/lib/decoders/hextile.js +0 -199
  57. package/myagent/data/novnc/lib/decoders/jpeg.js +0 -149
  58. package/myagent/data/novnc/lib/decoders/raw.js +0 -74
  59. package/myagent/data/novnc/lib/decoders/rre.js +0 -54
  60. package/myagent/data/novnc/lib/decoders/tight.js +0 -302
  61. package/myagent/data/novnc/lib/decoders/tightpng.js +0 -47
  62. package/myagent/data/novnc/lib/decoders/zrle.js +0 -188
  63. package/myagent/data/novnc/lib/deflator.js +0 -85
  64. package/myagent/data/novnc/lib/des.js +0 -301
  65. package/myagent/data/novnc/lib/display.js +0 -520
  66. package/myagent/data/novnc/lib/encodings.js +0 -63
  67. package/myagent/data/novnc/lib/inflator.js +0 -74
  68. package/myagent/data/novnc/lib/input/domkeytable.js +0 -314
  69. package/myagent/data/novnc/lib/input/fixedkeys.js +0 -128
  70. package/myagent/data/novnc/lib/input/gesturehandler.js +0 -575
  71. package/myagent/data/novnc/lib/input/keyboard.js +0 -280
  72. package/myagent/data/novnc/lib/input/keysym.js +0 -879
  73. package/myagent/data/novnc/lib/input/keysymdef.js +0 -1352
  74. package/myagent/data/novnc/lib/input/util.js +0 -217
  75. package/myagent/data/novnc/lib/input/vkeys.js +0 -122
  76. package/myagent/data/novnc/lib/input/xtscancodes.js +0 -344
  77. package/myagent/data/novnc/lib/ra2.js +0 -1005
  78. package/myagent/data/novnc/lib/rfb.js +0 -3324
  79. package/myagent/data/novnc/lib/util/browser.js +0 -150
  80. package/myagent/data/novnc/lib/util/cursor.js +0 -265
  81. package/myagent/data/novnc/lib/util/element.js +0 -41
  82. package/myagent/data/novnc/lib/util/events.js +0 -133
  83. package/myagent/data/novnc/lib/util/eventtarget.js +0 -55
  84. package/myagent/data/novnc/lib/util/int.js +0 -21
  85. package/myagent/data/novnc/lib/util/logging.js +0 -61
  86. package/myagent/data/novnc/lib/util/md5.js +0 -77
  87. package/myagent/data/novnc/lib/util/strings.js +0 -36
  88. package/myagent/data/novnc/lib/vendor/pako/lib/utils/common.js +0 -58
  89. package/myagent/data/novnc/lib/vendor/pako/lib/zlib/adler32.js +0 -29
  90. package/myagent/data/novnc/lib/vendor/pako/lib/zlib/constants.js +0 -48
  91. package/myagent/data/novnc/lib/vendor/pako/lib/zlib/crc32.js +0 -35
  92. package/myagent/data/novnc/lib/vendor/pako/lib/zlib/deflate.js +0 -1755
  93. package/myagent/data/novnc/lib/vendor/pako/lib/zlib/gzheader.js +0 -41
  94. package/myagent/data/novnc/lib/vendor/pako/lib/zlib/inffast.js +0 -329
  95. package/myagent/data/novnc/lib/vendor/pako/lib/zlib/inflate.js +0 -1626
  96. package/myagent/data/novnc/lib/vendor/pako/lib/zlib/inftrees.js +0 -312
  97. package/myagent/data/novnc/lib/vendor/pako/lib/zlib/messages.js +0 -26
  98. package/myagent/data/novnc/lib/vendor/pako/lib/zlib/trees.js +0 -1157
  99. package/myagent/data/novnc/lib/vendor/pako/lib/zlib/zstream.js +0 -30
  100. package/myagent/data/novnc/lib/websock.js +0 -384
  101. package/myagent/data/uploads/2026-04/32c9e9d3-8cf_test.pdf.pdf +0 -1
  102. package/myagent/departments/__init__.py +0 -4
  103. package/myagent/departments/manager.py +0 -1015
  104. package/myagent/docs//351/205/215/347/275/256/344/275/277/347/224/250/350/257/264/346/230/216.md +0 -815
  105. package/myagent/download/README.md +0 -1
  106. package/myagent/executor/__init__.py +0 -4
  107. package/myagent/executor/engine.py +0 -1591
  108. package/myagent/groups/__init__.py +0 -15
  109. package/myagent/groups/manager.py +0 -815
  110. package/myagent/install/install.ps1 +0 -171
  111. package/myagent/install/install.sh +0 -258
  112. package/myagent/install/uninstall.ps1 +0 -142
  113. package/myagent/install/uninstall.sh +0 -149
  114. package/myagent/install.ps1 +0 -97
  115. package/myagent/knowledge/__init__.py +0 -4
  116. package/myagent/knowledge/rag.py +0 -444
  117. package/myagent/main.py +0 -1808
  118. package/myagent/memory/__init__.py +0 -4
  119. package/myagent/memory/manager.py +0 -1140
  120. package/myagent/myagent_start.ps1 +0 -26
  121. package/myagent/organization/__init__.py +0 -4
  122. package/myagent/organization/manager.py +0 -366
  123. package/myagent/package.json +0 -46
  124. package/myagent/requirements-optional.txt +0 -16
  125. package/myagent/requirements.txt +0 -90
  126. package/myagent/scripts/cli.py +0 -1182
  127. package/myagent/scripts/setup_helper.py +0 -33
  128. package/myagent/setup.py +0 -72
  129. package/myagent/skills/ASR/LICENSE.txt +0 -21
  130. package/myagent/skills/ASR/SKILL.md +0 -580
  131. package/myagent/skills/ASR/scripts/asr.ts +0 -27
  132. package/myagent/skills/LLM/LICENSE.txt +0 -21
  133. package/myagent/skills/LLM/SKILL.md +0 -856
  134. package/myagent/skills/LLM/scripts/chat.ts +0 -32
  135. package/myagent/skills/TTS/LICENSE.txt +0 -21
  136. package/myagent/skills/TTS/SKILL.md +0 -735
  137. package/myagent/skills/TTS/tts.ts +0 -25
  138. package/myagent/skills/VLM/LICENSE.txt +0 -21
  139. package/myagent/skills/VLM/SKILL.md +0 -588
  140. package/myagent/skills/VLM/scripts/vlm.ts +0 -57
  141. package/myagent/skills/__init__.py +0 -5
  142. package/myagent/skills/agent-browser/SKILL.md +0 -328
  143. package/myagent/skills/agent_tool_skill.py +0 -113
  144. package/myagent/skills/ai-news-collectors/SKILL.md +0 -157
  145. package/myagent/skills/ai-news-collectors/_meta.json +0 -6
  146. package/myagent/skills/ai-news-collectors/references/sources.md +0 -128
  147. package/myagent/skills/aminer-open-academic/SKILL.md +0 -312
  148. package/myagent/skills/aminer-open-academic/_meta.json +0 -6
  149. package/myagent/skills/aminer-open-academic/evals/evals.json +0 -46
  150. package/myagent/skills/aminer-open-academic/references/api-catalog.md +0 -1032
  151. package/myagent/skills/aminer-open-academic/scripts/aminer_client.py +0 -875
  152. package/myagent/skills/auto-target-tracker/SKILL.md +0 -317
  153. package/myagent/skills/base.py +0 -153
  154. package/myagent/skills/blog-writer/2024-02-17-radical-transparency-sales.md +0 -35
  155. package/myagent/skills/blog-writer/2024-02-17-raycast-spotlight-superpowers.md +0 -33
  156. package/myagent/skills/blog-writer/2024-02-17-short-form-content-marketing.md +0 -47
  157. package/myagent/skills/blog-writer/2024-02-17-typing-speed-benefits.md +0 -33
  158. package/myagent/skills/blog-writer/2024-03-14-effective-ai-prompts.md +0 -55
  159. package/myagent/skills/blog-writer/2024-11-08-ai-revolutionizing-entry-level-sales.md +0 -43
  160. package/myagent/skills/blog-writer/2025-11-12-why-ai-art-is-useless.md +0 -49
  161. package/myagent/skills/blog-writer/README.md +0 -2
  162. package/myagent/skills/blog-writer/SKILL.md +0 -158
  163. package/myagent/skills/blog-writer/_meta.json +0 -6
  164. package/myagent/skills/blog-writer/manage_examples.py +0 -90
  165. package/myagent/skills/blog-writer/style-guide.md +0 -160
  166. package/myagent/skills/browser_skill.py +0 -32
  167. package/myagent/skills/charts/LICENSE.txt +0 -13
  168. package/myagent/skills/charts/SKILL.md +0 -427
  169. package/myagent/skills/charts/references/_rules.md +0 -49
  170. package/myagent/skills/charts/references/d3.md +0 -199
  171. package/myagent/skills/charts/references/echarts.md +0 -651
  172. package/myagent/skills/charts/references/matplotlib.md +0 -617
  173. package/myagent/skills/charts/references/mermaid.md +0 -797
  174. package/myagent/skills/charts/references/mindmap-css.md +0 -911
  175. package/myagent/skills/charts/references/playwright-css.md +0 -801
  176. package/myagent/skills/charts/references/radial-grid.md +0 -576
  177. package/myagent/skills/charts/references/seaborn.md +0 -324
  178. package/myagent/skills/charts/setup.sh +0 -228
  179. package/myagent/skills/chromedev_mcp.py +0 -1669
  180. package/myagent/skills/coding-agent/SKILL.md +0 -120
  181. package/myagent/skills/coding-agent/_meta.json +0 -6
  182. package/myagent/skills/coding-agent/criteria.md +0 -48
  183. package/myagent/skills/coding-agent/execution.md +0 -42
  184. package/myagent/skills/coding-agent/memory-template.md +0 -38
  185. package/myagent/skills/coding-agent/planning.md +0 -31
  186. package/myagent/skills/coding-agent/state.md +0 -60
  187. package/myagent/skills/coding-agent/verification.md +0 -39
  188. package/myagent/skills/content-strategy/SKILL.md +0 -181
  189. package/myagent/skills/content-strategy/_meta.json +0 -6
  190. package/myagent/skills/contentanalysis/ExtractWisdom/SKILL.md +0 -229
  191. package/myagent/skills/contentanalysis/ExtractWisdom/Workflows/Extract.md +0 -60
  192. package/myagent/skills/contentanalysis/SKILL.md +0 -14
  193. package/myagent/skills/docx/LICENSE.txt +0 -13
  194. package/myagent/skills/docx/SKILL.md +0 -201
  195. package/myagent/skills/docx/references/chart-templates.md +0 -386
  196. package/myagent/skills/docx/references/common-rules.md +0 -419
  197. package/myagent/skills/docx/references/decorations.md +0 -538
  198. package/myagent/skills/docx/references/design-system.md +0 -1797
  199. package/myagent/skills/docx/references/docx-js-advanced.md +0 -257
  200. package/myagent/skills/docx/references/docx-js-core.md +0 -333
  201. package/myagent/skills/docx/references/faq.md +0 -323
  202. package/myagent/skills/docx/references/math-formulas.md +0 -276
  203. package/myagent/skills/docx/references/ooxml.md +0 -222
  204. package/myagent/skills/docx/references/toc.md +0 -264
  205. package/myagent/skills/docx/routes/comment.md +0 -88
  206. package/myagent/skills/docx/routes/create.md +0 -207
  207. package/myagent/skills/docx/routes/edit.md +0 -115
  208. package/myagent/skills/docx/routes/format.md +0 -120
  209. package/myagent/skills/docx/routes/read.md +0 -114
  210. package/myagent/skills/docx/scenes/academic.md +0 -783
  211. package/myagent/skills/docx/scenes/contract.md +0 -463
  212. package/myagent/skills/docx/scenes/copywriting.md +0 -139
  213. package/myagent/skills/docx/scenes/exam.md +0 -698
  214. package/myagent/skills/docx/scenes/official-doc.md +0 -411
  215. package/myagent/skills/docx/scenes/report.md +0 -340
  216. package/myagent/skills/docx/scenes/resume.md +0 -534
  217. package/myagent/skills/docx/scripts/__init__.py +0 -1
  218. package/myagent/skills/docx/scripts/add_toc_placeholders.py +0 -749
  219. package/myagent/skills/docx/scripts/document.py +0 -1333
  220. package/myagent/skills/docx/scripts/postcheck.py +0 -807
  221. package/myagent/skills/docx/scripts/templates/comments.xml +0 -3
  222. package/myagent/skills/docx/scripts/templates/commentsExtended.xml +0 -3
  223. package/myagent/skills/docx/scripts/templates/commentsExtensible.xml +0 -3
  224. package/myagent/skills/docx/scripts/templates/commentsIds.xml +0 -3
  225. package/myagent/skills/docx/scripts/templates/people.xml +0 -3
  226. package/myagent/skills/docx/scripts/utilities.py +0 -374
  227. package/myagent/skills/docx/setup.sh +0 -177
  228. package/myagent/skills/docx_skill.py +0 -213
  229. package/myagent/skills/dream-interpreter/SKILL.md +0 -88
  230. package/myagent/skills/dream-interpreter/assets/example_asset.txt +0 -24
  231. package/myagent/skills/dream-interpreter/references/api_reference.md +0 -34
  232. package/myagent/skills/dream-interpreter/references/interpretation-guide.md +0 -83
  233. package/myagent/skills/dream-interpreter/references/output-schema.md +0 -65
  234. package/myagent/skills/dream-interpreter/references/questioning-strategy.md +0 -62
  235. package/myagent/skills/dream-interpreter/references/visual-mapping.md +0 -81
  236. package/myagent/skills/dream-interpreter/scripts/example.py +0 -19
  237. package/myagent/skills/dream-interpreter/skill.json +0 -7
  238. package/myagent/skills/example-skill/SKILL.md +0 -33
  239. package/myagent/skills/example-skill/run.sh +0 -11
  240. package/myagent/skills/file_send.py +0 -142
  241. package/myagent/skills/file_skill.py +0 -573
  242. package/myagent/skills/finance/Finance_API_Doc.md +0 -445
  243. package/myagent/skills/finance/SKILL.md +0 -53
  244. package/myagent/skills/frontend-dev/SKILL.md +0 -567
  245. package/myagent/skills/frontend-dev/canvas-fonts/ArsenalSC-OFL.txt +0 -93
  246. package/myagent/skills/frontend-dev/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  247. package/myagent/skills/frontend-dev/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  248. package/myagent/skills/frontend-dev/canvas-fonts/BigShoulders-OFL.txt +0 -93
  249. package/myagent/skills/frontend-dev/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  250. package/myagent/skills/frontend-dev/canvas-fonts/Boldonse-OFL.txt +0 -93
  251. package/myagent/skills/frontend-dev/canvas-fonts/Boldonse-Regular.ttf +0 -0
  252. package/myagent/skills/frontend-dev/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  253. package/myagent/skills/frontend-dev/canvas-fonts/BricolageGrotesque-OFL.txt +0 -93
  254. package/myagent/skills/frontend-dev/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  255. package/myagent/skills/frontend-dev/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  256. package/myagent/skills/frontend-dev/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  257. package/myagent/skills/frontend-dev/canvas-fonts/CrimsonPro-OFL.txt +0 -93
  258. package/myagent/skills/frontend-dev/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  259. package/myagent/skills/frontend-dev/canvas-fonts/DMMono-OFL.txt +0 -93
  260. package/myagent/skills/frontend-dev/canvas-fonts/DMMono-Regular.ttf +0 -0
  261. package/myagent/skills/frontend-dev/canvas-fonts/EricaOne-OFL.txt +0 -94
  262. package/myagent/skills/frontend-dev/canvas-fonts/EricaOne-Regular.ttf +0 -0
  263. package/myagent/skills/frontend-dev/canvas-fonts/GeistMono-Bold.ttf +0 -0
  264. package/myagent/skills/frontend-dev/canvas-fonts/GeistMono-OFL.txt +0 -93
  265. package/myagent/skills/frontend-dev/canvas-fonts/GeistMono-Regular.ttf +0 -0
  266. package/myagent/skills/frontend-dev/canvas-fonts/Gloock-OFL.txt +0 -93
  267. package/myagent/skills/frontend-dev/canvas-fonts/Gloock-Regular.ttf +0 -0
  268. package/myagent/skills/frontend-dev/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  269. package/myagent/skills/frontend-dev/canvas-fonts/IBMPlexMono-OFL.txt +0 -93
  270. package/myagent/skills/frontend-dev/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  271. package/myagent/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  272. package/myagent/skills/frontend-dev/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  273. package/myagent/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  274. package/myagent/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  275. package/myagent/skills/frontend-dev/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  276. package/myagent/skills/frontend-dev/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  277. package/myagent/skills/frontend-dev/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  278. package/myagent/skills/frontend-dev/canvas-fonts/InstrumentSans-OFL.txt +0 -93
  279. package/myagent/skills/frontend-dev/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  280. package/myagent/skills/frontend-dev/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  281. package/myagent/skills/frontend-dev/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  282. package/myagent/skills/frontend-dev/canvas-fonts/Italiana-OFL.txt +0 -93
  283. package/myagent/skills/frontend-dev/canvas-fonts/Italiana-Regular.ttf +0 -0
  284. package/myagent/skills/frontend-dev/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  285. package/myagent/skills/frontend-dev/canvas-fonts/JetBrainsMono-OFL.txt +0 -93
  286. package/myagent/skills/frontend-dev/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  287. package/myagent/skills/frontend-dev/canvas-fonts/Jura-Light.ttf +0 -0
  288. package/myagent/skills/frontend-dev/canvas-fonts/Jura-Medium.ttf +0 -0
  289. package/myagent/skills/frontend-dev/canvas-fonts/Jura-OFL.txt +0 -93
  290. package/myagent/skills/frontend-dev/canvas-fonts/LibreBaskerville-OFL.txt +0 -93
  291. package/myagent/skills/frontend-dev/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  292. package/myagent/skills/frontend-dev/canvas-fonts/Lora-Bold.ttf +0 -0
  293. package/myagent/skills/frontend-dev/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  294. package/myagent/skills/frontend-dev/canvas-fonts/Lora-Italic.ttf +0 -0
  295. package/myagent/skills/frontend-dev/canvas-fonts/Lora-OFL.txt +0 -93
  296. package/myagent/skills/frontend-dev/canvas-fonts/Lora-Regular.ttf +0 -0
  297. package/myagent/skills/frontend-dev/canvas-fonts/NationalPark-Bold.ttf +0 -0
  298. package/myagent/skills/frontend-dev/canvas-fonts/NationalPark-OFL.txt +0 -93
  299. package/myagent/skills/frontend-dev/canvas-fonts/NationalPark-Regular.ttf +0 -0
  300. package/myagent/skills/frontend-dev/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -93
  301. package/myagent/skills/frontend-dev/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  302. package/myagent/skills/frontend-dev/canvas-fonts/Outfit-Bold.ttf +0 -0
  303. package/myagent/skills/frontend-dev/canvas-fonts/Outfit-OFL.txt +0 -93
  304. package/myagent/skills/frontend-dev/canvas-fonts/Outfit-Regular.ttf +0 -0
  305. package/myagent/skills/frontend-dev/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  306. package/myagent/skills/frontend-dev/canvas-fonts/PixelifySans-OFL.txt +0 -93
  307. package/myagent/skills/frontend-dev/canvas-fonts/PoiretOne-OFL.txt +0 -93
  308. package/myagent/skills/frontend-dev/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  309. package/myagent/skills/frontend-dev/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  310. package/myagent/skills/frontend-dev/canvas-fonts/RedHatMono-OFL.txt +0 -93
  311. package/myagent/skills/frontend-dev/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  312. package/myagent/skills/frontend-dev/canvas-fonts/Silkscreen-OFL.txt +0 -93
  313. package/myagent/skills/frontend-dev/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  314. package/myagent/skills/frontend-dev/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  315. package/myagent/skills/frontend-dev/canvas-fonts/SmoochSans-OFL.txt +0 -93
  316. package/myagent/skills/frontend-dev/canvas-fonts/Tektur-Medium.ttf +0 -0
  317. package/myagent/skills/frontend-dev/canvas-fonts/Tektur-OFL.txt +0 -93
  318. package/myagent/skills/frontend-dev/canvas-fonts/Tektur-Regular.ttf +0 -0
  319. package/myagent/skills/frontend-dev/canvas-fonts/WorkSans-Bold.ttf +0 -0
  320. package/myagent/skills/frontend-dev/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  321. package/myagent/skills/frontend-dev/canvas-fonts/WorkSans-Italic.ttf +0 -0
  322. package/myagent/skills/frontend-dev/canvas-fonts/WorkSans-OFL.txt +0 -93
  323. package/myagent/skills/frontend-dev/canvas-fonts/WorkSans-Regular.ttf +0 -0
  324. package/myagent/skills/frontend-dev/canvas-fonts/YoungSerif-OFL.txt +0 -93
  325. package/myagent/skills/frontend-dev/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  326. package/myagent/skills/frontend-dev/references/asset-prompt-guide.md +0 -43
  327. package/myagent/skills/frontend-dev/references/env-setup.md +0 -33
  328. package/myagent/skills/frontend-dev/references/minimax-cli-reference.md +0 -133
  329. package/myagent/skills/frontend-dev/references/minimax-image-guide.md +0 -65
  330. package/myagent/skills/frontend-dev/references/minimax-music-guide.md +0 -216
  331. package/myagent/skills/frontend-dev/references/minimax-tts-guide.md +0 -78
  332. package/myagent/skills/frontend-dev/references/minimax-video-guide.md +0 -82
  333. package/myagent/skills/frontend-dev/references/minimax-voice-catalog.md +0 -686
  334. package/myagent/skills/frontend-dev/references/motion-recipes.md +0 -407
  335. package/myagent/skills/frontend-dev/references/troubleshooting.md +0 -85
  336. package/myagent/skills/frontend-dev/scripts/minimax_image.py +0 -137
  337. package/myagent/skills/frontend-dev/scripts/minimax_music.py +0 -157
  338. package/myagent/skills/frontend-dev/scripts/minimax_tts.py +0 -127
  339. package/myagent/skills/frontend-dev/scripts/minimax_video.py +0 -187
  340. package/myagent/skills/frontend-dev/templates/generator_template.js +0 -223
  341. package/myagent/skills/frontend-dev/templates/viewer.html +0 -599
  342. package/myagent/skills/fullstack-dev/SKILL.md +0 -1037
  343. package/myagent/skills/fullstack-dev/references/api-design.md +0 -444
  344. package/myagent/skills/fullstack-dev/references/auth-flow.md +0 -165
  345. package/myagent/skills/fullstack-dev/references/db-schema.md +0 -706
  346. package/myagent/skills/fullstack-dev/references/django-best-practices.md +0 -466
  347. package/myagent/skills/fullstack-dev/references/environment-management.md +0 -78
  348. package/myagent/skills/fullstack-dev/references/release-checklist.md +0 -278
  349. package/myagent/skills/fullstack-dev/references/technology-selection.md +0 -254
  350. package/myagent/skills/fullstack-dev/references/testing-strategy.md +0 -404
  351. package/myagent/skills/get-fortune-analysis/SKILL.md +0 -370
  352. package/myagent/skills/get-fortune-analysis/lunar_python.py +0 -91
  353. package/myagent/skills/gift-evaluator/SKILL.md +0 -83
  354. package/myagent/skills/gift-evaluator/html_tools.py +0 -268
  355. package/myagent/skills/gui_skill.py +0 -883
  356. package/myagent/skills/image-edit/LICENSE.txt +0 -21
  357. package/myagent/skills/image-edit/SKILL.md +0 -896
  358. package/myagent/skills/image-edit/scripts/image-edit.ts +0 -36
  359. package/myagent/skills/image-generation/LICENSE.txt +0 -21
  360. package/myagent/skills/image-generation/SKILL.md +0 -583
  361. package/myagent/skills/image-generation/scripts/image-generation.ts +0 -28
  362. package/myagent/skills/image-understand/LICENSE.txt +0 -21
  363. package/myagent/skills/image-understand/SKILL.md +0 -855
  364. package/myagent/skills/image-understand/scripts/image-understand.ts +0 -41
  365. package/myagent/skills/interview-designer/README.md +0 -70
  366. package/myagent/skills/interview-designer/SKILL.md +0 -53
  367. package/myagent/skills/interview-designer/_meta.json +0 -6
  368. package/myagent/skills/interview-designer/references/design_rationale.md +0 -43
  369. package/myagent/skills/interview-designer/templates/interview_guide_template.md +0 -62
  370. package/myagent/skills/market-research-reports/SKILL.md +0 -901
  371. package/myagent/skills/market-research-reports/assets/FORMATTING_GUIDE.md +0 -428
  372. package/myagent/skills/market-research-reports/assets/market_report_template.tex +0 -1380
  373. package/myagent/skills/market-research-reports/assets/market_research.sty +0 -564
  374. package/myagent/skills/market-research-reports/references/data_analysis_patterns.md +0 -548
  375. package/myagent/skills/market-research-reports/references/report_structure_guide.md +0 -999
  376. package/myagent/skills/market-research-reports/references/visual_generation_guide.md +0 -1077
  377. package/myagent/skills/market-research-reports/scripts/generate_market_visuals.py +0 -529
  378. package/myagent/skills/marketing-mode/README.md +0 -49
  379. package/myagent/skills/marketing-mode/SKILL.md +0 -693
  380. package/myagent/skills/marketing-mode/_meta.json +0 -6
  381. package/myagent/skills/marketing-mode/mode-prompt.md +0 -39
  382. package/myagent/skills/marketing-mode/skill.json +0 -51
  383. package/myagent/skills/mindfulness-meditation/SKILL.md +0 -65
  384. package/myagent/skills/mindfulness-meditation/_meta.json +0 -6
  385. package/myagent/skills/multi-search-engine/CHANGELOG.md +0 -15
  386. package/myagent/skills/multi-search-engine/CHANNELLOG.md +0 -48
  387. package/myagent/skills/multi-search-engine/SKILL.md +0 -78
  388. package/myagent/skills/multi-search-engine/_meta.json +0 -6
  389. package/myagent/skills/multi-search-engine/config.json +0 -14
  390. package/myagent/skills/multi-search-engine/metadata.json +0 -7
  391. package/myagent/skills/multi-search-engine/references/international-search.md +0 -651
  392. package/myagent/skills/pdf/LICENSE.txt +0 -13
  393. package/myagent/skills/pdf/SKILL.md +0 -921
  394. package/myagent/skills/pdf/briefs/academic.md +0 -1058
  395. package/myagent/skills/pdf/briefs/creative.md +0 -770
  396. package/myagent/skills/pdf/briefs/poster.md +0 -702
  397. package/myagent/skills/pdf/briefs/process-advanced.md +0 -284
  398. package/myagent/skills/pdf/briefs/process.md +0 -319
  399. package/myagent/skills/pdf/briefs/report.md +0 -1659
  400. package/myagent/skills/pdf/configs/components.md +0 -153
  401. package/myagent/skills/pdf/configs/fonts.md +0 -93
  402. package/myagent/skills/pdf/configs/visual_framework.md +0 -263
  403. package/myagent/skills/pdf/references/resume-academic.tex +0 -130
  404. package/myagent/skills/pdf/references/resume-altacv.tex +0 -190
  405. package/myagent/skills/pdf/scripts/cover_validate.js +0 -367
  406. package/myagent/skills/pdf/scripts/design_engine.py +0 -2816
  407. package/myagent/skills/pdf/scripts/html2pdf-next.js +0 -754
  408. package/myagent/skills/pdf/scripts/html2poster.js +0 -256
  409. package/myagent/skills/pdf/scripts/pdf.py +0 -2959
  410. package/myagent/skills/pdf/scripts/pdf_qa.py +0 -901
  411. package/myagent/skills/pdf/scripts/poster_validate.py +0 -1337
  412. package/myagent/skills/pdf/scripts/setup.sh +0 -269
  413. package/myagent/skills/pdf/scripts/toc_validate.py +0 -2075
  414. package/myagent/skills/pdf/typesetting/charts.md +0 -320
  415. package/myagent/skills/pdf/typesetting/cover-backgrounds.md +0 -384
  416. package/myagent/skills/pdf/typesetting/cover.md +0 -1442
  417. package/myagent/skills/pdf/typesetting/fill-engine.md +0 -527
  418. package/myagent/skills/pdf/typesetting/geometry.md +0 -142
  419. package/myagent/skills/pdf/typesetting/overflow.md +0 -630
  420. package/myagent/skills/pdf/typesetting/pagination.md +0 -367
  421. package/myagent/skills/pdf/typesetting/palette.md +0 -217
  422. package/myagent/skills/pdf/typesetting/typography.md +0 -20
  423. package/myagent/skills/pdf_skill.py +0 -372
  424. package/myagent/skills/podcast-generate/LICENSE.txt +0 -21
  425. package/myagent/skills/podcast-generate/SKILL.md +0 -198
  426. package/myagent/skills/podcast-generate/generate.ts +0 -661
  427. package/myagent/skills/podcast-generate/package.json +0 -30
  428. package/myagent/skills/podcast-generate/readme.md +0 -177
  429. package/myagent/skills/podcast-generate/test_data/segments.jsonl +0 -3
  430. package/myagent/skills/podcast-generate/tsconfig.json +0 -26
  431. package/myagent/skills/ppt/.claude/settings.local.json +0 -20
  432. package/myagent/skills/ppt/LICENSE.txt +0 -13
  433. package/myagent/skills/ppt/SKILL.md +0 -436
  434. package/myagent/skills/ppt/beamer.md +0 -1461
  435. package/myagent/skills/ppt/components.md +0 -1671
  436. package/myagent/skills/ppt/data-viz-components.md +0 -529
  437. package/myagent/skills/ppt/design-system.md +0 -211
  438. package/myagent/skills/ppt/html2pptx.md +0 -394
  439. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  440. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  441. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  442. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  443. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  444. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  445. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  446. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  447. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  448. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  449. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  450. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  451. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  452. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  453. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  454. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  455. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  456. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  457. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  458. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  459. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  460. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  461. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  462. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  463. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  464. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  465. package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  466. package/myagent/skills/ppt/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  467. package/myagent/skills/ppt/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  468. package/myagent/skills/ppt/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  469. package/myagent/skills/ppt/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  470. package/myagent/skills/ppt/ooxml/schemas/mce/mc.xsd +0 -75
  471. package/myagent/skills/ppt/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
  472. package/myagent/skills/ppt/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
  473. package/myagent/skills/ppt/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
  474. package/myagent/skills/ppt/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
  475. package/myagent/skills/ppt/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
  476. package/myagent/skills/ppt/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  477. package/myagent/skills/ppt/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
  478. package/myagent/skills/ppt/ooxml/scripts/pack.py +0 -159
  479. package/myagent/skills/ppt/ooxml/scripts/unpack.py +0 -45
  480. package/myagent/skills/ppt/ooxml/scripts/validate.py +0 -70
  481. package/myagent/skills/ppt/ooxml/scripts/validation/__init__.py +0 -15
  482. package/myagent/skills/ppt/ooxml/scripts/validation/base.py +0 -948
  483. package/myagent/skills/ppt/ooxml/scripts/validation/docx.py +0 -274
  484. package/myagent/skills/ppt/ooxml/scripts/validation/pptx.py +0 -309
  485. package/myagent/skills/ppt/ooxml/scripts/validation/redlining.py +0 -279
  486. package/myagent/skills/ppt/ooxml.md +0 -427
  487. package/myagent/skills/ppt/references/beamer.md +0 -721
  488. package/myagent/skills/ppt/references/latex.md +0 -342
  489. package/myagent/skills/ppt/references/paper-navbar.tex +0 -73
  490. package/myagent/skills/ppt/references/progress-navbar.tex +0 -151
  491. package/myagent/skills/ppt/scripts/html2pptx.js +0 -1337
  492. package/myagent/skills/ppt/scripts/inventory.py +0 -512
  493. package/myagent/skills/ppt/scripts/pdf.py +0 -2046
  494. package/myagent/skills/ppt/scripts/rearrange.py +0 -144
  495. package/myagent/skills/ppt/scripts/replace.py +0 -231
  496. package/myagent/skills/ppt/scripts/tectonic +0 -0
  497. package/myagent/skills/ppt/scripts/thumbnail.py +0 -352
  498. package/myagent/skills/ppt/setup.sh +0 -197
  499. package/myagent/skills/ppt/themes.md +0 -581
  500. package/myagent/skills/ppt_skill.py +0 -317
  501. package/myagent/skills/qingyan-research/SKILL.md +0 -294
  502. package/myagent/skills/qingyan-research/generate_html.py +0 -33
  503. package/myagent/skills/registry.py +0 -599
  504. package/myagent/skills/search_skill.py +0 -453
  505. package/myagent/skills/seo-content-writer/SKILL.md +0 -661
  506. package/myagent/skills/seo-content-writer/_meta.json +0 -6
  507. package/myagent/skills/seo-content-writer/references/content-structure-templates.md +0 -875
  508. package/myagent/skills/seo-content-writer/references/title-formulas.md +0 -339
  509. package/myagent/skills/skill-creator/LICENSE.txt +0 -202
  510. package/myagent/skills/skill-creator/SKILL.md +0 -485
  511. package/myagent/skills/skill-creator/agents/analyzer.md +0 -274
  512. package/myagent/skills/skill-creator/agents/comparator.md +0 -202
  513. package/myagent/skills/skill-creator/agents/grader.md +0 -223
  514. package/myagent/skills/skill-creator/assets/eval_review.html +0 -146
  515. package/myagent/skills/skill-creator/eval-viewer/generate_review.py +0 -471
  516. package/myagent/skills/skill-creator/eval-viewer/viewer.html +0 -1325
  517. package/myagent/skills/skill-creator/references/schemas.md +0 -430
  518. package/myagent/skills/skill-creator/scripts/__init__.py +0 -0
  519. package/myagent/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
  520. package/myagent/skills/skill-creator/scripts/generate_report.py +0 -326
  521. package/myagent/skills/skill-creator/scripts/improve_description.py +0 -236
  522. package/myagent/skills/skill-creator/scripts/package_skill.py +0 -136
  523. package/myagent/skills/skill-creator/scripts/quick_validate.py +0 -103
  524. package/myagent/skills/skill-creator/scripts/run_eval.py +0 -310
  525. package/myagent/skills/skill-creator/scripts/run_loop.py +0 -328
  526. package/myagent/skills/skill-creator/scripts/utils.py +0 -47
  527. package/myagent/skills/skill-finder-cn/SKILL.md +0 -66
  528. package/myagent/skills/skill-finder-cn/_meta.json +0 -6
  529. package/myagent/skills/skill-finder-cn/package.json +0 -5
  530. package/myagent/skills/skill-finder-cn/scripts/search.sh +0 -15
  531. package/myagent/skills/skill-vetter/SKILL.md +0 -137
  532. package/myagent/skills/stock-analysis-skill/SKILL.md +0 -156
  533. package/myagent/skills/stock-analysis-skill/package.json +0 -21
  534. package/myagent/skills/stock-analysis-skill/src/analyzer.ts +0 -264
  535. package/myagent/skills/stock-analysis-skill/src/dataFetcher.ts +0 -130
  536. package/myagent/skills/stock-analysis-skill/src/dividend.ts +0 -226
  537. package/myagent/skills/stock-analysis-skill/src/index.ts +0 -327
  538. package/myagent/skills/stock-analysis-skill/src/rumorScanner.ts +0 -200
  539. package/myagent/skills/stock-analysis-skill/src/types.ts +0 -167
  540. package/myagent/skills/stock-analysis-skill/src/watchlist.ts +0 -292
  541. package/myagent/skills/stock-analysis-skill/tsconfig.json +0 -15
  542. package/myagent/skills/storyboard-manager/SKILL.md +0 -532
  543. package/myagent/skills/storyboard-manager/index.js +0 -9
  544. package/myagent/skills/storyboard-manager/package.json +0 -11
  545. package/myagent/skills/storyboard-manager/references/character_development.md +0 -232
  546. package/myagent/skills/storyboard-manager/references/story_structures.md +0 -148
  547. package/myagent/skills/storyboard-manager/scripts/consistency_checker.py +0 -391
  548. package/myagent/skills/storyboard-manager/scripts/timeline_tracker.py +0 -352
  549. package/myagent/skills/system_skill.py +0 -258
  550. package/myagent/skills/ui-ux-pro-max/SKILL.md +0 -43
  551. package/myagent/skills/ui-ux-pro-max/_meta.json +0 -6
  552. package/myagent/skills/ui-ux-pro-max/assets/data/charts.csv +0 -26
  553. package/myagent/skills/ui-ux-pro-max/assets/data/colors.csv +0 -97
  554. package/myagent/skills/ui-ux-pro-max/assets/data/icons.csv +0 -101
  555. package/myagent/skills/ui-ux-pro-max/assets/data/landing.csv +0 -31
  556. package/myagent/skills/ui-ux-pro-max/assets/data/products.csv +0 -97
  557. package/myagent/skills/ui-ux-pro-max/assets/data/react-performance.csv +0 -45
  558. package/myagent/skills/ui-ux-pro-max/assets/data/stacks/astro.csv +0 -54
  559. package/myagent/skills/ui-ux-pro-max/assets/data/stacks/flutter.csv +0 -53
  560. package/myagent/skills/ui-ux-pro-max/assets/data/stacks/html-tailwind.csv +0 -56
  561. package/myagent/skills/ui-ux-pro-max/assets/data/stacks/jetpack-compose.csv +0 -53
  562. package/myagent/skills/ui-ux-pro-max/assets/data/stacks/nextjs.csv +0 -53
  563. package/myagent/skills/ui-ux-pro-max/assets/data/stacks/nuxt-ui.csv +0 -51
  564. package/myagent/skills/ui-ux-pro-max/assets/data/stacks/nuxtjs.csv +0 -59
  565. package/myagent/skills/ui-ux-pro-max/assets/data/stacks/react-native.csv +0 -52
  566. package/myagent/skills/ui-ux-pro-max/assets/data/stacks/react.csv +0 -54
  567. package/myagent/skills/ui-ux-pro-max/assets/data/stacks/shadcn.csv +0 -61
  568. package/myagent/skills/ui-ux-pro-max/assets/data/stacks/svelte.csv +0 -54
  569. package/myagent/skills/ui-ux-pro-max/assets/data/stacks/swiftui.csv +0 -51
  570. package/myagent/skills/ui-ux-pro-max/assets/data/stacks/vue.csv +0 -50
  571. package/myagent/skills/ui-ux-pro-max/assets/data/styles.csv +0 -68
  572. package/myagent/skills/ui-ux-pro-max/assets/data/typography.csv +0 -58
  573. package/myagent/skills/ui-ux-pro-max/assets/data/ui-reasoning.csv +0 -101
  574. package/myagent/skills/ui-ux-pro-max/assets/data/ux-guidelines.csv +0 -100
  575. package/myagent/skills/ui-ux-pro-max/assets/data/web-interface.csv +0 -31
  576. package/myagent/skills/ui-ux-pro-max/data/charts.csv +0 -26
  577. package/myagent/skills/ui-ux-pro-max/data/colors.csv +0 -97
  578. package/myagent/skills/ui-ux-pro-max/data/icons.csv +0 -101
  579. package/myagent/skills/ui-ux-pro-max/data/landing.csv +0 -31
  580. package/myagent/skills/ui-ux-pro-max/data/products.csv +0 -97
  581. package/myagent/skills/ui-ux-pro-max/data/react-performance.csv +0 -45
  582. package/myagent/skills/ui-ux-pro-max/data/stacks/astro.csv +0 -54
  583. package/myagent/skills/ui-ux-pro-max/data/stacks/flutter.csv +0 -53
  584. package/myagent/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +0 -56
  585. package/myagent/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +0 -53
  586. package/myagent/skills/ui-ux-pro-max/data/stacks/nextjs.csv +0 -53
  587. package/myagent/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +0 -51
  588. package/myagent/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +0 -59
  589. package/myagent/skills/ui-ux-pro-max/data/stacks/react-native.csv +0 -52
  590. package/myagent/skills/ui-ux-pro-max/data/stacks/react.csv +0 -54
  591. package/myagent/skills/ui-ux-pro-max/data/stacks/shadcn.csv +0 -61
  592. package/myagent/skills/ui-ux-pro-max/data/stacks/svelte.csv +0 -54
  593. package/myagent/skills/ui-ux-pro-max/data/stacks/swiftui.csv +0 -51
  594. package/myagent/skills/ui-ux-pro-max/data/stacks/vue.csv +0 -50
  595. package/myagent/skills/ui-ux-pro-max/data/styles.csv +0 -68
  596. package/myagent/skills/ui-ux-pro-max/data/typography.csv +0 -58
  597. package/myagent/skills/ui-ux-pro-max/data/ui-reasoning.csv +0 -101
  598. package/myagent/skills/ui-ux-pro-max/data/ux-guidelines.csv +0 -100
  599. package/myagent/skills/ui-ux-pro-max/data/web-interface.csv +0 -31
  600. package/myagent/skills/ui-ux-pro-max/references/upstream-README.md +0 -488
  601. package/myagent/skills/ui-ux-pro-max/references/upstream-skill-content.md +0 -288
  602. package/myagent/skills/ui-ux-pro-max/scripts/__init__.py +0 -0
  603. package/myagent/skills/ui-ux-pro-max/scripts/core.py +0 -253
  604. package/myagent/skills/ui-ux-pro-max/scripts/design_system.py +0 -1071
  605. package/myagent/skills/ui-ux-pro-max/scripts/search.py +0 -111
  606. package/myagent/skills/video-generation/LICENSE.txt +0 -21
  607. package/myagent/skills/video-generation/SKILL.md +0 -1082
  608. package/myagent/skills/video-generation/scripts/video.ts +0 -168
  609. package/myagent/skills/video-understand/LICENSE.txt +0 -21
  610. package/myagent/skills/video-understand/SKILL.md +0 -916
  611. package/myagent/skills/video-understand/scripts/video-understand.ts +0 -41
  612. package/myagent/skills/visual-design-foundations/SKILL.md +0 -318
  613. package/myagent/skills/visual-design-foundations/references/color-systems.md +0 -417
  614. package/myagent/skills/visual-design-foundations/references/spacing-iconography.md +0 -425
  615. package/myagent/skills/visual-design-foundations/references/typography-systems.md +0 -432
  616. package/myagent/skills/web-reader/LICENSE.txt +0 -21
  617. package/myagent/skills/web-reader/SKILL.md +0 -1140
  618. package/myagent/skills/web-reader/scripts/web-reader.ts +0 -37
  619. package/myagent/skills/web-search/LICENSE.txt +0 -21
  620. package/myagent/skills/web-search/SKILL.md +0 -912
  621. package/myagent/skills/web-search/scripts/web_search.ts +0 -44
  622. package/myagent/skills/web-shader-extractor/SKILL.md +0 -145
  623. package/myagent/skills/web-shader-extractor/references/config-extraction.md +0 -50
  624. package/myagent/skills/web-shader-extractor/references/encoded-definitions.md +0 -53
  625. package/myagent/skills/web-shader-extractor/references/extraction-workflow.md +0 -61
  626. package/myagent/skills/web-shader-extractor/references/porting-strategy.md +0 -164
  627. package/myagent/skills/web-shader-extractor/references/shader-injection.md +0 -126
  628. package/myagent/skills/web-shader-extractor/references/shaders-com.md +0 -190
  629. package/myagent/skills/web-shader-extractor/references/tech-signatures.md +0 -54
  630. package/myagent/skills/web-shader-extractor/references/tsl-extraction.md +0 -41
  631. package/myagent/skills/web-shader-extractor/references/unicorn-studio.md +0 -353
  632. package/myagent/skills/web-shader-extractor/scripts/fetch-rendered-dom.mjs +0 -153
  633. package/myagent/skills/web-shader-extractor/scripts/scan-bundle.sh +0 -76
  634. package/myagent/skills/writing-plans/SKILL.md +0 -116
  635. package/myagent/skills/writing-plans/_meta.json +0 -6
  636. package/myagent/skills/xlsx/LICENSE.txt +0 -13
  637. package/myagent/skills/xlsx/SKILL.md +0 -230
  638. package/myagent/skills/xlsx/engines/chart-templates.md +0 -167
  639. package/myagent/skills/xlsx/engines/chart.md +0 -87
  640. package/myagent/skills/xlsx/engines/design.md +0 -575
  641. package/myagent/skills/xlsx/engines/vba-templates.md +0 -435
  642. package/myagent/skills/xlsx/quality/pipeline.md +0 -196
  643. package/myagent/skills/xlsx/scenes/advanced.md +0 -271
  644. package/myagent/skills/xlsx/scenes/analyze-recipes.md +0 -234
  645. package/myagent/skills/xlsx/scenes/analyze.md +0 -95
  646. package/myagent/skills/xlsx/scenes/convert.md +0 -133
  647. package/myagent/skills/xlsx/scenes/create.md +0 -105
  648. package/myagent/skills/xlsx/scenes/edit-patterns.md +0 -222
  649. package/myagent/skills/xlsx/scenes/edit.md +0 -195
  650. package/myagent/skills/xlsx/scenes/finance.md +0 -318
  651. package/myagent/skills/xlsx/scenes/finance_lite.md +0 -192
  652. package/myagent/skills/xlsx/scenes/vba.md +0 -298
  653. package/myagent/skills/xlsx/setup.sh +0 -136
  654. package/myagent/skills/xlsx/templates/base.py +0 -632
  655. package/myagent/skills/xlsx/templates/palettes.py +0 -521
  656. package/myagent/skills/xlsx/xlsx.py +0 -1299
  657. package/myagent/skills/xlsx_skill.py +0 -346
  658. package/myagent/start.js +0 -843
  659. package/myagent/start.sh +0 -240
  660. package/myagent/web/__init__.py +0 -1
  661. package/myagent/web/api_server.py +0 -8933
  662. package/myagent/web/tts_handler.py +0 -216
  663. package/myagent/web/ui/admin/admin-agentchat.js +0 -175
  664. package/myagent/web/ui/admin/admin-agents.js +0 -565
  665. package/myagent/web/ui/admin/admin-core.js +0 -326
  666. package/myagent/web/ui/admin/admin-dashboard.js +0 -148
  667. package/myagent/web/ui/admin/admin-executor.js +0 -62
  668. package/myagent/web/ui/admin/admin-files.js +0 -76
  669. package/myagent/web/ui/admin/admin-llm.js +0 -185
  670. package/myagent/web/ui/admin/admin-logs.js +0 -64
  671. package/myagent/web/ui/admin/admin-memory.js +0 -86
  672. package/myagent/web/ui/admin/admin-org.js +0 -278
  673. package/myagent/web/ui/admin/admin-permissions.js +0 -142
  674. package/myagent/web/ui/admin/admin-platforms.js +0 -218
  675. package/myagent/web/ui/admin/admin-sessions.js +0 -218
  676. package/myagent/web/ui/admin/admin-skills.js +0 -212
  677. package/myagent/web/ui/admin/admin-system.js +0 -149
  678. package/myagent/web/ui/admin/admin-tasks.js +0 -126
  679. package/myagent/web/ui/chat/chat.css +0 -2739
  680. package/myagent/web/ui/chat/chat.js +0 -52
  681. package/myagent/web/ui/chat/chat_container.html +0 -335
  682. package/myagent/web/ui/chat/chat_main.js +0 -5717
  683. package/myagent/web/ui/chat/flow_engine.js +0 -2663
  684. package/myagent/web/ui/chat/groupchat.js +0 -901
  685. package/myagent/web/ui/chat/left_sessions.html +0 -54
  686. package/myagent/web/ui/chat/middle_chat.html +0 -162
  687. package/myagent/web/ui/chat/right_agents.html +0 -70
  688. package/myagent/web/ui/index.html +0 -375
  689. package/myagent/worklog-v1.22.md +0 -12
  690. package/myagent/worklog.md +0 -429
  691. package/skills/pptx/LICENSE.txt +0 -30
  692. package/skills/pptx/SKILL.md +0 -507
  693. package/skills/pptx/html2pptx.md +0 -625
  694. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  695. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  696. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  697. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  698. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  699. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  700. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  701. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  702. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  703. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  704. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  705. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  706. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  707. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  708. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  709. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  710. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  711. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  712. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  713. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  714. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  715. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  716. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  717. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  718. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  719. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  720. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  721. package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  722. package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  723. package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  724. package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  725. package/skills/pptx/ooxml/schemas/mce/mc.xsd +0 -75
  726. package/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
  727. package/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
  728. package/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
  729. package/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
  730. package/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
  731. package/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  732. package/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
  733. package/skills/pptx/ooxml/scripts/pack.py +0 -159
  734. package/skills/pptx/ooxml/scripts/unpack.py +0 -29
  735. package/skills/pptx/ooxml/scripts/validate.py +0 -69
  736. package/skills/pptx/ooxml/scripts/validation/__init__.py +0 -15
  737. package/skills/pptx/ooxml/scripts/validation/base.py +0 -951
  738. package/skills/pptx/ooxml/scripts/validation/docx.py +0 -274
  739. package/skills/pptx/ooxml/scripts/validation/pptx.py +0 -315
  740. package/skills/pptx/ooxml/scripts/validation/redlining.py +0 -279
  741. package/skills/pptx/ooxml.md +0 -427
  742. package/skills/pptx/scripts/html2pptx.js +0 -1044
  743. package/skills/pptx/scripts/inventory.py +0 -1020
  744. package/skills/pptx/scripts/rearrange.py +0 -231
  745. package/skills/pptx/scripts/replace.py +0 -385
  746. package/skills/pptx/scripts/thumbnail.py +0 -450
@@ -136,6 +136,13 @@ class MainAgent(BaseAgent):
136
136
 
137
137
  【Agent间通信】
138
138
  - 向其他Agent发送消息: myagent-ai chat --agent <Agent路径> --message "消息内容"
139
+ - 向其他Agent发送文件: myagent-ai chat --agent <Agent路径> --file "文件路径"
140
+ - 同时发送消息和文件: myagent-ai chat --agent <路径> -m "消息" -f "文件路径"
141
+ - 可同时发送多个文件: myagent-ai chat --agent <路径> -f "文件1|文件2|文件3" (用|分隔多个文件路径)
142
+
143
+ 【压缩解压】
144
+ - 压缩文件/文件夹: myagent-ai zip 路径1 [路径2] ... [-o 输出.zip] [--exclude __pycache__ *.pyc .git]
145
+ - 解压zip文件: myagent-ai unzip 文件.zip [-o 输出目录]
139
146
 
140
147
  【媒体播放】
141
148
  - 播放音频: myagent-ai playaudio --url 音频URL [--title 标题] 或 myagent-ai playaudio --file 本地路径
@@ -153,6 +160,9 @@ class MainAgent(BaseAgent):
153
160
  <tool><toolname>command</toolname><parms>{"command": "myagent-ai playaudio --url https://music.163.com/song?id=123 --title 歌曲名"}</parms><timeout>10</timeout></tool>
154
161
  <tool><toolname>command</toolname><parms>{"command": "myagent-ai playvideo --url https://www.bilibili.com/video/BV123 --title 视频名"}</parms><timeout>10</timeout></tool>
155
162
  <tool><toolname>command</toolname><parms>{"command": "myagent-ai chat --agent default/coder --message \"请帮我分析这段代码的时间复杂度\""}</parms><timeout>10</timeout></tool>
163
+ <tool><toolname>command</toolname><parms>{"command": "myagent-ai chat --agent default/coder -f \"/path/to/report.pdf\" -m \"请审阅这份报告\""}</parms><timeout>10</timeout></tool>
164
+ <tool><toolname>command</toolname><parms>{"command": "myagent-ai zip /path/to/project -o backup.zip --exclude __pycache__ .git"}</parms><timeout>30</timeout></tool>
165
+ <tool><toolname>command</toolname><parms>{"command": "myagent-ai unzip /path/to/archive.zip -o ./output"}</parms><timeout>30</timeout></tool>
156
166
 
157
167
  多个命令可用 && 连接一次执行(强烈推荐,减少LLM回调次数):
158
168
  <tool><toolname>command</toolname><parms>{"command": "myagent-ai search xxx && myagent-ai read-url https://..."}</parms><timeout>30</timeout></tool>
@@ -298,6 +308,7 @@ class MainAgent(BaseAgent):
298
308
  agent_name=_injected_name or self.name,
299
309
  agent_description=_injected_desc or self.description,
300
310
  agent_override_prompt=_override_prompt,
311
+ agent_path=getattr(self, '_agent_override_path', None),
301
312
  )
302
313
  finally:
303
314
  # 移除活跃上下文
@@ -598,6 +609,7 @@ class MainAgent(BaseAgent):
598
609
  stream_callback: Optional[Callable] = None,
599
610
  stream_response=None,
600
611
  text_delta_callback=None,
612
+ agent_path: Optional[str] = None,
601
613
  ) -> AgentContext:
602
614
  """
603
615
  V2 主处理循环 — 使用结构化输出格式。
@@ -619,6 +631,7 @@ class MainAgent(BaseAgent):
619
631
  stream_callback: 可选的 SSE 事件回调 (callable 或 async callable)
620
632
  stream_response: 可选的流式响应对象(用于 LLM 流式输出)
621
633
  text_delta_callback: 可选的文本增量回调
634
+ agent_path: Agent 路径(用于独立工作目录)
622
635
  """
623
636
  task_id = context.task_id or generate_id("task")
624
637
  context.task_id = task_id
@@ -631,7 +644,8 @@ class MainAgent(BaseAgent):
631
644
  try:
632
645
  return await self._process_v2_inner(
633
646
  context, task_id, agent_name, agent_description,
634
- agent_override_prompt, stream_callback, stream_response, text_delta_callback
647
+ agent_override_prompt, stream_callback, stream_response, text_delta_callback,
648
+ agent_path=agent_path,
635
649
  )
636
650
  except Exception as e:
637
651
  logger.error(f"[{task_id}] V2 执行循环异常: {e}", exc_info=True)
@@ -649,6 +663,7 @@ class MainAgent(BaseAgent):
649
663
  stream_callback: Optional[Callable] = None,
650
664
  stream_response=None,
651
665
  text_delta_callback=None,
666
+ agent_path: Optional[str] = None,
652
667
  ) -> AgentContext:
653
668
  """V2 内部循环逻辑 — 结构化输出 + 工具调度 + SSE 事件推送"""
654
669
 
@@ -778,6 +793,7 @@ class MainAgent(BaseAgent):
778
793
  get_knowledge=get_knowledge_content,
779
794
  recall=recall_content,
780
795
  memory_context_prompt=_memory_ctx_prompt,
796
+ agent_path=agent_path,
781
797
  )
782
798
 
783
799
  await self._emit_v2_event(
@@ -82,7 +82,7 @@ class ChatBotManager:
82
82
  asyncio.ensure_future(self._safe_stop(key, bot))
83
83
  else:
84
84
  loop.run_until_complete(bot.stop())
85
- except RuntimeError:
85
+ except Exception:
86
86
  pass
87
87
  if task and not task.done():
88
88
  task.cancel()
@@ -126,6 +126,7 @@ class ContextBuilder:
126
126
  get_knowledge: str = "",
127
127
  recall: str = "",
128
128
  memory_context_prompt: str = "",
129
+ agent_path: Optional[str] = None,
129
130
  ) -> str:
130
131
  """
131
132
  构建完整的 <context> XML 字符串。
@@ -143,6 +144,7 @@ class ContextBuilder:
143
144
  用于 RAG 搜索知识库。为空时使用用户消息作为查询。
144
145
  recall: 上一轮 LLM 输出的 <recall> 内容,
145
146
  用于定向检索长期记忆。为空时仅用用户消息搜索。
147
+ agent_path: Agent 路径(如 "default"),用于定位独立工作目录。
146
148
 
147
149
  Returns:
148
150
  完整的 <context>...</context> XML 字符串
@@ -162,7 +164,7 @@ class ContextBuilder:
162
164
 
163
165
  sections: List[str] = [
164
166
  self._build_datetime(),
165
- self._build_whomi(agent_name, agent_description, agent_override_prompt),
167
+ self._build_whomi(agent_name, agent_description, agent_override_prompt, agent_path=agent_path),
166
168
  self._build_memory(query, session_id, recall, memory_context_prompt),
167
169
  self._build_knowledge(kb_query),
168
170
  # 轻量近期对话兜底:最近 3 轮对话摘要,补充 automemory 搜索的盲区
@@ -216,6 +218,7 @@ class ContextBuilder:
216
218
  agent_name: str,
217
219
  agent_description: str,
218
220
  agent_override_prompt: Optional[str] = None,
221
+ agent_path: Optional[str] = None,
219
222
  ) -> str:
220
223
  """
221
224
  构建 <whomi> 段落 —— Agent 身份信息。
@@ -226,6 +229,7 @@ class ContextBuilder:
226
229
  agent_name: Agent 名称
227
230
  agent_description: Agent 描述
228
231
  agent_override_prompt: 可选的覆盖提示词
232
+ agent_path: Agent 路径(用于定位独立工作目录)
229
233
 
230
234
  Returns:
231
235
  <whomi> XML 段落字符串
@@ -239,8 +243,8 @@ class ContextBuilder:
239
243
  f"描述: {safe_desc}",
240
244
  ]
241
245
 
242
- # [v1.20.8] 注入工作目录信息,让 Agent 知道文件应保存到哪里
243
- work_dir = self._get_workspace_dir()
246
+ # [v1.20.8] [v1.23.52] 注入工作目录信息,每个 Agent 使用独立工作目录
247
+ work_dir = self._get_workspace_dir(agent_path=agent_path)
244
248
  if work_dir:
245
249
  parts.append(f"工作目录: {_xml_escape(str(work_dir))}")
246
250
  parts.append(f"文件保存说明: 通过 file_write 或代码生成的文件请保存到工作目录下的 userfiles 子目录。发送文件给用户请使用 file_send 工具。")
@@ -251,14 +255,31 @@ class ContextBuilder:
251
255
  parts.append("</whomi>")
252
256
  return "\n".join(parts)
253
257
 
254
- def _get_workspace_dir(self) -> Optional[str]:
255
- """[v1.20.8] 获取工作目录路径(~/.myagent/data/workspace)"""
258
+ def _get_workspace_dir(self, agent_path: Optional[str] = None) -> Optional[str]:
259
+ """[v1.20.8] [v1.23.52] 获取工作目录路径
260
+
261
+ 如果指定了 agent_path 且非默认 agent,则返回该 Agent 独立的工作目录:
262
+ ~/.myagent/data/agents/{agent_path}/workspace/
263
+ 否则返回全局工作目录:
264
+ ~/.myagent/data/workspace/
265
+ 独立目录下自动创建 userfiles 子目录。
266
+ """
256
267
  try:
257
268
  from config import ConfigManager
269
+ import os
258
270
  cm = ConfigManager()
259
- wd = cm.data_dir / "workspace"
260
- wd.mkdir(parents=True, exist_ok=True)
261
- return str(wd)
271
+ if agent_path and agent_path != "default":
272
+ # 使用 Agent 独立工作目录
273
+ wd = cm.data_dir / "agents" / agent_path / "workspace"
274
+ wd.mkdir(parents=True, exist_ok=True)
275
+ userfiles = wd / "userfiles"
276
+ userfiles.mkdir(parents=True, exist_ok=True)
277
+ return str(wd)
278
+ else:
279
+ # 默认 agent 或无 agent_path 时使用全局工作目录
280
+ wd = cm.data_dir / "workspace"
281
+ wd.mkdir(parents=True, exist_ok=True)
282
+ return str(wd)
262
283
  except Exception:
263
284
  return None
264
285
 
@@ -236,31 +236,62 @@ class ToolDispatcher:
236
236
  )
237
237
  if not media_result.get("success"):
238
238
  result["output"] += f"\n[视频播放失败: {media_result.get('error', '')}]"
239
-
240
- # [v1.23.29] 检测 __CHAT_AGENT__ 标记 — CLI chat 命令输出此标记
241
- # 格式: __CHAT_AGENT__agent_path|agent_name|message__END__
242
- chat_markers = _re.findall(r'__CHAT_AGENT__(.+?)\|(.+?)\|(.+?)__END__', clean_output)
239
+ # [v1.23.55] 检测 __CHAT_AGENT__ 标记 — CLI chat 命令输出此标记
240
+ # 新格式(4段): __CHAT_AGENT__agent_path|agent_name|message|files__END__
241
+ # 旧格式(3段): __CHAT_AGENT__agent_path|agent_name|message__END__
242
+ # files 为空时表示纯文本消息,非空时为 | 分隔的文件绝对路径列表
243
+ chat_markers = _re.findall(r'__CHAT_AGENT__(.+?)\|(.+?)\|(.+?)\|(.+?)__END__', clean_output)
243
244
  if chat_markers:
244
245
  clean_output = _re.sub(r'__CHAT_AGENT__.+?__END__\n?', '', clean_output).strip()
245
246
  result["output"] = clean_output
246
- for chat_agent_path, chat_agent_name, chat_msg in chat_markers:
247
+ for chat_agent_path, chat_agent_name, chat_msg, chat_files in chat_markers:
248
+ chat_files = chat_files.strip()
249
+ file_list = [f.strip() for f in chat_files.split("|") if f.strip()] if chat_files else []
247
250
  # Store as a chat agent event in sent_files for persistence
248
251
  if sent_files is not None:
249
- sent_files.append({
252
+ chat_entry = {
250
253
  "_type": "chat_agent",
251
254
  "target_agent": chat_agent_path.strip(),
252
255
  "target_name": chat_agent_name.strip(),
253
256
  "message": chat_msg.strip(),
254
- })
257
+ }
258
+ if file_list:
259
+ chat_entry["files"] = file_list
260
+ sent_files.append(chat_entry)
255
261
  # Emit SSE event for frontend display
256
262
  try:
257
- await self._emit_sse("v2_chat_agent", {
263
+ event_data = {
258
264
  "target_agent": chat_agent_path.strip(),
259
265
  "target_name": chat_agent_name.strip(),
260
266
  "message": chat_msg.strip(),
261
- }, stream_callback)
267
+ }
268
+ if file_list:
269
+ event_data["files"] = file_list
270
+ await self._emit_sse("v2_chat_agent", event_data, stream_callback)
262
271
  except Exception:
263
272
  pass
273
+ else:
274
+ # 兼容旧格式(3段): __CHAT_AGENT__agent_path|agent_name|message__END__
275
+ chat_markers_old = _re.findall(r'__CHAT_AGENT__(.+?)\|(.+?)\|(.+?)__END__', clean_output)
276
+ if chat_markers_old:
277
+ clean_output = _re.sub(r'__CHAT_AGENT__.+?__END__\n?', '', clean_output).strip()
278
+ result["output"] = clean_output
279
+ for chat_agent_path, chat_agent_name, chat_msg in chat_markers_old:
280
+ if sent_files is not None:
281
+ sent_files.append({
282
+ "_type": "chat_agent",
283
+ "target_agent": chat_agent_path.strip(),
284
+ "target_name": chat_agent_name.strip(),
285
+ "message": chat_msg.strip(),
286
+ })
287
+ try:
288
+ await self._emit_sse("v2_chat_agent", {
289
+ "target_agent": chat_agent_path.strip(),
290
+ "target_name": chat_agent_name.strip(),
291
+ "message": chat_msg.strip(),
292
+ }, stream_callback)
293
+ except Exception:
294
+ pass
264
295
 
265
296
  # [v1.23.32] 确保 result 始终有 output 字段(to_dict 返回 stdout,V2 循环依赖 output)
266
297
  if "output" not in result:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "myagent-ai",
3
- "version": "1.23.52",
3
+ "version": "1.23.55",
4
4
  "description": "本地桌面端执行型AI助手 - Open Interpreter 风格 | Local Desktop Execution-Oriented AI Assistant",
5
5
  "main": "main.py",
6
6
  "bin": {
@@ -43,4 +43,4 @@
43
43
  "python": ">=3.10",
44
44
  "node": ">=18"
45
45
  }
46
- }
46
+ }
package/scripts/cli.py CHANGED
@@ -138,6 +138,9 @@ async def _run():
138
138
  "playvideo": cmd_playvideo,
139
139
  # 通信
140
140
  "chat": cmd_chat,
141
+ # 压缩解压
142
+ "zip": cmd_zip,
143
+ "unzip": cmd_unzip,
141
144
  # 帮助
142
145
  "help": cmd_help,
143
146
  "-h": cmd_help,
@@ -1073,14 +1076,19 @@ async def cmd_playvideo(args):
1073
1076
  # =============================================================================
1074
1077
 
1075
1078
  async def cmd_chat(args):
1076
- """Agent间通信 — 向群内其他Agent发送消息"""
1079
+ """Agent间通信 — 向群内其他Agent发送消息或文件"""
1077
1080
  import argparse
1078
- p = argparse.ArgumentParser(prog="myagent-ai chat", description="向群内其他Agent发送消息,消息会出现在群聊记录中")
1081
+ p = argparse.ArgumentParser(prog="myagent-ai chat", description="向群内其他Agent发送消息或文件,消息会出现在群聊记录中")
1079
1082
  p.add_argument("--agent", "-a", required=True, help="目标Agent路径,如 default/coder")
1080
- p.add_argument("--message", "-m", required=True, help="要发送的消息内容")
1083
+ p.add_argument("--message", "-m", default="", help="要发送的消息内容")
1084
+ p.add_argument("--file", "-f", default="", help="要发送的文件路径(可多次使用: -f file1 -f file2)")
1081
1085
  p.add_argument("--group", "-g", help="群ID(可选,默认使用最近活跃的群)")
1082
1086
  a = p.parse_args(args)
1083
1087
 
1088
+ if not a.message and not a.file:
1089
+ print("错误: 必须指定 --message 或 --file", file=sys.stderr)
1090
+ sys.exit(1)
1091
+
1084
1092
  # Find agent config
1085
1093
  agent_dir = Path(__file__).parent.parent / "data" / "agents" / a.agent
1086
1094
  cfg_file = agent_dir / "config.json"
@@ -1090,8 +1098,126 @@ async def cmd_chat(args):
1090
1098
  cfg = json.loads(cfg_file.read_text(encoding="utf-8"))
1091
1099
  agent_name = cfg.get("name", a.agent)
1092
1100
 
1093
- # Output chat marker (similar to __SEND_FILE__ pattern)
1094
- print(f"__CHAT_AGENT__{a.agent}|{agent_name}|{a.message}__END__")
1101
+ # 验证文件是否存在
1102
+ files_info = ""
1103
+ if a.file:
1104
+ import glob as _glob
1105
+ # 支持多个 -f 参数
1106
+ file_paths = a.file.split("|")
1107
+ valid_files = []
1108
+ for fp in file_paths:
1109
+ fp = fp.strip()
1110
+ if not fp:
1111
+ continue
1112
+ # 支持通配符
1113
+ matched = _glob.glob(fp)
1114
+ if not matched:
1115
+ print(f"错误: 文件不存在: {fp}", file=sys.stderr)
1116
+ sys.exit(1)
1117
+ for mf in matched:
1118
+ abs_mf = os.path.abspath(mf)
1119
+ if os.path.isfile(abs_mf):
1120
+ valid_files.append(abs_mf)
1121
+ if valid_files:
1122
+ files_info = "|".join(valid_files)
1123
+
1124
+ # Output chat marker
1125
+ # 格式: __CHAT_AGENT__agent_path|agent_name|message|files__END__
1126
+ # files 为空字符串时表示纯文本消息
1127
+ print(f"__CHAT_AGENT__{a.agent}|{agent_name}|{a.message}|{files_info}__END__")
1128
+
1129
+
1130
+ async def cmd_zip(args):
1131
+ """压缩文件或文件夹"""
1132
+ import argparse
1133
+ import zipfile
1134
+ p = argparse.ArgumentParser(prog="myagent-ai zip", description="压缩文件或文件夹为 zip")
1135
+ p.add_argument("paths", nargs="+", help="要压缩的文件或文件夹路径(支持多个)")
1136
+ p.add_argument("-o", "--output", default="", help="输出 zip 文件路径(默认: 第一个路径名.zip)")
1137
+ p.add_argument("--exclude", nargs="*", default=[], help="要排除的文件模式(如 __pycache__ *.pyc .git)")
1138
+ a = p.parse_args(args)
1139
+
1140
+ import fnmatch
1141
+ excluded = set(a.exclude) if a.exclude else set()
1142
+
1143
+ # 确定输出路径
1144
+ if a.output:
1145
+ out_path = os.path.abspath(a.output)
1146
+ else:
1147
+ first = a.paths[0].rstrip(os.sep)
1148
+ out_path = os.path.abspath(first + ".zip")
1149
+
1150
+ # 确保输出目录存在
1151
+ os.makedirs(os.path.dirname(out_path) or ".", exist_ok=True)
1152
+
1153
+ file_count = 0
1154
+ total_size = 0
1155
+ with zipfile.ZipFile(out_path, 'w', zipfile.ZIP_DEFLATED) as zf:
1156
+ for src in a.paths:
1157
+ src = os.path.abspath(src)
1158
+ if os.path.isfile(src):
1159
+ # 检查是否排除
1160
+ fname = os.path.basename(src)
1161
+ skip = False
1162
+ for pat in excluded:
1163
+ if fnmatch.fnmatch(fname, pat):
1164
+ skip = True
1165
+ break
1166
+ if skip:
1167
+ continue
1168
+ zf.write(src, fname)
1169
+ file_count += 1
1170
+ total_size += os.path.getsize(src)
1171
+ elif os.path.isdir(src):
1172
+ for root, dirs, files in os.walk(src):
1173
+ # 过滤排除的目录
1174
+ dirs[:] = [d for d in dirs if not any(fnmatch.fnmatch(d, p) for p in excluded)]
1175
+ for f in files:
1176
+ if any(fnmatch.fnmatch(f, p) for p in excluded):
1177
+ continue
1178
+ full = os.path.join(root, f)
1179
+ arcname = os.path.relpath(full, os.path.dirname(src))
1180
+ zf.write(full, arcname)
1181
+ file_count += 1
1182
+ total_size += os.path.getsize(full)
1183
+ else:
1184
+ print(f"错误: 路径不存在: {src}", file=sys.stderr)
1185
+ sys.exit(1)
1186
+
1187
+ size_str = f"{total_size / 1024:.1f} KB" if total_size < 1024 * 1024 else f"{total_size / (1024 * 1024):.1f} MB"
1188
+ print(f"压缩完成: {out_path} ({file_count} 个文件, {size_str})")
1189
+ # 输出文件标记,自动发送给用户
1190
+ print(f"__SEND_FILE__{out_path}|压缩文件__END__")
1191
+
1192
+
1193
+ async def cmd_unzip(args):
1194
+ """解压缩 zip 文件"""
1195
+ import argparse
1196
+ import zipfile
1197
+ p = argparse.ArgumentParser(prog="myagent-ai unzip", description="解压缩 zip 文件")
1198
+ p.add_argument("zipfile", help="zip 文件路径")
1199
+ p.add_argument("-o", "--output", default="", help="输出目录(默认: zip 文件所在目录,去除 .zip 后缀)")
1200
+ a = p.parse_args(args)
1201
+
1202
+ zip_path = os.path.abspath(a.zipfile)
1203
+ if not os.path.isfile(zip_path):
1204
+ print(f"错误: 文件不存在: {zip_path}", file=sys.stderr)
1205
+ sys.exit(1)
1206
+
1207
+ # 确定输出目录
1208
+ if a.output:
1209
+ out_dir = os.path.abspath(a.output)
1210
+ else:
1211
+ out_dir = os.path.splitext(zip_path)[0]
1212
+
1213
+ os.makedirs(out_dir, exist_ok=True)
1214
+
1215
+ file_count = 0
1216
+ with zipfile.ZipFile(zip_path, 'r') as zf:
1217
+ zf.extractall(out_dir)
1218
+ file_count = len(zf.namelist())
1219
+
1220
+ print(f"解压完成: {out_dir} ({file_count} 个文件)")
1095
1221
 
1096
1222
 
1097
1223
  # =============================================================================
@@ -1164,6 +1290,12 @@ GUI (仅 Windows/macOS):
1164
1290
 
1165
1291
  通信:
1166
1292
  myagent-ai chat --agent <路径> --message "消息" 向其他Agent发送消息
1293
+ myagent-ai chat --agent <路径> --file <文件路径> 向其他Agent发送文件
1294
+ myagent-ai chat --agent <路径> -m "消息" -f <文件> 同时发送消息和文件
1295
+
1296
+ 压缩解压:
1297
+ myagent-ai zip <路径1> [路径2] ... [-o 输出.zip] 压缩文件或文件夹
1298
+ myagent-ai unzip <文件.zip> [-o 输出目录] 解压 zip 文件
1167
1299
 
1168
1300
  媒体播放:
1169
1301
  myagent-ai playaudio --url <URL> [--title] 播放在线音频
package/start.js CHANGED
@@ -793,6 +793,10 @@ function main() {
793
793
  "memory",
794
794
  // 媒体播放
795
795
  "playaudio", "playvideo",
796
+ // Agent 通信
797
+ "chat",
798
+ // 压缩解压
799
+ "zip", "unzip",
796
800
  // 帮助
797
801
  "help", "-h", "--help",
798
802
  ];
package/web/api_server.py CHANGED
@@ -4083,8 +4083,11 @@ window.addEventListener('beforeunload', function() {{
4083
4083
  data = await request.json()
4084
4084
  cp.enabled = data.get("enabled", not cp.enabled)
4085
4085
  self.core.config_mgr.save()
4086
- # 热更新聊天平台
4087
- await self._hot_reload_chat_platforms()
4086
+ # [v1.23.53] 热更新聊天平台(加异常保护,防止热更新失败导致配置无法保存)
4087
+ try:
4088
+ await self._hot_reload_chat_platforms()
4089
+ except Exception as e:
4090
+ logger.error(f"热更新聊天平台失败: {e}", exc_info=True)
4088
4091
  logger.info(f"聊天平台 {cp.display_name} 已{'启用' if cp.enabled else '禁用'}")
4089
4092
  return web.json_response({"ok": True, "enabled": cp.enabled, "id": cp.id, "hot_reload": True})
4090
4093
 
@@ -5532,6 +5535,16 @@ window.addEventListener('beforeunload', function() {{
5532
5535
  if agent_system_prompt and self.core.main_agent:
5533
5536
  self.core.main_agent._agent_override_prompt = agent_system_prompt
5534
5537
  self.core.main_agent._agent_override_path = agent_path
5538
+ # [v1.23.52] 为非默认 Agent 设置独立工作目录(executor 层面)
5539
+ _original_exec_work_dir = None
5540
+ if agent_path and agent_path != "default" and self.core.main_agent and self.core.main_agent.executor:
5541
+ from config import ConfigManager
5542
+ _cm = ConfigManager()
5543
+ _agent_wd = _cm.data_dir / "agents" / agent_path / "workspace"
5544
+ _agent_wd.mkdir(parents=True, exist_ok=True)
5545
+ (_agent_wd / "userfiles").mkdir(parents=True, exist_ok=True)
5546
+ _original_exec_work_dir = self.core.main_agent.executor.work_dir
5547
+ self.core.main_agent.executor.work_dir = str(_agent_wd)
5535
5548
  # [v1.23.35] 注入 Agent 名称和描述(群聊路径需要传递给 process_v2)
5536
5549
  # 确保 process() → process_v2() 拿到正确的 agent_name/agent_description
5537
5550
  if agent_path and self.core.main_agent:
@@ -5563,6 +5576,9 @@ window.addEventListener('beforeunload', function() {{
5563
5576
  self.core.main_agent._agent_override_name = None
5564
5577
  self.core.main_agent._agent_override_description = None
5565
5578
  self.core.main_agent._chat_mode = ""
5579
+ # [v1.23.52] 恢复执行引擎原始工作目录
5580
+ if _original_exec_work_dir is not None and self.core.main_agent.executor:
5581
+ self.core.main_agent.executor.work_dir = _original_exec_work_dir
5566
5582
  if self.core.main_agent.context_builder:
5567
5583
  self.core.main_agent.context_builder.agent_knowledge_dir = None
5568
5584
 
@@ -5840,14 +5856,25 @@ window.addEventListener('beforeunload', function() {{
5840
5856
  context.metadata["user_file_paths"] = _file_paths
5841
5857
  logger.info(f"[{session_id}] 用户发送了 {len(user_files)} 个文件,提取文本 {len(file_context) if _file_texts else 0} 字符")
5842
5858
 
5843
- # ── 根据 Agent 配置设置执行引擎参数(execution_mode 等)──
5859
+ # ── 根据 Agent 配置设置执行引擎参数(execution_mode、work_dir 等)──
5844
5860
  agent_cfg_for_exec = self._read_agent_config(agent_path)
5845
5861
  _original_exec_mode = None
5862
+ _original_work_dir = None
5846
5863
  if agent_cfg_for_exec and agent.executor:
5847
5864
  _exec_mode = agent_cfg_for_exec.get("execution_mode")
5848
5865
  if _exec_mode:
5849
5866
  _original_exec_mode = agent.executor.execution_mode
5850
5867
  agent.executor.set_execution_mode(_exec_mode)
5868
+ # [v1.23.52] 为非默认 Agent 设置独立工作目录
5869
+ if agent_path and agent_path != "default" and agent.executor:
5870
+ from config import ConfigManager
5871
+ cm = ConfigManager()
5872
+ agent_work_dir = cm.data_dir / "agents" / agent_path / "workspace"
5873
+ agent_work_dir.mkdir(parents=True, exist_ok=True)
5874
+ (agent_work_dir / "userfiles").mkdir(parents=True, exist_ok=True)
5875
+ _original_work_dir = agent.executor.work_dir
5876
+ agent.executor.work_dir = str(agent_work_dir)
5877
+ logger.info(f"[{session_id}] Agent [{agent_path}] 使用独立工作目录: {agent_work_dir}")
5851
5878
 
5852
5879
  # ── 设置 Agent 专属知识库目录(优先于组织知识库)──
5853
5880
  if agent_path and agent.context_builder:
@@ -5940,6 +5967,7 @@ window.addEventListener('beforeunload', function() {{
5940
5967
  agent_override_prompt=agent_system_prompt,
5941
5968
  stream_callback=_v2_collecting_callback,
5942
5969
  stream_response=stream_response,
5970
+ agent_path=agent_path,
5943
5971
  )
5944
5972
  finally:
5945
5973
  # 无论成功或异常,都清理 active_contexts
@@ -5947,6 +5975,9 @@ window.addEventListener('beforeunload', function() {{
5947
5975
  # 恢复执行引擎原始模式(防止影响后续 Agent 请求)
5948
5976
  if _original_exec_mode is not None and agent.executor:
5949
5977
  agent.executor.set_execution_mode(_original_exec_mode)
5978
+ # [v1.23.52] 恢复执行引擎原始工作目录
5979
+ if _original_work_dir is not None and agent.executor:
5980
+ agent.executor.work_dir = _original_work_dir
5950
5981
  # 清理 Agent 专属知识库目录设置(防止影响其他 Agent 请求)
5951
5982
  if agent.context_builder:
5952
5983
  agent.context_builder.agent_knowledge_dir = None
@@ -27,10 +27,12 @@ async function renderPlatforms(){
27
27
  html+='</div>';$('content').innerHTML=html;
28
28
  }
29
29
  async function togglePlatform(id,enable){
30
- const r=await api(`/api/platforms/${id}`,{method:'PUT',body:JSON.stringify({enabled})});
31
- if(r.error){showToast('操作失败: '+r.error,'danger');return}
32
- showToast(enable?'平台已启用':'平台已停用',enable?'success':'info');
33
- renderPlatforms();
30
+ try{
31
+ var r=await api('/api/platforms/'+encodeURIComponent(id)+'/toggle',{method:'POST',body:JSON.stringify({enabled})});
32
+ if(r.error){showToast('操作失败: '+r.error,'danger');return}
33
+ showToast(enable?'平台已启用':'平台已停用',enable?'success':'info');
34
+ renderPlatforms();
35
+ }catch(e){showToast('请求异常: '+e.message,'danger')}
34
36
  }
35
37
  function showAddPlatformModal(){
36
38
  $('modalContainer').innerHTML=`<div class="modal-overlay" onclick="closeModal()"><div class="modal" onclick="event.stopPropagation()" style="max-width:520px">
@@ -1441,7 +1441,7 @@ function renderRpDeptNode(dept, depth) {
1441
1441
  if (dept.head) html += ' <span style="font-size:10px;color:var(--accent)">👑</span>';
1442
1442
  // [v1.23.51] 部门节点直接显示群聊入口按钮
1443
1443
  if (hasGroupChat) {
1444
- html += ' <button class="rp-dept-group-btn" onclick="event.stopPropagation();openDeptGroupChat(\x27' + escapeHtml(chatGroupId) + '\x27)" title="进入部门群聊">💬</button>';
1444
+ html += ' <button class="rp-dept-group-btn" onclick="event.stopPropagation();openDeptGroupChat(\'' + escapeHtml(chatGroupId) + '\')" title="进入部门群聊">💬</button>';
1445
1445
  }
1446
1446
  html += '</div>';
1447
1447
 
@@ -2107,16 +2107,17 @@ function renderSessions(filter = '') {
2107
2107
  var g = groups[i];
2108
2108
  var isActive = g.id === currentGroupId;
2109
2109
  var memberCount = (g.members || []).length;
2110
- html += '<div class="session-item ' + (isActive ? 'active' : '') + '" onclick="selectGroup(\x27' + escapeHtml(g.id) + '\x27)" title="' + escapeHtml(g.name) + '">'
2111
- + '<div class="session-icon" style="font-size:16px">' + escapeHtml(g.avatar_emoji || g.emoji || '\ud83d\udc65') + '</div>'
2110
+ html += '<div class="session-item ' + (isActive ? 'active' : '') + '" onclick="selectGroup(\'' + escapeHtml(g.id) + '\')" title="' + escapeHtml(g.name) + '">'
2111
+ + '<div class="session-icon" style="font-size:16px">' + escapeHtml(g.avatar_emoji || g.emoji || '👥') + '</div>'
2112
2112
  + '<div class="session-info">'
2113
2113
  + '<div class="session-name">' + escapeHtml(g.name) + '</div>'
2114
2114
  + '<div class="session-preview">' + escapeHtml(g.description || (memberCount + ' 位成员')) + '</div>'
2115
2115
  + '</div>'
2116
2116
  + '</div>';
2117
2117
  }
2118
+ // 在列表顶部添加"返回个人聊天"按钮
2118
2119
  html = '<div class="session-item" onclick="exitGroupChat()" title="返回个人聊天" style="border-bottom:1px solid var(--border);margin-bottom:4px">'
2119
- + '<div class="session-icon" style="font-size:16px">\ud83d\udd19</div>'
2120
+ + '<div class="session-icon" style="font-size:16px">🔙</div>'
2120
2121
  + '<div class="session-info"><div class="session-name">返回个人聊天</div><div class="session-preview">退出群聊视图</div></div>'
2121
2122
  + '</div>' + html;
2122
2123
  list.innerHTML = html;
@@ -1,54 +0,0 @@
1
- # MyAgent - 本地桌面端执行型 AI 助手
2
- # Docker 构建文件 (主要用于服务器部署)
3
- FROM python:3.13-slim
4
-
5
- WORKDIR /app
6
-
7
- # 安装系统依赖
8
- # [v1.16.18] 包含 poppler-utils (PDF提取)、Chrome 共享库 (浏览器自动化)
9
- RUN apt-get update && apt-get install -y --no-install-recommends \
10
- python3-pip \
11
- poppler-utils \
12
- # Chrome/Chromium 运行所需的共享库
13
- libnss3 \
14
- libatk1.0-0 \
15
- libatk-bridge2.0-0 \
16
- libcups2 \
17
- libdrm2 \
18
- libxkbcommon0 \
19
- libxcomposite1 \
20
- libxdamage1 \
21
- libxfixes3 \
22
- libxrandr2 \
23
- libgbm1 \
24
- libpango-1.0-0 \
25
- libcairo2 \
26
- libasound2 \
27
- libatspi2.0-0 \
28
- # Node.js (浏览器自动化 MCP 需要)
29
- nodejs \
30
- npm \
31
- && rm -rf /var/lib/apt/lists/*
32
-
33
- # 安装 Puppeteer 的 Chrome (自包含,容器环境最可靠)
34
- RUN npx -y puppeteer browsers install chrome@stable || true
35
-
36
- # 安装 Python 依赖
37
- COPY requirements.txt .
38
- RUN pip install --no-cache-dir -r requirements.txt
39
-
40
- # 复制代码
41
- COPY . .
42
-
43
- # 创建数据目录
44
- RUN mkdir -p data logs
45
-
46
- # 环境变量
47
- ENV MYAGENT_APP_DATA_DIR=data
48
- ENV MYAGENT_APP_LOG_FILE=logs/myagent.log
49
-
50
- # HTTP API 模式
51
- EXPOSE 8080
52
-
53
- # 启动
54
- CMD ["python", "main.py", "--server", "--host", "0.0.0.0", "--port", "8080"]