myagent-ai 1.0.0

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 (486) hide show
  1. package/Dockerfile +30 -0
  2. package/README.md +333 -0
  3. package/agents/__init__.py +6 -0
  4. package/agents/__pycache__/main_agent.cpython-312.pyc +0 -0
  5. package/agents/base.py +115 -0
  6. package/agents/main_agent.py +695 -0
  7. package/agents/memory_agent.py +313 -0
  8. package/agents/tool_agent.py +248 -0
  9. package/chatbot/__init__.py +5 -0
  10. package/chatbot/base.py +124 -0
  11. package/chatbot/discord_bot.py +146 -0
  12. package/chatbot/feishu_bot.py +548 -0
  13. package/chatbot/manager.py +164 -0
  14. package/chatbot/qq_bot.py +189 -0
  15. package/chatbot/telegram_bot.py +167 -0
  16. package/chatbot/wechat_bot.py +558 -0
  17. package/communication/__init__.py +66 -0
  18. package/communication/channel.py +576 -0
  19. package/communication/crypto.py +347 -0
  20. package/communication/manager.py +397 -0
  21. package/communication/peer.py +156 -0
  22. package/config.py +464 -0
  23. package/core/__init__.py +10 -0
  24. package/core/config_broadcast.py +276 -0
  25. package/core/llm.py +878 -0
  26. package/core/logger.py +241 -0
  27. package/core/task_queue.py +362 -0
  28. package/core/utils.py +184 -0
  29. package/executor/__init__.py +4 -0
  30. package/executor/__pycache__/engine.cpython-312.pyc +0 -0
  31. package/executor/engine.py +1215 -0
  32. package/groups/__init__.py +15 -0
  33. package/groups/manager.py +724 -0
  34. package/knowledge/__init__.py +4 -0
  35. package/knowledge/rag.py +444 -0
  36. package/main.py +801 -0
  37. package/memory/__init__.py +4 -0
  38. package/memory/manager.py +840 -0
  39. package/organization/__init__.py +4 -0
  40. package/organization/manager.py +350 -0
  41. package/package.json +58 -0
  42. package/requirements.txt +59 -0
  43. package/setup.py +40 -0
  44. package/skills/ASR/LICENSE.txt +21 -0
  45. package/skills/ASR/SKILL.md +580 -0
  46. package/skills/ASR/scripts/asr.ts +27 -0
  47. package/skills/LLM/LICENSE.txt +21 -0
  48. package/skills/LLM/SKILL.md +856 -0
  49. package/skills/LLM/scripts/chat.ts +32 -0
  50. package/skills/TTS/LICENSE.txt +21 -0
  51. package/skills/TTS/SKILL.md +735 -0
  52. package/skills/TTS/tts.ts +25 -0
  53. package/skills/VLM/LICENSE.txt +21 -0
  54. package/skills/VLM/SKILL.md +588 -0
  55. package/skills/VLM/scripts/vlm.ts +57 -0
  56. package/skills/__init__.py +5 -0
  57. package/skills/agent-browser/SKILL.md +328 -0
  58. package/skills/ai-news-collectors/SKILL.md +157 -0
  59. package/skills/ai-news-collectors/_meta.json +6 -0
  60. package/skills/ai-news-collectors/references/sources.md +128 -0
  61. package/skills/aminer-open-academic/SKILL.md +312 -0
  62. package/skills/aminer-open-academic/_meta.json +6 -0
  63. package/skills/aminer-open-academic/evals/evals.json +46 -0
  64. package/skills/aminer-open-academic/references/api-catalog.md +1032 -0
  65. package/skills/aminer-open-academic/scripts/__pycache__/aminer_client.cpython-312.pyc +0 -0
  66. package/skills/aminer-open-academic/scripts/aminer_client.py +875 -0
  67. package/skills/auto-target-tracker/SKILL.md +317 -0
  68. package/skills/base.py +147 -0
  69. package/skills/blog-writer/2024-02-17-radical-transparency-sales.md +35 -0
  70. package/skills/blog-writer/2024-02-17-raycast-spotlight-superpowers.md +33 -0
  71. package/skills/blog-writer/2024-02-17-short-form-content-marketing.md +47 -0
  72. package/skills/blog-writer/2024-02-17-typing-speed-benefits.md +33 -0
  73. package/skills/blog-writer/2024-03-14-effective-ai-prompts.md +55 -0
  74. package/skills/blog-writer/2024-11-08-ai-revolutionizing-entry-level-sales.md +43 -0
  75. package/skills/blog-writer/2025-11-12-why-ai-art-is-useless.md +49 -0
  76. package/skills/blog-writer/README.md +2 -0
  77. package/skills/blog-writer/SKILL.md +158 -0
  78. package/skills/blog-writer/__pycache__/manage_examples.cpython-312.pyc +0 -0
  79. package/skills/blog-writer/_meta.json +6 -0
  80. package/skills/blog-writer/manage_examples.py +90 -0
  81. package/skills/blog-writer/style-guide.md +160 -0
  82. package/skills/browser_skill.py +146 -0
  83. package/skills/coding-agent/SKILL.md +120 -0
  84. package/skills/coding-agent/_meta.json +6 -0
  85. package/skills/coding-agent/criteria.md +48 -0
  86. package/skills/coding-agent/execution.md +42 -0
  87. package/skills/coding-agent/memory-template.md +38 -0
  88. package/skills/coding-agent/planning.md +31 -0
  89. package/skills/coding-agent/state.md +60 -0
  90. package/skills/coding-agent/verification.md +39 -0
  91. package/skills/content-strategy/SKILL.md +181 -0
  92. package/skills/content-strategy/_meta.json +6 -0
  93. package/skills/contentanalysis/ExtractWisdom/SKILL.md +229 -0
  94. package/skills/contentanalysis/ExtractWisdom/Workflows/Extract.md +60 -0
  95. package/skills/contentanalysis/SKILL.md +14 -0
  96. package/skills/docx/CHANGELOG.md +85 -0
  97. package/skills/docx/LICENSE.txt +30 -0
  98. package/skills/docx/SKILL.md +455 -0
  99. package/skills/docx/docx-js.md +681 -0
  100. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  101. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  102. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  103. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  104. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  105. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  106. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  107. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  108. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  109. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  110. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  111. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  112. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  113. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  114. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  115. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  116. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  117. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  118. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  119. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  120. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  121. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  122. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  123. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  124. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  125. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  126. package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  127. package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  128. package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  129. package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  130. package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  131. package/skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
  132. package/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  133. package/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  134. package/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  135. package/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  136. package/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  137. package/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  138. package/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  139. package/skills/docx/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
  140. package/skills/docx/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
  141. package/skills/docx/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
  142. package/skills/docx/ooxml/scripts/pack.py +159 -0
  143. package/skills/docx/ooxml/scripts/unpack.py +29 -0
  144. package/skills/docx/ooxml/scripts/validate.py +69 -0
  145. package/skills/docx/ooxml/scripts/validation/__init__.py +15 -0
  146. package/skills/docx/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
  147. package/skills/docx/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
  148. package/skills/docx/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
  149. package/skills/docx/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
  150. package/skills/docx/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
  151. package/skills/docx/ooxml/scripts/validation/base.py +951 -0
  152. package/skills/docx/ooxml/scripts/validation/docx.py +274 -0
  153. package/skills/docx/ooxml/scripts/validation/pptx.py +315 -0
  154. package/skills/docx/ooxml/scripts/validation/redlining.py +279 -0
  155. package/skills/docx/ooxml.md +615 -0
  156. package/skills/docx/scripts/__init__.py +1 -0
  157. package/skills/docx/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
  158. package/skills/docx/scripts/__pycache__/add_toc_placeholders.cpython-312.pyc +0 -0
  159. package/skills/docx/scripts/__pycache__/document.cpython-312.pyc +0 -0
  160. package/skills/docx/scripts/__pycache__/utilities.cpython-312.pyc +0 -0
  161. package/skills/docx/scripts/add_toc_placeholders.py +220 -0
  162. package/skills/docx/scripts/document.py +1302 -0
  163. package/skills/docx/scripts/templates/comments.xml +3 -0
  164. package/skills/docx/scripts/templates/commentsExtended.xml +3 -0
  165. package/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  166. package/skills/docx/scripts/templates/commentsIds.xml +3 -0
  167. package/skills/docx/scripts/templates/people.xml +3 -0
  168. package/skills/docx/scripts/utilities.py +374 -0
  169. package/skills/dream-interpreter/SKILL.md +88 -0
  170. package/skills/dream-interpreter/assets/example_asset.txt +24 -0
  171. package/skills/dream-interpreter/references/api_reference.md +34 -0
  172. package/skills/dream-interpreter/references/interpretation-guide.md +83 -0
  173. package/skills/dream-interpreter/references/output-schema.md +65 -0
  174. package/skills/dream-interpreter/references/questioning-strategy.md +62 -0
  175. package/skills/dream-interpreter/references/visual-mapping.md +81 -0
  176. package/skills/dream-interpreter/scripts/__pycache__/example.cpython-312.pyc +0 -0
  177. package/skills/dream-interpreter/scripts/example.py +19 -0
  178. package/skills/dream-interpreter/skill.json +7 -0
  179. package/skills/file_skill.py +246 -0
  180. package/skills/finance/Finance_API_Doc.md +445 -0
  181. package/skills/finance/SKILL.md +53 -0
  182. package/skills/fullstack-dev/SKILL.md +205 -0
  183. package/skills/get-fortune-analysis/SKILL.md +370 -0
  184. package/skills/get-fortune-analysis/lunar_python.py +91 -0
  185. package/skills/gift-evaluator/SKILL.md +83 -0
  186. package/skills/gift-evaluator/__pycache__/html_tools.cpython-312.pyc +0 -0
  187. package/skills/gift-evaluator/html_tools.py +268 -0
  188. package/skills/image-edit/LICENSE.txt +21 -0
  189. package/skills/image-edit/SKILL.md +896 -0
  190. package/skills/image-edit/scripts/image-edit.ts +36 -0
  191. package/skills/image-generation/LICENSE.txt +21 -0
  192. package/skills/image-generation/SKILL.md +583 -0
  193. package/skills/image-generation/scripts/image-generation.ts +28 -0
  194. package/skills/image-understand/LICENSE.txt +21 -0
  195. package/skills/image-understand/SKILL.md +855 -0
  196. package/skills/image-understand/scripts/image-understand.ts +41 -0
  197. package/skills/interview-designer/README.md +70 -0
  198. package/skills/interview-designer/SKILL.md +53 -0
  199. package/skills/interview-designer/_meta.json +6 -0
  200. package/skills/interview-designer/references/design_rationale.md +43 -0
  201. package/skills/interview-designer/templates/interview_guide_template.md +62 -0
  202. package/skills/market-research-reports/SKILL.md +901 -0
  203. package/skills/market-research-reports/assets/FORMATTING_GUIDE.md +428 -0
  204. package/skills/market-research-reports/assets/market_report_template.tex +1380 -0
  205. package/skills/market-research-reports/assets/market_research.sty +564 -0
  206. package/skills/market-research-reports/references/data_analysis_patterns.md +548 -0
  207. package/skills/market-research-reports/references/report_structure_guide.md +999 -0
  208. package/skills/market-research-reports/references/visual_generation_guide.md +1077 -0
  209. package/skills/market-research-reports/scripts/__pycache__/generate_market_visuals.cpython-312.pyc +0 -0
  210. package/skills/market-research-reports/scripts/generate_market_visuals.py +529 -0
  211. package/skills/marketing-mode/README.md +49 -0
  212. package/skills/marketing-mode/SKILL.md +693 -0
  213. package/skills/marketing-mode/_meta.json +6 -0
  214. package/skills/marketing-mode/mode-prompt.md +39 -0
  215. package/skills/marketing-mode/skill.json +51 -0
  216. package/skills/mindfulness-meditation/SKILL.md +65 -0
  217. package/skills/mindfulness-meditation/_meta.json +6 -0
  218. package/skills/multi-search-engine/CHANGELOG.md +15 -0
  219. package/skills/multi-search-engine/CHANNELLOG.md +48 -0
  220. package/skills/multi-search-engine/SKILL.md +78 -0
  221. package/skills/multi-search-engine/_meta.json +6 -0
  222. package/skills/multi-search-engine/config.json +14 -0
  223. package/skills/multi-search-engine/metadata.json +7 -0
  224. package/skills/multi-search-engine/references/international-search.md +651 -0
  225. package/skills/pdf/LICENSE.txt +30 -0
  226. package/skills/pdf/SKILL.md +1534 -0
  227. package/skills/pdf/forms.md +205 -0
  228. package/skills/pdf/reference.md +765 -0
  229. package/skills/pdf/scripts/__pycache__/add_zai_metadata.cpython-312.pyc +0 -0
  230. package/skills/pdf/scripts/__pycache__/check_bounding_boxes.cpython-312.pyc +0 -0
  231. package/skills/pdf/scripts/__pycache__/check_bounding_boxes_test.cpython-312.pyc +0 -0
  232. package/skills/pdf/scripts/__pycache__/check_fillable_fields.cpython-312.pyc +0 -0
  233. package/skills/pdf/scripts/__pycache__/convert_pdf_to_images.cpython-312.pyc +0 -0
  234. package/skills/pdf/scripts/__pycache__/create_validation_image.cpython-312.pyc +0 -0
  235. package/skills/pdf/scripts/__pycache__/extract_form_field_info.cpython-312.pyc +0 -0
  236. package/skills/pdf/scripts/__pycache__/fill_fillable_fields.cpython-312.pyc +0 -0
  237. package/skills/pdf/scripts/__pycache__/fill_pdf_form_with_annotations.cpython-312.pyc +0 -0
  238. package/skills/pdf/scripts/__pycache__/sanitize_code.cpython-312.pyc +0 -0
  239. package/skills/pdf/scripts/add_zai_metadata.py +172 -0
  240. package/skills/pdf/scripts/check_bounding_boxes.py +70 -0
  241. package/skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
  242. package/skills/pdf/scripts/check_fillable_fields.py +12 -0
  243. package/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
  244. package/skills/pdf/scripts/create_validation_image.py +41 -0
  245. package/skills/pdf/scripts/extract_form_field_info.py +152 -0
  246. package/skills/pdf/scripts/fill_fillable_fields.py +114 -0
  247. package/skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
  248. package/skills/pdf/scripts/sanitize_code.py +110 -0
  249. package/skills/podcast-generate/LICENSE.txt +21 -0
  250. package/skills/podcast-generate/SKILL.md +198 -0
  251. package/skills/podcast-generate/generate.ts +661 -0
  252. package/skills/podcast-generate/package.json +30 -0
  253. package/skills/podcast-generate/readme.md +177 -0
  254. package/skills/podcast-generate/test_data/segments.jsonl +3 -0
  255. package/skills/podcast-generate/tsconfig.json +26 -0
  256. package/skills/pptx/LICENSE.txt +30 -0
  257. package/skills/pptx/SKILL.md +507 -0
  258. package/skills/pptx/html2pptx.md +625 -0
  259. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  260. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  261. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  262. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  263. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  264. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  265. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  266. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  267. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  268. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  269. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  270. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  271. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  272. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  273. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  274. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  275. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  276. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  277. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  278. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  279. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  280. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  281. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  282. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  283. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  284. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  285. package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  286. package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  287. package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  288. package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  289. package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  290. package/skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
  291. package/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  292. package/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  293. package/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  294. package/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  295. package/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  296. package/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  297. package/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  298. package/skills/pptx/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
  299. package/skills/pptx/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
  300. package/skills/pptx/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
  301. package/skills/pptx/ooxml/scripts/pack.py +159 -0
  302. package/skills/pptx/ooxml/scripts/unpack.py +29 -0
  303. package/skills/pptx/ooxml/scripts/validate.py +69 -0
  304. package/skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
  305. package/skills/pptx/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
  306. package/skills/pptx/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
  307. package/skills/pptx/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
  308. package/skills/pptx/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
  309. package/skills/pptx/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
  310. package/skills/pptx/ooxml/scripts/validation/base.py +951 -0
  311. package/skills/pptx/ooxml/scripts/validation/docx.py +274 -0
  312. package/skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
  313. package/skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
  314. package/skills/pptx/ooxml.md +427 -0
  315. package/skills/pptx/scripts/__pycache__/inventory.cpython-312.pyc +0 -0
  316. package/skills/pptx/scripts/__pycache__/inventory.cpython-313.pyc +0 -0
  317. package/skills/pptx/scripts/__pycache__/rearrange.cpython-312.pyc +0 -0
  318. package/skills/pptx/scripts/__pycache__/replace.cpython-312.pyc +0 -0
  319. package/skills/pptx/scripts/__pycache__/thumbnail.cpython-312.pyc +0 -0
  320. package/skills/pptx/scripts/html2pptx.js +1044 -0
  321. package/skills/pptx/scripts/inventory.py +1020 -0
  322. package/skills/pptx/scripts/rearrange.py +231 -0
  323. package/skills/pptx/scripts/replace.py +385 -0
  324. package/skills/pptx/scripts/thumbnail.py +450 -0
  325. package/skills/qingyan-research/SKILL.md +294 -0
  326. package/skills/qingyan-research/__pycache__/generate_html.cpython-312.pyc +0 -0
  327. package/skills/qingyan-research/generate_html.py +33 -0
  328. package/skills/registry.py +344 -0
  329. package/skills/search_skill.py +228 -0
  330. package/skills/seo-content-writer/SKILL.md +661 -0
  331. package/skills/seo-content-writer/_meta.json +6 -0
  332. package/skills/seo-content-writer/references/content-structure-templates.md +875 -0
  333. package/skills/seo-content-writer/references/title-formulas.md +339 -0
  334. package/skills/skill-creator/LICENSE.txt +202 -0
  335. package/skills/skill-creator/SKILL.md +485 -0
  336. package/skills/skill-creator/agents/analyzer.md +274 -0
  337. package/skills/skill-creator/agents/comparator.md +202 -0
  338. package/skills/skill-creator/agents/grader.md +223 -0
  339. package/skills/skill-creator/assets/eval_review.html +146 -0
  340. package/skills/skill-creator/eval-viewer/__pycache__/generate_review.cpython-312.pyc +0 -0
  341. package/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  342. package/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  343. package/skills/skill-creator/references/schemas.md +430 -0
  344. package/skills/skill-creator/scripts/__init__.py +0 -0
  345. package/skills/skill-creator/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
  346. package/skills/skill-creator/scripts/__pycache__/aggregate_benchmark.cpython-312.pyc +0 -0
  347. package/skills/skill-creator/scripts/__pycache__/generate_report.cpython-312.pyc +0 -0
  348. package/skills/skill-creator/scripts/__pycache__/improve_description.cpython-312.pyc +0 -0
  349. package/skills/skill-creator/scripts/__pycache__/package_skill.cpython-312.pyc +0 -0
  350. package/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-312.pyc +0 -0
  351. package/skills/skill-creator/scripts/__pycache__/run_eval.cpython-312.pyc +0 -0
  352. package/skills/skill-creator/scripts/__pycache__/run_loop.cpython-312.pyc +0 -0
  353. package/skills/skill-creator/scripts/__pycache__/utils.cpython-312.pyc +0 -0
  354. package/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  355. package/skills/skill-creator/scripts/generate_report.py +326 -0
  356. package/skills/skill-creator/scripts/improve_description.py +236 -0
  357. package/skills/skill-creator/scripts/package_skill.py +136 -0
  358. package/skills/skill-creator/scripts/quick_validate.py +103 -0
  359. package/skills/skill-creator/scripts/run_eval.py +310 -0
  360. package/skills/skill-creator/scripts/run_loop.py +328 -0
  361. package/skills/skill-creator/scripts/utils.py +47 -0
  362. package/skills/skill-finder-cn/SKILL.md +66 -0
  363. package/skills/skill-finder-cn/_meta.json +6 -0
  364. package/skills/skill-finder-cn/package.json +5 -0
  365. package/skills/skill-finder-cn/scripts/search.sh +15 -0
  366. package/skills/skill-vetter/SKILL.md +137 -0
  367. package/skills/stock-analysis-skill/SKILL.md +156 -0
  368. package/skills/stock-analysis-skill/package.json +21 -0
  369. package/skills/stock-analysis-skill/src/analyzer.ts +264 -0
  370. package/skills/stock-analysis-skill/src/dataFetcher.ts +130 -0
  371. package/skills/stock-analysis-skill/src/dividend.ts +226 -0
  372. package/skills/stock-analysis-skill/src/index.ts +327 -0
  373. package/skills/stock-analysis-skill/src/rumorScanner.ts +200 -0
  374. package/skills/stock-analysis-skill/src/types.ts +167 -0
  375. package/skills/stock-analysis-skill/src/watchlist.ts +292 -0
  376. package/skills/stock-analysis-skill/tsconfig.json +15 -0
  377. package/skills/storyboard-manager/SKILL.md +532 -0
  378. package/skills/storyboard-manager/index.js +9 -0
  379. package/skills/storyboard-manager/package.json +11 -0
  380. package/skills/storyboard-manager/references/character_development.md +232 -0
  381. package/skills/storyboard-manager/references/story_structures.md +148 -0
  382. package/skills/storyboard-manager/scripts/__pycache__/consistency_checker.cpython-312.pyc +0 -0
  383. package/skills/storyboard-manager/scripts/__pycache__/timeline_tracker.cpython-312.pyc +0 -0
  384. package/skills/storyboard-manager/scripts/consistency_checker.py +391 -0
  385. package/skills/storyboard-manager/scripts/timeline_tracker.py +352 -0
  386. package/skills/system_skill.py +249 -0
  387. package/skills/ui-ux-pro-max/SKILL.md +43 -0
  388. package/skills/ui-ux-pro-max/_meta.json +6 -0
  389. package/skills/ui-ux-pro-max/assets/data/charts.csv +26 -0
  390. package/skills/ui-ux-pro-max/assets/data/colors.csv +97 -0
  391. package/skills/ui-ux-pro-max/assets/data/icons.csv +101 -0
  392. package/skills/ui-ux-pro-max/assets/data/landing.csv +31 -0
  393. package/skills/ui-ux-pro-max/assets/data/products.csv +97 -0
  394. package/skills/ui-ux-pro-max/assets/data/react-performance.csv +45 -0
  395. package/skills/ui-ux-pro-max/assets/data/stacks/astro.csv +54 -0
  396. package/skills/ui-ux-pro-max/assets/data/stacks/flutter.csv +53 -0
  397. package/skills/ui-ux-pro-max/assets/data/stacks/html-tailwind.csv +56 -0
  398. package/skills/ui-ux-pro-max/assets/data/stacks/jetpack-compose.csv +53 -0
  399. package/skills/ui-ux-pro-max/assets/data/stacks/nextjs.csv +53 -0
  400. package/skills/ui-ux-pro-max/assets/data/stacks/nuxt-ui.csv +51 -0
  401. package/skills/ui-ux-pro-max/assets/data/stacks/nuxtjs.csv +59 -0
  402. package/skills/ui-ux-pro-max/assets/data/stacks/react-native.csv +52 -0
  403. package/skills/ui-ux-pro-max/assets/data/stacks/react.csv +54 -0
  404. package/skills/ui-ux-pro-max/assets/data/stacks/shadcn.csv +61 -0
  405. package/skills/ui-ux-pro-max/assets/data/stacks/svelte.csv +54 -0
  406. package/skills/ui-ux-pro-max/assets/data/stacks/swiftui.csv +51 -0
  407. package/skills/ui-ux-pro-max/assets/data/stacks/vue.csv +50 -0
  408. package/skills/ui-ux-pro-max/assets/data/styles.csv +68 -0
  409. package/skills/ui-ux-pro-max/assets/data/typography.csv +58 -0
  410. package/skills/ui-ux-pro-max/assets/data/ui-reasoning.csv +101 -0
  411. package/skills/ui-ux-pro-max/assets/data/ux-guidelines.csv +100 -0
  412. package/skills/ui-ux-pro-max/assets/data/web-interface.csv +31 -0
  413. package/skills/ui-ux-pro-max/data/charts.csv +26 -0
  414. package/skills/ui-ux-pro-max/data/colors.csv +97 -0
  415. package/skills/ui-ux-pro-max/data/icons.csv +101 -0
  416. package/skills/ui-ux-pro-max/data/landing.csv +31 -0
  417. package/skills/ui-ux-pro-max/data/products.csv +97 -0
  418. package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  419. package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  420. package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  421. package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  422. package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  423. package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  424. package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  425. package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  426. package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  427. package/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  428. package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  429. package/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  430. package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  431. package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  432. package/skills/ui-ux-pro-max/data/styles.csv +68 -0
  433. package/skills/ui-ux-pro-max/data/typography.csv +58 -0
  434. package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  435. package/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  436. package/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  437. package/skills/ui-ux-pro-max/references/upstream-README.md +488 -0
  438. package/skills/ui-ux-pro-max/references/upstream-skill-content.md +288 -0
  439. package/skills/ui-ux-pro-max/scripts/__init__.py +0 -0
  440. package/skills/ui-ux-pro-max/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
  441. package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
  442. package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
  443. package/skills/ui-ux-pro-max/scripts/__pycache__/search.cpython-312.pyc +0 -0
  444. package/skills/ui-ux-pro-max/scripts/core.py +253 -0
  445. package/skills/ui-ux-pro-max/scripts/design_system.py +1071 -0
  446. package/skills/ui-ux-pro-max/scripts/search.py +111 -0
  447. package/skills/video-generation/LICENSE.txt +21 -0
  448. package/skills/video-generation/SKILL.md +1082 -0
  449. package/skills/video-generation/scripts/video.ts +168 -0
  450. package/skills/video-understand/LICENSE.txt +21 -0
  451. package/skills/video-understand/SKILL.md +916 -0
  452. package/skills/video-understand/scripts/video-understand.ts +41 -0
  453. package/skills/visual-design-foundations/SKILL.md +318 -0
  454. package/skills/visual-design-foundations/references/color-systems.md +417 -0
  455. package/skills/visual-design-foundations/references/spacing-iconography.md +425 -0
  456. package/skills/visual-design-foundations/references/typography-systems.md +432 -0
  457. package/skills/web-reader/LICENSE.txt +21 -0
  458. package/skills/web-reader/SKILL.md +1140 -0
  459. package/skills/web-reader/scripts/web-reader.ts +37 -0
  460. package/skills/web-search/LICENSE.txt +21 -0
  461. package/skills/web-search/SKILL.md +912 -0
  462. package/skills/web-search/scripts/web_search.ts +44 -0
  463. package/skills/web-shader-extractor/SKILL.md +145 -0
  464. package/skills/web-shader-extractor/references/config-extraction.md +50 -0
  465. package/skills/web-shader-extractor/references/encoded-definitions.md +53 -0
  466. package/skills/web-shader-extractor/references/extraction-workflow.md +61 -0
  467. package/skills/web-shader-extractor/references/porting-strategy.md +164 -0
  468. package/skills/web-shader-extractor/references/shader-injection.md +126 -0
  469. package/skills/web-shader-extractor/references/shaders-com.md +190 -0
  470. package/skills/web-shader-extractor/references/tech-signatures.md +54 -0
  471. package/skills/web-shader-extractor/references/tsl-extraction.md +41 -0
  472. package/skills/web-shader-extractor/references/unicorn-studio.md +353 -0
  473. package/skills/web-shader-extractor/scripts/fetch-rendered-dom.mjs +153 -0
  474. package/skills/web-shader-extractor/scripts/scan-bundle.sh +76 -0
  475. package/skills/writing-plans/SKILL.md +116 -0
  476. package/skills/writing-plans/_meta.json +6 -0
  477. package/skills/xlsx/LICENSE.txt +30 -0
  478. package/skills/xlsx/SKILL.md +496 -0
  479. package/skills/xlsx/__pycache__/recalc.cpython-312.pyc +0 -0
  480. package/skills/xlsx/recalc.py +178 -0
  481. package/start.sh +36 -0
  482. package/web/__init__.py +1 -0
  483. package/web/__pycache__/api_server.cpython-312.pyc +0 -0
  484. package/web/api_server.py +2043 -0
  485. package/web/ui/chat.html +3235 -0
  486. package/web/ui/index.html +458 -0
