myagent-ai 1.26.5 → 1.26.6

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 (467) hide show
  1. package/agents/main_agent.py +32 -47
  2. package/core/output_parser.py +57 -0
  3. package/main.py +0 -11
  4. package/package.json +1 -1
  5. package/scripts/cli.py +1 -124
  6. package/skills/ASR/LICENSE.txt +0 -0
  7. package/skills/ASR/SKILL.md +0 -0
  8. package/skills/ASR/scripts/asr.ts +0 -0
  9. package/skills/LLM/LICENSE.txt +0 -0
  10. package/skills/LLM/SKILL.md +0 -0
  11. package/skills/LLM/scripts/chat.ts +0 -0
  12. package/skills/TTS/LICENSE.txt +0 -0
  13. package/skills/TTS/SKILL.md +0 -0
  14. package/skills/TTS/tts.ts +0 -0
  15. package/skills/VLM/LICENSE.txt +0 -0
  16. package/skills/VLM/SKILL.md +0 -0
  17. package/skills/VLM/scripts/vlm.ts +0 -0
  18. package/skills/__init__.py +0 -0
  19. package/skills/admin-manager/SKILL.md +0 -0
  20. package/skills/agent-browser/SKILL.md +0 -0
  21. package/skills/agent_tool_skill.py +0 -0
  22. package/skills/ai-news-collectors/SKILL.md +0 -0
  23. package/skills/ai-news-collectors/_meta.json +0 -0
  24. package/skills/ai-news-collectors/references/sources.md +0 -0
  25. package/skills/aminer-open-academic/SKILL.md +0 -0
  26. package/skills/aminer-open-academic/_meta.json +0 -0
  27. package/skills/aminer-open-academic/evals/evals.json +0 -0
  28. package/skills/aminer-open-academic/references/api-catalog.md +0 -0
  29. package/skills/aminer-open-academic/scripts/aminer_client.py +0 -0
  30. package/skills/auto-target-tracker/SKILL.md +0 -0
  31. package/skills/base.py +0 -0
  32. package/skills/blog-writer/2024-02-17-radical-transparency-sales.md +0 -0
  33. package/skills/blog-writer/2024-02-17-raycast-spotlight-superpowers.md +0 -0
  34. package/skills/blog-writer/2024-02-17-short-form-content-marketing.md +0 -0
  35. package/skills/blog-writer/2024-02-17-typing-speed-benefits.md +0 -0
  36. package/skills/blog-writer/2024-03-14-effective-ai-prompts.md +0 -0
  37. package/skills/blog-writer/2024-11-08-ai-revolutionizing-entry-level-sales.md +0 -0
  38. package/skills/blog-writer/2025-11-12-why-ai-art-is-useless.md +0 -0
  39. package/skills/blog-writer/README.md +0 -0
  40. package/skills/blog-writer/SKILL.md +0 -0
  41. package/skills/blog-writer/_meta.json +0 -0
  42. package/skills/blog-writer/manage_examples.py +0 -0
  43. package/skills/blog-writer/style-guide.md +0 -0
  44. package/skills/browser_skill.py +0 -0
  45. package/skills/charts/LICENSE.txt +0 -0
  46. package/skills/charts/SKILL.md +0 -0
  47. package/skills/charts/references/_rules.md +0 -0
  48. package/skills/charts/references/d3.md +0 -0
  49. package/skills/charts/references/echarts.md +0 -0
  50. package/skills/charts/references/matplotlib.md +0 -0
  51. package/skills/charts/references/mermaid.md +0 -0
  52. package/skills/charts/references/mindmap-css.md +0 -0
  53. package/skills/charts/references/playwright-css.md +0 -0
  54. package/skills/charts/references/radial-grid.md +0 -0
  55. package/skills/charts/references/seaborn.md +0 -0
  56. package/skills/charts/setup.sh +0 -0
  57. package/skills/chromedev_mcp.py +0 -0
  58. package/skills/coding-agent/SKILL.md +0 -0
  59. package/skills/coding-agent/_meta.json +0 -0
  60. package/skills/coding-agent/criteria.md +0 -0
  61. package/skills/coding-agent/execution.md +0 -0
  62. package/skills/coding-agent/memory-template.md +0 -0
  63. package/skills/coding-agent/planning.md +0 -0
  64. package/skills/coding-agent/state.md +0 -0
  65. package/skills/coding-agent/verification.md +0 -0
  66. package/skills/content-strategy/SKILL.md +0 -0
  67. package/skills/content-strategy/_meta.json +0 -0
  68. package/skills/contentanalysis/ExtractWisdom/SKILL.md +0 -0
  69. package/skills/contentanalysis/ExtractWisdom/Workflows/Extract.md +0 -0
  70. package/skills/contentanalysis/SKILL.md +0 -0
  71. package/skills/docx/LICENSE.txt +0 -0
  72. package/skills/docx/SKILL.md +0 -0
  73. package/skills/docx/references/chart-templates.md +0 -0
  74. package/skills/docx/references/common-rules.md +0 -0
  75. package/skills/docx/references/decorations.md +0 -0
  76. package/skills/docx/references/design-system.md +0 -0
  77. package/skills/docx/references/docx-js-advanced.md +0 -0
  78. package/skills/docx/references/docx-js-core.md +0 -0
  79. package/skills/docx/references/faq.md +0 -0
  80. package/skills/docx/references/math-formulas.md +0 -0
  81. package/skills/docx/references/ooxml.md +0 -0
  82. package/skills/docx/references/toc.md +0 -0
  83. package/skills/docx/routes/comment.md +0 -0
  84. package/skills/docx/routes/create.md +0 -0
  85. package/skills/docx/routes/edit.md +0 -0
  86. package/skills/docx/routes/format.md +0 -0
  87. package/skills/docx/routes/read.md +0 -0
  88. package/skills/docx/scenes/academic.md +0 -0
  89. package/skills/docx/scenes/contract.md +0 -0
  90. package/skills/docx/scenes/copywriting.md +0 -0
  91. package/skills/docx/scenes/exam.md +0 -0
  92. package/skills/docx/scenes/official-doc.md +0 -0
  93. package/skills/docx/scenes/report.md +0 -0
  94. package/skills/docx/scenes/resume.md +0 -0
  95. package/skills/docx/scripts/__init__.py +0 -0
  96. package/skills/docx/scripts/add_toc_placeholders.py +0 -0
  97. package/skills/docx/scripts/document.py +0 -0
  98. package/skills/docx/scripts/postcheck.py +0 -0
  99. package/skills/docx/scripts/templates/comments.xml +0 -0
  100. package/skills/docx/scripts/templates/commentsExtended.xml +0 -0
  101. package/skills/docx/scripts/templates/commentsExtensible.xml +0 -0
  102. package/skills/docx/scripts/templates/commentsIds.xml +0 -0
  103. package/skills/docx/scripts/templates/people.xml +0 -0
  104. package/skills/docx/scripts/utilities.py +0 -0
  105. package/skills/docx/setup.sh +0 -0
  106. package/skills/docx_skill.py +0 -0
  107. package/skills/dream-interpreter/SKILL.md +0 -0
  108. package/skills/dream-interpreter/assets/example_asset.txt +0 -0
  109. package/skills/dream-interpreter/references/api_reference.md +0 -0
  110. package/skills/dream-interpreter/references/interpretation-guide.md +0 -0
  111. package/skills/dream-interpreter/references/output-schema.md +0 -0
  112. package/skills/dream-interpreter/references/questioning-strategy.md +0 -0
  113. package/skills/dream-interpreter/references/visual-mapping.md +0 -0
  114. package/skills/dream-interpreter/scripts/example.py +0 -0
  115. package/skills/dream-interpreter/skill.json +0 -0
  116. package/skills/file_send.py +0 -0
  117. package/skills/finance/Finance_API_Doc.md +0 -0
  118. package/skills/finance/SKILL.md +0 -0
  119. package/skills/fullstack-dev/SKILL.md +0 -0
  120. package/skills/fullstack-dev/references/api-design.md +0 -0
  121. package/skills/fullstack-dev/references/auth-flow.md +0 -0
  122. package/skills/fullstack-dev/references/db-schema.md +0 -0
  123. package/skills/fullstack-dev/references/django-best-practices.md +0 -0
  124. package/skills/fullstack-dev/references/environment-management.md +0 -0
  125. package/skills/fullstack-dev/references/release-checklist.md +0 -0
  126. package/skills/fullstack-dev/references/technology-selection.md +0 -0
  127. package/skills/fullstack-dev/references/testing-strategy.md +0 -0
  128. package/skills/get-fortune-analysis/SKILL.md +0 -0
  129. package/skills/get-fortune-analysis/lunar_python.py +0 -0
  130. package/skills/gift-evaluator/SKILL.md +0 -0
  131. package/skills/gift-evaluator/html_tools.py +0 -0
  132. package/skills/gui_skill.py +0 -0
  133. package/skills/image-edit/LICENSE.txt +0 -0
  134. package/skills/image-edit/SKILL.md +0 -0
  135. package/skills/image-edit/scripts/image-edit.ts +0 -0
  136. package/skills/image-generation/LICENSE.txt +0 -0
  137. package/skills/image-generation/SKILL.md +0 -0
  138. package/skills/image-generation/scripts/image-generation.ts +0 -0
  139. package/skills/image-understand/LICENSE.txt +0 -0
  140. package/skills/image-understand/SKILL.md +0 -0
  141. package/skills/image-understand/scripts/image-understand.ts +0 -0
  142. package/skills/interview-designer/README.md +0 -0
  143. package/skills/interview-designer/SKILL.md +0 -0
  144. package/skills/interview-designer/_meta.json +0 -0
  145. package/skills/interview-designer/references/design_rationale.md +0 -0
  146. package/skills/interview-designer/templates/interview_guide_template.md +0 -0
  147. package/skills/market-research-reports/SKILL.md +0 -0
  148. package/skills/market-research-reports/assets/FORMATTING_GUIDE.md +0 -0
  149. package/skills/market-research-reports/assets/market_report_template.tex +0 -0
  150. package/skills/market-research-reports/assets/market_research.sty +0 -0
  151. package/skills/market-research-reports/references/data_analysis_patterns.md +0 -0
  152. package/skills/market-research-reports/references/report_structure_guide.md +0 -0
  153. package/skills/market-research-reports/references/visual_generation_guide.md +0 -0
  154. package/skills/market-research-reports/scripts/generate_market_visuals.py +0 -0
  155. package/skills/marketing-mode/README.md +0 -0
  156. package/skills/marketing-mode/SKILL.md +0 -0
  157. package/skills/marketing-mode/_meta.json +0 -0
  158. package/skills/marketing-mode/mode-prompt.md +0 -0
  159. package/skills/marketing-mode/skill.json +0 -0
  160. package/skills/mindfulness-meditation/SKILL.md +0 -0
  161. package/skills/mindfulness-meditation/_meta.json +0 -0
  162. package/skills/multi-search-engine/CHANGELOG.md +0 -0
  163. package/skills/multi-search-engine/CHANNELLOG.md +0 -0
  164. package/skills/multi-search-engine/SKILL.md +0 -0
  165. package/skills/multi-search-engine/_meta.json +0 -0
  166. package/skills/multi-search-engine/config.json +0 -0
  167. package/skills/multi-search-engine/metadata.json +0 -0
  168. package/skills/multi-search-engine/references/international-search.md +0 -0
  169. package/skills/pdf/LICENSE.txt +0 -0
  170. package/skills/pdf/SKILL.md +0 -0
  171. package/skills/pdf/briefs/academic.md +0 -0
  172. package/skills/pdf/briefs/creative.md +0 -0
  173. package/skills/pdf/briefs/poster.md +0 -0
  174. package/skills/pdf/briefs/process-advanced.md +0 -0
  175. package/skills/pdf/briefs/process.md +0 -0
  176. package/skills/pdf/briefs/report.md +0 -0
  177. package/skills/pdf/configs/components.md +0 -0
  178. package/skills/pdf/configs/fonts.md +0 -0
  179. package/skills/pdf/configs/visual_framework.md +0 -0
  180. package/skills/pdf/references/resume-academic.tex +0 -0
  181. package/skills/pdf/references/resume-altacv.tex +0 -0
  182. package/skills/pdf/scripts/cover_validate.js +0 -0
  183. package/skills/pdf/scripts/design_engine.py +0 -0
  184. package/skills/pdf/scripts/html2pdf-next.js +0 -0
  185. package/skills/pdf/scripts/html2poster.js +0 -0
  186. package/skills/pdf/scripts/pdf.py +0 -0
  187. package/skills/pdf/scripts/pdf_qa.py +0 -0
  188. package/skills/pdf/scripts/poster_validate.py +0 -0
  189. package/skills/pdf/scripts/setup.sh +0 -0
  190. package/skills/pdf/scripts/toc_validate.py +0 -0
  191. package/skills/pdf/typesetting/charts.md +0 -0
  192. package/skills/pdf/typesetting/cover-backgrounds.md +0 -0
  193. package/skills/pdf/typesetting/cover.md +0 -0
  194. package/skills/pdf/typesetting/fill-engine.md +0 -0
  195. package/skills/pdf/typesetting/geometry.md +0 -0
  196. package/skills/pdf/typesetting/overflow.md +0 -0
  197. package/skills/pdf/typesetting/pagination.md +0 -0
  198. package/skills/pdf/typesetting/palette.md +0 -0
  199. package/skills/pdf/typesetting/typography.md +0 -0
  200. package/skills/pdf_skill.py +0 -0
  201. package/skills/podcast-generate/LICENSE.txt +0 -0
  202. package/skills/podcast-generate/SKILL.md +0 -0
  203. package/skills/podcast-generate/generate.ts +0 -0
  204. package/skills/podcast-generate/package.json +0 -0
  205. package/skills/podcast-generate/readme.md +0 -0
  206. package/skills/podcast-generate/test_data/segments.jsonl +0 -0
  207. package/skills/podcast-generate/tsconfig.json +0 -0
  208. package/skills/ppt/.claude/settings.local.json +0 -0
  209. package/skills/ppt/LICENSE.txt +0 -0
  210. package/skills/ppt/SKILL.md +0 -0
  211. package/skills/ppt/beamer.md +0 -0
  212. package/skills/ppt/components.md +0 -0
  213. package/skills/ppt/data-viz-components.md +0 -0
  214. package/skills/ppt/design-system.md +0 -0
  215. package/skills/ppt/html2pptx.md +0 -0
  216. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
  217. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
  218. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
  219. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
  220. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
  221. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
  222. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
  223. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
  224. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
  225. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
  226. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
  227. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
  228. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
  229. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
  230. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
  231. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
  232. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
  233. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
  234. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
  235. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
  236. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
  237. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
  238. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
  239. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
  240. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
  241. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
  242. package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
  243. package/skills/ppt/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
  244. package/skills/ppt/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
  245. package/skills/ppt/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
  246. package/skills/ppt/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
  247. package/skills/ppt/ooxml/schemas/mce/mc.xsd +0 -0
  248. package/skills/ppt/ooxml/schemas/microsoft/wml-2010.xsd +0 -0
  249. package/skills/ppt/ooxml/schemas/microsoft/wml-2012.xsd +0 -0
  250. package/skills/ppt/ooxml/schemas/microsoft/wml-2018.xsd +0 -0
  251. package/skills/ppt/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -0
  252. package/skills/ppt/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -0
  253. package/skills/ppt/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
  254. package/skills/ppt/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -0
  255. package/skills/ppt/ooxml/scripts/pack.py +0 -0
  256. package/skills/ppt/ooxml/scripts/unpack.py +0 -0
  257. package/skills/ppt/ooxml/scripts/validate.py +0 -0
  258. package/skills/ppt/ooxml/scripts/validation/__init__.py +0 -0
  259. package/skills/ppt/ooxml/scripts/validation/base.py +0 -0
  260. package/skills/ppt/ooxml/scripts/validation/docx.py +0 -0
  261. package/skills/ppt/ooxml/scripts/validation/pptx.py +0 -0
  262. package/skills/ppt/ooxml/scripts/validation/redlining.py +0 -0
  263. package/skills/ppt/ooxml.md +0 -0
  264. package/skills/ppt/references/beamer.md +0 -0
  265. package/skills/ppt/references/latex.md +0 -0
  266. package/skills/ppt/references/paper-navbar.tex +0 -0
  267. package/skills/ppt/references/progress-navbar.tex +0 -0
  268. package/skills/ppt/scripts/html2pptx.js +0 -0
  269. package/skills/ppt/scripts/inventory.py +0 -0
  270. package/skills/ppt/scripts/pdf.py +0 -0
  271. package/skills/ppt/scripts/rearrange.py +0 -0
  272. package/skills/ppt/scripts/replace.py +0 -0
  273. package/skills/ppt/scripts/tectonic +0 -0
  274. package/skills/ppt/scripts/thumbnail.py +0 -0
  275. package/skills/ppt/setup.sh +0 -0
  276. package/skills/ppt/themes.md +0 -0
  277. package/skills/ppt_skill.py +0 -0
  278. package/skills/qingyan-research/SKILL.md +0 -0
  279. package/skills/qingyan-research/generate_html.py +0 -0
  280. package/skills/registry.py +0 -0
  281. package/skills/search_skill.py +0 -0
  282. package/skills/seo-content-writer/SKILL.md +0 -0
  283. package/skills/seo-content-writer/_meta.json +0 -0
  284. package/skills/seo-content-writer/references/content-structure-templates.md +0 -0
  285. package/skills/seo-content-writer/references/title-formulas.md +0 -0
  286. package/skills/skill-creator/LICENSE.txt +0 -0
  287. package/skills/skill-creator/SKILL.md +0 -0
  288. package/skills/skill-creator/agents/analyzer.md +0 -0
  289. package/skills/skill-creator/agents/comparator.md +0 -0
  290. package/skills/skill-creator/agents/grader.md +0 -0
  291. package/skills/skill-creator/assets/eval_review.html +0 -0
  292. package/skills/skill-creator/eval-viewer/generate_review.py +0 -0
  293. package/skills/skill-creator/eval-viewer/viewer.html +0 -0
  294. package/skills/skill-creator/references/schemas.md +0 -0
  295. package/skills/skill-creator/scripts/__init__.py +0 -0
  296. package/skills/skill-creator/scripts/aggregate_benchmark.py +0 -0
  297. package/skills/skill-creator/scripts/generate_report.py +0 -0
  298. package/skills/skill-creator/scripts/improve_description.py +0 -0
  299. package/skills/skill-creator/scripts/package_skill.py +0 -0
  300. package/skills/skill-creator/scripts/quick_validate.py +0 -0
  301. package/skills/skill-creator/scripts/run_eval.py +0 -0
  302. package/skills/skill-creator/scripts/run_loop.py +0 -0
  303. package/skills/skill-creator/scripts/utils.py +0 -0
  304. package/skills/skill-finder-cn/SKILL.md +0 -0
  305. package/skills/skill-finder-cn/_meta.json +0 -0
  306. package/skills/skill-finder-cn/package.json +0 -0
  307. package/skills/skill-finder-cn/scripts/search.sh +0 -0
  308. package/skills/skill-vetter/SKILL.md +0 -0
  309. package/skills/stock-analysis-skill/SKILL.md +0 -0
  310. package/skills/stock-analysis-skill/package.json +0 -0
  311. package/skills/stock-analysis-skill/src/analyzer.ts +0 -0
  312. package/skills/stock-analysis-skill/src/dataFetcher.ts +0 -0
  313. package/skills/stock-analysis-skill/src/dividend.ts +0 -0
  314. package/skills/stock-analysis-skill/src/index.ts +0 -0
  315. package/skills/stock-analysis-skill/src/rumorScanner.ts +0 -0
  316. package/skills/stock-analysis-skill/src/types.ts +0 -0
  317. package/skills/stock-analysis-skill/src/watchlist.ts +0 -0
  318. package/skills/stock-analysis-skill/tsconfig.json +0 -0
  319. package/skills/storyboard-manager/SKILL.md +0 -0
  320. package/skills/storyboard-manager/index.js +0 -0
  321. package/skills/storyboard-manager/package.json +0 -0
  322. package/skills/storyboard-manager/references/character_development.md +0 -0
  323. package/skills/storyboard-manager/references/story_structures.md +0 -0
  324. package/skills/storyboard-manager/scripts/consistency_checker.py +0 -0
  325. package/skills/storyboard-manager/scripts/timeline_tracker.py +0 -0
  326. package/skills/system_skill.py +0 -0
  327. package/skills/ui-ux-pro-max/SKILL.md +0 -0
  328. package/skills/ui-ux-pro-max/_meta.json +0 -0
  329. package/skills/ui-ux-pro-max/assets/data/charts.csv +0 -0
  330. package/skills/ui-ux-pro-max/assets/data/colors.csv +0 -0
  331. package/skills/ui-ux-pro-max/assets/data/icons.csv +0 -0
  332. package/skills/ui-ux-pro-max/assets/data/landing.csv +0 -0
  333. package/skills/ui-ux-pro-max/assets/data/products.csv +0 -0
  334. package/skills/ui-ux-pro-max/assets/data/react-performance.csv +0 -0
  335. package/skills/ui-ux-pro-max/assets/data/stacks/astro.csv +0 -0
  336. package/skills/ui-ux-pro-max/assets/data/stacks/flutter.csv +0 -0
  337. package/skills/ui-ux-pro-max/assets/data/stacks/html-tailwind.csv +0 -0
  338. package/skills/ui-ux-pro-max/assets/data/stacks/jetpack-compose.csv +0 -0
  339. package/skills/ui-ux-pro-max/assets/data/stacks/nextjs.csv +0 -0
  340. package/skills/ui-ux-pro-max/assets/data/stacks/nuxt-ui.csv +0 -0
  341. package/skills/ui-ux-pro-max/assets/data/stacks/nuxtjs.csv +0 -0
  342. package/skills/ui-ux-pro-max/assets/data/stacks/react-native.csv +0 -0
  343. package/skills/ui-ux-pro-max/assets/data/stacks/react.csv +0 -0
  344. package/skills/ui-ux-pro-max/assets/data/stacks/shadcn.csv +0 -0
  345. package/skills/ui-ux-pro-max/assets/data/stacks/svelte.csv +0 -0
  346. package/skills/ui-ux-pro-max/assets/data/stacks/swiftui.csv +0 -0
  347. package/skills/ui-ux-pro-max/assets/data/stacks/vue.csv +0 -0
  348. package/skills/ui-ux-pro-max/assets/data/styles.csv +0 -0
  349. package/skills/ui-ux-pro-max/assets/data/typography.csv +0 -0
  350. package/skills/ui-ux-pro-max/assets/data/ui-reasoning.csv +0 -0
  351. package/skills/ui-ux-pro-max/assets/data/ux-guidelines.csv +0 -0
  352. package/skills/ui-ux-pro-max/assets/data/web-interface.csv +0 -0
  353. package/skills/ui-ux-pro-max/data/charts.csv +0 -0
  354. package/skills/ui-ux-pro-max/data/colors.csv +0 -0
  355. package/skills/ui-ux-pro-max/data/icons.csv +0 -0
  356. package/skills/ui-ux-pro-max/data/landing.csv +0 -0
  357. package/skills/ui-ux-pro-max/data/products.csv +0 -0
  358. package/skills/ui-ux-pro-max/data/react-performance.csv +0 -0
  359. package/skills/ui-ux-pro-max/data/stacks/astro.csv +0 -0
  360. package/skills/ui-ux-pro-max/data/stacks/flutter.csv +0 -0
  361. package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +0 -0
  362. package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +0 -0
  363. package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +0 -0
  364. package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +0 -0
  365. package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +0 -0
  366. package/skills/ui-ux-pro-max/data/stacks/react-native.csv +0 -0
  367. package/skills/ui-ux-pro-max/data/stacks/react.csv +0 -0
  368. package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +0 -0
  369. package/skills/ui-ux-pro-max/data/stacks/svelte.csv +0 -0
  370. package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +0 -0
  371. package/skills/ui-ux-pro-max/data/stacks/vue.csv +0 -0
  372. package/skills/ui-ux-pro-max/data/styles.csv +0 -0
  373. package/skills/ui-ux-pro-max/data/typography.csv +0 -0
  374. package/skills/ui-ux-pro-max/data/ui-reasoning.csv +0 -0
  375. package/skills/ui-ux-pro-max/data/ux-guidelines.csv +0 -0
  376. package/skills/ui-ux-pro-max/data/web-interface.csv +0 -0
  377. package/skills/ui-ux-pro-max/references/upstream-README.md +0 -0
  378. package/skills/ui-ux-pro-max/references/upstream-skill-content.md +0 -0
  379. package/skills/ui-ux-pro-max/scripts/__init__.py +0 -0
  380. package/skills/ui-ux-pro-max/scripts/core.py +0 -0
  381. package/skills/ui-ux-pro-max/scripts/design_system.py +0 -0
  382. package/skills/ui-ux-pro-max/scripts/search.py +0 -0
  383. package/skills/video-generation/LICENSE.txt +0 -0
  384. package/skills/video-generation/SKILL.md +0 -0
  385. package/skills/video-generation/scripts/video.ts +0 -0
  386. package/skills/video-understand/LICENSE.txt +0 -0
  387. package/skills/video-understand/SKILL.md +0 -0
  388. package/skills/video-understand/scripts/video-understand.ts +0 -0
  389. package/skills/visual-design-foundations/SKILL.md +0 -0
  390. package/skills/visual-design-foundations/references/color-systems.md +0 -0
  391. package/skills/visual-design-foundations/references/spacing-iconography.md +0 -0
  392. package/skills/visual-design-foundations/references/typography-systems.md +0 -0
  393. package/skills/web-reader/LICENSE.txt +0 -0
  394. package/skills/web-reader/SKILL.md +0 -0
  395. package/skills/web-reader/scripts/web-reader.ts +0 -0
  396. package/skills/web-search/LICENSE.txt +0 -0
  397. package/skills/web-search/SKILL.md +0 -0
  398. package/skills/web-search/scripts/web_search.ts +0 -0
  399. package/skills/web-shader-extractor/SKILL.md +0 -0
  400. package/skills/web-shader-extractor/references/config-extraction.md +0 -0
  401. package/skills/web-shader-extractor/references/encoded-definitions.md +0 -0
  402. package/skills/web-shader-extractor/references/extraction-workflow.md +0 -0
  403. package/skills/web-shader-extractor/references/porting-strategy.md +0 -0
  404. package/skills/web-shader-extractor/references/shader-injection.md +0 -0
  405. package/skills/web-shader-extractor/references/shaders-com.md +0 -0
  406. package/skills/web-shader-extractor/references/tech-signatures.md +0 -0
  407. package/skills/web-shader-extractor/references/tsl-extraction.md +0 -0
  408. package/skills/web-shader-extractor/references/unicorn-studio.md +0 -0
  409. package/skills/web-shader-extractor/scripts/fetch-rendered-dom.mjs +0 -0
  410. package/skills/web-shader-extractor/scripts/scan-bundle.sh +0 -0
  411. package/skills/writing-plans/SKILL.md +0 -0
  412. package/skills/writing-plans/_meta.json +0 -0
  413. package/skills/xlsx/LICENSE.txt +0 -0
  414. package/skills/xlsx/SKILL.md +0 -0
  415. package/skills/xlsx/engines/chart-templates.md +0 -0
  416. package/skills/xlsx/engines/chart.md +0 -0
  417. package/skills/xlsx/engines/design.md +0 -0
  418. package/skills/xlsx/engines/vba-templates.md +0 -0
  419. package/skills/xlsx/quality/pipeline.md +0 -0
  420. package/skills/xlsx/scenes/advanced.md +0 -0
  421. package/skills/xlsx/scenes/analyze-recipes.md +0 -0
  422. package/skills/xlsx/scenes/analyze.md +0 -0
  423. package/skills/xlsx/scenes/convert.md +0 -0
  424. package/skills/xlsx/scenes/create.md +0 -0
  425. package/skills/xlsx/scenes/edit-patterns.md +0 -0
  426. package/skills/xlsx/scenes/edit.md +0 -0
  427. package/skills/xlsx/scenes/finance.md +0 -0
  428. package/skills/xlsx/scenes/finance_lite.md +0 -0
  429. package/skills/xlsx/scenes/vba.md +0 -0
  430. package/skills/xlsx/setup.sh +0 -0
  431. package/skills/xlsx/templates/base.py +0 -0
  432. package/skills/xlsx/templates/palettes.py +0 -0
  433. package/skills/xlsx/xlsx.py +0 -0
  434. package/skills/xlsx_skill.py +0 -0
  435. package/web/__init__.py +0 -0
  436. package/web/api_server.py +0 -0
  437. package/web/tts_handler.py +0 -0
  438. package/web/ui/admin/admin-agentchat.js +0 -0
  439. package/web/ui/admin/admin-agents.js +0 -0
  440. package/web/ui/admin/admin-core.js +0 -0
  441. package/web/ui/admin/admin-dashboard.js +0 -0
  442. package/web/ui/admin/admin-executor.js +0 -0
  443. package/web/ui/admin/admin-files.js +0 -0
  444. package/web/ui/admin/admin-llm.js +0 -0
  445. package/web/ui/admin/admin-logs.js +0 -0
  446. package/web/ui/admin/admin-memory.js +0 -0
  447. package/web/ui/admin/admin-org.js +0 -0
  448. package/web/ui/admin/admin-permissions.js +0 -0
  449. package/web/ui/admin/admin-platforms.js +0 -0
  450. package/web/ui/admin/admin-sessions.js +0 -0
  451. package/web/ui/admin/admin-skills.js +0 -0
  452. package/web/ui/admin/admin-system.js +0 -0
  453. package/web/ui/admin/admin-tasks.js +0 -0
  454. package/web/ui/chat/chat.css +0 -0
  455. package/web/ui/chat/chat.js +0 -0
  456. package/web/ui/chat/chat_container.html +0 -0
  457. package/web/ui/chat/chat_main.js +0 -0
  458. package/web/ui/chat/flow_engine.js +0 -0
  459. package/web/ui/chat/groupchat.js +0 -0
  460. package/web/ui/chat/left_sessions.html +0 -0
  461. package/web/ui/chat/middle_chat.html +0 -0
  462. package/web/ui/chat/right_agents.html +0 -0
  463. package/web/ui/index.html +0 -0
  464. package/worklog-v1.22.md +0 -0
  465. package/worklog.md +0 -0
  466. package//"docs/351205215347275256344275277347224250350257264346230216.md/" +0 -0
  467. package/skills/file_skill.py +0 -573
