foliko 1.1.0 → 1.1.1
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/mcp_config_updated.json +12 -0
- package/.agent/plugins/poster-plugin/fonts/NotoColorEmoji-Regular.ttf +0 -0
- package/.agent/plugins/poster-plugin/src/elements/polygon.js +37 -6
- package/.agent/plugins/poster-plugin/src/elements/text.js +71 -2
- package/.agent/plugins/poster-plugin/src/fonts.js +123 -8
- package/.agent/plugins/poster-plugin/src/index.js +15 -16
- 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 +135 -23981
- package/.agent/sessions/weixin_o9cq80zgZqKPA2-s59PN43GdDy1w@im.wechat.json +2195 -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/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 +16 -1
- package/.env.example +56 -56
- package/README.md +441 -441
- package/calc_tokens_weixin.js +81 -0
- package/cli/src/commands/chat.js +2 -1
- package/foliko-creative-3.png +0 -0
- package/foliko-creative-4.png +0 -0
- package/foliko-creative-5.png +0 -0
- package/package.json +1 -1
- package/plugins/extension-executor-plugin.js +80 -2
- package/plugins/file-system-plugin.js +2 -2
- package/plugins/weixin-plugin.js +10 -2
- package/skills/find-skills/AGENTS.md +162 -162
- package/skills/find-skills/SKILL.md +133 -133
- package/skills/poster-guide/SKILL.md +948 -632
- package/src/core/agent-chat.js +82 -3
- package/story-cover-book-v2.png +0 -0
- package/story-cover-japanese-1.png +0 -0
- package/story-cover-japanese-2.png +0 -0
- package/story-cover-japanese-3.png +0 -0
- package/story-cover-moran.png +0 -0
- package/undefined.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/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/index.js +0 -228
- package/.agent/plugins/marknative/package.json +0 -12
- package/.agent/plugins/marknative/update-readme.js +0 -134
- 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/beef-love-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": {
|
|
@@ -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
|
+
}
|
|
Binary file
|
|
@@ -6,24 +6,55 @@ const paper = require('paper')
|
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* 添加多边形
|
|
9
|
+
* 支持两种模式:
|
|
10
|
+
* 1. 规则多边形: cx, cy, radius, sides
|
|
11
|
+
* 2. 自定义多边形: points 数组 [[x1,y1], [x2,y2], ...]
|
|
9
12
|
*/
|
|
10
13
|
function addPolygon(project, args) {
|
|
11
14
|
const {
|
|
12
15
|
cx, cy, radius, sides,
|
|
16
|
+
points,
|
|
13
17
|
fill, stroke, strokeWidth, opacity,
|
|
18
|
+
x = 0, y = 0,
|
|
14
19
|
} = args
|
|
15
20
|
|
|
16
|
-
|
|
17
|
-
center: [cx, cy],
|
|
18
|
-
radius: radius,
|
|
19
|
-
sides: sides,
|
|
20
|
-
})
|
|
21
|
+
let polygon
|
|
21
22
|
|
|
22
|
-
if (
|
|
23
|
+
if (points && Array.isArray(points)) {
|
|
24
|
+
// 使用自定义点创建多边形
|
|
25
|
+
// 每个点应该是 [relativeX, relativeY],相对于 x, y 偏移
|
|
26
|
+
const pathData = points.map((pt, i) => {
|
|
27
|
+
const px = (Array.isArray(pt) ? pt[0] : pt) + x
|
|
28
|
+
const py = (Array.isArray(pt) ? pt[1] : 0) + y
|
|
29
|
+
return i === 0 ? [px, py] : [px, py]
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
polygon = new paper.Path({
|
|
33
|
+
segments: pathData,
|
|
34
|
+
closed: true,
|
|
35
|
+
})
|
|
36
|
+
} else if (cx !== undefined && cy !== undefined) {
|
|
37
|
+
// 使用中心点和半径创建规则多边形
|
|
38
|
+
polygon = new paper.Path.RegularPolygon({
|
|
39
|
+
center: [cx, cy],
|
|
40
|
+
radius: radius || 100,
|
|
41
|
+
sides: sides || 6,
|
|
42
|
+
})
|
|
43
|
+
} else {
|
|
44
|
+
throw new Error('Polygon requires either points array or cx/cy coordinates')
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (fill) {
|
|
48
|
+
polygon.fillColor = new paper.Color(fill)
|
|
49
|
+
} else {
|
|
50
|
+
polygon.fillColor = null
|
|
51
|
+
}
|
|
52
|
+
|
|
23
53
|
if (stroke) {
|
|
24
54
|
polygon.strokeColor = new paper.Color(stroke)
|
|
25
55
|
polygon.strokeWidth = strokeWidth || 1
|
|
26
56
|
}
|
|
57
|
+
|
|
27
58
|
if (opacity !== undefined) polygon.opacity = opacity
|
|
28
59
|
|
|
29
60
|
return { success: true, id: polygon.id, type: 'polygon' }
|
|
@@ -3,7 +3,74 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
const paper = require('paper')
|
|
6
|
-
const { validateFont, getDefaultFont } = require('../fonts')
|
|
6
|
+
const { validateFont, getDefaultFont, getRegisteredFonts } = require('../fonts')
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 检测文本是否包含 emoji
|
|
10
|
+
*/
|
|
11
|
+
function containsEmoji(text) {
|
|
12
|
+
if (!text || typeof text !== 'string') return false
|
|
13
|
+
|
|
14
|
+
// Emoji Unicode 范围
|
|
15
|
+
const emojiRanges = [
|
|
16
|
+
/\u{1F600}-\u{1F64F}/u, // 表情符号
|
|
17
|
+
/\u{1F300}-\u{1F5FF}/u, // 符号和图片
|
|
18
|
+
/\u{1F680}-\u{1F6FF}/u, // 交通和地图
|
|
19
|
+
/\u{1F700}-\u{1F77F}/u, // 字母符号
|
|
20
|
+
/\u{1F780}-\u{1F7FF}/u, // 几何符号扩展
|
|
21
|
+
/\u{1F800}-\u{1F8FF}/u, // 箭头补充
|
|
22
|
+
/\u{1F900}-\u{1F9FF}/u, // 表情符号补充
|
|
23
|
+
/\u{1FA00}-\u{1FA6F}/u, // 棋牌符号
|
|
24
|
+
/\u{1FA70}-\u{1FAFF}/u, // 装饰符号
|
|
25
|
+
/\u{2600}-\u{26FF}/u, // 杂项符号
|
|
26
|
+
/\u{2700}-\u{27BF}/u, // 装饰符号
|
|
27
|
+
/[\u{1F000}-\u{1F02F}]/u, // 麻将牌
|
|
28
|
+
]
|
|
29
|
+
|
|
30
|
+
for (const range of emojiRanges) {
|
|
31
|
+
if (range.test(text)) {
|
|
32
|
+
return true
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// 简单检测:包含常见 emoji 字符
|
|
37
|
+
const simpleEmoji = /[\u{1F300}-\u{1F9FF}]/u
|
|
38
|
+
return simpleEmoji.test(text)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* 获取适合的字体(考虑 emoji)
|
|
43
|
+
*/
|
|
44
|
+
function getFontForText(requestedFont, text) {
|
|
45
|
+
const baseFont = validateFont(requestedFont) || getDefaultFont()
|
|
46
|
+
|
|
47
|
+
// 如果文本包含 emoji,尝试使用支持 emoji 的字体
|
|
48
|
+
if (containsEmoji(text)) {
|
|
49
|
+
const registeredFonts = getRegisteredFonts()
|
|
50
|
+
|
|
51
|
+
// 优先查找专门的 emoji 字体(多种命名方式)
|
|
52
|
+
const emojiFont = registeredFonts.find(f => {
|
|
53
|
+
if (!f) return false
|
|
54
|
+
const lower = f.toLowerCase()
|
|
55
|
+
return (
|
|
56
|
+
lower.includes('color emoji') || // Noto Color Emoji, Apple Color Emoji
|
|
57
|
+
lower.includes('noto emoji') || // Noto Emoji
|
|
58
|
+
lower.includes('segoe ui emoji') || // Windows emoji
|
|
59
|
+
lower.includes('symbola') || // Symbola
|
|
60
|
+
lower.includes('emoji') // 任何包含 emoji 的字体
|
|
61
|
+
)
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
if (emojiFont) {
|
|
65
|
+
console.log(`[poster] 检测到 emoji,使用字体: ${emojiFont}`)
|
|
66
|
+
return emojiFont
|
|
67
|
+
} else {
|
|
68
|
+
console.log(`[poster] 检测到 emoji,但未找到专用 emoji 字体,已注册字体: ${registeredFonts.join(', ')}`)
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return baseFont
|
|
73
|
+
}
|
|
7
74
|
|
|
8
75
|
/**
|
|
9
76
|
* 添加文字
|
|
@@ -17,11 +84,13 @@ function addText(project, args) {
|
|
|
17
84
|
shadow,
|
|
18
85
|
} = args
|
|
19
86
|
|
|
87
|
+
const font = getFontForText(fontFamily, text)
|
|
88
|
+
|
|
20
89
|
const textItem = new paper.PointText({
|
|
21
90
|
point: [x, y],
|
|
22
91
|
content: text,
|
|
23
92
|
fontSize: fontSize || 48,
|
|
24
|
-
fontFamily:
|
|
93
|
+
fontFamily: font,
|
|
25
94
|
fillColor: new paper.Color(color || '#ffffff'),
|
|
26
95
|
justification: align || 'left',
|
|
27
96
|
})
|