kiku-agent 1.3.2 → 1.3.3

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 (152) hide show
  1. package/README.md +69 -12
  2. package/package.json +2 -1
  3. package/server/agent/agentCore.js +319 -46
  4. package/server/agent/appPaths.js +31 -0
  5. package/server/agent/audioPlayer.js +339 -12
  6. package/server/agent/autoContext.js +193 -0
  7. package/server/agent/catalogEntityResolver.js +170 -28
  8. package/server/agent/clarifyingQuestions.js +137 -35
  9. package/server/agent/cli.js +177 -48
  10. package/server/agent/cloudAdapters.js +116 -0
  11. package/server/agent/commandRegistry.js +409 -80
  12. package/server/agent/commands.js +1056 -125
  13. package/server/agent/config.js +1088 -690
  14. package/server/agent/contextCompactor.js +213 -21
  15. package/server/agent/cpuMetrics.js +199 -0
  16. package/server/agent/engineService.js +591 -0
  17. package/server/agent/eval/modules/evaluation/runner.js +4 -14
  18. package/server/agent/eval/modules/evaluation/scoring.js +15 -3
  19. package/server/agent/eval/modules/server/evalApi.js +5 -5
  20. package/server/agent/eval/modules/ui/evalUi.js +7 -4
  21. package/server/agent/eventBus.js +1 -0
  22. package/server/agent/ink/main.jsx +196 -191
  23. package/server/agent/jobManager.js +11 -1
  24. package/server/agent/lanDiscovery.js +721 -23
  25. package/server/agent/llmClient.js +317 -71
  26. package/server/agent/lmStudioWakeup.js +517 -65
  27. package/server/agent/locationService.js +797 -0
  28. package/server/agent/mcpQuizData.js +509 -0
  29. package/server/agent/memory/contextAllocator.js +19 -7
  30. package/server/agent/memory.js +3 -1
  31. package/server/agent/modelCompatibility.js +352 -0
  32. package/server/agent/modelDefaults.js +1 -0
  33. package/server/agent/modelManager.js +46 -2
  34. package/server/agent/newsWatch.js +9 -3
  35. package/server/agent/processManager.js +229 -0
  36. package/server/agent/prompts.js +174 -8
  37. package/server/agent/routingInterceptor.js +9 -1
  38. package/server/agent/sanitizer.js +41 -6
  39. package/server/agent/searchQueryPlanner.js +202 -0
  40. package/server/agent/session.js +59 -4
  41. package/server/agent/tests/agentFollowUps.test.js +128 -2
  42. package/server/agent/tests/agentMusicControl.test.js +245 -0
  43. package/server/agent/tests/apiRouter.test.js +1 -1
  44. package/server/agent/tests/autoContext.test.js +176 -0
  45. package/server/agent/tests/bilibiliEmbed.test.js +45 -0
  46. package/server/agent/tests/chatHardening.test.js +121 -0
  47. package/server/agent/tests/chineseWebSearchEscalation.test.js +62 -0
  48. package/server/agent/tests/clarifyingQuestions.test.js +33 -0
  49. package/server/agent/tests/cliAutomation.test.js +38 -1
  50. package/server/agent/tests/cloudProviders.test.js +91 -3
  51. package/server/agent/tests/commands.test.js +92 -3
  52. package/server/agent/tests/contextIntelligence.test.js +50 -3
  53. package/server/agent/tests/cpuMetrics.test.js +101 -0
  54. package/server/agent/tests/decisionAndSearchEnhancements.test.js +32 -0
  55. package/server/agent/tests/edgeCasesScenarios.test.js +82 -0
  56. package/server/agent/tests/engineService.test.js +436 -0
  57. package/server/agent/tests/engineUnload.test.js +94 -0
  58. package/server/agent/tests/envCommand.test.js +69 -0
  59. package/server/agent/tests/evalMetrics.test.js +8 -0
  60. package/server/agent/tests/fetchApi.test.js +99 -0
  61. package/server/agent/tests/hybridWebSearch.test.js +2 -0
  62. package/server/agent/tests/lanDiscovery.test.js +5 -0
  63. package/server/agent/tests/lanInterfaces.test.js +510 -0
  64. package/server/agent/tests/lmStudioWakeup.test.js +278 -0
  65. package/server/agent/tests/locationTool.test.js +278 -0
  66. package/server/agent/tests/memoryRoute.test.js +173 -0
  67. package/server/agent/tests/memoryUiNormalization.test.js +75 -0
  68. package/server/agent/tests/modelCompatibility.test.js +148 -0
  69. package/server/agent/tests/modelManager.test.js +32 -0
  70. package/server/agent/tests/musicControlUiBridge.test.js +113 -0
  71. package/server/agent/tests/nextGenArchitecture.test.js +4 -2
  72. package/server/agent/tests/openDomainPrompt.test.js +197 -0
  73. package/server/agent/tests/openDomainSearch.test.js +121 -0
  74. package/server/agent/tests/processManager.test.js +144 -0
  75. package/server/agent/tests/providerPersistence.test.js +10 -5
  76. package/server/agent/tests/quickActionsAndModals.test.js +180 -0
  77. package/server/agent/tests/searchQueryPlanner.test.js +108 -0
  78. package/server/agent/tests/securityAuditRemediation.test.js +16 -9
  79. package/server/agent/tests/securityAuditRemediations2.test.js +154 -0
  80. package/server/agent/tests/securityHardening.test.js +4 -4
  81. package/server/agent/tests/sessionAndCopy.test.js +39 -4
  82. package/server/agent/tests/sidebarControls.test.js +34 -0
  83. package/server/agent/tests/statefulMemory.test.js +8 -1
  84. package/server/agent/tests/textProtocolLoop.test.js +71 -0
  85. package/server/agent/tests/textToolParsing.test.js +48 -0
  86. package/server/agent/tests/toolRoutingRegressions.test.js +41 -0
  87. package/server/agent/tests/unifiedEndpoints.test.js +13 -6
  88. package/server/agent/tests/v110Features.test.js +1 -1
  89. package/server/agent/tests/vramEstimator.test.js +75 -0
  90. package/server/agent/tests/webChatDocs.test.js +199 -0
  91. package/server/agent/tests/webChatInferenceControl.test.js +298 -0
  92. package/server/agent/tests/webChatInspection.test.js +256 -5
  93. package/server/agent/tests/webChatMcp.test.js +94 -0
  94. package/server/agent/tests/webExtract.test.js +23 -0
  95. package/server/agent/tests/webSources.test.js +46 -12
  96. package/server/agent/textToolProtocol.js +173 -46
  97. package/server/agent/toolRouter.js +318 -44
  98. package/server/agent/tools.js +877 -96
  99. package/server/agent/ui.js +39 -34
  100. package/server/agent/vramService.js +35 -54
  101. package/server/agent/webSearch.js +441 -162
  102. package/server/agent/websearch/orchestrator.js +15 -5
  103. package/server/agent/websearch/resilience/cache.js +9 -2
  104. package/server/agent/websearch/security/ssrf.js +41 -10
  105. package/server/agent/youtubeAuth.js +5 -20
  106. package/server/apiRouter.js +5558 -4422
  107. package/server/mcp/data/discography.js +2 -2
  108. package/server/mcp/examples/antigravity.example.json +17 -0
  109. package/server/mcp/handler.js +8 -4
  110. package/server/mcp/security.js +220 -21
  111. package/server/mcp/server.js +2 -1
  112. package/server/mcp/tests/connection.test.js +14 -8
  113. package/server/mcp/tests/mcpKeyAuth.test.js +156 -0
  114. package/server/mcp/tools.js +7 -1
  115. package/server/supabase_migration_prefix.sql +102 -0
  116. package/server/supabase_schema.sql +18 -18
  117. package/server/web-chat/core/connection.js +179 -218
  118. package/server/web-chat/core/conversationContext.js +9 -2
  119. package/server/web-chat/core/directCatalogEngine.js +52 -28
  120. package/server/web-chat/core/dramaKnowledge.js +33 -22
  121. package/server/web-chat/core/followUpEngine.js +735 -81
  122. package/server/web-chat/core/futureEventGuard.js +5 -1
  123. package/server/web-chat/core/musicControlAction.js +70 -0
  124. package/server/web-chat/core/security.js +32 -21
  125. package/server/web-chat/core/toolInspector.js +6 -6
  126. package/server/web-chat/core/urlGuard.js +45 -0
  127. package/server/web-chat/router.js +204 -157
  128. package/server/web-chat/routes/chatRoute.js +885 -488
  129. package/server/web-chat/routes/engineRoute.js +270 -0
  130. package/server/web-chat/routes/exportRoute.js +1 -1
  131. package/server/web-chat/routes/lanDiscoveryRoute.js +17 -2
  132. package/server/web-chat/routes/lmStudioLoadRoute.js +172 -0
  133. package/server/web-chat/routes/mcpRoute.js +386 -0
  134. package/server/web-chat/routes/memoryRoute.js +253 -0
  135. package/server/web-chat/routes/providerRoute.js +49 -16
  136. package/server/web-chat/routes/staticRoute.js +306 -17
  137. package/server/web-chat/routes/statusRoute.js +194 -73
  138. package/server/web-chat/routes/suggestRoute.js +11 -3
  139. package/server/web-chat/routes/verifyRoute.js +26 -4
  140. package/server/web-chat/server.js +7 -6
  141. package/server/web-chat/ui/docsBuilder.js +3558 -0
  142. package/server/web-chat/ui/htmlBuilder.js +12 -0
  143. package/server/web-chat/ui/scripts/client.js +3401 -1302
  144. package/server/web-chat/ui/scripts/webchatI18n.js +155 -153
  145. package/server/web-chat/ui/settingsBuilder.js +7870 -0
  146. package/server/web-chat/ui/styles/lan-card.css +165 -0
  147. package/server/web-chat/ui/styles/main.css +4289 -447
  148. package/server/web-chat/ui/sw.js +64 -0
  149. package/server/web-chat/ui/templates/body.html +407 -281
  150. package/src/data/awardsData.js +146 -146
  151. package/src/data/musicVideoData.js +6 -4
  152. package/src/lib/vram/estimator.js +195 -19
