foliko 1.0.74 → 1.0.76

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.
Files changed (238) hide show
  1. package/.agent/.shared/ui-ux-pro-max/data/charts.csv +26 -0
  2. package/.agent/.shared/ui-ux-pro-max/data/colors.csv +97 -0
  3. package/.agent/.shared/ui-ux-pro-max/data/icons.csv +101 -0
  4. package/.agent/.shared/ui-ux-pro-max/data/landing.csv +31 -0
  5. package/.agent/.shared/ui-ux-pro-max/data/products.csv +97 -0
  6. package/.agent/.shared/ui-ux-pro-max/data/prompts.csv +24 -0
  7. package/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +45 -0
  8. package/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  9. package/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  10. package/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  11. package/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  12. package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  13. package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  14. package/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  15. package/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +54 -0
  16. package/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  17. package/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  18. package/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  19. package/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  20. package/.agent/.shared/ui-ux-pro-max/data/styles.csv +59 -0
  21. package/.agent/.shared/ui-ux-pro-max/data/typography.csv +58 -0
  22. package/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  23. package/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  24. package/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +31 -0
  25. package/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/core.cpython-313.pyc +0 -0
  26. package/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-313.pyc +0 -0
  27. package/.agent/.shared/ui-ux-pro-max/scripts/core.py +258 -0
  28. package/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +1067 -0
  29. package/.agent/.shared/ui-ux-pro-max/scripts/search.py +106 -0
  30. package/.agent/ARCHITECTURE.md +288 -0
  31. package/.agent/agents/ambient-agent.md +57 -0
  32. package/.agent/agents/debugger.md +55 -0
  33. package/.agent/agents/email-assistant.md +49 -0
  34. package/.agent/agents/file-manager.md +42 -0
  35. package/.agent/agents/python-developer.md +60 -0
  36. package/.agent/agents/scheduler.md +59 -0
  37. package/.agent/agents/web-developer.md +45 -0
  38. package/.agent/data/default.json +29 -0
  39. package/.agent/data/plugins-state.json +255 -0
  40. package/.agent/mcp_config.json +4 -0
  41. package/.agent/mcp_config_updated.json +12 -0
  42. package/.agent/plugins.json +5 -0
  43. package/.agent/rules/GEMINI.md +273 -0
  44. package/.agent/rules/allow-rule.md +77 -0
  45. package/.agent/rules/log-rule.md +83 -0
  46. package/.agent/rules/security-rule.md +93 -0
  47. package/.agent/scripts/auto_preview.py +148 -0
  48. package/.agent/scripts/checklist.py +217 -0
  49. package/.agent/scripts/session_manager.py +120 -0
  50. package/.agent/scripts/verify_all.py +327 -0
  51. package/.agent/skills/api-patterns/SKILL.md +81 -0
  52. package/.agent/skills/api-patterns/api-style.md +42 -0
  53. package/.agent/skills/api-patterns/auth.md +24 -0
  54. package/.agent/skills/api-patterns/documentation.md +26 -0
  55. package/.agent/skills/api-patterns/graphql.md +41 -0
  56. package/.agent/skills/api-patterns/rate-limiting.md +31 -0
  57. package/.agent/skills/api-patterns/response.md +37 -0
  58. package/.agent/skills/api-patterns/rest.md +40 -0
  59. package/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
  60. package/.agent/skills/api-patterns/security-testing.md +122 -0
  61. package/.agent/skills/api-patterns/trpc.md +41 -0
  62. package/.agent/skills/api-patterns/versioning.md +22 -0
  63. package/.agent/skills/app-builder/SKILL.md +75 -0
  64. package/.agent/skills/app-builder/agent-coordination.md +71 -0
  65. package/.agent/skills/app-builder/feature-building.md +53 -0
  66. package/.agent/skills/app-builder/project-detection.md +34 -0
  67. package/.agent/skills/app-builder/scaffolding.md +118 -0
  68. package/.agent/skills/app-builder/tech-stack.md +40 -0
  69. package/.agent/skills/app-builder/templates/SKILL.md +39 -0
  70. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  71. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  72. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  73. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  74. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  75. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  76. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  77. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
  78. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
  79. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
  80. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
  81. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  82. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
  83. package/.agent/skills/architecture/SKILL.md +55 -0
  84. package/.agent/skills/architecture/context-discovery.md +43 -0
  85. package/.agent/skills/architecture/examples.md +94 -0
  86. package/.agent/skills/architecture/pattern-selection.md +68 -0
  87. package/.agent/skills/architecture/patterns-reference.md +50 -0
  88. package/.agent/skills/architecture/trade-off-analysis.md +77 -0
  89. package/.agent/skills/clean-code/SKILL.md +201 -0
  90. package/.agent/skills/doc.md +177 -0
  91. package/.agent/skills/frontend-design/SKILL.md +418 -0
  92. package/.agent/skills/frontend-design/animation-guide.md +331 -0
  93. package/.agent/skills/frontend-design/color-system.md +311 -0
  94. package/.agent/skills/frontend-design/decision-trees.md +418 -0
  95. package/.agent/skills/frontend-design/motion-graphics.md +306 -0
  96. package/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  97. package/.agent/skills/frontend-design/scripts/ux_audit.py +722 -0
  98. package/.agent/skills/frontend-design/typography-system.md +345 -0
  99. package/.agent/skills/frontend-design/ux-psychology.md +1116 -0
  100. package/.agent/skills/frontend-design/visual-effects.md +383 -0
  101. package/.agent/skills/i18n-localization/SKILL.md +154 -0
  102. package/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  103. package/.agent/skills/mcp-builder/SKILL.md +176 -0
  104. package/.agent/skills/web-design-guidelines/SKILL.md +57 -0
  105. package/.agent/workflows/brainstorm.md +113 -0
  106. package/.agent/workflows/create.md +59 -0
  107. package/.agent/workflows/debug.md +103 -0
  108. package/.agent/workflows/deploy.md +176 -0
  109. package/.agent/workflows/enhance.md +63 -0
  110. package/.agent/workflows/orchestrate.md +237 -0
  111. package/.agent/workflows/plan.md +89 -0
  112. package/.agent/workflows/preview.md +81 -0
  113. package/.agent/workflows/simple-test.md +42 -0
  114. package/.agent/workflows/status.md +86 -0
  115. package/.agent/workflows/structured-orchestrate.md +180 -0
  116. package/.agent/workflows/test.md +144 -0
  117. package/.agent/workflows/ui-ux-pro-max.md +296 -0
  118. package/.claude/settings.local.json +11 -1
  119. package/.editorconfig +56 -0
  120. package/.husky/pre-commit +4 -0
  121. package/.lintstagedrc +7 -0
  122. package/.prettierignore +29 -0
  123. package/.prettierrc +11 -0
  124. package/CLAUDE.md +2 -0
  125. package/README.md +64 -55
  126. package/SPEC.md +102 -61
  127. package/cli/bin/foliko.js +11 -11
  128. package/cli/src/commands/chat.js +143 -141
  129. package/cli/src/commands/list.js +93 -90
  130. package/cli/src/index.js +75 -75
  131. package/cli/src/ui/chat-ui.js +201 -199
  132. package/cli/src/utils/ansi.js +40 -40
  133. package/cli/src/utils/markdown.js +292 -296
  134. package/docker-compose.yml +1 -1
  135. package/docs/ai-sdk-optimization.md +655 -643
  136. package/docs/features.md +80 -80
  137. package/docs/quick-reference.md +49 -46
  138. package/docs/user-manual.md +411 -380
  139. package/examples/ambient-example.js +194 -196
  140. package/examples/basic.js +50 -45
  141. package/examples/bootstrap.js +121 -112
  142. package/examples/mcp-example.js +19 -16
  143. package/examples/skill-example.js +20 -20
  144. package/examples/test-chat.js +137 -135
  145. package/examples/test-mcp.js +85 -79
  146. package/examples/test-reload.js +59 -61
  147. package/examples/test-telegram.js +50 -50
  148. package/examples/test-tg-bot.js +45 -42
  149. package/examples/test-tg-simple.js +47 -46
  150. package/examples/test-tg.js +62 -62
  151. package/examples/test-think.js +43 -37
  152. package/examples/test-web-plugin.js +103 -98
  153. package/examples/test-weixin-feishu.js +103 -100
  154. package/examples/workflow.js +158 -158
  155. package/package.json +37 -3
  156. package/plugins/ai-plugin.js +102 -100
  157. package/plugins/ambient-agent/EventWatcher.js +113 -0
  158. package/plugins/ambient-agent/ExplorerLoop.js +640 -0
  159. package/plugins/ambient-agent/GoalManager.js +197 -0
  160. package/plugins/ambient-agent/Reflector.js +95 -0
  161. package/plugins/ambient-agent/StateStore.js +90 -0
  162. package/plugins/ambient-agent/constants.js +101 -0
  163. package/plugins/ambient-agent/index.js +579 -0
  164. package/plugins/audit-plugin.js +187 -187
  165. package/plugins/default-plugins.js +662 -649
  166. package/plugins/email/constants.js +64 -0
  167. package/plugins/email/handlers.js +461 -0
  168. package/plugins/email/index.js +278 -0
  169. package/plugins/email/monitor.js +269 -0
  170. package/plugins/email/parser.js +138 -0
  171. package/plugins/email/reply.js +151 -0
  172. package/plugins/email/utils.js +124 -0
  173. package/plugins/feishu-plugin.js +481 -477
  174. package/plugins/file-system-plugin.js +826 -476
  175. package/plugins/install-plugin.js +199 -197
  176. package/plugins/python-executor-plugin.js +367 -365
  177. package/plugins/python-plugin-loader.js +481 -479
  178. package/plugins/rules-plugin.js +294 -292
  179. package/plugins/scheduler-plugin.js +691 -689
  180. package/plugins/session-plugin.js +369 -367
  181. package/plugins/shell-executor-plugin.js +197 -197
  182. package/plugins/storage-plugin.js +240 -238
  183. package/plugins/subagent-plugin.js +845 -785
  184. package/plugins/telegram-plugin.js +482 -475
  185. package/plugins/think-plugin.js +345 -343
  186. package/plugins/tools-plugin.js +196 -194
  187. package/plugins/web-plugin.js +606 -604
  188. package/plugins/weixin-plugin.js +545 -538
  189. package/reports/system-health-report-20260401.md +79 -0
  190. package/skills/ambient-agent/SKILL.md +49 -39
  191. package/skills/foliko-dev/AGENTS.md +64 -61
  192. package/skills/foliko-dev/SKILL.md +125 -119
  193. package/skills/mcp-usage/SKILL.md +19 -17
  194. package/skills/python-plugin-dev/SKILL.md +16 -15
  195. package/skills/skill-guide/SKILL.md +12 -12
  196. package/skills/subagent-guide/SKILL.md +237 -0
  197. package/skills/workflow-guide/SKILL.md +90 -45
  198. package/skills/workflow-troubleshooting/DEBUGGING.md +36 -21
  199. package/skills/workflow-troubleshooting/SKILL.md +156 -79
  200. package/src/capabilities/index.js +11 -11
  201. package/src/capabilities/skill-manager.js +609 -595
  202. package/src/capabilities/workflow-engine.js +1109 -1195
  203. package/src/core/agent-chat.js +882 -735
  204. package/src/core/agent.js +892 -688
  205. package/src/core/framework.js +465 -431
  206. package/src/core/index.js +19 -19
  207. package/src/core/plugin-base.js +219 -219
  208. package/src/core/plugin-manager.js +863 -767
  209. package/src/core/provider.js +114 -111
  210. package/src/core/sub-agent-config.js +264 -0
  211. package/src/core/system-prompt-builder.js +120 -0
  212. package/src/core/tool-registry.js +517 -134
  213. package/src/core/tool-router.js +297 -216
  214. package/src/executors/executor-base.js +12 -12
  215. package/src/executors/mcp-executor.js +741 -729
  216. package/src/index.js +25 -37
  217. package/src/utils/circuit-breaker.js +301 -0
  218. package/src/utils/error-boundary.js +363 -0
  219. package/src/utils/error.js +374 -0
  220. package/src/utils/event-emitter.js +97 -97
  221. package/src/utils/id.js +133 -0
  222. package/src/utils/index.js +217 -3
  223. package/src/utils/logger.js +181 -0
  224. package/src/utils/plugin-helpers.js +90 -0
  225. package/src/utils/retry.js +122 -0
  226. package/src/utils/sandbox.js +292 -0
  227. package/test/tool-registry-validation.test.js +218 -0
  228. package/test_report.md +70 -0
  229. package/website/docs/api.html +169 -107
  230. package/website/docs/configuration.html +296 -144
  231. package/website/docs/plugin-development.html +154 -85
  232. package/website/docs/project-structure.html +110 -109
  233. package/website/docs/skill-development.html +117 -61
  234. package/website/index.html +209 -205
  235. package/website/script.js +136 -133
  236. package/website/styles.css +1 -1
  237. package/plugins/ambient-agent-plugin.js +0 -1565
  238. package/plugins/email.js +0 -1142
