myagent-ai 1.26.5 → 1.26.6
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/agents/main_agent.py +32 -47
- package/core/output_parser.py +57 -0
- package/main.py +0 -11
- package/package.json +1 -1
- package/scripts/cli.py +1 -124
- package/skills/ASR/LICENSE.txt +0 -0
- package/skills/ASR/SKILL.md +0 -0
- package/skills/ASR/scripts/asr.ts +0 -0
- package/skills/LLM/LICENSE.txt +0 -0
- package/skills/LLM/SKILL.md +0 -0
- package/skills/LLM/scripts/chat.ts +0 -0
- package/skills/TTS/LICENSE.txt +0 -0
- package/skills/TTS/SKILL.md +0 -0
- package/skills/TTS/tts.ts +0 -0
- package/skills/VLM/LICENSE.txt +0 -0
- package/skills/VLM/SKILL.md +0 -0
- package/skills/VLM/scripts/vlm.ts +0 -0
- package/skills/__init__.py +0 -0
- package/skills/admin-manager/SKILL.md +0 -0
- package/skills/agent-browser/SKILL.md +0 -0
- package/skills/agent_tool_skill.py +0 -0
- package/skills/ai-news-collectors/SKILL.md +0 -0
- package/skills/ai-news-collectors/_meta.json +0 -0
- package/skills/ai-news-collectors/references/sources.md +0 -0
- package/skills/aminer-open-academic/SKILL.md +0 -0
- package/skills/aminer-open-academic/_meta.json +0 -0
- package/skills/aminer-open-academic/evals/evals.json +0 -0
- package/skills/aminer-open-academic/references/api-catalog.md +0 -0
- package/skills/aminer-open-academic/scripts/aminer_client.py +0 -0
- package/skills/auto-target-tracker/SKILL.md +0 -0
- package/skills/base.py +0 -0
- package/skills/blog-writer/2024-02-17-radical-transparency-sales.md +0 -0
- package/skills/blog-writer/2024-02-17-raycast-spotlight-superpowers.md +0 -0
- package/skills/blog-writer/2024-02-17-short-form-content-marketing.md +0 -0
- package/skills/blog-writer/2024-02-17-typing-speed-benefits.md +0 -0
- package/skills/blog-writer/2024-03-14-effective-ai-prompts.md +0 -0
- package/skills/blog-writer/2024-11-08-ai-revolutionizing-entry-level-sales.md +0 -0
- package/skills/blog-writer/2025-11-12-why-ai-art-is-useless.md +0 -0
- package/skills/blog-writer/README.md +0 -0
- package/skills/blog-writer/SKILL.md +0 -0
- package/skills/blog-writer/_meta.json +0 -0
- package/skills/blog-writer/manage_examples.py +0 -0
- package/skills/blog-writer/style-guide.md +0 -0
- package/skills/browser_skill.py +0 -0
- package/skills/charts/LICENSE.txt +0 -0
- package/skills/charts/SKILL.md +0 -0
- package/skills/charts/references/_rules.md +0 -0
- package/skills/charts/references/d3.md +0 -0
- package/skills/charts/references/echarts.md +0 -0
- package/skills/charts/references/matplotlib.md +0 -0
- package/skills/charts/references/mermaid.md +0 -0
- package/skills/charts/references/mindmap-css.md +0 -0
- package/skills/charts/references/playwright-css.md +0 -0
- package/skills/charts/references/radial-grid.md +0 -0
- package/skills/charts/references/seaborn.md +0 -0
- package/skills/charts/setup.sh +0 -0
- package/skills/chromedev_mcp.py +0 -0
- package/skills/coding-agent/SKILL.md +0 -0
- package/skills/coding-agent/_meta.json +0 -0
- package/skills/coding-agent/criteria.md +0 -0
- package/skills/coding-agent/execution.md +0 -0
- package/skills/coding-agent/memory-template.md +0 -0
- package/skills/coding-agent/planning.md +0 -0
- package/skills/coding-agent/state.md +0 -0
- package/skills/coding-agent/verification.md +0 -0
- package/skills/content-strategy/SKILL.md +0 -0
- package/skills/content-strategy/_meta.json +0 -0
- package/skills/contentanalysis/ExtractWisdom/SKILL.md +0 -0
- package/skills/contentanalysis/ExtractWisdom/Workflows/Extract.md +0 -0
- package/skills/contentanalysis/SKILL.md +0 -0
- package/skills/docx/LICENSE.txt +0 -0
- package/skills/docx/SKILL.md +0 -0
- package/skills/docx/references/chart-templates.md +0 -0
- package/skills/docx/references/common-rules.md +0 -0
- package/skills/docx/references/decorations.md +0 -0
- package/skills/docx/references/design-system.md +0 -0
- package/skills/docx/references/docx-js-advanced.md +0 -0
- package/skills/docx/references/docx-js-core.md +0 -0
- package/skills/docx/references/faq.md +0 -0
- package/skills/docx/references/math-formulas.md +0 -0
- package/skills/docx/references/ooxml.md +0 -0
- package/skills/docx/references/toc.md +0 -0
- package/skills/docx/routes/comment.md +0 -0
- package/skills/docx/routes/create.md +0 -0
- package/skills/docx/routes/edit.md +0 -0
- package/skills/docx/routes/format.md +0 -0
- package/skills/docx/routes/read.md +0 -0
- package/skills/docx/scenes/academic.md +0 -0
- package/skills/docx/scenes/contract.md +0 -0
- package/skills/docx/scenes/copywriting.md +0 -0
- package/skills/docx/scenes/exam.md +0 -0
- package/skills/docx/scenes/official-doc.md +0 -0
- package/skills/docx/scenes/report.md +0 -0
- package/skills/docx/scenes/resume.md +0 -0
- package/skills/docx/scripts/__init__.py +0 -0
- package/skills/docx/scripts/add_toc_placeholders.py +0 -0
- package/skills/docx/scripts/document.py +0 -0
- package/skills/docx/scripts/postcheck.py +0 -0
- package/skills/docx/scripts/templates/comments.xml +0 -0
- package/skills/docx/scripts/templates/commentsExtended.xml +0 -0
- package/skills/docx/scripts/templates/commentsExtensible.xml +0 -0
- package/skills/docx/scripts/templates/commentsIds.xml +0 -0
- package/skills/docx/scripts/templates/people.xml +0 -0
- package/skills/docx/scripts/utilities.py +0 -0
- package/skills/docx/setup.sh +0 -0
- package/skills/docx_skill.py +0 -0
- package/skills/dream-interpreter/SKILL.md +0 -0
- package/skills/dream-interpreter/assets/example_asset.txt +0 -0
- package/skills/dream-interpreter/references/api_reference.md +0 -0
- package/skills/dream-interpreter/references/interpretation-guide.md +0 -0
- package/skills/dream-interpreter/references/output-schema.md +0 -0
- package/skills/dream-interpreter/references/questioning-strategy.md +0 -0
- package/skills/dream-interpreter/references/visual-mapping.md +0 -0
- package/skills/dream-interpreter/scripts/example.py +0 -0
- package/skills/dream-interpreter/skill.json +0 -0
- package/skills/file_send.py +0 -0
- package/skills/finance/Finance_API_Doc.md +0 -0
- package/skills/finance/SKILL.md +0 -0
- package/skills/fullstack-dev/SKILL.md +0 -0
- package/skills/fullstack-dev/references/api-design.md +0 -0
- package/skills/fullstack-dev/references/auth-flow.md +0 -0
- package/skills/fullstack-dev/references/db-schema.md +0 -0
- package/skills/fullstack-dev/references/django-best-practices.md +0 -0
- package/skills/fullstack-dev/references/environment-management.md +0 -0
- package/skills/fullstack-dev/references/release-checklist.md +0 -0
- package/skills/fullstack-dev/references/technology-selection.md +0 -0
- package/skills/fullstack-dev/references/testing-strategy.md +0 -0
- package/skills/get-fortune-analysis/SKILL.md +0 -0
- package/skills/get-fortune-analysis/lunar_python.py +0 -0
- package/skills/gift-evaluator/SKILL.md +0 -0
- package/skills/gift-evaluator/html_tools.py +0 -0
- package/skills/gui_skill.py +0 -0
- package/skills/image-edit/LICENSE.txt +0 -0
- package/skills/image-edit/SKILL.md +0 -0
- package/skills/image-edit/scripts/image-edit.ts +0 -0
- package/skills/image-generation/LICENSE.txt +0 -0
- package/skills/image-generation/SKILL.md +0 -0
- package/skills/image-generation/scripts/image-generation.ts +0 -0
- package/skills/image-understand/LICENSE.txt +0 -0
- package/skills/image-understand/SKILL.md +0 -0
- package/skills/image-understand/scripts/image-understand.ts +0 -0
- package/skills/interview-designer/README.md +0 -0
- package/skills/interview-designer/SKILL.md +0 -0
- package/skills/interview-designer/_meta.json +0 -0
- package/skills/interview-designer/references/design_rationale.md +0 -0
- package/skills/interview-designer/templates/interview_guide_template.md +0 -0
- package/skills/market-research-reports/SKILL.md +0 -0
- package/skills/market-research-reports/assets/FORMATTING_GUIDE.md +0 -0
- package/skills/market-research-reports/assets/market_report_template.tex +0 -0
- package/skills/market-research-reports/assets/market_research.sty +0 -0
- package/skills/market-research-reports/references/data_analysis_patterns.md +0 -0
- package/skills/market-research-reports/references/report_structure_guide.md +0 -0
- package/skills/market-research-reports/references/visual_generation_guide.md +0 -0
- package/skills/market-research-reports/scripts/generate_market_visuals.py +0 -0
- package/skills/marketing-mode/README.md +0 -0
- package/skills/marketing-mode/SKILL.md +0 -0
- package/skills/marketing-mode/_meta.json +0 -0
- package/skills/marketing-mode/mode-prompt.md +0 -0
- package/skills/marketing-mode/skill.json +0 -0
- package/skills/mindfulness-meditation/SKILL.md +0 -0
- package/skills/mindfulness-meditation/_meta.json +0 -0
- package/skills/multi-search-engine/CHANGELOG.md +0 -0
- package/skills/multi-search-engine/CHANNELLOG.md +0 -0
- package/skills/multi-search-engine/SKILL.md +0 -0
- package/skills/multi-search-engine/_meta.json +0 -0
- package/skills/multi-search-engine/config.json +0 -0
- package/skills/multi-search-engine/metadata.json +0 -0
- package/skills/multi-search-engine/references/international-search.md +0 -0
- package/skills/pdf/LICENSE.txt +0 -0
- package/skills/pdf/SKILL.md +0 -0
- package/skills/pdf/briefs/academic.md +0 -0
- package/skills/pdf/briefs/creative.md +0 -0
- package/skills/pdf/briefs/poster.md +0 -0
- package/skills/pdf/briefs/process-advanced.md +0 -0
- package/skills/pdf/briefs/process.md +0 -0
- package/skills/pdf/briefs/report.md +0 -0
- package/skills/pdf/configs/components.md +0 -0
- package/skills/pdf/configs/fonts.md +0 -0
- package/skills/pdf/configs/visual_framework.md +0 -0
- package/skills/pdf/references/resume-academic.tex +0 -0
- package/skills/pdf/references/resume-altacv.tex +0 -0
- package/skills/pdf/scripts/cover_validate.js +0 -0
- package/skills/pdf/scripts/design_engine.py +0 -0
- package/skills/pdf/scripts/html2pdf-next.js +0 -0
- package/skills/pdf/scripts/html2poster.js +0 -0
- package/skills/pdf/scripts/pdf.py +0 -0
- package/skills/pdf/scripts/pdf_qa.py +0 -0
- package/skills/pdf/scripts/poster_validate.py +0 -0
- package/skills/pdf/scripts/setup.sh +0 -0
- package/skills/pdf/scripts/toc_validate.py +0 -0
- package/skills/pdf/typesetting/charts.md +0 -0
- package/skills/pdf/typesetting/cover-backgrounds.md +0 -0
- package/skills/pdf/typesetting/cover.md +0 -0
- package/skills/pdf/typesetting/fill-engine.md +0 -0
- package/skills/pdf/typesetting/geometry.md +0 -0
- package/skills/pdf/typesetting/overflow.md +0 -0
- package/skills/pdf/typesetting/pagination.md +0 -0
- package/skills/pdf/typesetting/palette.md +0 -0
- package/skills/pdf/typesetting/typography.md +0 -0
- package/skills/pdf_skill.py +0 -0
- package/skills/podcast-generate/LICENSE.txt +0 -0
- package/skills/podcast-generate/SKILL.md +0 -0
- package/skills/podcast-generate/generate.ts +0 -0
- package/skills/podcast-generate/package.json +0 -0
- package/skills/podcast-generate/readme.md +0 -0
- package/skills/podcast-generate/test_data/segments.jsonl +0 -0
- package/skills/podcast-generate/tsconfig.json +0 -0
- package/skills/ppt/.claude/settings.local.json +0 -0
- package/skills/ppt/LICENSE.txt +0 -0
- package/skills/ppt/SKILL.md +0 -0
- package/skills/ppt/beamer.md +0 -0
- package/skills/ppt/components.md +0 -0
- package/skills/ppt/data-viz-components.md +0 -0
- package/skills/ppt/design-system.md +0 -0
- package/skills/ppt/html2pptx.md +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
- package/skills/ppt/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
- package/skills/ppt/ooxml/schemas/mce/mc.xsd +0 -0
- package/skills/ppt/ooxml/schemas/microsoft/wml-2010.xsd +0 -0
- package/skills/ppt/ooxml/schemas/microsoft/wml-2012.xsd +0 -0
- package/skills/ppt/ooxml/schemas/microsoft/wml-2018.xsd +0 -0
- package/skills/ppt/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -0
- package/skills/ppt/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -0
- package/skills/ppt/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
- package/skills/ppt/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -0
- package/skills/ppt/ooxml/scripts/pack.py +0 -0
- package/skills/ppt/ooxml/scripts/unpack.py +0 -0
- package/skills/ppt/ooxml/scripts/validate.py +0 -0
- package/skills/ppt/ooxml/scripts/validation/__init__.py +0 -0
- package/skills/ppt/ooxml/scripts/validation/base.py +0 -0
- package/skills/ppt/ooxml/scripts/validation/docx.py +0 -0
- package/skills/ppt/ooxml/scripts/validation/pptx.py +0 -0
- package/skills/ppt/ooxml/scripts/validation/redlining.py +0 -0
- package/skills/ppt/ooxml.md +0 -0
- package/skills/ppt/references/beamer.md +0 -0
- package/skills/ppt/references/latex.md +0 -0
- package/skills/ppt/references/paper-navbar.tex +0 -0
- package/skills/ppt/references/progress-navbar.tex +0 -0
- package/skills/ppt/scripts/html2pptx.js +0 -0
- package/skills/ppt/scripts/inventory.py +0 -0
- package/skills/ppt/scripts/pdf.py +0 -0
- package/skills/ppt/scripts/rearrange.py +0 -0
- package/skills/ppt/scripts/replace.py +0 -0
- package/skills/ppt/scripts/tectonic +0 -0
- package/skills/ppt/scripts/thumbnail.py +0 -0
- package/skills/ppt/setup.sh +0 -0
- package/skills/ppt/themes.md +0 -0
- package/skills/ppt_skill.py +0 -0
- package/skills/qingyan-research/SKILL.md +0 -0
- package/skills/qingyan-research/generate_html.py +0 -0
- package/skills/registry.py +0 -0
- package/skills/search_skill.py +0 -0
- package/skills/seo-content-writer/SKILL.md +0 -0
- package/skills/seo-content-writer/_meta.json +0 -0
- package/skills/seo-content-writer/references/content-structure-templates.md +0 -0
- package/skills/seo-content-writer/references/title-formulas.md +0 -0
- package/skills/skill-creator/LICENSE.txt +0 -0
- package/skills/skill-creator/SKILL.md +0 -0
- package/skills/skill-creator/agents/analyzer.md +0 -0
- package/skills/skill-creator/agents/comparator.md +0 -0
- package/skills/skill-creator/agents/grader.md +0 -0
- package/skills/skill-creator/assets/eval_review.html +0 -0
- package/skills/skill-creator/eval-viewer/generate_review.py +0 -0
- package/skills/skill-creator/eval-viewer/viewer.html +0 -0
- package/skills/skill-creator/references/schemas.md +0 -0
- package/skills/skill-creator/scripts/__init__.py +0 -0
- package/skills/skill-creator/scripts/aggregate_benchmark.py +0 -0
- package/skills/skill-creator/scripts/generate_report.py +0 -0
- package/skills/skill-creator/scripts/improve_description.py +0 -0
- package/skills/skill-creator/scripts/package_skill.py +0 -0
- package/skills/skill-creator/scripts/quick_validate.py +0 -0
- package/skills/skill-creator/scripts/run_eval.py +0 -0
- package/skills/skill-creator/scripts/run_loop.py +0 -0
- package/skills/skill-creator/scripts/utils.py +0 -0
- package/skills/skill-finder-cn/SKILL.md +0 -0
- package/skills/skill-finder-cn/_meta.json +0 -0
- package/skills/skill-finder-cn/package.json +0 -0
- package/skills/skill-finder-cn/scripts/search.sh +0 -0
- package/skills/skill-vetter/SKILL.md +0 -0
- package/skills/stock-analysis-skill/SKILL.md +0 -0
- package/skills/stock-analysis-skill/package.json +0 -0
- package/skills/stock-analysis-skill/src/analyzer.ts +0 -0
- package/skills/stock-analysis-skill/src/dataFetcher.ts +0 -0
- package/skills/stock-analysis-skill/src/dividend.ts +0 -0
- package/skills/stock-analysis-skill/src/index.ts +0 -0
- package/skills/stock-analysis-skill/src/rumorScanner.ts +0 -0
- package/skills/stock-analysis-skill/src/types.ts +0 -0
- package/skills/stock-analysis-skill/src/watchlist.ts +0 -0
- package/skills/stock-analysis-skill/tsconfig.json +0 -0
- package/skills/storyboard-manager/SKILL.md +0 -0
- package/skills/storyboard-manager/index.js +0 -0
- package/skills/storyboard-manager/package.json +0 -0
- package/skills/storyboard-manager/references/character_development.md +0 -0
- package/skills/storyboard-manager/references/story_structures.md +0 -0
- package/skills/storyboard-manager/scripts/consistency_checker.py +0 -0
- package/skills/storyboard-manager/scripts/timeline_tracker.py +0 -0
- package/skills/system_skill.py +0 -0
- package/skills/ui-ux-pro-max/SKILL.md +0 -0
- package/skills/ui-ux-pro-max/_meta.json +0 -0
- package/skills/ui-ux-pro-max/assets/data/charts.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/colors.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/icons.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/landing.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/products.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/react-performance.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/astro.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/flutter.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/html-tailwind.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/jetpack-compose.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/nextjs.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/nuxt-ui.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/nuxtjs.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/react-native.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/react.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/shadcn.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/svelte.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/swiftui.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/vue.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/styles.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/typography.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/ui-reasoning.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/ux-guidelines.csv +0 -0
- package/skills/ui-ux-pro-max/assets/data/web-interface.csv +0 -0
- package/skills/ui-ux-pro-max/data/charts.csv +0 -0
- package/skills/ui-ux-pro-max/data/colors.csv +0 -0
- package/skills/ui-ux-pro-max/data/icons.csv +0 -0
- package/skills/ui-ux-pro-max/data/landing.csv +0 -0
- package/skills/ui-ux-pro-max/data/products.csv +0 -0
- package/skills/ui-ux-pro-max/data/react-performance.csv +0 -0
- package/skills/ui-ux-pro-max/data/stacks/astro.csv +0 -0
- package/skills/ui-ux-pro-max/data/stacks/flutter.csv +0 -0
- package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +0 -0
- package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +0 -0
- package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +0 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +0 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +0 -0
- package/skills/ui-ux-pro-max/data/stacks/react-native.csv +0 -0
- package/skills/ui-ux-pro-max/data/stacks/react.csv +0 -0
- package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +0 -0
- package/skills/ui-ux-pro-max/data/stacks/svelte.csv +0 -0
- package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +0 -0
- package/skills/ui-ux-pro-max/data/stacks/vue.csv +0 -0
- package/skills/ui-ux-pro-max/data/styles.csv +0 -0
- package/skills/ui-ux-pro-max/data/typography.csv +0 -0
- package/skills/ui-ux-pro-max/data/ui-reasoning.csv +0 -0
- package/skills/ui-ux-pro-max/data/ux-guidelines.csv +0 -0
- package/skills/ui-ux-pro-max/data/web-interface.csv +0 -0
- package/skills/ui-ux-pro-max/references/upstream-README.md +0 -0
- package/skills/ui-ux-pro-max/references/upstream-skill-content.md +0 -0
- package/skills/ui-ux-pro-max/scripts/__init__.py +0 -0
- package/skills/ui-ux-pro-max/scripts/core.py +0 -0
- package/skills/ui-ux-pro-max/scripts/design_system.py +0 -0
- package/skills/ui-ux-pro-max/scripts/search.py +0 -0
- package/skills/video-generation/LICENSE.txt +0 -0
- package/skills/video-generation/SKILL.md +0 -0
- package/skills/video-generation/scripts/video.ts +0 -0
- package/skills/video-understand/LICENSE.txt +0 -0
- package/skills/video-understand/SKILL.md +0 -0
- package/skills/video-understand/scripts/video-understand.ts +0 -0
- package/skills/visual-design-foundations/SKILL.md +0 -0
- package/skills/visual-design-foundations/references/color-systems.md +0 -0
- package/skills/visual-design-foundations/references/spacing-iconography.md +0 -0
- package/skills/visual-design-foundations/references/typography-systems.md +0 -0
- package/skills/web-reader/LICENSE.txt +0 -0
- package/skills/web-reader/SKILL.md +0 -0
- package/skills/web-reader/scripts/web-reader.ts +0 -0
- package/skills/web-search/LICENSE.txt +0 -0
- package/skills/web-search/SKILL.md +0 -0
- package/skills/web-search/scripts/web_search.ts +0 -0
- package/skills/web-shader-extractor/SKILL.md +0 -0
- package/skills/web-shader-extractor/references/config-extraction.md +0 -0
- package/skills/web-shader-extractor/references/encoded-definitions.md +0 -0
- package/skills/web-shader-extractor/references/extraction-workflow.md +0 -0
- package/skills/web-shader-extractor/references/porting-strategy.md +0 -0
- package/skills/web-shader-extractor/references/shader-injection.md +0 -0
- package/skills/web-shader-extractor/references/shaders-com.md +0 -0
- package/skills/web-shader-extractor/references/tech-signatures.md +0 -0
- package/skills/web-shader-extractor/references/tsl-extraction.md +0 -0
- package/skills/web-shader-extractor/references/unicorn-studio.md +0 -0
- package/skills/web-shader-extractor/scripts/fetch-rendered-dom.mjs +0 -0
- package/skills/web-shader-extractor/scripts/scan-bundle.sh +0 -0
- package/skills/writing-plans/SKILL.md +0 -0
- package/skills/writing-plans/_meta.json +0 -0
- package/skills/xlsx/LICENSE.txt +0 -0
- package/skills/xlsx/SKILL.md +0 -0
- package/skills/xlsx/engines/chart-templates.md +0 -0
- package/skills/xlsx/engines/chart.md +0 -0
- package/skills/xlsx/engines/design.md +0 -0
- package/skills/xlsx/engines/vba-templates.md +0 -0
- package/skills/xlsx/quality/pipeline.md +0 -0
- package/skills/xlsx/scenes/advanced.md +0 -0
- package/skills/xlsx/scenes/analyze-recipes.md +0 -0
- package/skills/xlsx/scenes/analyze.md +0 -0
- package/skills/xlsx/scenes/convert.md +0 -0
- package/skills/xlsx/scenes/create.md +0 -0
- package/skills/xlsx/scenes/edit-patterns.md +0 -0
- package/skills/xlsx/scenes/edit.md +0 -0
- package/skills/xlsx/scenes/finance.md +0 -0
- package/skills/xlsx/scenes/finance_lite.md +0 -0
- package/skills/xlsx/scenes/vba.md +0 -0
- package/skills/xlsx/setup.sh +0 -0
- package/skills/xlsx/templates/base.py +0 -0
- package/skills/xlsx/templates/palettes.py +0 -0
- package/skills/xlsx/xlsx.py +0 -0
- package/skills/xlsx_skill.py +0 -0
- package/web/__init__.py +0 -0
- package/web/api_server.py +0 -0
- package/web/tts_handler.py +0 -0
- package/web/ui/admin/admin-agentchat.js +0 -0
- package/web/ui/admin/admin-agents.js +0 -0
- package/web/ui/admin/admin-core.js +0 -0
- package/web/ui/admin/admin-dashboard.js +0 -0
- package/web/ui/admin/admin-executor.js +0 -0
- package/web/ui/admin/admin-files.js +0 -0
- package/web/ui/admin/admin-llm.js +0 -0
- package/web/ui/admin/admin-logs.js +0 -0
- package/web/ui/admin/admin-memory.js +0 -0
- package/web/ui/admin/admin-org.js +0 -0
- package/web/ui/admin/admin-permissions.js +0 -0
- package/web/ui/admin/admin-platforms.js +0 -0
- package/web/ui/admin/admin-sessions.js +0 -0
- package/web/ui/admin/admin-skills.js +0 -0
- package/web/ui/admin/admin-system.js +0 -0
- package/web/ui/admin/admin-tasks.js +0 -0
- package/web/ui/chat/chat.css +0 -0
- package/web/ui/chat/chat.js +0 -0
- package/web/ui/chat/chat_container.html +0 -0
- package/web/ui/chat/chat_main.js +0 -0
- package/web/ui/chat/flow_engine.js +0 -0
- package/web/ui/chat/groupchat.js +0 -0
- package/web/ui/chat/left_sessions.html +0 -0
- package/web/ui/chat/middle_chat.html +0 -0
- package/web/ui/chat/right_agents.html +0 -0
- package/web/ui/index.html +0 -0
- package/worklog-v1.22.md +0 -0
- package/worklog.md +0 -0
- package//"docs/351205215347275256344275277347224250350257264346230216.md/" +0 -0
- package/skills/file_skill.py +0 -573
package/agents/main_agent.py
CHANGED
|
@@ -950,7 +950,7 @@ GUI桌面 (仅Windows/macOS):
|
|
|
950
950
|
f"输出长度={len(llm_raw)} 字符"
|
|
951
951
|
)
|
|
952
952
|
|
|
953
|
-
if _xml_correction_retries <
|
|
953
|
+
if _xml_correction_retries < 3:
|
|
954
954
|
_xml_correction_retries += 1
|
|
955
955
|
# 尝试从不完整输出中提取已有内容,防止内容完全丢失
|
|
956
956
|
_partial_text = self._try_extract_partial_response(llm_raw)
|
|
@@ -995,53 +995,46 @@ GUI桌面 (仅Windows/macOS):
|
|
|
995
995
|
)
|
|
996
996
|
await self._emit_v2_event(
|
|
997
997
|
"v2_reasoning",
|
|
998
|
-
{"content": f"⚠️ 模型输出异常({_diag_msg}),正在自动修正({_xml_correction_retries}/
|
|
998
|
+
{"content": f"⚠️ 模型输出异常({_diag_msg}),正在自动修正({_xml_correction_retries}/3)..."},
|
|
999
999
|
stream_callback,
|
|
1000
1000
|
)
|
|
1001
1001
|
continue # 重新进入循环,让 LLM 重新生成
|
|
1002
1002
|
else:
|
|
1003
|
-
# 已重试
|
|
1004
|
-
logger.warning(f"[{task_id}] XML输出异常已重试
|
|
1003
|
+
# 已重试 3 次 → 不终止,提取已有内容作为 response 继续执行
|
|
1004
|
+
logger.warning(f"[{task_id}] XML输出异常已重试3次,提取已有内容继续执行: {_diag_msg}")
|
|
1005
|
+
_fallback_save = ""
|
|
1005
1006
|
if _v2_reasoning_collected:
|
|
1006
1007
|
_fallback_save = "\n".join(_v2_reasoning_collected)
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
await self._emit_v2_event(
|
|
1016
|
-
"v2_reasoning",
|
|
1017
|
-
{"content": _fallback_save},
|
|
1018
|
-
stream_callback,
|
|
1019
|
-
)
|
|
1020
|
-
else:
|
|
1021
|
-
context.working_memory["final_response"] = "模型输出格式异常,请重新尝试。"
|
|
1022
|
-
await self._emit_v2_event(
|
|
1023
|
-
"v2_reasoning",
|
|
1024
|
-
{"content": "模型输出格式异常,已自动终止。"},
|
|
1025
|
-
stream_callback,
|
|
1026
|
-
)
|
|
1027
|
-
break
|
|
1008
|
+
if not _fallback_save.strip():
|
|
1009
|
+
before, after = extract_surrounding_text(llm_raw)
|
|
1010
|
+
_fallback_save = ((before + "\n" + after) if (before.strip() or after.strip()) else re.sub(r"<[^>]+>", "", llm_raw).strip())
|
|
1011
|
+
_fallback_save = _fallback_save.strip() if _fallback_save.strip() else "处理完毕。"
|
|
1012
|
+
parsed.parse_success = True
|
|
1013
|
+
parsed.response = _fallback_save
|
|
1014
|
+
parsed.finish = True
|
|
1015
|
+
parsed.finish_reason = f"输出异常({_diag_msg}),已提取内容继续执行"
|
|
1028
1016
|
elif _block_incomplete and parsed.parse_success:
|
|
1029
1017
|
# 块不完整但已提取到有效内容,记录日志但正常继续
|
|
1030
1018
|
logger.info(
|
|
1031
1019
|
f"[{task_id}] <output> 块不完整但已提取到有效内容,跳过修正直接处理"
|
|
1032
1020
|
)
|
|
1033
1021
|
|
|
1034
|
-
# Step 4.5: 解析失败处理 —
|
|
1022
|
+
# Step 4.5: 解析失败处理 — 三层兜底,确保执行不会因解析错误而中断
|
|
1023
|
+
# 兜底策略(由 output_parser Step 4.5 已完成 L1/L2,此处处理 L3):
|
|
1024
|
+
# L1 (parser): 直接搜索 <tool> 块(跳过 toolstocal 包装)
|
|
1025
|
+
# L2 (parser): 搜索散落的 <toolname>+<parms> 配对
|
|
1026
|
+
# L3 (此处): 将原始文本回退给 LLM 修正格式,或提取为纯文本继续
|
|
1035
1027
|
if not parsed.parse_success:
|
|
1036
|
-
# 即使解析失败,如果 regex fallback 提取到了工具调用,仍然继续执行
|
|
1037
1028
|
if parsed.tools_to_call:
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1029
|
+
# L1/L2 兜底成功提取到了工具调用 → 标记为成功,继续执行工具
|
|
1030
|
+
parsed.parse_success = True
|
|
1031
|
+
logger.warning(f"[{task_id}] 解析兜底成功: 提取到 {len(parsed.tools_to_call)} 个工具调用,继续执行")
|
|
1032
|
+
elif parsed.needs_correction and _xml_correction_retries < 3:
|
|
1033
|
+
# L3 兜底: 将原始文本回退给 LLM 让它调好格式再输出
|
|
1041
1034
|
_xml_correction_retries += 1
|
|
1042
1035
|
logger.warning(
|
|
1043
|
-
f"[{task_id}]
|
|
1044
|
-
f"(重试 {_xml_correction_retries}/
|
|
1036
|
+
f"[{task_id}] 解析兜底L3: 回退给LLM修正格式 "
|
|
1037
|
+
f"(重试 {_xml_correction_retries}/3)"
|
|
1045
1038
|
)
|
|
1046
1039
|
correction_prompt = (
|
|
1047
1040
|
"你上一次的输出格式有误,XML解析器无法识别。\n"
|
|
@@ -1058,31 +1051,23 @@ GUI桌面 (仅Windows/macOS):
|
|
|
1058
1051
|
)
|
|
1059
1052
|
await self._emit_v2_event(
|
|
1060
1053
|
"v2_reasoning",
|
|
1061
|
-
{"content": f"⚠️
|
|
1054
|
+
{"content": f"⚠️ 输出格式异常,正在自动修正({_xml_correction_retries}/3)..."},
|
|
1062
1055
|
stream_callback,
|
|
1063
1056
|
)
|
|
1064
1057
|
continue # 重新进入循环,让 LLM 重新生成
|
|
1065
1058
|
else:
|
|
1066
|
-
#
|
|
1067
|
-
logger.warning(f"[{task_id}]
|
|
1059
|
+
# 所有兜底都失败 → 把原始文本去除标签后作为 response,不中断执行
|
|
1060
|
+
logger.warning(f"[{task_id}] 所有解析兜底失败,提取原始文本作为response继续执行")
|
|
1068
1061
|
before, after = extract_surrounding_text(llm_raw)
|
|
1069
1062
|
if before.strip() or after.strip():
|
|
1070
1063
|
final_text = (before + "\n" + after).strip()
|
|
1071
1064
|
else:
|
|
1072
|
-
# 清除残余 XML 标签后作为纯文本
|
|
1073
1065
|
final_text = re.sub(r"<[^>]+>", "", llm_raw).strip()
|
|
1074
1066
|
final_text = final_text if final_text else "处理完毕。"
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
if self.memory:
|
|
1080
|
-
self.memory.add_session(
|
|
1081
|
-
session_id=context.session_id,
|
|
1082
|
-
role="assistant",
|
|
1083
|
-
content=final_text,
|
|
1084
|
-
)
|
|
1085
|
-
break
|
|
1067
|
+
parsed.parse_success = True
|
|
1068
|
+
parsed.response = final_text
|
|
1069
|
+
parsed.finish = True
|
|
1070
|
+
parsed.finish_reason = "输出格式异常,已提取文本内容作为最终回复"
|
|
1086
1071
|
|
|
1087
1072
|
warnings = validate_output(parsed)
|
|
1088
1073
|
for w in warnings:
|
package/core/output_parser.py
CHANGED
|
@@ -548,6 +548,63 @@ def _custom_parse(raw_text: str) -> ParsedOutput:
|
|
|
548
548
|
if toolstocal_raw.strip():
|
|
549
549
|
parsed.tools_to_call = _parse_toolstocal(toolstocal_raw, conservative=conservative)
|
|
550
550
|
|
|
551
|
+
# ── Step 4.5: 兜底机制 — 宽松提取工具调用,确保执行不会因解析错误而中断 ──
|
|
552
|
+
# 策略优先级:
|
|
553
|
+
# 1. _parse_toolstocal 已成功提取 → 不做任何事
|
|
554
|
+
# 2. 直接在整个输出中搜索 <tool>...</tool> 块(跳过 toolstocal 包装)
|
|
555
|
+
# 3. 搜索散落的 <toolname>...</toolname> + <parms>...</parms> 配对
|
|
556
|
+
if not parsed.tools_to_call:
|
|
557
|
+
# 兜底 Level 1: 在整个原始文本中直接搜索 <tool> 块
|
|
558
|
+
_raw_tool_blocks = _extract_all_tag_blocks(
|
|
559
|
+
raw_text, "tool", parent_close_tag=None, conservative=False,
|
|
560
|
+
)
|
|
561
|
+
for block in _raw_tool_blocks:
|
|
562
|
+
tn = _safe_strip(_extract_tag_content(block, "toolname", TOOL_INNER_TAGS))
|
|
563
|
+
if tn:
|
|
564
|
+
parsed.tools_to_call.append({
|
|
565
|
+
"beforecalltext": _safe_strip(_extract_tag_content(block, "beforecalltext", TOOL_INNER_TAGS)),
|
|
566
|
+
"toolname": tn,
|
|
567
|
+
"parms": _safe_strip(_extract_tag_content(block, "parms", TOOL_INNER_TAGS)),
|
|
568
|
+
"timeout": _parse_int(_extract_tag_content(block, "timeout", TOOL_INNER_TAGS), _DEFAULT_TIMEOUT),
|
|
569
|
+
})
|
|
570
|
+
logger.info(f"[兜底L1] 从非<toolstocal>区域提取到工具调用: {tn}")
|
|
571
|
+
|
|
572
|
+
if not parsed.tools_to_call:
|
|
573
|
+
# 兜底 Level 2: 搜索散落的 <toolname>...</toolname>,然后在同一段中找最近的 <parms>
|
|
574
|
+
_toolname_positions = []
|
|
575
|
+
for m in re.finditer(r"<toolname[^>]*>(.*?)</toolname\s*>", raw_text, re.DOTALL | re.IGNORECASE):
|
|
576
|
+
tn = html.unescape(m.group(1)).strip()
|
|
577
|
+
if tn:
|
|
578
|
+
_toolname_positions.append((m.start(), m.end(), tn))
|
|
579
|
+
|
|
580
|
+
if _toolname_positions:
|
|
581
|
+
logger.info(f"[兜底L2] 找到 {len(_toolname_positions)} 个散落的 <toolname> 标签")
|
|
582
|
+
for _i, (_start, _end, _tn) in enumerate(_toolname_positions):
|
|
583
|
+
# 在 toolname 之后的 500 字符内搜索最近的 <parms>
|
|
584
|
+
_search_region = raw_text[_end:_end + 500]
|
|
585
|
+
_parms_match = re.search(
|
|
586
|
+
r"<parms[^>]*>(.*?)</parms\s*>",
|
|
587
|
+
_search_region, re.DOTALL | re.IGNORECASE,
|
|
588
|
+
)
|
|
589
|
+
_parms = html.unescape(_parms_match.group(1)).strip() if _parms_match else ""
|
|
590
|
+
|
|
591
|
+
# 也尝试在 toolname 之前的 200 字符内搜索(parms 可能在 toolname 前面)
|
|
592
|
+
if not _parms:
|
|
593
|
+
_pre_region = raw_text[max(0, _start - 200):_start]
|
|
594
|
+
_parms_match = re.search(
|
|
595
|
+
r"<parms[^>]*>(.*?)</parms\s*>",
|
|
596
|
+
_pre_region, re.DOTALL | re.IGNORECASE,
|
|
597
|
+
)
|
|
598
|
+
_parms = html.unescape(_parms_match.group(1)).strip() if _parms_match else ""
|
|
599
|
+
|
|
600
|
+
parsed.tools_to_call.append({
|
|
601
|
+
"beforecalltext": "",
|
|
602
|
+
"toolname": _tn,
|
|
603
|
+
"parms": _parms,
|
|
604
|
+
"timeout": _DEFAULT_TIMEOUT,
|
|
605
|
+
})
|
|
606
|
+
logger.info(f"[兜底L2] 散落提取工具: {_tn}, parms={'有' if _parms else '无'}")
|
|
607
|
+
|
|
551
608
|
# ── Step 5: Determine parse success ──
|
|
552
609
|
has_content = bool(
|
|
553
610
|
parsed.response
|
package/main.py
CHANGED
|
@@ -374,10 +374,6 @@ class MyAgentApp:
|
|
|
374
374
|
|
|
375
375
|
def _register_builtin_skills(self):
|
|
376
376
|
"""注册内置技能"""
|
|
377
|
-
from skills.file_skill import (
|
|
378
|
-
FileReadSkill, FileWriteSkill, FileListSkill,
|
|
379
|
-
FileDeleteSkill, FileSearchSkill, FileMoveSkill,
|
|
380
|
-
)
|
|
381
377
|
from skills.search_skill import WebSearchSkill, WebReadSkill, URLReadSkill
|
|
382
378
|
from skills.system_skill import (
|
|
383
379
|
SystemInfoSkill, ProcessListSkill,
|
|
@@ -392,13 +388,6 @@ class MyAgentApp:
|
|
|
392
388
|
TypeTextSkill, HotkeySkill, WindowListSkill, WindowFocusSkill, ScreenElementSkill,
|
|
393
389
|
)
|
|
394
390
|
|
|
395
|
-
# 文件技能
|
|
396
|
-
for skill_cls in [
|
|
397
|
-
FileReadSkill, FileWriteSkill, FileListSkill,
|
|
398
|
-
FileDeleteSkill, FileSearchSkill, FileMoveSkill,
|
|
399
|
-
]:
|
|
400
|
-
self.skill_registry.register(skill_cls())
|
|
401
|
-
|
|
402
391
|
# 搜索技能
|
|
403
392
|
for skill_cls in [WebSearchSkill, WebReadSkill, URLReadSkill]:
|
|
404
393
|
self.skill_registry.register(skill_cls())
|
package/package.json
CHANGED
package/scripts/cli.py
CHANGED
|
@@ -9,7 +9,7 @@ scripts/cli.py - MyAgent CLI 工具集
|
|
|
9
9
|
命令分类:
|
|
10
10
|
感知: ocr, analyze-image, transcribe
|
|
11
11
|
搜索: search, read-url, fetch-url
|
|
12
|
-
文件:
|
|
12
|
+
文件: send-file
|
|
13
13
|
文档: docx-create, docx-read, xlsx-create, xlsx-read, xlsx-edit,
|
|
14
14
|
ppt-create, ppt-read, pdf-create, pdf-read
|
|
15
15
|
系统: sysinfo, ps, env, pathinfo
|
|
@@ -90,12 +90,6 @@ async def _run():
|
|
|
90
90
|
"read-url": cmd_read_url,
|
|
91
91
|
"fetch-url": cmd_fetch_url,
|
|
92
92
|
# 文件操作
|
|
93
|
-
"read": cmd_read,
|
|
94
|
-
"write": cmd_write,
|
|
95
|
-
"ls": cmd_ls,
|
|
96
|
-
"rm": cmd_rm,
|
|
97
|
-
"grep": cmd_grep,
|
|
98
|
-
"mv": cmd_mv,
|
|
99
93
|
"send-file": cmd_send_file,
|
|
100
94
|
# 文档
|
|
101
95
|
"docx-create": cmd_docx_create,
|
|
@@ -332,123 +326,6 @@ async def cmd_fetch_url(args):
|
|
|
332
326
|
# 文件操作命令
|
|
333
327
|
# =============================================================================
|
|
334
328
|
|
|
335
|
-
async def cmd_read(args):
|
|
336
|
-
"""读取文件内容"""
|
|
337
|
-
import argparse
|
|
338
|
-
p = argparse.ArgumentParser(prog="myagent-ai read", description="读取文件内容")
|
|
339
|
-
p.add_argument("path", help="文件路径")
|
|
340
|
-
p.add_argument("-e", "--encoding", default="utf-8", help="文件编码 (默认 utf-8)")
|
|
341
|
-
p.add_argument("--offset", type=int, default=0, help="起始行号 (从0开始)")
|
|
342
|
-
p.add_argument("--limit", type=int, default=500, help="读取行数 (默认500)")
|
|
343
|
-
a = p.parse_args(args)
|
|
344
|
-
|
|
345
|
-
from skills.file_skill import FileReadSkill
|
|
346
|
-
skill = FileReadSkill()
|
|
347
|
-
result = await skill.execute(path=a.path, encoding=a.encoding, offset=a.offset, limit=a.limit)
|
|
348
|
-
_print_result({"success": result.success, "message": result.message,
|
|
349
|
-
"data": result.data, "error": result.error})
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
async def cmd_write(args):
|
|
353
|
-
"""写入文件"""
|
|
354
|
-
import argparse
|
|
355
|
-
p = argparse.ArgumentParser(prog="myagent-ai write", description="写入文件")
|
|
356
|
-
p.add_argument("path", help="文件路径")
|
|
357
|
-
p.add_argument("-c", "--content", default="", help="写入内容 (或通过 stdin)")
|
|
358
|
-
p.add_argument("-e", "--encoding", default="utf-8", help="文件编码")
|
|
359
|
-
p.add_argument("--append", action="store_true", help="追加模式")
|
|
360
|
-
a = p.parse_args(args)
|
|
361
|
-
|
|
362
|
-
content = a.content
|
|
363
|
-
if not content:
|
|
364
|
-
content = _read_stdin()
|
|
365
|
-
if content is None:
|
|
366
|
-
content = ""
|
|
367
|
-
|
|
368
|
-
from skills.file_skill import FileWriteSkill
|
|
369
|
-
skill = FileWriteSkill()
|
|
370
|
-
result = await skill.execute(path=a.path, content=content, encoding=a.encoding, append=a.append)
|
|
371
|
-
_print_result({"success": result.success, "message": result.message,
|
|
372
|
-
"data": result.data, "error": result.error})
|
|
373
|
-
|
|
374
|
-
# CLI send-file 标记
|
|
375
|
-
if result.success and result.files:
|
|
376
|
-
fpath = result.files[0]
|
|
377
|
-
print(f"\n__SEND_FILE__{fpath}|文件已写入: {Path(fpath).name}__END__")
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
async def cmd_ls(args):
|
|
381
|
-
"""列出目录内容"""
|
|
382
|
-
import argparse
|
|
383
|
-
# [v1.23.46] 过滤系统 ls 参数(-l, -a, -la 等)
|
|
384
|
-
# [v1.23.48] 过滤纯数字参数(LLM 误传如 myagent-ai ls 2)
|
|
385
|
-
args = [a for a in args if not a.isdigit()]
|
|
386
|
-
args = _filter_unknown_args(args, allowed_prefixes={"-p", "--pattern", "-r", "--recursive", "--max"})
|
|
387
|
-
p = argparse.ArgumentParser(prog="myagent-ai ls", description="列出目录内容")
|
|
388
|
-
p.add_argument("path", nargs="?", default=".", help="目录路径 (默认当前目录)")
|
|
389
|
-
p.add_argument("-p", "--pattern", default="*", help="文件匹配模式 (如 *.py)")
|
|
390
|
-
p.add_argument("-r", "--recursive", action="store_true", help="递归列出")
|
|
391
|
-
p.add_argument("--max", type=int, default=500, help="最大返回条目数 (默认500)")
|
|
392
|
-
a = p.parse_args(args)
|
|
393
|
-
|
|
394
|
-
from skills.file_skill import FileListSkill
|
|
395
|
-
skill = FileListSkill()
|
|
396
|
-
result = await skill.execute(path=a.path, pattern=a.pattern, recursive=a.recursive, max_items=a.max)
|
|
397
|
-
_print_result({"success": result.success, "message": result.message,
|
|
398
|
-
"data": result.data, "error": result.error})
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
async def cmd_rm(args):
|
|
402
|
-
"""删除文件或目录"""
|
|
403
|
-
import argparse
|
|
404
|
-
p = argparse.ArgumentParser(prog="myagent-ai rm", description="删除文件或目录")
|
|
405
|
-
p.add_argument("path", help="文件/目录路径")
|
|
406
|
-
p.add_argument("-r", "--recursive", action="store_true", help="递归删除目录")
|
|
407
|
-
a = p.parse_args(args)
|
|
408
|
-
|
|
409
|
-
from skills.file_skill import FileDeleteSkill
|
|
410
|
-
skill = FileDeleteSkill()
|
|
411
|
-
result = await skill.execute(path=a.path, recursive=a.recursive)
|
|
412
|
-
_print_result({"success": result.success, "message": result.message,
|
|
413
|
-
"data": result.data, "error": result.error})
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
async def cmd_grep(args):
|
|
417
|
-
"""搜索文件内容"""
|
|
418
|
-
import argparse
|
|
419
|
-
# [v1.23.46] 使用通用过滤器,过滤系统 grep 参数(-n, -i, -r 等)
|
|
420
|
-
args = _filter_unknown_args(args, allowed_prefixes={"-p", "--pattern", "--max", "--depth"})
|
|
421
|
-
p = argparse.ArgumentParser(prog="myagent-ai grep", description="在目录中搜索文件内容")
|
|
422
|
-
p.add_argument("query", help="搜索关键词")
|
|
423
|
-
p.add_argument("path", help="搜索目录路径")
|
|
424
|
-
p.add_argument("-p", "--pattern", default="*", help="文件匹配模式 (如 *.py)")
|
|
425
|
-
p.add_argument("--max", type=int, default=50, help="最大结果数 (默认50)")
|
|
426
|
-
p.add_argument("--depth", type=int, default=10, help="最大递归深度 (默认10)")
|
|
427
|
-
a = p.parse_args(args)
|
|
428
|
-
|
|
429
|
-
from skills.file_skill import FileSearchSkill
|
|
430
|
-
skill = FileSearchSkill()
|
|
431
|
-
result = await skill.execute(path=a.path, query=a.query, pattern=a.pattern,
|
|
432
|
-
max_results=a.max, max_depth=a.depth)
|
|
433
|
-
_print_result({"success": result.success, "message": result.message,
|
|
434
|
-
"data": result.data, "error": result.error})
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
async def cmd_mv(args):
|
|
438
|
-
"""移动/重命名文件"""
|
|
439
|
-
import argparse
|
|
440
|
-
p = argparse.ArgumentParser(prog="myagent-ai mv", description="移动或重命名文件/目录")
|
|
441
|
-
p.add_argument("source", help="源路径")
|
|
442
|
-
p.add_argument("dest", help="目标路径")
|
|
443
|
-
a = p.parse_args(args)
|
|
444
|
-
|
|
445
|
-
from skills.file_skill import FileMoveSkill
|
|
446
|
-
skill = FileMoveSkill()
|
|
447
|
-
result = await skill.execute(source=a.source, destination=a.dest)
|
|
448
|
-
_print_result({"success": result.success, "message": result.message,
|
|
449
|
-
"data": result.data, "error": result.error})
|
|
450
|
-
|
|
451
|
-
|
|
452
329
|
async def cmd_send_file(args):
|
|
453
330
|
"""发送文件给用户"""
|
|
454
331
|
import argparse
|
package/skills/ASR/LICENSE.txt
CHANGED
|
File without changes
|
package/skills/ASR/SKILL.md
CHANGED
|
File without changes
|
|
File without changes
|
package/skills/LLM/LICENSE.txt
CHANGED
|
File without changes
|
package/skills/LLM/SKILL.md
CHANGED
|
File without changes
|
|
File without changes
|
package/skills/TTS/LICENSE.txt
CHANGED
|
File without changes
|
package/skills/TTS/SKILL.md
CHANGED
|
File without changes
|
package/skills/TTS/tts.ts
CHANGED
|
File without changes
|
package/skills/VLM/LICENSE.txt
CHANGED
|
File without changes
|
package/skills/VLM/SKILL.md
CHANGED
|
File without changes
|
|
File without changes
|
package/skills/__init__.py
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/skills/base.py
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/skills/browser_skill.py
CHANGED
|
File without changes
|
|
File without changes
|
package/skills/charts/SKILL.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/skills/charts/setup.sh
CHANGED
|
File without changes
|
package/skills/chromedev_mcp.py
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/skills/docx/LICENSE.txt
CHANGED
|
File without changes
|
package/skills/docx/SKILL.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|