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.
- package/Dockerfile +30 -0
- package/README.md +333 -0
- package/agents/__init__.py +6 -0
- package/agents/__pycache__/main_agent.cpython-312.pyc +0 -0
- package/agents/base.py +115 -0
- package/agents/main_agent.py +695 -0
- package/agents/memory_agent.py +313 -0
- package/agents/tool_agent.py +248 -0
- package/chatbot/__init__.py +5 -0
- package/chatbot/base.py +124 -0
- package/chatbot/discord_bot.py +146 -0
- package/chatbot/feishu_bot.py +548 -0
- package/chatbot/manager.py +164 -0
- package/chatbot/qq_bot.py +189 -0
- package/chatbot/telegram_bot.py +167 -0
- package/chatbot/wechat_bot.py +558 -0
- package/communication/__init__.py +66 -0
- package/communication/channel.py +576 -0
- package/communication/crypto.py +347 -0
- package/communication/manager.py +397 -0
- package/communication/peer.py +156 -0
- package/config.py +464 -0
- package/core/__init__.py +10 -0
- package/core/config_broadcast.py +276 -0
- package/core/llm.py +878 -0
- package/core/logger.py +241 -0
- package/core/task_queue.py +362 -0
- package/core/utils.py +184 -0
- package/executor/__init__.py +4 -0
- package/executor/__pycache__/engine.cpython-312.pyc +0 -0
- package/executor/engine.py +1215 -0
- package/groups/__init__.py +15 -0
- package/groups/manager.py +724 -0
- package/knowledge/__init__.py +4 -0
- package/knowledge/rag.py +444 -0
- package/main.py +801 -0
- package/memory/__init__.py +4 -0
- package/memory/manager.py +840 -0
- package/organization/__init__.py +4 -0
- package/organization/manager.py +350 -0
- package/package.json +58 -0
- package/requirements.txt +59 -0
- package/setup.py +40 -0
- package/skills/ASR/LICENSE.txt +21 -0
- package/skills/ASR/SKILL.md +580 -0
- package/skills/ASR/scripts/asr.ts +27 -0
- package/skills/LLM/LICENSE.txt +21 -0
- package/skills/LLM/SKILL.md +856 -0
- package/skills/LLM/scripts/chat.ts +32 -0
- package/skills/TTS/LICENSE.txt +21 -0
- package/skills/TTS/SKILL.md +735 -0
- package/skills/TTS/tts.ts +25 -0
- package/skills/VLM/LICENSE.txt +21 -0
- package/skills/VLM/SKILL.md +588 -0
- package/skills/VLM/scripts/vlm.ts +57 -0
- package/skills/__init__.py +5 -0
- package/skills/agent-browser/SKILL.md +328 -0
- package/skills/ai-news-collectors/SKILL.md +157 -0
- package/skills/ai-news-collectors/_meta.json +6 -0
- package/skills/ai-news-collectors/references/sources.md +128 -0
- package/skills/aminer-open-academic/SKILL.md +312 -0
- package/skills/aminer-open-academic/_meta.json +6 -0
- package/skills/aminer-open-academic/evals/evals.json +46 -0
- package/skills/aminer-open-academic/references/api-catalog.md +1032 -0
- package/skills/aminer-open-academic/scripts/__pycache__/aminer_client.cpython-312.pyc +0 -0
- package/skills/aminer-open-academic/scripts/aminer_client.py +875 -0
- package/skills/auto-target-tracker/SKILL.md +317 -0
- package/skills/base.py +147 -0
- package/skills/blog-writer/2024-02-17-radical-transparency-sales.md +35 -0
- package/skills/blog-writer/2024-02-17-raycast-spotlight-superpowers.md +33 -0
- package/skills/blog-writer/2024-02-17-short-form-content-marketing.md +47 -0
- package/skills/blog-writer/2024-02-17-typing-speed-benefits.md +33 -0
- package/skills/blog-writer/2024-03-14-effective-ai-prompts.md +55 -0
- package/skills/blog-writer/2024-11-08-ai-revolutionizing-entry-level-sales.md +43 -0
- package/skills/blog-writer/2025-11-12-why-ai-art-is-useless.md +49 -0
- package/skills/blog-writer/README.md +2 -0
- package/skills/blog-writer/SKILL.md +158 -0
- package/skills/blog-writer/__pycache__/manage_examples.cpython-312.pyc +0 -0
- package/skills/blog-writer/_meta.json +6 -0
- package/skills/blog-writer/manage_examples.py +90 -0
- package/skills/blog-writer/style-guide.md +160 -0
- package/skills/browser_skill.py +146 -0
- package/skills/coding-agent/SKILL.md +120 -0
- package/skills/coding-agent/_meta.json +6 -0
- package/skills/coding-agent/criteria.md +48 -0
- package/skills/coding-agent/execution.md +42 -0
- package/skills/coding-agent/memory-template.md +38 -0
- package/skills/coding-agent/planning.md +31 -0
- package/skills/coding-agent/state.md +60 -0
- package/skills/coding-agent/verification.md +39 -0
- package/skills/content-strategy/SKILL.md +181 -0
- package/skills/content-strategy/_meta.json +6 -0
- package/skills/contentanalysis/ExtractWisdom/SKILL.md +229 -0
- package/skills/contentanalysis/ExtractWisdom/Workflows/Extract.md +60 -0
- package/skills/contentanalysis/SKILL.md +14 -0
- package/skills/docx/CHANGELOG.md +85 -0
- package/skills/docx/LICENSE.txt +30 -0
- package/skills/docx/SKILL.md +455 -0
- package/skills/docx/docx-js.md +681 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/docx/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
- package/skills/docx/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
- package/skills/docx/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
- package/skills/docx/ooxml/scripts/pack.py +159 -0
- package/skills/docx/ooxml/scripts/unpack.py +29 -0
- package/skills/docx/ooxml/scripts/validate.py +69 -0
- package/skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/skills/docx/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
- package/skills/docx/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
- package/skills/docx/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
- package/skills/docx/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
- package/skills/docx/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
- package/skills/docx/ooxml/scripts/validation/base.py +951 -0
- package/skills/docx/ooxml/scripts/validation/docx.py +274 -0
- package/skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/skills/docx/ooxml.md +615 -0
- package/skills/docx/scripts/__init__.py +1 -0
- package/skills/docx/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
- package/skills/docx/scripts/__pycache__/add_toc_placeholders.cpython-312.pyc +0 -0
- package/skills/docx/scripts/__pycache__/document.cpython-312.pyc +0 -0
- package/skills/docx/scripts/__pycache__/utilities.cpython-312.pyc +0 -0
- package/skills/docx/scripts/add_toc_placeholders.py +220 -0
- package/skills/docx/scripts/document.py +1302 -0
- package/skills/docx/scripts/templates/comments.xml +3 -0
- package/skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/skills/docx/scripts/templates/people.xml +3 -0
- package/skills/docx/scripts/utilities.py +374 -0
- package/skills/dream-interpreter/SKILL.md +88 -0
- package/skills/dream-interpreter/assets/example_asset.txt +24 -0
- package/skills/dream-interpreter/references/api_reference.md +34 -0
- package/skills/dream-interpreter/references/interpretation-guide.md +83 -0
- package/skills/dream-interpreter/references/output-schema.md +65 -0
- package/skills/dream-interpreter/references/questioning-strategy.md +62 -0
- package/skills/dream-interpreter/references/visual-mapping.md +81 -0
- package/skills/dream-interpreter/scripts/__pycache__/example.cpython-312.pyc +0 -0
- package/skills/dream-interpreter/scripts/example.py +19 -0
- package/skills/dream-interpreter/skill.json +7 -0
- package/skills/file_skill.py +246 -0
- package/skills/finance/Finance_API_Doc.md +445 -0
- package/skills/finance/SKILL.md +53 -0
- package/skills/fullstack-dev/SKILL.md +205 -0
- package/skills/get-fortune-analysis/SKILL.md +370 -0
- package/skills/get-fortune-analysis/lunar_python.py +91 -0
- package/skills/gift-evaluator/SKILL.md +83 -0
- package/skills/gift-evaluator/__pycache__/html_tools.cpython-312.pyc +0 -0
- package/skills/gift-evaluator/html_tools.py +268 -0
- package/skills/image-edit/LICENSE.txt +21 -0
- package/skills/image-edit/SKILL.md +896 -0
- package/skills/image-edit/scripts/image-edit.ts +36 -0
- package/skills/image-generation/LICENSE.txt +21 -0
- package/skills/image-generation/SKILL.md +583 -0
- package/skills/image-generation/scripts/image-generation.ts +28 -0
- package/skills/image-understand/LICENSE.txt +21 -0
- package/skills/image-understand/SKILL.md +855 -0
- package/skills/image-understand/scripts/image-understand.ts +41 -0
- package/skills/interview-designer/README.md +70 -0
- package/skills/interview-designer/SKILL.md +53 -0
- package/skills/interview-designer/_meta.json +6 -0
- package/skills/interview-designer/references/design_rationale.md +43 -0
- package/skills/interview-designer/templates/interview_guide_template.md +62 -0
- package/skills/market-research-reports/SKILL.md +901 -0
- package/skills/market-research-reports/assets/FORMATTING_GUIDE.md +428 -0
- package/skills/market-research-reports/assets/market_report_template.tex +1380 -0
- package/skills/market-research-reports/assets/market_research.sty +564 -0
- package/skills/market-research-reports/references/data_analysis_patterns.md +548 -0
- package/skills/market-research-reports/references/report_structure_guide.md +999 -0
- package/skills/market-research-reports/references/visual_generation_guide.md +1077 -0
- package/skills/market-research-reports/scripts/__pycache__/generate_market_visuals.cpython-312.pyc +0 -0
- package/skills/market-research-reports/scripts/generate_market_visuals.py +529 -0
- package/skills/marketing-mode/README.md +49 -0
- package/skills/marketing-mode/SKILL.md +693 -0
- package/skills/marketing-mode/_meta.json +6 -0
- package/skills/marketing-mode/mode-prompt.md +39 -0
- package/skills/marketing-mode/skill.json +51 -0
- package/skills/mindfulness-meditation/SKILL.md +65 -0
- package/skills/mindfulness-meditation/_meta.json +6 -0
- package/skills/multi-search-engine/CHANGELOG.md +15 -0
- package/skills/multi-search-engine/CHANNELLOG.md +48 -0
- package/skills/multi-search-engine/SKILL.md +78 -0
- package/skills/multi-search-engine/_meta.json +6 -0
- package/skills/multi-search-engine/config.json +14 -0
- package/skills/multi-search-engine/metadata.json +7 -0
- package/skills/multi-search-engine/references/international-search.md +651 -0
- package/skills/pdf/LICENSE.txt +30 -0
- package/skills/pdf/SKILL.md +1534 -0
- package/skills/pdf/forms.md +205 -0
- package/skills/pdf/reference.md +765 -0
- package/skills/pdf/scripts/__pycache__/add_zai_metadata.cpython-312.pyc +0 -0
- package/skills/pdf/scripts/__pycache__/check_bounding_boxes.cpython-312.pyc +0 -0
- package/skills/pdf/scripts/__pycache__/check_bounding_boxes_test.cpython-312.pyc +0 -0
- package/skills/pdf/scripts/__pycache__/check_fillable_fields.cpython-312.pyc +0 -0
- package/skills/pdf/scripts/__pycache__/convert_pdf_to_images.cpython-312.pyc +0 -0
- package/skills/pdf/scripts/__pycache__/create_validation_image.cpython-312.pyc +0 -0
- package/skills/pdf/scripts/__pycache__/extract_form_field_info.cpython-312.pyc +0 -0
- package/skills/pdf/scripts/__pycache__/fill_fillable_fields.cpython-312.pyc +0 -0
- package/skills/pdf/scripts/__pycache__/fill_pdf_form_with_annotations.cpython-312.pyc +0 -0
- package/skills/pdf/scripts/__pycache__/sanitize_code.cpython-312.pyc +0 -0
- package/skills/pdf/scripts/add_zai_metadata.py +172 -0
- package/skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/skills/pdf/scripts/create_validation_image.py +41 -0
- package/skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/skills/pdf/scripts/fill_fillable_fields.py +114 -0
- package/skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/skills/pdf/scripts/sanitize_code.py +110 -0
- package/skills/podcast-generate/LICENSE.txt +21 -0
- package/skills/podcast-generate/SKILL.md +198 -0
- package/skills/podcast-generate/generate.ts +661 -0
- package/skills/podcast-generate/package.json +30 -0
- package/skills/podcast-generate/readme.md +177 -0
- package/skills/podcast-generate/test_data/segments.jsonl +3 -0
- package/skills/podcast-generate/tsconfig.json +26 -0
- package/skills/pptx/LICENSE.txt +30 -0
- package/skills/pptx/SKILL.md +507 -0
- package/skills/pptx/html2pptx.md +625 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/pptx/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
- package/skills/pptx/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
- package/skills/pptx/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
- package/skills/pptx/ooxml/scripts/pack.py +159 -0
- package/skills/pptx/ooxml/scripts/unpack.py +29 -0
- package/skills/pptx/ooxml/scripts/validate.py +69 -0
- package/skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/skills/pptx/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
- package/skills/pptx/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
- package/skills/pptx/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
- package/skills/pptx/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
- package/skills/pptx/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
- package/skills/pptx/ooxml/scripts/validation/base.py +951 -0
- package/skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/skills/pptx/ooxml.md +427 -0
- package/skills/pptx/scripts/__pycache__/inventory.cpython-312.pyc +0 -0
- package/skills/pptx/scripts/__pycache__/inventory.cpython-313.pyc +0 -0
- package/skills/pptx/scripts/__pycache__/rearrange.cpython-312.pyc +0 -0
- package/skills/pptx/scripts/__pycache__/replace.cpython-312.pyc +0 -0
- package/skills/pptx/scripts/__pycache__/thumbnail.cpython-312.pyc +0 -0
- package/skills/pptx/scripts/html2pptx.js +1044 -0
- package/skills/pptx/scripts/inventory.py +1020 -0
- package/skills/pptx/scripts/rearrange.py +231 -0
- package/skills/pptx/scripts/replace.py +385 -0
- package/skills/pptx/scripts/thumbnail.py +450 -0
- package/skills/qingyan-research/SKILL.md +294 -0
- package/skills/qingyan-research/__pycache__/generate_html.cpython-312.pyc +0 -0
- package/skills/qingyan-research/generate_html.py +33 -0
- package/skills/registry.py +344 -0
- package/skills/search_skill.py +228 -0
- package/skills/seo-content-writer/SKILL.md +661 -0
- package/skills/seo-content-writer/_meta.json +6 -0
- package/skills/seo-content-writer/references/content-structure-templates.md +875 -0
- package/skills/seo-content-writer/references/title-formulas.md +339 -0
- package/skills/skill-creator/LICENSE.txt +202 -0
- package/skills/skill-creator/SKILL.md +485 -0
- package/skills/skill-creator/agents/analyzer.md +274 -0
- package/skills/skill-creator/agents/comparator.md +202 -0
- package/skills/skill-creator/agents/grader.md +223 -0
- package/skills/skill-creator/assets/eval_review.html +146 -0
- package/skills/skill-creator/eval-viewer/__pycache__/generate_review.cpython-312.pyc +0 -0
- package/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/skills/skill-creator/references/schemas.md +430 -0
- package/skills/skill-creator/scripts/__init__.py +0 -0
- package/skills/skill-creator/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
- package/skills/skill-creator/scripts/__pycache__/aggregate_benchmark.cpython-312.pyc +0 -0
- package/skills/skill-creator/scripts/__pycache__/generate_report.cpython-312.pyc +0 -0
- package/skills/skill-creator/scripts/__pycache__/improve_description.cpython-312.pyc +0 -0
- package/skills/skill-creator/scripts/__pycache__/package_skill.cpython-312.pyc +0 -0
- package/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-312.pyc +0 -0
- package/skills/skill-creator/scripts/__pycache__/run_eval.cpython-312.pyc +0 -0
- package/skills/skill-creator/scripts/__pycache__/run_loop.cpython-312.pyc +0 -0
- package/skills/skill-creator/scripts/__pycache__/utils.cpython-312.pyc +0 -0
- package/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/skills/skill-creator/scripts/generate_report.py +326 -0
- package/skills/skill-creator/scripts/improve_description.py +236 -0
- package/skills/skill-creator/scripts/package_skill.py +136 -0
- package/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/skills/skill-creator/scripts/run_eval.py +310 -0
- package/skills/skill-creator/scripts/run_loop.py +328 -0
- package/skills/skill-creator/scripts/utils.py +47 -0
- package/skills/skill-finder-cn/SKILL.md +66 -0
- package/skills/skill-finder-cn/_meta.json +6 -0
- package/skills/skill-finder-cn/package.json +5 -0
- package/skills/skill-finder-cn/scripts/search.sh +15 -0
- package/skills/skill-vetter/SKILL.md +137 -0
- package/skills/stock-analysis-skill/SKILL.md +156 -0
- package/skills/stock-analysis-skill/package.json +21 -0
- package/skills/stock-analysis-skill/src/analyzer.ts +264 -0
- package/skills/stock-analysis-skill/src/dataFetcher.ts +130 -0
- package/skills/stock-analysis-skill/src/dividend.ts +226 -0
- package/skills/stock-analysis-skill/src/index.ts +327 -0
- package/skills/stock-analysis-skill/src/rumorScanner.ts +200 -0
- package/skills/stock-analysis-skill/src/types.ts +167 -0
- package/skills/stock-analysis-skill/src/watchlist.ts +292 -0
- package/skills/stock-analysis-skill/tsconfig.json +15 -0
- package/skills/storyboard-manager/SKILL.md +532 -0
- package/skills/storyboard-manager/index.js +9 -0
- package/skills/storyboard-manager/package.json +11 -0
- package/skills/storyboard-manager/references/character_development.md +232 -0
- package/skills/storyboard-manager/references/story_structures.md +148 -0
- package/skills/storyboard-manager/scripts/__pycache__/consistency_checker.cpython-312.pyc +0 -0
- package/skills/storyboard-manager/scripts/__pycache__/timeline_tracker.cpython-312.pyc +0 -0
- package/skills/storyboard-manager/scripts/consistency_checker.py +391 -0
- package/skills/storyboard-manager/scripts/timeline_tracker.py +352 -0
- package/skills/system_skill.py +249 -0
- package/skills/ui-ux-pro-max/SKILL.md +43 -0
- package/skills/ui-ux-pro-max/_meta.json +6 -0
- package/skills/ui-ux-pro-max/assets/data/charts.csv +26 -0
- package/skills/ui-ux-pro-max/assets/data/colors.csv +97 -0
- package/skills/ui-ux-pro-max/assets/data/icons.csv +101 -0
- package/skills/ui-ux-pro-max/assets/data/landing.csv +31 -0
- package/skills/ui-ux-pro-max/assets/data/products.csv +97 -0
- package/skills/ui-ux-pro-max/assets/data/react-performance.csv +45 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/astro.csv +54 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/flutter.csv +53 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/html-tailwind.csv +56 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/jetpack-compose.csv +53 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/nextjs.csv +53 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/nuxt-ui.csv +51 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/nuxtjs.csv +59 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/react-native.csv +52 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/react.csv +54 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/shadcn.csv +61 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/svelte.csv +54 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/swiftui.csv +51 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/vue.csv +50 -0
- package/skills/ui-ux-pro-max/assets/data/styles.csv +68 -0
- package/skills/ui-ux-pro-max/assets/data/typography.csv +58 -0
- package/skills/ui-ux-pro-max/assets/data/ui-reasoning.csv +101 -0
- package/skills/ui-ux-pro-max/assets/data/ux-guidelines.csv +100 -0
- package/skills/ui-ux-pro-max/assets/data/web-interface.csv +31 -0
- package/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/skills/ui-ux-pro-max/data/icons.csv +101 -0
- package/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/skills/ui-ux-pro-max/data/styles.csv +68 -0
- package/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/skills/ui-ux-pro-max/references/upstream-README.md +488 -0
- package/skills/ui-ux-pro-max/references/upstream-skill-content.md +288 -0
- package/skills/ui-ux-pro-max/scripts/__init__.py +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/search.cpython-312.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/core.py +253 -0
- package/skills/ui-ux-pro-max/scripts/design_system.py +1071 -0
- package/skills/ui-ux-pro-max/scripts/search.py +111 -0
- package/skills/video-generation/LICENSE.txt +21 -0
- package/skills/video-generation/SKILL.md +1082 -0
- package/skills/video-generation/scripts/video.ts +168 -0
- package/skills/video-understand/LICENSE.txt +21 -0
- package/skills/video-understand/SKILL.md +916 -0
- package/skills/video-understand/scripts/video-understand.ts +41 -0
- package/skills/visual-design-foundations/SKILL.md +318 -0
- package/skills/visual-design-foundations/references/color-systems.md +417 -0
- package/skills/visual-design-foundations/references/spacing-iconography.md +425 -0
- package/skills/visual-design-foundations/references/typography-systems.md +432 -0
- package/skills/web-reader/LICENSE.txt +21 -0
- package/skills/web-reader/SKILL.md +1140 -0
- package/skills/web-reader/scripts/web-reader.ts +37 -0
- package/skills/web-search/LICENSE.txt +21 -0
- package/skills/web-search/SKILL.md +912 -0
- package/skills/web-search/scripts/web_search.ts +44 -0
- package/skills/web-shader-extractor/SKILL.md +145 -0
- package/skills/web-shader-extractor/references/config-extraction.md +50 -0
- package/skills/web-shader-extractor/references/encoded-definitions.md +53 -0
- package/skills/web-shader-extractor/references/extraction-workflow.md +61 -0
- package/skills/web-shader-extractor/references/porting-strategy.md +164 -0
- package/skills/web-shader-extractor/references/shader-injection.md +126 -0
- package/skills/web-shader-extractor/references/shaders-com.md +190 -0
- package/skills/web-shader-extractor/references/tech-signatures.md +54 -0
- package/skills/web-shader-extractor/references/tsl-extraction.md +41 -0
- package/skills/web-shader-extractor/references/unicorn-studio.md +353 -0
- package/skills/web-shader-extractor/scripts/fetch-rendered-dom.mjs +153 -0
- package/skills/web-shader-extractor/scripts/scan-bundle.sh +76 -0
- package/skills/writing-plans/SKILL.md +116 -0
- package/skills/writing-plans/_meta.json +6 -0
- package/skills/xlsx/LICENSE.txt +30 -0
- package/skills/xlsx/SKILL.md +496 -0
- package/skills/xlsx/__pycache__/recalc.cpython-312.pyc +0 -0
- package/skills/xlsx/recalc.py +178 -0
- package/start.sh +36 -0
- package/web/__init__.py +1 -0
- package/web/__pycache__/api_server.cpython-312.pyc +0 -0
- package/web/api_server.py +2043 -0
- package/web/ui/chat.html +3235 -0
- package/web/ui/index.html +458 -0
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: get-fortune-analysis
|
|
3
|
+
description: 生成视觉华丽、内容详实、具有仪式感的流年运势报告(流金星象风格)。
|
|
4
|
+
---
|
|
5
|
+
# Skill Name: get-fortune-analysis
|
|
6
|
+
# Version: 4.1.0
|
|
7
|
+
# Description: 生成视觉华丽、内容详实、具有仪式感的流年运势报告(流金星象风格)。
|
|
8
|
+
|
|
9
|
+
## 1. Input Parameters
|
|
10
|
+
| Parameter | Type | Description |
|
|
11
|
+
| :--- | :--- | :--- |
|
|
12
|
+
| `birth_year`, `birth_month`, `birth_day`, `birth_hour` | Integer | 用户出生时间 |
|
|
13
|
+
| `focus_type` | String | (可选) "事业", "财运", "情感" |
|
|
14
|
+
|
|
15
|
+
## 2. Workflow
|
|
16
|
+
|
|
17
|
+
### Step 1: Calculation (Python)
|
|
18
|
+
调用 `get_cyber_divination_data` 获取 `bazi` (八字基础) 和 `fortune` (流年十神) 数据。
|
|
19
|
+
|
|
20
|
+
### Step 2: Reasoning (深度分析模式)
|
|
21
|
+
基于 `bazi` 和 `fortune` 进行多维度推理。
|
|
22
|
+
**文案要求:**
|
|
23
|
+
* **口吻**:温暖、笃定、专业,类似资深命理师或星座专家的语气。
|
|
24
|
+
* **结构**:
|
|
25
|
+
1. **年度关键词**:4个字,精准概括全年基调(如“破茧成蝶”)。
|
|
26
|
+
2. **核心能量**:解释流年十神对用户命局的深层影响(30-50字)。
|
|
27
|
+
3. **事业/财运**:具体的职场发展路径和财富机遇分析(50-80字)。
|
|
28
|
+
4. **情感/人际**:人际关系模式与情感走向分析(50-80字)。
|
|
29
|
+
|
|
30
|
+
### Step 3: JSON Output
|
|
31
|
+
生成适配前端的 JSON 数据。
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"fortune_report": {
|
|
36
|
+
"score": 88,
|
|
37
|
+
"keyword": "灵感迸发 · 贵人引路",
|
|
38
|
+
"user_tag": "丁火 (身弱)",
|
|
39
|
+
"stars": {
|
|
40
|
+
"c": "★★★★☆",
|
|
41
|
+
"w": "★★★☆☆",
|
|
42
|
+
"l": "★★★★★"
|
|
43
|
+
},
|
|
44
|
+
"analysis": {
|
|
45
|
+
"overview": "2026 丙午流年,火气旺盛,对你而言是充满灵性与机遇的一年。虽然竞争压力(比劫)增大,但也激活了你命局中的‘印星’能量。这意味着今年你的直觉力、学习力将达到巅峰,是沉淀自我、弯道超车的最佳时机。",
|
|
46
|
+
"career": "今年不适合盲目扩张,适合‘深耕’。职场上会遇到强有力的女性贵人或资深导师,给你带来关键性的指点。若从事创意、咨询、教育行业,今年极易出成果。切记:多听少说,以柔克刚。",
|
|
47
|
+
"love": "情感方面,桃花星悄然绽放。单身者极易在学习场所、图书馆或艺术展上邂逅精神契合的伴侣;有伴侣者,今年是进行深度沟通、解决历史遗留问题的破冰之年,关系将升华到精神层面。"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}```
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
### 2. 前端展示代码 (`result_card.html`)
|
|
54
|
+
|
|
55
|
+
*修改点:在首页(`ritual-layer`)增加了动态生成漂浮二进制代码的逻辑。代码粒子是半透明的金色/白色,缓慢上升并消散,营造神秘的数据空间感。*
|
|
56
|
+
|
|
57
|
+
```html
|
|
58
|
+
<!DOCTYPE html>
|
|
59
|
+
<html lang="zh-CN">
|
|
60
|
+
<head>
|
|
61
|
+
<meta charset="UTF-8">
|
|
62
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
63
|
+
<title>2026 流年运势书</title>
|
|
64
|
+
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Noto+Serif+SC:wght@400;700&display=swap" rel="stylesheet">
|
|
65
|
+
<style>
|
|
66
|
+
:root {
|
|
67
|
+
--bg-deep: #1a0b2e;
|
|
68
|
+
--bg-gradient: radial-gradient(circle at 50% 0%, #431d69 0%, #1a0b2e 80%);
|
|
69
|
+
--gold-light: #fcf6ba;
|
|
70
|
+
--gold-dark: #bf953f;
|
|
71
|
+
--gold-gradient: linear-gradient(to bottom, #fcf6ba, #bf953f);
|
|
72
|
+
--glass-bg: rgba(255, 255, 255, 0.08);
|
|
73
|
+
--card-border: rgba(255, 255, 255, 0.15);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
body {
|
|
77
|
+
background: var(--bg-deep);
|
|
78
|
+
background-image: var(--bg-gradient);
|
|
79
|
+
color: #fff;
|
|
80
|
+
font-family: 'Noto Serif SC', serif;
|
|
81
|
+
margin: 0;
|
|
82
|
+
min-height: 100vh;
|
|
83
|
+
display: flex;
|
|
84
|
+
justify-content: center;
|
|
85
|
+
overflow-x: hidden;
|
|
86
|
+
font-weight: 300;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.app-container {
|
|
90
|
+
width: 100%;
|
|
91
|
+
max-width: 414px;
|
|
92
|
+
position: relative;
|
|
93
|
+
min-height: 100vh;
|
|
94
|
+
overflow: hidden;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/* --- 1. 启动页 (Ritual Layer) --- */
|
|
98
|
+
.ritual-layer {
|
|
99
|
+
position: absolute;
|
|
100
|
+
top: 0; left: 0; width: 100%; height: 100%;
|
|
101
|
+
z-index: 100;
|
|
102
|
+
background: var(--bg-deep);
|
|
103
|
+
background-image: var(--bg-gradient);
|
|
104
|
+
display: flex;
|
|
105
|
+
flex-direction: column;
|
|
106
|
+
align-items: center;
|
|
107
|
+
justify-content: center;
|
|
108
|
+
transition: opacity 0.8s ease;
|
|
109
|
+
overflow: hidden;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/* 新增:二进制数据容器 */
|
|
113
|
+
.binary-container {
|
|
114
|
+
position: absolute;
|
|
115
|
+
top: 0; left: 0; width: 100%; height: 100%;
|
|
116
|
+
pointer-events: none;
|
|
117
|
+
z-index: 0; /* 在最底层 */
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* 新增:二进制粒子样式 */
|
|
121
|
+
.binary-particle {
|
|
122
|
+
position: absolute;
|
|
123
|
+
bottom: -20px;
|
|
124
|
+
font-family: 'Courier New', monospace;
|
|
125
|
+
color: rgba(252, 246, 186, 0.3); /* 微弱的金白色 */
|
|
126
|
+
font-size: 10px;
|
|
127
|
+
user-select: none;
|
|
128
|
+
animation: floatUp linear forwards;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/* 启动页内容容器 (确保在粒子之上) */
|
|
132
|
+
.ritual-content {
|
|
133
|
+
position: relative;
|
|
134
|
+
z-index: 10;
|
|
135
|
+
display: flex;
|
|
136
|
+
flex-direction: column;
|
|
137
|
+
align-items: center;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.fingerprint-area {
|
|
141
|
+
width: 100px; height: 100px;
|
|
142
|
+
border: 2px solid rgba(191, 149, 63, 0.3);
|
|
143
|
+
border-radius: 50%;
|
|
144
|
+
display: flex; align-items: center; justify-content: center;
|
|
145
|
+
position: relative; cursor: pointer;
|
|
146
|
+
margin-bottom: 20px;
|
|
147
|
+
backdrop-filter: blur(2px); /* 轻微磨砂,突出按钮 */
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.fingerprint-area::after {
|
|
151
|
+
content: ''; position: absolute; width: 100%; height: 100%;
|
|
152
|
+
border-radius: 50%;
|
|
153
|
+
box-shadow: 0 0 30px var(--gold-dark);
|
|
154
|
+
opacity: 0; animation: breathe 2s infinite;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.fingerprint-icon {
|
|
158
|
+
font-size: 40px; color: var(--gold-dark); transition: color 0.3s;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.hint-text {
|
|
162
|
+
color: rgba(255,255,255,0.6); font-size: 14px; letter-spacing: 2px;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/* --- 2. 结果页 (Result Layer) --- */
|
|
166
|
+
/* ... (保持不变) ... */
|
|
167
|
+
.result-layer {
|
|
168
|
+
padding: 20px; opacity: 0; transform: translateY(20px);
|
|
169
|
+
transition: all 0.8s ease; display: none;
|
|
170
|
+
}
|
|
171
|
+
.header-card { text-align: center; margin-bottom: 30px; position: relative; }
|
|
172
|
+
.year-title { font-family: 'Playfair Display', serif; font-size: 16px; color: rgba(255,255,255,0.7); letter-spacing: 4px; margin-bottom: 5px; }
|
|
173
|
+
.score-box { font-size: 72px; font-weight: 700; background: var(--gold-gradient); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin: 10px 0; text-shadow: 0 0 30px rgba(191, 149, 63, 0.4); }
|
|
174
|
+
.keyword-badge { display: inline-block; border: 1px solid var(--gold-dark); color: var(--gold-light); padding: 4px 12px; border-radius: 20px; font-size: 14px; background: rgba(0,0,0,0.3); }
|
|
175
|
+
.detail-card { background: var(--glass-bg); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid var(--card-border); border-radius: 16px; padding: 24px; margin-bottom: 20px; box-shadow: 0 10px 30px rgba(0,0,0,0.2); }
|
|
176
|
+
.section-title { display: flex; align-items: center; color: var(--gold-light); font-size: 16px; font-weight: bold; margin-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 8px; }
|
|
177
|
+
.section-title span { margin-right: 8px; }
|
|
178
|
+
.text-content { font-size: 14px; line-height: 1.8; color: rgba(255,255,255,0.9); text-align: justify; }
|
|
179
|
+
.star-row { display: flex; justify-content: space-between; margin-bottom: 10px; font-size: 14px; }
|
|
180
|
+
.stars { color: var(--gold-dark); letter-spacing: 2px; }
|
|
181
|
+
.footer-share { text-align: center; font-size: 12px; color: rgba(255,255,255,0.4); margin-top: 30px; padding-bottom: 30px; }
|
|
182
|
+
|
|
183
|
+
/* 动画 Keyframes */
|
|
184
|
+
@keyframes breathe {
|
|
185
|
+
0% { opacity: 0.3; transform: scale(1); }
|
|
186
|
+
50% { opacity: 0.8; transform: scale(1.1); }
|
|
187
|
+
100% { opacity: 0.3; transform: scale(1); }
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/* 新增:粒子上浮动画 */
|
|
191
|
+
@keyframes floatUp {
|
|
192
|
+
0% { transform: translateY(0) rotate(0deg); opacity: 0; }
|
|
193
|
+
20% { opacity: 0.5; }
|
|
194
|
+
80% { opacity: 0.2; }
|
|
195
|
+
100% { transform: translateY(-120vh) rotate(20deg); opacity: 0; }
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
</style>
|
|
199
|
+
</head>
|
|
200
|
+
<body>
|
|
201
|
+
|
|
202
|
+
<div class="app-container">
|
|
203
|
+
|
|
204
|
+
<div class="ritual-layer" id="ritualLayer">
|
|
205
|
+
<div class="binary-container" id="binaryContainer"></div>
|
|
206
|
+
|
|
207
|
+
<div class="ritual-content">
|
|
208
|
+
<div style="margin-bottom: 40px; opacity: 0.7;">
|
|
209
|
+
<svg width="60" height="60" viewBox="0 0 24 24" fill="none" stroke="#bf953f" stroke-width="1">
|
|
210
|
+
<circle cx="12" cy="12" r="10"></circle>
|
|
211
|
+
<path d="M12 2a15 15 0 0 0 0 30 15 15 0 0 0 0-30"></path>
|
|
212
|
+
<path d="M2 12h20"></path>
|
|
213
|
+
</svg>
|
|
214
|
+
</div>
|
|
215
|
+
|
|
216
|
+
<div class="fingerprint-area" id="fingerBtn">
|
|
217
|
+
<div class="fingerprint-icon">
|
|
218
|
+
<svg width="50" height="50" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
|
|
219
|
+
<path d="M2 12C2 6.48 6.48 2 12 2s10 4.48 10 10v1c0 2.21-1.79 4-4 4s-4-1.79-4-4V7c0-1.66-1.34-3-3-3S8 5.34 8 7v6c0 1.1.9 2 2 2s2-.9 2-2V7"></path>
|
|
220
|
+
</svg>
|
|
221
|
+
</div>
|
|
222
|
+
</div>
|
|
223
|
+
<div class="hint-text">长按开启 2026 运势书</div>
|
|
224
|
+
</div>
|
|
225
|
+
</div>
|
|
226
|
+
|
|
227
|
+
<div class="result-layer" id="resultLayer">
|
|
228
|
+
<div class="header-card">
|
|
229
|
+
<div class="year-title">FORTUNE REPORT 2026</div>
|
|
230
|
+
<div class="score-box" id="scoreVal">0</div>
|
|
231
|
+
<div class="keyword-badge" id="mainKeyword">读取中...</div>
|
|
232
|
+
<div style="font-size: 12px; color:rgba(255,255,255,0.5); margin-top: 10px;">
|
|
233
|
+
日主:<span id="userTag">--</span>
|
|
234
|
+
</div>
|
|
235
|
+
</div>
|
|
236
|
+
<div class="detail-card">
|
|
237
|
+
<div class="star-row"><span>事业前程 Career</span><span class="stars" id="careerStars">★★★★☆</span></div>
|
|
238
|
+
<div class="star-row"><span>财富机缘 Wealth</span><span class="stars" id="wealthStars">★★★☆☆</span></div>
|
|
239
|
+
<div class="star-row"><span>情感关系 Love</span><span class="stars" id="loveStars">★★★★★</span></div>
|
|
240
|
+
</div>
|
|
241
|
+
<div class="detail-card">
|
|
242
|
+
<div class="section-title"><span>✦</span> 年度总批 Overview</div>
|
|
243
|
+
<div class="text-content" id="overviewText">正在解析星盘数据...</div>
|
|
244
|
+
</div>
|
|
245
|
+
<div class="detail-card">
|
|
246
|
+
<div class="section-title"><span>⚔</span> 事业与财富</div>
|
|
247
|
+
<div class="text-content" id="careerText">...</div>
|
|
248
|
+
</div>
|
|
249
|
+
<div class="detail-card">
|
|
250
|
+
<div class="section-title"><span>♥</span> 情感与建议</div>
|
|
251
|
+
<div class="text-content" id="loveText">...</div>
|
|
252
|
+
</div>
|
|
253
|
+
<div class="footer-share">Mystic AI Lab © 2026</div>
|
|
254
|
+
</div>
|
|
255
|
+
</div>
|
|
256
|
+
|
|
257
|
+
<script>
|
|
258
|
+
// --- 模拟 AI 返回的数据 ---
|
|
259
|
+
const aiData = {
|
|
260
|
+
"fortune_report": {
|
|
261
|
+
"score": 88,
|
|
262
|
+
"keyword": "灵感迸发 · 贵人引路",
|
|
263
|
+
"user_tag": "丁火 (身弱)",
|
|
264
|
+
"stars": { "c": "★★★★☆", "w": "★★★☆☆", "l": "★★★★★" },
|
|
265
|
+
"analysis": {
|
|
266
|
+
"overview": "2026 丙午流年,对你而言是充满灵性与机遇的一年。虽然流年火旺带来了竞争压力,但也激活了你命局中的‘印星’能量。这意味着今年你的直觉力、学习力将达到巅峰,是沉淀自我、弯道超车的最佳时机。",
|
|
267
|
+
"career": "今年不适合盲目扩张,适合‘深耕’。职场上会遇到强有力的女性贵人或资深导师,给你带来关键性的指点。若从事创意、咨询、教育行业,今年极易出成果。",
|
|
268
|
+
"love": "情感方面,桃花星悄然绽放。单身者极易在学习场所、图书馆或艺术展上邂逅精神契合的伴侣;有伴侣者,今年是进行深度沟通、解决历史遗留问题的破冰之年。"
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
// --- 二进制粒子效果 ---
|
|
274
|
+
const binaryContainer = document.getElementById('binaryContainer');
|
|
275
|
+
let particleInterval;
|
|
276
|
+
|
|
277
|
+
function createBinaryParticle() {
|
|
278
|
+
const particle = document.createElement('div');
|
|
279
|
+
particle.classList.add('binary-particle');
|
|
280
|
+
// 随机生成 01 字符串
|
|
281
|
+
const len = Math.floor(Math.random() * 6) + 2;
|
|
282
|
+
let text = "";
|
|
283
|
+
for(let i=0; i<len; i++) text += Math.random() > 0.5 ? "1" : "0";
|
|
284
|
+
particle.innerText = text;
|
|
285
|
+
|
|
286
|
+
// 随机位置和属性
|
|
287
|
+
particle.style.left = Math.random() * 100 + '%';
|
|
288
|
+
const duration = Math.random() * 10 + 8; // 8-18秒飘动时间
|
|
289
|
+
particle.style.animationDuration = duration + 's';
|
|
290
|
+
particle.style.fontSize = (Math.random() * 8 + 8) + 'px';
|
|
291
|
+
particle.style.opacity = Math.random() * 0.3 + 0.1;
|
|
292
|
+
|
|
293
|
+
binaryContainer.appendChild(particle);
|
|
294
|
+
|
|
295
|
+
// 动画结束后移除
|
|
296
|
+
setTimeout(() => {
|
|
297
|
+
particle.remove();
|
|
298
|
+
}, duration * 1000);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
// 开始生成粒子
|
|
302
|
+
function startBinaryRain() {
|
|
303
|
+
// 初始先生成一批
|
|
304
|
+
for(let i=0; i<15; i++) createBinaryParticle();
|
|
305
|
+
// 然后定期生成
|
|
306
|
+
particleInterval = setInterval(createBinaryParticle, 600);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
function stopBinaryRain() {
|
|
310
|
+
clearInterval(particleInterval);
|
|
311
|
+
// 可选:渐隐清除现有粒子
|
|
312
|
+
// binaryContainer.style.opacity = 0;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
// --- 交互逻辑 ---
|
|
317
|
+
const btn = document.getElementById('fingerBtn');
|
|
318
|
+
const ritual = document.getElementById('ritualLayer');
|
|
319
|
+
const result = document.getElementById('resultLayer');
|
|
320
|
+
let pressTimer;
|
|
321
|
+
|
|
322
|
+
btn.addEventListener('touchstart', startRitual, {passive: false});
|
|
323
|
+
btn.addEventListener('mousedown', startRitual);
|
|
324
|
+
btn.addEventListener('touchend', endRitual);
|
|
325
|
+
btn.addEventListener('mouseup', endRitual);
|
|
326
|
+
btn.addEventListener('mouseleave', endRitual);
|
|
327
|
+
|
|
328
|
+
function startRitual(e) {
|
|
329
|
+
e.preventDefault();
|
|
330
|
+
btn.style.transform = "scale(0.95)";
|
|
331
|
+
btn.style.borderColor = "#fff";
|
|
332
|
+
document.querySelector('.fingerprint-icon').style.color = "#fff";
|
|
333
|
+
pressTimer = setTimeout(revealResult, 1500);
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
function endRitual() {
|
|
337
|
+
clearTimeout(pressTimer);
|
|
338
|
+
btn.style.transform = "scale(1)";
|
|
339
|
+
btn.style.borderColor = "rgba(191, 149, 63, 0.3)";
|
|
340
|
+
document.querySelector('.fingerprint-icon').style.color = "#bf953f";
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
function revealResult() {
|
|
344
|
+
stopBinaryRain(); // 停止生成粒子
|
|
345
|
+
ritual.style.opacity = '0';
|
|
346
|
+
setTimeout(() => {
|
|
347
|
+
ritual.style.display = 'none';
|
|
348
|
+
result.style.display = 'block';
|
|
349
|
+
requestAnimationFrame(() => {
|
|
350
|
+
result.style.opacity = '1';
|
|
351
|
+
result.style.transform = 'translateY(0)';
|
|
352
|
+
runNumberAnimation();
|
|
353
|
+
});
|
|
354
|
+
}, 800);
|
|
355
|
+
// 填充数据(省略详细代码,与上版相同)...
|
|
356
|
+
document.getElementById('mainKeyword').innerText = aiData.fortune_report.keyword;
|
|
357
|
+
document.getElementById('userTag').innerText = aiData.fortune_report.user_tag;
|
|
358
|
+
document.getElementById('overviewText').innerText = aiData.fortune_report.analysis.overview;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
function runNumberAnimation() { /* (省略,与上版相同) */
|
|
362
|
+
document.getElementById('scoreVal').innerText = aiData.fortune_report.score;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
// 页面加载后启动特效
|
|
366
|
+
startBinaryRain();
|
|
367
|
+
|
|
368
|
+
</script>
|
|
369
|
+
</body>
|
|
370
|
+
</html>
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
pip install lunar_python
|
|
2
|
+
import datetime
|
|
3
|
+
from lunar_python import Lunar, Solar
|
|
4
|
+
|
|
5
|
+
def get_cyber_divination_data(birth_year, birth_month, birth_day, birth_hour=0, birth_minute=0):
|
|
6
|
+
"""
|
|
7
|
+
赛博算命核心算法 v2.1
|
|
8
|
+
- 输出适配 HTML 前端渲染
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
# --- 基础配置 (简化版) ---
|
|
12
|
+
GAN_WU_XING = {"甲": "木", "乙": "木", "丙": "火", "丁": "火", "戊": "土", "己": "土", "庚": "金", "辛": "金", "壬": "水", "癸": "水"}
|
|
13
|
+
ZHI_WU_XING = {"子": "水", "丑": "土", "寅": "木", "卯": "木", "辰": "土", "巳": "火", "午": "火", "未": "土", "申": "金", "酉": "金", "戌": "土", "亥": "水"}
|
|
14
|
+
RELATIONSHIP = {
|
|
15
|
+
"木": {"木": "同", "火": "生", "土": "克", "金": "被克", "水": "被生"},
|
|
16
|
+
"火": {"木": "被生", "火": "同", "土": "生", "金": "克", "水": "被克"},
|
|
17
|
+
"土": {"木": "被克", "火": "被生", "土": "同", "金": "生", "水": "克"},
|
|
18
|
+
"金": {"木": "克", "火": "被克", "土": "被生", "金": "同", "水": "生"},
|
|
19
|
+
"水": {"木": "生", "火": "克", "土": "被克", "金": "被生", "水": "同"}
|
|
20
|
+
}
|
|
21
|
+
TEN_GODS = {
|
|
22
|
+
"同_同": "比肩 (Friend)", "异_同": "劫财 (Rob)",
|
|
23
|
+
"同_生": "食神 (Artist)", "异_生": "伤官 (Rebel)",
|
|
24
|
+
"同_克": "偏财 (Windfall)", "异_克": "正财 (Salary)",
|
|
25
|
+
"同_被克": "七杀 (7-Killings)", "异_被克": "正官 (Officer)",
|
|
26
|
+
"同_被生": "偏印 (Owl)", "异_被生": "正印 (Seal)"
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
# --- 1. 排盘 ---
|
|
30
|
+
solar = Solar.fromYmdHms(birth_year, birth_month, birth_day, birth_hour, birth_minute, 0)
|
|
31
|
+
lunar = Lunar.fromSolar(solar)
|
|
32
|
+
ba_zi = lunar.getEightChar()
|
|
33
|
+
day_master = ba_zi.getDayGan()
|
|
34
|
+
dm_element = GAN_WU_XING[day_master]
|
|
35
|
+
dm_yin_yang = "阳" if day_master in ["甲", "丙", "戊", "庚", "壬"] else "阴"
|
|
36
|
+
|
|
37
|
+
# --- 2. 辅助函数 ---
|
|
38
|
+
def get_ten_god(target_gan):
|
|
39
|
+
if not target_gan: return ""
|
|
40
|
+
target_element = GAN_WU_XING.get(target_gan) or ZHI_WU_XING.get(target_gan)
|
|
41
|
+
rel = RELATIONSHIP[dm_element].get(target_element, "同")
|
|
42
|
+
|
|
43
|
+
# 简化阴阳判定
|
|
44
|
+
target_yy = "阳" if target_gan in ["甲", "丙", "戊", "庚", "壬", "寅", "申", "巳", "亥"] else "阴"
|
|
45
|
+
is_same = (dm_yin_yang == target_yy)
|
|
46
|
+
key = f"{'同' if is_same else '异'}_{rel if rel in ['生','克','被生','被克'] else '同'}"
|
|
47
|
+
return TEN_GODS.get(key, "未知")
|
|
48
|
+
|
|
49
|
+
# --- 3. 旺衰硬规则 ---
|
|
50
|
+
score = 0
|
|
51
|
+
month_zhi = ba_zi.getMonthZhi()
|
|
52
|
+
m_ele = ZHI_WU_XING[month_zhi]
|
|
53
|
+
|
|
54
|
+
# 得令 (+40)
|
|
55
|
+
if RELATIONSHIP[dm_element][m_ele] in ["同", "被生"]: score += 40
|
|
56
|
+
elif RELATIONSHIP[dm_element][m_ele] == "被克": score -= 20
|
|
57
|
+
|
|
58
|
+
# 得地 (+15/each)
|
|
59
|
+
for zhi in [ba_zi.getYearZhi(), ba_zi.getDayZhi(), ba_zi.getTimeZhi()]:
|
|
60
|
+
if ZHI_WU_XING[zhi] == dm_element: score += 15
|
|
61
|
+
|
|
62
|
+
body_strength = "身强 (Strong)" if score >= 40 else "身弱 (Weak)"
|
|
63
|
+
strength_cn = "身强" if score >= 40 else "身弱"
|
|
64
|
+
|
|
65
|
+
# --- 4. 流年 ---
|
|
66
|
+
current_year = datetime.datetime.now().year
|
|
67
|
+
# 简单的流年计算 (以立春为界需要更复杂逻辑,这里简化取当年农历年干支)
|
|
68
|
+
# 修正:直接用 Lunar 获取当年的干支
|
|
69
|
+
current_lunar = Lunar.fromYmd(current_year, 6, 1)
|
|
70
|
+
annual_gan = current_lunar.getYearGan()
|
|
71
|
+
annual_zhi = current_lunar.getYearZhi()
|
|
72
|
+
|
|
73
|
+
annual_god = get_ten_god(annual_gan)
|
|
74
|
+
|
|
75
|
+
return {
|
|
76
|
+
"meta": {
|
|
77
|
+
"solar_date": f"{birth_year}-{birth_month}-{birth_day}",
|
|
78
|
+
"lunar_date": f"{lunar.getYearInChinese()}年{lunar.getMonthInChinese()}月{lunar.getDayInChinese()}"
|
|
79
|
+
},
|
|
80
|
+
"bazi": {
|
|
81
|
+
"day_master": day_master,
|
|
82
|
+
"element": dm_element,
|
|
83
|
+
"strength": strength_cn,
|
|
84
|
+
"score": score
|
|
85
|
+
},
|
|
86
|
+
"fortune": {
|
|
87
|
+
"current_year": f"{current_year} ({annual_gan}{annual_zhi})",
|
|
88
|
+
"year_god": annual_god.split(" ")[0], # 只取中文名,如 "七杀"
|
|
89
|
+
"lucky_direction": lunar.getDayPositionCaiDesc() # 财神方位
|
|
90
|
+
}
|
|
91
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gift-evaluator
|
|
3
|
+
description: The PRIMARY tool for Spring Festival gift analysis and social interaction generation. Use this skill when users upload photos of gifts (alcohol, tea, supplements, etc.) to inquire about their value, authenticity, or how to respond socially. Integrates visual perception, market valuation, and HTML card generation.
|
|
4
|
+
license: Internal Tool
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This skill transforms the assistant into an "AI Gift Appraiser" (春节礼品鉴定师). It bridges the gap between raw visual data and complex social context. It is designed to handle the full lifecycle of a user's request: identifying the object, determining its market and social value, and producing a shareable, gamified HTML artifact.
|
|
8
|
+
|
|
9
|
+
## Agent Thinking Strategy
|
|
10
|
+
|
|
11
|
+
Before and during the execution of tools, maintain a "High EQ" and "Market-Savvy" mindset. You are not just identifying objects; you are decoding social relationships.
|
|
12
|
+
|
|
13
|
+
1. **Visual Extraction (The Eye)**:
|
|
14
|
+
* Call the vision tool to get a raw description.
|
|
15
|
+
* **CRITICAL**: Read the raw description carefully. Extract specific entities: Brand names (e.g., "Moutai", "Dior"), Vintages, Packaging details (e.g., "Dusty bottle" implies old stock, "Gift box" implies formality).
|
|
16
|
+
|
|
17
|
+
2. **Valuation Logic (The Brain)**:
|
|
18
|
+
* **Price Anchoring**: Use search tools to find the *current* market price.
|
|
19
|
+
* **Social Labeling**: Classify the gift based on price and intent:
|
|
20
|
+
* `luxury`: High value (> ¥1000), "Hard Currency".
|
|
21
|
+
* `standard`: Festive, safe choices (¥200 - ¥1000).
|
|
22
|
+
* `budget`: Practical, funny, or cheap (< ¥200).
|
|
23
|
+
|
|
24
|
+
3. **Creative Synthesis (The Mouth)**:
|
|
25
|
+
* **Deep Critique**: Generate a "Roast" (毒舌点评) of **at least 50 words**. It must combine the visual details (e.g., dust, packaging color) with the price reality. Be spicy but insightful.
|
|
26
|
+
* **Structured Strategy**: You must structure the "Thank You Notes" and "Return Gift Ideas" into JSON format for the UI to render.
|
|
27
|
+
|
|
28
|
+
## Tool Usage Guidelines
|
|
29
|
+
### 1. The Perception Phase (Visual Analysis)
|
|
30
|
+
Purpose: Utilizing VLM skills to conduct a multi-dimensional visual decomposition of the uploaded product image. This process automatically identifies and extracts structured data including Brand Recognition, Product Style, Packaging Design, and Aesthetic Category.
|
|
31
|
+
|
|
32
|
+
**Output Analysis**:
|
|
33
|
+
|
|
34
|
+
* The tool returns a raw string content. Read it to extract keywords for the next step.
|
|
35
|
+
|
|
36
|
+
### 2. The Valuation Phase (Search)
|
|
37
|
+
|
|
38
|
+
**Purpose**: Validate the product's worth.
|
|
39
|
+
**Command**:search "EXTRACTED_KEYWORDS + price + review"
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
### 3. The Content Structuring Phase (Reasoning)
|
|
43
|
+
|
|
44
|
+
**Purpose**: Prepare the data for the HTML generator. **Do not call a tool here, just think and format strings.**
|
|
45
|
+
|
|
46
|
+
1. **Construct `thank_you_json**`: Create 3 distinct styles of private messages.
|
|
47
|
+
* *Format*: `[{"style": "Style Name", "content": "Message..."}]`
|
|
48
|
+
* *Requirement*:
|
|
49
|
+
* Style 1: "Decent/Formal" (for elders/bosses).
|
|
50
|
+
* Style 2: "Friendly/Warm" (for peers/relatives).
|
|
51
|
+
* Style 3: "Humorous/Close" (for best friends).
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
2. **Construct `return_gift_json**`: Analyze 4 potential giver personas.
|
|
55
|
+
* *Format*: `[{"target": "If giver is...", "item": "Suggest...", "reason": "Why..."}]`
|
|
56
|
+
* *Requirement*: Suggestions must include Age/Gender/Relation analysis (e.g., "If giver is an elder male", "If giver is a peer female").
|
|
57
|
+
* *Value Logic*: Adhere to the principle of Value Reciprocity. The return gift's value should primarily match the received gift's value, while adjusting slightly based on the giver's status (e.g., seniority or intimacy).
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
### 4. The Creation Phase (Render)
|
|
61
|
+
|
|
62
|
+
**Purpose**: Package the analysis into a modern, interactive HTML card.
|
|
63
|
+
**HTML Generation**:
|
|
64
|
+
* *Constraint*: The `image_url` parameter in the Python command MUST be the original absolute path.`output_path` must be the full path.
|
|
65
|
+
* *Command*:
|
|
66
|
+
```bash
|
|
67
|
+
python3 html_tools.py generate_gift_card \
|
|
68
|
+
--product_name "EXTRACTED_NAME" \
|
|
69
|
+
--price "ESTIMATED_PRICE" \
|
|
70
|
+
--evaluation "YOUR_LONG_AND_SPICY_CRITIQUE" \
|
|
71
|
+
--thank_you_json '[{"style":"...","content":"..."}]' \
|
|
72
|
+
--return_gift_json '[{"target":"...","item":"...","reason":"..."}]' \
|
|
73
|
+
--vibe_code "luxury|standard|budget" \
|
|
74
|
+
--image_url "IMAGE_FILE_PATH" \
|
|
75
|
+
--output_path "TARGET_FILE_PATH"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Operational Rules
|
|
79
|
+
|
|
80
|
+
1. **JSON Formatting**: The `thank_you_json` and `return_gift_json` arguments MUST be valid JSON strings using double quotes. Do not wrap them in code blocks inside the command.
|
|
81
|
+
2. **Critique Depth**: The `evaluation` text must be rich. Don't just say "It's expensive." Say "This 2018 vintage shows your uncle raided his personal cellar; the label wear proves it's real."
|
|
82
|
+
3. **Vibe Consistency**: Ensure `vibe_code` matches the `price` assessment.
|
|
83
|
+
4. **Final Output**: Always present the path to the generated HTML file.
|
|
Binary file
|