@@ -0,0 +1,296 @@
1
+ ---
2
+ description: Plan and implement UI
3
+ ---
4
+
5
+ ---
6
+ description: AI-powered design intelligence with 50+ styles, 95+ color palettes, and automated design system generation
7
+ ---
8
+
9
+ # ui-ux-pro-max
10
+
11
+ Comprehensive design guide for web and mobile applications. Contains 50+ styles, 97 color palettes, 57 font pairings, 99 UX guidelines, and 25 chart types across 9 technology stacks. Searchable database with priority-based recommendations.
12
+
13
+ ## Prerequisites
14
+
15
+ Check if Python is installed:
16
+
17
+ ```bash
18
+ python3 --version || python --version
19
+ ```
20
+
21
+ If Python is not installed, install it based on user's OS:
22
+
23
+ **macOS:**
24
+ ```bash
25
+ brew install python3
26
+ ```
27
+
28
+ **Ubuntu/Debian:**
29
+ ```bash
30
+ sudo apt update && sudo apt install python3
31
+ ```
32
+
33
+ **Windows:**
34
+ ```powershell
35
+ winget install Python.Python.3.12
36
+ ```
37
+
38
+ ---
39
+
40
+ ## How to Use This Workflow
41
+
42
+ When user requests UI/UX work (design, build, create, implement, review, fix, improve), follow this workflow:
43
+
44
+ ### Step 1: Analyze User Requirements
45
+
46
+ Extract key information from user request:
47
+ - **Product type**: SaaS, e-commerce, portfolio, dashboard, landing page, etc.
48
+ - **Style keywords**: minimal, playful, professional, elegant, dark mode, etc.
49
+ - **Industry**: healthcare, fintech, gaming, education, etc.
50
+ - **Stack**: React, Vue, Next.js, or default to `html-tailwind`
51
+
52
+ ### Step 2: Generate Design System (REQUIRED)
53
+
54
+ **Always start with `--design-system`** to get comprehensive recommendations with reasoning:
55
+
56
+ ```bash
57
+ python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "<product_type> <industry> <keywords>" --design-system [-p "Project Name"]
58
+ ```
59
+
60
+ This command:
61
+ 1. Searches 5 domains in parallel (product, style, color, landing, typography)
62
+ 2. Applies reasoning rules from `ui-reasoning.csv` to select best matches
63
+ 3. Returns complete design system: pattern, style, colors, typography, effects
64
+ 4. Includes anti-patterns to avoid
65
+
66
+ **Example:**
67
+ ```bash
68
+ python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "beauty spa wellness service" --design-system -p "Serenity Spa"
69
+ ```
70
+
71
+ ### Step 2b: Persist Design System (Master + Overrides Pattern)
72
+
73
+ To save the design system for hierarchical retrieval across sessions, add `--persist`:
74
+
75
+ ```bash
76
+ python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "<query>" --design-system --persist -p "Project Name"
77
+ ```
78
+
79
+ This creates:
80
+ - `design-system/MASTER.md` — Global Source of Truth with all design rules
81
+ - `design-system/pages/` — Folder for page-specific overrides
82
+
83
+ **With page-specific override:**
84
+ ```bash
85
+ python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "<query>" --design-system --persist -p "Project Name" --page "dashboard"
86
+ ```
87
+
88
+ This also creates:
89
+ - `design-system/pages/dashboard.md` — Page-specific deviations from Master
90
+
91
+ **How hierarchical retrieval works:**
92
+ 1. When building a specific page (e.g., "Checkout"), first check `design-system/pages/checkout.md`
93
+ 2. If the page file exists, its rules **override** the Master file
94
+ 3. If not, use `design-system/MASTER.md` exclusively
95
+
96
+ ### Step 3: Supplement with Detailed Searches (as needed)
97
+
98
+ After getting the design system, use domain searches to get additional details:
99
+
100
+ ```bash
101
+ python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "<keyword>" --domain <domain> [-n <max_results>]
102
+ ```
103
+
104
+ **When to use detailed searches:**
105
+
106
+ | Need | Domain | Example |
107
+ |------|--------|---------|
108
+ | More style options | `style` | `--domain style "glassmorphism dark"` |
109
+ | Chart recommendations | `chart` | `--domain chart "real-time dashboard"` |
110
+ | UX best practices | `ux` | `--domain ux "animation accessibility"` |
111
+ | Alternative fonts | `typography` | `--domain typography "elegant luxury"` |
112
+ | Landing structure | `landing` | `--domain landing "hero social-proof"` |
113
+
114
+ ### Step 4: Stack Guidelines (Default: html-tailwind)
115
+
116
+ Get implementation-specific best practices. If user doesn't specify a stack, **default to `html-tailwind`**.
117
+
118
+ ```bash
119
+ python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "<keyword>" --stack html-tailwind
120
+ ```
121
+
122
+ Available stacks: `html-tailwind`, `react`, `nextjs`, `vue`, `svelte`, `swiftui`, `react-native`, `flutter`, `shadcn`, `jetpack-compose`
123
+ , `jetpack-compose`
124
+ ---
125
+
126
+ ## Search Reference
127
+
128
+ ### Available Domains
129
+
130
+ | Domain | Use For | Example Keywords |
131
+ |--------|---------|------------------|
132
+ | `product` | Product type recommendations | SaaS, e-commerce, portfolio, healthcare, beauty, service |
133
+ | `style` | UI styles, colors, effects | glassmorphism, minimalism, dark mode, brutalism |
134
+ | `typography` | Font pairings, Google Fonts | elegant, playful, professional, modern |
135
+ | `color` | Color palettes by product type | saas, ecommerce, healthcare, beauty, fintech, service |
136
+ | `landing` | Page structure, CTA strategies | hero, hero-centric, testimonial, pricing, social-proof |
137
+ | `chart` | Chart types, library recommendations | trend, comparison, timeline, funnel, pie |
138
+ | `ux` | Best practices, anti-patterns | animation, accessibility, z-index, loading |
139
+ | `react` | React/Next.js performance | waterfall, bundle, suspense, memo, rerender, cache |
140
+ | `web` | Web interface guidelines | aria, focus, keyboard, semantic, virtualize |
141
+ | `prompt` | AI prompts, CSS keywords | (style name) |
142
+
143
+ ### Available Stacks
144
+
145
+ | Stack | Focus |
146
+ |-------|-------|
147
+ | `html-tailwind` | Tailwind utilities, responsive, a11y (DEFAULT) |
148
+ | `react` | State, hooks, performance, patterns |
149
+ | `nextjs` | SSR, routing, images, API routes |
150
+ | `vue` | Composition API, Pinia, Vue Router |
151
+ | `svelte` | Runes, stores, SvelteKit |
152
+ | `swiftui` | Views, State, Navigation, Animation |
153
+ | `react-native` | Components, Navigation, Lists |
154
+ | `flutter` | Widgets, State, Layout, Theming |
155
+ | `shadcn` | shadcn/ui components, theming, forms, patterns |
156
+ | `jetpack-compose` | Composables, Modifiers, State Hoisting, Recomposition |
157
+
158
+ ---
159
+
160
+ ## Example Workflow
161
+
162
+ **User request:** "Làm landing page cho dịch vụ chăm sóc da chuyên nghiệp"
163
+
164
+ ### Step 1: Analyze Requirements
165
+ - Product type: Beauty/Spa service
166
+ - Style keywords: elegant, professional, soft
167
+ - Industry: Beauty/Wellness
168
+ - Stack: html-tailwind (default)
169
+
170
+ ### Step 2: Generate Design System (REQUIRED)
171
+
172
+ ```bash
173
+ python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "beauty spa wellness service elegant" --design-system -p "Serenity Spa"
174
+ ```
175
+
176
+ **Output:** Complete design system with pattern, style, colors, typography, effects, and anti-patterns.
177
+
178
+ ### Step 3: Supplement with Detailed Searches (as needed)
179
+
180
+ ```bash
181
+ # Get UX guidelines for animation and accessibility
182
+ python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "animation accessibility" --domain ux
183
+
184
+ # Get alternative typography options if needed
185
+ python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "elegant luxury serif" --domain typography
186
+ ```
187
+
188
+ ### Step 4: Stack Guidelines
189
+
190
+ ```bash
191
+ python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "layout responsive form" --stack html-tailwind
192
+ ```
193
+
194
+ **Then:** Synthesize design system + detailed searches and implement the design.
195
+
196
+ ---
197
+
198
+ ## Output Formats
199
+
200
+ The `--design-system` flag supports two output formats:
201
+
202
+ ```bash
203
+ # ASCII box (default) - best for terminal display
204
+ python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "fintech crypto" --design-system
205
+
206
+ # Markdown - best for documentation
207
+ python3 .agent/.shared/ui-ux-pro-max/scripts/search.py "fintech crypto" --design-system -f markdown
208
+ ```
209
+
210
+ ---
211
+
212
+ ## Tips for Better Results
213
+
214
+ 1. **Be specific with keywords** - "healthcare SaaS dashboard" > "app"
215
+ 2. **Search multiple times** - Different keywords reveal different insights
216
+ 3. **Combine domains** - Style + Typography + Color = Complete design system
217
+ 4. **Always check UX** - Search "animation", "z-index", "accessibility" for common issues
218
+ 5. **Use stack flag** - Get implementation-specific best practices
219
+ 6. **Iterate** - If first search doesn't match, try different keywords
220
+
221
+ ---
222
+
223
+ ## Common Rules for Professional UI
224
+
225
+ These are frequently overlooked issues that make UI look unprofessional:
226
+
227
+ ### Icons & Visual Elements
228
+
229
+ | Rule | Do | Don't |
230
+ |------|----|----- |
231
+ | **No emoji icons** | Use SVG icons (Heroicons, Lucide, Simple Icons) | Use emojis like 🎨 🚀 ⚙️ as UI icons |
232
+ | **Stable hover states** | Use color/opacity transitions on hover | Use scale transforms that shift layout |
233
+ | **Correct brand logos** | Research official SVG from Simple Icons | Guess or use incorrect logo paths |
234
+ | **Consistent icon sizing** | Use fixed viewBox (24x24) with w-6 h-6 | Mix different icon sizes randomly |
235
+
236
+ ### Interaction & Cursor
237
+
238
+ | Rule | Do | Don't |
239
+ |------|----|----- |
240
+ | **Cursor pointer** | Add `cursor-pointer` to all clickable/hoverable cards | Leave default cursor on interactive elements |
241
+ | **Hover feedback** | Provide visual feedback (color, shadow, border) | No indication element is interactive |
242
+ | **Smooth transitions** | Use `transition-colors duration-200` | Instant state changes or too slow (>500ms) |
243
+
244
+ ### Light/Dark Mode Contrast
245
+
246
+ | Rule | Do | Don't |
247
+ |------|----|----- |
248
+ | **Glass card light mode** | Use `bg-white/80` or higher opacity | Use `bg-white/10` (too transparent) |
249
+ | **Text contrast light** | Use `#0F172A` (slate-900) for text | Use `#94A3B8` (slate-400) for body text |
250
+ | **Muted text light** | Use `#475569` (slate-600) minimum | Use gray-400 or lighter |
251
+ | **Border visibility** | Use `border-gray-200` in light mode | Use `border-white/10` (invisible) |
252
+
253
+ ### Layout & Spacing
254
+
255
+ | Rule | Do | Don't |
256
+ |------|----|----- |
257
+ | **Floating navbar** | Add `top-4 left-4 right-4` spacing | Stick navbar to `top-0 left-0 right-0` |
258
+ | **Content padding** | Account for fixed navbar height | Let content hide behind fixed elements |
259
+ | **Consistent max-width** | Use same `max-w-6xl` or `max-w-7xl` | Mix different container widths |
260
+
261
+ ---
262
+
263
+ ## Pre-Delivery Checklist
264
+
265
+ Before delivering UI code, verify these items:
266
+
267
+ ### Visual Quality
268
+ - [ ] No emojis used as icons (use SVG instead)
269
+ - [ ] All icons from consistent icon set (Heroicons/Lucide)
270
+ - [ ] Brand logos are correct (verified from Simple Icons)
271
+ - [ ] Hover states don't cause layout shift
272
+ - [ ] Use theme colors directly (bg-primary) not var() wrapper
273
+
274
+ ### Interaction
275
+ - [ ] All clickable elements have `cursor-pointer`
276
+ - [ ] Hover states provide clear visual feedback
277
+ - [ ] Transitions are smooth (150-300ms)
278
+ - [ ] Focus states visible for keyboard navigation
279
+
280
+ ### Light/Dark Mode
281
+ - [ ] Light mode text has sufficient contrast (4.5:1 minimum)
282
+ - [ ] Glass/transparent elements visible in light mode
283
+ - [ ] Borders visible in both modes
284
+ - [ ] Test both modes before delivery
285
+
286
+ ### Layout
287
+ - [ ] Floating elements have proper spacing from edges
288
+ - [ ] No content hidden behind fixed navbars
289
+ - [ ] Responsive at 375px, 768px, 1024px, 1440px
290
+ - [ ] No horizontal scroll on mobile
291
+
292
+ ### Accessibility
293
+ - [ ] All images have alt text
294
+ - [ ] Form inputs have labels
295
+ - [ ] Color is not the only indicator
296
+ - [ ] `prefers-reduced-motion` respected
@@ -143,7 +143,17 @@
143
143
  "Bash(node -e \"require\\('./plugins/ambient-agent-plugin.js'\\)\" 2>&1)",