package/README.md CHANGED
@@ -52,7 +52,7 @@ kiku-agent
52
52
  ```
53
53
 
54
54
  > [!NOTE]
55
- > The global package deliberately excludes native binary build dependencies (Python, `node-gyp`, Visual Studio C++ build tools are not required). For a local checkout before publishing, pack and install via `npm install -g ./kiku-agent-1.3.2.tgz`.
55
+ > The global package deliberately excludes native binary build dependencies (Python, `node-gyp`, Visual Studio C++ build tools are not required). For a local checkout before publishing, pack and install via `npm install -g ./kiku-agent-1.3.3.tgz`.
56
56
 
57
57
  ### Zero-Install One-Shot Query
58
58
 
@@ -73,9 +73,12 @@ npx kiku-agent --query "ผลงานซีรีส์ปี 2026 มีเ
73
73
  kiku-agent
74
74
  ```
75
75
 
76
- ### Launch with Cloud Providers
76
+ ### Launch with Local Engines & Cloud Providers
77
77
 
78
78
  ```bash
79
+ # Ollama (Local port 11434)
80
+ npm run kiku-agent -- --provider ollama --model qwen2.5:7b
81
+
79
82
  # OpenAI (GPT-5.6 / GPT-4o)
80
83
  npm run kiku-agent -- --provider openai --model gpt-5.6-luna
81
84
 
@@ -85,7 +88,7 @@ npm run kiku-agent -- --provider gemini --model gemini-3.7-flash
85
88
  # Groq (Ultra-fast LPU inference)
86
89
  npm run kiku-agent -- --provider groq --model openai/gpt-oss-120b
87
90
 
88
- # DeepSeek (DeepSeek V4)
91
+ # DeepSeek (DeepSeek V4 / R1)
89
92
  npm run kiku-agent -- --provider deepseek --model deepseek-v4-flash
90
93
 
91
94
  # OpenRouter (Dynamic routing)
@@ -260,38 +263,91 @@ Kiku Agent includes **60 validated tools** across 6 categories that the agent au
260
263
 
261
264
  ## Model Context Protocol (MCP)
262
265
 
263
- ### 1. MCP Server (`kiku-mcp`)
266
+ ### 1. Dual-Transport MCP Server (`kiku-mcp` & Streamable HTTP `POST /mcp`)
264
267
 
265
- The package ships an official Model Context Protocol server exposing the Ju Jingyi encyclopedia as **58 tools** (55 agent tools + 3 compatibility aliases: `get_profile`, `get_timeline`, `search_gallery`), **8 resources**, and **7 prompt templates**. Live-web and Chinese tools are opt-in via `KIKU_MCP_ENABLE_WEB_TOOLS=true` and `KIKU_ENABLE_CN_WEB_TOOLS=true`:
268
+ The package ships an official Model Context Protocol server exposing the Ju Jingyi encyclopedia as **68+ tools**, **8 resources**, and **7 prompt templates**, fully modernized to **Protocol Version `2025-11-25`** (with automatic negotiation for `2024-11-05` backwards compatibility):
266
269
 
267
270
  ```bash