@@ -950,7 +950,7 @@ GUI桌面 (仅Windows/macOS):
950
950
  f"输出长度={len(llm_raw)} 字符"
951
951
  )
952
952
 
953
- if _xml_correction_retries < 2:
953
+ if _xml_correction_retries < 3:
954
954
  _xml_correction_retries += 1
955
955
  # 尝试从不完整输出中提取已有内容,防止内容完全丢失
956
956
  _partial_text = self._try_extract_partial_response(llm_raw)
@@ -995,53 +995,46 @@ GUI桌面 (仅Windows/macOS):
995
995
  )
996
996
  await self._emit_v2_event(
997
997
  "v2_reasoning",
998
- {"content": f"⚠️ 模型输出异常({_diag_msg}),正在自动修正({_xml_correction_retries}/2)..."},
998
+ {"content": f"⚠️ 模型输出异常({_diag_msg}),正在自动修正({_xml_correction_retries}/3)..."},
999
999
  stream_callback,
1000
1000
  )
1001
1001
  continue # 重新进入循环,让 LLM 重新生成
1002
1002
  else:
1003
- # 已重试 2 次,强制终止
1004
- logger.warning(f"[{task_id}] XML输出异常已重试2次仍失败,终止循环: {_diag_msg}")
1003
+ # 已重试 3 次 → 不终止,提取已有内容作为 response 继续执行
1004
+ logger.warning(f"[{task_id}] XML输出异常已重试3次,提取已有内容继续执行: {_diag_msg}")
1005
+ _fallback_save = ""
1005
1006
  if _v2_reasoning_collected:
