foliko 1.1.4 → 1.1.5
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/.agent/.shared/ui-ux-pro-max/data/charts.csv +26 -0
- package/.agent/.shared/ui-ux-pro-max/data/colors.csv +97 -0
- package/.agent/.shared/ui-ux-pro-max/data/icons.csv +101 -0
- package/.agent/.shared/ui-ux-pro-max/data/landing.csv +31 -0
- package/.agent/.shared/ui-ux-pro-max/data/products.csv +97 -0
- package/.agent/.shared/ui-ux-pro-max/data/prompts.csv +24 -0
- package/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/.agent/.shared/ui-ux-pro-max/data/styles.csv +59 -0
- package/.agent/.shared/ui-ux-pro-max/data/typography.csv +58 -0
- package/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/core.cpython-313.pyc +0 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-313.pyc +0 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/core.py +258 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/search.py +106 -0
- package/.agent/ARCHITECTURE.md +288 -0
- package/.agent/agents/ambient-agent.md +57 -0
- package/.agent/agents/debugger.md +55 -0
- package/.agent/agents/email-assistant.md +49 -0
- package/.agent/agents/file-manager.md +42 -0
- package/.agent/agents/python-developer.md +60 -0
- package/.agent/agents/scheduler.md +59 -0
- package/.agent/agents/web-developer.md +45 -0
- package/.agent/data/default.json +412 -3
- package/.agent/data/plugins-state.json +173 -174
- package/.agent/data/puppeteer-sessions/undefined.json +6 -0
- package/.agent/data/weixin-media/2026-04-08/img_1775618677512.jpg +0 -0
- package/.agent/data/weixin-media/2026-04-08/img_1775619073340.jpg +0 -0
- package/.agent/data/weixin-media/2026-04-08/img_1775619097536.jpg +0 -0
- package/.agent/data/weixin-media/2026-04-08/img_1775619209388.jpg +0 -0
- package/.agent/mcp_config_updated.json +12 -0
- package/.agent/memory/feedback/mnrdq5ps-ekch6c.md +9 -0
- package/.agent/memory/feedback/mnrdvj5i-ca3dkd.md +9 -0
- package/.agent/memory/feedback/mnre365e-7s4zax.md +9 -0
- package/.agent/memory/feedback/mnre36jn-nkfgmp.md +9 -0
- package/.agent/memory/feedback/mnre3805-kjiq6h.md +9 -0
- package/.agent/memory/feedback/test-1775733060827.md +6 -0
- package/.agent/memory/project/mnqx54u5-loqtoe.md +9 -0
- package/.agent/memory/project/mnqx84cv-mx6dmd.md +9 -0
- package/.agent/memory/reference/mnre3cww-penbo1.md +9 -0
- package/.agent/plugins/poster-plugin/fonts/NotoColorEmoji-Regular.ttf +0 -0
- package/.agent/plugins/poster-plugin/fonts/Symbola_hint.ttf +0 -0
- package/.agent/plugins/poster-plugin/src/index.js +30 -29
- package/.agent/plugins/puppeteer-plugin/README.md +147 -0
- package/.agent/plugins/puppeteer-plugin/index.js +1418 -0
- package/.agent/plugins/puppeteer-plugin/package.json +9 -0
- package/.agent/plugins.json +5 -11
- package/.agent/rules/GEMINI.md +273 -0
- package/.agent/rules/allow-rule.md +77 -0
- package/.agent/rules/log-rule.md +83 -0
- package/.agent/rules/security-rule.md +93 -0
- package/.agent/scripts/auto_preview.py +148 -0
- package/.agent/scripts/checklist.py +217 -0
- package/.agent/scripts/session_manager.py +120 -0
- package/.agent/scripts/verify_all.py +327 -0
- package/.agent/sessions/cli_default.json +636 -1833
- package/.agent/sessions/weixin_o9cq80zgZqKPA2-s59PN43GdDy1w@im.wechat.json +11097 -0
- package/.agent/skills/api-patterns/SKILL.md +81 -0
- package/.agent/skills/api-patterns/api-style.md +42 -0
- package/.agent/skills/api-patterns/auth.md +24 -0
- package/.agent/skills/api-patterns/documentation.md +26 -0
- package/.agent/skills/api-patterns/graphql.md +41 -0
- package/.agent/skills/api-patterns/rate-limiting.md +31 -0
- package/.agent/skills/api-patterns/response.md +37 -0
- package/.agent/skills/api-patterns/rest.md +40 -0
- package/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
- package/.agent/skills/api-patterns/security-testing.md +122 -0
- package/.agent/skills/api-patterns/trpc.md +41 -0
- package/.agent/skills/api-patterns/versioning.md +22 -0
- package/.agent/skills/app-builder/SKILL.md +75 -0
- package/.agent/skills/app-builder/agent-coordination.md +71 -0
- package/.agent/skills/app-builder/feature-building.md +53 -0
- package/.agent/skills/app-builder/project-detection.md +34 -0
- package/.agent/skills/app-builder/scaffolding.md +118 -0
- package/.agent/skills/app-builder/tech-stack.md +40 -0
- package/.agent/skills/app-builder/templates/SKILL.md +39 -0
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
- package/.agent/skills/architecture/SKILL.md +55 -0
- package/.agent/skills/architecture/context-discovery.md +43 -0
- package/.agent/skills/architecture/examples.md +94 -0
- package/.agent/skills/architecture/pattern-selection.md +68 -0
- package/.agent/skills/architecture/patterns-reference.md +50 -0
- package/.agent/skills/architecture/trade-off-analysis.md +77 -0
- package/.agent/skills/clean-code/SKILL.md +201 -0
- package/.agent/skills/doc.md +177 -0
- package/.agent/skills/frontend-design/SKILL.md +418 -0
- package/.agent/skills/frontend-design/animation-guide.md +331 -0
- package/.agent/skills/frontend-design/color-system.md +311 -0
- package/.agent/skills/frontend-design/decision-trees.md +418 -0
- package/.agent/skills/frontend-design/motion-graphics.md +306 -0
- package/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/.agent/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/.agent/skills/frontend-design/typography-system.md +345 -0
- package/.agent/skills/frontend-design/ux-psychology.md +1116 -0
- package/.agent/skills/frontend-design/visual-effects.md +383 -0
- package/.agent/skills/i18n-localization/SKILL.md +154 -0
- package/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/.agent/skills/mcp-builder/SKILL.md +176 -0
- package/.agent/skills/poster-design/SKILL.md +385 -0
- package/.agent/skills/web-design-guidelines/SKILL.md +57 -0
- package/.agent/workflows/brainstorm.md +113 -0
- package/.agent/workflows/create.md +59 -0
- package/.agent/workflows/debug.md +103 -0
- package/.agent/workflows/deploy.md +176 -0
- package/.agent/workflows/enhance.md +63 -0
- package/.agent/workflows/orchestrate.md +237 -0
- package/.agent/workflows/plan.md +89 -0
- package/.agent/workflows/preview.md +81 -0
- package/.agent/workflows/simple-test.md +42 -0
- package/.agent/workflows/status.md +86 -0
- package/.agent/workflows/structured-orchestrate.md +180 -0
- package/.agent/workflows/test.md +144 -0
- package/.agent/workflows/ui-ux-pro-max.md +296 -0
- package/.claude/settings.local.json +8 -1
- package/.env.example +56 -56
- package/37ua31lq.png +0 -0
- package/4ru0h1yo.png +0 -0
- package/55c90rsx.png +0 -0
- package/README.md +441 -441
- package/cli/src/commands/chat.js +69 -1
- package/cli/src/index.js +11 -2
- package/gud2mnws.png +0 -0
- package/output/poster_business.png.png +0 -0
- package/output/poster_business_product.png.png +0 -0
- package/output/poster_cyberpunk_neon.png.png +0 -0
- package/output/poster_festival.png.png +0 -0
- package/output/poster_foliko_personal.png.png +0 -0
- package/output/poster_french_romance.png.png +0 -0
- package/output/poster_guochao_landscape.png.png +0 -0
- package/output/poster_japanese_zen.png.png +0 -0
- package/output/poster_kawaii.png.png +0 -0
- package/output/poster_kawaii_hello.png.png +0 -0
- package/output/poster_luxury_gradient.png.png +0 -0
- package/output/poster_magazine_vogue.png.png +0 -0
- package/output/poster_minimal.png.png +0 -0
- package/output/poster_minimal_bw.png.png +0 -0
- package/output/poster_minimal_geometry.png.png +0 -0
- package/output/poster_pop_art.png.png +0 -0
- package/output/poster_sakura.png.png +0 -0
- package/output/poster_tech.png.png +0 -0
- package/output/poster_trendy.png.png +0 -0
- package/output/poster_vintage.png.png +0 -0
- package/output/poster_vintage_coffee.png.png +0 -0
- package/package.json +1 -1
- package/plugins/extension-executor-plugin.js +27 -1
- package/plugins/memory-plugin.js +197 -32
- package/skills/find-skills/AGENTS.md +162 -162
- package/skills/find-skills/SKILL.md +133 -133
- package/src/core/agent-chat.js +203 -112
- package/undefined.png +0 -0
- package/undefined.svg +1 -0
- package/xrrdyfr8.png +0 -0
- package/y9bfri9m.png +0 -0
- package/.agent/agents/code-assistant.json +0 -14
- package/.agent/agents/email-assistant.json +0 -14
- package/.agent/agents/file-assistant.json +0 -15
- package/.agent/agents/system-assistant.json +0 -15
- package/.agent/agents/web-assistant.json +0 -12
- package/.agent/data/ambient/goals.json +0 -50
- package/.agent/data/ambient/memories.json +0 -7
- package/.agent/data/scheduler/tasks.json +0 -1
- package/.agent/memory/core.md +0 -1
- package/.agent/memory/project/mnn93ogy-ypjn27.md +0 -9
- package/.agent/memory/project/mnn98fqy-5nhc1u.md +0 -25
- package/.agent/memory/reference/mnq3oenw-46haj6.md +0 -63
- package/.agent/memory/reference/mnq5qxm2-mjoooh.md +0 -116
- package/.agent/memory/user/mnm67t9m-x8rekk.md +0 -9
- package/.agent/memory/user/mnn5mmqh-w6aktx.md +0 -11
- package/.agent/memory/user/mnnbfhhn-dk1bd1.md +0 -22
- package/.agent/package.json +0 -8
- package/.agent/plugins/__pycache__/file_writer.cpython-312.pyc +0 -0
- package/.agent/plugins/daytona/README.md +0 -89
- package/.agent/plugins/daytona/index.js +0 -377
- package/.agent/plugins/daytona/package.json +0 -12
- package/.agent/plugins/marknative/README.md +0 -134
- package/.agent/plugins/marknative/fonts/SegoeUI Emoji.ttf +0 -0
- package/.agent/plugins/marknative/index.js +0 -256
- package/.agent/plugins/marknative/package.json +0 -12
- package/.agent/plugins/marknative/update-readme.js +0 -134
- package/.agent/plugins/poster-plugin/emojis/rocket.png +0 -1
- package/.agent/plugins/poster-plugin/yarn.lock +0 -1007
- package/.agent/plugins/system-info/index.js +0 -387
- package/.agent/plugins/system-info/package.json +0 -4
- package/.agent/plugins/system-info/test.js +0 -40
- package/.agent/python-scripts/test_sample.py +0 -24
- package/.agent/skills/agent-browser/SKILL.md +0 -311
- package/.agent/skills/agent-browser/TEST_PLAN.md +0 -200
- package/.agent/skills/sysinfo/SKILL.md +0 -38
- package/.agent/skills/sysinfo/system-info.sh +0 -130
- package/.agent/skills/workflow/SKILL.md +0 -324
- package/.agent/weixin.json +0 -6
- package/.agent/workflows/email-digest.json +0 -50
- package/.agent/workflows/file-backup.json +0 -21
- package/.agent/workflows/get-ip-notify.json +0 -32
- package/.agent/workflows/news-aggregator.json +0 -93
- package/.agent/workflows/news-dashboard-v2.json +0 -94
- package/.agent/workflows/notification-batch.json +0 -32
- package/output/emoji-segoe-test-v2.png +0 -0
- package/output/emoji-segoe-test.png +0 -0
- package/output/emoji-test.png +0 -0
- package/output/emoji-windows-test.png +0 -0
- package/output/foliko-emoji-poster.png +0 -0
- package/output/foliko-muji-poster-final.png +0 -0
- package/output/foliko-muji-poster-v2.png +0 -0
- package/output/foliko-muji-poster.png +0 -0
- package/output/foliko-share.png +0 -0
- package/output/progress-circle-test.png +0 -0
- package/output/vb-agent-poster.png +0 -0
|
@@ -7,150 +7,40 @@
|
|
|
7
7
|
"enabled": true,
|
|
8
8
|
"config": {}
|
|
9
9
|
},
|
|
10
|
-
"skill-manager": {
|
|
11
|
-
"enabled": true,
|
|
12
|
-
"config": {}
|
|
13
|
-
},
|
|
14
|
-
"mcp-executor": {
|
|
15
|
-
"enabled": true,
|
|
16
|
-
"config": {}
|
|
17
|
-
},
|
|
18
|
-
"python-plugin-loader": {
|
|
19
|
-
"enabled": true,
|
|
20
|
-
"config": {}
|
|
21
|
-
},
|
|
22
|
-
"subagent-manager": {
|
|
23
|
-
"enabled": true,
|
|
24
|
-
"config": {
|
|
25
|
-
"agentsDir": ".agent/agents",
|
|
26
|
-
"agents": [
|
|
27
|
-
{
|
|
28
|
-
"name": "code-assistant",
|
|
29
|
-
"description": "代码助手 - 专业的编程和代码分析助手",
|
|
30
|
-
"instructions": "你是一个专业的代码助手,精通多种编程语言和开发技术。\n\n【核心能力】\n- 代码编写、调试和优化\n- 代码审查和重构建议\n- 多种编程语言支持(Python、JavaScript、TypeScript、Java等)\n- 代码问题诊断和解决\n- 解释复杂代码逻辑\n\n【工作原则】\n- 提供清晰、规范的代码\n- 包含必要的注释说明\n- 考虑代码性能和安全性\n- 遵循最佳实践",
|
|
31
|
-
"tools": [
|
|
32
|
-
"read_file",
|
|
33
|
-
"write_file",
|
|
34
|
-
"modify_file",
|
|
35
|
-
"search_file",
|
|
36
|
-
"python-execute",
|
|
37
|
-
"execute_command",
|
|
38
|
-
"shell"
|
|
39
|
-
],
|
|
40
|
-
"_fromDir": true
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
"name": "email-assistant",
|
|
44
|
-
"description": "邮件助手 - 专业的邮件管理助手",
|
|
45
|
-
"instructions": "你是一个专业的邮件助手,擅长邮件的读写、筛选和管理。\n\n【核心能力】\n- 读取和回复邮件\n- 发送新邮件(支持附件)\n- 邮件搜索和筛选\n- 邮件摘要生成\n- 批量邮件处理\n\n【工作原则】\n- 保持邮件格式规范\n- 回复内容专业得体\n- 保护隐私信息\n- 及时处理重要邮件",
|
|
46
|
-
"tools": [
|
|
47
|
-
"email_read",
|
|
48
|
-
"email_send",
|
|
49
|
-
"email_mark_read",
|
|
50
|
-
"email_delete",
|
|
51
|
-
"email_unread_count",
|
|
52
|
-
"email_configure",
|
|
53
|
-
"notification_send"
|
|
54
|
-
],
|
|
55
|
-
"_fromDir": true
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"name": "file-assistant",
|
|
59
|
-
"description": "文件助手 - 专业的文件管理和操作助手",
|
|
60
|
-
"instructions": "你是一个专业的文件助手,擅长文件操作、目录管理、文件搜索和内容编辑。\n\n【核心能力】\n- 读取、创建、编辑、删除文件和目录\n- 搜索文件内容和文件名称\n- 批量文件操作\n- 文件内容分析和提取\n\n【工作原则】\n- 执行操作前确认路径正确\n- 危险操作(如删除)需要谨慎\n- 保持文件编码一致性\n- 重要文件操作前可创建备份",
|
|
61
|
-
"tools": [
|
|
62
|
-
"read_file",
|
|
63
|
-
"write_file",
|
|
64
|
-
"delete_file",
|
|
65
|
-
"modify_file",
|
|
66
|
-
"search_file",
|
|
67
|
-
"read_directory",
|
|
68
|
-
"create_directory",
|
|
69
|
-
"execute_command"
|
|
70
|
-
],
|
|
71
|
-
"_fromDir": true
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
"name": "system-assistant",
|
|
75
|
-
"description": "系统助手 - 专业的系统信息监控和管理助手",
|
|
76
|
-
"instructions": "你是一个专业的系统助手,精通系统信息监控和基础管理。\n\n【核心能力】\n- CPU、内存、磁盘使用情况监控\n- 网络接口信息查询\n- 系统运行状态分析\n- 性能问题诊断\n- 定时监控和报告\n\n【工作原则】\n- 提供清晰的数据展示\n- 发现异常及时提醒\n- 给出合理的优化建议\n- 保护系统安全",
|
|
77
|
-
"tools": [
|
|
78
|
-
"get_basic_info",
|
|
79
|
-
"get_cpu_info",
|
|
80
|
-
"get_memory_info",
|
|
81
|
-
"get_disk_info",
|
|
82
|
-
"get_network_info",
|
|
83
|
-
"get_full_system_info",
|
|
84
|
-
"notification_send",
|
|
85
|
-
"schedule_task"
|
|
86
|
-
],
|
|
87
|
-
"_fromDir": true
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
"name": "web-assistant",
|
|
91
|
-
"description": "网络助手 - 专业的网络数据获取和处理助手",
|
|
92
|
-
"instructions": "你是一个专业的网络助手,精通网络数据获取和处理。\n\n【核心能力】\n- HTTP请求发送(GET/POST/PUT/DELETE等)\n- 网页内容抓取和解析\n- API调用和数据处理\n- JSON/XML数据解析\n- 网络问题诊断\n\n【工作原则】\n- 遵守网站使用协议\n- 合理控制请求频率\n- 数据处理规范\n- 异常情况妥善处理",
|
|
93
|
-
"tools": [
|
|
94
|
-
"fetch",
|
|
95
|
-
"web_request",
|
|
96
|
-
"execute_command",
|
|
97
|
-
"python-execute",
|
|
98
|
-
"notification_send"
|
|
99
|
-
],
|
|
100
|
-
"_fromDir": true
|
|
101
|
-
}
|
|
102
|
-
]
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
"system-info": {
|
|
106
|
-
"enabled": true,
|
|
107
|
-
"config": {}
|
|
108
|
-
},
|
|
109
10
|
"ai": {
|
|
110
11
|
"enabled": true
|
|
111
12
|
},
|
|
112
|
-
"
|
|
13
|
+
"storage": {
|
|
113
14
|
"enabled": true,
|
|
114
15
|
"config": {
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
"
|
|
118
|
-
"persistencePath": ".agent/data/ambient",
|
|
119
|
-
"defaultGoals": []
|
|
16
|
+
"type": "json",
|
|
17
|
+
"path": ".agent/data",
|
|
18
|
+
"namespace": "default"
|
|
120
19
|
}
|
|
121
20
|
},
|
|
122
|
-
"
|
|
21
|
+
"tools": {
|
|
123
22
|
"enabled": true,
|
|
124
|
-
"config": {
|
|
125
|
-
"maxLogs": 1000,
|
|
126
|
-
"retentionDays": 30,
|
|
127
|
-
"logDir": ".agent/logs"
|
|
128
|
-
}
|
|
129
|
-
},
|
|
130
|
-
"email": {
|
|
131
|
-
"enabled": false,
|
|
132
23
|
"config": {}
|
|
133
24
|
},
|
|
134
|
-
"
|
|
25
|
+
"workflow": {
|
|
135
26
|
"enabled": true,
|
|
136
27
|
"config": {}
|
|
137
28
|
},
|
|
138
|
-
"
|
|
139
|
-
"enabled": false,
|
|
140
|
-
"config": {
|
|
141
|
-
"appId": "cli_a90e8b47db235bdb",
|
|
142
|
-
"appSecret": "Vmfy9gXWtYQtec36uY3B8ecr1QEZO2N8",
|
|
143
|
-
"allowedUsers": []
|
|
144
|
-
}
|
|
145
|
-
},
|
|
146
|
-
"file-system": {
|
|
29
|
+
"skill-manager": {
|
|
147
30
|
"enabled": true,
|
|
148
31
|
"config": {}
|
|
149
32
|
},
|
|
150
|
-
"
|
|
33
|
+
"mcp-executor": {
|
|
151
34
|
"enabled": true,
|
|
152
35
|
"config": {}
|
|
153
36
|
},
|
|
37
|
+
"shell-executor": {
|
|
38
|
+
"enabled": true,
|
|
39
|
+
"config": {
|
|
40
|
+
"timeout": 60000,
|
|
41
|
+
"workingDir": "D:\\code\\vb-agent"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
154
44
|
"python-executor": {
|
|
155
45
|
"enabled": true,
|
|
156
46
|
"config": {
|
|
@@ -160,20 +50,6 @@
|
|
|
160
50
|
"pipPath": null
|
|
161
51
|
}
|
|
162
52
|
},
|
|
163
|
-
"rules": {
|
|
164
|
-
"enabled": true,
|
|
165
|
-
"config": {
|
|
166
|
-
"rulesDir": ".agent/rules",
|
|
167
|
-
"autoLoad": true
|
|
168
|
-
}
|
|
169
|
-
},
|
|
170
|
-
"scheduler": {
|
|
171
|
-
"enabled": true,
|
|
172
|
-
"config": {
|
|
173
|
-
"checkInterval": 1000,
|
|
174
|
-
"persistencePath": ".agent/data/scheduler"
|
|
175
|
-
}
|
|
176
|
-
},
|
|
177
53
|
"session": {
|
|
178
54
|
"enabled": true,
|
|
179
55
|
"config": {
|
|
@@ -188,30 +64,32 @@
|
|
|
188
64
|
"onSessionCreated": null
|
|
189
65
|
}
|
|
190
66
|
},
|
|
191
|
-
"
|
|
67
|
+
"audit": {
|
|
192
68
|
"enabled": true,
|
|
193
69
|
"config": {
|
|
194
|
-
"
|
|
195
|
-
"
|
|
70
|
+
"maxLogs": 1000,
|
|
71
|
+
"retentionDays": 30,
|
|
72
|
+
"logDir": ".agent/logs"
|
|
196
73
|
}
|
|
197
74
|
},
|
|
198
|
-
"
|
|
75
|
+
"rules": {
|
|
199
76
|
"enabled": true,
|
|
200
77
|
"config": {
|
|
201
|
-
"
|
|
202
|
-
"
|
|
203
|
-
"namespace": "default"
|
|
78
|
+
"rulesDir": ".agent/rules",
|
|
79
|
+
"autoLoad": true
|
|
204
80
|
}
|
|
205
81
|
},
|
|
206
|
-
"
|
|
207
|
-
"enabled":
|
|
82
|
+
"scheduler": {
|
|
83
|
+
"enabled": true,
|
|
208
84
|
"config": {
|
|
209
|
-
"
|
|
210
|
-
"
|
|
211
|
-
"groupMode": false,
|
|
212
|
-
"prefix": "/"
|
|
85
|
+
"checkInterval": 1000,
|
|
86
|
+
"persistencePath": ".agent/data/scheduler"
|
|
213
87
|
}
|
|
214
88
|
},
|
|
89
|
+
"file-system": {
|
|
90
|
+
"enabled": true,
|
|
91
|
+
"config": {}
|
|
92
|
+
},
|
|
215
93
|
"think": {
|
|
216
94
|
"enabled": true,
|
|
217
95
|
"config": {
|
|
@@ -221,42 +99,172 @@
|
|
|
221
99
|
"enableContinuous": false
|
|
222
100
|
}
|
|
223
101
|
},
|
|
224
|
-
"
|
|
102
|
+
"python-plugin-loader": {
|
|
225
103
|
"enabled": true,
|
|
226
104
|
"config": {}
|
|
227
105
|
},
|
|
228
|
-
"
|
|
106
|
+
"telegram": {
|
|
107
|
+
"enabled": false,
|
|
108
|
+
"config": {
|
|
109
|
+
"botToken": "1980700161:AAHQQxKRAyg6-MuOTZDIj7x9WjEdIaGhK5I",
|
|
110
|
+
"allowedChats": [],
|
|
111
|
+
"groupMode": false,
|
|
112
|
+
"prefix": "/",
|
|
113
|
+
"systemPrompt": "你是一个有帮助的AI助手。"
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"weixin": {
|
|
117
|
+
"enabled": false,
|
|
118
|
+
"config": {
|
|
119
|
+
"forceLogin": false,
|
|
120
|
+
"qrcodeTerminal": true,
|
|
121
|
+
"allowedUsers": [],
|
|
122
|
+
"systemPrompt": "你是一个有帮助的AI助手。回复内容不要使用markdown格式文本"
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
"email": {
|
|
229
126
|
"enabled": true,
|
|
230
127
|
"config": {}
|
|
231
128
|
},
|
|
232
|
-
"
|
|
129
|
+
"subagent-manager": {
|
|
130
|
+
"enabled": true,
|
|
131
|
+
"config": {
|
|
132
|
+
"agentsDir": "D:\\code\\vb-agent\\.agent\\agents",
|
|
133
|
+
"agents": [
|
|
134
|
+
{
|
|
135
|
+
"name": "code-archaeologist",
|
|
136
|
+
"description": "Expert in legacy code, refactoring, and understanding undocumented systems. Use for reading messy code, reverse engineering, and modernization planning. Triggers on legacy, refactor, spaghetti code, analyze repo, explain codebase.",
|
|
137
|
+
"tools": "Read, Grep, Glob, Edit, Write",
|
|
138
|
+
"model": "inherit",
|
|
139
|
+
"skills": "clean-code, refactoring-patterns, code-review-checklist",
|
|
140
|
+
"_fromDir": true
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"name": "data-analyst",
|
|
144
|
+
"description": "Expert in data analysis, visualization, statistics, and Python data processing. Use for pandas, matplotlib, CSV analysis, statistical tests, and generating charts. Triggers on analyze data, chart, plot, statistics, csv, excel, pandas, matplotlib, correlation, trend.",
|
|
145
|
+
"tools": "Read, Write, Glob, Grep, PythonExecute, PythonScript, PipInstall, Bash",
|
|
146
|
+
"model": "inherit",
|
|
147
|
+
"skills": "python-data, statistics-basics, visualization-patterns",
|
|
148
|
+
"_fromDir": true
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"name": "devops-engineer",
|
|
152
|
+
"description": "Expert in deployment, server management, CI/CD, and production operations. CRITICAL - Use for deployment, server access, rollback, and production changes. HIGH RISK operations. Triggers on deploy, production, server, pm2, ssh, release, rollback, ci/cd.",
|
|
153
|
+
"tools": "Read, Grep, Glob, Bash, Edit, Write",
|
|
154
|
+
"model": "inherit",
|
|
155
|
+
"skills": "clean-code, deployment-procedures, server-management, powershell-windows, bash-linux",
|
|
156
|
+
"_fromDir": true
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"name": "email-admin",
|
|
160
|
+
"description": "Email management expert for sending, reading, configuring emails, and monitoring inbox. Use for composing emails, checking unread messages, setting up email watches, configuring SMTP/IMAP, and email automation. Triggers on email, mail, inbox, smtp, imap, send email, read email, unread.",
|
|
161
|
+
"tools": "Read, Write, Edit, Glob, Grep, Bash, Shell, ExecuteCommand, EmailSend, EmailRead, EmailConfigure, EmailWatch, EmailUnreadCount, EmailMarkRead, EmailDelete, EmailAutoReply, Fetch",
|
|
162
|
+
"model": "inherit",
|
|
163
|
+
"skills": "clean-code",
|
|
164
|
+
"_fromDir": true
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"name": "frontend-specialist",
|
|
168
|
+
"description": "Senior Frontend Architect who builds maintainable React/Next.js systems with performance-first mindset. Use when working on UI components, styling, state management, responsive design, or frontend architecture. Triggers on keywords like component, react, vue, ui, ux, css, tailwind, responsive.",
|
|
169
|
+
"tools": "Read, Grep, Glob, Bash, Edit, Write",
|
|
170
|
+
"model": "inherit",
|
|
171
|
+
"skills": "clean-code, nextjs-react-expert, web-design-guidelines, tailwind-patterns, frontend-design, lint-and-validate",
|
|
172
|
+
"_fromDir": true
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"name": "product-manager",
|
|
176
|
+
"description": "Expert in product requirements, user stories, and acceptance criteria. Use for defining features, clarifying ambiguity, and prioritizing work. Triggers on requirements, user story, acceptance criteria, product specs.",
|
|
177
|
+
"tools": "Read, Grep, Glob, Bash",
|
|
178
|
+
"model": "inherit",
|
|
179
|
+
"skills": "plan-writing, brainstorming, clean-code",
|
|
180
|
+
"_fromDir": true
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"name": "python-developer",
|
|
184
|
+
"description": "Expert in Python development including web frameworks (FastAPI, Flask, Django), data processing (pandas, numpy), automation scripts, and API development. Triggers on python, fastapi, flask, django, pandas, numpy, pip, virtualenv, pytest, script, automation.",
|
|
185
|
+
"tools": "Read, Write, Glob, Grep, SearchFile, PythonExecute, PythonScript, PipInstall, Bash",
|
|
186
|
+
"model": "inherit",
|
|
187
|
+
"skills": "python-patterns, fastapi-guide, pandas-cookbook",
|
|
188
|
+
"_fromDir": true
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"name": "security-auditor",
|
|
192
|
+
"description": "Elite cybersecurity expert. Think like an attacker, defend like an expert. OWASP 2025, supply chain security, zero trust architecture. Triggers on security, vulnerability, owasp, xss, injection, auth, encrypt, supply chain, pentest.",
|
|
193
|
+
"tools": "Read, Grep, Glob, Bash, Edit, Write",
|
|
194
|
+
"model": "inherit",
|
|
195
|
+
"skills": "clean-code, vulnerability-scanner, red-team-tactics, api-patterns",
|
|
196
|
+
"_fromDir": true
|
|
197
|
+
}
|
|
198
|
+
]
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
"web": {
|
|
233
202
|
"enabled": true,
|
|
234
203
|
"config": {}
|
|
235
204
|
},
|
|
236
|
-
"
|
|
205
|
+
"feishu": {
|
|
237
206
|
"enabled": false,
|
|
238
207
|
"config": {
|
|
239
|
-
"forceLogin": false,
|
|
240
|
-
"qrcodeTerminal": true,
|
|
241
208
|
"allowedUsers": []
|
|
242
209
|
}
|
|
243
210
|
},
|
|
244
|
-
"
|
|
211
|
+
"test-subagent": {
|
|
212
|
+
"enabled": true,
|
|
213
|
+
"config": {}
|
|
214
|
+
},
|
|
215
|
+
"system-info": {
|
|
216
|
+
"enabled": true,
|
|
217
|
+
"config": {}
|
|
218
|
+
},
|
|
219
|
+
"proactive-agent": {
|
|
220
|
+
"enabled": true,
|
|
221
|
+
"config": {
|
|
222
|
+
"autoStart": false,
|
|
223
|
+
"exploreInterval": 30000,
|
|
224
|
+
"maxNoProgress": 5,
|
|
225
|
+
"maxIterations": 20,
|
|
226
|
+
"enableReflection": true,
|
|
227
|
+
"maxConcurrentGoals": 3,
|
|
228
|
+
"quiet": false,
|
|
229
|
+
"reflectionThreshold": 2
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
"test-plugin": {
|
|
233
|
+
"enabled": true,
|
|
234
|
+
"config": {}
|
|
235
|
+
},
|
|
236
|
+
"ambient": {
|
|
245
237
|
"enabled": true,
|
|
246
238
|
"config": {
|
|
247
|
-
"
|
|
248
|
-
"
|
|
239
|
+
"enabled": true,
|
|
240
|
+
"tickInterval": 5000,
|
|
241
|
+
"cooldownPeriod": 3000,
|
|
242
|
+
"persistencePath": ".agent/data/ambient",
|
|
243
|
+
"defaultGoals": [],
|
|
244
|
+
"llmCallTimeout": 30000,
|
|
245
|
+
"actionTimeout": 20000
|
|
249
246
|
}
|
|
250
247
|
},
|
|
251
|
-
"
|
|
248
|
+
"puppeteer": {
|
|
252
249
|
"enabled": true,
|
|
253
250
|
"config": {}
|
|
254
251
|
},
|
|
255
|
-
"
|
|
252
|
+
"subagents": {
|
|
253
|
+
"enabled": true,
|
|
254
|
+
"config": {
|
|
255
|
+
"agentsDir": "D:\\code\\vb-agent\\.agent\\agents",
|
|
256
|
+
"agents": []
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
"extension-executor": {
|
|
260
|
+
"enabled": true,
|
|
261
|
+
"config": {}
|
|
262
|
+
},
|
|
263
|
+
"gate-trading": {
|
|
256
264
|
"enabled": true,
|
|
257
265
|
"config": {}
|
|
258
266
|
},
|
|
259
|
-
"
|
|
267
|
+
"plugin_manager": {
|
|
260
268
|
"enabled": true,
|
|
261
269
|
"config": {}
|
|
262
270
|
},
|
|
@@ -270,16 +278,7 @@
|
|
|
270
278
|
"preference",
|
|
271
279
|
"setting",
|
|
272
280
|
"user"
|
|
273
|
-
]
|
|
274
|
-
"maxCoreMemory": 4000
|
|
275
|
-
}
|
|
276
|
-
},
|
|
277
|
-
"session-memory": {
|
|
278
|
-
"enabled": true,
|
|
279
|
-
"config": {
|
|
280
|
-
"memoryDir": ".agent/memory",
|
|
281
|
-
"maxCoreMemory": 4000,
|
|
282
|
-
"maxRecallResults": 5
|
|
281
|
+
]
|
|
283
282
|
}
|
|
284
283
|
},
|
|
285
284
|
"poster": {
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"MiniMax": {
|
|
4
|
+
"command": "uvx",
|
|
5
|
+
"args": ["minimax-coding-plan-mcp", "-y"],
|
|
6
|
+
"env": {
|
|
7
|
+
"MINIMAX_API_KEY": "sk-cp-jRMMNA-8Nqb3gIszeqj5thnLHpbNeLAFPfWiAH3aR_282Cr6qE7WnINOvq3b_vQ5QLybWMoYiphLYPhZCpW8Jg9zx-XmpTc9qxrVpHIB8J0JGeixxm2KhLw",
|
|
8
|
+
"MINIMAX_API_HOST": "https://api.minimaxi.com"
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "mnrdvj5i-ca3dkd"
|
|
3
|
+
name: "避免传入无效的 side 参数"
|
|
4
|
+
type: "feedback"
|
|
5
|
+
project: "null"
|
|
6
|
+
tags: [error, avoid, gate-trading, 参数校验]
|
|
7
|
+
created: "2026-04-09"
|
|
8
|
+
---
|
|
9
|
+
【下次这样做】调用 gate_create_order 时,side 参数必须传入有效值 "buy" 或 "sell"。错误原因:传入 "invalid_side" 导致 API 返回 400 错误。建议在调用前校验 side 参数的合法性,或使用枚举类型限制可选值。
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "mnre365e-7s4zax"
|
|
3
|
+
name: "避免传入数组类型给期望字符串类型的参数"
|
|
4
|
+
type: "feedback"
|
|
5
|
+
project: "null"
|
|
6
|
+
tags: [error, avoid, gate-trading:gate_get_perpetual_open_orders, 参数类型错误]
|
|
7
|
+
created: "2026-04-09"
|
|
8
|
+
---
|
|
9
|
+
【下次这样做】调用 gate_get_perpetual_open_orders 时,settle 参数应传入字符串而非数组。错误原因:代码执行 `(args.settle || "USDT").toLowerCase()`,期望 settle 是字符串,但实际传入了数组 `["USDT"]`,导致 `.toLowerCase()` 方法调用失败。正确调用:`{"settle": "USDT"}`
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "mnre36jn-nkfgmp"
|
|
3
|
+
name: "【避免指南】避免在未创建画布时调用 poster:add_poster_ribbon"
|
|
4
|
+
type: "feedback"
|
|
5
|
+
project: "null"
|
|
6
|
+
tags: [error, avoid, poster:add_poster_ribbon]
|
|
7
|
+
created: "2026-04-09"
|
|
8
|
+
---
|
|
9
|
+
【下次这样做】调用 poster:add_poster_ribbon 前必须先创建画布。错误原因:未先调用 canvas 相关工具创建画布就直接使用 canvasId="test" 调用 add_poster_ribbon,导致系统报错 "No canvas created"。正确流程:1. 先调用 canvas 创建工具获得 canvasId;2. 确认画布创建成功后再调用 poster:add_poster_ribbon。
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "mnre3805-kjiq6h"
|
|
3
|
+
name: "【避免指南】避免在未创建 canvas 的情况下调用 poster:add_poster_seal"
|
|
4
|
+
type: "feedback"
|
|
5
|
+
project: "null"
|
|
6
|
+
tags: [error, avoid, poster:add_poster_seal, canvas]
|
|
7
|
+
created: "2026-04-09"
|
|
8
|
+
---
|
|
9
|
+
【下次这样做】调用 poster:add_poster_seal 前必须先确保 canvas 已创建。错误原因:仅传入 canvasId 参数但未实际创建对应 canvas,导致工具执行时找不到目标画布。正确流程:1) 先调用 poster:create_canvas 创建画布并获得 canvas 实例;2) 使用创建的 canvas 实例进行后续操作(如添加印章)。
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "mnqx54u5-loqtoe"
|
|
3
|
+
name: "FOLIKO项目核心信息与设计规范"
|
|
4
|
+
type: "project"
|
|
5
|
+
project: "FOLIKO"
|
|
6
|
+
tags: [核心特性, 设计规范, 项目路径, 用户偏好]
|
|
7
|
+
created: "2026-04-09"
|
|
8
|
+
---
|
|
9
|
+
FOLIKO项目核心特性为:插件化架构、多模型支持、流式实时响应。项目路径位于 D:\code\vb-agent\。项目视觉设计规范为:暗色科技风+赛博朋克霓虹(深蓝黑底+青绿渐变+紫色点缀),用户偏好精美且让AI自主决定的设计。Why: 明确项目核心卖点与视觉品牌基调,确保后续内容生成的一致性;记录用户偏好以优化交互体验。How to apply: 涉及FOLIKO的宣传、UI设计时,必须体现三大核心特性,并沿用科技风霓虹配色;对用户采取“直接出精美方案、少问细节”的交互策略。
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "mnre3cww-penbo1"
|
|
3
|
+
name: "ext_call 参数约束"
|
|
4
|
+
type: "reference"
|
|
5
|
+
project: "null"
|
|
6
|
+
tags: [ext_call, 参数验证, 插件开发]
|
|
7
|
+
created: "2026-04-09"
|
|
8
|
+
---
|
|
9
|
+
ext_call 调用时参数类型有约束:text 参数不能为数字或 null(需要字符串);settle 参数不能为数组(需要字符串如 'USDT')。Why:参数类型错误会导致调用失败,影响插件功能。How to apply:调用前确保参数类型符合规范,字符串参数用 .toLowerCase() 前需确认类型。
|
|
Binary file
|
|
Binary file
|
|
@@ -1986,8 +1986,8 @@ module.exports = function (Plugin) {
|
|
|
1986
1986
|
export_poster_canvas: {
|
|
1987
1987
|
description: '导出画布为图片文件',
|
|
1988
1988
|
inputSchema: z.object({
|
|
1989
|
-
filename: z.string().describe('文件名(不含扩展名)'),
|
|
1990
|
-
format: z.enum(['png', 'jpg']).
|
|
1989
|
+
//filename: z.string().describe('文件名(不含扩展名)'),
|
|
1990
|
+
format: z.enum(['png', 'jpg','svg']).default('png').describe('格式,默认png'),
|
|
1991
1991
|
quality: z.number().optional().describe('JPEG质量'),
|
|
1992
1992
|
outputDir: z.string().optional().describe('输出目录'),
|
|
1993
1993
|
}),
|
|
@@ -1996,10 +1996,11 @@ module.exports = function (Plugin) {
|
|
|
1996
1996
|
if (!this._canvasManager.isCreated()) {
|
|
1997
1997
|
return { success: false, error: 'No canvas created' }
|
|
1998
1998
|
}
|
|
1999
|
-
|
|
1999
|
+
const uid = () => Math.random().toString(36).substring(2, 10);
|
|
2000
|
+
const name=args.filename||uid()
|
|
2000
2001
|
const format = args.format || 'png'
|
|
2001
2002
|
const outputDir = args.outputDir || '.'
|
|
2002
|
-
const filename = `${
|
|
2003
|
+
const filename = `${name}.${format}`
|
|
2003
2004
|
await fs.promises.mkdir(outputDir, { recursive: true })
|
|
2004
2005
|
const filepath = path.join(outputDir, filename)
|
|
2005
2006
|
const buffer = this._canvasManager.toBuffer(format, args.quality)
|
|
@@ -2021,33 +2022,33 @@ module.exports = function (Plugin) {
|
|
|
2021
2022
|
/**
|
|
2022
2023
|
* 导出为 Base64
|
|
2023
2024
|
*/
|
|
2024
|
-
export_poster_base64: {
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2025
|
+
// export_poster_base64: {
|
|
2026
|
+
// description: '导出画布为 Base64 编码',
|
|
2027
|
+
// inputSchema: z.object({
|
|
2028
|
+
// format: z.enum(['png', 'jpg']).optional().describe('格式'),
|
|
2029
|
+
// quality: z.number().optional().describe('JPEG质量'),
|
|
2030
|
+
// }),
|
|
2031
|
+
// execute: async (args) => {
|
|
2032
|
+
// try {
|
|
2033
|
+
// if (!this._canvasManager.isCreated()) {
|
|
2034
|
+
// return { success: false, error: 'No canvas created' }
|
|
2035
|
+
// }
|
|
2035
2036
|
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2037
|
+
// const format = args.format || 'png'
|
|
2038
|
+
// const base64 = this._canvasManager.toBase64(format, args.quality)
|
|
2039
|
+
// const mimeType = format === 'jpg' ? 'image/jpeg' : 'image/png'
|
|
2039
2040
|
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
},
|
|
2041
|
+
// return {
|
|
2042
|
+
// success: true,
|
|
2043
|
+
// base64,
|
|
2044
|
+
// format,
|
|
2045
|
+
// mimeType,
|
|
2046
|
+
// }
|
|
2047
|
+
// } catch (err) {
|
|
2048
|
+
// return { success: false, error: err.message }
|
|
2049
|
+
// }
|
|
2050
|
+
// },
|
|
2051
|
+
// },
|
|
2051
2052
|
}
|
|
2052
2053
|
|
|
2053
2054
|
|