268
- # Stdio transport (Claude Desktop, Cursor, VS Code)
271
+ # Stdio transport (CLI command)
269
272
  kiku-mcp
270
273
 
271
274
  # Zero-install via npx:
272
275
  npx -y -p kiku-agent kiku-mcp
273
276
  ```
274
277
 
275
- #### Claude Desktop & Cursor Integration
278
+ ### 2. Supported AI Clients & IDEs (10 Platforms)
279
+
280
+ Kiku Agent provides ready-to-use configuration templates for **10 major AI clients & IDE platforms** across both **Streamable HTTP** (recommended for zero overhead) and **Local Stdio**:
281
+
282
+ | # | Client / Tool | Target Config File | Format & Spec | Category |
283
+ |---|---|---|---|---|
284
+ | 1 | **Claude Desktop** | `claude_desktop_config.json` | JSON (`mcpServers.kiku`) | Desktop App |
285
+ | 2 | **Cursor** | `.cursor/mcp.json` | JSON (`mcpServers.kiku`) | AI IDE |
286
+ | 3 | **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | JSON (`mcpServers.kiku`) | AI IDE (Cascade) |
287
+ | 4 | **VS Code & Copilot** | `.vscode/mcp.json` | JSON (`servers.kiku` with `type`) | IDE Extension |
288
+ | 5 | **Google Antigravity (AGY)** | `.agents/mcp_config.json` | JSON (`mcpServers.kiku`) | DeepMind Agent |
289
+ | 6 | **Cline / Roo Code** | `cline_mcp_settings.json` | JSON (`mcpServers.kiku`) | VS Code Agent |
290
+ | 7 | **Claude Code CLI** | `~/.claude/mcp.json` | JSON or `claude mcp add kiku <url>` | CLI Agent |
291
+ | 8 | **Gemini CLI** | `~/.gemini/mcp.json` | JSON (`mcpServers.kiku.httpUrl`) | CLI Agent |
292
+ | 9 | **LibreChat** | `librechat.yaml` | YAML (`streamable-http` / `stdio`) | Multi-User Web UI |
293
+ | 10 | **OpenCode / Open WebUI** | `opencode.json` | JSON (`$schema` + `mcp.kiku`) | Terminal & Web UI |
294
+
295
+ > [!TIP]
296
+ > **One-Click Copy in UI**: You can browse, preview, and copy configurations for all 10 clients directly in the **Web Chat MCP Modal (Tab 3)** or in **Settings (`/settings#mcp`)** with instant toggling between Streamable HTTP and Local Stdio.
297
+
298
+ #### Quick Configuration Examples
276
299
 
