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,856 @@
1
+ ---
2
+ name: LLM
3
+ description: Implement large language model (LLM) chat completions using the z-ai-web-dev-sdk. Use this skill when the user needs to build conversational AI applications, chatbots, AI assistants, or any text generation features. Supports multi-turn conversations, system prompts, and context management.
4
+ license: MIT
5
+ ---
6
+
7
+ # LLM (Large Language Model) Skill
8
+
9
+ This skill guides the implementation of chat completions functionality using the z-ai-web-dev-sdk package, enabling powerful conversational AI and text generation capabilities.
10
+
11
+ ## Skills Path
12
+
13
+ **Skill Location**: `{project_path}/skills/llm`
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/chat.ts` for a working example.
18
+
19
+ ## Overview
20
+
21
+ The LLM skill allows you to build applications that leverage large language models for natural language understanding and generation, including chatbots, AI assistants, content generation, and more.
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, one-off chat completions, you can use the z-ai CLI instead of writing code. This is ideal for quick tests, simple queries, or automation scripts.
32
+
33
+ ### Basic Chat
34
+
35
+ ```bash
36
+ # Simple question
37
+ z-ai chat --prompt "What is the capital of France?"
38
+
39
+ # Save response to file
40
+ z-ai chat -p "Explain quantum computing" -o response.json
41
+
42
+ # Stream the response
43
+ z-ai chat -p "Write a short poem" --stream
44
+ ```
45
+
46
+ ### With System Prompt
47
+
48
+ ```bash
49
+ # Custom system prompt for specific behavior
50
+ z-ai chat \
51
+ --prompt "Review this code: function add(a,b) { return a+b; }" \
52
+ --system "You are an expert code reviewer" \
53
+ -o review.json
54
+ ```
55
+
56
+ ### With Thinking (Chain of Thought)
57
+
58
+ ```bash
59
+ # Enable thinking for complex reasoning
60
+ z-ai chat \
61
+ --prompt "Solve this math problem: If a train travels 120km in 2 hours, what's its speed?" \
62
+ --thinking \
63
+ -o solution.json
64
+ ```
65
+
66
+ ### CLI Parameters
67
+
68
+ - `--prompt, -p <text>`: **Required** - User message content
69
+ - `--system, -s <text>`: Optional - System prompt for custom behavior
70
+ - `--thinking, -t`: Optional - Enable chain-of-thought reasoning (default: disabled)
71
+ - `--output, -o <path>`: Optional - Output file path (JSON format)
72
+ - `--stream`: Optional - Stream the response in real-time
73
+
74
+ ### When to Use CLI vs SDK
75
+
76
+ **Use CLI for:**
77
+ - Quick one-off questions
78
+ - Simple automation scripts
79
+ - Testing prompts
80
+ - Single-turn conversations
81
+
82
+ **Use SDK for:**
83
+ - Multi-turn conversations with context
84
+ - Custom conversation management
85
+ - Integration with web applications
86
+ - Complex chat workflows
87
+ - Production applications
88
+
89
+ ## Basic Chat Completions
90
+
91
+ ### Simple Question and Answer
92
+
93
+ ```javascript
94
+ import ZAI from 'z-ai-web-dev-sdk';
95
+
96
+ async function askQuestion(question) {
97
+ const zai = await ZAI.create();
98
+
99
+ const completion = await zai.chat.completions.create({
100
+ messages: [
101
+ {
102
+ role: 'assistant',
103
+ content: 'You are a helpful assistant.'
104
+ },
105
+ {
106
+ role: 'user',
107
+ content: question
108
+ }
109
+ ],
110
+ thinking: { type: 'disabled' }
111
+ });
112
+
113
+ const response = completion.choices[0]?.message?.content;
114
+ return response;
115
+ }
116
+
117
+ // Usage
118
+ const answer = await askQuestion('What is the capital of France?');
119
+ console.log('Answer:', answer);
120
+ ```
121
+
122
+ ### Custom System Prompt
123
+
124
+ ```javascript
125
+ import ZAI from 'z-ai-web-dev-sdk';
126
+
127
+ async function customAssistant(systemPrompt, userMessage) {
128
+ const zai = await ZAI.create();
129
+
130
+ const completion = await zai.chat.completions.create({
131
+ messages: [
132
+ {
133
+ role: 'assistant',
134
+ content: systemPrompt
135
+ },
136
+ {
137
+ role: 'user',
138
+ content: userMessage
139
+ }
140
+ ],
141
+ thinking: { type: 'disabled' }
142
+ });
143
+
144
+ return completion.choices[0]?.message?.content;
145
+ }
146
+
147
+ // Usage - Code reviewer
148
+ const codeReview = await customAssistant(
149
+ 'You are an expert code reviewer. Analyze code for bugs, performance issues, and best practices.',
150
+ 'Review this function: function add(a, b) { return a + b; }'
151
+ );
152
+
153
+ // Usage - Creative writer
154
+ const story = await customAssistant(
155
+ 'You are a creative fiction writer who writes engaging short stories.',
156
+ 'Write a short story about a robot learning to paint.'
157
+ );
158
+
159
+ console.log(codeReview);
160
+ console.log(story);
161
+ ```
162
+
163
+ ## Multi-turn Conversations
164
+
165
+ ### Conversation History Management
166
+
167
+ ```javascript
168
+ import ZAI from 'z-ai-web-dev-sdk';
169
+
170
+ class ConversationManager {
171
+ constructor(systemPrompt = 'You are a helpful assistant.') {
172
+ this.messages = [
173
+ {
174
+ role: 'assistant',
175
+ content: systemPrompt
176
+ }
177
+ ];
178
+ this.zai = null;
179
+ }
180
+
181
+ async initialize() {
182
+ this.zai = await ZAI.create();
183
+ }
184
+
185
+ async sendMessage(userMessage) {
186
+ // Add user message to history
187
+ this.messages.push({
188
+ role: 'user',
189
+ content: userMessage
190
+ });
191
+
192
+ // Get completion
193
+ const completion = await this.zai.chat.completions.create({
194
+ messages: this.messages,
195
+ thinking: { type: 'disabled' }
196
+ });
197
+
198
+ const assistantResponse = completion.choices[0]?.message?.content;
199
+
200
+ // Add assistant response to history
201
+ this.messages.push({
202
+ role: 'assistant',
203
+ content: assistantResponse
204
+ });
205
+
206
+ return assistantResponse;
207
+ }
208
+
209
+ getHistory() {
210
+ return this.messages;
211
+ }
212
+
213
+ clearHistory(systemPrompt = 'You are a helpful assistant.') {
214
+ this.messages = [
215
+ {
216
+ role: 'assistant',
217
+ content: systemPrompt
218
+ }
219
+ ];
220
+ }
221
+
222
+ getMessageCount() {
223
+ // Subtract 1 for system message
224
+ return this.messages.length - 1;
225
+ }
226
+ }
227
+
228
+ // Usage
229
+ const conversation = new ConversationManager();
230
+ await conversation.initialize();
231
+
232
+ const response1 = await conversation.sendMessage('Hi, my name is John.');
233
+ console.log('AI:', response1);
234
+
235
+ const response2 = await conversation.sendMessage('What is my name?');
236
+ console.log('AI:', response2); // Should remember the name is John
237
+
238
+ console.log('Total messages:', conversation.getMessageCount());
239
+ ```
240
+
241
+ ### Context-Aware Conversations
242
+
243
+ ```javascript
244
+ import ZAI from 'z-ai-web-dev-sdk';
245
+
246
+ class ContextualChat {
247
+ constructor() {
248
+ this.messages = [];
249
+ this.zai = null;
250
+ }
251
+
252
+ async initialize() {
253
+ this.zai = await ZAI.create();
254
+ }
255
+
256
+ async startConversation(role, context) {
257
+ // Set up system prompt with context
258
+ const systemPrompt = `You are ${role}. Context: ${context}`;
259
+
260
+ this.messages = [
261
+ {
262
+ role: 'assistant',
263
+ content: systemPrompt
264
+ }
265
+ ];
266
+ }
267
+
268
+ async chat(userMessage) {
269
+ this.messages.push({
270
+ role: 'user',
271
+ content: userMessage
272
+ });
273
+
274
+ const completion = await this.zai.chat.completions.create({
275
+ messages: this.messages,
276
+ thinking: { type: 'disabled' }
277
+ });
278
+
279
+ const response = completion.choices[0]?.message?.content;
280
+
281
+ this.messages.push({
282
+ role: 'assistant',
283
+ content: response
284
+ });
285
+
286
+ return response;
287
+ }
288
+ }
289
+
290
+ // Usage - Customer support scenario
291
+ const support = new ContextualChat();
292
+ await support.initialize();
293
+
294
+ await support.startConversation(
295
+ 'a customer support agent for TechCorp',
296
+ 'The user has ordered product #12345 which is delayed due to shipping issues.'
297
+ );
298
+
299
+ const reply1 = await support.chat('Where is my order?');
300
+ console.log('Support:', reply1);
301
+
302
+ const reply2 = await support.chat('Can I get a refund?');
303
+ console.log('Support:', reply2);
304
+ ```
305
+
306
+ ## Advanced Use Cases
307
+
308
+ ### Content Generation
309
+
310
+ ```javascript
311
+ import ZAI from 'z-ai-web-dev-sdk';
312
+
313
+ class ContentGenerator {
314
+ constructor() {
315
+ this.zai = null;
316
+ }
317
+
318
+ async initialize() {
319
+ this.zai = await ZAI.create();
320
+ }
321
+
322
+ async generateBlogPost(topic, tone = 'professional') {
323
+ const completion = await this.zai.chat.completions.create({
324
+ messages: [
325
+ {
326
+ role: 'assistant',
327
+ content: `You are a professional content writer. Write in a ${tone} tone.`
328
+ },
329
+ {
330
+ role: 'user',
331
+ content: `Write a blog post about: ${topic}. Include an introduction, main points, and conclusion.`
332
+ }
333
+ ],
334
+ thinking: { type: 'disabled' }
335
+ });
336
+
337
+ return completion.choices[0]?.message?.content;
338
+ }
339
+
340
+ async generateProductDescription(productName, features) {
341
+ const completion = await this.zai.chat.completions.create({
342
+ messages: [
343
+ {
344
+ role: 'assistant',
345
+ content: 'You are an expert at writing compelling product descriptions for e-commerce.'
346
+ },
347
+ {
348
+ role: 'user',
349
+ content: `Write a product description for "${productName}". Key features: ${features.join(', ')}.`
350
+ }
351
+ ],
352
+ thinking: { type: 'disabled' }
353
+ });
354
+
355
+ return completion.choices[0]?.message?.content;
356
+ }
357
+
358
+ async generateEmailResponse(originalEmail, intent) {
359
+ const completion = await this.zai.chat.completions.create({
360
+ messages: [
361
+ {
362
+ role: 'assistant',
363
+ content: 'You are a professional email writer. Write clear, concise, and polite emails.'
364
+ },
365
+ {
366
+ role: 'user',
367
+ content: `Original email: "${originalEmail}"\n\nWrite a ${intent} response.`
368
+ }
369
+ ],
370
+ thinking: { type: 'disabled' }
371
+ });
372
+
373
+ return completion.choices[0]?.message?.content;
374
+ }
375
+ }
376
+
377
+ // Usage
378
+ const generator = new ContentGenerator();
379
+ await generator.initialize();
380
+
381
+ const blogPost = await generator.generateBlogPost(
382
+ 'The Future of Artificial Intelligence',
383
+ 'informative'
384
+ );
385
+ console.log('Blog Post:', blogPost);
386
+
387
+ const productDesc = await generator.generateProductDescription(
388
+ 'Smart Watch Pro',
389
+ ['Heart rate monitoring', 'GPS tracking', 'Waterproof', '7-day battery life']
390
+ );
391
+ console.log('Product Description:', productDesc);
392
+ ```
393
+
394
+ ### Data Analysis and Summarization
395
+
396
+ ```javascript
397
+ import ZAI from 'z-ai-web-dev-sdk';
398
+
399
+ async function analyzeData(data, analysisType) {
400
+ const zai = await ZAI.create();
401
+
402
+ const prompts = {
403
+ summarize: 'You are a data analyst. Summarize the key insights from the data.',
404
+ trend: 'You are a data analyst. Identify trends and patterns in the data.',
405
+ recommendation: 'You are a business analyst. Provide actionable recommendations based on the data.'
406
+ };
407
+
408
+ const completion = await zai.chat.completions.create({
409
+ messages: [
410
+ {
411
+ role: 'assistant',
412
+ content: prompts[analysisType] || prompts.summarize
413
+ },
414
+ {
415
+ role: 'user',
416
+ content: `Analyze this data:\n\n${JSON.stringify(data, null, 2)}`
417
+ }
418
+ ],
419
+ thinking: { type: 'disabled' }
420
+ });
421
+
422
+ return completion.choices[0]?.message?.content;
423
+ }
424
+
425
+ // Usage
426
+ const salesData = {
427
+ Q1: { revenue: 100000, customers: 250 },
428
+ Q2: { revenue: 120000, customers: 280 },
429
+ Q3: { revenue: 150000, customers: 320 },
430
+ Q4: { revenue: 180000, customers: 380 }
431
+ };
432
+
433
+ const summary = await analyzeData(salesData, 'summarize');
434
+ const trends = await analyzeData(salesData, 'trend');
435
+ const recommendations = await analyzeData(salesData, 'recommendation');
436
+
437
+ console.log('Summary:', summary);
438
+ console.log('Trends:', trends);
439
+ console.log('Recommendations:', recommendations);
440
+ ```
441
+
442
+ ### Code Generation and Debugging
443
+
444
+ ```javascript
445
+ import ZAI from 'z-ai-web-dev-sdk';
446
+
447
+ class CodeAssistant {
448
+ constructor() {
449
+ this.zai = null;
450
+ }
451
+
452
+ async initialize() {
453
+ this.zai = await ZAI.create();
454
+ }
455
+
456
+ async generateCode(description, language) {
457
+ const completion = await this.zai.chat.completions.create({
458
+ messages: [
459
+ {
460
+ role: 'assistant',
461
+ content: `You are an expert ${language} programmer. Write clean, efficient, and well-commented code.`
462
+ },
463
+ {
464
+ role: 'user',
465
+ content: `Write ${language} code to: ${description}`
466
+ }
467
+ ],
468
+ thinking: { type: 'disabled' }
469
+ });
470
+
471
+ return completion.choices[0]?.message?.content;
472
+ }
473
+
474
+ async debugCode(code, issue) {
475
+ const completion = await this.zai.chat.completions.create({
476
+ messages: [
477
+ {
478
+ role: 'assistant',
479
+ content: 'You are an expert debugger. Identify bugs and suggest fixes.'
480
+ },
481
+ {
482
+ role: 'user',
483
+ content: `Code:\n${code}\n\nIssue: ${issue}\n\nFind the bug and suggest a fix.`
484
+ }
485
+ ],
486
+ thinking: { type: 'disabled' }
487
+ });
488
+
489
+ return completion.choices[0]?.message?.content;
490
+ }
491
+
492
+ async explainCode(code) {
493
+ const completion = await this.zai.chat.completions.create({
494
+ messages: [
495
+ {
496
+ role: 'assistant',
497
+ content: 'You are a programming teacher. Explain code clearly and simply.'
498
+ },
499
+ {
500
+ role: 'user',
501
+ content: `Explain what this code does:\n\n${code}`
502
+ }
503
+ ],
504
+ thinking: { type: 'disabled' }
505
+ });
506
+
507
+ return completion.choices[0]?.message?.content;
508
+ }
509
+ }
510
+
511
+ // Usage
512
+ const codeAssist = new CodeAssistant();
513
+ await codeAssist.initialize();
514
+
515
+ const newCode = await codeAssist.generateCode(
516
+ 'Create a function that sorts an array of objects by a specific property',
517
+ 'JavaScript'
518
+ );
519
+ console.log('Generated Code:', newCode);
520
+
521
+ const bugFix = await codeAssist.debugCode(
522
+ 'function add(a, b) { return a - b; }',
523
+ 'This function should add numbers but returns wrong results'
524
+ );
525
+ console.log('Debug Suggestion:', bugFix);
526
+ ```
527
+
528
+ ## Best Practices
529
+
530
+ ### 1. Prompt Engineering
531
+
532
+ ```javascript
533
+ // Bad: Vague prompt
534
+ const bad = await askQuestion('Tell me about AI');
535
+
536
+ // Good: Specific and structured prompt
537
+ async function askWithContext(topic, format, audience) {
538
+ const zai = await ZAI.create();
539
+
540
+ const completion = await zai.chat.completions.create({
541
+ messages: [
542
+ {
543
+ role: 'assistant',
544
+ content: `You are an expert educator. Explain topics clearly for ${audience}.`
545
+ },
546
+ {
547
+ role: 'user',
548
+ content: `Explain ${topic} in ${format} format. Include practical examples.`
549
+ }
550
+ ],
551
+ thinking: { type: 'disabled' }
552
+ });
553
+
554
+ return completion.choices[0]?.message?.content;
555
+ }
556
+
557
+ const good = await askWithContext('artificial intelligence', 'bullet points', 'beginners');
558
+ ```
559
+
560
+ ### 2. Error Handling
561
+
562
+ ```javascript
563
+ import ZAI from 'z-ai-web-dev-sdk';
564
+
565
+ async function safeCompletion(messages, retries = 3) {
566
+ let lastError;
567
+
568
+ for (let attempt = 1; attempt <= retries; attempt++) {
569
+ try {
570
+ const zai = await ZAI.create();
571
+
572
+ const completion = await zai.chat.completions.create({
573
+ messages: messages,
574
+ thinking: { type: 'disabled' }
575
+ });
576
+
577
+ const response = completion.choices[0]?.message?.content;
578
+
579
+ if (!response || response.trim().length === 0) {
580
+ throw new Error('Empty response from AI');
581
+ }
582
+
583
+ return {
584
+ success: true,
585
+ content: response,
586
+ attempts: attempt
587
+ };
588
+ } catch (error) {
589
+ lastError = error;
590
+ console.error(`Attempt ${attempt} failed:`, error.message);
591
+
592
+ if (attempt < retries) {
593
+ // Wait before retry (exponential backoff)
594
+ await new Promise(resolve => setTimeout(resolve, 1000 * attempt));
595
+ }
596
+ }
597
+ }
598
+
599
+ return {
600
+ success: false,
601
+ error: lastError.message,
602
+ attempts: retries
603
+ };
604
+ }
605
+ ```
606
+
607
+ ### 3. Context Management
608
+
609
+ ```javascript
610
+ class ManagedConversation {
611
+ constructor(maxMessages = 20) {
612
+ this.maxMessages = maxMessages;
613
+ this.systemPrompt = '';
614
+ this.messages = [];
615
+ this.zai = null;
616
+ }
617
+
618
+ async initialize(systemPrompt) {
619
+ this.zai = await ZAI.create();
620
+ this.systemPrompt = systemPrompt;
621
+ this.messages = [
622
+ {
623
+ role: 'assistant',
624
+ content: systemPrompt
625
+ }
626
+ ];
627
+ }
628
+
629
+ async chat(userMessage) {
630
+ // Add user message
631
+ this.messages.push({
632
+ role: 'user',
633
+ content: userMessage
634
+ });
635
+
636
+ // Trim old messages if exceeding limit (keep system prompt)
637
+ if (this.messages.length > this.maxMessages) {
638
+ this.messages = [
639
+ this.messages[0], // Keep system prompt
640
+ ...this.messages.slice(-(this.maxMessages - 1))
641
+ ];
642
+ }
643
+
644
+ const completion = await this.zai.chat.completions.create({
645
+ messages: this.messages,
646
+ thinking: { type: 'disabled' }
647
+ });
648
+
649
+ const response = completion.choices[0]?.message?.content;
650
+
651
+ this.messages.push({
652
+ role: 'assistant',
653
+ content: response
654
+ });
655
+
656
+ return response;
657
+ }
658
+
659
+ getTokenEstimate() {
660
+ // Rough estimate: ~4 characters per token
661
+ const totalChars = this.messages
662
+ .map(m => m.content.length)
663
+ .reduce((a, b) => a + b, 0);
664
+ return Math.ceil(totalChars / 4);
665
+ }
666
+ }
667
+ ```
668
+
669
+ ### 4. Response Processing
670
+
671
+ ```javascript
672
+ async function getStructuredResponse(query, format = 'json') {
673
+ const zai = await ZAI.create();
674
+
675
+ const formatInstructions = {
676
+ json: 'Respond with valid JSON only. No additional text.',
677
+ list: 'Respond with a numbered list.',
678
+ markdown: 'Respond in Markdown format.'
679
+ };
680
+
681
+ const completion = await zai.chat.completions.create({
682
+ messages: [
683
+ {
684
+ role: 'assistant',
685
+ content: `You are a helpful assistant. ${formatInstructions[format]}`
686
+ },
687
+ {
688
+ role: 'user',
689
+ content: query
690
+ }
691
+ ],
692
+ thinking: { type: 'disabled' }
693
+ });
694
+
695
+ const response = completion.choices[0]?.message?.content;
696
+
697
+ // Parse JSON if requested
698
+ if (format === 'json') {
699
+ try {
700
+ return JSON.parse(response);
701
+ } catch (e) {
702
+ console.error('Failed to parse JSON response');
703
+ return { raw: response };
704
+ }
705
+ }
706
+
707
+ return response;
708
+ }
709
+
710
+ // Usage
711
+ const jsonData = await getStructuredResponse(
712
+ 'List three programming languages with their primary use cases',
713
+ 'json'
714
+ );
715
+ console.log(jsonData);
716
+ ```
717
+
718
+ ## Common Use Cases
719
+
720
+ 1. **Chatbots & Virtual Assistants**: Build conversational interfaces for customer support
721
+ 2. **Content Generation**: Create articles, product descriptions, marketing copy
722
+ 3. **Code Assistance**: Generate, explain, and debug code
723
+ 4. **Data Analysis**: Analyze and summarize complex data sets
724
+ 5. **Language Translation**: Translate text between languages
725
+ 6. **Educational Tools**: Create tutoring and learning applications
726
+ 7. **Email Automation**: Generate professional email responses
727
+ 8. **Creative Writing**: Story generation, poetry, and creative content
728
+
729
+ ## Integration Examples
730
+
731
+ ### Express.js Chatbot API
732
+
733
+ ```javascript
734
+ import express from 'express';
735
+ import ZAI from 'z-ai-web-dev-sdk';
736
+
737
+ const app = express();
738
+ app.use(express.json());
739
+
740
+ // Store conversations in memory (use database in production)
741
+ const conversations = new Map();
742
+
743
+ let zaiInstance;
744
+
745
+ async function initZAI() {
746
+ zaiInstance = await ZAI.create();
747
+ }
748
+
749
+ app.post('/api/chat', async (req, res) => {
750
+ try {
751
+ const { sessionId, message, systemPrompt } = req.body;
752
+
753
+ if (!message) {
754
+ return res.status(400).json({ error: 'Message is required' });
755
+ }
756
+
757
+ // Get or create conversation history
758
+ let history = conversations.get(sessionId) || [
759
+ {
760
+ role: 'assistant',
761
+ content: systemPrompt || 'You are a helpful assistant.'
762
+ }
763
+ ];
764
+
765
+ // Add user message
766
+ history.push({
767
+ role: 'user',
768
+ content: message
769
+ });
770
+
771
+ // Get completion
772
+ const completion = await zaiInstance.chat.completions.create({
773
+ messages: history,
774
+ thinking: { type: 'disabled' }
775
+ });
776
+
777
+ const aiResponse = completion.choices[0]?.message?.content;
778
+
779
+ // Add AI response to history
780
+ history.push({
781
+ role: 'assistant',
782
+ content: aiResponse
783
+ });
784
+
785
+ // Save updated history
786
+ conversations.set(sessionId, history);
787
+
788
+ res.json({
789
+ success: true,
790
+ response: aiResponse,
791
+ messageCount: history.length - 1
792
+ });
793
+ } catch (error) {
794
+ res.status(500).json({
795
+ success: false,
796
+ error: error.message
797
+ });
798
+ }
799
+ });
800
+
801
+ app.delete('/api/chat/:sessionId', (req, res) => {
802
+ const { sessionId } = req.params;
803
+ conversations.delete(sessionId);
804
+ res.json({ success: true, message: 'Conversation cleared' });
805
+ });
806
+
807
+ initZAI().then(() => {
808
+ app.listen(3000, () => {
809
+ console.log('Chatbot API running on port 3000');
810
+ });
811
+ });
812
+ ```
813
+
814
+ ## Troubleshooting
815
+
816
+ **Issue**: "SDK must be used in backend"
817
+ - **Solution**: Ensure z-ai-web-dev-sdk is only imported and used in server-side code
818
+
819
+ **Issue**: Empty or incomplete responses
820
+ - **Solution**: Check that completion.choices[0]?.message?.content exists and is not empty
821
+
822
+ **Issue**: Conversation context getting too long
823
+ - **Solution**: Implement message trimming to keep only recent messages
824
+
825
+ **Issue**: Inconsistent responses
826
+ - **Solution**: Use more specific system prompts and provide clear instructions
827
+
828
+ **Issue**: Rate limiting errors
829
+ - **Solution**: Implement retry logic with exponential backoff
830
+
831
+ ## Performance Tips
832
+
833
+ 1. **Reuse SDK Instance**: Create ZAI instance once and reuse across requests
834
+ 2. **Manage Context Length**: Trim old messages to avoid token limits
835
+ 3. **Implement Caching**: Cache responses for common queries
836
+ 4. **Use Specific Prompts**: Clear prompts lead to faster, better responses
837
+ 5. **Handle Errors Gracefully**: Implement retry logic and fallback responses
838
+
839
+ ## Security Considerations
840
+
841
+ 1. **Input Validation**: Always validate and sanitize user input
842
+ 2. **Rate Limiting**: Implement rate limits to prevent abuse
843
+ 3. **API Key Protection**: Never expose SDK credentials in client-side code
844
+ 4. **Content Filtering**: Filter sensitive or inappropriate content
845
+ 5. **Session Management**: Implement proper session handling and cleanup
846
+
847
+ ## Remember
848
+
849
+ - Always use z-ai-web-dev-sdk in backend code only
850
+ - The SDK is already installed - import as shown in examples
851
+ - Use the 'assistant' role for system prompts
852
+ - Set thinking to { type: 'disabled' } for standard completions
853
+ - Implement proper error handling and retries for production
854
+ - Manage conversation history to avoid token limits
855
+ - Clear and specific prompts lead to better results
856
+ - Check `scripts/chat.ts` for a quick start example