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,735 @@
1
+ ---
2
+ name: TTS
3
+ description: Implement text-to-speech (TTS) capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to convert text into natural-sounding speech, create audio content, build voice-enabled applications, or generate spoken audio files. Supports multiple voices, adjustable speed, and various audio formats.
4
+ license: MIT
5
+ ---
6
+
7
+ # TTS (Text to Speech) Skill
8
+
9
+ This skill guides the implementation of text-to-speech (TTS) functionality using the z-ai-web-dev-sdk package, enabling conversion of text into natural-sounding speech audio.
10
+
11
+ ## Skills Path
12
+
13
+ **Skill Location**: `{project_path}/skills/TTS`
14
+
15
+ This skill is located at the 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/tts.ts` for a working example.
18
+
19
+ ## Overview
20
+
21
+ Text-to-Speech allows you to build applications that generate spoken audio from text input, supporting various voices, speeds, and output formats for diverse use cases.
22
+
23
+ **IMPORTANT**: z-ai-web-dev-sdk MUST be used in backend code only. Never use it in client-side code.
24
+
25
+ ## API Limitations and Constraints
26
+
27
+ Before implementing TTS functionality, be aware of these important limitations:
28
+
29
+ ### Input Text Constraints
30
+ - **Maximum length**: 1024 characters per request
31
+ - Text exceeding this limit must be split into smaller chunks
32
+
33
+ ### Audio Parameters
34
+ - **Speed range**: 0.5 to 2.0
35
+ - 0.5 = half speed (slower)
36
+ - 1.0 = normal speed (default)
37
+ - 2.0 = double speed (faster)
38
+ - **Volume range**: Greater than 0, up to 10
39
+ - Default: 1.0
40
+ - Values must be greater than 0 (exclusive) and up to 10 (inclusive)
41
+
42
+ ### Format and Streaming
43
+ - **Streaming limitation**: When `stream: true` is enabled, only `pcm` format is supported
44
+ - **Non-streaming**: Supports `wav`, `pcm`, and `mp3` formats
45
+ - **Sample rate**: 24000 Hz (recommended)
46
+
47
+ ### Best Practice for Long Text
48
+ ```javascript
49
+ function splitTextIntoChunks(text, maxLength = 1000) {
50
+ const chunks = [];
51
+ const sentences = text.match(/[^.!?]+[.!?]+/g) || [text];
52
+
53
+ let currentChunk = '';
54
+ for (const sentence of sentences) {
55
+ if ((currentChunk + sentence).length <= maxLength) {
56
+ currentChunk += sentence;
57
+ } else {
58
+ if (currentChunk) chunks.push(currentChunk.trim());
59
+ currentChunk = sentence;
60
+ }
61
+ }
62
+ if (currentChunk) chunks.push(currentChunk.trim());
63
+
64
+ return chunks;
65
+ }
66
+ ```
67
+
68
+ ## Prerequisites
69
+
70
+ The z-ai-web-dev-sdk package is already installed. Import it as shown in the examples below.
71
+
72
+ ## CLI Usage (For Simple Tasks)
73
+
74
+ For simple text-to-speech conversions, you can use the z-ai CLI instead of writing code. This is ideal for quick audio generation, testing voices, or simple automation.
75
+
76
+ ### Basic TTS
77
+
78
+ ```bash
79
+ # Convert text to speech (default WAV format)
80
+ z-ai tts --input "Hello, world" --output ./hello.wav
81
+
82
+ # Using short options
83
+ z-ai tts -i "Hello, world" -o ./hello.wav
84
+ ```
85
+
86
+ ### Different Voices and Speed
87
+
88
+ ```bash
89
+ # Use specific voice
90
+ z-ai tts -i "Welcome to our service" -o ./welcome.wav --voice tongtong
91
+
92
+ # Adjust speech speed (0.5-2.0)
93
+ z-ai tts -i "This is faster speech" -o ./fast.wav --speed 1.5
94
+
95
+ # Slower speech
96
+ z-ai tts -i "This is slower speech" -o ./slow.wav --speed 0.8
97
+ ```
98
+
99
+ ### Different Output Formats
100
+
101
+ ```bash
102
+ # MP3 format
103
+ z-ai tts -i "Hello World" -o ./hello.mp3 --format mp3
104
+
105
+ # WAV format (default)
106
+ z-ai tts -i "Hello World" -o ./hello.wav --format wav
107
+
108
+ # PCM format
109
+ z-ai tts -i "Hello World" -o ./hello.pcm --format pcm
110
+ ```
111
+
112
+ ### Streaming Output
113
+
114
+ ```bash
115
+ # Stream audio generation
116
+ z-ai tts -i "This is a longer text that will be streamed" -o ./stream.wav --stream
117
+ ```
118
+
119
+ ### CLI Parameters
120
+
121
+ - `--input, -i <text>`: **Required** - Text to convert to speech (max 1024 characters)
122
+ - `--output, -o <path>`: **Required** - Output audio file path
123
+ - `--voice, -v <voice>`: Optional - Voice type (default: tongtong)
124
+ - `--speed, -s <number>`: Optional - Speech speed, 0.5-2.0 (default: 1.0)
125
+ - `--format, -f <format>`: Optional - Output format: wav, mp3, pcm (default: wav)
126
+ - `--stream`: Optional - Enable streaming output (only supports pcm format)
127
+
128
+ ### When to Use CLI vs SDK
129
+
130
+ **Use CLI for:**
131
+ - Quick text-to-speech conversions
132
+ - Testing different voices and speeds
133
+ - Simple batch audio generation
134
+ - Command-line automation scripts
135
+
136
+ **Use SDK for:**
137
+ - Dynamic audio generation in applications
138
+ - Integration with web services
139
+ - Custom audio processing pipelines
140
+ - Production applications with complex requirements
141
+
142
+ ## Basic TTS Implementation
143
+
144
+ ### Simple Text to Speech
145
+
146
+ ```javascript
147
+ import ZAI from 'z-ai-web-dev-sdk';
148
+ import fs from 'fs';
149
+
150
+ async function textToSpeech(text, outputPath) {
151
+ const zai = await ZAI.create();
152
+
153
+ const response = await zai.audio.tts.create({
154
+ input: text,
155
+ voice: 'tongtong',
156
+ speed: 1.0,
157
+ response_format: 'wav',
158
+ stream: false
159
+ });
160
+
161
+ // Get array buffer from Response object
162
+ const arrayBuffer = await response.arrayBuffer();
163
+ const buffer = Buffer.from(new Uint8Array(arrayBuffer));
164
+
165
+ fs.writeFileSync(outputPath, buffer);
166
+ console.log(`Audio saved to ${outputPath}`);
167
+ return outputPath;
168
+ }
169
+
170
+ // Usage
171
+ await textToSpeech('Hello, world!', './output.wav');
172
+ ```
173
+
174
+ ### Multiple Voice Options
175
+
176
+ ```javascript
177
+ import ZAI from 'z-ai-web-dev-sdk';
178
+ import fs from 'fs';
179
+
180
+ async function generateWithVoice(text, voice, outputPath) {
181
+ const zai = await ZAI.create();
182
+
183
+ const response = await zai.audio.tts.create({
184
+ input: text,
185
+ voice: voice, // Available voices: tongtong, chuichui, xiaochen, jam, kazi, douji, luodo
186
+ speed: 1.0,
187
+ response_format: 'wav',
188
+ stream: false
189
+ });
190
+
191
+ // Get array buffer from Response object
192
+ const arrayBuffer = await response.arrayBuffer();
193
+ const buffer = Buffer.from(new Uint8Array(arrayBuffer));
194
+
195
+ fs.writeFileSync(outputPath, buffer);
196
+ return outputPath;
197
+ }
198
+
199
+ // Usage
200
+ await generateWithVoice('Welcome to our service', 'tongtong', './welcome.wav');
201
+ ```
202
+
203
+ ### Adjustable Speed
204
+
205
+ ```javascript
206
+ import ZAI from 'z-ai-web-dev-sdk';
207
+ import fs from 'fs';
208
+
209
+ async function generateWithSpeed(text, speed, outputPath) {
210
+ const zai = await ZAI.create();
211
+
212
+ // Speed range: 0.5 to 2.0 (API constraint)
213
+ // 0.5 = half speed (slower)
214
+ // 1.0 = normal speed (default)
215
+ // 2.0 = double speed (faster)
216
+ // Values outside this range will cause API errors
217
+
218
+ const response = await zai.audio.tts.create({
219
+ input: text,
220
+ voice: 'tongtong',
221
+ speed: speed,
222
+ response_format: 'wav',
223
+ stream: false
224
+ });
225
+
226
+ // Get array buffer from Response object
227
+ const arrayBuffer = await response.arrayBuffer();
228
+ const buffer = Buffer.from(new Uint8Array(arrayBuffer));
229
+
230
+ fs.writeFileSync(outputPath, buffer);
231
+ return outputPath;
232
+ }
233
+
234
+ // Usage - slower narration
235
+ await generateWithSpeed('This is an important announcement', 0.8, './slow.wav');
236
+
237
+ // Usage - faster narration
238
+ await generateWithSpeed('Quick update', 1.3, './fast.wav');
239
+ ```
240
+
241
+ ### Adjustable Volume
242
+
243
+ ```javascript
244
+ import ZAI from 'z-ai-web-dev-sdk';
245
+ import fs from 'fs';
246
+
247
+ async function generateWithVolume(text, volume, outputPath) {
248
+ const zai = await ZAI.create();
249
+
250
+ // Volume range: greater than 0, up to 10 (API constraint)
251
+ // Values must be > 0 (exclusive) and <= 10 (inclusive)
252
+ // Default: 1.0 (normal volume)
253
+
254
+ const response = await zai.audio.tts.create({
255
+ input: text,
256
+ voice: 'tongtong',
257
+ speed: 1.0,
258
+ volume: volume, // Optional parameter
259
+ response_format: 'wav',
260
+ stream: false
261
+ });
262
+
263
+ // Get array buffer from Response object
264
+ const arrayBuffer = await response.arrayBuffer();
265
+ const buffer = Buffer.from(new Uint8Array(arrayBuffer));
266
+
267
+ fs.writeFileSync(outputPath, buffer);
268
+ return outputPath;
269
+ }
270
+
271
+ // Usage - louder audio
272
+ await generateWithVolume('This is an announcement', 5.0, './loud.wav');
273
+
274
+ // Usage - quieter audio
275
+ await generateWithVolume('Whispered message', 0.5, './quiet.wav');
276
+ ```
277
+
278
+ ## Advanced Use Cases
279
+
280
+ ### Batch Processing
281
+
282
+ ```javascript
283
+ import ZAI from 'z-ai-web-dev-sdk';
284
+ import fs from 'fs';
285
+ import path from 'path';
286
+
287
+ async function batchTextToSpeech(textArray, outputDir) {
288
+ const zai = await ZAI.create();
289
+ const results = [];
290
+
291
+ // Ensure output directory exists
292
+ if (!fs.existsSync(outputDir)) {
293
+ fs.mkdirSync(outputDir, { recursive: true });
294
+ }
295
+
296
+ for (let i = 0; i < textArray.length; i++) {
297
+ try {
298
+ const text = textArray[i];
299
+ const outputPath = path.join(outputDir, `audio_${i + 1}.wav`);
300
+
301
+ const response = await zai.audio.tts.create({
302
+ input: text,
303
+ voice: 'tongtong',
304
+ speed: 1.0,
305
+ response_format: 'wav',
306
+ stream: false
307
+ });
308
+
309
+ // Get array buffer from Response object
310
+ const arrayBuffer = await response.arrayBuffer();
311
+ const buffer = Buffer.from(new Uint8Array(arrayBuffer));
312
+
313
+ fs.writeFileSync(outputPath, buffer);
314
+ results.push({
315
+ success: true,
316
+ text,
317
+ path: outputPath
318
+ });
319
+ } catch (error) {
320
+ results.push({
321
+ success: false,
322
+ text: textArray[i],
323
+ error: error.message
324
+ });
325
+ }
326
+ }
327
+
328
+ return results;
329
+ }
330
+
331
+ // Usage
332
+ const texts = [
333
+ 'Welcome to chapter one',
334
+ 'Welcome to chapter two',
335
+ 'Welcome to chapter three'
336
+ ];
337
+
338
+ const results = await batchTextToSpeech(texts, './audio-output');
339
+ console.log('Generated:', results.length, 'audio files');
340
+ ```
341
+
342
+ ### Dynamic Content Generation
343
+
344
+ ```javascript
345
+ import ZAI from 'z-ai-web-dev-sdk';
346
+ import fs from 'fs';
347
+
348
+ class TTSGenerator {
349
+ constructor() {
350
+ this.zai = null;
351
+ }
352
+
353
+ async initialize() {
354
+ this.zai = await ZAI.create();
355
+ }
356
+
357
+ async generateAudio(text, options = {}) {
358
+ const {
359
+ voice = 'tongtong',
360
+ speed = 1.0,
361
+ format = 'wav'
362
+ } = options;
363
+
364
+ const response = await this.zai.audio.tts.create({
365
+ input: text,
366
+ voice: voice,
367
+ speed: speed,
368
+ response_format: format,
369
+ stream: false
370
+ });
371
+
372
+ // Get array buffer from Response object
373
+ const arrayBuffer = await response.arrayBuffer();
374
+ return Buffer.from(new Uint8Array(arrayBuffer));
375
+ }
376
+
377
+ async saveAudio(text, outputPath, options = {}) {
378
+ const buffer = await this.generateAudio(text, options);
379
+ if (buffer) {
380
+ fs.writeFileSync(outputPath, buffer);
381
+ return outputPath;
382
+ }
383
+ return null;
384
+ }
385
+ }
386
+
387
+ // Usage
388
+ const generator = new TTSGenerator();
389
+ await generator.initialize();
390
+
391
+ await generator.saveAudio(
392
+ 'Hello, this is a test',
393
+ './output.wav',
394
+ { speed: 1.2 }
395
+ );
396
+ ```
397
+
398
+ ### Next.js API Route Example
399
+
400
+ ```javascript
401
+ import { NextRequest, NextResponse } from 'next/server';
402
+
403
+ export async function POST(req: NextRequest) {
404
+ try {
405
+ const { text, voice = 'tongtong', speed = 1.0 } = await req.json();
406
+
407
+ // Import ZAI SDK
408
+ const ZAI = (await import('z-ai-web-dev-sdk')).default;
409
+
410
+ // Create SDK instance
411
+ const zai = await ZAI.create();
412
+
413
+ // Generate TTS audio
414
+ const response = await zai.audio.tts.create({
415
+ input: text.trim(),
416
+ voice: voice,
417
+ speed: speed,
418
+ response_format: 'wav',
419
+ stream: false,
420
+ });
421
+
422
+ // Get array buffer from Response object
423
+ const arrayBuffer = await response.arrayBuffer();
424
+ const buffer = Buffer.from(new Uint8Array(arrayBuffer));
425
+
426
+ // Return audio as response
427
+ return new NextResponse(buffer, {
428
+ status: 200,
429
+ headers: {
430
+ 'Content-Type': 'audio/wav',
431
+ 'Content-Length': buffer.length.toString(),
432
+ 'Cache-Control': 'no-cache',
433
+ },
434
+ });
435
+ } catch (error) {
436
+ console.error('TTS API Error:', error);
437
+
438
+ return NextResponse.json(
439
+ {
440
+ error: error instanceof Error ? error.message : '生成语音失败,请稍后重试',
441
+ },
442
+ { status: 500 }
443
+ );
444
+ }
445
+ }
446
+ ```
447
+
448
+ ## Best Practices
449
+
450
+ ### 1. Text Preparation
451
+ ```javascript
452
+ function prepareTextForTTS(text) {
453
+ // Remove excessive whitespace
454
+ text = text.replace(/\s+/g, ' ').trim();
455
+
456
+ // Expand common abbreviations for better pronunciation
457
+ const abbreviations = {
458
+ 'Dr.': 'Doctor',
459
+ 'Mr.': 'Mister',
460
+ 'Mrs.': 'Misses',
461
+ 'etc.': 'et cetera'
462
+ };
463
+
464
+ for (const [abbr, full] of Object.entries(abbreviations)) {
465
+ text = text.replace(new RegExp(abbr, 'g'), full);
466
+ }
467
+
468
+ return text;
469
+ }
470
+ ```
471
+
472
+ ### 2. Error Handling
473
+ ```javascript
474
+ import ZAI from 'z-ai-web-dev-sdk';
475
+ import fs from 'fs';
476
+
477
+ async function safeTTS(text, outputPath) {
478
+ try {
479
+ // Validate input
480
+ if (!text || text.trim().length === 0) {
481
+ throw new Error('Text input cannot be empty');
482
+ }
483
+
484
+ if (text.length > 1024) {
485
+ throw new Error('Text input exceeds maximum length of 1024 characters');
486
+ }
487
+
488
+ const zai = await ZAI.create();
489
+
490
+ const response = await zai.audio.tts.create({
491
+ input: text,
492
+ voice: 'tongtong',
493
+ speed: 1.0,
494
+ response_format: 'wav',
495
+ stream: false
496
+ });
497
+
498
+ // Get array buffer from Response object
499
+ const arrayBuffer = await response.arrayBuffer();
500
+ const buffer = Buffer.from(new Uint8Array(arrayBuffer));
501
+
502
+ fs.writeFileSync(outputPath, buffer);
503
+
504
+ return {
505
+ success: true,
506
+ path: outputPath,
507
+ size: buffer.length
508
+ };
509
+ } catch (error) {
510
+ console.error('TTS Error:', error);
511
+ return {
512
+ success: false,
513
+ error: error.message
514
+ };
515
+ }
516
+ }
517
+ ```
518
+
519
+ ### 3. SDK Instance Reuse
520
+
521
+ ```javascript
522
+ import ZAI from 'z-ai-web-dev-sdk';
523
+
524
+ // Create a singleton instance
525
+ let zaiInstance = null;
526
+
527
+ async function getZAIInstance() {
528
+ if (!zaiInstance) {
529
+ zaiInstance = await ZAI.create();
530
+ }
531
+ return zaiInstance;
532
+ }
533
+
534
+ // Usage
535
+ const zai = await getZAIInstance();
536
+ const response = await zai.audio.tts.create({ ... });
537
+ ```
538
+
539
+ ## Common Use Cases
540
+
541
+ 1. **Audiobooks & Podcasts**: Convert written content to audio format
542
+ 2. **E-learning**: Create narration for educational content
543
+ 3. **Accessibility**: Provide audio versions of text content
544
+ 4. **Voice Assistants**: Generate dynamic responses
545
+ 5. **Announcements**: Create automated audio notifications
546
+ 6. **IVR Systems**: Generate phone system prompts
547
+ 7. **Content Localization**: Create audio in different languages
548
+
549
+ ## Integration Examples
550
+
551
+ ### Express.js API Endpoint
552
+
553
+ ```javascript
554
+ import express from 'express';
555
+ import ZAI from 'z-ai-web-dev-sdk';
556
+ import fs from 'fs';
557
+ import path from 'path';
558
+
559
+ const app = express();
560
+ app.use(express.json());
561
+
562
+ let zaiInstance;
563
+ const outputDir = './audio-output';
564
+
565
+ async function initZAI() {
566
+ zaiInstance = await ZAI.create();
567
+ if (!fs.existsSync(outputDir)) {
568
+ fs.mkdirSync(outputDir, { recursive: true });
569
+ }
570
+ }
571
+
572
+ app.post('/api/tts', async (req, res) => {
573
+ try {
574
+ const { text, voice = 'tongtong', speed = 1.0 } = req.body;
575
+
576
+ if (!text) {
577
+ return res.status(400).json({ error: 'Text is required' });
578
+ }
579
+
580
+ const filename = `tts_${Date.now()}.wav`;
581
+ const outputPath = path.join(outputDir, filename);
582
+
583
+ const response = await zaiInstance.audio.tts.create({
584
+ input: text,
585
+ voice: voice,
586
+ speed: speed,
587
+ response_format: 'wav',
588
+ stream: false
589
+ });
590
+
591
+ // Get array buffer from Response object
592
+ const arrayBuffer = await response.arrayBuffer();
593
+ const buffer = Buffer.from(new Uint8Array(arrayBuffer));
594
+
595
+ fs.writeFileSync(outputPath, buffer);
596
+
597
+ res.json({
598
+ success: true,
599
+ audioUrl: `/audio/${filename}`,
600
+ size: buffer.length
601
+ });
602
+ } catch (error) {
603
+ res.status(500).json({ error: error.message });
604
+ }
605
+ });
606
+
607
+ app.use('/audio', express.static('audio-output'));
608
+
609
+ initZAI().then(() => {
610
+ app.listen(3000, () => {
611
+ console.log('TTS API running on port 3000');
612
+ });
613
+ });
614
+ ```
615
+
616
+ ## Troubleshooting
617
+
618
+ **Issue**: "Input text exceeds maximum length"
619
+ - **Solution**: Text input is limited to 1024 characters. Split longer text into chunks using the `splitTextIntoChunks` function shown in the API Limitations section
620
+
621
+ **Issue**: "Invalid speed parameter" or unexpected speed behavior
622
+ - **Solution**: Speed must be between 0.5 and 2.0. Check your speed value is within this range
623
+
624
+ **Issue**: "Invalid volume parameter"
625
+ - **Solution**: Volume must be greater than 0 and up to 10. Ensure volume value is in range (0, 10]
626
+
627
+ **Issue**: "Stream format not supported" with WAV/MP3
628
+ - **Solution**: Streaming mode only supports PCM format. Either use `response_format: 'pcm'` with streaming, or disable streaming (`stream: false`) for WAV/MP3 output
629
+
630
+ **Issue**: "SDK must be used in backend"
631
+ - **Solution**: Ensure z-ai-web-dev-sdk is only imported in server-side code
632
+
633
+ **Issue**: "TypeError: response.audio is undefined"
634
+ - **Solution**: The SDK returns a standard Response object, use `await response.arrayBuffer()` instead of accessing `response.audio`
635
+
636
+ **Issue**: Generated audio file is empty or corrupted
637
+ - **Solution**: Ensure you're calling `await response.arrayBuffer()` and properly converting to Buffer: `Buffer.from(new Uint8Array(arrayBuffer))`
638
+
639
+ **Issue**: Audio sounds unnatural
640
+ - **Solution**: Prepare text properly (remove special characters, expand abbreviations)
641
+
642
+ **Issue**: Long processing times
643
+ - **Solution**: Break long text into smaller chunks and process in parallel
644
+
645
+ **Issue**: Next.js caching old API route
646
+ - **Solution**: Create a new API route endpoint or restart the dev server
647
+
648
+ ## Performance Tips
649
+
650
+ 1. **Reuse SDK Instance**: Create ZAI instance once and reuse
651
+ 2. **Implement Caching**: Cache generated audio for repeated text
652
+ 3. **Batch Processing**: Process multiple texts efficiently
653
+ 4. **Optimize Text**: Remove unnecessary content before generation
654
+ 5. **Async Processing**: Use queues for handling multiple requests
655
+
656
+ ## Important Notes
657
+
658
+ ### API Constraints
659
+
660
+ **Input Text Length**: Maximum 1024 characters per request. For longer text:
661
+ ```javascript
662
+ // Split long text into chunks
663
+ const longText = "..."; // Your long text here
664
+ const chunks = splitTextIntoChunks(longText, 1000);
665
+
666
+ for (const chunk of chunks) {
667
+ const response = await zai.audio.tts.create({
668
+ input: chunk,
669
+ voice: 'tongtong',
670
+ speed: 1.0,
671
+ response_format: 'wav',
672
+ stream: false
673
+ });
674
+ // Process each chunk...
675
+ }
676
+ ```
677
+
678
+ **Streaming Format Limitation**: When using `stream: true`, only `pcm` format is supported. For `wav` or `mp3` output, use `stream: false`.
679
+
680
+ **Sample Rate**: Audio is generated at 24000 Hz sample rate (recommended setting for playback).
681
+
682
+ ### Response Object Format
683
+
684
+ The `zai.audio.tts.create()` method returns a standard **Response** object (not a custom object with an `audio` property). Always use:
685
+
686
+ ```javascript
687
+ // ✅ CORRECT
688
+ const response = await zai.audio.tts.create({ ... });
689
+ const arrayBuffer = await response.arrayBuffer();
690
+ const buffer = Buffer.from(new Uint8Array(arrayBuffer));
691
+
692
+ // ❌ WRONG - This will not work
693
+ const response = await zai.audio.tts.create({ ... });
694
+ const buffer = Buffer.from(response.audio); // response.audio is undefined
695
+ ```
696
+
697
+ ### Available Voices
698
+
699
+ - `tongtong` - 温暖亲切
700
+ - `chuichui` - 活泼可爱
701
+ - `xiaochen` - 沉稳专业
702
+ - `jam` - 英音绅士
703
+ - `kazi` - 清晰标准
704
+ - `douji` - 自然流畅
705
+ - `luodo` - 富有感染力
706
+
707
+ ### Speed Range
708
+
709
+ - Minimum: `0.5` (half speed)
710
+ - Default: `1.0` (normal speed)
711
+ - Maximum: `2.0` (double speed)
712
+
713
+ **Important**: Speed values outside the range [0.5, 2.0] will result in API errors.
714
+
715
+ ### Volume Range
716
+
717
+ - Minimum: Greater than `0` (exclusive)
718
+ - Default: `1.0` (normal volume)
719
+ - Maximum: `10` (inclusive)
720
+
721
+ **Note**: Volume parameter is optional. When not specified, defaults to 1.0.
722
+
723
+ ## Remember
724
+
725
+ - Always use z-ai-web-dev-sdk in backend code only
726
+ - **Input text is limited to 1024 characters maximum** - split longer text into chunks
727
+ - **Speed must be between 0.5 and 2.0** - values outside this range will cause errors
728
+ - **Volume must be greater than 0 and up to 10** - optional parameter with default 1.0
729
+ - **Streaming only supports PCM format** - use non-streaming for WAV or MP3 output
730
+ - The SDK returns a standard Response object - use `await response.arrayBuffer()`
731
+ - Convert ArrayBuffer to Buffer using `Buffer.from(new Uint8Array(arrayBuffer))`
732
+ - Handle audio buffers properly when saving to files
733
+ - Implement error handling for production applications
734
+ - Consider caching for frequently generated content
735
+ - Clean up old audio files periodically to manage storage