1006
1007
  _fallback_save = "\n".join(_v2_reasoning_collected)
1007
- if _fallback_save.strip():
1008
- context.working_memory["final_response"] = _fallback_save
1009
- if self.memory:
1010
- self.memory.add_session(
1011
- session_id=context.session_id,
1012
- role="assistant",
1013
- content=_fallback_save,
1014
- )
1015
- await self._emit_v2_event(
1016
- "v2_reasoning",
1017
- {"content": _fallback_save},
1018
- stream_callback,
1019
- )
1020
- else:
1021
- context.working_memory["final_response"] = "模型输出格式异常,请重新尝试。"
1022
- await self._emit_v2_event(
1023
- "v2_reasoning",
1024
- {"content": "模型输出格式异常,已自动终止。"},
1025
- stream_callback,
1026
- )
1027
- break
1008
+ if not _fallback_save.strip():
1009
+ before, after = extract_surrounding_text(llm_raw)
1010
+ _fallback_save = ((before + "\n" + after) if (before.strip() or after.strip()) else re.sub(r"<[^>]+>", "", llm_raw).strip())
1011
+ _fallback_save = _fallback_save.strip() if _fallback_save.strip() else "处理完毕。"
1012
+ parsed.parse_success = True
1013
+ parsed.response = _fallback_save
1014
+ parsed.finish = True
1015
+ parsed.finish_reason = f"输出异常({_diag_msg}),已提取内容继续执行"
1028
1016
  elif _block_incomplete and parsed.parse_success:
