foliko 1.1.60 → 1.1.61

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.
@@ -156,6 +156,196 @@
156
156
  "text": "<think>用户只是说了\"你好\",这是一个简单的问候。根据系统提示中的\"响应规范\",我应该直接给出结论或结果,不说\"我需要...\"、\"我建议...\"等铺垫话术。\n\n我应该简洁地回应问候,并询问用户需要什么帮助。\n</think>\n\n你好!我是 Foliko 智能助手,可以帮你:\n\n- **代码开发**:前端、后端、Python、插件开发\n- **数据分析**:统计、可视化、报表生成\n- **海报设计**:复古风、现代风、海报卡片\n- **系统运维**:Docker、CI/CD、监控部署\n- **AI 对话**:多模型支持,实时流式响应\n\n有什么可以帮你的?"
157
157
  }
158
158
  ]
159
+ },
160
+ {
161
+ "role": "user",
162
+ "content": "开启qq插件"
163
+ },
164
+ {
165
+ "role": "assistant",
166
+ "content": [
167
+ {
168
+ "type": "text",
169
+ "text": "<think>\n用户想要开启QQ插件。我需要先查看有哪些插件可用,然后看看是否有QQ插件。让我先列出所有插件看看。\n</think>\n\n\n"
170
+ },
171
+ {
172
+ "type": "tool-call",
173
+ "toolCallId": "call_function_cdthmt5ll5a9_1",
174
+ "toolName": "list_plugins",
175
+ "input": {}
176
+ }
177
+ ]
178
+ },
179
+ {
180
+ "role": "tool",
181
+ "content": [
182
+ {
183
+ "type": "tool-result",
184
+ "toolCallId": "call_function_cdthmt5ll5a9_1",
185
+ "toolName": "list_plugins",
186
+ "output": {
187
+ "type": "text",
188
+ "value": "{\"success\":true,\"plugins\":[{\"name\":\"defaults\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"install\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"ai\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"skill-manager\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"mcp\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"python-plugin-loader\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"subagent-manager\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":false},{\"name\":\"poster\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.2.2\",\"system\":false},{\"name\":\"puppeteer\",\"status\":\"registered\",\"enabled\":false,\"version\":\"1.0.0\",\"system\":false},{\"name\":\"ambient\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"audit\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"coordinator\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":false},{\"name\":\"email\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.1.0\",\"system\":false},{\"name\":\"extension-executor\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"feishu\",\"status\":\"registered\",\"enabled\":false,\"version\":\"1.1.0\",\"system\":false},{\"name\":\"file-system\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"gate-trading\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.1.0\",\"system\":false},{\"name\":\"memory\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"plugin_manager\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"python-executor\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"qq\",\"status\":\"registered\",\"enabled\":false,\"version\":\"1.0.0\",\"system\":false},{\"name\":\"rules\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"scheduler\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"session\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"shell-executor\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"storage\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"telegram\",\"status\":\"registered\",\"enabled\":false,\"version\":\"2.1.0\",\"system\":false},{\"name\":\"think\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":false},{\"name\":\"tools\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"web\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"3.1.0\",\"system\":true},{\"name\":\"weixin\",\"status\":\"registered\",\"enabled\":false,\"version\":\"1.0.0\",\"system\":false}]}"
189
+ }
190
+ }
191
+ ]
192
+ },
193
+ {
194
+ "role": "assistant",
195
+ "content": [
196
+ {
197
+ "type": "text",
198
+ "text": "<think>\n可以看到有 qq 插件,但状态是 \"registered\" 且 enabled 是 false。我需要启用它。\n</think>\n\nQQ 插件已找到,正在启用:\n"
199
+ },
200
+ {
201
+ "type": "tool-call",
202
+ "toolCallId": "call_function_gafx0hqc3ciz_1",
203
+ "toolName": "enable_plugin",
204
+ "input": {
205
+ "name": "qq"
206
+ }
207
+ }
208
+ ]
209
+ },
210
+ {
211
+ "role": "tool",
212
+ "content": [
213
+ {
214
+ "type": "tool-result",
215
+ "toolCallId": "call_function_gafx0hqc3ciz_1",
216
+ "toolName": "enable_plugin",
217
+ "output": {
218
+ "type": "text",
219
+ "value": "{\"success\":true,\"message\":\"插件 'qq' 已启用\"}"
220
+ }
221
+ }
222
+ ]
223
+ },
224
+ {
225
+ "role": "assistant",
226
+ "content": [
227
+ {
228
+ "type": "text",
229
+ "text": "<think>\nQQ 插件已启用成功。让我确认一下状态。\n</think>\n\n\n"
230
+ },
231
+ {
232
+ "type": "tool-call",
233
+ "toolCallId": "call_function_08uv8stc4u3k_1",
234
+ "toolName": "get_plugin_config",
235
+ "input": {
236
+ "name": "qq"
237
+ }
238
+ }
239
+ ]
240
+ },
241
+ {
242
+ "role": "tool",
243
+ "content": [
244
+ {
245
+ "type": "tool-result",
246
+ "toolCallId": "call_function_08uv8stc4u3k_1",
247
+ "toolName": "get_plugin_config",
248
+ "output": {
249
+ "type": "text",
250
+ "value": "{\"success\":true,\"config\":{\"allowedUsers\":[],\"markdownSupport\":true}}"
251
+ }
252
+ }
253
+ ]
254
+ },
255
+ {
256
+ "role": "assistant",
257
+ "content": [
258
+ {
259
+ "type": "text",
260
+ "text": "<think>\nQQ插件已启用,但配置中 `allowedUsers` 是空数组,这意味着可能需要配置才能正常使用。让我告知用户。\n</think>\n\n✅ **QQ 插件已成功开启!**\n\n当前配置:\n- `allowedUsers`: [] (空数组,可能需要配置允许的用户)\n- `markdownSupport`: true\n\n如果你需要配置可使用 QQ 的用户列表,可以告诉我需要添加哪些 QQ 号。"
261
+ }
262
+ ]
263
+ },
264
+ {
265
+ "role": "user",
266
+ "content": "关闭qq插件"
267
+ },
268
+ {
269
+ "role": "assistant",
270
+ "content": [
271
+ {
272
+ "type": "text",
273
+ "text": "<think>\n用户想要关闭 QQ 插件,直接调用 disable_plugin 即可。\n</think>\n\n\n"
274
+ },
275
+ {
276
+ "type": "tool-call",
277
+ "toolCallId": "call_function_r0thjwpcwbxn_1",
278
+ "toolName": "disable_plugin",
279
+ "input": {
280
+ "name": "qq"
281
+ }
282
+ }
283
+ ]
284
+ },
285
+ {
286
+ "role": "tool",
287
+ "content": [
288
+ {
289
+ "type": "tool-result",
290
+ "toolCallId": "call_function_r0thjwpcwbxn_1",
291
+ "toolName": "disable_plugin",
292
+ "output": {
293
+ "type": "text",
294
+ "value": "{\"success\":true,\"message\":\"插件 'qq' 已禁用\"}"
295
+ }
296
+ }
297
+ ]
298
+ },
299
+ {
300
+ "role": "assistant",
301
+ "content": [
302
+ {
303
+ "type": "text",
304
+ "text": "<think>\nQQ 插件已成功关闭。\n</think>\n\n✅ **QQ 插件已关闭**"
305
+ }
306
+ ]
307
+ },
308
+ {
309
+ "role": "user",
310
+ "content": "查看插件列表"
311
+ },
312
+ {
313
+ "role": "assistant",
314
+ "content": [
315
+ {
316
+ "type": "text",
317
+ "text": "<think>\n用户想查看插件列表,我可以直接使用 list_plugins 工具来获取。\n</think>\n\n\n"
318
+ },
319
+ {
320
+ "type": "tool-call",
321
+ "toolCallId": "call_function_f0kqh71bft8n_1",
322
+ "toolName": "list_plugins",
323
+ "input": {}
324
+ }
325
+ ]
326
+ },
327
+ {
328
+ "role": "tool",
329
+ "content": [
330
+ {
331
+ "type": "tool-result",
332
+ "toolCallId": "call_function_f0kqh71bft8n_1",
333
+ "toolName": "list_plugins",
334
+ "output": {
335
+ "type": "text",
336
+ "value": "{\"success\":true,\"plugins\":[{\"name\":\"defaults\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"install\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"ai\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"skill-manager\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"mcp\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"python-plugin-loader\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"subagent-manager\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":false},{\"name\":\"poster\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.2.2\",\"system\":false},{\"name\":\"puppeteer\",\"status\":\"registered\",\"enabled\":false,\"version\":\"1.0.0\",\"system\":false},{\"name\":\"ambient\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"audit\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"coordinator\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":false},{\"name\":\"email\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.1.0\",\"system\":false},{\"name\":\"extension-executor\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"feishu\",\"status\":\"registered\",\"enabled\":false,\"version\":\"1.1.0\",\"system\":false},{\"name\":\"file-system\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"gate-trading\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.1.0\",\"system\":false},{\"name\":\"memory\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"plugin_manager\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"python-executor\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"qq\",\"status\":\"loaded\",\"enabled\":false,\"version\":\"1.0.0\",\"system\":false},{\"name\":\"rules\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"scheduler\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"session\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"shell-executor\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"storage\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"telegram\",\"status\":\"registered\",\"enabled\":false,\"version\":\"2.1.0\",\"system\":false},{\"name\":\"think\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":false},{\"name\":\"tools\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"1.0.0\",\"system\":true},{\"name\":\"web\",\"status\":\"loaded\",\"enabled\":true,\"version\":\"3.1.0\",\"system\":true},{\"name\":\"weixin\",\"status\":\"registered\",\"enabled\":false,\"version\":\"1.0.0\",\"system\":false}]}"
337
+ }
338
+ }
339
+ ]
340
+ },
341
+ {
342
+ "role": "assistant",
343
+ "content": [
344
+ {
345
+ "type": "text",
346
+ "text": "<think>\n用户要查看插件列表,我直接展示结果即可。\n</think>\n\n## 插件列表\n\n### ✅ 已加载且启用 (19)\n\n| 插件 | 版本 | 类型 | 说明 |\n|------|------|------|------|\n| defaults | 1.0.0 | system | 默认配置 |\n| install | 1.0.0 | system | npm包安装 |\n| ai | 1.0.0 | system | AI对话 |\n| skill-manager | 1.0.0 | system | 技能管理 |\n| mcp | 1.0.0 | system | MCP协议 |\n| python-plugin-loader | 1.0.0 | system | Python插件 |\n| subagent-manager | 1.0.0 | system | 子Agent |\n| poster | 1.2.2 | user | 海报制作 |\n| ambient | 1.0.0 | system | Ambient Agent |\n| audit | 1.0.0 | system | 审计日志 |\n| coordinator | 1.0.0 | user | 协作调度 |\n| email | 1.1.0 | user | 邮件收发 |\n| extension-executor | 1.0.0 | system | 扩展执行器 |\n| file-system | 1.0.0 | system | 文件系统 |\n| gate-trading | 1.1.0 | user | Gate.io交易 |\n| memory | 1.0.0 | system | 记忆系统 |\n| plugin_manager | 1.0.0 | system | 插件管理 |\n| python-executor | 1.0.0 | system | Python执行器 |\n| rules | 1.0.0 | system | 规则引擎 |\n| scheduler | 1.0.0 | system | 定时任务 |\n| session | 1.0.0 | system | 会话管理 |\n| shell-executor | 1.0.0 | system | Shell执行器 |\n| storage | 1.0.0 | system | 键值存储 |\n| think | 1.0.0 | user | 主动思考 |\n| tools | 1.0.0 | system | 工具管理 |\n| web | 3.1.0 | system | Web服务 |\n\n### ⚪ 已注册但未启用 (8)\n\n| 插件 | 版本 |\n|------|------|\n| subagent-manager | 1.0.0 |\n| puppeteer | 1.0.0 |\n| feishu | 1.1.0 |\n| qq | 1.0.0 |\n| telegram | 2.1.0 |\n| weixin | 1.0.0 |\n\n如需开启/关闭某个插件,告诉我即可。"
347
+ }
348
+ ]
159
349
  }