144
144
  "Bash(node -e \"\nconst { Framework } = require\\('./src/core/framework'\\);\nconst framework = new Framework\\(\\);\nframework.loadPlugin\\('./plugins/ambient-agent-plugin.js'\\).catch\\(console.error\\);\nsetTimeout\\(\\(\\) => {\n const tools = framework.getTools\\(\\);\n console.log\\('Registered tools:', tools.map\\(t => t.name\\)\\);\n}, 2000\\);\n\" 2>&1)",
145
145
  "Bash(node -c plugins/scheduler-plugin.js 2>&1)",
146
- "WebFetch(domain:ai-sdk.dev)"
146
+ "WebFetch(domain:ai-sdk.dev)",
147
+ "Bash(node --check src/utils/index.js 2>&1; echo \"Exit: $?\")",
148
+ "Bash(node --check src/core/agent-chat.js 2>&1; echo \"Exit: $?\")",
149
+ "Bash(node --check plugins/file-system-plugin.js 2>&1; echo \"Exit: $?\")",
150
+ "Bash(node --check src/capabilities/workflow-engine.js && node --check src/core/agent-chat.js && node --check src/core/agent.js && node --check src/core/plugin-manager.js && node --check src/core/framework.js && echo \"All OK\")",
151
+ "Bash(node --check src/utils/retry.js && echo \"OK\")",
152
+ "Bash(git checkout:*)",
153
+ "Bash(node --check plugins/default-plugins.js && echo \"OK\")",
154
+ "Bash(node --check plugins/subagent-plugin.js && echo \"OK\")",
155
+ "Bash(head -1 \"D:\\\\code\\\\vb-agent\\\\cli\\\\bin\\\\foliko.js\" | xxd)",
156
+ "Bash(node D:/code/vb-agent/cli/bin/foliko.js chat)"
147
157
  ]
