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,896 @@
1
+ ---
2
+ name: image-edit
3
+ description: Implement AI image editing and modification capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to edit existing images, create variations, modify visual content, redesign assets, or transform images based on text descriptions. Supports multiple image sizes and returns base64 encoded results. Also includes CLI tool for quick image editing.
4
+ license: MIT
5
+ ---
6
+
7
+ # Image Edit Skill
8
+
9
+ This skill guides the implementation of image editing and modification functionality using the z-ai-web-dev-sdk package and CLI tool, enabling intelligent transformation and editing of images based on text descriptions.
10
+
11
+ ## Skills Path
12
+
13
+ **Skill Location**: `{project_path}/skills/image-edit`
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/image-edit.ts` for a working example.
18
+
19
+ ## Overview
20
+
21
+ Image Edit allows you to build applications that modify, transform, and enhance existing images using AI models. Perfect for redesigning assets, creating variations, improving visual content, and transforming images based on textual descriptions.
22
+
23
+ **IMPORTANT**: z-ai-web-dev-sdk MUST be used in backend code only. Never use it in client-side code.
24
+
25
+ ## SDK API Method
26
+
27
+ The image editing functionality uses the following API method:
28
+
29
+ ```javascript
30
+ await zai.images.generations.edit({
31
+ prompt: string, // Required: Description of the edit to apply
32
+ images: [{ url: string }], // Required: Array with image URL or base64 data URL
33
+ size?: string, // Optional: Output size (default: '1024x1024')
34
+ model?: string // Optional: Model name
35
+ })
36
+ ```
37
+
38
+ **Important**: The `images` parameter must be an array of objects with a `url` property, not a plain string.
39
+
40
+ **API Endpoint**: `POST /images/generations/edit`
41
+
42
+ **Returns**: `ImageGenerationResponse` with base64 encoded edited image
43
+
44
+ ## Prerequisites
45
+
46
+ The z-ai-web-dev-sdk package is already installed. Import it as shown in the examples below.
47
+
48
+ ## Basic Image Editing
49
+
50
+ ### Simple Image Transformation
51
+
52
+ ```javascript
53
+ import ZAI from 'z-ai-web-dev-sdk';
54
+ import fs from 'fs';
55
+
56
+ async function editImage(imageSource, editPrompt, outputPath, size = '1024x1024') {
57
+ const zai = await ZAI.create();
58
+
59
+ const response = await zai.images.generations.edit({
60
+ prompt: editPrompt,
61
+ images: [{ url: imageSource }], // Array of objects with url property
62
+ size: size
63
+ });
64
+
65
+ const imageBase64 = response.data[0].base64;
66
+
67
+ // Save edited image
68
+ const buffer = Buffer.from(imageBase64, 'base64');
69
+ fs.writeFileSync(outputPath, buffer);
70
+
71
+ console.log(`Edited image saved to ${outputPath}`);
72
+ return outputPath;
73
+ }
74
+
75
+ // Usage - Using remote image URL
76
+ await editImage(
77
+ 'https://example.com/landscape.jpg',
78
+ 'Transform this landscape into a night scene with stars and moon',
79
+ './landscape_night.png'
80
+ );
81
+
82
+ // Usage - Using local image converted to base64
83
+ import { readFileSync } from 'fs';
84
+ const imageBuffer = readFileSync('./photo.jpg');
85
+ const base64Image = imageBuffer.toString('base64');
86
+ const dataUrl = `data:image/jpeg;base64,${base64Image}`;
87
+
88
+ await editImage(
89
+ dataUrl,
90
+ 'Change the cat to a dog, keep everything else the same',
91
+ './dog_version.png'
92
+ );
93
+ ```
94
+
95
+ ### Create Image Variations
96
+
97
+ ```javascript
98
+ import ZAI from 'z-ai-web-dev-sdk';
99
+ import fs from 'fs';
100
+
101
+ async function createVariation(imageSource, baseDescription, variation, outputPath, size = '1024x1024') {
102
+ const zai = await ZAI.create();
103
+
104
+ // Combine base description with variation request
105
+ const prompt = `${baseDescription}, ${variation}`;
106
+
107
+ const response = await zai.images.generations.edit({
108
+ prompt: prompt,
109
+ images: [{ url: imageSource }],
110
+ size: size
111
+ });
112
+
113
+ const imageBase64 = response.data[0].base64;
114
+ const buffer = Buffer.from(imageBase64, 'base64');
115
+ fs.writeFileSync(outputPath, buffer);
116
+
117
+ return {
118
+ path: outputPath,
119
+ prompt: prompt,
120
+ variation: variation
121
+ };
122
+ }
123
+
124
+ // Usage - Create variations from original image
125
+ await createVariation(
126
+ 'https://example.com/headshot.jpg',
127
+ 'Professional headshot photo',
128
+ 'with blue background instead of gray',
129
+ './headshot_blue.png'
130
+ );
131
+
132
+ await createVariation(
133
+ './smartphone.png',
134
+ 'Product photo of smartphone',
135
+ 'on wooden table instead of white background',
136
+ './product_wood.png'
137
+ );
138
+ ```
139
+
140
+ ### Multiple Image Sizes for Editing
141
+
142
+ ```javascript
143
+ import ZAI from 'z-ai-web-dev-sdk';
144
+ import fs from 'fs';
145
+
146
+ // Supported sizes
147
+ const SUPPORTED_SIZES = [
148
+ '1024x1024', // Square
149
+ '768x1344', // Portrait
150
+ '864x1152', // Portrait
151
+ '1344x768', // Landscape
152
+ '1152x864', // Landscape
153
+ '1440x720', // Wide landscape
154
+ '720x1440' // Tall portrait
155
+ ];
156
+
157
+ async function editImageWithSize(imageSource, editPrompt, size, outputPath) {
158
+ if (!SUPPORTED_SIZES.includes(size)) {
159
+ throw new Error(`Unsupported size: ${size}. Use one of: ${SUPPORTED_SIZES.join(', ')}`);
160
+ }
161
+
162
+ const zai = await ZAI.create();
163
+
164
+ const response = await zai.images.generations.edit({
165
+ prompt: editPrompt,
166
+ images: [{ url: imageSource }],
167
+ size: size
168
+ });
169
+
170
+ const imageBase64 = response.data[0].base64;
171
+ const buffer = Buffer.from(imageBase64, 'base64');
172
+ fs.writeFileSync(outputPath, buffer);
173
+
174
+ return {
175
+ path: outputPath,
176
+ size: size,
177
+ fileSize: buffer.length
178
+ };
179
+ }
180
+
181
+ // Usage - Edit with different aspect ratios
182
+ await editImageWithSize(
183
+ './logo.png',
184
+ 'Redesign the logo to be more modern and minimalist',
185
+ '1024x1024',
186
+ './logo_redesigned.png'
187
+ );
188
+
189
+ await editImageWithSize(
190
+ 'https://example.com/portrait.jpg',
191
+ 'Transform the portrait to landscape orientation, sunset lighting',
192
+ '1344x768',
193
+ './portrait_landscape.png'
194
+ );
195
+ ```
196
+
197
+ ## CLI Tool Usage
198
+
199
+ The z-ai CLI tool provides a convenient way to edit images directly from the command line.
200
+
201
+ ### Basic CLI Usage
202
+
203
+ ```bash
204
+ # Edit image with full options
205
+ z-ai image-edit --prompt "Change the background to sunset colors" --image "./photo.png" --output "./edited.png"
206
+
207
+ # Short form
208
+ z-ai image-edit -p "Make it darker and moodier" -i "./original.jpg" -o "./moody.png"
209
+
210
+ # Specify output size
211
+ z-ai image-edit -p "Redesign in modern style" -i "./design.png" -o "./modern.png" -s 1344x768
212
+
213
+ # Using remote image URL
214
+ z-ai image-edit -p "Convert to landscape orientation" -i "https://example.com/photo.png" -o "./landscape.png" -s 1344x768
215
+ ```
216
+
217
+ ### CLI Parameters
218
+
219
+ - `--prompt, -p`: **Required** - Description of the edit to apply
220
+ - `--image, -i`: **Required** - Original image URL or local file path
221
+ - `--output, -o`: **Required** - Output image file path (PNG format)
222
+ - `--size, -s`: Optional - Image size, default is 1024x1024
223
+ - `--help, -h`: Optional - Display help information
224
+
225
+ ### Supported Sizes
226
+
227
+ - `1024x1024`, `768x1344`, `864x1152`, `1344x768`, `1152x864`, `1440x720`, `720x1440`
228
+
229
+ ### CLI Use Cases for Image Editing
230
+
231
+ ```bash
232
+ # Redesign existing asset
233
+ z-ai image-edit -p "Redesign the logo with gradients and modern styling" -i "./logo.png" -o "./logo_v2.png" -s 1024x1024
234
+
235
+ # Change color scheme
236
+ z-ai image-edit -p "Change color scheme to blue and white, professional style" -i "./original.png" -o "./recolored.png" -s 1440x720
237
+
238
+ # Style transformation
239
+ z-ai image-edit -p "Transform to oil painting style, vibrant colors" -i "./photo.jpg" -o "./oil_painting.png" -s 1152x864
240
+
241
+ # Background replacement
242
+ z-ai image-edit -p "Replace background with modern office setting" -i "./portrait.png" -o "./new_background.png" -s 1344x768
243
+
244
+ # Lighting adjustment
245
+ z-ai image-edit -p "Adjust to golden hour lighting, warm tones" -i "./landscape.jpg" -o "./golden_hour.png" -s 1024x1024
246
+
247
+ # Element modification
248
+ z-ai image-edit -p "Replace the red car with a blue motorcycle" -i "./scene.png" -o "./modified.png" -s 1344x768
249
+
250
+ # Mood transformation
251
+ z-ai image-edit -p "Transform to dark moody atmosphere with dramatic lighting" -i "./bright.jpg" -o "./moody.png" -s 1440x720
252
+
253
+ # Using remote image URL
254
+ z-ai image-edit -p "Add a hat to the person" -i "https://example.com/photo.png" -o "./result.png" -s 1024x1024
255
+ ```
256
+
257
+ ## Advanced Use Cases
258
+
259
+ ### Batch Image Editing
260
+
261
+ ```javascript
262
+ import ZAI from 'z-ai-web-dev-sdk';
263
+ import fs from 'fs';
264
+ import path from 'path';
265
+
266
+ async function batchEditImages(editInstructions, outputDir, size = '1024x1024') {
267
+ const zai = await ZAI.create();
268
+
269
+ // Ensure output directory exists
270
+ if (!fs.existsSync(outputDir)) {
271
+ fs.mkdirSync(outputDir, { recursive: true });
272
+ }
273
+
274
+ const results = [];
275
+
276
+ for (let i = 0; i < editInstructions.length; i++) {
277
+ try {
278
+ const instruction = editInstructions[i];
279
+ const filename = `edited_${i + 1}.png`;
280
+ const outputPath = path.join(outputDir, filename);
281
+
282
+ const response = await zai.images.generations.edit({
283
+ prompt: instruction.prompt,
284
+ images: [{ url: instruction.imageSource }],
285
+ size: size
286
+ });
287
+
288
+ const imageBase64 = response.data[0].base64;
289
+ const buffer = Buffer.from(imageBase64, 'base64');
290
+ fs.writeFileSync(outputPath, buffer);
291
+
292
+ results.push({
293
+ success: true,
294
+ instruction: instruction.prompt,
295
+ path: outputPath,
296
+ size: buffer.length
297
+ });
298
+
299
+ console.log(`✓ Edited: ${filename}`);
300
+ } catch (error) {
301
+ results.push({
302
+ success: false,
303
+ instruction: editInstructions[i].prompt,
304
+ error: error.message
305
+ });
306
+
307
+ console.error(`✗ Failed: ${editInstructions[i].prompt} - ${error.message}`);
308
+ }
309
+ }
310
+
311
+ return results;
312
+ }
313
+
314
+ // Usage - Create multiple variations from the same image
315
+ const editInstructions = [
316
+ {
317
+ imageSource: './original.jpg',
318
+ prompt: 'Change background to blue gradient'
319
+ },
320
+ {
321
+ imageSource: './original.jpg',
322
+ prompt: 'Transform to black and white, high contrast'
323
+ },
324
+ {
325
+ imageSource: './original.jpg',
326
+ prompt: 'Add sunset lighting effects'
327
+ }
328
+ ];
329
+
330
+ const results = await batchEditImages(editInstructions, './edited-images');
331
+ console.log(`Edited ${results.filter(r => r.success).length} images`);
332
+ ```
333
+
334
+ ### Image Editing Service
335
+
336
+ ```javascript
337
+ import ZAI from 'z-ai-web-dev-sdk';
338
+ import fs from 'fs';
339
+ import path from 'path';
340
+ import crypto from 'crypto';
341
+
342
+ class ImageEditingService {
343
+ constructor(outputDir = './edited-images') {
344
+ this.outputDir = outputDir;
345
+ this.zai = null;
346
+ this.editHistory = [];
347
+ }
348
+
349
+ async initialize() {
350
+ this.zai = await ZAI.create();
351
+
352
+ if (!fs.existsSync(this.outputDir)) {
353
+ fs.mkdirSync(this.outputDir, { recursive: true });
354
+ }
355
+ }
356
+
357
+ generateFilename(editPrompt) {
358
+ const hash = crypto
359
+ .createHash('md5')
360
+ .update(`${editPrompt}-${Date.now()}`)
361
+ .digest('hex')
362
+ .substring(0, 8);
363
+
364
+ return `edited_${hash}.png`;
365
+ }
366
+
367
+ async edit(imageSource, editPrompt, options = {}) {
368
+ const {
369
+ size = '1024x1024',
370
+ saveToHistory = true,
371
+ filename = null
372
+ } = options;
373
+
374
+ const response = await this.zai.images.generations.edit({
375
+ prompt: editPrompt,
376
+ images: [{ url: imageSource }],
377
+ size: size
378
+ });
379
+
380
+ const imageBase64 = response.data[0].base64;
381
+ const buffer = Buffer.from(imageBase64, 'base64');
382
+
383
+ // Determine output path
384
+ const outputFilename = filename || this.generateFilename(editPrompt);
385
+ const outputPath = path.join(this.outputDir, outputFilename);
386
+
387
+ fs.writeFileSync(outputPath, buffer);
388
+
389
+ const result = {
390
+ path: outputPath,
391
+ imageSource: imageSource,
392
+ editPrompt: editPrompt,
393
+ size: size,
394
+ fileSize: buffer.length,
395
+ timestamp: new Date().toISOString()
396
+ };
397
+
398
+ // Save to history
399
+ if (saveToHistory) {
400
+ this.editHistory.push(result);
401
+ }
402
+
403
+ return result;
404
+ }
405
+
406
+ async createVariations(imageSource, basePrompt, variations, options = {}) {
407
+ const results = [];
408
+
409
+ for (const variation of variations) {
410
+ const fullPrompt = `${basePrompt}, ${variation}`;
411
+ const result = await this.edit(imageSource, fullPrompt, options);
412
+ result.variation = variation;
413
+ results.push(result);
414
+ }
415
+
416
+ return results;
417
+ }
418
+
419
+ getEditHistory() {
420
+ return this.editHistory;
421
+ }
422
+
423
+ clearHistory() {
424
+ this.editHistory = [];
425
+ }
426
+ }
427
+
428
+ // Usage
429
+ const service = new ImageEditingService();
430
+ await service.initialize();
431
+
432
+ // Single edit
433
+ const edited = await service.edit(
434
+ './original.jpg',
435
+ 'Transform to watercolor painting style',
436
+ { size: '1024x1024' }
437
+ );
438
+
439
+ // Multiple variations from the same image
440
+ const variations = await service.createVariations(
441
+ 'https://example.com/product.png',
442
+ 'Professional product photo',
443
+ [
444
+ 'with blue background',
445
+ 'with wooden surface',
446
+ 'with dramatic lighting'
447
+ ]
448
+ );
449
+
450
+ console.log('Edit history:', service.getEditHistory());
451
+ ```
452
+
453
+ ### Style Transfer and Transformation
454
+
455
+ ```javascript
456
+ import ZAI from 'z-ai-web-dev-sdk';
457
+ import fs from 'fs';
458
+
459
+ async function applyStyleTransfer(imageSource, content, style, outputPath, size = '1024x1024') {
460
+ const zai = await ZAI.create();
461
+
462
+ const prompt = `${content} transformed into ${style} style, maintain composition and subject`;
463
+
464
+ const response = await zai.images.generations.edit({
465
+ prompt: prompt,
466
+ images: [{ url: imageSource }],
467
+ size: size
468
+ });
469
+
470
+ const imageBase64 = response.data[0].base64;
471
+ const buffer = Buffer.from(imageBase64, 'base64');
472
+ fs.writeFileSync(outputPath, buffer);
473
+
474
+ return {
475
+ path: outputPath,
476
+ content: content,
477
+ style: style
478
+ };
479
+ }
480
+
481
+ // Usage - Apply different styles to the same image
482
+ await applyStyleTransfer(
483
+ './portrait.jpg',
484
+ 'Portrait photograph',
485
+ 'oil painting',
486
+ './portrait_oil.png'
487
+ );
488
+
489
+ await applyStyleTransfer(
490
+ 'https://example.com/city.jpg',
491
+ 'City landscape',
492
+ 'watercolor',
493
+ './city_watercolor.png'
494
+ );
495
+
496
+ await applyStyleTransfer(
497
+ './product.png',
498
+ 'Product photo',
499
+ 'minimalist illustration',
500
+ './product_minimal.png'
501
+ );
502
+ ```
503
+
504
+ ### Element Replacement
505
+
506
+ ```javascript
507
+ import ZAI from 'z-ai-web-dev-sdk';
508
+ import fs from 'fs';
509
+
510
+ async function replaceElement(imageSource, baseScene, replaceWhat, replaceWith, outputPath, size = '1024x1024') {
511
+ const zai = await ZAI.create();
512
+
513
+ const prompt = `${baseScene}, replace ${replaceWhat} with ${replaceWith}, keep everything else identical`;
514
+
515
+ const response = await zai.images.generations.edit({
516
+ prompt: prompt,
517
+ images: [{ url: imageSource }],
518
+ size: size
519
+ });
520
+
521
+ const imageBase64 = response.data[0].base64;
522
+ const buffer = Buffer.from(imageBase64, 'base64');
523
+ fs.writeFileSync(outputPath, buffer);
524
+
525
+ return {
526
+ path: outputPath,
527
+ modification: `${replaceWhat} → ${replaceWith}`
528
+ };
529
+ }
530
+
531
+ // Usage
532
+ await replaceElement(
533
+ './workspace.jpg',
534
+ 'Office workspace with laptop',
535
+ 'laptop',
536
+ 'desktop computer with dual monitors',
537
+ './workspace_desktop.png'
538
+ );
539
+
540
+ await replaceElement(
541
+ 'https://example.com/living-room.jpg',
542
+ 'Living room interior with sofa',
543
+ 'blue sofa',
544
+ 'brown leather sofa',
545
+ './living_room_leather.png'
546
+ );
547
+ ```
548
+
549
+ ## Best Practices
550
+
551
+ ### 1. Effective Edit Prompts
552
+
553
+ ```javascript
554
+ function buildEditPrompt(baseDescription, modification, preserveElements = []) {
555
+ const components = [
556
+ baseDescription,
557
+ modification
558
+ ];
559
+
560
+ if (preserveElements.length > 0) {
561
+ components.push(`keep ${preserveElements.join(', ')} unchanged`);
562
+ }
563
+
564
+ components.push('maintain overall composition');
565
+
566
+ return components.filter(Boolean).join(', ');
567
+ }
568
+
569
+ // Usage
570
+ const editPrompt = buildEditPrompt(
571
+ 'Professional headshot photo',
572
+ 'change background to modern office',
573
+ ['lighting', 'pose', 'expression']
574
+ );
575
+
576
+ // Result: "Professional headshot photo, change background to modern office, keep lighting, pose, expression unchanged, maintain overall composition"
577
+ ```
578
+
579
+ ### 2. Size Selection for Different Edit Types
580
+
581
+ ```javascript
582
+ function selectSizeForEdit(editType) {
583
+ const sizeMap = {
584
+ 'background-change': '1440x720',
585
+ 'style-transfer': '1024x1024',
586
+ 'color-adjustment': '1024x1024',
587
+ 'element-replacement': '1344x768',
588
+ 'composition-change': '1152x864',
589
+ 'portrait-edit': '768x1344',
590
+ 'landscape-edit': '1344x768'
591
+ };
592
+
593
+ return sizeMap[editType] || '1024x1024';
594
+ }
595
+
596
+ // Usage
597
+ const size = selectSizeForEdit('background-change');
598
+ await editImage('Replace background with beach scene', './beach_bg.png', size);
599
+ ```
600
+
601
+ ### 3. Error Handling with Retry
602
+
603
+ ```javascript
604
+ import ZAI from 'z-ai-web-dev-sdk';
605
+ import fs from 'fs';
606
+
607
+ async function safeEditImage(imageSource, editPrompt, size, outputPath, retries = 3) {
608
+ let lastError;
609
+
610
+ for (let attempt = 1; attempt <= retries; attempt++) {
611
+ try {
612
+ const zai = await ZAI.create();
613
+
614
+ const response = await zai.images.generations.edit({
615
+ prompt: editPrompt,
616
+ images: [{ url: imageSource }],
617
+ size: size
618
+ });
619
+
620
+ if (!response.data || !response.data[0] || !response.data[0].base64) {
621
+ throw new Error('Invalid response from image editing API');
622
+ }
623
+
624
+ const imageBase64 = response.data[0].base64;
625
+ const buffer = Buffer.from(imageBase64, 'base64');
626
+ fs.writeFileSync(outputPath, buffer);
627
+
628
+ return {
629
+ success: true,
630
+ path: outputPath,
631
+ attempts: attempt
632
+ };
633
+ } catch (error) {
634
+ lastError = error;
635
+ console.error(`Attempt ${attempt} failed:`, error.message);
636
+
637
+ if (attempt < retries) {
638
+ // Wait before retry (exponential backoff)
639
+ await new Promise(resolve => setTimeout(resolve, 1000 * attempt));
640
+ }
641
+ }
642
+ }
643
+
644
+ return {
645
+ success: false,
646
+ error: lastError.message,
647
+ attempts: retries
648
+ };
649
+ }
650
+ ```
651
+
652
+ ## Common Image Editing Use Cases
653
+
654
+ 1. **Background Replacement**: Change or remove backgrounds in photos
655
+ 2. **Style Transformation**: Convert photos to paintings, illustrations, etc.
656
+ 3. **Color Adjustment**: Change color schemes, saturation, mood
657
+ 4. **Element Modification**: Replace or modify specific elements
658
+ 5. **Composition Changes**: Adjust framing, orientation, layout
659
+ 6. **Lighting Adjustments**: Modify lighting, shadows, highlights
660
+ 7. **Asset Redesign**: Modernize or rebrand existing designs
661
+ 8. **Quality Enhancement**: Improve overall visual quality
662
+ 9. **Variation Creation**: Generate multiple versions of an image
663
+ 10. **Format Conversion**: Transform between different styles or formats
664
+
665
+ ## Integration Examples
666
+
667
+ ### Express.js API Endpoint
668
+
669
+ ```javascript
670
+ import express from 'express';
671
+ import ZAI from 'z-ai-web-dev-sdk';
672
+ import fs from 'fs';
673
+ import path from 'path';
674
+
675
+ const app = express();
676
+ app.use(express.json());
677
+ app.use('/edited-images', express.static('edited-images'));
678
+
679
+ let zaiInstance;
680
+ const outputDir = './edited-images';
681
+
682
+ async function initZAI() {
683
+ zaiInstance = await ZAI.create();
684
+ if (!fs.existsSync(outputDir)) {
685
+ fs.mkdirSync(outputDir, { recursive: true });
686
+ }
687
+ }
688
+
689
+ app.post('/api/edit-image', async (req, res) => {
690
+ try {
691
+ const {
692
+ imageSource, // URL or base64 data URL
693
+ editPrompt,
694
+ size = '1024x1024',
695
+ baseDescription = ''
696
+ } = req.body;
697
+
698
+ if (!imageSource || !editPrompt) {
699
+ return res.status(400).json({
700
+ error: 'imageSource and editPrompt are required'
701
+ });
702
+ }
703
+
704
+ // Combine base description with edit instruction
705
+ const fullPrompt = baseDescription
706
+ ? `${baseDescription}, ${editPrompt}`
707
+ : editPrompt;
708
+
709
+ const response = await zaiInstance.images.generations.edit({
710
+ prompt: fullPrompt,
711
+ images: [{ url: imageSource }],
712
+ size: size
713
+ });
714
+
715
+ const imageBase64 = response.data[0].base64;
716
+ const buffer = Buffer.from(imageBase64, 'base64');
717
+
718
+ const filename = `edited_${Date.now()}.png`;
719
+ const filepath = path.join(outputDir, filename);
720
+ fs.writeFileSync(filepath, buffer);
721
+
722
+ res.json({
723
+ success: true,
724
+ imageUrl: `/edited-images/${filename}`,
725
+ editPrompt: fullPrompt,
726
+ size: size
727
+ });
728
+ } catch (error) {
729
+ res.status(500).json({
730
+ success: false,
731
+ error: error.message
732
+ });
733
+ }
734
+ });
735
+
736
+ app.post('/api/create-variations', async (req, res) => {
737
+ try {
738
+ const {
739
+ imageSource, // URL or base64 data URL
740
+ baseDescription,
741
+ variations,
742
+ size = '1024x1024'
743
+ } = req.body;
744
+
745
+ if (!imageSource || !baseDescription || !variations || !Array.isArray(variations)) {
746
+ return res.status(400).json({
747
+ error: 'imageSource, baseDescription and variations array are required'
748
+ });
749
+ }
750
+
751
+ const results = [];
752
+
753
+ for (const variation of variations) {
754
+ const fullPrompt = `${baseDescription}, ${variation}`;
755
+
756
+ const response = await zaiInstance.images.generations.edit({
757
+ prompt: fullPrompt,
758
+ images: [{ url: imageSource }],
759
+ size: size
760
+ });
761
+
762
+ const imageBase64 = response.data[0].base64;
763
+ const buffer = Buffer.from(imageBase64, 'base64');
764
+
765
+ const filename = `variation_${Date.now()}_${Math.random().toString(36).substr(2, 9)}.png`;
766
+ const filepath = path.join(outputDir, filename);
767
+ fs.writeFileSync(filepath, buffer);
768
+
769
+ results.push({
770
+ variation: variation,
771
+ imageUrl: `/edited-images/${filename}`
772
+ });
773
+ }
774
+
775
+ res.json({
776
+ success: true,
777
+ results: results
778
+ });
779
+ } catch (error) {
780
+ res.status(500).json({
781
+ success: false,
782
+ error: error.message
783
+ });
784
+ }
785
+ });
786
+
787
+ initZAI().then(() => {
788
+ app.listen(3000, () => {
789
+ console.log('Image editing API running on port 3000');
790
+ });
791
+ });
792
+ ```
793
+
794
+ ## CLI Integration in Scripts
795
+
796
+ ### Shell Script for Batch Editing
797
+
798
+ ```bash
799
+ #!/bin/bash
800
+
801
+ # Batch edit images with different styles
802
+ echo "Creating style variations..."
803
+
804
+ ORIGINAL_IMAGE="./product.jpg"
805
+ BASE="Professional product photo of laptop"
806
+
807
+ z-ai image-edit -p "$BASE, modern minimalist style, white background" -i "$ORIGINAL_IMAGE" -o "./variations/minimal.png" -s 1024x1024
808
+ z-ai image-edit -p "$BASE, dramatic lighting, dark background" -i "$ORIGINAL_IMAGE" -o "./variations/dramatic.png" -s 1024x1024
809
+ z-ai image-edit -p "$BASE, on wooden desk, natural lighting" -i "$ORIGINAL_IMAGE" -o "./variations/natural.png" -s 1024x1024
810
+
811
+ echo "Variations created successfully!"
812
+ ```
813
+
814
+ ## Troubleshooting
815
+
816
+ **Issue**: "SDK must be used in backend"
817
+ - **Solution**: Ensure z-ai-web-dev-sdk is only used in server-side code
818
+
819
+ **Issue**: Invalid size parameter
820
+ - **Solution**: Use only supported sizes: 1024x1024, 768x1344, 864x1152, 1344x768, 1152x864, 1440x720, 720x1440
821
+
822
+ **Issue**: Edited image doesn't match intention
823
+ - **Solution**: Be more specific in edit prompts. Include what to change AND what to preserve
824
+
825
+ **Issue**: CLI command not found
826
+ - **Solution**: Ensure z-ai CLI is properly installed and in PATH
827
+
828
+ **Issue**: Image quality loss after editing
829
+ - **Solution**: Use larger size options and include quality terms in prompts
830
+
831
+ **Issue**: Inconsistent results across variations
832
+ - **Solution**: Include more specific base description and detailed modification instructions
833
+
834
+ ## Edit Prompt Engineering Tips
835
+
836
+ ### Good Edit Prompts
837
+ - ✓ "Change background to modern office, keep subject and lighting identical"
838
+ - ✓ "Transform to watercolor style, maintain composition and colors"
839
+ - ✓ "Replace red car with blue motorcycle, keep road and scenery unchanged"
840
+ - ✓ "Adjust to golden hour lighting, preserve all elements"
841
+
842
+ ### Poor Edit Prompts
843
+ - ✗ "make it better"
844
+ - ✗ "change something"
845
+ - ✗ "different version"
846
+
847
+ ### Edit Prompt Components
848
+ 1. **Base Context**: What the image currently represents
849
+ 2. **Modification**: What specific changes to make
850
+ 3. **Preservation**: What elements to keep unchanged
851
+ 4. **Quality**: Desired output quality or style
852
+
853
+ ### Effective Edit Patterns
854
+
855
+ **Background Changes:**
856
+ ```
857
+ "[Subject description], replace background with [new background], maintain subject lighting and pose"
858
+ ```
859
+
860
+ **Style Transfers:**
861
+ ```
862
+ "[Current description] transformed into [style name] style, preserve composition and key elements"
863
+ ```
864
+
865
+ **Element Replacement:**
866
+ ```
867
+ "[Scene description], replace [element A] with [element B], keep everything else identical"
868
+ ```
869
+
870
+ **Color Adjustments:**
871
+ ```
872
+ "[Image description], change color scheme to [colors], maintain contrast and composition"
873
+ ```
874
+
875
+ ## Supported Image Sizes
876
+
877
+ - `1024x1024` - Square (Best for general editing)
878
+ - `768x1344` - Portrait
879
+ - `864x1152` - Portrait
880
+ - `1344x768` - Landscape
881
+ - `1152x864` - Landscape
882
+ - `1440x720` - Wide landscape
883
+ - `720x1440` - Tall portrait
884
+
885
+ ## Remember
886
+
887
+ - Always use z-ai-web-dev-sdk in backend code only
888
+ - The SDK is already installed - import as shown
889
+ - CLI tool is available for quick image editing
890
+ - Be specific about what to change AND what to preserve
891
+ - Include base description for better context
892
+ - Use appropriate size for the edit type
893
+ - Implement retry logic for production applications
894
+ - Test edit prompts iteratively for best results
895
+ - Consider creating variations to explore options
896
+ - Base64 images need to be decoded before saving