277
- Add the following snippet to your `claude_desktop_config.json` or Cursor MCP configuration:
300
+ **Streamable HTTP (Recommended for Claude Desktop, Cursor, Windsurf, AGY):**
301
+ ```json
302
+ {
303
+ "mcpServers": {
304
+ "kiku": {
305
+ "url": "http://localhost:3002/mcp"
306
+ }
307
+ }
308
+ }
309
+ ```
310
+
311
+ **VS Code & GitHub Copilot (`.vscode/mcp.json`):**
312
+ ```json
313
+ {
314
+ "servers": {
315
+ "kiku": {
316
+ "type": "http",
317
+ "url": "http://localhost:3002/mcp"
318
+ }
319
+ }
320
+ }
321
+ ```
322
+
323
+ **LibreChat (`librechat.yaml`):**
324
+ ```yaml
325
+ mcpServers:
326
+ kiku:
327
+ type: streamable-http
328
+ url: http://localhost:3002/mcp
329
+ ```
278
330
 
331
+ **Local Stdio (Zero-Install via NPX):**
279
332
  ```json
280
333
  {
281
334
  "mcpServers": {
282
335
  "kiku": {
283
336
  "command": "npx",
284
- "args": ["-y", "-p", "kiku-agent", "kiku-mcp"]
337
+ "args": ["-y", "-p", "kiku-agent", "kiku-mcp"],
338
+ "env": {
339
+ "KIKU_MCP_ENABLE_WEB_TOOLS": "true"
340
+ }
285
341
  }
286
342
  }
287
343
  }
288
344
  ```