@@ -0,0 +1,25 @@
1
+ import ZAI from "z-ai-web-dev-sdk";
2
+ import fs from "fs";
3
+
4
+ async function main(text: string, outFile: string) {
5
+ try {
6
+ const zai = await ZAI.create();
7
+
8
+ const response = await zai.audio.tts.create({
9
+ input: text,
10
+ voice: "tongtong",
11
+ speed: 1.0,
12
+ response_format: "wav",
13
+ stream: false,
14
+ });
15
+
16
+ const arrayBuffer = await response.arrayBuffer();
17
+ const buffer = Buffer.from(new Uint8Array(arrayBuffer));
18
+ fs.writeFileSync(outFile, buffer);
19
+ console.log(`TTS audio saved to ${outFile}`);
20
+ } catch (err: any) {
21
+ console.error("TTS failed:", err?.message || err);
22
+ }
23
+ }
24
+
25
+ main("Hello, world!", "./output.wav");
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 z-ai-web-dev-sdk Skills
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,588 @@
1
+ ---
2
+ name: VLM
3
+ description: Implement vision-based AI chat capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to analyze images, describe visual content, or create applications that combine image understanding with conversational AI. Supports image URLs and base64 encoded images for multimodal interactions.
4
+ license: MIT
5
+ ---
6
+
7
+ # VLM(Vision Chat) Skill
8
+
9
+ This skill guides the implementation of vision chat functionality using the z-ai-web-dev-sdk package, enabling AI models to understand and respond to images combined with text prompts.
10
+
11
+ ## Skills Path
12
+
13
+ **Skill Location**: `{project_path}/skills/VLM`
14
+
15
+ this skill is located at above path in your project.
16
+
17
+ **Reference Scripts**: Example test scripts are available in the `{Skill Location}/scripts/` directory for quick testing and reference. See `{Skill Location}/scripts/vlm.ts` for a working example.
18
+
19
+ ## Overview
20
+
21
+ Vision Chat allows you to build applications that can analyze images, extract information from visual content, and answer questions about images through natural language conversation.
22
+
23
+ **IMPORTANT**: z-ai-web-dev-sdk MUST be used in backend code only. Never use it in client-side code.
24
+
25
+ ## Prerequisites
26
+
27
+ The z-ai-web-dev-sdk package is already installed. Import it as shown in the examples below.
28
+
29
+ ## CLI Usage (For Simple Tasks)
30
+
31
+ For simple image analysis tasks, you can use the z-ai CLI instead of writing code. This is ideal for quick image descriptions, testing vision capabilities, or simple automation.
32
+
33
+ ### Basic Image Analysis
34
+
35
+ ```bash
36
+ # Describe an image from URL
37
+ z-ai vision --prompt "What's in this image?" --image "https://example.com/photo.jpg"
38
+
39
+ # Using short options
40
+ z-ai vision -p "Describe this image" -i "https://example.com/image.png"
41
+ ```
42
+
43
+ ### Analyze Local Images
44
+
45
+ ```bash
46
+ # Analyze a local image file
47
+ z-ai vision -p "What objects are in this photo?" -i "./photo.jpg"
48
+
49
+ # Save response to file
50
+ z-ai vision -p "Describe the scene" -i "./landscape.png" -o description.json
51
+ ```
52
+
53
+ ### Multiple Images
54
+
55
+ ```bash
56
+ # Analyze multiple images at once
57
+ z-ai vision \
58
+ -p "Compare these two images" \
59
+ -i "./photo1.jpg" \
60
+ -i "./photo2.jpg" \
61
+ -o comparison.json
62
+
63
+ # Multiple images with detailed analysis
64
+ z-ai vision \
65
+ --prompt "What are the differences between these images?" \
66
+ --image "https://example.com/before.jpg" \
67
+ --image "https://example.com/after.jpg"
68
+ ```
69
+
70
+ ### With Thinking (Chain of Thought)
71
+
72
+ ```bash
73
+ # Enable thinking for complex visual reasoning
74
+ z-ai vision \
75
+ -p "Count the number of people in this image and describe their activities" \
76
+ -i "./crowd.jpg" \
77
+ --thinking \
78
+ -o analysis.json
79
+ ```
80
+
81
+ ### Streaming Output
82
+
83
+ ```bash
84
+ # Stream the vision analysis
85
+ z-ai vision -p "Describe this image in detail" -i "./photo.jpg" --stream
86
+ ```
87
+
88
+ ### CLI Parameters
89
+
90
+ - `--prompt, -p <text>`: **Required** - Question or instruction about the image(s)
91
+ - `--image, -i <URL or path>`: Optional - Image URL or local file path (can be used multiple times)
92
+ - `--thinking, -t`: Optional - Enable chain-of-thought reasoning (default: disabled)
93
+ - `--output, -o <path>`: Optional - Output file path (JSON format)
94
+ - `--stream`: Optional - Stream the response in real-time
95
+
96
+ ### Supported Image Formats
97
+
98
+ - PNG (.png)
99
+ - JPEG (.jpg, .jpeg)
100
+ - GIF (.gif)
101
+ - WebP (.webp)
102
+ - BMP (.bmp)
103
+
104
+ ### When to Use CLI vs SDK
105
+
106
+ **Use CLI for:**
107
+ - Quick image analysis
108
+ - Testing vision model capabilities
109
+ - One-off image descriptions
110
+ - Simple automation scripts
111
+
112
+ **Use SDK for:**
113
+ - Multi-turn conversations with images
114
+ - Dynamic image analysis in applications
115
+ - Batch processing with custom logic
116
+ - Production applications with complex workflows
117
+
118
+ ## Recommended Approach
119
+
120
+ For better performance and reliability, use base64 encoding to pass images to the model instead of image URLs.
121
+
122
+ ## Supported Content Types
123
+
124
+ The Vision Chat API supports three types of media content:
125
+
126
+ ### 1. **image_url** - For Image Files
127
+ Use this type for static images (PNG, JPEG, GIF, WebP, etc.)
128
+ ```typescript
129
+ {
130
+ role: 'user',
131
+ content: [
132
+ { type: 'text', text: prompt },
133
+ { type: 'image_url', image_url: { url: imageUrl } }
134
+ ]
135
+ }
136
+ ```
137
+
138
+ ### 2. **video_url** - For Video Files
139
+ Use this type for video content (MP4, AVI, MOV, etc.)
140
+ ```typescript
141
+ {
142
+ role: 'user',
143
+ content: [
144
+ { type: 'text', text: prompt },
145
+ { type: 'video_url', video_url: { url: videoUrl } }
146
+ ]
147
+ }
148
+ ```
149
+
150
+ ### 3. **file_url** - For Document Files
151
+ Use this type for document files (PDF, DOCX, TXT, etc.)
152
+ ```typescript
153
+ {
154
+ role: 'user',
155
+ content: [
156
+ { type: 'text', text: prompt },
157
+ { type: 'file_url', file_url: { url: fileUrl } }
158
+ ]
159
+ }
160
+ ```
161
+
162
+ **Note**: You can combine multiple content types in a single message. For example, you can include both text and multiple images, or text with both an image and a document.
163
+
164
+ ## Basic Vision Chat Implementation
165
+
166
+ ### Single Image Analysis
167
+
168
+ ```javascript
169
+ import ZAI from 'z-ai-web-dev-sdk';
170
+
171
+ async function analyzeImage(imageUrl, question) {
172
+ const zai = await ZAI.create();
173
+
174
+ const response = await zai.chat.completions.createVision({
175
+ messages: [
176
+ {
177
+ role: 'user',
178
+ content: [
179
+ {
180
+ type: 'text',
181
+ text: question
182
+ },
183
+ {
184
+ type: 'image_url',
185
+ image_url: {
186
+ url: imageUrl
187
+ }
188
+ }
189
+ ]
190
+ }
191
+ ],
192
+ thinking: { type: 'disabled' }
193
+ });
194
+
195
+ return response.choices[0]?.message?.content;
196
+ }
197
+
198
+ // Usage
199
+ const result = await analyzeImage(
200
+ 'https://example.com/product.jpg',
201
+ 'Describe this product in detail'
202
+ );
203
+ console.log('Analysis:', result);
204
+ ```
205
+
206
+ ### Multiple Images Analysis
207
+
208
+ ```javascript
209
+ import ZAI from 'z-ai-web-dev-sdk';
210
+
211
+ async function compareImages(imageUrls, question) {
212
+ const zai = await ZAI.create();
213
+
214
+ const content = [
215
+ {
216
+ type: 'text',
217
+ text: question
218
+ },
219
+ ...imageUrls.map(url => ({
220
+ type: 'image_url',
221
+ image_url: { url }
222
+ }))
223
+ ];
224
+
225
+ const response = await zai.chat.completions.createVision({
226
+ messages: [
227
+ {
228
+ role: 'user',
229
+ content: content
230
+ }
231
+ ],
232
+ thinking: { type: 'disabled' }
233
+ });
234
+
235
+ return response.choices[0]?.message?.content;
236
+ }
237
+
238
+ // Usage
239
+ const comparison = await compareImages(
240
+ [
241
+ 'https://example.com/before.jpg',
242
+ 'https://example.com/after.jpg'
243
+ ],
244
+ 'Compare these two images and describe the differences'
245
+ );
246
+ ```
247
+
248
+ ### Base64 Image Support
249
+
250
+ ```javascript
251
+ import ZAI from 'z-ai-web-dev-sdk';
252
+ import fs from 'fs';
253
+
254
+ async function analyzeLocalImage(imagePath, question) {
255
+ const zai = await ZAI.create();
256
+
257
+ // Read image file and convert to base64
258
+ const imageBuffer = fs.readFileSync(imagePath);
259
+ const base64Image = imageBuffer.toString('base64');
260
+ const mimeType = imagePath.endsWith('.png') ? 'image/png' : 'image/jpeg';
261
+
262
+ const response = await zai.chat.completions.createVision({
263
+ messages: [
264
+ {
265
+ role: 'user',
266
+ content: [
267
+ {
268
+ type: 'text',
269
+ text: question
270
+ },
271
+ {
272
+ type: 'image_url',
273
+ image_url: {
274
+ url: `data:${mimeType};base64,${base64Image}`
275
+ }
276
+ }
277
+ ]
278
+ }
279
+ ],
280
+ thinking: { type: 'disabled' }
281
+ });
282
+
283
+ return response.choices[0]?.message?.content;
284
+ }
285
+ ```
286
+
287
+ ## Advanced Use Cases
288
+
289
+ ### Conversational Vision Chat
290
+
291
+ ```javascript
292
+ import ZAI from 'z-ai-web-dev-sdk';
293
+
294
+ class VisionChatSession {
295
+ constructor() {
296
+ this.messages = [];
297
+ }
298
+
299
+ async initialize() {
300
+ this.zai = await ZAI.create();
301
+ }
302
+
303
+ async addImage(imageUrl, initialQuestion) {
304
+ this.messages.push({
305
+ role: 'user',
306
+ content: [
307
+ {
308
+ type: 'text',
309
+ text: initialQuestion
310
+ },
311
+ {
312
+ type: 'image_url',
313
+ image_url: { url: imageUrl }
314
+ }
315
+ ]
316
+ });
317
+
318
+ return this.getResponse();
319
+ }
320
+
321
+ async followUp(question) {
322
+ this.messages.push({
323
+ role: 'user',
324
+ content: [
325
+ {
326
+ type: 'text',
327
+ text: question
328
+ }
329
+ ]
330
+ });
331
+
332
+ return this.getResponse();
333
+ }
334
+
335
+ async getResponse() {
336
+ const response = await this.zai.chat.completions.createVision({
337
+ messages: this.messages,
338
+ thinking: { type: 'disabled' }
339
+ });
340
+
341
+ const assistantMessage = response.choices[0]?.message?.content;
342
+
343
+ this.messages.push({
344
+ role: 'assistant',
345
+ content: assistantMessage
346
+ });
347
+
348
+ return assistantMessage;
349
+ }
350
+ }
351
+
352
+ // Usage
353
+ const session = new VisionChatSession();
354
+ await session.initialize();
355
+
356
+ const initial = await session.addImage(
357
+ 'https://example.com/chart.jpg',
358
+ 'What does this chart show?'
359
+ );
360
+ console.log('Initial analysis:', initial);
361
+
362
+ const followup = await session.followUp('What are the key trends?');
363
+ console.log('Follow-up:', followup);
364
+ ```
365
+
366
+ ### Image Classification and Tagging
367
+
368
+ ```javascript
369
+ import ZAI from 'z-ai-web-dev-sdk';
370
+
371
+ async function classifyImage(imageUrl) {
372
+ const zai = await ZAI.create();
373
+
374
+ const prompt = `Analyze this image and provide:
375
+ 1. Main subject/category
376
+ 2. Key objects detected
377
+ 3. Scene description
378
+ 4. Suggested tags (comma-separated)
379
+
380
+ Format your response as JSON.`;
381
+
382
+ const response = await zai.chat.completions.createVision({
383
+ messages: [
384
+ {
385
+ role: 'user',
386
+ content: [
387
+ {
388
+ type: 'text',
389
+ text: prompt
390
+ },
391
+ {
392
+ type: 'image_url',
393
+ image_url: { url: imageUrl }
394
+ }
395
+ ]
396
+ }
397
+ ],
398
+ thinking: { type: 'disabled' }
399
+ });
400
+
401
+ const content = response.choices[0]?.message?.content;
402
+
403
+ try {
404
+ return JSON.parse(content);
405
+ } catch (e) {
406
+ return { rawResponse: content };
407
+ }
408
+ }
409
+ ```
410
+
411
+ ### OCR and Text Extraction
412
+
413
+ ```javascript
414
+ import ZAI from 'z-ai-web-dev-sdk';
415
+
416
+ async function extractText(imageUrl) {
417
+ const zai = await ZAI.create();
418
+
419
+ const response = await zai.chat.completions.createVision({
420
+ messages: [
421
+ {
422
+ role: 'user',
423
+ content: [
424
+ {
425
+ type: 'text',
426
+ text: 'Extract all text from this image. Preserve the layout and formatting as much as possible.'
427
+ },
428
+ {
429
+ type: 'image_url',
430
+ image_url: { url: imageUrl }
431
+ }
432
+ ]
433
+ }
434
+ ],
435
+ thinking: { type: 'disabled' }
436
+ });
437
+
438
+ return response.choices[0]?.message?.content;
439
+ }
440
+ ```
441
+
442
+ ## Best Practices
443
+
444
+ ### 1. Image Quality and Size
445
+ - Use high-quality images for better analysis results
446
+ - Optimize image size to balance quality and processing speed
447
+ - Supported formats: JPEG, PNG, WebP
448
+
449
+ ### 2. Prompt Engineering
450
+ - Be specific about what information you need from the image
451
+ - Structure complex requests with numbered lists or bullet points
452
+ - Provide context about the image type (photo, diagram, chart, etc.)
453
+
454
+ ### 3. Error Handling
455
+ ```javascript
456
+ async function safeVisionChat(imageUrl, question) {
457
+ try {
458
+ const zai = await ZAI.create();
459
+
460
+ const response = await zai.chat.completions.createVision({
461
+ messages: [
462
+ {
463
+ role: 'user',
464
+ content: [
465
+ { type: 'text', text: question },
466
+ { type: 'image_url', image_url: { url: imageUrl } }
467
+ ]
468
+ }
469
+ ],
470
+ thinking: { type: 'disabled' }
471
+ });
472
+
473
+ return {
474
+ success: true,
475
+ content: response.choices[0]?.message?.content
476
+ };
477
+ } catch (error) {
478
+ console.error('Vision chat error:', error);
479
+ return {
480
+ success: false,
481
+ error: error.message
482
+ };
483
+ }
484
+ }
485
+ ```
486
+
487
+ ### 4. Performance Optimization
488
+ - Cache SDK instance creation when processing multiple images
489
+ - Use appropriate image formats (JPEG for photos, PNG for diagrams)
490
+ - Consider image preprocessing for large batches
491
+
492
+ ### 5. Security Considerations
493
+ - Validate image URLs before processing
494
+ - Sanitize user-provided image data
495
+ - Implement rate limiting for public-facing APIs
496
+ - Never expose SDK credentials in client-side code
497
+
498
+ ## Common Use Cases
499
+
500
+ 1. **Product Analysis**: Analyze product images for e-commerce applications
501
+ 2. **Document Understanding**: Extract information from receipts, invoices, forms
502
+ 3. **Medical Imaging**: Assist in preliminary analysis (with appropriate disclaimers)
503
+ 4. **Quality Control**: Detect defects or anomalies in manufacturing
504
+ 5. **Content Moderation**: Analyze images for policy compliance
505
+ 6. **Accessibility**: Generate alt text for images automatically
506
+ 7. **Visual Search**: Understand and categorize images for search functionality
507
+
508
+ ## Integration Examples
509
+
510
+ ### Express.js API Endpoint
511
+
512
+ ```javascript
513
+ import express from 'express';
514
+ import ZAI from 'z-ai-web-dev-sdk';
515
+
516
+ const app = express();
517
+ app.use(express.json());
518
+
519
+ let zaiInstance;
520
+
521
+ // Initialize SDK once
522
+ async function initZAI() {
523
+ zaiInstance = await ZAI.create();
524
+ }
525
+
526
+ app.post('/api/analyze-image', async (req, res) => {
527
+ try {
528
+ const { imageUrl, question } = req.body;
529
+
530
+ if (!imageUrl || !question) {
531
+ return res.status(400).json({
532
+ error: 'imageUrl and question are required'
533
+ });
534
+ }
535
+
536
+ const response = await zaiInstance.chat.completions.createVision({
537
+ messages: [
538
+ {
539
+ role: 'user',
540
+ content: [
541
+ { type: 'text', text: question },
542
+ { type: 'image_url', image_url: { url: imageUrl } }
543
+ ]
544
+ }
545
+ ],
546
+ thinking: { type: 'disabled' }
547
+ });
548
+
549
+ res.json({
550
+ success: true,
551
+ analysis: response.choices[0]?.message?.content
552
+ });
553
+ } catch (error) {
554
+ res.status(500).json({
555
+ success: false,
556
+ error: error.message
557
+ });
558
+ }
559
+ });
560
+
561
+ initZAI().then(() => {
562
+ app.listen(3000, () => {
563
+ console.log('Vision chat API running on port 3000');
564
+ });
565
+ });
566
+ ```
567
+
568
+ ## Troubleshooting
569
+
570
+ **Issue**: "SDK must be used in backend"
571
+ - **Solution**: Ensure z-ai-web-dev-sdk is only imported and used in server-side code
572
+
573
+ **Issue**: Image not loading or being analyzed
574
+ - **Solution**: Verify the image URL is accessible and returns a valid image format
575
+
576
+ **Issue**: Poor analysis quality
577
+ - **Solution**: Provide more specific prompts and ensure image quality is sufficient
578
+
579
+ **Issue**: Slow response times
580
+ - **Solution**: Optimize image size and consider caching frequently analyzed images
581
+
582
+ ## Remember
583
+
584
+ - Always use z-ai-web-dev-sdk in backend code only
585
+ - The SDK is already installed - import as shown in examples
586
+ - Structure prompts clearly for best results
587
+ - Handle errors gracefully in production applications
588
+ - Consider user privacy when processing images
@@ -0,0 +1,57 @@
1
+ import ZAI, { VisionMessage } from 'z-ai-web-dev-sdk';
2
+
3
+ async function main(imageUrl: string, prompt: string) {
4
+ try {
5
+ const zai = await ZAI.create();
6
+
7
+ const messages: VisionMessage[] = [
8
+ {
9
+ role: 'assistant',
10
+ content: [
11
+ { type: 'text', text: 'Output only text, no markdown.' }
12
+ ]
13
+ },
14
+ {
15
+ role: 'user',
16
+ content: [
17
+ { type: 'text', text: prompt },
18
+ { type: 'image_url', image_url: { url: imageUrl } }
19
+ ]
20
+ }
21
+ ];
22
+
23
+ // const messages: VisionMessage[] = [
24
+ // {
25
+ // role: 'user',
26
+ // content: [
27
+ // { type: 'text', text: prompt },
28
+ // { type: 'video_url', video_url: { url: imageUrl } }
29
+ // ]
30
+ // }
31
+ // ];
32
+
33
+ // const messages: VisionMessage[] = [
34
+ // {
35
+ // role: 'user',
36
+ // content: [
37
+ // { type: 'text', text: prompt },
38
+ // { type: 'file_url', file_url: { url: imageUrl } }
39
+ // ]
40
+ // }
41
+ // ];
42
+
43
+ const response = await zai.chat.completions.createVision({
44
+ model: 'glm-4.6v',
45
+ messages,
46
+ thinking: { type: 'disabled' }
47
+ });
48
+
49
+ const reply = response.choices?.[0]?.message?.content;
50
+ console.log('Vision model reply:');
51
+ console.log(reply ?? JSON.stringify(response, null, 2));
52
+ } catch (err: any) {
53
+ console.error('Vision chat failed:', err?.message || err);
54
+ }
55
+ }
56
+
57
+ main("https://cdn.bigmodel.cn/static/logo/register.png", "Please describe this image.");
@@ -0,0 +1,5 @@
1
+ """
2
+ skills/__init__.py - 技能系统模块入口
3
+ """
4
+ from skills.registry import SkillRegistry
5
+ from skills.base import Skill, SkillResult, SkillParameter