myagent-ai 1.23.73 → 1.23.75
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/core/agent_storage.py +482 -0
- package/package.json +1 -1
- package/scripts/cli.py +71 -16
- package/web/api_server.py +258 -346
- package/myagent/Dockerfile +0 -54
- package/myagent/README.md +0 -375
- package/myagent/agents/__init__.py +0 -6
- package/myagent/agents/base.py +0 -441
- package/myagent/agents/main_agent.py +0 -1703
- 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/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 -758
- package/myagent/core/update_manager.py +0 -1392
- package/myagent/core/utils.py +0 -202
- package/myagent/core/version.py +0 -71
- package/myagent/core/vnc_manager.py +0 -1211
- package/myagent/core/web_control.py +0 -729
- 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 -815
- 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 -1808
- 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 -1329
- package/myagent/scripts/setup_helper.py +0 -33
- package/myagent/setup.py +0 -72
- package/myagent/skills/ASR/LICENSE.txt +0 -21
- package/myagent/skills/ASR/SKILL.md +0 -580
- package/myagent/skills/ASR/scripts/asr.ts +0 -27
- package/myagent/skills/LLM/LICENSE.txt +0 -21
- package/myagent/skills/LLM/SKILL.md +0 -856
- package/myagent/skills/LLM/scripts/chat.ts +0 -32
- package/myagent/skills/TTS/LICENSE.txt +0 -21
- package/myagent/skills/TTS/SKILL.md +0 -735
- package/myagent/skills/TTS/tts.ts +0 -25
- package/myagent/skills/VLM/LICENSE.txt +0 -21
- package/myagent/skills/VLM/SKILL.md +0 -588
- package/myagent/skills/VLM/scripts/vlm.ts +0 -57
- package/myagent/skills/__init__.py +0 -5
- package/myagent/skills/agent-browser/SKILL.md +0 -328
- package/myagent/skills/agent_tool_skill.py +0 -113
- package/myagent/skills/ai-news-collectors/SKILL.md +0 -157
- package/myagent/skills/ai-news-collectors/_meta.json +0 -6
- package/myagent/skills/ai-news-collectors/references/sources.md +0 -128
- package/myagent/skills/aminer-open-academic/SKILL.md +0 -312
- package/myagent/skills/aminer-open-academic/_meta.json +0 -6
- package/myagent/skills/aminer-open-academic/evals/evals.json +0 -46
- package/myagent/skills/aminer-open-academic/references/api-catalog.md +0 -1032
- package/myagent/skills/aminer-open-academic/scripts/aminer_client.py +0 -875
- package/myagent/skills/auto-target-tracker/SKILL.md +0 -317
- package/myagent/skills/base.py +0 -153
- package/myagent/skills/blog-writer/2024-02-17-radical-transparency-sales.md +0 -35
- package/myagent/skills/blog-writer/2024-02-17-raycast-spotlight-superpowers.md +0 -33
- package/myagent/skills/blog-writer/2024-02-17-short-form-content-marketing.md +0 -47
- package/myagent/skills/blog-writer/2024-02-17-typing-speed-benefits.md +0 -33
- package/myagent/skills/blog-writer/2024-03-14-effective-ai-prompts.md +0 -55
- package/myagent/skills/blog-writer/2024-11-08-ai-revolutionizing-entry-level-sales.md +0 -43
- package/myagent/skills/blog-writer/2025-11-12-why-ai-art-is-useless.md +0 -49
- package/myagent/skills/blog-writer/README.md +0 -2
- package/myagent/skills/blog-writer/SKILL.md +0 -158
- package/myagent/skills/blog-writer/_meta.json +0 -6
- package/myagent/skills/blog-writer/manage_examples.py +0 -90
- package/myagent/skills/blog-writer/style-guide.md +0 -160
- package/myagent/skills/browser_skill.py +0 -32
- package/myagent/skills/charts/LICENSE.txt +0 -13
- package/myagent/skills/charts/SKILL.md +0 -427
- package/myagent/skills/charts/references/_rules.md +0 -49
- package/myagent/skills/charts/references/d3.md +0 -199
- package/myagent/skills/charts/references/echarts.md +0 -651
- package/myagent/skills/charts/references/matplotlib.md +0 -617
- package/myagent/skills/charts/references/mermaid.md +0 -797
- package/myagent/skills/charts/references/mindmap-css.md +0 -911
- package/myagent/skills/charts/references/playwright-css.md +0 -801
- package/myagent/skills/charts/references/radial-grid.md +0 -576
- package/myagent/skills/charts/references/seaborn.md +0 -324
- package/myagent/skills/charts/setup.sh +0 -228
- package/myagent/skills/chromedev_mcp.py +0 -1669
- package/myagent/skills/coding-agent/SKILL.md +0 -120
- package/myagent/skills/coding-agent/_meta.json +0 -6
- package/myagent/skills/coding-agent/criteria.md +0 -48
- package/myagent/skills/coding-agent/execution.md +0 -42
- package/myagent/skills/coding-agent/memory-template.md +0 -38
- package/myagent/skills/coding-agent/planning.md +0 -31
- package/myagent/skills/coding-agent/state.md +0 -60
- package/myagent/skills/coding-agent/verification.md +0 -39
- package/myagent/skills/content-strategy/SKILL.md +0 -181
- package/myagent/skills/content-strategy/_meta.json +0 -6
- package/myagent/skills/contentanalysis/ExtractWisdom/SKILL.md +0 -229
- package/myagent/skills/contentanalysis/ExtractWisdom/Workflows/Extract.md +0 -60
- package/myagent/skills/contentanalysis/SKILL.md +0 -14
- package/myagent/skills/docx/LICENSE.txt +0 -13
- package/myagent/skills/docx/SKILL.md +0 -201
- package/myagent/skills/docx/references/chart-templates.md +0 -386
- package/myagent/skills/docx/references/common-rules.md +0 -419
- package/myagent/skills/docx/references/decorations.md +0 -538
- package/myagent/skills/docx/references/design-system.md +0 -1797
- package/myagent/skills/docx/references/docx-js-advanced.md +0 -257
- package/myagent/skills/docx/references/docx-js-core.md +0 -333
- package/myagent/skills/docx/references/faq.md +0 -323
- package/myagent/skills/docx/references/math-formulas.md +0 -276
- package/myagent/skills/docx/references/ooxml.md +0 -222
- package/myagent/skills/docx/references/toc.md +0 -264
- package/myagent/skills/docx/routes/comment.md +0 -88
- package/myagent/skills/docx/routes/create.md +0 -207
- package/myagent/skills/docx/routes/edit.md +0 -115
- package/myagent/skills/docx/routes/format.md +0 -120
- package/myagent/skills/docx/routes/read.md +0 -114
- package/myagent/skills/docx/scenes/academic.md +0 -783
- package/myagent/skills/docx/scenes/contract.md +0 -463
- package/myagent/skills/docx/scenes/copywriting.md +0 -139
- package/myagent/skills/docx/scenes/exam.md +0 -698
- package/myagent/skills/docx/scenes/official-doc.md +0 -411
- package/myagent/skills/docx/scenes/report.md +0 -340
- package/myagent/skills/docx/scenes/resume.md +0 -534
- package/myagent/skills/docx/scripts/__init__.py +0 -1
- package/myagent/skills/docx/scripts/add_toc_placeholders.py +0 -749
- package/myagent/skills/docx/scripts/document.py +0 -1333
- package/myagent/skills/docx/scripts/postcheck.py +0 -807
- package/myagent/skills/docx/scripts/templates/comments.xml +0 -3
- package/myagent/skills/docx/scripts/templates/commentsExtended.xml +0 -3
- package/myagent/skills/docx/scripts/templates/commentsExtensible.xml +0 -3
- package/myagent/skills/docx/scripts/templates/commentsIds.xml +0 -3
- package/myagent/skills/docx/scripts/templates/people.xml +0 -3
- package/myagent/skills/docx/scripts/utilities.py +0 -374
- package/myagent/skills/docx/setup.sh +0 -177
- package/myagent/skills/docx_skill.py +0 -213
- package/myagent/skills/dream-interpreter/SKILL.md +0 -88
- package/myagent/skills/dream-interpreter/assets/example_asset.txt +0 -24
- package/myagent/skills/dream-interpreter/references/api_reference.md +0 -34
- package/myagent/skills/dream-interpreter/references/interpretation-guide.md +0 -83
- package/myagent/skills/dream-interpreter/references/output-schema.md +0 -65
- package/myagent/skills/dream-interpreter/references/questioning-strategy.md +0 -62
- package/myagent/skills/dream-interpreter/references/visual-mapping.md +0 -81
- package/myagent/skills/dream-interpreter/scripts/example.py +0 -19
- package/myagent/skills/dream-interpreter/skill.json +0 -7
- package/myagent/skills/example-skill/SKILL.md +0 -33
- package/myagent/skills/example-skill/run.sh +0 -11
- package/myagent/skills/file_send.py +0 -142
- package/myagent/skills/file_skill.py +0 -573
- package/myagent/skills/finance/Finance_API_Doc.md +0 -445
- package/myagent/skills/finance/SKILL.md +0 -53
- package/myagent/skills/frontend-dev/SKILL.md +0 -567
- 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/fullstack-dev/SKILL.md +0 -1037
- package/myagent/skills/fullstack-dev/references/api-design.md +0 -444
- package/myagent/skills/fullstack-dev/references/auth-flow.md +0 -165
- package/myagent/skills/fullstack-dev/references/db-schema.md +0 -706
- package/myagent/skills/fullstack-dev/references/django-best-practices.md +0 -466
- package/myagent/skills/fullstack-dev/references/environment-management.md +0 -78
- package/myagent/skills/fullstack-dev/references/release-checklist.md +0 -278
- package/myagent/skills/fullstack-dev/references/technology-selection.md +0 -254
- package/myagent/skills/fullstack-dev/references/testing-strategy.md +0 -404
- package/myagent/skills/get-fortune-analysis/SKILL.md +0 -370
- package/myagent/skills/get-fortune-analysis/lunar_python.py +0 -91
- package/myagent/skills/gift-evaluator/SKILL.md +0 -83
- package/myagent/skills/gift-evaluator/html_tools.py +0 -268
- package/myagent/skills/gui_skill.py +0 -883
- package/myagent/skills/image-edit/LICENSE.txt +0 -21
- package/myagent/skills/image-edit/SKILL.md +0 -896
- package/myagent/skills/image-edit/scripts/image-edit.ts +0 -36
- package/myagent/skills/image-generation/LICENSE.txt +0 -21
- package/myagent/skills/image-generation/SKILL.md +0 -583
- package/myagent/skills/image-generation/scripts/image-generation.ts +0 -28
- package/myagent/skills/image-understand/LICENSE.txt +0 -21
- package/myagent/skills/image-understand/SKILL.md +0 -855
- package/myagent/skills/image-understand/scripts/image-understand.ts +0 -41
- package/myagent/skills/interview-designer/README.md +0 -70
- package/myagent/skills/interview-designer/SKILL.md +0 -53
- package/myagent/skills/interview-designer/_meta.json +0 -6
- package/myagent/skills/interview-designer/references/design_rationale.md +0 -43
- package/myagent/skills/interview-designer/templates/interview_guide_template.md +0 -62
- package/myagent/skills/market-research-reports/SKILL.md +0 -901
- package/myagent/skills/market-research-reports/assets/FORMATTING_GUIDE.md +0 -428
- package/myagent/skills/market-research-reports/assets/market_report_template.tex +0 -1380
- package/myagent/skills/market-research-reports/assets/market_research.sty +0 -564
- package/myagent/skills/market-research-reports/references/data_analysis_patterns.md +0 -548
- package/myagent/skills/market-research-reports/references/report_structure_guide.md +0 -999
- package/myagent/skills/market-research-reports/references/visual_generation_guide.md +0 -1077
- package/myagent/skills/market-research-reports/scripts/generate_market_visuals.py +0 -529
- package/myagent/skills/marketing-mode/README.md +0 -49
- package/myagent/skills/marketing-mode/SKILL.md +0 -693
- package/myagent/skills/marketing-mode/_meta.json +0 -6
- package/myagent/skills/marketing-mode/mode-prompt.md +0 -39
- package/myagent/skills/marketing-mode/skill.json +0 -51
- package/myagent/skills/mindfulness-meditation/SKILL.md +0 -65
- package/myagent/skills/mindfulness-meditation/_meta.json +0 -6
- package/myagent/skills/multi-search-engine/CHANGELOG.md +0 -15
- package/myagent/skills/multi-search-engine/CHANNELLOG.md +0 -48
- package/myagent/skills/multi-search-engine/SKILL.md +0 -78
- package/myagent/skills/multi-search-engine/_meta.json +0 -6
- package/myagent/skills/multi-search-engine/config.json +0 -14
- package/myagent/skills/multi-search-engine/metadata.json +0 -7
- package/myagent/skills/multi-search-engine/references/international-search.md +0 -651
- package/myagent/skills/pdf/LICENSE.txt +0 -13
- package/myagent/skills/pdf/SKILL.md +0 -921
- package/myagent/skills/pdf/briefs/academic.md +0 -1058
- package/myagent/skills/pdf/briefs/creative.md +0 -770
- package/myagent/skills/pdf/briefs/poster.md +0 -702
- package/myagent/skills/pdf/briefs/process-advanced.md +0 -284
- package/myagent/skills/pdf/briefs/process.md +0 -319
- package/myagent/skills/pdf/briefs/report.md +0 -1659
- package/myagent/skills/pdf/configs/components.md +0 -153
- package/myagent/skills/pdf/configs/fonts.md +0 -93
- package/myagent/skills/pdf/configs/visual_framework.md +0 -263
- package/myagent/skills/pdf/references/resume-academic.tex +0 -130
- package/myagent/skills/pdf/references/resume-altacv.tex +0 -190
- package/myagent/skills/pdf/scripts/cover_validate.js +0 -367
- package/myagent/skills/pdf/scripts/design_engine.py +0 -2816
- package/myagent/skills/pdf/scripts/html2pdf-next.js +0 -754
- package/myagent/skills/pdf/scripts/html2poster.js +0 -256
- package/myagent/skills/pdf/scripts/pdf.py +0 -2959
- package/myagent/skills/pdf/scripts/pdf_qa.py +0 -901
- package/myagent/skills/pdf/scripts/poster_validate.py +0 -1337
- package/myagent/skills/pdf/scripts/setup.sh +0 -269
- package/myagent/skills/pdf/scripts/toc_validate.py +0 -2075
- package/myagent/skills/pdf/typesetting/charts.md +0 -320
- package/myagent/skills/pdf/typesetting/cover-backgrounds.md +0 -384
- package/myagent/skills/pdf/typesetting/cover.md +0 -1442
- package/myagent/skills/pdf/typesetting/fill-engine.md +0 -527
- package/myagent/skills/pdf/typesetting/geometry.md +0 -142
- package/myagent/skills/pdf/typesetting/overflow.md +0 -630
- package/myagent/skills/pdf/typesetting/pagination.md +0 -367
- package/myagent/skills/pdf/typesetting/palette.md +0 -217
- package/myagent/skills/pdf/typesetting/typography.md +0 -20
- package/myagent/skills/pdf_skill.py +0 -372
- package/myagent/skills/podcast-generate/LICENSE.txt +0 -21
- package/myagent/skills/podcast-generate/SKILL.md +0 -198
- package/myagent/skills/podcast-generate/generate.ts +0 -661
- package/myagent/skills/podcast-generate/package.json +0 -30
- package/myagent/skills/podcast-generate/readme.md +0 -177
- package/myagent/skills/podcast-generate/test_data/segments.jsonl +0 -3
- package/myagent/skills/podcast-generate/tsconfig.json +0 -26
- package/myagent/skills/ppt/.claude/settings.local.json +0 -20
- package/myagent/skills/ppt/LICENSE.txt +0 -13
- package/myagent/skills/ppt/SKILL.md +0 -436
- package/myagent/skills/ppt/beamer.md +0 -1461
- package/myagent/skills/ppt/components.md +0 -1671
- package/myagent/skills/ppt/data-viz-components.md +0 -529
- package/myagent/skills/ppt/design-system.md +0 -211
- package/myagent/skills/ppt/html2pptx.md +0 -394
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/myagent/skills/ppt/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/myagent/skills/ppt/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/myagent/skills/ppt/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/myagent/skills/ppt/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/myagent/skills/ppt/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/myagent/skills/ppt/ooxml/schemas/mce/mc.xsd +0 -75
- package/myagent/skills/ppt/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
- package/myagent/skills/ppt/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
- package/myagent/skills/ppt/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
- package/myagent/skills/ppt/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/myagent/skills/ppt/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/myagent/skills/ppt/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/myagent/skills/ppt/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/myagent/skills/ppt/ooxml/scripts/pack.py +0 -159
- package/myagent/skills/ppt/ooxml/scripts/unpack.py +0 -45
- package/myagent/skills/ppt/ooxml/scripts/validate.py +0 -70
- package/myagent/skills/ppt/ooxml/scripts/validation/__init__.py +0 -15
- package/myagent/skills/ppt/ooxml/scripts/validation/base.py +0 -948
- package/myagent/skills/ppt/ooxml/scripts/validation/docx.py +0 -274
- package/myagent/skills/ppt/ooxml/scripts/validation/pptx.py +0 -309
- package/myagent/skills/ppt/ooxml/scripts/validation/redlining.py +0 -279
- package/myagent/skills/ppt/ooxml.md +0 -427
- package/myagent/skills/ppt/references/beamer.md +0 -721
- package/myagent/skills/ppt/references/latex.md +0 -342
- package/myagent/skills/ppt/references/paper-navbar.tex +0 -73
- package/myagent/skills/ppt/references/progress-navbar.tex +0 -151
- package/myagent/skills/ppt/scripts/html2pptx.js +0 -1337
- package/myagent/skills/ppt/scripts/inventory.py +0 -512
- package/myagent/skills/ppt/scripts/pdf.py +0 -2046
- package/myagent/skills/ppt/scripts/rearrange.py +0 -144
- package/myagent/skills/ppt/scripts/replace.py +0 -231
- package/myagent/skills/ppt/scripts/tectonic +0 -0
- package/myagent/skills/ppt/scripts/thumbnail.py +0 -352
- package/myagent/skills/ppt/setup.sh +0 -197
- package/myagent/skills/ppt/themes.md +0 -581
- package/myagent/skills/ppt_skill.py +0 -317
- 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/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/myagent/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/myagent/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/myagent/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/myagent/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/myagent/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/myagent/skills/pptx/ooxml/schemas/mce/mc.xsd +0 -75
- package/myagent/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
- package/myagent/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
- package/myagent/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
- package/myagent/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/myagent/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/myagent/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/myagent/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/myagent/skills/pptx/ooxml/scripts/pack.py +0 -159
- package/myagent/skills/pptx/ooxml/scripts/unpack.py +0 -29
- package/myagent/skills/pptx/ooxml/scripts/validate.py +0 -69
- package/myagent/skills/pptx/ooxml/scripts/validation/__init__.py +0 -15
- package/myagent/skills/pptx/ooxml/scripts/validation/base.py +0 -951
- package/myagent/skills/pptx/ooxml/scripts/validation/docx.py +0 -274
- package/myagent/skills/pptx/ooxml/scripts/validation/pptx.py +0 -315
- package/myagent/skills/pptx/ooxml/scripts/validation/redlining.py +0 -279
- package/myagent/skills/pptx/ooxml.md +0 -427
- package/myagent/skills/pptx/scripts/html2pptx.js +0 -1044
- 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/skills/pptx/scripts/thumbnail.py +0 -450
- package/myagent/skills/qingyan-research/SKILL.md +0 -294
- package/myagent/skills/qingyan-research/generate_html.py +0 -33
- package/myagent/skills/registry.py +0 -599
- package/myagent/skills/search_skill.py +0 -453
- package/myagent/skills/seo-content-writer/SKILL.md +0 -661
- package/myagent/skills/seo-content-writer/_meta.json +0 -6
- package/myagent/skills/seo-content-writer/references/content-structure-templates.md +0 -875
- package/myagent/skills/seo-content-writer/references/title-formulas.md +0 -339
- package/myagent/skills/skill-creator/LICENSE.txt +0 -202
- package/myagent/skills/skill-creator/SKILL.md +0 -485
- package/myagent/skills/skill-creator/agents/analyzer.md +0 -274
- package/myagent/skills/skill-creator/agents/comparator.md +0 -202
- package/myagent/skills/skill-creator/agents/grader.md +0 -223
- package/myagent/skills/skill-creator/assets/eval_review.html +0 -146
- package/myagent/skills/skill-creator/eval-viewer/generate_review.py +0 -471
- package/myagent/skills/skill-creator/eval-viewer/viewer.html +0 -1325
- package/myagent/skills/skill-creator/references/schemas.md +0 -430
- package/myagent/skills/skill-creator/scripts/__init__.py +0 -0
- package/myagent/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
- package/myagent/skills/skill-creator/scripts/generate_report.py +0 -326
- package/myagent/skills/skill-creator/scripts/improve_description.py +0 -236
- package/myagent/skills/skill-creator/scripts/package_skill.py +0 -136
- package/myagent/skills/skill-creator/scripts/quick_validate.py +0 -103
- package/myagent/skills/skill-creator/scripts/run_eval.py +0 -310
- package/myagent/skills/skill-creator/scripts/run_loop.py +0 -328
- package/myagent/skills/skill-creator/scripts/utils.py +0 -47
- package/myagent/skills/skill-finder-cn/SKILL.md +0 -66
- package/myagent/skills/skill-finder-cn/_meta.json +0 -6
- package/myagent/skills/skill-finder-cn/package.json +0 -5
- package/myagent/skills/skill-finder-cn/scripts/search.sh +0 -15
- package/myagent/skills/skill-vetter/SKILL.md +0 -137
- package/myagent/skills/stock-analysis-skill/SKILL.md +0 -156
- package/myagent/skills/stock-analysis-skill/package.json +0 -21
- package/myagent/skills/stock-analysis-skill/src/analyzer.ts +0 -264
- package/myagent/skills/stock-analysis-skill/src/dataFetcher.ts +0 -130
- package/myagent/skills/stock-analysis-skill/src/dividend.ts +0 -226
- package/myagent/skills/stock-analysis-skill/src/index.ts +0 -327
- package/myagent/skills/stock-analysis-skill/src/rumorScanner.ts +0 -200
- package/myagent/skills/stock-analysis-skill/src/types.ts +0 -167
- package/myagent/skills/stock-analysis-skill/src/watchlist.ts +0 -292
- package/myagent/skills/stock-analysis-skill/tsconfig.json +0 -15
- package/myagent/skills/storyboard-manager/SKILL.md +0 -532
- package/myagent/skills/storyboard-manager/index.js +0 -9
- package/myagent/skills/storyboard-manager/package.json +0 -11
- package/myagent/skills/storyboard-manager/references/character_development.md +0 -232
- package/myagent/skills/storyboard-manager/references/story_structures.md +0 -148
- package/myagent/skills/storyboard-manager/scripts/consistency_checker.py +0 -391
- package/myagent/skills/storyboard-manager/scripts/timeline_tracker.py +0 -352
- package/myagent/skills/system_skill.py +0 -258
- package/myagent/skills/ui-ux-pro-max/SKILL.md +0 -43
- package/myagent/skills/ui-ux-pro-max/_meta.json +0 -6
- package/myagent/skills/ui-ux-pro-max/assets/data/charts.csv +0 -26
- package/myagent/skills/ui-ux-pro-max/assets/data/colors.csv +0 -97
- package/myagent/skills/ui-ux-pro-max/assets/data/icons.csv +0 -101
- package/myagent/skills/ui-ux-pro-max/assets/data/landing.csv +0 -31
- package/myagent/skills/ui-ux-pro-max/assets/data/products.csv +0 -97
- package/myagent/skills/ui-ux-pro-max/assets/data/react-performance.csv +0 -45
- package/myagent/skills/ui-ux-pro-max/assets/data/stacks/astro.csv +0 -54
- package/myagent/skills/ui-ux-pro-max/assets/data/stacks/flutter.csv +0 -53
- package/myagent/skills/ui-ux-pro-max/assets/data/stacks/html-tailwind.csv +0 -56
- package/myagent/skills/ui-ux-pro-max/assets/data/stacks/jetpack-compose.csv +0 -53
- package/myagent/skills/ui-ux-pro-max/assets/data/stacks/nextjs.csv +0 -53
- package/myagent/skills/ui-ux-pro-max/assets/data/stacks/nuxt-ui.csv +0 -51
- package/myagent/skills/ui-ux-pro-max/assets/data/stacks/nuxtjs.csv +0 -59
- package/myagent/skills/ui-ux-pro-max/assets/data/stacks/react-native.csv +0 -52
- package/myagent/skills/ui-ux-pro-max/assets/data/stacks/react.csv +0 -54
- package/myagent/skills/ui-ux-pro-max/assets/data/stacks/shadcn.csv +0 -61
- package/myagent/skills/ui-ux-pro-max/assets/data/stacks/svelte.csv +0 -54
- package/myagent/skills/ui-ux-pro-max/assets/data/stacks/swiftui.csv +0 -51
- package/myagent/skills/ui-ux-pro-max/assets/data/stacks/vue.csv +0 -50
- package/myagent/skills/ui-ux-pro-max/assets/data/styles.csv +0 -68
- package/myagent/skills/ui-ux-pro-max/assets/data/typography.csv +0 -58
- package/myagent/skills/ui-ux-pro-max/assets/data/ui-reasoning.csv +0 -101
- package/myagent/skills/ui-ux-pro-max/assets/data/ux-guidelines.csv +0 -100
- package/myagent/skills/ui-ux-pro-max/assets/data/web-interface.csv +0 -31
- package/myagent/skills/ui-ux-pro-max/data/charts.csv +0 -26
- package/myagent/skills/ui-ux-pro-max/data/colors.csv +0 -97
- package/myagent/skills/ui-ux-pro-max/data/icons.csv +0 -101
- package/myagent/skills/ui-ux-pro-max/data/landing.csv +0 -31
- package/myagent/skills/ui-ux-pro-max/data/products.csv +0 -97
- package/myagent/skills/ui-ux-pro-max/data/react-performance.csv +0 -45
- package/myagent/skills/ui-ux-pro-max/data/stacks/astro.csv +0 -54
- package/myagent/skills/ui-ux-pro-max/data/stacks/flutter.csv +0 -53
- package/myagent/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +0 -56
- package/myagent/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +0 -53
- package/myagent/skills/ui-ux-pro-max/data/stacks/nextjs.csv +0 -53
- package/myagent/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +0 -51
- package/myagent/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +0 -59
- package/myagent/skills/ui-ux-pro-max/data/stacks/react-native.csv +0 -52
- package/myagent/skills/ui-ux-pro-max/data/stacks/react.csv +0 -54
- package/myagent/skills/ui-ux-pro-max/data/stacks/shadcn.csv +0 -61
- package/myagent/skills/ui-ux-pro-max/data/stacks/svelte.csv +0 -54
- package/myagent/skills/ui-ux-pro-max/data/stacks/swiftui.csv +0 -51
- package/myagent/skills/ui-ux-pro-max/data/stacks/vue.csv +0 -50
- package/myagent/skills/ui-ux-pro-max/data/styles.csv +0 -68
- package/myagent/skills/ui-ux-pro-max/data/typography.csv +0 -58
- package/myagent/skills/ui-ux-pro-max/data/ui-reasoning.csv +0 -101
- package/myagent/skills/ui-ux-pro-max/data/ux-guidelines.csv +0 -100
- package/myagent/skills/ui-ux-pro-max/data/web-interface.csv +0 -31
- package/myagent/skills/ui-ux-pro-max/references/upstream-README.md +0 -488
- package/myagent/skills/ui-ux-pro-max/references/upstream-skill-content.md +0 -288
- package/myagent/skills/ui-ux-pro-max/scripts/__init__.py +0 -0
- package/myagent/skills/ui-ux-pro-max/scripts/core.py +0 -253
- package/myagent/skills/ui-ux-pro-max/scripts/design_system.py +0 -1071
- package/myagent/skills/ui-ux-pro-max/scripts/search.py +0 -111
- package/myagent/skills/video-generation/LICENSE.txt +0 -21
- package/myagent/skills/video-generation/SKILL.md +0 -1082
- package/myagent/skills/video-generation/scripts/video.ts +0 -168
- package/myagent/skills/video-understand/LICENSE.txt +0 -21
- package/myagent/skills/video-understand/SKILL.md +0 -916
- package/myagent/skills/video-understand/scripts/video-understand.ts +0 -41
- package/myagent/skills/visual-design-foundations/SKILL.md +0 -318
- package/myagent/skills/visual-design-foundations/references/color-systems.md +0 -417
- package/myagent/skills/visual-design-foundations/references/spacing-iconography.md +0 -425
- package/myagent/skills/visual-design-foundations/references/typography-systems.md +0 -432
- package/myagent/skills/web-reader/LICENSE.txt +0 -21
- package/myagent/skills/web-reader/SKILL.md +0 -1140
- package/myagent/skills/web-reader/scripts/web-reader.ts +0 -37
- package/myagent/skills/web-search/LICENSE.txt +0 -21
- package/myagent/skills/web-search/SKILL.md +0 -912
- package/myagent/skills/web-search/scripts/web_search.ts +0 -44
- package/myagent/skills/web-shader-extractor/SKILL.md +0 -145
- package/myagent/skills/web-shader-extractor/references/config-extraction.md +0 -50
- package/myagent/skills/web-shader-extractor/references/encoded-definitions.md +0 -53
- package/myagent/skills/web-shader-extractor/references/extraction-workflow.md +0 -61
- package/myagent/skills/web-shader-extractor/references/porting-strategy.md +0 -164
- package/myagent/skills/web-shader-extractor/references/shader-injection.md +0 -126
- package/myagent/skills/web-shader-extractor/references/shaders-com.md +0 -190
- package/myagent/skills/web-shader-extractor/references/tech-signatures.md +0 -54
- package/myagent/skills/web-shader-extractor/references/tsl-extraction.md +0 -41
- package/myagent/skills/web-shader-extractor/references/unicorn-studio.md +0 -353
- package/myagent/skills/web-shader-extractor/scripts/fetch-rendered-dom.mjs +0 -153
- package/myagent/skills/web-shader-extractor/scripts/scan-bundle.sh +0 -76
- package/myagent/skills/writing-plans/SKILL.md +0 -116
- package/myagent/skills/writing-plans/_meta.json +0 -6
- package/myagent/skills/xlsx/LICENSE.txt +0 -13
- package/myagent/skills/xlsx/SKILL.md +0 -230
- package/myagent/skills/xlsx/engines/chart-templates.md +0 -167
- package/myagent/skills/xlsx/engines/chart.md +0 -87
- package/myagent/skills/xlsx/engines/design.md +0 -575
- package/myagent/skills/xlsx/engines/vba-templates.md +0 -435
- package/myagent/skills/xlsx/quality/pipeline.md +0 -196
- package/myagent/skills/xlsx/scenes/advanced.md +0 -271
- package/myagent/skills/xlsx/scenes/analyze-recipes.md +0 -234
- package/myagent/skills/xlsx/scenes/analyze.md +0 -95
- package/myagent/skills/xlsx/scenes/convert.md +0 -133
- package/myagent/skills/xlsx/scenes/create.md +0 -105
- package/myagent/skills/xlsx/scenes/edit-patterns.md +0 -222
- package/myagent/skills/xlsx/scenes/edit.md +0 -195
- package/myagent/skills/xlsx/scenes/finance.md +0 -318
- package/myagent/skills/xlsx/scenes/finance_lite.md +0 -192
- package/myagent/skills/xlsx/scenes/vba.md +0 -298
- package/myagent/skills/xlsx/setup.sh +0 -136
- package/myagent/skills/xlsx/templates/base.py +0 -632
- package/myagent/skills/xlsx/templates/palettes.py +0 -521
- package/myagent/skills/xlsx/xlsx.py +0 -1299
- package/myagent/skills/xlsx_skill.py +0 -346
- package/myagent/start.js +0 -847
- package/myagent/start.sh +0 -240
- package/myagent/web/__init__.py +0 -1
- package/myagent/web/api_server.py +0 -8978
- package/myagent/web/tts_handler.py +0 -216
- package/myagent/web/ui/admin/admin-agentchat.js +0 -175
- package/myagent/web/ui/admin/admin-agents.js +0 -565
- package/myagent/web/ui/admin/admin-core.js +0 -386
- package/myagent/web/ui/admin/admin-dashboard.js +0 -148
- package/myagent/web/ui/admin/admin-executor.js +0 -62
- package/myagent/web/ui/admin/admin-files.js +0 -76
- package/myagent/web/ui/admin/admin-llm.js +0 -185
- package/myagent/web/ui/admin/admin-logs.js +0 -64
- package/myagent/web/ui/admin/admin-memory.js +0 -86
- package/myagent/web/ui/admin/admin-org.js +0 -278
- package/myagent/web/ui/admin/admin-permissions.js +0 -142
- package/myagent/web/ui/admin/admin-platforms.js +0 -256
- package/myagent/web/ui/admin/admin-sessions.js +0 -218
- package/myagent/web/ui/admin/admin-skills.js +0 -212
- package/myagent/web/ui/admin/admin-system.js +0 -149
- package/myagent/web/ui/admin/admin-tasks.js +0 -126
- package/myagent/web/ui/chat/chat.css +0 -2739
- package/myagent/web/ui/chat/chat.js +0 -52
- package/myagent/web/ui/chat/chat_container.html +0 -335
- package/myagent/web/ui/chat/chat_main.js +0 -5741
- package/myagent/web/ui/chat/flow_engine.js +0 -2663
- package/myagent/web/ui/chat/groupchat.js +0 -901
- package/myagent/web/ui/chat/left_sessions.html +0 -54
- package/myagent/web/ui/chat/middle_chat.html +0 -162
- package/myagent/web/ui/chat/right_agents.html +0 -70
- package/myagent/web/ui/index.html +0 -375
- package/myagent/worklog-v1.22.md +0 -12
- package/myagent/worklog.md +0 -21
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
"""
|
|
2
|
+
core/agent_storage.py - Agent 配置数据库管理
|
|
3
|
+
=============================================
|
|
4
|
+
将 agent 的配置信息从 config.json 文件迁移到 SQLite 数据库。
|
|
5
|
+
文件类内容(soul.md, identity.md, user.md, workspace/, avatar.png)仍保留在本地目录。
|
|
6
|
+
|
|
7
|
+
数据库表结构:
|
|
8
|
+
agents: 存储所有 agent 配置信息
|
|
9
|
+
|
|
10
|
+
迁移策略:
|
|
11
|
+
首次启动时自动检测并迁移已有 config.json 到数据库。
|
|
12
|
+
迁移完成后不再读写 config.json。
|
|
13
|
+
"""
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
import json
|
|
17
|
+
import os
|
|
18
|
+
import sqlite3
|
|
19
|
+
import time
|
|
20
|
+
import uuid
|
|
21
|
+
from dataclasses import dataclass, field, asdict
|
|
22
|
+
from pathlib import Path
|
|
23
|
+
from typing import Any, Dict, List, Optional
|
|
24
|
+
|
|
25
|
+
from core.logger import get_logger
|
|
26
|
+
|
|
27
|
+
logger = get_logger("myagent.agent_storage")
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
# ==============================================================================
|
|
31
|
+
# 数据模型
|
|
32
|
+
# ==============================================================================
|
|
33
|
+
|
|
34
|
+
@dataclass
|
|
35
|
+
class AgentConfig:
|
|
36
|
+
"""Agent 配置(对应数据库一行)"""
|
|
37
|
+
path: str = "" # Agent 路径,如 "default", "coder/python-expert"
|
|
38
|
+
id: str = "" # 唯一 ID,12位 hex
|
|
39
|
+
name: str = "" # 显示名称
|
|
40
|
+
description: str = "" # 描述
|
|
41
|
+
avatar_color: str = "" # 头像颜色
|
|
42
|
+
avatar_emoji: str = "" # 头像 emoji
|
|
43
|
+
avatar_image: str = "" # 头像图片 URL
|
|
44
|
+
execution_mode: str = "sandbox" # 执行模式: local / sandbox
|
|
45
|
+
enabled: bool = True # 是否启用
|
|
46
|
+
system: bool = False # 是否系统内置 Agent
|
|
47
|
+
system_prompt: str = "" # 系统提示词
|
|
48
|
+
model: str = "" # 模型覆盖
|
|
49
|
+
parent: str = "" # 父 Agent 路径
|
|
50
|
+
# 平台绑定
|
|
51
|
+
platform: str = "" # 平台标识
|
|
52
|
+
platform_token: str = "" # 平台 Token
|
|
53
|
+
platform_app_id: str = "" # 平台 App ID
|
|
54
|
+
platform_app_secret: str = "" # 平台 App Secret
|
|
55
|
+
# 模型库引用
|
|
56
|
+
model_id: str = "" # 模型库 ID
|
|
57
|
+
backup_model_ids: str = "" # 备选模型 ID(JSON 数组字符串)
|
|
58
|
+
# 其他
|
|
59
|
+
work_dir: str = "" # 自定义工作目录
|
|
60
|
+
department: str = "" # 所属部门
|
|
61
|
+
# 时间戳
|
|
62
|
+
created_at: str = ""
|
|
63
|
+
updated_at: str = ""
|
|
64
|
+
|
|
65
|
+
# ---- 以下字段不存数据库,运行时从文件读取 ----
|
|
66
|
+
|
|
67
|
+
def to_dict(self) -> dict:
|
|
68
|
+
"""转为字典"""
|
|
69
|
+
d = {}
|
|
70
|
+
for k in self.__dataclass_fields__:
|
|
71
|
+
v = getattr(self, k)
|
|
72
|
+
if k == "enabled" or k == "system":
|
|
73
|
+
d[k] = bool(v)
|
|
74
|
+
else:
|
|
75
|
+
d[k] = v if v is not None else ""
|
|
76
|
+
return d
|
|
77
|
+
|
|
78
|
+
def to_db_row(self) -> dict:
|
|
79
|
+
"""转为数据库行(只包含数据库字段)"""
|
|
80
|
+
return self.to_dict()
|
|
81
|
+
|
|
82
|
+
@classmethod
|
|
83
|
+
def from_db_row(cls, row: sqlite3.Row) -> "AgentConfig":
|
|
84
|
+
"""从数据库行创建"""
|
|
85
|
+
d = dict(row)
|
|
86
|
+
return cls(**{k: d.get(k, "") for k in cls.__dataclass_fields__})
|
|
87
|
+
|
|
88
|
+
@classmethod
|
|
89
|
+
def from_json(cls, path: str, data: dict) -> "AgentConfig":
|
|
90
|
+
"""从 config.json 字典创建"""
|
|
91
|
+
return cls(
|
|
92
|
+
path=path,
|
|
93
|
+
id=data.get("id", ""),
|
|
94
|
+
name=data.get("name", path),
|
|
95
|
+
description=data.get("description", ""),
|
|
96
|
+
avatar_color=data.get("avatar_color", ""),
|
|
97
|
+
avatar_emoji=data.get("avatar_emoji", ""),
|
|
98
|
+
avatar_image=data.get("avatar_image", ""),
|
|
99
|
+
execution_mode=data.get("execution_mode", "sandbox"),
|
|
100
|
+
enabled=bool(data.get("enabled", True)),
|
|
101
|
+
system=bool(data.get("system", False)),
|
|
102
|
+
system_prompt=data.get("system_prompt", ""),
|
|
103
|
+
model=data.get("model", ""),
|
|
104
|
+
parent=data.get("parent", ""),
|
|
105
|
+
platform=data.get("platform", ""),
|
|
106
|
+
platform_token=data.get("platform_token", ""),
|
|
107
|
+
platform_app_id=data.get("platform_app_id", ""),
|
|
108
|
+
platform_app_secret=data.get("platform_app_secret", ""),
|
|
109
|
+
model_id=data.get("model_id", ""),
|
|
110
|
+
backup_model_ids=json.dumps(data.get("backup_model_ids", []), ensure_ascii=False) if isinstance(data.get("backup_model_ids"), list) else data.get("backup_model_ids", ""),
|
|
111
|
+
work_dir=data.get("work_dir", ""),
|
|
112
|
+
department=data.get("department", ""),
|
|
113
|
+
created_at=data.get("created_at", ""),
|
|
114
|
+
updated_at=data.get("updated_at", ""),
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
# ==============================================================================
|
|
119
|
+
# AgentStorage - 数据库管理类
|
|
120
|
+
# ==============================================================================
|
|
121
|
+
|
|
122
|
+
class AgentStorage:
|
|
123
|
+
"""
|
|
124
|
+
Agent 配置数据库管理器。
|
|
125
|
+
|
|
126
|
+
职责:
|
|
127
|
+
- 建表和版本管理
|
|
128
|
+
- Agent CRUD(增删改查)
|
|
129
|
+
- 首次启动时自动从 config.json 迁移数据
|
|
130
|
+
- 提供兼容旧代码的接口
|
|
131
|
+
"""
|
|
132
|
+
|
|
133
|
+
def __init__(self, db_path: str = ""):
|
|
134
|
+
if not db_path:
|
|
135
|
+
db_path = str(Path.home() / ".myagent" / "data" / "agents.db")
|
|
136
|
+
self._db_path = db_path
|
|
137
|
+
self._conn: Optional[sqlite3.Connection] = None
|
|
138
|
+
self._lock = __import__("threading").Lock()
|
|
139
|
+
|
|
140
|
+
def _get_conn(self) -> sqlite3.Connection:
|
|
141
|
+
"""获取数据库连接(线程安全)"""
|
|
142
|
+
if self._conn is None:
|
|
143
|
+
self._conn = sqlite3.connect(self._db_path, check_same_thread=False)
|
|
144
|
+
self._conn.row_factory = sqlite3.Row
|
|
145
|
+
self._conn.execute("PRAGMA journal_mode=WAL")
|
|
146
|
+
self._conn.execute("PRAGMA foreign_keys=ON")
|
|
147
|
+
self._init_tables()
|
|
148
|
+
return self._conn
|
|
149
|
+
|
|
150
|
+
def _init_tables(self):
|
|
151
|
+
"""初始化数据库表"""
|
|
152
|
+
conn = self._get_conn()
|
|
153
|
+
conn.executescript("""
|
|
154
|
+
CREATE TABLE IF NOT EXISTS agents (
|
|
155
|
+
path TEXT PRIMARY KEY,
|
|
156
|
+
id TEXT NOT NULL DEFAULT '',
|
|
157
|
+
name TEXT NOT NULL DEFAULT '',
|
|
158
|
+
description TEXT NOT NULL DEFAULT '',
|
|
159
|
+
avatar_color TEXT NOT NULL DEFAULT '',
|
|
160
|
+
avatar_emoji TEXT NOT NULL DEFAULT '',
|
|
161
|
+
avatar_image TEXT NOT NULL DEFAULT '',
|
|
162
|
+
execution_mode TEXT NOT NULL DEFAULT 'sandbox',
|
|
163
|
+
enabled INTEGER NOT NULL DEFAULT 1,
|
|
164
|
+
system INTEGER NOT NULL DEFAULT 0,
|
|
165
|
+
system_prompt TEXT NOT NULL DEFAULT '',
|
|
166
|
+
model TEXT NOT NULL DEFAULT '',
|
|
167
|
+
parent TEXT NOT NULL DEFAULT '',
|
|
168
|
+
platform TEXT NOT NULL DEFAULT '',
|
|
169
|
+
platform_token TEXT NOT NULL DEFAULT '',
|
|
170
|
+
platform_app_id TEXT NOT NULL DEFAULT '',
|
|
171
|
+
platform_app_secret TEXT NOT NULL DEFAULT '',
|
|
172
|
+
model_id TEXT NOT NULL DEFAULT '',
|
|
173
|
+
backup_model_ids TEXT NOT NULL DEFAULT '[]',
|
|
174
|
+
work_dir TEXT NOT NULL DEFAULT '',
|
|
175
|
+
department TEXT NOT NULL DEFAULT '',
|
|
176
|
+
created_at TEXT NOT NULL DEFAULT '',
|
|
177
|
+
updated_at TEXT NOT NULL DEFAULT ''
|
|
178
|
+
);
|
|
179
|
+
|
|
180
|
+
CREATE INDEX IF NOT EXISTS idx_agents_id ON agents(id);
|
|
181
|
+
CREATE INDEX IF NOT EXISTS idx_agents_parent ON agents(parent);
|
|
182
|
+
CREATE INDEX IF NOT EXISTS idx_agents_department ON agents(department);
|
|
183
|
+
CREATE INDEX IF NOT EXISTS idx_agents_enabled ON agents(enabled);
|
|
184
|
+
""")
|
|
185
|
+
conn.commit()
|
|
186
|
+
|
|
187
|
+
# ==========================================================================
|
|
188
|
+
# CRUD 操作
|
|
189
|
+
# ==========================================================================
|
|
190
|
+
|
|
191
|
+
def get(self, path: str) -> Optional[AgentConfig]:
|
|
192
|
+
"""根据 path 获取 agent 配置"""
|
|
193
|
+
conn = self._get_conn()
|
|
194
|
+
with self._lock:
|
|
195
|
+
row = conn.execute("SELECT * FROM agents WHERE path = ?", (path,)).fetchone()
|
|
196
|
+
if row:
|
|
197
|
+
return AgentConfig.from_db_row(row)
|
|
198
|
+
return None
|
|
199
|
+
|
|
200
|
+
def get_by_id(self, agent_id: str) -> Optional[AgentConfig]:
|
|
201
|
+
"""根据唯一 ID 获取 agent 配置"""
|
|
202
|
+
conn = self._get_conn()
|
|
203
|
+
with self._lock:
|
|
204
|
+
row = conn.execute("SELECT * FROM agents WHERE id = ?", (agent_id,)).fetchone()
|
|
205
|
+
if row:
|
|
206
|
+
return AgentConfig.from_db_row(row)
|
|
207
|
+
return None
|
|
208
|
+
|
|
209
|
+
def list_all(self, enabled_only: bool = False) -> List[AgentConfig]:
|
|
210
|
+
"""列出所有 agent"""
|
|
211
|
+
conn = self._get_conn()
|
|
212
|
+
with self._lock:
|
|
213
|
+
if enabled_only:
|
|
214
|
+
rows = conn.execute("SELECT * FROM agents WHERE enabled = 1 ORDER BY path").fetchall()
|
|
215
|
+
else:
|
|
216
|
+
rows = conn.execute("SELECT * FROM agents ORDER BY path").fetchall()
|
|
217
|
+
return [AgentConfig.from_db_row(r) for r in rows]
|
|
218
|
+
|
|
219
|
+
def list_children(self, parent_path: str) -> List[AgentConfig]:
|
|
220
|
+
"""列出子 agent"""
|
|
221
|
+
conn = self._get_conn()
|
|
222
|
+
with self._lock:
|
|
223
|
+
rows = conn.execute("SELECT * FROM agents WHERE parent = ? ORDER BY path", (parent_path,)).fetchall()
|
|
224
|
+
return [AgentConfig.from_db_row(r) for r in rows]
|
|
225
|
+
|
|
226
|
+
def exists(self, path: str) -> bool:
|
|
227
|
+
"""检查 agent 是否存在"""
|
|
228
|
+
conn = self._get_conn()
|
|
229
|
+
with self._lock:
|
|
230
|
+
row = conn.execute("SELECT 1 FROM agents WHERE path = ?", (path,)).fetchone()
|
|
231
|
+
return row is not None
|
|
232
|
+
|
|
233
|
+
def exists_id(self, agent_id: str) -> bool:
|
|
234
|
+
"""检查 ID 是否存在"""
|
|
235
|
+
conn = self._get_conn()
|
|
236
|
+
with self._lock:
|
|
237
|
+
row = conn.execute("SELECT 1 FROM agents WHERE id = ?", (agent_id,)).fetchone()
|
|
238
|
+
return row is not None
|
|
239
|
+
|
|
240
|
+
def create(self, cfg: AgentConfig) -> AgentConfig:
|
|
241
|
+
"""创建 agent,返回创建后的配置(含自动填充字段)"""
|
|
242
|
+
conn = self._get_conn()
|
|
243
|
+
now = _now_iso()
|
|
244
|
+
if not cfg.id:
|
|
245
|
+
cfg.id = uuid.uuid4().hex[:12]
|
|
246
|
+
if not cfg.created_at:
|
|
247
|
+
cfg.created_at = now
|
|
248
|
+
if not cfg.updated_at:
|
|
249
|
+
cfg.updated_at = now
|
|
250
|
+
if not cfg.name:
|
|
251
|
+
cfg.name = cfg.path
|
|
252
|
+
|
|
253
|
+
with self._lock:
|
|
254
|
+
conn.execute("""
|
|
255
|
+
INSERT INTO agents (path, id, name, description, avatar_color, avatar_emoji,
|
|
256
|
+
avatar_image, execution_mode, enabled, system, system_prompt, model,
|
|
257
|
+
parent, platform, platform_token, platform_app_id, platform_app_secret,
|
|
258
|
+
model_id, backup_model_ids, work_dir, department, created_at, updated_at)
|
|
259
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
260
|
+
""", (
|
|
261
|
+
cfg.path, cfg.id, cfg.name, cfg.description, cfg.avatar_color, cfg.avatar_emoji,
|
|
262
|
+
cfg.avatar_image, cfg.execution_mode, int(cfg.enabled), int(cfg.system),
|
|
263
|
+
cfg.system_prompt, cfg.model, cfg.parent, cfg.platform, cfg.platform_token,
|
|
264
|
+
cfg.platform_app_id, cfg.platform_app_secret, cfg.model_id, cfg.backup_model_ids,
|
|
265
|
+
cfg.work_dir, cfg.department, cfg.created_at, cfg.updated_at,
|
|
266
|
+
))
|
|
267
|
+
conn.commit()
|
|
268
|
+
return cfg
|
|
269
|
+
|
|
270
|
+
def update(self, path: str, updates: dict) -> Optional[AgentConfig]:
|
|
271
|
+
"""
|
|
272
|
+
更新 agent 配置。
|
|
273
|
+
updates: 要更新的字段字典,只允许更新已知字段。
|
|
274
|
+
返回更新后的配置,如果不存在返回 None。
|
|
275
|
+
"""
|
|
276
|
+
# 允许更新的字段白名单
|
|
277
|
+
ALLOWED = {
|
|
278
|
+
"name", "description", "avatar_color", "avatar_emoji", "avatar_image",
|
|
279
|
+
"execution_mode", "enabled", "system_prompt", "model",
|
|
280
|
+
"platform", "platform_token", "platform_app_id", "platform_app_secret",
|
|
281
|
+
"model_id", "backup_model_ids", "work_dir", "department",
|
|
282
|
+
}
|
|
283
|
+
filtered = {k: v for k, v in updates.items() if k in ALLOWED}
|
|
284
|
+
if not filtered:
|
|
285
|
+
return self.get(path)
|
|
286
|
+
|
|
287
|
+
conn = self._get_conn()
|
|
288
|
+
now = _now_iso()
|
|
289
|
+
|
|
290
|
+
# backup_model_ids 需要 JSON 序列化
|
|
291
|
+
if "backup_model_ids" in filtered and isinstance(filtered["backup_model_ids"], list):
|
|
292
|
+
filtered["backup_model_ids"] = json.dumps(filtered["backup_model_ids"], ensure_ascii=False)
|
|
293
|
+
|
|
294
|
+
# enabled 需要转 int
|
|
295
|
+
if "enabled" in filtered:
|
|
296
|
+
filtered["enabled"] = int(bool(filtered["enabled"]))
|
|
297
|
+
|
|
298
|
+
filtered["updated_at"] = now
|
|
299
|
+
|
|
300
|
+
set_parts = ", ".join(f"{k} = ?" for k in filtered)
|
|
301
|
+
values = list(filtered.values()) + [path]
|
|
302
|
+
|
|
303
|
+
with self._lock:
|
|
304
|
+
cursor = conn.execute(f"UPDATE agents SET {set_parts} WHERE path = ?", values)
|
|
305
|
+
conn.commit()
|
|
306
|
+
if cursor.rowcount == 0:
|
|
307
|
+
return None
|
|
308
|
+
return self.get(path)
|
|
309
|
+
|
|
310
|
+
def rename(self, old_path: str, new_path: str) -> bool:
|
|
311
|
+
"""
|
|
312
|
+
重命名 agent(更新 path 及所有子 agent 的 path)。
|
|
313
|
+
同时需要更新 parent 字段引用。
|
|
314
|
+
"""
|
|
315
|
+
conn = self._get_conn()
|
|
316
|
+
with self._lock:
|
|
317
|
+
# 检查是否存在
|
|
318
|
+
existing = conn.execute("SELECT 1 FROM agents WHERE path = ?", (old_path,)).fetchone()
|
|
319
|
+
if not existing:
|
|
320
|
+
return False
|
|
321
|
+
# 检查目标是否已存在
|
|
322
|
+
target = conn.execute("SELECT 1 FROM agents WHERE path = ?", (new_path,)).fetchone()
|
|
323
|
+
if target:
|
|
324
|
+
return False
|
|
325
|
+
|
|
326
|
+
now = _now_iso()
|
|
327
|
+
|
|
328
|
+
# 1. 更新自身
|
|
329
|
+
conn.execute("UPDATE agents SET path = ?, updated_at = ? WHERE path = ?", (new_path, now, old_path))
|
|
330
|
+
|
|
331
|
+
# 2. 更新所有子 agent 的 path(前缀替换)和 parent
|
|
332
|
+
old_prefix = old_path + "/"
|
|
333
|
+
new_prefix = new_path + "/"
|
|
334
|
+
children = conn.execute("SELECT path FROM agents WHERE path LIKE ?", (old_prefix + "%",)).fetchall()
|
|
335
|
+
for child in children:
|
|
336
|
+
child_old = child["path"]
|
|
337
|
+
child_new = new_prefix + child_old[len(old_prefix):]
|
|
338
|
+
conn.execute("UPDATE agents SET path = ?, parent = ?, updated_at = ? WHERE path = ?",
|
|
339
|
+
(child_new, new_path, now, child_old))
|
|
340
|
+
|
|
341
|
+
# 3. 更新其他 agent 中 parent 引用
|
|
342
|
+
conn.execute("UPDATE agents SET parent = ?, updated_at = ? WHERE parent = ?",
|
|
343
|
+
(new_path, now, old_path))
|
|
344
|
+
|
|
345
|
+
# 4. 更新 department 字段中引用了 old_path 的记录(不太可能,但保险起见)
|
|
346
|
+
# department 存的是部门名不是 path,不需要更新
|
|
347
|
+
|
|
348
|
+
conn.commit()
|
|
349
|
+
return True
|
|
350
|
+
|
|
351
|
+
def delete(self, path: str) -> bool:
|
|
352
|
+
"""
|
|
353
|
+
删除 agent 及其所有子 agent。
|
|
354
|
+
返回删除的行数。
|
|
355
|
+
"""
|
|
356
|
+
conn = self._get_conn()
|
|
357
|
+
with self._lock:
|
|
358
|
+
# 先删子 agent(递归删除所有以 path/ 开头的)
|
|
359
|
+
conn.execute("DELETE FROM agents WHERE path LIKE ?", (path + "/%",))
|
|
360
|
+
# 再删自身
|
|
361
|
+
cursor = conn.execute("DELETE FROM agents WHERE path = ?", (path,))
|
|
362
|
+
conn.commit()
|
|
363
|
+
return cursor.rowcount > 0
|
|
364
|
+
|
|
365
|
+
def count(self) -> int:
|
|
366
|
+
"""统计 agent 总数"""
|
|
367
|
+
conn = self._get_conn()
|
|
368
|
+
with self._lock:
|
|
369
|
+
row = conn.execute("SELECT COUNT(*) as cnt FROM agents").fetchone()
|
|
370
|
+
return row["cnt"] if row else 0
|
|
371
|
+
|
|
372
|
+
def search(self, keyword: str, limit: int = 20) -> List[AgentConfig]:
|
|
373
|
+
"""按名称或描述搜索 agent"""
|
|
374
|
+
conn = self._get_conn()
|
|
375
|
+
with self._lock:
|
|
376
|
+
rows = conn.execute(
|
|
377
|
+
"SELECT * FROM agents WHERE name LIKE ? OR description LIKE ? ORDER BY path LIMIT ?",
|
|
378
|
+
(f"%{keyword}%", f"%{keyword}%", limit),
|
|
379
|
+
).fetchall()
|
|
380
|
+
return [AgentConfig.from_db_row(r) for r in rows]
|
|
381
|
+
|
|
382
|
+
def get_all_ids(self) -> List[str]:
|
|
383
|
+
"""获取所有 agent ID 列表(用于调试)"""
|
|
384
|
+
conn = self._get_conn()
|
|
385
|
+
with self._lock:
|
|
386
|
+
rows = conn.execute("SELECT id FROM agents WHERE id != ''").fetchall()
|
|
387
|
+
return [r["id"] for r in rows]
|
|
388
|
+
|
|
389
|
+
# ==========================================================================
|
|
390
|
+
# 迁移: config.json → SQLite
|
|
391
|
+
# ==========================================================================
|
|
392
|
+
|
|
393
|
+
def migrate_from_json(self, agents_dir: Path, force: bool = False) -> dict:
|
|
394
|
+
"""
|
|
395
|
+
从文件系统迁移 agent 配置到数据库。
|
|
396
|
+
|
|
397
|
+
Args:
|
|
398
|
+
agents_dir: agents 数据目录路径(~/.myagent/data/agents/)
|
|
399
|
+
force: 是否强制重新迁移
|
|
400
|
+
|
|
401
|
+
Returns:
|
|
402
|
+
{"migrated": int, "skipped": int, "errors": int}
|
|
403
|
+
"""
|
|
404
|
+
conn = self._get_conn()
|
|
405
|
+
result = {"migrated": 0, "skipped": 0, "errors": 0}
|
|
406
|
+
|
|
407
|
+
if not agents_dir.exists():
|
|
408
|
+
logger.info(f"Agent 数据目录不存在,跳过迁移: {agents_dir}")
|
|
409
|
+
return result
|
|
410
|
+
|
|
411
|
+
if self.count() > 0 and not force:
|
|
412
|
+
logger.info(f"数据库已有 {self.count()} 个 agent,跳过迁移(使用 force 强制重新迁移)")
|
|
413
|
+
result["skipped"] = self.count()
|
|
414
|
+
return result
|
|
415
|
+
|
|
416
|
+
now = _now_iso()
|
|
417
|
+
for cfg_path in agents_dir.rglob("config.json"):
|
|
418
|
+
try:
|
|
419
|
+
# 跳过符号链接
|
|
420
|
+
if cfg_path.parent.is_symlink():
|
|
421
|
+
continue
|
|
422
|
+
|
|
423
|
+
raw = json.loads(cfg_path.read_text(encoding="utf-8"))
|
|
424
|
+
rel_path = cfg_path.parent.relative_to(agents_dir).as_posix()
|
|
425
|
+
|
|
426
|
+
# 补全缺失字段
|
|
427
|
+
if "id" not in raw or not raw["id"]:
|
|
428
|
+
raw["id"] = uuid.uuid4().hex[:12]
|
|
429
|
+
if "created_at" not in raw or not raw["created_at"]:
|
|
430
|
+
raw["created_at"] = now
|
|
431
|
+
if "updated_at" not in raw or not raw["updated_at"]:
|
|
432
|
+
raw["updated_at"] = now
|
|
433
|
+
|
|
434
|
+
cfg = AgentConfig.from_json(rel_path, raw)
|
|
435
|
+
|
|
436
|
+
with self._lock:
|
|
437
|
+
# 使用 INSERT OR REPLACE 避免重复
|
|
438
|
+
conn.execute("""
|
|
439
|
+
INSERT OR REPLACE INTO agents (path, id, name, description, avatar_color, avatar_emoji,
|
|
440
|
+
avatar_image, execution_mode, enabled, system, system_prompt, model,
|
|
441
|
+
parent, platform, platform_token, platform_app_id, platform_app_secret,
|
|
442
|
+
model_id, backup_model_ids, work_dir, department, created_at, updated_at)
|
|
443
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
444
|
+
""", (
|
|
445
|
+
cfg.path, cfg.id, cfg.name, cfg.description, cfg.avatar_color, cfg.avatar_emoji,
|
|
446
|
+
cfg.avatar_image, cfg.execution_mode, int(cfg.enabled), int(cfg.system),
|
|
447
|
+
cfg.system_prompt, cfg.model, cfg.parent, cfg.platform, cfg.platform_token,
|
|
448
|
+
cfg.platform_app_id, cfg.platform_app_secret, cfg.model_id, cfg.backup_model_ids,
|
|
449
|
+
cfg.work_dir, cfg.department, cfg.created_at, cfg.updated_at,
|
|
450
|
+
))
|
|
451
|
+
result["migrated"] += 1
|
|
452
|
+
|
|
453
|
+
except Exception as e:
|
|
454
|
+
result["errors"] += 1
|
|
455
|
+
logger.warning(f"迁移 agent 失败: {cfg_path} -> {e}")
|
|
456
|
+
|
|
457
|
+
with self._lock:
|
|
458
|
+
conn.commit()
|
|
459
|
+
|
|
460
|
+
logger.info(f"Agent 配置迁移完成: {result['migrated']} 迁移, {result['skipped']} 跳过, {result['errors']} 错误")
|
|
461
|
+
return result
|
|
462
|
+
|
|
463
|
+
def close(self):
|
|
464
|
+
"""关闭数据库连接"""
|
|
465
|
+
if self._conn:
|
|
466
|
+
self._conn.close()
|
|
467
|
+
self._conn = None
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
# ==============================================================================
|
|
471
|
+
# 工具函数
|
|
472
|
+
# ==============================================================================
|
|
473
|
+
|
|
474
|
+
def _now_iso() -> str:
|
|
475
|
+
"""返回 ISO 格式时间戳"""
|
|
476
|
+
from datetime import datetime, timezone
|
|
477
|
+
try:
|
|
478
|
+
from core.utils import get_config_tz
|
|
479
|
+
tz = get_config_tz()
|
|
480
|
+
return datetime.now(tz).strftime("%Y-%m-%dT%H:%M:%S")
|
|
481
|
+
except Exception:
|
|
482
|
+
return datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%S")
|
package/package.json
CHANGED
package/scripts/cli.py
CHANGED
|
@@ -1089,28 +1089,83 @@ async def cmd_chat(args):
|
|
|
1089
1089
|
print("错误: 必须指定 --message 或 --file", file=sys.stderr)
|
|
1090
1090
|
sys.exit(1)
|
|
1091
1091
|
|
|
1092
|
-
# [v1.23.
|
|
1093
|
-
|
|
1094
|
-
|
|
1092
|
+
# [v1.23.75] Agent 查找:从数据库按 ID 匹配
|
|
1093
|
+
_config_file = Path.home() / ".myagent" / "config.json"
|
|
1094
|
+
_base_dir = Path.home() / ".myagent"
|
|
1095
|
+
_db_path = Path.home() / ".myagent" / "data" / "agents.db"
|
|
1096
|
+
try:
|
|
1097
|
+
if _config_file.exists():
|
|
1098
|
+
_cfg_raw = json.loads(_config_file.read_text(encoding="utf-8"))
|
|
1099
|
+
_custom_dir = _cfg_raw.get("data_dir", "")
|
|
1100
|
+
if _custom_dir:
|
|
1101
|
+
_expanded = os.path.expanduser(_custom_dir)
|
|
1102
|
+
if not os.path.isabs(_expanded):
|
|
1103
|
+
_expanded = str(Path.home() / _expanded)
|
|
1104
|
+
_base_dir = Path(_expanded)
|
|
1105
|
+
except Exception:
|
|
1106
|
+
pass
|
|
1095
1107
|
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1108
|
+
resolved_path = None
|
|
1109
|
+
found_ids = []
|
|
1110
|
+
|
|
1111
|
+
# 优先从数据库查询
|
|
1112
|
+
if _db_path.exists():
|
|
1113
|
+
try:
|
|
1114
|
+
import sqlite3
|
|
1115
|
+
conn = sqlite3.connect(str(_db_path))
|
|
1116
|
+
conn.row_factory = sqlite3.Row
|
|
1117
|
+
rows = conn.execute("SELECT path, id FROM agents WHERE id != ''").fetchall()
|
|
1118
|
+
conn.close()
|
|
1119
|
+
for row in rows:
|
|
1120
|
+
aid = row["id"]
|
|
1121
|
+
found_ids.append(aid)
|
|
1122
|
+
if aid == a.agent:
|
|
1123
|
+
resolved_path = row["path"]
|
|
1102
1124
|
break
|
|
1103
|
-
|
|
1104
|
-
|
|
1125
|
+
except Exception:
|
|
1126
|
+
pass
|
|
1105
1127
|
|
|
1128
|
+
# 数据库查不到,回退到文件系统(兼容旧版本)
|
|
1106
1129
|
if not resolved_path:
|
|
1107
|
-
|
|
1130
|
+
agents_data_dir = _base_dir / "data" / "agents"
|
|
1131
|
+
if agents_data_dir.exists():
|
|
1132
|
+
for cfg_path in agents_data_dir.rglob("config.json"):
|
|
1133
|
+
try:
|
|
1134
|
+
ag_cfg = json.loads(cfg_path.read_text(encoding="utf-8"))
|
|
1135
|
+
aid = ag_cfg.get("id", "")
|
|
1136
|
+
if aid and aid not in found_ids:
|
|
1137
|
+
found_ids.append(aid)
|
|
1138
|
+
if aid == a.agent:
|
|
1139
|
+
resolved_path = cfg_path.parent.relative_to(agents_data_dir).as_posix()
|
|
1140
|
+
break
|
|
1141
|
+
except Exception:
|
|
1142
|
+
pass
|
|
1143
|
+
|
|
1144
|
+
if not resolved_path:
|
|
1145
|
+
err_parts = [f"错误: Agent 不存在: {a.agent}"]
|
|
1146
|
+
if not _db_path.exists() and not (_base_dir / "data" / "agents").exists():
|
|
1147
|
+
err_parts.append(f"agents 数据不存在(数据库和目录均未找到)")
|
|
1148
|
+
else:
|
|
1149
|
+
cfg_count = len(found_ids)
|
|
1150
|
+
err_parts.append(f"共扫描到 {cfg_count} 个 Agent")
|
|
1151
|
+
if cfg_count > 0:
|
|
1152
|
+
sample = found_ids[:5]
|
|
1153
|
+
err_parts.append(f"已有 ID: {', '.join(sample)}")
|
|
1154
|
+
err_parts.append(f"(请使用Agent的ID,从群成员列表中获取)")
|
|
1155
|
+
print(" | ".join(err_parts), file=sys.stderr)
|
|
1108
1156
|
sys.exit(1)
|
|
1109
1157
|
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1158
|
+
# 从数据库获取 agent_name
|
|
1159
|
+
agent_name = resolved_path
|
|
1160
|
+
try:
|
|
1161
|
+
conn = sqlite3.connect(str(_db_path))
|
|
1162
|
+
conn.row_factory = sqlite3.Row
|
|
1163
|
+
row = conn.execute("SELECT name FROM agents WHERE path = ?", (resolved_path,)).fetchone()
|
|
1164
|
+
conn.close()
|
|
1165
|
+
if row and row["name"]:
|
|
1166
|
+
agent_name = row["name"]
|
|
1167
|
+
except Exception:
|
|
1168
|
+
pass
|
|
1114
1169
|
|
|
1115
1170
|
|
|
1116
1171
|
# 验证文件是否存在
|