148
158
  }
149
159
  }
package/.editorconfig ADDED
@@ -0,0 +1,56 @@
1
+ # EditorConfig is awesome: https://EditorConfig.org
2
+
3
+ # top-most EditorConfig file
4
+ root = true
5
+
6
+ # 代码文件
7
+ [*]
8
+ charset = utf-8
9
+ end_of_line = lf
10
+ insert_final_newline = true
11
+ trim_trailing_whitespace = true
12
+
13
+ # JavaScript / Node.js
14
+ [*.{js,jsx,mjs,cjs}]
15
+ indent_style = space
16
+ indent_size = 2
17
+
18
+ # TypeScript
19
+ [*.{ts,tsx}]
20
+ indent_style = space
21
+ indent_size = 2
22
+
23
+ # JSON
24
+ [*.json]
25
+ indent_style = space
26
+ indent_size = 2
27
+
28
+ # YAML
29
+ [*.{yaml,yml}]
30
+ indent_style = space
31
+ indent_size = 2
32
+
33
+ # Markdown
34
+ [*.md]
35
+ trim_trailing_whitespace = false
36
+ indent_style = space
37
+ indent_size = 2
38
+
39
+ # Shell
40
+ [*.sh]
41
+ indent_style = space
42
+ indent_size = 2
43
+
44
+ # PowerShell
45
+ [*.ps1]
46
+ indent_style = space
47
+ indent_size = 4
48
+
49
+ # Dockerfile
50
+ [Dockerfile]
51
+ indent_style = space
52
+ indent_size = 4
53
+
54
+ # Makefile
55
+ [Makefile]
56
+ indent_style = tab
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env sh
2
+ . "$(dirname -- "$0")/_/husky.sh"
3
+
4
+ npx lint-staged
package/.lintstagedrc ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "*.{js,jsx,ts,tsx}": ["prettier --write", "git add"],
3
+ "*.{json,yaml,yml}": ["prettier --write", "git add"],
4
+ "*.{md,mdx}": ["prettier --write", "git add"],
5
+ "*.{css,scss,less}": ["prettier --write", "git add"],
6
+ "*.{html,svg}": ["prettier --write", "git add"]
7
+ }
@@ -0,0 +1,29 @@
1
+ # 依赖
2
+ node_modules/
3
+ pnpm-lock.yaml
4
+ yarn.lock
5
+ package-lock.json
6
+
7
+ # 构建输出
8
+ dist/
9
+ build/
10
+ out/
11
+
12
+ # 插件目录(第三方代码)
13
+ plugins/
14
+
15
+ # 测试报告
16
+ reports/
17
+ test_report.md
18
+
19
+ # 配置文件(不需要格式化)
20
+ .env
21
+ .env.example
22
+
23
+ # 静态资源
24
+ images/
25
+ audio/
26
+ public/
27
+
28
+ # 锁文件
29
+ *.lock
package/.prettierrc ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "semi": true,
3
+ "singleQuote": true,
4
+ "tabWidth": 2,
5
+ "trailingComma": "es5",
6
+ "printWidth": 100,
7
+ "bracketSpacing": true,
8
+ "arrowParens": "always",
9
+ "endOfLine": "lf",
10
+ "plugins": []
11
+ }
package/CLAUDE.md CHANGED
@@ -70,6 +70,7 @@ examples/ # Usage examples
70
70
  ### Plugin System
