myagent-ai 1.25.8 → 1.26.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//"docs/351205215347275256344275277347224250350257264346230216.md/" +0 -0
- package/main.py +7 -4
- package/package.json +1 -1
- package/scripts/cli.py +6 -6
- 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/admin-manager/SKILL.md +560 -0
- package/skills/agent-browser/SKILL.md +328 -0
- package/skills/agent_tool_skill.py +113 -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/aminer_client.py +875 -0
- package/skills/auto-target-tracker/SKILL.md +317 -0
- package/skills/base.py +153 -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/_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 +32 -0
- package/skills/charts/LICENSE.txt +13 -0
- package/skills/charts/SKILL.md +427 -0
- package/skills/charts/references/_rules.md +49 -0
- package/skills/charts/references/d3.md +199 -0
- package/skills/charts/references/echarts.md +651 -0
- package/skills/charts/references/matplotlib.md +617 -0
- package/skills/charts/references/mermaid.md +797 -0
- package/skills/charts/references/mindmap-css.md +911 -0
- package/skills/charts/references/playwright-css.md +801 -0
- package/skills/charts/references/radial-grid.md +576 -0
- package/skills/charts/references/seaborn.md +324 -0
- package/skills/charts/setup.sh +228 -0
- package/skills/chromedev_mcp.py +1669 -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/LICENSE.txt +13 -0
- package/skills/docx/SKILL.md +201 -0
- package/skills/docx/references/chart-templates.md +386 -0
- package/skills/docx/references/common-rules.md +419 -0
- package/skills/docx/references/decorations.md +538 -0
- package/skills/docx/references/design-system.md +1797 -0
- package/skills/docx/references/docx-js-advanced.md +257 -0
- package/skills/docx/references/docx-js-core.md +333 -0
- package/skills/docx/references/faq.md +323 -0
- package/skills/docx/references/math-formulas.md +276 -0
- package/skills/docx/references/ooxml.md +222 -0
- package/skills/docx/references/toc.md +264 -0
- package/skills/docx/routes/comment.md +88 -0
- package/skills/docx/routes/create.md +207 -0
- package/skills/docx/routes/edit.md +115 -0
- package/skills/docx/routes/format.md +120 -0
- package/skills/docx/routes/read.md +114 -0
- package/skills/docx/scenes/academic.md +783 -0
- package/skills/docx/scenes/contract.md +463 -0
- package/skills/docx/scenes/copywriting.md +139 -0
- package/skills/docx/scenes/exam.md +698 -0
- package/skills/docx/scenes/official-doc.md +411 -0
- package/skills/docx/scenes/report.md +340 -0
- package/skills/docx/scenes/resume.md +534 -0
- package/skills/docx/scripts/__init__.py +1 -0
- package/skills/docx/scripts/add_toc_placeholders.py +749 -0
- package/skills/docx/scripts/document.py +1333 -0
- package/skills/docx/scripts/postcheck.py +807 -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/docx/setup.sh +177 -0
- package/skills/docx_skill.py +213 -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/example.py +19 -0
- package/skills/dream-interpreter/skill.json +7 -0
- package/skills/file_send.py +142 -0
- package/skills/file_skill.py +573 -0
- package/skills/finance/Finance_API_Doc.md +445 -0
- package/skills/finance/SKILL.md +53 -0
- package/skills/fullstack-dev/SKILL.md +1037 -0
- package/skills/fullstack-dev/references/api-design.md +444 -0
- package/skills/fullstack-dev/references/auth-flow.md +165 -0
- package/skills/fullstack-dev/references/db-schema.md +706 -0
- package/skills/fullstack-dev/references/django-best-practices.md +466 -0
- package/skills/fullstack-dev/references/environment-management.md +78 -0
- package/skills/fullstack-dev/references/release-checklist.md +278 -0
- package/skills/fullstack-dev/references/technology-selection.md +254 -0
- package/skills/fullstack-dev/references/testing-strategy.md +404 -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/html_tools.py +268 -0
- package/skills/gui_skill.py +883 -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/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 +13 -0
- package/skills/pdf/SKILL.md +921 -0
- package/skills/pdf/briefs/academic.md +1058 -0
- package/skills/pdf/briefs/creative.md +770 -0
- package/skills/pdf/briefs/poster.md +702 -0
- package/skills/pdf/briefs/process-advanced.md +284 -0
- package/skills/pdf/briefs/process.md +319 -0
- package/skills/pdf/briefs/report.md +1659 -0
- package/skills/pdf/configs/components.md +153 -0
- package/skills/pdf/configs/fonts.md +93 -0
- package/skills/pdf/configs/visual_framework.md +263 -0
- package/skills/pdf/references/resume-academic.tex +130 -0
- package/skills/pdf/references/resume-altacv.tex +190 -0
- package/skills/pdf/scripts/cover_validate.js +367 -0
- package/skills/pdf/scripts/design_engine.py +2816 -0
- package/skills/pdf/scripts/html2pdf-next.js +754 -0
- package/skills/pdf/scripts/html2poster.js +256 -0
- package/skills/pdf/scripts/pdf.py +2959 -0
- package/skills/pdf/scripts/pdf_qa.py +901 -0
- package/skills/pdf/scripts/poster_validate.py +1337 -0
- package/skills/pdf/scripts/setup.sh +269 -0
- package/skills/pdf/scripts/toc_validate.py +2075 -0
- package/skills/pdf/typesetting/charts.md +320 -0
- package/skills/pdf/typesetting/cover-backgrounds.md +384 -0
- package/skills/pdf/typesetting/cover.md +1442 -0
- package/skills/pdf/typesetting/fill-engine.md +527 -0
- package/skills/pdf/typesetting/geometry.md +142 -0
- package/skills/pdf/typesetting/overflow.md +630 -0
- package/skills/pdf/typesetting/pagination.md +367 -0
- package/skills/pdf/typesetting/palette.md +217 -0
- package/skills/pdf/typesetting/typography.md +20 -0
- package/skills/pdf_skill.py +372 -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/ppt/.claude/settings.local.json +20 -0
- package/skills/ppt/LICENSE.txt +13 -0
- package/skills/ppt/SKILL.md +436 -0
- package/skills/ppt/beamer.md +1461 -0
- package/skills/ppt/components.md +1671 -0
- package/skills/ppt/data-viz-components.md +529 -0
- package/skills/ppt/design-system.md +211 -0
- package/skills/ppt/html2pptx.md +394 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/mce/mc.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/microsoft/wml-2010.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/microsoft/wml-2012.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/microsoft/wml-2018.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/scripts/pack.py +0 -0
- package/skills/ppt/ooxml/scripts/unpack.py +45 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/scripts/validate.py +6 -5
- package/{myagent/skills/pptx → skills/ppt}/ooxml/scripts/validation/__init__.py +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/scripts/validation/base.py +2 -5
- package/{myagent/skills/pptx → skills/ppt}/ooxml/scripts/validation/docx.py +0 -0
- package/{myagent/skills/pptx → skills/ppt}/ooxml/scripts/validation/pptx.py +2 -8
- package/{myagent/skills/pptx → skills/ppt}/ooxml/scripts/validation/redlining.py +20 -20
- package/{myagent/skills/pptx → skills/ppt}/ooxml.md +0 -0
- package/skills/ppt/references/beamer.md +721 -0
- package/skills/ppt/references/latex.md +342 -0
- package/skills/ppt/references/paper-navbar.tex +73 -0
- package/skills/ppt/references/progress-navbar.tex +151 -0
- package/{myagent/skills/pptx → skills/ppt}/scripts/html2pptx.js +403 -110
- package/skills/ppt/scripts/inventory.py +512 -0
- package/skills/ppt/scripts/pdf.py +2046 -0
- package/skills/ppt/scripts/rearrange.py +144 -0
- package/skills/ppt/scripts/replace.py +231 -0
- package/skills/ppt/scripts/tectonic +0 -0
- package/{myagent/skills/pptx → skills/ppt}/scripts/thumbnail.py +68 -166
- package/skills/ppt/setup.sh +197 -0
- package/skills/ppt/themes.md +581 -0
- package/skills/ppt_skill.py +317 -0
- package/skills/qingyan-research/SKILL.md +294 -0
- package/skills/qingyan-research/generate_html.py +33 -0
- package/skills/registry.py +599 -0
- package/skills/search_skill.py +453 -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/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/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/consistency_checker.py +391 -0
- package/skills/storyboard-manager/scripts/timeline_tracker.py +352 -0
- package/skills/system_skill.py +262 -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/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 +13 -0
- package/skills/xlsx/SKILL.md +230 -0
- package/skills/xlsx/engines/chart-templates.md +167 -0
- package/skills/xlsx/engines/chart.md +87 -0
- package/skills/xlsx/engines/design.md +575 -0
- package/skills/xlsx/engines/vba-templates.md +435 -0
- package/skills/xlsx/quality/pipeline.md +196 -0
- package/skills/xlsx/scenes/advanced.md +271 -0
- package/skills/xlsx/scenes/analyze-recipes.md +234 -0
- package/skills/xlsx/scenes/analyze.md +95 -0
- package/skills/xlsx/scenes/convert.md +133 -0
- package/skills/xlsx/scenes/create.md +105 -0
- package/skills/xlsx/scenes/edit-patterns.md +222 -0
- package/skills/xlsx/scenes/edit.md +195 -0
- package/skills/xlsx/scenes/finance.md +318 -0
- package/skills/xlsx/scenes/finance_lite.md +192 -0
- package/skills/xlsx/scenes/vba.md +298 -0
- package/skills/xlsx/setup.sh +136 -0
- package/skills/xlsx/templates/base.py +632 -0
- package/skills/xlsx/templates/palettes.py +521 -0
- package/skills/xlsx/xlsx.py +1299 -0
- package/skills/xlsx_skill.py +346 -0
- package/web/__init__.py +1 -0
- package/web/api_server.py +9452 -0
- package/web/tts_handler.py +216 -0
- package/web/ui/admin/admin-agentchat.js +307 -0
- package/web/ui/admin/admin-agents.js +565 -0
- package/web/ui/admin/admin-core.js +419 -0
- package/web/ui/admin/admin-dashboard.js +148 -0
- package/web/ui/admin/admin-executor.js +62 -0
- package/web/ui/admin/admin-files.js +76 -0
- package/web/ui/admin/admin-llm.js +185 -0
- package/web/ui/admin/admin-logs.js +64 -0
- package/web/ui/admin/admin-memory.js +86 -0
- package/web/ui/admin/admin-org.js +278 -0
- package/web/ui/admin/admin-permissions.js +142 -0
- package/web/ui/admin/admin-platforms.js +256 -0
- package/web/ui/admin/admin-sessions.js +233 -0
- package/web/ui/admin/admin-skills.js +212 -0
- package/web/ui/admin/admin-system.js +149 -0
- package/web/ui/admin/admin-tasks.js +126 -0
- package/web/ui/chat/chat.css +3004 -0
- package/web/ui/chat/chat.js +52 -0
- package/web/ui/chat/chat_container.html +382 -0
- package/web/ui/chat/chat_main.js +6152 -0
- package/web/ui/chat/flow_engine.js +2663 -0
- package/web/ui/chat/groupchat.js +1182 -0
- package/web/ui/chat/left_sessions.html +54 -0
- package/web/ui/chat/middle_chat.html +162 -0
- package/web/ui/chat/right_agents.html +70 -0
- package/web/ui/index.html +369 -0
- package/worklog-v1.22.md +12 -0
- package/myagent/Dockerfile +0 -54
- package/myagent/README.md +0 -378
- package/myagent/agents/__init__.py +0 -6
- package/myagent/agents/base.py +0 -442
- package/myagent/agents/main_agent.py +0 -1707
- package/myagent/agents/memory_agent.py +0 -423
- package/myagent/agents/tool_agent.py +0 -248
- package/myagent/chatbot/__init__.py +0 -5
- package/myagent/chatbot/base.py +0 -124
- package/myagent/chatbot/discord_bot.py +0 -146
- package/myagent/chatbot/feishu_bot.py +0 -548
- package/myagent/chatbot/manager.py +0 -271
- package/myagent/chatbot/qq_bot.py +0 -189
- package/myagent/chatbot/telegram_bot.py +0 -167
- package/myagent/chatbot/wechat_bot.py +0 -558
- package/myagent/chatbot/whatsapp_bot.py +0 -330
- package/myagent/chatbot/whatsapp_bridge/bridge.mjs +0 -192
- package/myagent/chatbot/whatsapp_bridge/package.json +0 -11
- package/myagent/communication/__init__.py +0 -66
- package/myagent/communication/channel.py +0 -576
- package/myagent/communication/crypto.py +0 -347
- package/myagent/communication/manager.py +0 -417
- package/myagent/communication/peer.py +0 -156
- package/myagent/config.py +0 -533
- package/myagent/core/__init__.py +0 -4
- package/myagent/core/agent_storage.py +0 -497
- package/myagent/core/config_broadcast.py +0 -307
- package/myagent/core/config_validator.py +0 -740
- package/myagent/core/context_builder.py +0 -955
- package/myagent/core/context_manager.py +0 -506
- package/myagent/core/deps_checker.py +0 -542
- package/myagent/core/llm.py +0 -1046
- package/myagent/core/logger.py +0 -295
- package/myagent/core/output_parser.py +0 -694
- package/myagent/core/permissions.py +0 -372
- package/myagent/core/stt.py +0 -320
- package/myagent/core/task_persistence.py +0 -359
- package/myagent/core/task_queue.py +0 -440
- package/myagent/core/tool_dispatcher.py +0 -1066
- package/myagent/core/update_manager.py +0 -1392
- package/myagent/core/utils.py +0 -202
- package/myagent/core/version.py +0 -97
- package/myagent/core/vnc_manager.py +0 -1211
- package/myagent/core/web_control.py +0 -932
- package/myagent/data/novnc/lib/base64.js +0 -101
- package/myagent/data/novnc/lib/decoders/copyrect.js +0 -42
- package/myagent/data/novnc/lib/decoders/hextile.js +0 -199
- package/myagent/data/novnc/lib/decoders/jpeg.js +0 -149
- package/myagent/data/novnc/lib/decoders/raw.js +0 -74
- package/myagent/data/novnc/lib/decoders/rre.js +0 -54
- package/myagent/data/novnc/lib/decoders/tight.js +0 -302
- package/myagent/data/novnc/lib/decoders/tightpng.js +0 -47
- package/myagent/data/novnc/lib/decoders/zrle.js +0 -188
- package/myagent/data/novnc/lib/deflator.js +0 -85
- package/myagent/data/novnc/lib/des.js +0 -301
- package/myagent/data/novnc/lib/display.js +0 -520
- package/myagent/data/novnc/lib/encodings.js +0 -63
- package/myagent/data/novnc/lib/inflator.js +0 -74
- package/myagent/data/novnc/lib/input/domkeytable.js +0 -314
- package/myagent/data/novnc/lib/input/fixedkeys.js +0 -128
- package/myagent/data/novnc/lib/input/gesturehandler.js +0 -575
- package/myagent/data/novnc/lib/input/keyboard.js +0 -280
- package/myagent/data/novnc/lib/input/keysym.js +0 -879
- package/myagent/data/novnc/lib/input/keysymdef.js +0 -1352
- package/myagent/data/novnc/lib/input/util.js +0 -217
- package/myagent/data/novnc/lib/input/vkeys.js +0 -122
- package/myagent/data/novnc/lib/input/xtscancodes.js +0 -344
- package/myagent/data/novnc/lib/ra2.js +0 -1005
- package/myagent/data/novnc/lib/rfb.js +0 -3324
- package/myagent/data/novnc/lib/util/browser.js +0 -150
- package/myagent/data/novnc/lib/util/cursor.js +0 -265
- package/myagent/data/novnc/lib/util/element.js +0 -41
- package/myagent/data/novnc/lib/util/events.js +0 -133
- package/myagent/data/novnc/lib/util/eventtarget.js +0 -55
- package/myagent/data/novnc/lib/util/int.js +0 -21
- package/myagent/data/novnc/lib/util/logging.js +0 -61
- package/myagent/data/novnc/lib/util/md5.js +0 -77
- package/myagent/data/novnc/lib/util/strings.js +0 -36
- package/myagent/data/novnc/lib/vendor/pako/lib/utils/common.js +0 -58
- package/myagent/data/novnc/lib/vendor/pako/lib/zlib/adler32.js +0 -29
- package/myagent/data/novnc/lib/vendor/pako/lib/zlib/constants.js +0 -48
- package/myagent/data/novnc/lib/vendor/pako/lib/zlib/crc32.js +0 -35
- package/myagent/data/novnc/lib/vendor/pako/lib/zlib/deflate.js +0 -1755
- package/myagent/data/novnc/lib/vendor/pako/lib/zlib/gzheader.js +0 -41
- package/myagent/data/novnc/lib/vendor/pako/lib/zlib/inffast.js +0 -329
- package/myagent/data/novnc/lib/vendor/pako/lib/zlib/inflate.js +0 -1626
- package/myagent/data/novnc/lib/vendor/pako/lib/zlib/inftrees.js +0 -312
- package/myagent/data/novnc/lib/vendor/pako/lib/zlib/messages.js +0 -26
- package/myagent/data/novnc/lib/vendor/pako/lib/zlib/trees.js +0 -1157
- package/myagent/data/novnc/lib/vendor/pako/lib/zlib/zstream.js +0 -30
- package/myagent/data/novnc/lib/websock.js +0 -384
- package/myagent/data/uploads/2026-04/32c9e9d3-8cf_test.pdf.pdf +0 -1
- package/myagent/departments/__init__.py +0 -4
- package/myagent/departments/manager.py +0 -1015
- package/myagent/docs//351/205/215/347/275/256/344/275/277/347/224/250/350/257/264/346/230/216.md +0 -815
- package/myagent/download/README.md +0 -1
- package/myagent/executor/__init__.py +0 -4
- package/myagent/executor/engine.py +0 -1591
- package/myagent/groups/__init__.py +0 -15
- package/myagent/groups/manager.py +0 -881
- package/myagent/install/install.ps1 +0 -171
- package/myagent/install/install.sh +0 -258
- package/myagent/install/uninstall.ps1 +0 -142
- package/myagent/install/uninstall.sh +0 -149
- package/myagent/install.ps1 +0 -97
- package/myagent/knowledge/__init__.py +0 -4
- package/myagent/knowledge/rag.py +0 -444
- package/myagent/main.py +0 -1809
- package/myagent/memory/__init__.py +0 -4
- package/myagent/memory/manager.py +0 -1140
- package/myagent/myagent_start.ps1 +0 -26
- package/myagent/organization/__init__.py +0 -4
- package/myagent/organization/manager.py +0 -366
- package/myagent/package.json +0 -46
- package/myagent/requirements-optional.txt +0 -16
- package/myagent/requirements.txt +0 -90
- package/myagent/scripts/cli.py +0 -1384
- package/myagent/scripts/setup_helper.py +0 -33
- package/myagent/setup.py +0 -72
- package/myagent/skills/example-skill/SKILL.md +0 -33
- package/myagent/skills/example-skill/run.sh +0 -11
- package/myagent/skills/frontend-dev/SKILL.md +0 -565
- package/myagent/skills/frontend-dev/canvas-fonts/ArsenalSC-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/BigShoulders-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/Boldonse-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/BricolageGrotesque-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/CrimsonPro-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/DMMono-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/EricaOne-OFL.txt +0 -94
- package/myagent/skills/frontend-dev/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/GeistMono-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/Gloock-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/IBMPlexMono-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/InstrumentSans-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/Italiana-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/JetBrainsMono-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/Jura-Light.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/Jura-Medium.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/Jura-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/LibreBaskerville-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/Lora-Bold.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/Lora-Italic.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/Lora-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/Lora-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/NationalPark-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/Outfit-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/PixelifySans-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/PoiretOne-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/RedHatMono-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/Silkscreen-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/SmoochSans-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/Tektur-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/WorkSans-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/canvas-fonts/YoungSerif-OFL.txt +0 -93
- package/myagent/skills/frontend-dev/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/myagent/skills/frontend-dev/references/asset-prompt-guide.md +0 -43
- package/myagent/skills/frontend-dev/references/env-setup.md +0 -33
- package/myagent/skills/frontend-dev/references/minimax-cli-reference.md +0 -133
- package/myagent/skills/frontend-dev/references/minimax-image-guide.md +0 -65
- package/myagent/skills/frontend-dev/references/minimax-music-guide.md +0 -216
- package/myagent/skills/frontend-dev/references/minimax-tts-guide.md +0 -78
- package/myagent/skills/frontend-dev/references/minimax-video-guide.md +0 -82
- package/myagent/skills/frontend-dev/references/minimax-voice-catalog.md +0 -686
- package/myagent/skills/frontend-dev/references/motion-recipes.md +0 -407
- package/myagent/skills/frontend-dev/references/troubleshooting.md +0 -85
- package/myagent/skills/frontend-dev/scripts/minimax_image.py +0 -137
- package/myagent/skills/frontend-dev/scripts/minimax_music.py +0 -157
- package/myagent/skills/frontend-dev/scripts/minimax_tts.py +0 -127
- package/myagent/skills/frontend-dev/scripts/minimax_video.py +0 -187
- package/myagent/skills/frontend-dev/templates/generator_template.js +0 -223
- package/myagent/skills/frontend-dev/templates/viewer.html +0 -599
- package/myagent/skills/pptx/LICENSE.txt +0 -30
- package/myagent/skills/pptx/SKILL.md +0 -507
- package/myagent/skills/pptx/html2pptx.md +0 -625
- package/myagent/skills/pptx/ooxml/scripts/unpack.py +0 -29
- package/myagent/skills/pptx/scripts/inventory.py +0 -1020
- package/myagent/skills/pptx/scripts/rearrange.py +0 -231
- package/myagent/skills/pptx/scripts/replace.py +0 -385
- package/myagent/start.js +0 -865
- package/myagent/start.sh +0 -240
- package/myagent/worklog.md +0 -148
|
File without changes
|
package/main.py
CHANGED
|
@@ -17,11 +17,14 @@ import signal
|
|
|
17
17
|
import threading
|
|
18
18
|
from pathlib import Path
|
|
19
19
|
|
|
20
|
-
# 确保项目根目录在 Python
|
|
20
|
+
# 确保项目根目录在 Python 路径中
|
|
21
|
+
# 兼容两种布局: (A) 扁平结构 skills/ 在脚本同目录 (B) 嵌套结构 skills/ 在 myagent/ 子目录
|
|
21
22
|
PROJECT_ROOT = Path(__file__).parent.resolve()
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
if str(PROJECT_ROOT) not in sys.path:
|
|
24
|
+
sys.path.insert(0, str(PROJECT_ROOT))
|
|
25
|
+
_MYAGENT_SUB = PROJECT_ROOT / 'myagent'
|
|
26
|
+
if _MYAGENT_SUB.is_dir() and str(_MYAGENT_SUB) not in sys.path:
|
|
27
|
+
sys.path.insert(0, str(_MYAGENT_SUB))
|
|
25
28
|
|
|
26
29
|
from config import get_config, ConfigManager
|
|
27
30
|
from core.logger import setup_logger, get_logger
|
package/package.json
CHANGED
package/scripts/cli.py
CHANGED
|
@@ -479,7 +479,7 @@ async def cmd_docx_create(args):
|
|
|
479
479
|
p = argparse.ArgumentParser(prog="myagent-ai docx-create", description="创建 Word 文档")
|
|
480
480
|
p.add_argument("-c", "--content", required=True, help="内容 JSON (结构见 DocxSkill)")
|
|
481
481
|
p.add_argument("-t", "--title", default="文档", help="文档标题")
|
|
482
|
-
p.add_argument("-o", "--output", default="", help="输出路径 (默认自动生成)")
|
|
482
|
+
p.add_argument("-o", "--output", "--output_path", default="", help="输出路径 (默认自动生成)")
|
|
483
483
|
a = p.parse_args(args)
|
|
484
484
|
|
|
485
485
|
content = _parse_json_arg(a.content)
|
|
@@ -512,7 +512,7 @@ async def cmd_xlsx_create(args):
|
|
|
512
512
|
p = argparse.ArgumentParser(prog="myagent-ai xlsx-create", description="创建 Excel 文件")
|
|
513
513
|
p.add_argument("-s", "--sheets", required=True, help="工作表数据 JSON")
|
|
514
514
|
p.add_argument("-t", "--title", default="表格", help="文件标题")
|
|
515
|
-
p.add_argument("-o", "--output", default="", help="输出路径 (默认自动生成)")
|
|
515
|
+
p.add_argument("-o", "--output", "--output_path", default="", help="输出路径 (默认自动生成)")
|
|
516
516
|
a = p.parse_args(args)
|
|
517
517
|
|
|
518
518
|
sheets = _parse_json_arg(a.sheets)
|
|
@@ -565,7 +565,7 @@ async def cmd_ppt_create(args):
|
|
|
565
565
|
p = argparse.ArgumentParser(prog="myagent-ai ppt-create", description="创建 PowerPoint 演示文稿")
|
|
566
566
|
p.add_argument("-s", "--slides", required=True, help="幻灯片数据 JSON")
|
|
567
567
|
p.add_argument("--theme", default="", help="主题名称")
|
|
568
|
-
p.add_argument("-o", "--output", default="", help="输出路径 (默认自动生成)")
|
|
568
|
+
p.add_argument("-o", "--output", "--output_path", default="", help="输出路径 (默认自动生成)")
|
|
569
569
|
a = p.parse_args(args)
|
|
570
570
|
|
|
571
571
|
slides = _parse_json_arg(a.slides)
|
|
@@ -598,7 +598,7 @@ async def cmd_pdf_create(args):
|
|
|
598
598
|
p = argparse.ArgumentParser(prog="myagent-ai pdf-create", description="创建 PDF 文件")
|
|
599
599
|
p.add_argument("-c", "--content", required=True, help="内容 JSON")
|
|
600
600
|
p.add_argument("--palette", default="", help="配色方案")
|
|
601
|
-
p.add_argument("-o", "--output", default="", help="输出路径 (默认自动生成)")
|
|
601
|
+
p.add_argument("-o", "--output", "--output_path", default="", help="输出路径 (默认自动生成)")
|
|
602
602
|
a = p.parse_args(args)
|
|
603
603
|
|
|
604
604
|
content = _parse_json_arg(a.content)
|
|
@@ -1203,7 +1203,7 @@ async def cmd_zip(args):
|
|
|
1203
1203
|
import zipfile
|
|
1204
1204
|
p = argparse.ArgumentParser(prog="myagent-ai zip", description="压缩文件或文件夹为 zip")
|
|
1205
1205
|
p.add_argument("paths", nargs="+", help="要压缩的文件或文件夹路径(支持多个)")
|
|
1206
|
-
p.add_argument("-o", "--output", default="", help="输出 zip 文件路径(默认: 第一个路径名.zip)")
|
|
1206
|
+
p.add_argument("-o", "--output", "--output_path", default="", help="输出 zip 文件路径(默认: 第一个路径名.zip)")
|
|
1207
1207
|
p.add_argument("--exclude", nargs="*", default=[], help="要排除的文件模式(如 __pycache__ *.pyc .git)")
|
|
1208
1208
|
a = p.parse_args(args)
|
|
1209
1209
|
|
|
@@ -1266,7 +1266,7 @@ async def cmd_unzip(args):
|
|
|
1266
1266
|
import zipfile
|
|
1267
1267
|
p = argparse.ArgumentParser(prog="myagent-ai unzip", description="解压缩 zip 文件")
|
|
1268
1268
|
p.add_argument("zipfile", help="zip 文件路径")
|
|
1269
|
-
p.add_argument("-o", "--output", default="", help="输出目录(默认: zip 文件所在目录,去除 .zip 后缀)")
|
|
1269
|
+
p.add_argument("-o", "--output", "--output_path", default="", help="输出目录(默认: zip 文件所在目录,去除 .zip 后缀)")
|
|
1270
1270
|
a = p.parse_args(args)
|
|
1271
1271
|
|
|
1272
1272
|
zip_path = os.path.abspath(a.zipfile)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 z-ai-web-dev-sdk Skills
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,580 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ASR
|
|
3
|
+
description: Implement speech-to-text (ASR/automatic speech recognition) capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to transcribe audio files, convert speech to text, build voice input features, or process audio recordings. Supports base64 encoded audio files and returns accurate text transcriptions.
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# ASR (Speech to Text) Skill
|
|
8
|
+
|
|
9
|
+
This skill guides the implementation of speech-to-text (ASR) functionality using the z-ai-web-dev-sdk package, enabling accurate transcription of spoken audio into text.
|
|
10
|
+
|
|
11
|
+
## Skills Path
|
|
12
|
+
|
|
13
|
+
**Skill Location**: `{project_path}/skills/ASR`
|
|
14
|
+
|
|
15
|
+
this skill is located at above path in your project.
|
|
16
|
+
|
|
17
|
+
**Reference Scripts**: Example test scripts are available in the `{Skill Location}/scripts/` directory for quick testing and reference. See `{Skill Location}/scripts/asr.ts` for a working example.
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Speech-to-Text (ASR - Automatic Speech Recognition) allows you to build applications that convert spoken language in audio files into written text, enabling voice-controlled interfaces, transcription services, and audio content analysis.
|
|
22
|
+
|
|
23
|
+
**IMPORTANT**: z-ai-web-dev-sdk MUST be used in backend code only. Never use it in client-side code.
|
|
24
|
+
|
|
25
|
+
## Prerequisites
|
|
26
|
+
|
|
27
|
+
The z-ai-web-dev-sdk package is already installed. Import it as shown in the examples below.
|
|
28
|
+
|
|
29
|
+
## CLI Usage (For Simple Tasks)
|
|
30
|
+
|
|
31
|
+
For simple audio transcription tasks, you can use the z-ai CLI instead of writing code. This is ideal for quick transcriptions, testing audio files, or batch processing.
|
|
32
|
+
|
|
33
|
+
### Basic Transcription from File
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Transcribe an audio file
|
|
37
|
+
z-ai asr --file ./audio.wav
|
|
38
|
+
|
|
39
|
+
# Save transcription to JSON file
|
|
40
|
+
z-ai asr -f ./recording.mp3 -o transcript.json
|
|
41
|
+
|
|
42
|
+
# Transcribe and view output
|
|
43
|
+
z-ai asr --file ./interview.wav --output result.json
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Transcription from Base64
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Transcribe from base64 encoded audio
|
|
50
|
+
z-ai asr --base64 "UklGRiQAAABXQVZFZm10..." -o result.json
|
|
51
|
+
|
|
52
|
+
# Using short option
|
|
53
|
+
z-ai asr -b "base64_encoded_audio_data" -o transcript.json
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Streaming Output
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Stream transcription results
|
|
60
|
+
z-ai asr -f ./audio.wav --stream
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### CLI Parameters
|
|
64
|
+
|
|
65
|
+
- `--file, -f <path>`: **Required** (if not using --base64) - Audio file path
|
|
66
|
+
- `--base64, -b <base64>`: **Required** (if not using --file) - Base64 encoded audio
|
|
67
|
+
- `--output, -o <path>`: Optional - Output file path (JSON format)
|
|
68
|
+
- `--stream`: Optional - Stream the transcription output
|
|
69
|
+
|
|
70
|
+
### Supported Audio Formats
|
|
71
|
+
|
|
72
|
+
The ASR service supports various audio formats including:
|
|
73
|
+
- WAV (.wav)
|
|
74
|
+
- MP3 (.mp3)
|
|
75
|
+
- Other common audio formats
|
|
76
|
+
|
|
77
|
+
### When to Use CLI vs SDK
|
|
78
|
+
|
|
79
|
+
**Use CLI for:**
|
|
80
|
+
- Quick audio file transcriptions
|
|
81
|
+
- Testing audio recognition accuracy
|
|
82
|
+
- Simple batch processing scripts
|
|
83
|
+
- One-off transcription tasks
|
|
84
|
+
|
|
85
|
+
**Use SDK for:**
|
|
86
|
+
- Real-time audio transcription in applications
|
|
87
|
+
- Integration with recording systems
|
|
88
|
+
- Custom audio processing workflows
|
|
89
|
+
- Production applications with streaming audio
|
|
90
|
+
|
|
91
|
+
## Basic ASR Implementation
|
|
92
|
+
|
|
93
|
+
### Simple Audio Transcription
|
|
94
|
+
|
|
95
|
+
```javascript
|
|
96
|
+
import ZAI from 'z-ai-web-dev-sdk';
|
|
97
|
+
import fs from 'fs';
|
|
98
|
+
|
|
99
|
+
async function transcribeAudio(audioFilePath) {
|
|
100
|
+
const zai = await ZAI.create();
|
|
101
|
+
|
|
102
|
+
// Read audio file and convert to base64
|
|
103
|
+
const audioFile = fs.readFileSync(audioFilePath);
|
|
104
|
+
const base64Audio = audioFile.toString('base64');
|
|
105
|
+
|
|
106
|
+
const response = await zai.audio.asr.create({
|
|
107
|
+
file_base64: base64Audio
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
return response.text;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Usage
|
|
114
|
+
const transcription = await transcribeAudio('./audio.wav');
|
|
115
|
+
console.log('Transcription:', transcription);
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Transcribe Multiple Audio Files
|
|
119
|
+
|
|
120
|
+
```javascript
|
|
121
|
+
import ZAI from 'z-ai-web-dev-sdk';
|
|
122
|
+
import fs from 'fs';
|
|
123
|
+
|
|
124
|
+
async function transcribeBatch(audioFilePaths) {
|
|
125
|
+
const zai = await ZAI.create();
|
|
126
|
+
const results = [];
|
|
127
|
+
|
|
128
|
+
for (const filePath of audioFilePaths) {
|
|
129
|
+
try {
|
|
130
|
+
const audioFile = fs.readFileSync(filePath);
|
|
131
|
+
const base64Audio = audioFile.toString('base64');
|
|
132
|
+
|
|
133
|
+
const response = await zai.audio.asr.create({
|
|
134
|
+
file_base64: base64Audio
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
results.push({
|
|
138
|
+
file: filePath,
|
|
139
|
+
success: true,
|
|
140
|
+
transcription: response.text
|
|
141
|
+
});
|
|
142
|
+
} catch (error) {
|
|
143
|
+
results.push({
|
|
144
|
+
file: filePath,
|
|
145
|
+
success: false,
|
|
146
|
+
error: error.message
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return results;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// Usage
|
|
155
|
+
const files = ['./interview1.wav', './interview2.wav', './interview3.wav'];
|
|
156
|
+
const transcriptions = await transcribeBatch(files);
|
|
157
|
+
|
|
158
|
+
transcriptions.forEach(result => {
|
|
159
|
+
if (result.success) {
|
|
160
|
+
console.log(`${result.file}: ${result.transcription}`);
|
|
161
|
+
} else {
|
|
162
|
+
console.error(`${result.file}: Error - ${result.error}`);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Advanced Use Cases
|
|
168
|
+
|
|
169
|
+
### Audio File Processing with Metadata
|
|
170
|
+
|
|
171
|
+
```javascript
|
|
172
|
+
import ZAI from 'z-ai-web-dev-sdk';
|
|
173
|
+
import fs from 'fs';
|
|
174
|
+
import path from 'path';
|
|
175
|
+
|
|
176
|
+
async function transcribeWithMetadata(audioFilePath) {
|
|
177
|
+
const zai = await ZAI.create();
|
|
178
|
+
|
|
179
|
+
// Get file metadata
|
|
180
|
+
const stats = fs.statSync(audioFilePath);
|
|
181
|
+
const audioFile = fs.readFileSync(audioFilePath);
|
|
182
|
+
const base64Audio = audioFile.toString('base64');
|
|
183
|
+
|
|
184
|
+
const startTime = Date.now();
|
|
185
|
+
|
|
186
|
+
const response = await zai.audio.asr.create({
|
|
187
|
+
file_base64: base64Audio
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
const endTime = Date.now();
|
|
191
|
+
|
|
192
|
+
return {
|
|
193
|
+
filename: path.basename(audioFilePath),
|
|
194
|
+
filepath: audioFilePath,
|
|
195
|
+
fileSize: stats.size,
|
|
196
|
+
transcription: response.text,
|
|
197
|
+
wordCount: response.text.split(/\s+/).length,
|
|
198
|
+
processingTime: endTime - startTime,
|
|
199
|
+
timestamp: new Date().toISOString()
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// Usage
|
|
204
|
+
const result = await transcribeWithMetadata('./meeting_recording.wav');
|
|
205
|
+
console.log('Transcription Details:', JSON.stringify(result, null, 2));
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Real-time Audio Processing Service
|
|
209
|
+
|
|
210
|
+
```javascript
|
|
211
|
+
import ZAI from 'z-ai-web-dev-sdk';
|
|
212
|
+
import fs from 'fs';
|
|
213
|
+
|
|
214
|
+
class ASRService {
|
|
215
|
+
constructor() {
|
|
216
|
+
this.zai = null;
|
|
217
|
+
this.transcriptionCache = new Map();
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
async initialize() {
|
|
221
|
+
this.zai = await ZAI.create();
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
generateCacheKey(audioBuffer) {
|
|
225
|
+
const crypto = require('crypto');
|
|
226
|
+
return crypto.createHash('md5').update(audioBuffer).digest('hex');
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
async transcribe(audioFilePath, useCache = true) {
|
|
230
|
+
const audioBuffer = fs.readFileSync(audioFilePath);
|
|
231
|
+
const cacheKey = this.generateCacheKey(audioBuffer);
|
|
232
|
+
|
|
233
|
+
// Check cache
|
|
234
|
+
if (useCache && this.transcriptionCache.has(cacheKey)) {
|
|
235
|
+
return {
|
|
236
|
+
transcription: this.transcriptionCache.get(cacheKey),
|
|
237
|
+
cached: true
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// Transcribe audio
|
|
242
|
+
const base64Audio = audioBuffer.toString('base64');
|
|
243
|
+
|
|
244
|
+
const response = await this.zai.audio.asr.create({
|
|
245
|
+
file_base64: base64Audio
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
// Cache result
|
|
249
|
+
if (useCache) {
|
|
250
|
+
this.transcriptionCache.set(cacheKey, response.text);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
return {
|
|
254
|
+
transcription: response.text,
|
|
255
|
+
cached: false
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
clearCache() {
|
|
260
|
+
this.transcriptionCache.clear();
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
getCacheSize() {
|
|
264
|
+
return this.transcriptionCache.size;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
// Usage
|
|
269
|
+
const asrService = new ASRService();
|
|
270
|
+
await asrService.initialize();
|
|
271
|
+
|
|
272
|
+
const result1 = await asrService.transcribe('./audio.wav');
|
|
273
|
+
console.log('First call (not cached):', result1);
|
|
274
|
+
|
|
275
|
+
const result2 = await asrService.transcribe('./audio.wav');
|
|
276
|
+
console.log('Second call (cached):', result2);
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### Directory Transcription
|
|
280
|
+
|
|
281
|
+
```javascript
|
|
282
|
+
import ZAI from 'z-ai-web-dev-sdk';
|
|
283
|
+
import fs from 'fs';
|
|
284
|
+
import path from 'path';
|
|
285
|
+
|
|
286
|
+
async function transcribeDirectory(directoryPath, outputJsonPath) {
|
|
287
|
+
const zai = await ZAI.create();
|
|
288
|
+
|
|
289
|
+
// Get all audio files
|
|
290
|
+
const files = fs.readdirSync(directoryPath);
|
|
291
|
+
const audioFiles = files.filter(file =>
|
|
292
|
+
/\.(wav|mp3|m4a|flac|ogg)$/i.test(file)
|
|
293
|
+
);
|
|
294
|
+
|
|
295
|
+
const results = {
|
|
296
|
+
directory: directoryPath,
|
|
297
|
+
totalFiles: audioFiles.length,
|
|
298
|
+
processedAt: new Date().toISOString(),
|
|
299
|
+
transcriptions: []
|
|
300
|
+
};
|
|
301
|
+
|
|
302
|
+
for (const filename of audioFiles) {
|
|
303
|
+
const filePath = path.join(directoryPath, filename);
|
|
304
|
+
|
|
305
|
+
try {
|
|
306
|
+
const audioFile = fs.readFileSync(filePath);
|
|
307
|
+
const base64Audio = audioFile.toString('base64');
|
|
308
|
+
|
|
309
|
+
const response = await zai.audio.asr.create({
|
|
310
|
+
file_base64: base64Audio
|
|
311
|
+
});
|
|
312
|
+
|
|
313
|
+
results.transcriptions.push({
|
|
314
|
+
filename: filename,
|
|
315
|
+
success: true,
|
|
316
|
+
text: response.text,
|
|
317
|
+
wordCount: response.text.split(/\s+/).length
|
|
318
|
+
});
|
|
319
|
+
|
|
320
|
+
console.log(`✓ Transcribed: ${filename}`);
|
|
321
|
+
} catch (error) {
|
|
322
|
+
results.transcriptions.push({
|
|
323
|
+
filename: filename,
|
|
324
|
+
success: false,
|
|
325
|
+
error: error.message
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
console.error(`✗ Failed: ${filename} - ${error.message}`);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
// Save results to JSON
|
|
333
|
+
fs.writeFileSync(
|
|
334
|
+
outputJsonPath,
|
|
335
|
+
JSON.stringify(results, null, 2)
|
|
336
|
+
);
|
|
337
|
+
|
|
338
|
+
return results;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
// Usage
|
|
342
|
+
const results = await transcribeDirectory(
|
|
343
|
+
'./audio-recordings',
|
|
344
|
+
'./transcriptions.json'
|
|
345
|
+
);
|
|
346
|
+
|
|
347
|
+
console.log(`\nProcessed ${results.totalFiles} files`);
|
|
348
|
+
console.log(`Successful: ${results.transcriptions.filter(t => t.success).length}`);
|
|
349
|
+
console.log(`Failed: ${results.transcriptions.filter(t => !t.success).length}`);
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
## Best Practices
|
|
353
|
+
|
|
354
|
+
### 1. Audio Format Handling
|
|
355
|
+
|
|
356
|
+
```javascript
|
|
357
|
+
import ZAI from 'z-ai-web-dev-sdk';
|
|
358
|
+
import fs from 'fs';
|
|
359
|
+
|
|
360
|
+
async function transcribeAnyFormat(audioFilePath) {
|
|
361
|
+
// Supported formats: WAV, MP3, M4A, FLAC, OGG, etc.
|
|
362
|
+
const validExtensions = ['.wav', '.mp3', '.m4a', '.flac', '.ogg'];
|
|
363
|
+
const ext = audioFilePath.toLowerCase().substring(audioFilePath.lastIndexOf('.'));
|
|
364
|
+
|
|
365
|
+
if (!validExtensions.includes(ext)) {
|
|
366
|
+
throw new Error(`Unsupported audio format: ${ext}`);
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
const zai = await ZAI.create();
|
|
370
|
+
const audioFile = fs.readFileSync(audioFilePath);
|
|
371
|
+
const base64Audio = audioFile.toString('base64');
|
|
372
|
+
|
|
373
|
+
const response = await zai.audio.asr.create({
|
|
374
|
+
file_base64: base64Audio
|
|
375
|
+
});
|
|
376
|
+
|
|
377
|
+
return response.text;
|
|
378
|
+
}
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
### 2. Error Handling
|
|
382
|
+
|
|
383
|
+
```javascript
|
|
384
|
+
import ZAI from 'z-ai-web-dev-sdk';
|
|
385
|
+
import fs from 'fs';
|
|
386
|
+
|
|
387
|
+
async function safeTranscribe(audioFilePath) {
|
|
388
|
+
try {
|
|
389
|
+
// Validate file exists
|
|
390
|
+
if (!fs.existsSync(audioFilePath)) {
|
|
391
|
+
throw new Error(`File not found: ${audioFilePath}`);
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
// Check file size (e.g., limit to 100MB)
|
|
395
|
+
const stats = fs.statSync(audioFilePath);
|
|
396
|
+
const fileSizeMB = stats.size / (1024 * 1024);
|
|
397
|
+
|
|
398
|
+
if (fileSizeMB > 100) {
|
|
399
|
+
throw new Error(`File too large: ${fileSizeMB.toFixed(2)}MB (max 100MB)`);
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
// Transcribe
|
|
403
|
+
const zai = await ZAI.create();
|
|
404
|
+
const audioFile = fs.readFileSync(audioFilePath);
|
|
405
|
+
const base64Audio = audioFile.toString('base64');
|
|
406
|
+
|
|
407
|
+
const response = await zai.audio.asr.create({
|
|
408
|
+
file_base64: base64Audio
|
|
409
|
+
});
|
|
410
|
+
|
|
411
|
+
if (!response.text || response.text.trim().length === 0) {
|
|
412
|
+
throw new Error('Empty transcription result');
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
return {
|
|
416
|
+
success: true,
|
|
417
|
+
transcription: response.text,
|
|
418
|
+
filePath: audioFilePath,
|
|
419
|
+
fileSize: stats.size
|
|
420
|
+
};
|
|
421
|
+
} catch (error) {
|
|
422
|
+
console.error('Transcription error:', error);
|
|
423
|
+
return {
|
|
424
|
+
success: false,
|
|
425
|
+
error: error.message,
|
|
426
|
+
filePath: audioFilePath
|
|
427
|
+
};
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
### 3. Post-Processing Transcriptions
|
|
433
|
+
|
|
434
|
+
```javascript
|
|
435
|
+
function cleanTranscription(text) {
|
|
436
|
+
// Remove excessive whitespace
|
|
437
|
+
text = text.replace(/\s+/g, ' ').trim();
|
|
438
|
+
|
|
439
|
+
// Capitalize first letter of sentences
|
|
440
|
+
text = text.replace(/(^\w|[.!?]\s+\w)/g, match => match.toUpperCase());
|
|
441
|
+
|
|
442
|
+
// Remove filler words (optional)
|
|
443
|
+
const fillers = ['um', 'uh', 'ah', 'like', 'you know'];
|
|
444
|
+
const fillerPattern = new RegExp(`\\b(${fillers.join('|')})\\b`, 'gi');
|
|
445
|
+
text = text.replace(fillerPattern, '').replace(/\s+/g, ' ');
|
|
446
|
+
|
|
447
|
+
return text;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
async function transcribeAndClean(audioFilePath) {
|
|
451
|
+
const zai = await ZAI.create();
|
|
452
|
+
|
|
453
|
+
const audioFile = fs.readFileSync(audioFilePath);
|
|
454
|
+
const base64Audio = audioFile.toString('base64');
|
|
455
|
+
|
|
456
|
+
const response = await zai.audio.asr.create({
|
|
457
|
+
file_base64: base64Audio
|
|
458
|
+
});
|
|
459
|
+
|
|
460
|
+
return {
|
|
461
|
+
raw: response.text,
|
|
462
|
+
cleaned: cleanTranscription(response.text)
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
## Common Use Cases
|
|
468
|
+
|
|
469
|
+
1. **Meeting Transcription**: Convert recorded meetings into searchable text
|
|
470
|
+
2. **Interview Processing**: Transcribe interviews for analysis and documentation
|
|
471
|
+
3. **Podcast Transcription**: Create text versions of podcast episodes
|
|
472
|
+
4. **Voice Notes**: Convert voice memos to text for easier reference
|
|
473
|
+
5. **Call Center Analytics**: Analyze customer service calls
|
|
474
|
+
6. **Accessibility**: Provide text alternatives for audio content
|
|
475
|
+
7. **Voice Commands**: Enable voice-controlled applications
|
|
476
|
+
8. **Language Learning**: Transcribe pronunciation practice
|
|
477
|
+
|
|
478
|
+
## Integration Examples
|
|
479
|
+
|
|
480
|
+
### Express.js API Endpoint
|
|
481
|
+
|
|
482
|
+
```javascript
|
|
483
|
+
import express from 'express';
|
|
484
|
+
import multer from 'multer';
|
|
485
|
+
import ZAI from 'z-ai-web-dev-sdk';
|
|
486
|
+
import fs from 'fs';
|
|
487
|
+
|
|
488
|
+
const app = express();
|
|
489
|
+
const upload = multer({ dest: 'uploads/' });
|
|
490
|
+
|
|
491
|
+
let zaiInstance;
|
|
492
|
+
|
|
493
|
+
async function initZAI() {
|
|
494
|
+
zaiInstance = await ZAI.create();
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
app.post('/api/transcribe', upload.single('audio'), async (req, res) => {
|
|
498
|
+
try {
|
|
499
|
+
if (!req.file) {
|
|
500
|
+
return res.status(400).json({ error: 'No audio file provided' });
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
const audioFile = fs.readFileSync(req.file.path);
|
|
504
|
+
const base64Audio = audioFile.toString('base64');
|
|
505
|
+
|
|
506
|
+
const response = await zaiInstance.audio.asr.create({
|
|
507
|
+
file_base64: base64Audio
|
|
508
|
+
});
|
|
509
|
+
|
|
510
|
+
// Clean up uploaded file
|
|
511
|
+
fs.unlinkSync(req.file.path);
|
|
512
|
+
|
|
513
|
+
res.json({
|
|
514
|
+
success: true,
|
|
515
|
+
transcription: response.text,
|
|
516
|
+
wordCount: response.text.split(/\s+/).length
|
|
517
|
+
});
|
|
518
|
+
} catch (error) {
|
|
519
|
+
// Clean up on error
|
|
520
|
+
if (req.file && fs.existsSync(req.file.path)) {
|
|
521
|
+
fs.unlinkSync(req.file.path);
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
res.status(500).json({
|
|
525
|
+
success: false,
|
|
526
|
+
error: error.message
|
|
527
|
+
});
|
|
528
|
+
}
|
|
529
|
+
});
|
|
530
|
+
|
|
531
|
+
initZAI().then(() => {
|
|
532
|
+
app.listen(3000, () => {
|
|
533
|
+
console.log('ASR API running on port 3000');
|
|
534
|
+
});
|
|
535
|
+
});
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
## Troubleshooting
|
|
539
|
+
|
|
540
|
+
**Issue**: "SDK must be used in backend"
|
|
541
|
+
- **Solution**: Ensure z-ai-web-dev-sdk is only imported in server-side code
|
|
542
|
+
|
|
543
|
+
**Issue**: Empty or incorrect transcription
|
|
544
|
+
- **Solution**: Verify audio quality and format. Check if audio contains clear speech
|
|
545
|
+
|
|
546
|
+
**Issue**: Large file processing fails
|
|
547
|
+
- **Solution**: Consider splitting large audio files into smaller segments
|
|
548
|
+
|
|
549
|
+
**Issue**: Slow transcription speed
|
|
550
|
+
- **Solution**: Implement caching for repeated transcriptions, optimize file sizes
|
|
551
|
+
|
|
552
|
+
**Issue**: Memory errors with large files
|
|
553
|
+
- **Solution**: Process files in chunks or increase Node.js memory limit
|
|
554
|
+
|
|
555
|
+
## Performance Tips
|
|
556
|
+
|
|
557
|
+
1. **Reuse SDK Instance**: Create once, use multiple times
|
|
558
|
+
2. **Implement Caching**: Cache transcriptions for duplicate files
|
|
559
|
+
3. **Batch Processing**: Process multiple files efficiently with proper queuing
|
|
560
|
+
4. **Audio Optimization**: Compress audio files before processing when possible
|
|
561
|
+
5. **Async Operations**: Use Promise.all for parallel processing when appropriate
|
|
562
|
+
|
|
563
|
+
## Audio Quality Guidelines
|
|
564
|
+
|
|
565
|
+
For best transcription results:
|
|
566
|
+
- **Sample Rate**: 16kHz or higher
|
|
567
|
+
- **Format**: WAV, MP3, or M4A recommended
|
|
568
|
+
- **Noise Level**: Minimize background noise
|
|
569
|
+
- **Speech Clarity**: Clear pronunciation and normal speaking pace
|
|
570
|
+
- **File Size**: Under 100MB recommended for individual files
|
|
571
|
+
|
|
572
|
+
## Remember
|
|
573
|
+
|
|
574
|
+
- Always use z-ai-web-dev-sdk in backend code only
|
|
575
|
+
- The SDK is already installed - import as shown in examples
|
|
576
|
+
- Audio files must be converted to base64 before processing
|
|
577
|
+
- Implement proper error handling for production applications
|
|
578
|
+
- Consider audio quality for best transcription accuracy
|
|
579
|
+
- Clean up temporary files after processing
|
|
580
|
+
- Cache results for frequently transcribed files
|