1029
1017
  # 块不完整但已提取到有效内容,记录日志但正常继续
1030
1018
  logger.info(
1031
1019
  f"[{task_id}] <output> 块不完整但已提取到有效内容,跳过修正直接处理"
1032
1020
  )
1033
1021
 
1034
- # Step 4.5: 解析失败处理 — 回退给 LLM 修正或提取周边文本
1022
+ # Step 4.5: 解析失败处理 — 三层兜底,确保执行不会因解析错误而中断
1023
+ # 兜底策略(由 output_parser Step 4.5 已完成 L1/L2,此处处理 L3):
1024
+ # L1 (parser): 直接搜索 <tool> 块(跳过 toolstocal 包装)
1025
+ # L2 (parser): 搜索散落的 <toolname>+<parms> 配对
1026
+ # L3 (此处): 将原始文本回退给 LLM 修正格式,或提取为纯文本继续
1035
1027
  if not parsed.parse_success:
1036
- # 即使解析失败,如果 regex fallback 提取到了工具调用,仍然继续执行
1037
1028
  if parsed.tools_to_call:
1038
- logger.warning(f"[{task_id}] XML 解析失败但提取到 {len(parsed.tools_to_call)} 个工具调用,跳过修正直接执行")
1039
- elif parsed.needs_correction and _xml_correction_retries < 2:
1040
- # XML 完全无法解析,让 LLM 重新格式化输出
1029
+ # L1/L2 兜底成功提取到了工具调用 标记为成功,继续执行工具
1030
+ parsed.parse_success = True
1031
+ logger.warning(f"[{task_id}] 解析兜底成功: 提取到 {len(parsed.tools_to_call)} 个工具调用,继续执行")
1032
+ elif parsed.needs_correction and _xml_correction_retries < 3:
1033
+ # L3 兜底: 将原始文本回退给 LLM 让它调好格式再输出
1041
1034
  _xml_correction_retries += 1
