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,156 @@
1
+ ---
2
+ name: stock_analysis
3
+ description: "Comprehensive stock market analysis skill covering A-share (China), Hong Kong, and US equities. Priority use cases: stock analysis and buy/sell/hold recommendations by ticker code, generating decision dashboards and research reports with technical/fundamental/sentiment analysis, position-aware investment strategies based on user's cost price, dividend income scoring and safety analysis, rumor and early market signal scanning (M&A, insider activity, analyst actions), watchlist management with price target and stop-loss alerts, and K-line chart pattern recognition from images. This skill should be the primary choice whenever users mention a stock ticker, ask whether to buy or sell a stock, reference their holding cost or position, request dividend analysis, ask about market rumors or early signals, want to add/check/manage a watchlist, or upload a chart image for technical analysis."
4
+ ---
5
+
6
+ # Stock Analysis Skill
7
+
8
+ ## 依赖平台 Skills
9
+
10
+ - `finance skill` — 所有市场数据(A股/港股/美股统一)
11
+ - `pdf skill` — PDF 研报生成
12
+ - `docx skill` — Word 文档生成
13
+ - `vlm skill`(内置)— K线图形态识别
14
+
15
+ ---
16
+
17
+ ## Commands & Triggers
18
+
19
+ | 命令 | 触发词示例 |
20
+ |------|-----------|
21
+ | 个股分析 | 分析600519 / AAPL值不值得买 / 帮我看看腾讯 |
22
+ | 带持仓分析 | 我持仓成本1450分析茅台 / AAPL我170买的现在怎样 |
23
+ | 股息分析 | JNJ股息怎么样 / 帮我分析这几只股的股息 KO PG JNJ |
24
+ | 传闻扫描 | 今日有什么并购传闻 / 扫描一下市场早期信号 |
25
+ | 添加自选股 | 关注AAPL / 把600519加入自选,目标价1600止损1350 |
26
+ | 查看自选股 | 我的自选股列表 / 看一下我关注的股票 |
27
+ | 检查提醒 | 检查自选股提醒 / 有没有触发止损 |
28
+ | 删除自选股 | 从自选股删除TSLA |
29
+ | K线图分析 | (上传图片)帮我分析这个K线图 |
30
+ | 大盘复盘 | 附带大盘复盘分析600519 |
31
+
32
+ ---
33
+
34
+ ## Input Schemas
35
+
36
+ ### 个股分析
37
+ ```typescript
38
+ {
39
+ stocks: (string | { code: string; position?: { status: "empty"|"holding"; cost?: number; shares?: number } })[],
40
+ outputFormat?: "markdown" | "pdf" | "word", // 默认 markdown
41
+ mode?: "full" | "quote", // 默认 full
42
+ includeMarketReview?: boolean, // 默认 false
43
+ includeGlobalMacro?: boolean, // 默认 true
44
+ includeDividend?: boolean, // 美股附加股息分析,默认 false
45
+ }
46
+ ```
47
+
48
+ ### 股息分析
49
+ ```typescript
50
+ runDividend(tickers: string | string[])
51
+ ```
52
+
53
+ ### 传闻扫描
54
+ ```typescript
55
+ runRumorScan() // 无需参数,自动扫描今日信号
56
+ ```
57
+
58
+ ### 自选股管理
59
+ ```typescript
60
+ runWatchlistAdd(ticker, { targetPrice?, stopPrice?, alertOnSignal?, notes? })
61
+ runWatchlistRemove(ticker)
62
+ runWatchlistList()
63
+ runWatchlistCheck() // 检查是否触发价格/信号提醒
64
+ ```
65
+
66
+ ---
67
+
68
+ ## Report Structure
69
+
70
+ ```
71
+ # 股票智能分析报告
72
+
73
+ ## 🌍 全球宏观速览(默认开启)
74
+ ## 🎯 大盘复盘(需开启)
75
+ ## 📊 个股决策仪表盘(每只)
76
+ ### 📰 重要信息速览(舆情/业绩预期/🚨风险/✨利好/最新动态)
77
+ ### 📌 核心结论(结论/一句话/空仓者建议/持仓者建议+盈亏)
78
+ ### 📈 当日行情
79
+ ### 📊 数据透视(技术面/基本面/资金面)
80
+ ### 🎯 作战计划(狙击点位表/仓位/风控)
81
+ ### ✅ 检查清单(综合结论)
82
+ ### 💰 股息分析(美股,需开启 includeDividend)
83
+ ```
84
+
85
+ ---
86
+
87
+ ## Dividend Analysis Metrics
88
+
89
+ | 指标 | 说明 |
90
+ |------|------|
91
+ | 安全评分 | 0-100,综合派息率/增长/连续年数 |
92
+ | 收入评级 | excellent/good/moderate/poor |
93
+ | 派息率状态 | safe(<40%)/moderate/high/unsustainable |
94
+ | 5年CAGR | 股息复合增长率 |
95
+ | 连续增长年数 | 25年以上为股息贵族 |
96
+
97
+ ---
98
+
99
+ ## Rumor Scanner Signal Types
100
+
101
+ | 类型 | 冲击分 | 说明 |
102
+ |------|--------|------|
103
+ | 并购传闻 (ma) | +5 | M&A/收购/要约 |
104
+ | 内部人动态 (insider) | +4 | CEO/董事买卖 |
105
+ | 分析师调整 (analyst) | +3 | 评级上调/下调/目标价变动 |
106
+ | 监管动态 (regulatory) | +3 | SEC调查/合规风险 |
107
+ | 业绩预期 (earnings) | +2 | 盈利预警/上调 |
108
+
109
+ ---
110
+
111
+ ## Watchlist Alert Types
112
+
113
+ | 提醒类型 | 触发条件 |
114
+ |---------|---------|
115
+ | 🎯 目标价 | 当前价 ≥ targetPrice |
116
+ | 🛑 止损价 | 当前价 ≤ stopPrice |
117
+ | 📊 信号变化 | 本次结论 ≠ 上次结论 |
118
+
119
+ ---
120
+
121
+ ## Behavior Rules
122
+
123
+ - 乖离率 > 5% → 结论不得为买入/强烈买入
124
+ - 数据缺失 → 标"暂缺",严禁捏造
125
+ - 有持仓成本 → 必须给出盈亏分析
126
+ - 未提供持仓 → 同时给出空仓/持仓两套建议
127
+ - 每次分析后自动静默更新自选股信号
128
+
129
+ ---
130
+
131
+ ## File Structure
132
+
133
+ ```
134
+ stock-analysis-skill/
135
+ ├── SKILL.md
136
+ ├── package.json
137
+ ├── tsconfig.json
138
+ └── src/
139
+ ├── index.ts # 主入口(所有命令路由)
140
+ ├── types.ts # 类型定义
141
+ ├── dataFetcher.ts # 数据层(finance skill)
142
+ ├── analyzer.ts # 个股分析(LLM/VLM)
143
+ ├── dividend.ts # 股息分析
144
+ ├── rumorScanner.ts # 传闻扫描
145
+ └── watchlist.ts # 自选股管理(storage 持久化)
146
+ ```
147
+
148
+ ---
149
+
150
+ ## Limitations
151
+
152
+ - 传闻扫描依赖 finance skill 新闻数据质量
153
+ - 自选股数据持久化依赖平台 storage API
154
+ - 港股基本面数据较少
155
+ - 不支持期货、ETF、可转债
156
+ - 仅供参考,不构成投资建议
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "stock-analysis-skill",
3
+ "version": "1.0.0",
4
+ "description": "A股/港股/美股 决策仪表盘 + 传闻扫描 + 自选股提醒",
5
+ "main": "dist/index.js",
6
+ "scripts": {
7
+ "build": "tsc",
8
+ "analyze": "ts-node src/index.ts analyze",
9
+ "dividend": "ts-node src/index.ts dividend",
10
+ "rumors": "ts-node src/index.ts rumors",
11
+ "watch": "ts-node src/index.ts watch"
12
+ },
13
+ "dependencies": {
14
+ "z-ai-web-dev-sdk": "latest"
15
+ },
16
+ "devDependencies": {
17
+ "@types/node": "^20.0.0",
18
+ "typescript": "^5.0.0",
19
+ "ts-node": "^10.0.0"
20
+ }
21
+ }
@@ -0,0 +1,264 @@
1
+ /**
2
+ * analyzer.ts — LLM/VLM 分析层
3
+ * 七段式决策仪表盘 + 美股可附加股息分析
4
+ */
5
+
6
+ import ZAI from "z-ai-web-dev-sdk";
7
+ import { StockData, AnalysisResult, OutputFormat, Market, Verdict, PositionInfo } from "./types";
8
+ import { validateStockData } from "./dataFetcher";
9
+ import { analyzeDividend, formatDividendMarkdown } from "./dividend";
10
+
11
+ const MARKET_LABEL: Record<Market, string> = { CN: "A股", HK: "港股", US: "美股" };
12
+
13
+ // ── 仪表盘 Prompt ─────────────────────────────────────────
14
+
15
+ function buildDashboardPrompt(
16
+ data: StockData,
17
+ position: PositionInfo | undefined,
18
+ warnings: string[]
19
+ ): string {
20
+ const warningBlock = warnings.length > 0
21
+ ? `⚠️ 数据预警(必须在报告中体现):\n${warnings.map((w) => `- ${w}`).join("\n")}\n\n`
22
+ : "";
23
+
24
+ const positionBlock = position
25
+ ? position.status === "holding"
26
+ ? `用户持仓:持仓中,成本价 ${position.cost ?? "未知"} 元${position.shares ? `,${position.shares} 股` : ""}。请给出盈亏分析和针对性建议。`
27
+ : `用户持仓:当前空仓。`
28
+ : `用户持仓:未提供(请同时给出空仓者和持仓者两套建议)。`;
29
+
30
+ return `${warningBlock}${positionBlock}
31
+
32
+ 股票数据:
33
+ \`\`\`json
34
+ ${JSON.stringify(data, null, 2)}
35
+ \`\`\`
36
+
37
+ 请输出以下格式的完整决策仪表盘(严格按结构,不增删章节):
38
+
39
+ ---
40
+
41
+ ## 决策仪表盘 · {名称}({代码}) · {市场}
42
+
43
+ ---
44
+
45
+ ### 📰 重要信息速览
46
+ **💭 舆情情绪:** 一句话描述
47
+ **📊 业绩预期:** 结合 PE/ROE/行业简述,数据缺失标"暂缺"
48
+ **🚨 风险警报:**
49
+ - 风险1(技术面或宏观)
50
+ - 风险2(基本面或行业)
51
+ **✨ 利好催化:**
52
+ - 利好1(技术面)
53
+ - 利好2(基本面或行业)
54
+ **📢 最新动态:** 结合行业背景,补充1条关键信息
55
+
56
+ ---
57
+
58
+ ### 📌 核心结论
59
+ **[emoji] 结论:强烈买入 / 买入 / 观望 / 卖出**(四选一,乖离率>5%不得为买入)
60
+ **💬 一句话决策:** 核心逻辑
61
+ **⏰ 时效性:** 立即行动 / 今日内 / 不急
62
+
63
+ (根据持仓状态输出)
64
+ - **🆕 空仓者:** 是否进场、建仓点位、仓位比例
65
+ - **💼 持仓者:** 持有/加仓/减仓/止损建议${position?.status === "holding" && position.cost ? ",含成本盈亏分析" : ""}
66
+
67
+ ---
68
+
69
+ ### 📈 当日行情
70
+ 列出:收盘价、昨收、开盘、最高、最低、涨跌幅、涨跌额、振幅、成交量、成交额(缺失标"暂缺")
71
+
72
+ ---
73
+
74
+ ### 📊 数据透视
75
+
76
+ **技术面:**
77
+ 表格(指标 | 数值 | 解读):MA5、MA10、MA20、乖离率(BIAS20)、RSI(如有)、支撑位、压力位
78
+ 结论:均线状态 + 趋势强度(xx/100)
79
+
80
+ **基本面(注明报告期):**
81
+ 表格(指标 | 数值 | 行业对比):ROE、毛利率、净利率、资产负债率、PE、PB
82
+ 数据缺失标"暂缺",不得捏造
83
+
84
+ **资金面:**(A股/港股适用,美股可略)
85
+ - 主力净流入:金额(占比%),一句话解读
86
+ - 筹码:获利比例 | 平均成本 | 集中度
87
+
88
+ ---
89
+
90
+ ### 🎯 作战计划
91
+
92
+ | 点位类型 | 价格 | 说明 |
93
+ |---------|------|------|
94
+ | 🎯 理想买入 | xxx | |
95
+ | 🔵 次优买入 | xxx | |
96
+ | 🛑 止损位 | xxx | |
97
+ | 🎊 目标位 | xxx | |
98
+
99
+ **💰 仓位建议:** x成
100
+ **建仓策略:** 分批策略
101
+ **风控策略:** 止损纪律
102
+
103
+ ---
104
+
105
+ ### ✅ 检查清单
106
+ - ✅/⚠️/❌ 均线状态
107
+ - ✅/⚠️/❌ 乖离率安全(<5%)
108
+ - ✅/⚠️/❌ 量能配合
109
+ - ✅/⚠️/❌ 估值合理
110
+ - ✅/⚠️/❌ 资金流向
111
+ - ✅/⚠️/❌ 筹码健康
112
+
113
+ **综合结论:** 一句话总结当前状态和建议。
114
+
115
+ ---
116
+ *以上分析仅供参考,不构成投资建议,据此操作风险自担。*`;
117
+ }
118
+
119
+ // ── 研报 Prompt(PDF/Word)──────────────────────────────
120
+
121
+ function buildReportPrompt(data: StockData, position: PositionInfo | undefined): string {
122
+ const positionBlock = position?.status === "holding"
123
+ ? `用户持仓成本:${position.cost ?? "未知"}`
124
+ : "用户当前空仓";
125
+
126
+ return `${positionBlock}
127
+
128
+ 股票数据:
129
+ \`\`\`json
130
+ ${JSON.stringify(data, null, 2)}
131
+ \`\`\`
132
+
133
+ 请生成结构化研报:
134
+
135
+ 【研究报告】{名称}({代码}) · {市场} · {日期}
136
+
137
+ 一、投资结论(买入/强烈买入/观望/卖出,含目标价、止损价,分空仓/持仓两套建议)
138
+ 二、重要信息速览(舆情/业绩预期/风险/利好/最新动态)
139
+ 三、数据透视(技术面/基本面/资金面)
140
+ 四、作战计划(点位表/仓位/持仓周期)
141
+ 五、风险提示(2-3条)
142
+
143
+ 免责声明:本报告由AI辅助生成,仅供参考,不构成投资建议,据此操作风险自担。`;
144
+ }
145
+
146
+ // ── 提取结论 ──────────────────────────────────────────────
147
+
148
+ function extractVerdict(text: string): Verdict {
149
+ const patterns = [
150
+ /结论[::]\s*[💚🟢🟡🔴⚪]?\s*(强烈买入|买入|观望|卖出)/,
151
+ /核心结论[::]\s*[💚🟢🟡🔴⚪]?\s*(强烈买入|买入|观望|卖出)/,
152
+ /\*\*(强烈买入|买入|观望|卖出)\*\*/,
153
+ ];
154
+ for (const p of patterns) {
155
+ const m = text.match(p);
156
+ if (m) return m[1] as Verdict;
157
+ }
158
+ return "观望";
159
+ }
160
+
161
+ // ── 核心分析 ──────────────────────────────────────────────
162
+
163
+ export async function analyzeStock(
164
+ data: StockData,
165
+ outputFormat: OutputFormat = "markdown",
166
+ position?: PositionInfo,
167
+ includeDividend = false
168
+ ): Promise<AnalysisResult> {
169
+ const { valid, warnings } = validateStockData(data);
170
+ const name = data.name ?? data.code;
171
+
172
+ if (!valid) {
173
+ return {
174
+ code: data.code, market: data.market, name,
175
+ verdict: "观望",
176
+ analysis: `## ⚠️ 数据获取失败\n\n${data.code} 数据无法获取(${data.error ?? "未知错误"}),建议手动核实。`,
177
+ warnings, outputFormat,
178
+ generatedAt: new Date().toISOString(),
179
+ };
180
+ }
181
+
182
+ const zai = await ZAI.create();
183
+ const userPrompt = outputFormat === "markdown"
184
+ ? buildDashboardPrompt(data, position, warnings)
185
+ : buildReportPrompt(data, position);
186
+
187
+ let analysisText = "⚠️ LLM 未返回内容,请重试。";
188
+ try {
189
+ const completion = await zai.chat.completions.create({
190
+ messages: [
191
+ { role: "system", content: `你是一位资深${MARKET_LABEL[data.market]}股票分析师。数据缺失标"暂缺",严禁捏造。乖离率>5%不得建议买入。结论四选一:强烈买入/买入/观望/卖出。输出语言:中文。` },
192
+ { role: "user", content: userPrompt },
193
+ ],
194
+ thinking: { type: "disabled" },
195
+ });
196
+ analysisText = completion.choices[0]?.message?.content ?? analysisText;
197
+ } catch (err: any) {
198
+ analysisText = `## ⚠️ 分析失败\n\nLLM 调用出错:${err.message}`;
199
+ }
200
+
201
+ // 美股附加股息分析
202
+ if (includeDividend && data.market === "US" && outputFormat === "markdown") {
203
+ try {
204
+ const dividend = await analyzeDividend(data.code);
205
+ const dividendMd = formatDividendMarkdown(dividend);
206
+ analysisText += `\n\n${dividendMd}`;
207
+ } catch {}
208
+ }
209
+
210
+ return {
211
+ code: data.code, market: data.market, name,
212
+ verdict: extractVerdict(analysisText),
213
+ analysis: analysisText,
214
+ warnings, outputFormat,
215
+ generatedAt: new Date().toISOString(),
216
+ };
217
+ }
218
+
219
+ // ── 批量分析 ──────────────────────────────────────────────
220
+
221
+ export async function analyzeMultipleStocks(
222
+ stockDataList: StockData[],
223
+ outputFormat: OutputFormat = "markdown",
224
+ positions?: Record<string, PositionInfo>,
225
+ includeDividend = false
226
+ ): Promise<AnalysisResult[]> {
227
+ const results: AnalysisResult[] = [];
228
+ for (const data of stockDataList) {
229
+ const position = positions?.[data.code];
230
+ results.push(await analyzeStock(data, outputFormat, position, includeDividend));
231
+ }
232
+ return results;
233
+ }
234
+
235
+ // ── K线图分析(VLM)──────────────────────────────────────
236
+
237
+ export async function analyzeChartImage(
238
+ imageUrlOrBase64: string,
239
+ stockCode: string,
240
+ isBase64 = false
241
+ ): Promise<string> {
242
+ try {
243
+ const zai = await ZAI.create();
244
+ const imageContent = isBase64
245
+ ? { type: "base64" as const, data: imageUrlOrBase64, mediaType: "image/png" as const }
246
+ : { type: "url" as const, url: imageUrlOrBase64 };
247
+
248
+ const completion = await zai.chat.completions.create({
249
+ messages: [
250
+ { role: "system", content: "你是技术分析专家,擅长K线形态识别。请用中文回答。" },
251
+ {
252
+ role: "user",
253
+ content: [
254
+ { type: "image", image: imageContent },
255
+ { type: "text", text: `这是 ${stockCode} 的K线图,请分析:\n1. 当前K线形态\n2. 趋势方向\n3. 关键支撑位和压力位\n4. 成交量配合\n5. 短期操作建议` },
256
+ ],
257
+ },
258
+ ],
259
+ });
260
+ return completion.choices[0]?.message?.content ?? "⚠️ VLM 未返回内容";
261
+ } catch (err: any) {
262
+ return `K线图分析失败:${err.message}`;
263
+ }
264
+ }
@@ -0,0 +1,130 @@
1
+ /**
2
+ * dataFetcher.ts — 全部通过 finance skill 获取数据
3
+ */
4
+
5
+ import ZAI from "z-ai-web-dev-sdk";
6
+ import { Market, FetchMode, StockData } from "./types";
7
+
8
+ export function detectMarket(code: string): Market {
9
+ if (/^\d{6}$/.test(code)) return "CN";
10
+ if (/^\d{4,5}\.HK$/i.test(code)) return "HK";
11
+ return "US";
12
+ }
13
+
14
+ const MARKET_LABEL: Record<Market, string> = {
15
+ CN: "A股", HK: "港股", US: "美股",
16
+ };
17
+
18
+ // ── 单只股票数据 ──────────────────────────────────────────
19
+
20
+ export async function fetchStockData(
21
+ code: string,
22
+ mode: FetchMode = "full"
23
+ ): Promise<StockData> {
24
+ const market = detectMarket(code);
25
+ const zai = await ZAI.create();
26
+
27
+ const prompt = mode === "quote"
28
+ ? `查询 ${code}(${MARKET_LABEL[market]})实时股价,只返回 JSON,字段:
29
+ name, price, prev_close, change_pct, change_amount, volume, amount, turnover, volume_ratio, market_cap, pe_ttm, pb。`
30
+ : `获取 ${code}(${MARKET_LABEL[market]})完整股票数据,只返回 JSON,包含:
31
+ name, price, prev_close, open, high, low, change_pct, change_amount, amplitude,
32
+ volume, amount, turnover, volume_ratio, market_cap, pe_ttm, pb, high_52w, low_52w, dividend_yield,
33
+ ma5, ma10, ma20, bias_pct(相对MA20乖离率%),
34
+ trend("多头排列"/"空头排列"/"震荡整理"), overbought_warning(bias_pct>5则true),
35
+ support(支撑位), resistance(压力位), rsi,
36
+ kline_recent_10(最近10日,每项含 date/open/close/high/low/volume),
37
+ profit_ratio(获利比例%), avg_cost(平均成本), chip_concentration(筹码集中度),
38
+ roe, gross_margin, net_margin, debt_ratio, eps, revenue_growth,
39
+ main_net(主力净流入金额), main_net_pct(主力净流入占比%)。
40
+ 缺失字段填 null,不得捏造。`;
41
+
42
+ try {
43
+ const completion = await zai.chat.completions.create({
44
+ messages: [{ role: "user", content: prompt }],
45
+ thinking: { type: "disabled" },
46
+ });
47
+ const raw = completion.choices[0]?.message?.content ?? "";
48
+ const parsed = JSON.parse(raw.replace(/```json|```/g, "").trim());
49
+ return { code, market, timestamp: new Date().toISOString(), ...parsed };
50
+ } catch (err: any) {
51
+ return { code, market, timestamp: new Date().toISOString(), error: err.message };
52
+ }
53
+ }
54
+
55
+ // ── 批量抓取(串行)──────────────────────────────────────
56
+
57
+ export async function fetchMultipleStocks(
58
+ codes: string[],
59
+ mode: FetchMode = "full"
60
+ ): Promise<StockData[]> {
61
+ const results: StockData[] = [];
62
+ for (let i = 0; i < codes.length; i++) {
63
+ results.push(await fetchStockData(codes[i], mode));
64
+ if (i < codes.length - 1) await new Promise((r) => setTimeout(r, 300));
65
+ }
66
+ return results;
67
+ }
68
+
69
+ // ── 全球宏观 ──────────────────────────────────────────────
70
+
71
+ export async function fetchGlobalMacro(): Promise<string> {
72
+ const zai = await ZAI.create();
73
+ try {
74
+ const completion = await zai.chat.completions.create({
75
+ messages: [{
76
+ role: "user",
77
+ content: `请获取今日全球市场关键信息,简洁 Markdown 输出,包含:
78
+ - 美股三大指数昨收涨跌(道指/纳指/标普)
79
+ - 美元指数、人民币汇率动向
80
+ - 黄金、原油最新价格
81
+ - 美联储最新政策动向(如有)
82
+ - 影响 A股/港股的1-2条关键宏观事件
83
+ 控制在150字以内。`,
84
+ }],
85
+ thinking: { type: "disabled" },
86
+ });
87
+ return completion.choices[0]?.message?.content ?? "全球宏观数据获取失败";
88
+ } catch (err: any) {
89
+ return `全球宏观数据获取失败:${err.message}`;
90
+ }
91
+ }
92
+
93
+ // ── 大盘复盘 ──────────────────────────────────────────────
94
+
95
+ export async function fetchMarketOverview(): Promise<string> {
96
+ const zai = await ZAI.create();
97
+ try {
98
+ const completion = await zai.chat.completions.create({
99
+ messages: [{
100
+ role: "user",
101
+ content: `请获取今日 A股大盘数据,Markdown 输出,包含:
102
+ - 上证/深证/创业板/科创50 最新点位和涨跌幅
103
+ - 今日上涨/下跌/涨停/跌停家数,成交额
104
+ - 领涨板块 TOP3 和领跌板块 TOP3
105
+ - 北向资金净流入
106
+ - 一句话后市展望和仓位策略
107
+ 控制在200字以内。`,
108
+ }],
109
+ thinking: { type: "disabled" },
110
+ });
111
+ return completion.choices[0]?.message?.content ?? "大盘数据获取失败";
112
+ } catch (err: any) {
113
+ return `大盘数据获取失败:${err.message}`;
114
+ }
115
+ }
116
+
117
+ // ── 数据校验 ──────────────────────────────────────────────
118
+
119
+ export function validateStockData(data: StockData): {
120
+ valid: boolean;
121
+ warnings: string[];
122
+ } {
123
+ const warnings: string[] = [];
124
+ if (data.error) return { valid: false, warnings: [`数据获取失败:${data.error}`] };
125
+ if (!data.price) warnings.push("价格数据缺失");
126
+ if (!data.ma5 && !data.ma20) warnings.push("技术面数据缺失");
127
+ if (data.overbought_warning) warnings.push(`⚠️ 乖离率 ${data.bias_pct}% 超过5%,严禁追高`);
128
+ if (!data.roe && !data.pe_ttm) warnings.push("基本面数据不完整");
129
+ return { valid: !!data.price, warnings };
130
+ }