71
71
 
72
72
  Plugins are registered via `framework.registerPlugin()` and loaded with `framework.loadPlugin()`. Each plugin:
73
+
73
74
  - Has a `name`, `version`, `description`, and `priority`
74
75
  - Implements `install(framework)` to register tools/events
75
76
  - Implements `start(framework)` after initialization
@@ -79,6 +80,7 @@ Plugins are registered via `framework.registerPlugin()` and loaded with `framewo
79
80
  ### AI Integration
80
81
 
81
82
  Uses Vercel AI SDK (`ai` package) with support for multiple providers:
83
+
82
84
  - Anthropic, DeepSeek, MiniMax, OpenAI, OpenAI-Compatible
83
85
 
84
86
  Provider selection via `config.provider` and AI settings in `.agent/ai.json`.
package/README.md CHANGED
@@ -56,6 +56,7 @@ foliko list
56
56
  在 `foliko chat` 的对话界面中,可以直接输入自然语言来控制框架:
57
57
 
58
58
  **插件管理**
59
+
59
60
  ```
60
61
  开启微信插件
61
62
  开启飞书插件
@@ -66,6 +67,7 @@ foliko list
66
67
  ```
67
68
 
68
69
  **定时任务**
70
+
69
71
  ```
70
72
  10分钟后提醒我喝水