1042
1035
  logger.warning(
1043
- f"[{task_id}] XML 解析完全失败,回退给 LLM 修正 "
1044
- f"(重试 {_xml_correction_retries}/2)"
1036
+ f"[{task_id}] 解析兜底L3: 回退给LLM修正格式 "
1037
+ f"(重试 {_xml_correction_retries}/3)"
1045
1038
  )
1046
1039
  correction_prompt = (
1047
1040
  "你上一次的输出格式有误,XML解析器无法识别。\n"
@@ -1058,31 +1051,23 @@ GUI桌面 (仅Windows/macOS):
1058
1051
  )
1059
1052
  await self._emit_v2_event(
1060
1053
  "v2_reasoning",
1061
- {"content": f"⚠️ 模型输出格式异常,正在自动修正({_xml_correction_retries}/2)..."},
1054
+ {"content": f"⚠️ 输出格式异常,正在自动修正({_xml_correction_retries}/3)..."},
1062
1055
  stream_callback,
1063
1056
  )
1064
1057
  continue # 重新进入循环,让 LLM 重新生成
1065
1058
  else:
1066
- # 已重试过或不需要修正,提取周边文本作为备选
1067
- logger.warning(f"[{task_id}] XML 解析失败,提取周边文本作为备选")
1059
+ # 所有兜底都失败 → 把原始文本去除标签后作为 response,不中断执行
1060
+ logger.warning(f"[{task_id}] 所有解析兜底失败,提取原始文本作为response继续执行")
1068
1061
  before, after = extract_surrounding_text(llm_raw)