160
350
  ],
161
351
  "variables": {},
@@ -85,13 +85,20 @@ function parseArgs(args) {
85
85
  options.clearSession = true;
86
86
  } else if (arg === '--session' && args[i + 1]) {
87
87
  options.sessionId = args[++i];
88
+ } else if (arg === '--quiet' || arg === '-q') {
89
+ options.quiet = true;
90
+ } else if (arg === '--no-quiet') {
91
+ options.quiet = false;
88
92
  }
89
93
  }
90
94
 
91
- // 默认开启流式
95
+ // 默认开启流式和 quiet 模式
92
96
  if (options.stream === undefined) {
93
97
  options.stream = true;
94
98
  }
99
+ if (options.quiet === undefined) {
100
+ options.quiet = true;
101
+ }
95
102
 
96
103
  return options;
97
104
  }
@@ -194,6 +201,13 @@ async function chatCommand(args) {
194
201
  - 禁止添加 -g 参数
195
202
  - 例如:npx skills add xxx 应该执行为 npx skills add xxx -a openclaw -y`);
196
203
 
204
+ // 静默模式:抑制所有 console.log/warn/info
205
+ if (options.quiet) {
206
+ console.log = () => {};
207
+ console.warn = () => {};
208
+ console.info = () => {};
209
+ }
210
+
197
211
  // 持续测试模式
198
212
  if (options.continuous) {
199
213
  await runContinuousTest(agent, options);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "foliko",
3
- "version": "1.1.60",
3
+ "version": "1.1.61",
4
4
  "description": "简约的插件化 Agent 框架",
5
5
  "main": "src/index.js",
6
6
  "type": "commonjs",