289
345
 
290
- The production deployment exposes a stateless Streamable HTTP endpoint at `https://jujingyi-kikuuu.vercel.app/mcp` (`POST /mcp`).
346
+ The server endpoint is available locally at `http://localhost:3002/mcp` and remotely at `https://jujingyi-kikuuu.vercel.app/mcp`.
291
347
 
292
348
  > [!IMPORTANT]
293
349
  > **HTTP Security**: The remote MCP endpoint is guarded by a bearer token and CORS allow-list:
294
- > - Set `MCP_API_KEY` to require `Authorization: Bearer <MCP_API_KEY>` on `POST /mcp`.
350
+ > - Set `MCP_API_KEY` to require `Authorization: Bearer <MCP_API_KEY>` or `X-API-Key` on `POST /mcp` (zero-key for local loopback).
295
351
  > - Set `MCP_CORS_ORIGINS` to a comma-separated list of allowed browser origins (empty = no CORS).
296
352
 
297
353
  ```bash
@@ -320,6 +376,7 @@ curl -X POST https://jujingyi-kikuuu.vercel.app/mcp \
320
376
  A frozen catalog QA harness in `server/agent/eval/` runs **500 fixed multilingual cases** (350 catalog & reasoning + 150 security & red-teaming across 17 categories) through a fresh real `KikuAgent` per case on local LM Studio, recording answers, tool traces, latency, and token telemetry:
321
377
 
322
378
  ```bash
379
+ npm run eval:compat # 7-point enterprise model compatibility probes
323
380
  npm run eval:validate # Validate frozen 500-case corpus integrity
324
381
  npm run eval:quick # 3-case smoke run (needs LM Studio)
325
382
  npm run eval:ui # Launch visual Kiku Eval Studio workbench on port 3001 (/eval)
@@ -363,7 +420,7 @@ Copy `.env.example` → `.env` (parsed automatically when the CLI runs; only uns
363
420
  | `MCP_API_KEY` | Bearer token required by the HTTP MCP endpoint (`POST /mcp`) |
364
421
  | `MCP_CORS_ORIGINS` | Comma-separated allowed origins for browser MCP calls |
365
422
  | `KIKU_MCP_ENABLE_WEB_TOOLS` | Set `true` to enable web tools in the MCP server |
366
- | `KIKU_ENABLE_CN_WEB_TOOLS` | Set `true` to enable Chinese web search portals, Bilibili, and image search |
423
+ | `KIKU_ENABLE_CN_WEB_TOOLS` | Enabled by default; set `false` to disable Chinese web search portals, Bilibili, and image search |
367
424
  | `KIKU_API_KEYS` | Pre-seeded REST API keys (higher rate limits) |
368
425
  | `KIKU_VIP_KEYS` | Pre-seeded Developer VIP API keys (highest rate limits) |
369
426
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kiku-agent",
3
- "version": "1.3.2",
3
+ "version": "1.3.3",
4
4
  "description": "Kiku AI terminal agent and MCP server for Ju Jingyi knowledge, media, and career data.",
5
5
  "license": "GPL-3.0",
6
6
  "type": "module",
@@ -72,6 +72,7 @@
72
72
  "eval:quick": "node server/agent/eval/modules/core/cli.js run --limit 3",
73
73
  "eval:security": "node server/agent/eval/modules/core/cli.js run --suite security",
74
74
  "eval:run": "node server/agent/eval/modules/core/cli.js run",
75
+ "eval:compat": "node scripts/evalCompat.js",
75
76
  "eval:judge": "node server/agent/eval/modules/core/cli.js judge",
76
77
  "eval:compare": "node server/agent/eval/modules/core/cli.js compare",
77
78
  "eval:dashboard": "node server/agent/eval/modules/core/cli.js dashboard --open",