1069
1062
  if before.strip() or after.strip():
1070
1063
  final_text = (before + "\n" + after).strip()
1071
1064
  else:
1072
- # 清除残余 XML 标签后作为纯文本
1073
1065
  final_text = re.sub(r"<[^>]+>", "", llm_raw).strip()
1074
1066
  final_text = final_text if final_text else "处理完毕。"
1075
- context.working_memory["final_response"] = final_text
1076
- await self._emit_v2_event(
1077
- "v2_reasoning", {"content": final_text}, stream_callback
1078
- )
1079
- if self.memory:
1080
- self.memory.add_session(
1081
- session_id=context.session_id,
1082
- role="assistant",
1083
- content=final_text,
1084
- )
1085
- break
1067
+ parsed.parse_success = True
1068
+ parsed.response = final_text
1069
+ parsed.finish = True
1070
+ parsed.finish_reason = "输出格式异常,已提取文本内容作为最终回复"
1086
1071
 
1087
1072
  warnings = validate_output(parsed)
1088
1073
  for w in warnings:
@@ -548,6 +548,63 @@ def _custom_parse(raw_text: str) -> ParsedOutput:
548
548
  if toolstocal_raw.strip():
549
549
  parsed.tools_to_call = _parse_toolstocal(toolstocal_raw, conservative=conservative)
