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,916 @@
1
+ ---
2
+ name: video-understand
3
+ description: Implement specialized video understanding capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to analyze video content, understand motion and temporal sequences, extract information from video frames, describe video scenes, or perform video-based AI analysis. Optimized for MP4, AVI, MOV, and other common video formats.
4
+ license: MIT
5
+ ---
6
+
7
+ # Video Understanding Skill
8
+
9
+ This skill provides specialized video understanding functionality using the z-ai-web-dev-sdk package, enabling AI models to analyze, describe, and extract information from video content including motion, temporal sequences, and scene changes.
10
+
11
+ ## Skills Path
12
+
13
+ **Skill Location**: `{project_path}/skills/video-understand`
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/video-understand.ts` for a working example.
18
+
19
+ ## Overview
20
+
21
+ Video Understanding focuses specifically on video content analysis, providing capabilities for:
22
+ - Video scene understanding and description
23
+ - Action and motion detection
24
+ - Temporal sequence analysis
25
+ - Event detection in videos
26
+ - Video content summarization
27
+ - Scene change detection
28
+ - People and object tracking across frames
29
+ - Audio-visual content analysis (when applicable)
30
+
31
+ **IMPORTANT**: z-ai-web-dev-sdk MUST be used in backend code only. Never use it in client-side code.
32
+
33
+ ## Prerequisites
34
+
35
+ The z-ai-web-dev-sdk package is already installed. Import it as shown in the examples below.
36
+
37
+ ## CLI Usage (For Simple Tasks)
38
+
39
+ For quick video analysis tasks, you can use the z-ai CLI instead of writing code. This is ideal for simple video descriptions, testing, or automation.
40
+
41
+ ### Basic Video Analysis
42
+
43
+ ```bash
44
+ # Analyze a video from URL
45
+ z-ai vision --prompt "Summarize what happens in this video" --image "https://example.com/video.mp4"
46
+
47
+ # Note: Use --image flag for video URLs as well
48
+ z-ai vision -p "Describe the key events" -i "https://example.com/presentation.mp4"
49
+ ```
50
+
51
+ ### Analyze Local Videos
52
+
53
+ ```bash
54
+ # Analyze a local video file
55
+ z-ai vision -p "What activities are shown in this video?" -i "./recording.mp4"
56
+
57
+ # Save response to file
58
+ z-ai vision -p "Provide a detailed summary" -i "./meeting.mp4" -o summary.json
59
+ ```
60
+
61
+ ### Advanced Video Analysis
62
+
63
+ ```bash
64
+ # Complex scene understanding with thinking
65
+ z-ai vision \
66
+ -p "Analyze this video and identify: 1) Main events, 2) People and their actions, 3) Timeline of key moments" \
67
+ -i "./event.mp4" \
68
+ --thinking \
69
+ -o analysis.json
70
+
71
+ # Action detection
72
+ z-ai vision \
73
+ -p "Identify all actions performed by people in this video" \
74
+ -i "./sports.mp4" \
75
+ --thinking
76
+ ```
77
+
78
+ ### Streaming Output
79
+
80
+ ```bash
81
+ # Stream the video analysis
82
+ z-ai vision -p "Describe this video content" -i "./video.mp4" --stream
83
+ ```
84
+
85
+ ### CLI Parameters
86
+
87
+ - `--prompt, -p <text>`: **Required** - Question or instruction about the video
88
+ - `--image, -i <URL or path>`: Optional - Video URL or local file path (despite the name, it works for videos too)
89
+ - `--thinking, -t`: Optional - Enable chain-of-thought reasoning for complex analysis (default: disabled)
90
+ - `--output, -o <path>`: Optional - Output file path (JSON format)
91
+ - `--stream`: Optional - Stream the response in real-time
92
+
93
+ ### Supported Video Formats
94
+
95
+ - MP4 (.mp4) - Most widely supported format
96
+ - AVI (.avi) - Audio Video Interleave
97
+ - MOV (.mov) - QuickTime format
98
+ - WebM (.webm) - Web-optimized format
99
+ - MKV (.mkv) - Matroska format
100
+ - FLV (.flv) - Flash Video format
101
+
102
+ ### When to Use CLI vs SDK
103
+
104
+ **Use CLI for:**
105
+ - Quick video summaries
106
+ - One-off video analysis
107
+ - Testing video understanding capabilities
108
+ - Simple automation scripts
109
+ - Generating video descriptions
110
+
111
+ **Use SDK for:**
112
+ - Multi-turn conversations about videos
113
+ - Complex video processing pipelines
114
+ - Production applications with error handling
115
+ - Custom integration with video processing logic
116
+ - Batch video processing with custom workflows
117
+
118
+ ## Recommended Approach
119
+
120
+ For better performance and reliability with local videos, consider:
121
+ 1. Uploading videos to a CDN and using URLs
122
+ 2. For shorter videos, convert key frames to images for faster analysis
123
+ 3. For long videos, consider chunking or sampling at intervals
124
+
125
+ ## Basic Video Understanding Implementation
126
+
127
+ ### Single Video Analysis
128
+
129
+ ```javascript
130
+ import ZAI from 'z-ai-web-dev-sdk';
131
+
132
+ async function analyzeVideo(videoUrl, prompt) {
133
+ const zai = await ZAI.create();
134
+
135
+ const response = await zai.chat.completions.createVision({
136
+ messages: [
137
+ {
138
+ role: 'user',
139
+ content: [
140
+ {
141
+ type: 'text',
142
+ text: prompt
143
+ },
144
+ {
145
+ type: 'video_url',
146
+ video_url: {
147
+ url: videoUrl
148
+ }
149
+ }
150
+ ]
151
+ }
152
+ ],
153
+ thinking: { type: 'disabled' }
154
+ });
155
+
156
+ return response.choices[0]?.message?.content;
157
+ }
158
+
159
+ // Usage examples
160
+ const summary = await analyzeVideo(
161
+ 'https://example.com/presentation.mp4',
162
+ 'Summarize the key points presented in this video'
163
+ );
164
+
165
+ const actionDetection = await analyzeVideo(
166
+ 'https://example.com/sports.mp4',
167
+ 'Identify and describe all athletic actions performed in this video'
168
+ );
169
+ ```
170
+
171
+ ### Video Scene Understanding
172
+
173
+ ```javascript
174
+ import ZAI from 'z-ai-web-dev-sdk';
175
+
176
+ async function understandVideoScenes(videoUrl) {
177
+ const zai = await ZAI.create();
178
+
179
+ const prompt = `Analyze this video and provide:
180
+ 1. Overall summary of the video content
181
+ 2. Main scenes or segments (with approximate timestamps if possible)
182
+ 3. Key people or characters and their roles
183
+ 4. Important actions or events in chronological order
184
+ 5. Setting and environment description
185
+ 6. Overall mood or tone`;
186
+
187
+ const response = await zai.chat.completions.createVision({
188
+ messages: [
189
+ {
190
+ role: 'user',
191
+ content: [
192
+ { type: 'text', text: prompt },
193
+ { type: 'video_url', video_url: { url: videoUrl } }
194
+ ]
195
+ }
196
+ ],
197
+ thinking: { type: 'enabled' } // Enable for detailed analysis
198
+ });
199
+
200
+ return response.choices[0]?.message?.content;
201
+ }
202
+
203
+ // Usage
204
+ const sceneAnalysis = await understandVideoScenes(
205
+ 'https://example.com/documentary.mp4'
206
+ );
207
+ ```
208
+
209
+ ### Motion and Action Detection
210
+
211
+ ```javascript
212
+ import ZAI from 'z-ai-web-dev-sdk';
213
+
214
+ async function detectActions(videoUrl, specificAction = null) {
215
+ const zai = await ZAI.create();
216
+
217
+ const prompt = specificAction
218
+ ? `Identify all instances of "${specificAction}" in this video. For each instance, describe when it occurs and provide details about how it's performed.`
219
+ : 'Identify and describe all significant actions and movements in this video. Include who is performing them and when they occur.';
220
+
221
+ const response = await zai.chat.completions.createVision({
222
+ messages: [
223
+ {
224
+ role: 'user',
225
+ content: [
226
+ { type: 'text', text: prompt },
227
+ { type: 'video_url', video_url: { url: videoUrl } }
228
+ ]
229
+ }
230
+ ],
231
+ thinking: { type: 'enabled' }
232
+ });
233
+
234
+ return response.choices[0]?.message?.content;
235
+ }
236
+
237
+ // Usage
238
+ const runningActions = await detectActions(
239
+ 'https://example.com/sports.mp4',
240
+ 'running'
241
+ );
242
+
243
+ const allActions = await detectActions(
244
+ 'https://example.com/activity.mp4'
245
+ );
246
+ ```
247
+
248
+ ### Event Timeline Extraction
249
+
250
+ ```javascript
251
+ import ZAI from 'z-ai-web-dev-sdk';
252
+
253
+ async function extractTimeline(videoUrl) {
254
+ const zai = await ZAI.create();
255
+
256
+ const prompt = `Create a detailed timeline of events in this video:
257
+ - Identify key moments and transitions
258
+ - Note approximate timing (beginning, middle, end or specific timestamps if visible)
259
+ - Describe what happens at each key point
260
+ - Identify any cause-and-effect relationships between events
261
+
262
+ Format as a chronological list.`;
263
+
264
+ const response = await zai.chat.completions.createVision({
265
+ messages: [
266
+ {
267
+ role: 'user',
268
+ content: [
269
+ { type: 'text', text: prompt },
270
+ { type: 'video_url', video_url: { url: videoUrl } }
271
+ ]
272
+ }
273
+ ],
274
+ thinking: { type: 'enabled' }
275
+ });
276
+
277
+ return response.choices[0]?.message?.content;
278
+ }
279
+ ```
280
+
281
+ ### Video Content Classification
282
+
283
+ ```javascript
284
+ import ZAI from 'z-ai-web-dev-sdk';
285
+
286
+ async function classifyVideo(videoUrl) {
287
+ const zai = await ZAI.create();
288
+
289
+ const prompt = `Classify this video content:
290
+ 1. Primary category (e.g., educational, entertainment, sports, news, tutorial)
291
+ 2. Sub-category or genre
292
+ 3. Target audience
293
+ 4. Content style (professional, casual, documentary, etc.)
294
+ 5. Key themes or topics
295
+ 6. Suggested tags (10-15 keywords)
296
+
297
+ Format your response as structured JSON.`;
298
+
299
+ const response = await zai.chat.completions.createVision({
300
+ messages: [
301
+ {
302
+ role: 'user',
303
+ content: [
304
+ { type: 'text', text: prompt },
305
+ { type: 'video_url', video_url: { url: videoUrl } }
306
+ ]
307
+ }
308
+ ],
309
+ thinking: { type: 'disabled' }
310
+ });
311
+
312
+ const content = response.choices[0]?.message?.content;
313
+
314
+ try {
315
+ return JSON.parse(content);
316
+ } catch (e) {
317
+ return { rawResponse: content };
318
+ }
319
+ }
320
+ ```
321
+
322
+ ## Advanced Use Cases
323
+
324
+ ### Multi-turn Video Conversation
325
+
326
+ ```javascript
327
+ import ZAI from 'z-ai-web-dev-sdk';
328
+
329
+ class VideoConversation {
330
+ constructor() {
331
+ this.messages = [];
332
+ }
333
+
334
+ async initialize() {
335
+ this.zai = await ZAI.create();
336
+ }
337
+
338
+ async loadVideo(videoUrl, initialQuestion) {
339
+ this.messages.push({
340
+ role: 'user',
341
+ content: [
342
+ { type: 'text', text: initialQuestion },
343
+ { type: 'video_url', video_url: { url: videoUrl } }
344
+ ]
345
+ });
346
+
347
+ return this.getResponse();
348
+ }
349
+
350
+ async askFollowUp(question) {
351
+ this.messages.push({
352
+ role: 'user',
353
+ content: [
354
+ { type: 'text', text: question }
355
+ ]
356
+ });
357
+
358
+ return this.getResponse();
359
+ }
360
+
361
+ async getResponse() {
362
+ const response = await this.zai.chat.completions.createVision({
363
+ messages: this.messages,
364
+ thinking: { type: 'disabled' }
365
+ });
366
+
367
+ const assistantMessage = response.choices[0]?.message?.content;
368
+
369
+ this.messages.push({
370
+ role: 'assistant',
371
+ content: assistantMessage
372
+ });
373
+
374
+ return assistantMessage;
375
+ }
376
+ }
377
+
378
+ // Usage
379
+ const conversation = new VideoConversation();
380
+ await conversation.initialize();
381
+
382
+ const initial = await conversation.loadVideo(
383
+ 'https://example.com/lecture.mp4',
384
+ 'What is the main topic of this lecture?'
385
+ );
386
+
387
+ const followup1 = await conversation.askFollowUp(
388
+ 'Can you explain the key concepts mentioned?'
389
+ );
390
+
391
+ const followup2 = await conversation.askFollowUp(
392
+ 'What examples were used to illustrate these concepts?'
393
+ );
394
+ ```
395
+
396
+ ### Video Quality Assessment
397
+
398
+ ```javascript
399
+ import ZAI from 'z-ai-web-dev-sdk';
400
+
401
+ async function assessVideoQuality(videoUrl) {
402
+ const zai = await ZAI.create();
403
+
404
+ const prompt = `Assess the quality of this video:
405
+ 1. Visual quality (resolution, clarity, lighting) - Rate 1-10
406
+ 2. Audio quality (if audio is present) - Rate 1-10
407
+ 3. Camera work (stability, framing, composition) - Rate 1-10
408
+ 4. Production value (editing, transitions, effects) - Rate 1-10
409
+ 5. Content clarity (is the message clear?) - Rate 1-10
410
+ 6. Pacing (too fast, too slow, just right)
411
+ 7. Technical issues (artifacts, blur, audio sync, etc.)
412
+ 8. Overall rating - 1-10
413
+ 9. Specific recommendations for improvement
414
+
415
+ Provide detailed feedback for each criterion.`;
416
+
417
+ const response = await zai.chat.completions.createVision({
418
+ messages: [
419
+ {
420
+ role: 'user',
421
+ content: [
422
+ { type: 'text', text: prompt },
423
+ { type: 'video_url', video_url: { url: videoUrl } }
424
+ ]
425
+ }
426
+ ],
427
+ thinking: { type: 'enabled' }
428
+ });
429
+
430
+ return response.choices[0]?.message?.content;
431
+ }
432
+ ```
433
+
434
+ ### Video Content Moderation
435
+
436
+ ```javascript
437
+ import ZAI from 'z-ai-web-dev-sdk';
438
+
439
+ async function moderateVideo(videoUrl) {
440
+ const zai = await ZAI.create();
441
+
442
+ const prompt = `Review this video for content moderation:
443
+ 1. Check for any inappropriate or sensitive content
444
+ 2. Identify any potential safety concerns
445
+ 3. Note any content that might violate common community guidelines
446
+ 4. Assess age-appropriateness
447
+ 5. Identify any copyrighted material visible (logos, brands, music)
448
+ 6. Overall safety rating: Safe / Caution / Review Required
449
+
450
+ Provide specific examples for any concerns identified.`;
451
+
452
+ const response = await zai.chat.completions.createVision({
453
+ messages: [
454
+ {
455
+ role: 'user',
456
+ content: [
457
+ { type: 'text', text: prompt },
458
+ { type: 'video_url', video_url: { url: videoUrl } }
459
+ ]
460
+ }
461
+ ],
462
+ thinking: { type: 'enabled' }
463
+ });
464
+
465
+ return response.choices[0]?.message?.content;
466
+ }
467
+ ```
468
+
469
+ ### Video Transcript Generation (Visual Description)
470
+
471
+ ```javascript
472
+ import ZAI from 'z-ai-web-dev-sdk';
473
+
474
+ async function generateVisualTranscript(videoUrl) {
475
+ const zai = await ZAI.create();
476
+
477
+ const prompt = `Generate a detailed visual transcript of this video:
478
+ - Describe what's happening in each scene
479
+ - Note any text that appears on screen
480
+ - Describe important visual elements
481
+ - Mention any scene changes or transitions
482
+ - Include descriptions of people's actions and expressions
483
+
484
+ Format as a time-based narrative (e.g., "At the beginning...", "Then...", "Finally...").`;
485
+
486
+ const response = await zai.chat.completions.createVision({
487
+ messages: [
488
+ {
489
+ role: 'user',
490
+ content: [
491
+ { type: 'text', text: prompt },
492
+ { type: 'video_url', video_url: { url: videoUrl } }
493
+ ]
494
+ }
495
+ ],
496
+ thinking: { type: 'disabled' }
497
+ });
498
+
499
+ return response.choices[0]?.message?.content;
500
+ }
501
+ ```
502
+
503
+ ### Sports Video Analysis
504
+
505
+ ```javascript
506
+ import ZAI from 'z-ai-web-dev-sdk';
507
+
508
+ async function analyzeSportsVideo(videoUrl, sport = null) {
509
+ const zai = await ZAI.create();
510
+
511
+ const prompt = sport
512
+ ? `Analyze this ${sport} video in detail:
513
+ 1. Identify players and their positions
514
+ 2. Describe key plays and strategies
515
+ 3. Note scoring events or important moments
516
+ 4. Assess player performance
517
+ 5. Identify any rule violations or fouls
518
+ 6. Describe the pace and flow of the game`
519
+ : `Analyze this sports video:
520
+ 1. Identify the sport being played
521
+ 2. Describe the key actions and plays
522
+ 3. Note any scoring or significant events
523
+ 4. Describe player movements and strategies
524
+ 5. Overall assessment of the game or match`;
525
+
526
+ const response = await zai.chat.completions.createVision({
527
+ messages: [
528
+ {
529
+ role: 'user',
530
+ content: [
531
+ { type: 'text', text: prompt },
532
+ { type: 'video_url', video_url: { url: videoUrl } }
533
+ ]
534
+ }
535
+ ],
536
+ thinking: { type: 'enabled' }
537
+ });
538
+
539
+ return response.choices[0]?.message?.content;
540
+ }
541
+ ```
542
+
543
+ ### Educational Video Summarization
544
+
545
+ ```javascript
546
+ import ZAI from 'z-ai-web-dev-sdk';
547
+
548
+ async function summarizeEducationalVideo(videoUrl) {
549
+ const zai = await ZAI.create();
550
+
551
+ const prompt = `Summarize this educational video for students:
552
+ 1. Main topic or learning objective
553
+ 2. Key concepts explained (in order)
554
+ 3. Important definitions or terminology
555
+ 4. Examples used to illustrate concepts
556
+ 5. Visual aids or demonstrations shown
557
+ 6. Key takeaways or conclusions
558
+ 7. Suggested review points
559
+
560
+ Format as a study guide.`;
561
+
562
+ const response = await zai.chat.completions.createVision({
563
+ messages: [
564
+ {
565
+ role: 'user',
566
+ content: [
567
+ { type: 'text', text: prompt },
568
+ { type: 'video_url', video_url: { url: videoUrl } }
569
+ ]
570
+ }
571
+ ],
572
+ thinking: { type: 'enabled' }
573
+ });
574
+
575
+ return response.choices[0]?.message?.content;
576
+ }
577
+ ```
578
+
579
+ ## Batch Video Processing
580
+
581
+ ### Process Multiple Videos
582
+
583
+ ```javascript
584
+ import ZAI from 'z-ai-web-dev-sdk';
585
+
586
+ class VideoBatchProcessor {
587
+ constructor() {
588
+ this.zai = null;
589
+ }
590
+
591
+ async initialize() {
592
+ this.zai = await ZAI.create();
593
+ }
594
+
595
+ async processVideo(videoUrl, prompt) {
596
+ const response = await this.zai.chat.completions.createVision({
597
+ messages: [
598
+ {
599
+ role: 'user',
600
+ content: [
601
+ { type: 'text', text: prompt },
602
+ { type: 'video_url', video_url: { url: videoUrl } }
603
+ ]
604
+ }
605
+ ],
606
+ thinking: { type: 'disabled' }
607
+ });
608
+
609
+ return response.choices[0]?.message?.content;
610
+ }
611
+
612
+ async processBatch(videoUrls, prompt) {
613
+ const results = [];
614
+
615
+ for (const videoUrl of videoUrls) {
616
+ try {
617
+ console.log(`Processing: ${videoUrl}`);
618
+ const result = await this.processVideo(videoUrl, prompt);
619
+ results.push({ videoUrl, success: true, result });
620
+
621
+ // Add delay to avoid rate limiting
622
+ await new Promise(resolve => setTimeout(resolve, 1000));
623
+ } catch (error) {
624
+ results.push({
625
+ videoUrl,
626
+ success: false,
627
+ error: error.message
628
+ });
629
+ }
630
+ }
631
+
632
+ return results;
633
+ }
634
+ }
635
+
636
+ // Usage
637
+ const processor = new VideoBatchProcessor();
638
+ await processor.initialize();
639
+
640
+ const videos = [
641
+ 'https://example.com/video1.mp4',
642
+ 'https://example.com/video2.mp4',
643
+ 'https://example.com/video3.mp4'
644
+ ];
645
+
646
+ const results = await processor.processBatch(
647
+ videos,
648
+ 'Provide a brief summary of this video suitable for a content catalog'
649
+ );
650
+ ```
651
+
652
+ ## Best Practices
653
+
654
+ ### 1. Video Preparation
655
+ - Use standard video formats (MP4, MOV, AVI)
656
+ - Ensure videos are accessible via public URLs or properly encoded
657
+ - For long videos, consider creating shorter clips for specific analysis
658
+ - Optimize video size for faster processing
659
+ - Ensure good lighting and audio quality in source videos
660
+
661
+ ### 2. Prompt Engineering for Videos
662
+ - Be specific about temporal aspects ("beginning", "throughout", "at the end")
663
+ - Mention what type of analysis you need (actions, events, scenes, etc.)
664
+ - For long videos, ask for summaries or key moments
665
+ - Use thinking mode for complex temporal reasoning
666
+ - Specify if you need chronological or thematic organization
667
+
668
+ ### 3. Error Handling
669
+
670
+ ```javascript
671
+ async function safeVideoAnalysis(videoUrl, prompt) {
672
+ try {
673
+ const zai = await ZAI.create();
674
+
675
+ const response = await zai.chat.completions.createVision({
676
+ messages: [
677
+ {
678
+ role: 'user',
679
+ content: [
680
+ { type: 'text', text: prompt },
681
+ { type: 'video_url', video_url: { url: videoUrl } }
682
+ ]
683
+ }
684
+ ],
685
+ thinking: { type: 'disabled' }
686
+ });
687
+
688
+ return {
689
+ success: true,
690
+ content: response.choices[0]?.message?.content
691
+ };
692
+ } catch (error) {
693
+ console.error('Video analysis error:', error);
694
+ return {
695
+ success: false,
696
+ error: error.message
697
+ };
698
+ }
699
+ }
700
+ ```
701
+
702
+ ### 4. Performance Optimization
703
+ - Cache SDK instance for batch processing
704
+ - Implement request throttling (add delays between requests)
705
+ - Process videos asynchronously when possible
706
+ - For very long videos, consider analyzing at specific intervals
707
+ - Use appropriate thinking mode (disabled for simple descriptions, enabled for complex analysis)
708
+
709
+ ### 5. Security Considerations
710
+ - Validate video URLs before processing
711
+ - Implement rate limiting for public APIs
712
+ - Sanitize user-provided video URLs
713
+ - Never expose SDK credentials in client-side code
714
+ - Implement content moderation for user-uploaded videos
715
+ - Consider video file size limits
716
+
717
+ ## Common Use Cases
718
+
719
+ 1. **Content Moderation**: Automatically review video uploads for policy compliance
720
+ 2. **Video Cataloging**: Generate descriptions and tags for video libraries
721
+ 3. **Sports Analysis**: Analyze games, identify plays, assess performance
722
+ 4. **Educational Content**: Summarize lectures, create study guides
723
+ 5. **Security & Surveillance**: Detect events, track activities (with appropriate authorization)
724
+ 6. **Quality Control**: Assess video production quality
725
+ 7. **Social Media**: Generate video captions and descriptions
726
+ 8. **Training & Documentation**: Analyze training videos, create documentation
727
+ 9. **Event Recording**: Summarize meetings, conferences, presentations
728
+ 10. **Entertainment**: Analyze films, shows for content, themes, scenes
729
+
730
+ ## Integration Examples
731
+
732
+ ### Express.js API Endpoint
733
+
734
+ ```javascript
735
+ import express from 'express';
736
+ import ZAI from 'z-ai-web-dev-sdk';
737
+
738
+ const app = express();
739
+ app.use(express.json());
740
+
741
+ let zaiInstance;
742
+
743
+ async function initZAI() {
744
+ zaiInstance = await ZAI.create();
745
+ }
746
+
747
+ // Analyze video from URL
748
+ app.post('/api/analyze-video', async (req, res) => {
749
+ try {
750
+ const { videoUrl, prompt } = req.body;
751
+
752
+ if (!videoUrl || !prompt) {
753
+ return res.status(400).json({
754
+ error: 'videoUrl and prompt are required'
755
+ });
756
+ }
757
+
758
+ const response = await zaiInstance.chat.completions.createVision({
759
+ messages: [
760
+ {
761
+ role: 'user',
762
+ content: [
763
+ { type: 'text', text: prompt },
764
+ { type: 'video_url', video_url: { url: videoUrl } }
765
+ ]
766
+ }
767
+ ],
768
+ thinking: { type: 'disabled' }
769
+ });
770
+
771
+ res.json({
772
+ success: true,
773
+ analysis: response.choices[0]?.message?.content
774
+ });
775
+ } catch (error) {
776
+ res.status(500).json({
777
+ success: false,
778
+ error: error.message
779
+ });
780
+ }
781
+ });
782
+
783
+ // Get video summary
784
+ app.post('/api/video-summary', async (req, res) => {
785
+ try {
786
+ const { videoUrl } = req.body;
787
+
788
+ if (!videoUrl) {
789
+ return res.status(400).json({ error: 'videoUrl is required' });
790
+ }
791
+
792
+ const prompt = 'Provide a comprehensive summary of this video including: 1) Main content/topic, 2) Key events in chronological order, 3) Important people or subjects, 4) Overall takeaway.';
793
+
794
+ const response = await zaiInstance.chat.completions.createVision({
795
+ messages: [
796
+ {
797
+ role: 'user',
798
+ content: [
799
+ { type: 'text', text: prompt },
800
+ { type: 'video_url', video_url: { url: videoUrl } }
801
+ ]
802
+ }
803
+ ],
804
+ thinking: { type: 'enabled' }
805
+ });
806
+
807
+ res.json({
808
+ success: true,
809
+ summary: response.choices[0]?.message?.content
810
+ });
811
+ } catch (error) {
812
+ res.status(500).json({
813
+ success: false,
814
+ error: error.message
815
+ });
816
+ }
817
+ });
818
+
819
+ initZAI().then(() => {
820
+ app.listen(3000, () => {
821
+ console.log('Video understanding API running on port 3000');
822
+ });
823
+ });
824
+ ```
825
+
826
+ ### Next.js API Route
827
+
828
+ ```javascript
829
+ // pages/api/video-understand.js
830
+ import ZAI from 'z-ai-web-dev-sdk';
831
+
832
+ let zaiInstance = null;
833
+
834
+ async function getZAI() {
835
+ if (!zaiInstance) {
836
+ zaiInstance = await ZAI.create();
837
+ }
838
+ return zaiInstance;
839
+ }
840
+
841
+ export default async function handler(req, res) {
842
+ if (req.method !== 'POST') {
843
+ return res.status(405).json({ error: 'Method not allowed' });
844
+ }
845
+
846
+ try {
847
+ const { videoUrl, prompt, enableThinking = false } = req.body;
848
+
849
+ if (!videoUrl || !prompt) {
850
+ return res.status(400).json({
851
+ error: 'videoUrl and prompt are required'
852
+ });
853
+ }
854
+
855
+ const zai = await getZAI();
856
+
857
+ const response = await zai.chat.completions.createVision({
858
+ messages: [
859
+ {
860
+ role: 'user',
861
+ content: [
862
+ { type: 'text', text: prompt },
863
+ { type: 'video_url', video_url: { url: videoUrl } }
864
+ ]
865
+ }
866
+ ],
867
+ thinking: { type: enableThinking ? 'enabled' : 'disabled' }
868
+ });
869
+
870
+ res.status(200).json({
871
+ success: true,
872
+ analysis: response.choices[0]?.message?.content
873
+ });
874
+ } catch (error) {
875
+ console.error('Error:', error);
876
+ res.status(500).json({
877
+ success: false,
878
+ error: error.message
879
+ });
880
+ }
881
+ }
882
+ ```
883
+
884
+ ## Troubleshooting
885
+
886
+ **Issue**: "SDK must be used in backend"
887
+ - **Solution**: Ensure z-ai-web-dev-sdk is only imported and used in server-side code, never in client/browser code
888
+
889
+ **Issue**: Video not loading or being analyzed
890
+ - **Solution**: Verify the video URL is accessible, returns correct MIME type, and is in a supported format
891
+
892
+ **Issue**: Inaccurate temporal analysis
893
+ - **Solution**: Enable thinking mode for complex temporal reasoning, provide more specific prompts about time/sequence
894
+
895
+ **Issue**: Slow response times for videos
896
+ - **Solution**: Videos take longer to process than images; consider shorter clips or sampling for long videos
897
+
898
+ **Issue**: Missing details from video
899
+ - **Solution**: Be more specific in your prompt, ask about particular time segments or aspects
900
+
901
+ **Issue**: Video format not supported
902
+ - **Solution**: Convert video to MP4 (most widely supported), check that URL returns proper video MIME type
903
+
904
+ ## Remember
905
+
906
+ - Always use z-ai-web-dev-sdk in backend code only
907
+ - The SDK is already installed - import as shown in examples
908
+ - Use `video_url` content type for video files
909
+ - Video analysis takes longer than image analysis - be patient
910
+ - Enable thinking mode for complex temporal reasoning and event detection
911
+ - Structure prompts to include temporal information (beginning, middle, end)
912
+ - Handle errors gracefully in production
913
+ - Implement rate limiting and delays for batch processing
914
+ - Validate and sanitize user inputs
915
+ - Consider privacy and security when processing user videos
916
+ - For very long videos, consider analyzing specific segments or key frames