71
73
  每天早上9点提醒我查看邮件
@@ -75,6 +77,7 @@ foliko list
75
77
  ```
76
78
 
77
79
  **会话管理**
80
+
78
81
  ```
79
82
  创建一个新会话
80
83
  列出所有会话
@@ -83,6 +86,7 @@ foliko list
83
86
  ```
84
87
 
85
88
  **Ambient Agent**
89
+
86
90
  ```
87
91
  查看 Ambient Agent 状态
88
92
  创建一个目标:监控新邮件
@@ -93,6 +97,7 @@ foliko list
93
97
  ```
94
98
 
95
99
  **子 Agent**
100
+
96
101
  ```
97
102
  列出所有子Agent
98
103
  调用 backend-specialist 处理任务
@@ -100,6 +105,7 @@ foliko list
100
105
  ```
101
106
 
102
107
  **系统操作**
108
+
103
109
  ```
104
110
  执行 shell 命令:ls -la
105
111
  安装 npm 包:lodash
@@ -226,7 +232,7 @@ WEB_BASE_URL=https://your-domain.com
226
232
 
227
233
  #### Markdown 格式
228
234
 
229
- ```markdown
235
+ ````markdown
230
236
  # Backend Specialist
231
237
 
232
238
  ```json
@@ -237,7 +243,9 @@ WEB_BASE_URL=https://your-domain.com
237
243
  "parentTools": ["read_file", "run_command"]
238
244
  }
239
245
  ```
240
- ```
246
+ ````
247
+
248
+ ````
241
249
 
242
250
  ### ai.json 格式
243
251
 
@@ -248,7 +256,7 @@ WEB_BASE_URL=https://your-domain.com
248
256
  "apiKey": "your-api-key",
249
257
  "baseURL": "https://api.minimaxi.com/v1"
250
258
  }
251
- ```
259
+ ````
252
260
 
253
261
  ### mcp_config.json 格式
254
262
 
@@ -288,32 +296,32 @@ WEB_BASE_URL=https://your-domain.com
288
296
 
289
297
  ```javascript
290
298
  // .agent/plugins/my-plugin/index.js
291
- module.exports = function(Plugin) {
299
+ module.exports = function (Plugin) {
292
300
  return class MyPlugin extends Plugin {
293
301
  constructor(config = {}) {
294
- super()
295
- this.name = 'my-plugin'
296
- this.version = '1.0.0'
297
- this.description = '我的工具插件'
298
- this.priority = 10
302
+ super();
303
+ this.name = 'my-plugin';
304
+ this.version = '1.0.0';
305
+ this.description = '我的工具插件';
306
+ this.priority = 10;
299
307
  }
300
308
 
301
309
  install(framework) {
302
- const { z } = require('zod')
310
+ const { z } = require('zod');
303
311
  framework.registerTool({
304
312
  name: 'my_tool',
305
313
  description: '我的工具',
306
314
  inputSchema: z.object({
307
- param: z.string().describe('参数描述')
315
+ param: z.string().describe('参数描述'),
308
316
  }),
309
317
  execute: async (args, framework) => {
310
- return { success: true, result: args.param }
311
- }
312
- })
313
- return this
318
+ return { success: true, result: args.param };
319
+ },
320
+ });
321
+ return this;
314
322
  }
315
- }
316
- }
323
+ };
324
+ };
317
325
  ```
318
326
 
319
327
  #### 单文件结构(兼容)
@@ -355,57 +363,57 @@ allowed-tools: tool1,tool2
355
363
 
356
364
  ### 通用工具
357
365
 
358
- | 工具 | 说明 |
359
- |------|------|
360
- | `loadSkill` | 加载技能 |
361
- | `list_plugins` | 列出所有插件 |
362
- | `list_tools` | 列出所有工具 |
363
- | `reload_plugins` | 重载插件 |
364
- | `shell` | 执行 Shell 命令 |
365
- | `powershell` | 执行 PowerShell 命令 |
366
- | `python-execute` | 执行 Python 代码 |
367
- | `python_script` | 执行 Python 脚本 |
368
- | `pip_install` | 安装 Python 包 |
369
- | `install` | 安装 npm 包 |
370
- | `mcp_reload` | 重载 MCP 服务器 |
371
- | `audit_query` | 查询审计日志 |
366
+ | 工具 | 说明 |
367
+ | ---------------- | -------------------- |
368
+ | `loadSkill` | 加载技能 |
369
+ | `list_plugins` | 列出所有插件 |
370
+ | `list_tools` | 列出所有工具 |
371
+ | `reload_plugins` | 重载插件 |
372
+ | `shell` | 执行 Shell 命令 |
373
+ | `powershell` | 执行 PowerShell 命令 |
374
+ | `python-execute` | 执行 Python 代码 |
375
+ | `python_script` | 执行 Python 脚本 |
376
+ | `pip_install` | 安装 Python 包 |
377
+ | `install` | 安装 npm 包 |
378
+ | `mcp_reload` | 重载 MCP 服务器 |
379
+ | `audit_query` | 查询审计日志 |
372
380
 
373
381
  ### 子 Agent 管理工具
374
382
 
375
- | 工具 | 说明 |
376
- |------|------|
377
- | `subagent_list` | 列出所有子Agent |
378
- | `subagent_call` | 调用指定的子Agent处理任务 |
379
- | `subagent_reload` | 重新加载子Agent配置 |
383
+ | 工具 | 说明 |
384
+ | ----------------- | ------------------------- |
385
+ | `subagent_list` | 列出所有子Agent |
386
+ | `subagent_call` | 调用指定的子Agent处理任务 |
387
+ | `subagent_reload` | 重新加载子Agent配置 |
380
388
 
381
389
  ### 会话工具
382
390
 
383
- | 工具 | 说明 |
384
- |------|------|
385
- | `session_create` | 创建会话 |
386
- | `session_get` | 获取会话 |
387
- | `session_list` | 列出所有会话 |
388
- | `session_delete` | 删除会话 |
391
+ | 工具 | 说明 |
392
+ | ----------------- | ------------ |
393
+ | `session_create` | 创建会话 |
394
+ | `session_get` | 获取会话 |
395
+ | `session_list` | 列出所有会话 |
396
+ | `session_delete` | 删除会话 |
389
397
  | `session_history` | 获取会话历史 |
390
398
 
391
399
  ### 定时任务工具
392
400
 
393
- | 工具 | 说明 |
394
- |------|------|
395
- | `schedule_task` | 创建定时任务 |
396
- | `schedule_list` | 列出定时任务 |
397
- | `schedule_cancel` | 取消定时任务 |
398
- | `cron_examples` | 显示 cron 示例 |
401
+ | 工具 | 说明 |
402
+ | ----------------- | -------------- |
403
+ | `schedule_task` | 创建定时任务 |
404
+ | `schedule_list` | 列出定时任务 |
405
+ | `schedule_cancel` | 取消定时任务 |
406
+ | `cron_examples` | 显示 cron 示例 |
399
407
 
400
408
  ### Ambient Agent 工具
401
409
 
402
- | 工具 | 说明 |
403
- |------|------|
404
- | `ambient_goals` | 管理目标(列出/创建/更新/删除/激活) |
405
- | `ambient_status` | 获取 Ambient Agent 状态 |
406
- | `ambient_think` | 触发主动思考 |
407
- | `ambient_remember` | 存储/检索记忆 |
408
- | `ambient_control` | 控制循环(暂停/恢复/调整) |
410
+ | 工具 | 说明 |
411
+ | ------------------ | ------------------------------------ |
412
+ | `ambient_goals` | 管理目标(列出/创建/更新/删除/激活) |
413
+ | `ambient_status` | 获取 Ambient Agent 状态 |
414
+ | `ambient_think` | 触发主动思考 |
415
+ | `ambient_remember` | 存储/检索记忆 |
416
+ | `ambient_control` | 控制循环(暂停/恢复/调整) |
409
417
 
410
418
  ### 通知事件
411
419
 
@@ -424,6 +432,7 @@ allowed-tools: tool1,tool2
424
432
  ## 工作目录
425
433
 
426
434
  CLI 工作目录默认使用执行命令的目录。
435
+
427
436
  - `.agent/` 目录会创建在工作目录下
428
437
  - 配置文件、插件、技能等都放在工作目录的 `.agent/` 下
429
438