550
550
 
551
+ # ── Step 4.5: 兜底机制 — 宽松提取工具调用,确保执行不会因解析错误而中断 ──
552
+ # 策略优先级:
553
+ # 1. _parse_toolstocal 已成功提取 → 不做任何事
554
+ # 2. 直接在整个输出中搜索 <tool>...</tool> 块(跳过 toolstocal 包装)
555
+ # 3. 搜索散落的 <toolname>...</toolname> + <parms>...</parms> 配对
556
+ if not parsed.tools_to_call:
557
+ # 兜底 Level 1: 在整个原始文本中直接搜索 <tool> 块
558
+ _raw_tool_blocks = _extract_all_tag_blocks(
559
+ raw_text, "tool", parent_close_tag=None, conservative=False,
560
+ )
561
+ for block in _raw_tool_blocks:
562
+ tn = _safe_strip(_extract_tag_content(block, "toolname", TOOL_INNER_TAGS))
563
+ if tn:
564
+ parsed.tools_to_call.append({
565
+ "beforecalltext": _safe_strip(_extract_tag_content(block, "beforecalltext", TOOL_INNER_TAGS)),
566
+ "toolname": tn,
567
+ "parms": _safe_strip(_extract_tag_content(block, "parms", TOOL_INNER_TAGS)),
568
+ "timeout": _parse_int(_extract_tag_content(block, "timeout", TOOL_INNER_TAGS), _DEFAULT_TIMEOUT),
569
+ })
570
+ logger.info(f"[兜底L1] 从非<toolstocal>区域提取到工具调用: {tn}")
571
+
572
+ if not parsed.tools_to_call:
573
+ # 兜底 Level 2: 搜索散落的 <toolname>...</toolname>,然后在同一段中找最近的 <parms>
574
+ _toolname_positions = []
575
+ for m in re.finditer(r"<toolname[^>]*>(.*?)</toolname\s*>", raw_text, re.DOTALL | re.IGNORECASE):
576
+ tn = html.unescape(m.group(1)).strip()
577
+ if tn:
578
+ _toolname_positions.append((m.start(), m.end(), tn))
579
+
580
+ if _toolname_positions:
581
+ logger.info(f"[兜底L2] 找到 {len(_toolname_positions)} 个散落的 <toolname> 标签")
582
+ for _i, (_start, _end, _tn) in enumerate(_toolname_positions):
583
+ # 在 toolname 之后的 500 字符内搜索最近的 <parms>
584
+ _search_region = raw_text[_end:_end + 500]
585
+ _parms_match = re.search(
586
+ r"<parms[^>]*>(.*?)</parms\s*>",
587
+ _search_region, re.DOTALL | re.IGNORECASE,
588
+ )
589
+ _parms = html.unescape(_parms_match.group(1)).strip() if _parms_match else ""
590
+
591
+ # 也尝试在 toolname 之前的 200 字符内搜索(parms 可能在 toolname 前面)
592
+ if not _parms:
593
+ _pre_region = raw_text[max(0, _start - 200):_start]
594
+ _parms_match = re.search(
595
+ r"<parms[^>]*>(.*?)</parms\s*>",
596
+ _pre_region, re.DOTALL | re.IGNORECASE,
597
+ )
598
+ _parms = html.unescape(_parms_match.group(1)).strip() if _parms_match else ""
599
+
600
+ parsed.tools_to_call.append({
601
+ "beforecalltext": "",
602
+ "toolname": _tn,
603
+ "parms": _parms,
604
+ "timeout": _DEFAULT_TIMEOUT,
605
+ })
606
+ logger.info(f"[兜底L2] 散落提取工具: {_tn}, parms={'有' if _parms else '无'}")
607
+
551
608
  # ── Step 5: Determine parse success ──
