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
@@ -1,56 +1,124 @@
1
- <!DOCTYPE html>
1
+ <!doctype html>
2
2
  <html lang="zh-CN">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>插件开发 - Foliko</title>
7
- <link rel="stylesheet" href="../styles.css">
8
- <style>
9
- .sidebar { position: fixed; left: 0; top: 60px; width: 250px; height: calc(100vh - 60px); background: var(--bg-card); border-right: 1px solid var(--border); padding: 2rem 1rem; overflow-y: auto; }
10
- .sidebar ul { list-style: none; }
11
- .sidebar li { margin-bottom: 0.5rem; }
12
- .sidebar a { color: var(--text-secondary); text-decoration: none; display: block; padding: 0.5rem; border-radius: 4px; }
13
- .sidebar a:hover, .sidebar a.active { background: rgba(99, 102, 241, 0.2); color: var(--primary); }
14
- .main-content { margin-left: 250px; padding: 2rem; max-width: 900px; }
15
- .main-content h1 { font-size: 2rem; margin-bottom: 1rem; }
16
- .main-content h2 { font-size: 1.5rem; margin: 2rem 0 1rem; color: var(--secondary); }
17
- .main-content p { margin-bottom: 1rem; color: var(--text-secondary); }
18
- .main-content pre { background: var(--bg-card); padding: 1rem; border-radius: 8px; overflow-x: auto; margin-bottom: 1rem; }
19
- .main-content code { font-family: 'Fira Code', monospace; background: var(--bg-dark); padding: 0.2rem 0.4rem; border-radius: 4px; }
20
- .warning { background: rgba(251, 191, 36, 0.1); border: 1px solid #fbbf24; padding: 1rem; border-radius: 8px; margin-bottom: 1rem; }
21
- .tip { background: rgba(34, 211, 238, 0.1); border: 1px solid var(--secondary); padding: 1rem; border-radius: 8px; margin-bottom: 1rem; }
22
- @media (max-width: 768px) { .sidebar { display: none; } .main-content { margin-left: 0; } }
23
- </style>
24
- </head>
25
- <body>
26
- <header>
27
- <nav>
28
- <div class="logo">Foliko</div>
29
- <ul class="nav-links">
30
- <li><a href="../index.html">首页</a></li>
31
- <li><a href="../index.html#features">特性</a></li>
32
- <li><a href="../index.html#quickstart">快速开始</a></li>
33
- <li><a href="../index.html#docs">文档</a></li>
34
- </ul>
35
- </nav>
36
- </header>
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>插件开发 - Foliko</title>
7
+ <link rel="stylesheet" href="../styles.css" />
8
+ <style>
9
+ .sidebar {
10
+ position: fixed;
11
+ left: 0;
12
+ top: 60px;
13
+ width: 250px;
14
+ height: calc(100vh - 60px);
15
+ background: var(--bg-card);
16
+ border-right: 1px solid var(--border);
17
+ padding: 2rem 1rem;
18
+ overflow-y: auto;
19
+ }
20
+ .sidebar ul {
21
+ list-style: none;
22
+ }
23
+ .sidebar li {
24
+ margin-bottom: 0.5rem;
25
+ }
26
+ .sidebar a {
27
+ color: var(--text-secondary);
28
+ text-decoration: none;
29
+ display: block;
30
+ padding: 0.5rem;
31
+ border-radius: 4px;
32
+ }
33
+ .sidebar a:hover,
34
+ .sidebar a.active {
35
+ background: rgba(99, 102, 241, 0.2);
36
+ color: var(--primary);
37
+ }
38
+ .main-content {
39
+ margin-left: 250px;
40
+ padding: 2rem;
41
+ max-width: 900px;
42
+ }
43
+ .main-content h1 {
44
+ font-size: 2rem;
45
+ margin-bottom: 1rem;
46
+ }
47
+ .main-content h2 {
48
+ font-size: 1.5rem;
49
+ margin: 2rem 0 1rem;
50
+ color: var(--secondary);
51
+ }
52
+ .main-content p {
53
+ margin-bottom: 1rem;
54
+ color: var(--text-secondary);
55
+ }
56
+ .main-content pre {
57
+ background: var(--bg-card);
58
+ padding: 1rem;
59
+ border-radius: 8px;
60
+ overflow-x: auto;
61
+ margin-bottom: 1rem;
62
+ }
63
+ .main-content code {
64
+ font-family: 'Fira Code', monospace;
65
+ background: var(--bg-dark);
66
+ padding: 0.2rem 0.4rem;
67
+ border-radius: 4px;
68
+ }
69
+ .warning {
70
+ background: rgba(251, 191, 36, 0.1);
71
+ border: 1px solid #fbbf24;
72
+ padding: 1rem;
73
+ border-radius: 8px;
74
+ margin-bottom: 1rem;
75
+ }
76
+ .tip {
77
+ background: rgba(34, 211, 238, 0.1);
78
+ border: 1px solid var(--secondary);
79
+ padding: 1rem;
80
+ border-radius: 8px;
81
+ margin-bottom: 1rem;
82
+ }
83
+ @media (max-width: 768px) {
84
+ .sidebar {
85
+ display: none;
86
+ }
87
+ .main-content {
88
+ margin-left: 0;
89
+ }
90
+ }
91
+ </style>
92
+ </head>
93
+ <body>
94
+ <header>
95
+ <nav>
96
+ <div class="logo">Foliko</div>
97
+ <ul class="nav-links">
98
+ <li><a href="../index.html">首页</a></li>
99
+ <li><a href="../index.html#features">特性</a></li>
100
+ <li><a href="../index.html#quickstart">快速开始</a></li>
101
+ <li><a href="../index.html#docs">文档</a></li>
102
+ </ul>
103
+ </nav>
104
+ </header>
37
105
 
38
- <div class="sidebar">
39
- <ul>
40
- <li><a href="project-structure.html">项目结构</a></li>
41
- <li><a href="configuration.html">配置指南</a></li>
42
- <li><a href="plugin-development.html" class="active">插件开发</a></li>
43
- <li><a href="skill-development.html">技能开发</a></li>
44
- <li><a href="api.html">API 参考</a></li>
45
- </ul>
46
- </div>
106
+ <div class="sidebar">
107
+ <ul>
108
+ <li><a href="project-structure.html">项目结构</a></li>
109
+ <li><a href="configuration.html">配置指南</a></li>
110
+ <li><a href="plugin-development.html" class="active">插件开发</a></li>
111
+ <li><a href="skill-development.html">技能开发</a></li>
112
+ <li><a href="api.html">API 参考</a></li>
113
+ </ul>
114
+ </div>
47
115
 
48
- <div class="main-content">
49
- <h1>插件开发</h1>
116
+ <div class="main-content">
117
+ <h1>插件开发</h1>
50
118
 
51
- <h2>快速开始</h2>
52
- <p>在 <code>.agent/plugins/</code> 目录下创建插件文件:</p>
53
- <pre><code>// .agent/plugins/my-plugin.js
119
+ <h2>快速开始</h2>
120
+ <p>在 <code>.agent/plugins/</code> 目录下创建插件文件:</p>
121
+ <pre><code>// .agent/plugins/my-plugin.js
54
122
  module.exports = function(Plugin) {
55
123
  return class MyPlugin extends Plugin {
56
124
  constructor(config = {}) {
@@ -78,26 +146,26 @@ module.exports = function(Plugin) {
78
146
  }
79
147
  }</code></pre>
80
148
 
81
- <h2>插件结构</h2>
149
+ <h2>插件结构</h2>
82
150
 
83
- <h3>必须属性</h3>
84
- <ul>
85
- <li><code>name</code> - 唯一名称</li>
86
- <li><code>version</code> - 版本号(可选,默认 1.0.0)</li>
87
- <li><code>description</code> - 描述(可选)</li>
88
- <li><code>priority</code> - 优先级(可选,默认 10)</li>
89
- </ul>
151
+ <h3>必须属性</h3>
152
+ <ul>
153
+ <li><code>name</code> - 唯一名称</li>
154
+ <li><code>version</code> - 版本号(可选,默认 1.0.0)</li>
155
+ <li><code>description</code> - 描述(可选)</li>
156
+ <li><code>priority</code> - 优先级(可选,默认 10)</li>
157
+ </ul>
90
158
 
91
- <h3>生命周期</h3>
92
- <ul>
93
- <li><code>install(framework)</code> - 安装时调用,注册工具</li>
94
- <li><code>start(framework)</code> - 启动时调用</li>
95
- <li><code>reload(framework)</code> - 热重载时调用</li>
96
- <li><code>uninstall(framework)</code> - 卸载时调用</li>
97
- </ul>
159
+ <h3>生命周期</h3>
160
+ <ul>
161
+ <li><code>install(framework)</code> - 安装时调用,注册工具</li>
162
+ <li><code>start(framework)</code> - 启动时调用</li>
163
+ <li><code>reload(framework)</code> - 热重载时调用</li>
164
+ <li><code>uninstall(framework)</code> - 卸载时调用</li>
165
+ </ul>
98
166
 
99
- <h2>注册工具</h2>
100
- <pre><code>framework.registerTool({
167
+ <h2>注册工具</h2>
168
+ <pre><code>framework.registerTool({
101
169
  name: 'tool_name',
102
170
  description: '工具描述',
103
171
  inputSchema: z.object({
@@ -108,21 +176,24 @@ module.exports = function(Plugin) {
108
176
  }
109
177
  })</code></pre>
110
178
 
111
- <div class="tip">
112
- <strong>提示:</strong> 如果插件需要第三方库(如 zod),需要先调用 <code>install</code> 工具安装依赖。
113
- </div>
179
+ <div class="tip">
180
+ <strong>提示:</strong> 如果插件需要第三方库(如 zod),需要先调用
181
+ <code>install</code> 工具安装依赖。
182
+ </div>
114
183
 
115
- <h2>第三方依赖</h2>
116
- <p>如果插件需要使用第三方 npm 包:</p>
117
- <ol>
118
- <li>创建插件文件(暂不加载)</li>
119
- <li>调用 <code>install { package: "包名" }</code> 安装依赖</li>
120
- <li>调用 <code>reload_plugins</code> 重载插件</li>
121
- </ol>
184
+ <h2>第三方依赖</h2>
185
+ <p>如果插件需要使用第三方 npm 包:</p>
186
+ <ol>
187
+ <li>创建插件文件(暂不加载)</li>
188
+ <li>调用 <code>install { package: "包名" }</code> 安装依赖</li>
189
+ <li>调用 <code>reload_plugins</code> 重载插件</li>
190
+ </ol>
122
191
 
123
- <h2>Python 插件</h2>
124
- <p>除了 JavaScript 插件,框架还支持 Python 插件。创建 <code>.agent/plugins/*.py</code> 文件:</p>
125
- <pre><code># .agent/plugins/my-python-plugin.py
192
+ <h2>Python 插件</h2>
193
+ <p>
194
+ 除了 JavaScript 插件,框架还支持 Python 插件。创建 <code>.agent/plugins/*.py</code> 文件:
195
+ </p>
196
+ <pre><code># .agent/plugins/my-python-plugin.py
126
197
 
127
198
  plugin_info = {
128
199
  "name": "my-python-plugin",
@@ -136,16 +207,14 @@ def execute_tool(tool_name, params):
136
207
  return {"success": True, "result": f"Hello, {params.get('name', 'World')}!"}
137
208
  return {"success": False, "error": "Unknown tool"}</code></pre>
138
209
 
139
- <p>使用 Python 插件工具:</p>
140
- <pre><code>python_plugin {
210
+ <p>使用 Python 插件工具:</p>
211
+ <pre><code>python_plugin {
141
212
  plugin: "my-python-plugin",
142
213
  tool: "hello",
143
214
  params: { name: "Foliko" }
144
215
  }</code></pre>
145
216
 
146
- <div class="tip">
147
- <strong>提示:</strong> Python 插件会自动加载并注册到框架中。
217
+ <div class="tip"><strong>提示:</strong> Python 插件会自动加载并注册到框架中。</div>
148
218
  </div>
149
- </div>
150
- </body>
219
+ </body>
151
220
  </html>
@@ -1,102 +1,103 @@
1
- <!DOCTYPE html>
1
+ <!doctype html>
2
2
  <html lang="zh-CN">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>项目结构 - Foliko</title>
7
- <link rel="stylesheet" href="../styles.css">
8
- <style>
9
- .sidebar {
10
- position: fixed;
11
- left: 0;
12
- top: 60px;
13
- width: 250px;
14
- height: calc(100vh - 60px);
15
- background: var(--bg-card);
16
- border-right: 1px solid var(--border);
17
- padding: 2rem 1rem;
18
- overflow-y: auto;
19
- }
20
- .sidebar ul {
21
- list-style: none;
22
- }
23
- .sidebar li {
24
- margin-bottom: 0.5rem;
25
- }
26
- .sidebar a {
27
- color: var(--text-secondary);
28
- text-decoration: none;
29
- display: block;
30
- padding: 0.5rem;
31
- border-radius: 4px;
32
- }
33
- .sidebar a:hover, .sidebar a.active {
34
- background: rgba(99, 102, 241, 0.2);
35
- color: var(--primary);
36
- }
37
- .main-content {
38
- margin-left: 250px;
39
- padding: 2rem;
40
- max-width: 900px;
41
- }
42
- .main-content h1 {
43
- font-size: 2rem;
44
- margin-bottom: 1rem;
45
- }
46
- .main-content h2 {
47
- font-size: 1.5rem;
48
- margin: 2rem 0 1rem;
49
- color: var(--secondary);
50
- }
51
- .main-content p {
52
- margin-bottom: 1rem;
53
- color: var(--text-secondary);
54
- }
55
- .main-content pre {
56
- background: var(--bg-card);
57
- padding: 1rem;
58
- border-radius: 8px;
59
- overflow-x: auto;
60
- margin-bottom: 1rem;
61
- }
62
- @media (max-width: 768px) {
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>项目结构 - Foliko</title>
7
+ <link rel="stylesheet" href="../styles.css" />
8
+ <style>
63
9
  .sidebar {
64
- display: none;
10
+ position: fixed;
11
+ left: 0;
12
+ top: 60px;
13
+ width: 250px;
14
+ height: calc(100vh - 60px);
15
+ background: var(--bg-card);
16
+ border-right: 1px solid var(--border);
17
+ padding: 2rem 1rem;
18
+ overflow-y: auto;
19
+ }
20
+ .sidebar ul {
21
+ list-style: none;
22
+ }
23
+ .sidebar li {
24
+ margin-bottom: 0.5rem;
25
+ }
26
+ .sidebar a {
27
+ color: var(--text-secondary);
28
+ text-decoration: none;
29
+ display: block;
30
+ padding: 0.5rem;
31
+ border-radius: 4px;
32
+ }
33
+ .sidebar a:hover,
34
+ .sidebar a.active {
35
+ background: rgba(99, 102, 241, 0.2);
36
+ color: var(--primary);
65
37
  }
66
38
  .main-content {
67
- margin-left: 0;
39
+ margin-left: 250px;
40
+ padding: 2rem;
41
+ max-width: 900px;
68
42
  }
69
- }
70
- </style>
71
- </head>
72
- <body>
73
- <header>
74
- <nav>
75
- <div class="logo">Foliko</div>
76
- <ul class="nav-links">
77
- <li><a href="../index.html">首页</a></li>
78
- <li><a href="../index.html#features">特性</a></li>
79
- <li><a href="../index.html#quickstart">快速开始</a></li>
80
- <li><a href="../index.html#docs">文档</a></li>
81
- </ul>
82
- </nav>
83
- </header>
43
+ .main-content h1 {
44
+ font-size: 2rem;
45
+ margin-bottom: 1rem;
46
+ }
47
+ .main-content h2 {
48
+ font-size: 1.5rem;
49
+ margin: 2rem 0 1rem;
50
+ color: var(--secondary);
51
+ }
52
+ .main-content p {
53
+ margin-bottom: 1rem;
54
+ color: var(--text-secondary);
55
+ }
56
+ .main-content pre {
57
+ background: var(--bg-card);
58
+ padding: 1rem;
59
+ border-radius: 8px;
60
+ overflow-x: auto;
61
+ margin-bottom: 1rem;
62
+ }
63
+ @media (max-width: 768px) {
64
+ .sidebar {
65
+ display: none;
66
+ }
67
+ .main-content {
68
+ margin-left: 0;
69
+ }
70
+ }
71
+ </style>
72
+ </head>
73
+ <body>
74
+ <header>
75
+ <nav>
76
+ <div class="logo">Foliko</div>
77
+ <ul class="nav-links">
78
+ <li><a href="../index.html">首页</a></li>
79
+ <li><a href="../index.html#features">特性</a></li>
80
+ <li><a href="../index.html#quickstart">快速开始</a></li>
81
+ <li><a href="../index.html#docs">文档</a></li>
82
+ </ul>
83
+ </nav>
84
+ </header>
84
85
 
85
- <div class="sidebar">
86
- <ul>
87
- <li><a href="project-structure.html" class="active">项目结构</a></li>
88
- <li><a href="configuration.html">配置指南</a></li>
89
- <li><a href="plugin-development.html">插件开发</a></li>
90
- <li><a href="skill-development.html">技能开发</a></li>
91
- <li><a href="api.html">API 参考</a></li>
92
- </ul>
93
- </div>
86
+ <div class="sidebar">
87
+ <ul>
88
+ <li><a href="project-structure.html" class="active">项目结构</a></li>
89
+ <li><a href="configuration.html">配置指南</a></li>
90
+ <li><a href="plugin-development.html">插件开发</a></li>
91
+ <li><a href="skill-development.html">技能开发</a></li>
92
+ <li><a href="api.html">API 参考</a></li>
93
+ </ul>
94
+ </div>
94
95
 
95
- <div class="main-content">
96
- <h1>项目结构</h1>
96
+ <div class="main-content">
97
+ <h1>项目结构</h1>
97
98
 
98
- <h2>目录结构</h2>
99
- <pre><code>foliko/
99
+ <h2>目录结构</h2>
100
+ <pre><code>foliko/
100
101
  ├── cli/ # 命令行入口
101
102
  │ ├── bin/foliko.js # CLI 入口脚本
102
103
  │ └── src/
@@ -112,31 +113,31 @@
112
113
  ├── examples/ # 示例
113
114
  └── docs/ # 文档</code></pre>
114
115
 
115
- <h2>核心目录</h2>
116
- <h3>cli/</h3>
117
- <p>命令行界面相关代码,包含聊天模式、命令解析等。</p>
116
+ <h2>核心目录</h2>
117
+ <h3>cli/</h3>
118
+ <p>命令行界面相关代码,包含聊天模式、命令解析等。</p>
118
119
 
119
- <h3>src/core/</h3>
120
- <p>框架核心组件,包括:</p>
121
- <ul>
122
- <li><code>agent.js</code> - Agent 类</li>
123
- <li><code>framework.js</code> - 框架容器</li>
124
- <li><code>plugin-manager.js</code> - 插件管理器</li>
125
- <li><code>tool-registry.js</code> - 工具注册表</li>
126
- </ul>
120
+ <h3>src/core/</h3>
121
+ <p>框架核心组件,包括:</p>
122
+ <ul>
123
+ <li><code>agent.js</code> - Agent 类</li>
124
+ <li><code>framework.js</code> - 框架容器</li>
125
+ <li><code>plugin-manager.js</code> - 插件管理器</li>
126
+ <li><code>tool-registry.js</code> - 工具注册表</li>
127
+ </ul>
127
128
 
128
- <h3>plugins/</h3>
129
- <p>内置插件,提供核心功能:AI、存储、工具、工作流等。</p>
129
+ <h3>plugins/</h3>
130
+ <p>内置插件,提供核心功能:AI、存储、工具、工作流等。</p>
130
131
 
131
- <h3>.agent/</h3>
132
- <p>用户配置目录(项目根目录下),包含:</p>
133
- <pre><code>.agent/
132
+ <h3>.agent/</h3>
133
+ <p>用户配置目录(项目根目录下),包含:</p>
134
+ <pre><code>.agent/
134
135
  ├── config # 配置文件
135
136
  ├── ai.json # AI 配置
136
137
  ├── mcp_config.json # MCP 配置
137
138
  ├── plugins/ # 用户插件
138
139
  ├── skills/ # 用户技能
139
140
  └── data/ # 数据存储</code></pre>
140
- </div>
141
- </body>
141
+ </div>
142
+ </body>
142
143
  </html>