552
609
  has_content = bool(
553
610
  parsed.response
package/main.py CHANGED
@@ -374,10 +374,6 @@ class MyAgentApp:
374
374
 
375
375
  def _register_builtin_skills(self):
376
376
  """注册内置技能"""
377
- from skills.file_skill import (
378
- FileReadSkill, FileWriteSkill, FileListSkill,
379
- FileDeleteSkill, FileSearchSkill, FileMoveSkill,
380
- )
381
377
  from skills.search_skill import WebSearchSkill, WebReadSkill, URLReadSkill
382
378
  from skills.system_skill import (
383
379
  SystemInfoSkill, ProcessListSkill,
@@ -392,13 +388,6 @@ class MyAgentApp:
392
388
  TypeTextSkill, HotkeySkill, WindowListSkill, WindowFocusSkill, ScreenElementSkill,
393
389
  )
394
390
 
395
- # 文件技能
396
- for skill_cls in [
397
- FileReadSkill, FileWriteSkill, FileListSkill,
398
- FileDeleteSkill, FileSearchSkill, FileMoveSkill,
399
- ]:
400
- self.skill_registry.register(skill_cls())
401
-
402
391
  # 搜索技能
403
392
  for skill_cls in [WebSearchSkill, WebReadSkill, URLReadSkill]:
404
393
  self.skill_registry.register(skill_cls())
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "myagent-ai",
3
- "version": "1.26.5",
3
+ "version": "1.26.6",
4
4
  "description": "本地桌面端执行型AI助手 - Open Interpreter 风格 | Local Desktop Execution-Oriented AI Assistant",
5
5
  "main": "main.py",
6
6
  "bin": {
package/scripts/cli.py CHANGED
@@ -9,7 +9,7 @@ scripts/cli.py - MyAgent CLI 工具集
9
9
  命令分类:
10
10
  感知: ocr, analyze-image, transcribe
11
11
  搜索: search, read-url, fetch-url
12
- 文件: read, write, ls, rm, grep, mv, send-file
12
+ 文件: send-file
13
13
  文档: docx-create, docx-read, xlsx-create, xlsx-read, xlsx-edit,
14
14
  ppt-create, ppt-read, pdf-create, pdf-read
15
15
  系统: sysinfo, ps, env, pathinfo
@@ -90,12 +90,6 @@ async def _run():
90
90
  "read-url": cmd_read_url,
91
91
  "fetch-url": cmd_fetch_url,
92
92
  # 文件操作
93
- "read": cmd_read,
94
- "write": cmd_write,
95
- "ls": cmd_ls,
96
- "rm": cmd_rm,
97
- "grep": cmd_grep,
98
- "mv": cmd_mv,
99
93
  "send-file": cmd_send_file,
100
94
  # 文档
101
95
  "docx-create": cmd_docx_create,
@@ -332,123 +326,6 @@ async def cmd_fetch_url(args):
332
326
  # 文件操作命令
333
327
  # =============================================================================
334
328
 
335
- async def cmd_read(args):
336
- """读取文件内容"""
337
- import argparse
338
- p = argparse.ArgumentParser(prog="myagent-ai read", description="读取文件内容")
339
- p.add_argument("path", help="文件路径")
340
- p.add_argument("-e", "--encoding", default="utf-8", help="文件编码 (默认 utf-8)")
341
- p.add_argument("--offset", type=int, default=0, help="起始行号 (从0开始)")
342
- p.add_argument("--limit", type=int, default=500, help="读取行数 (默认500)")
343
- a = p.parse_args(args)
344
-
345
- from skills.file_skill import FileReadSkill
346
- skill = FileReadSkill()
347
- result = await skill.execute(path=a.path, encoding=a.encoding, offset=a.offset, limit=a.limit)
348
- _print_result({"success": result.success, "message": result.message,
349
- "data": result.data, "error": result.error})
350
-
351
-
352
- async def cmd_write(args):
353
- """写入文件"""
354
- import argparse
355
- p = argparse.ArgumentParser(prog="myagent-ai write", description="写入文件")
356
- p.add_argument("path", help="文件路径")
357
- p.add_argument("-c", "--content", default="", help="写入内容 (或通过 stdin)")
358
- p.add_argument("-e", "--encoding", default="utf-8", help="文件编码")
359
- p.add_argument("--append", action="store_true", help="追加模式")
360
- a = p.parse_args(args)
361
-
362
- content = a.content
363
- if not content:
364
- content = _read_stdin()
365
- if content is None:
366
- content = ""
367
-
368
- from skills.file_skill import FileWriteSkill
369
- skill = FileWriteSkill()
370
- result = await skill.execute(path=a.path, content=content, encoding=a.encoding, append=a.append)
371
- _print_result({"success": result.success, "message": result.message,
372
- "data": result.data, "error": result.error})
373
-
374
- # CLI send-file 标记
375
- if result.success and result.files:
376
- fpath = result.files[0]
377
- print(f"\n__SEND_FILE__{fpath}|文件已写入: {Path(fpath).name}__END__")
378
-
379
-
380
- async def cmd_ls(args):
381
- """列出目录内容"""
382
- import argparse
383
- # [v1.23.46] 过滤系统 ls 参数(-l, -a, -la 等)
384
- # [v1.23.48] 过滤纯数字参数(LLM 误传如 myagent-ai ls 2)
385
- args = [a for a in args if not a.isdigit()]
386
- args = _filter_unknown_args(args, allowed_prefixes={"-p", "--pattern", "-r", "--recursive", "--max"})
387
- p = argparse.ArgumentParser(prog="myagent-ai ls", description="列出目录内容")
388
- p.add_argument("path", nargs="?", default=".", help="目录路径 (默认当前目录)")
389
- p.add_argument("-p", "--pattern", default="*", help="文件匹配模式 (如 *.py)")
390
- p.add_argument("-r", "--recursive", action="store_true", help="递归列出")
391
- p.add_argument("--max", type=int, default=500, help="最大返回条目数 (默认500)")
392
- a = p.parse_args(args)
393
-
394
- from skills.file_skill import FileListSkill
395
- skill = FileListSkill()
396
- result = await skill.execute(path=a.path, pattern=a.pattern, recursive=a.recursive, max_items=a.max)
397
- _print_result({"success": result.success, "message": result.message,
398
- "data": result.data, "error": result.error})
399
-
400
-
401
- async def cmd_rm(args):
402
- """删除文件或目录"""
403
- import argparse
404
- p = argparse.ArgumentParser(prog="myagent-ai rm", description="删除文件或目录")
405
- p.add_argument("path", help="文件/目录路径")
406
- p.add_argument("-r", "--recursive", action="store_true", help="递归删除目录")
407
- a = p.parse_args(args)
408
-
409
- from skills.file_skill import FileDeleteSkill
410
- skill = FileDeleteSkill()
411
- result = await skill.execute(path=a.path, recursive=a.recursive)
412
- _print_result({"success": result.success, "message": result.message,
413
- "data": result.data, "error": result.error})
414
-
415
-
416
- async def cmd_grep(args):
417
- """搜索文件内容"""
418
- import argparse
419
- # [v1.23.46] 使用通用过滤器,过滤系统 grep 参数(-n, -i, -r 等)
420
- args = _filter_unknown_args(args, allowed_prefixes={"-p", "--pattern", "--max", "--depth"})
421
- p = argparse.ArgumentParser(prog="myagent-ai grep", description="在目录中搜索文件内容")
422
- p.add_argument("query", help="搜索关键词")
423
- p.add_argument("path", help="搜索目录路径")
424
- p.add_argument("-p", "--pattern", default="*", help="文件匹配模式 (如 *.py)")
425
- p.add_argument("--max", type=int, default=50, help="最大结果数 (默认50)")
426
- p.add_argument("--depth", type=int, default=10, help="最大递归深度 (默认10)")
427
- a = p.parse_args(args)
428
-
429
- from skills.file_skill import FileSearchSkill
430
- skill = FileSearchSkill()
431
- result = await skill.execute(path=a.path, query=a.query, pattern=a.pattern,
432
- max_results=a.max, max_depth=a.depth)
433
- _print_result({"success": result.success, "message": result.message,
434
- "data": result.data, "error": result.error})
435
-
436
-
437
- async def cmd_mv(args):
438
- """移动/重命名文件"""
439
- import argparse
440
- p = argparse.ArgumentParser(prog="myagent-ai mv", description="移动或重命名文件/目录")
441
- p.add_argument("source", help="源路径")
442
- p.add_argument("dest", help="目标路径")
443
- a = p.parse_args(args)
444
-
445
- from skills.file_skill import FileMoveSkill
446
- skill = FileMoveSkill()
447
- result = await skill.execute(source=a.source, destination=a.dest)
448
- _print_result({"success": result.success, "message": result.message,
449
- "data": result.data, "error": result.error})
450
-
451
-
452
329
  async def cmd_send_file(args):
453
330
  """发送文件给用户"""
454
331
  import argparse
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/skills/TTS/tts.ts CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/skills/base.py CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes