06ea18f425
Highlights: - Streaming chat chunks + web search auto (Sherlock/SearXNG) - pino structured logging (43->0 console.log) - Zod validation (19 schemas API + storage) - Qwen3-TTS 0.6B + 33 persona voices - Docling + bge-reranker RAG pipeline - React lazy routes (-50% bundle), virtualized chat - SEC-01->05 all resolved - A11y WCAG (40 ARIA attrs) - Perf + error telemetry endpoints - Systemd units (TTS, LightRAG, reranker) - p-limit Ollama, WS reconnect, signal handlers - createId thread-safe via crypto.randomBytes (lot-59) - Hyperparam bounds validation with Zod schema (lot-60) - DPO extractDPOPairs warns on empty pairs (lot-61) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
310 lines
5.8 KiB
JSON
310 lines
5.8 KiB
JSON
{
|
|
"security": [],
|
|
"performance": [],
|
|
"metrics": [
|
|
{
|
|
"file": "packages/persona-domain/src/index.ts",
|
|
"lines": 787,
|
|
"sizeKB": 22,
|
|
"flag": "large"
|
|
},
|
|
{
|
|
"file": "packages/node-engine/src/index.ts",
|
|
"lines": 717,
|
|
"sizeKB": 18,
|
|
"flag": "large"
|
|
},
|
|
{
|
|
"file": "packages/storage/src/index.test.ts",
|
|
"lines": 670,
|
|
"sizeKB": 24,
|
|
"flag": "large"
|
|
},
|
|
{
|
|
"file": "packages/node-engine/src/index.test.ts",
|
|
"lines": 651,
|
|
"sizeKB": 20,
|
|
"flag": "large"
|
|
},
|
|
{
|
|
"file": "apps/web/src/components/Chat.tsx",
|
|
"lines": 617,
|
|
"sizeKB": 21,
|
|
"flag": "large"
|
|
},
|
|
{
|
|
"file": "apps/web/src/components/ChatHistory.tsx",
|
|
"lines": 602,
|
|
"sizeKB": 17,
|
|
"flag": "large"
|
|
},
|
|
{
|
|
"file": "apps/worker/src/worker-runtime.ts",
|
|
"lines": 565,
|
|
"sizeKB": 18,
|
|
"flag": "large"
|
|
},
|
|
{
|
|
"file": "packages/storage/src/index.ts",
|
|
"lines": 551,
|
|
"sizeKB": 18,
|
|
"flag": "large"
|
|
},
|
|
{
|
|
"file": "apps/api/src/app.ts",
|
|
"lines": 536,
|
|
"sizeKB": 17,
|
|
"flag": "large"
|
|
},
|
|
{
|
|
"file": "apps/api/src/app.test.ts",
|
|
"lines": 493,
|
|
"sizeKB": 17,
|
|
"flag": "medium"
|
|
},
|
|
{
|
|
"file": "apps/api/src/context-store.ts",
|
|
"lines": 422,
|
|
"sizeKB": 15,
|
|
"flag": "medium"
|
|
},
|
|
{
|
|
"file": "apps/web/src/components/VoiceChat.tsx",
|
|
"lines": 421,
|
|
"sizeKB": 14,
|
|
"flag": "medium"
|
|
},
|
|
{
|
|
"file": "apps/api/src/personas-default.ts",
|
|
"lines": 418,
|
|
"sizeKB": 20,
|
|
"flag": "medium"
|
|
},
|
|
{
|
|
"file": "apps/web/src/components/NodeEditor.tsx",
|
|
"lines": 407,
|
|
"sizeKB": 14,
|
|
"flag": "medium"
|
|
},
|
|
{
|
|
"file": "apps/api/src/ws-chat.ts",
|
|
"lines": 375,
|
|
"sizeKB": 11,
|
|
"flag": "medium"
|
|
},
|
|
{
|
|
"file": "apps/api/src/ws-conversation-router.ts",
|
|
"lines": 355,
|
|
"sizeKB": 11,
|
|
"flag": "medium"
|
|
},
|
|
{
|
|
"file": "apps/web/src/api.ts",
|
|
"lines": 328,
|
|
"sizeKB": 9,
|
|
"flag": "medium"
|
|
},
|
|
{
|
|
"file": "apps/api/src/routes/personas.ts",
|
|
"lines": 323,
|
|
"sizeKB": 11,
|
|
"flag": "medium"
|
|
},
|
|
{
|
|
"file": "apps/api/src/ws-commands.ts",
|
|
"lines": 316,
|
|
"sizeKB": 10,
|
|
"flag": "medium"
|
|
},
|
|
{
|
|
"file": "apps/api/src/ws-ollama.ts",
|
|
"lines": 290,
|
|
"sizeKB": 9,
|
|
"flag": "ok"
|
|
},
|
|
{
|
|
"file": "packages/chat-domain/src/index.test.ts",
|
|
"lines": 279,
|
|
"sizeKB": 9,
|
|
"flag": "ok"
|
|
},
|
|
{
|
|
"file": "apps/web/src/components/PersonaDetail.tsx",
|
|
"lines": 278,
|
|
"sizeKB": 9,
|
|
"flag": "ok"
|
|
},
|
|
{
|
|
"file": "apps/api/src/routes/chat-history.ts",
|
|
"lines": 275,
|
|
"sizeKB": 10,
|
|
"flag": "ok"
|
|
},
|
|
{
|
|
"file": "packages/chat-domain/src/index.ts",
|
|
"lines": 263,
|
|
"sizeKB": 8,
|
|
"flag": "ok"
|
|
},
|
|
{
|
|
"file": "packages/persona-domain/src/index.test.ts",
|
|
"lines": 260,
|
|
"sizeKB": 9,
|
|
"flag": "ok"
|
|
},
|
|
{
|
|
"file": "apps/web/src/components/Collectif.tsx",
|
|
"lines": 252,
|
|
"sizeKB": 8,
|
|
"flag": "ok"
|
|
},
|
|
{
|
|
"file": "packages/node-engine/src/training.ts",
|
|
"lines": 250,
|
|
"sizeKB": 7,
|
|
"flag": "ok"
|
|
},
|
|
{
|
|
"file": "apps/web/src/components/PersonaList.tsx",
|
|
"lines": 243,
|
|
"sizeKB": 8,
|
|
"flag": "ok"
|
|
},
|
|
{
|
|
"file": "apps/api/src/ws-conversation-router.test.ts",
|
|
"lines": 242,
|
|
"sizeKB": 9,
|
|
"flag": "ok"
|
|
},
|
|
{
|
|
"file": "apps/web/src/App.tsx",
|
|
"lines": 236,
|
|
"sizeKB": 8,
|
|
"flag": "ok"
|
|
},
|
|
{
|
|
"file": "apps/worker/src/worker-runtime.test.ts",
|
|
"lines": 231,
|
|
"sizeKB": 7,
|
|
"flag": "ok"
|
|
},
|
|
{
|
|
"file": "apps/api/src/routes/session.ts",
|
|
"lines": 208,
|
|
"sizeKB": 7,
|
|
"flag": "ok"
|
|
},
|
|
{
|
|
"file": "apps/web/src/components/TrainingDashboard.tsx",
|
|
"lines": 203,
|
|
"sizeKB": 7,
|
|
"flag": "ok"
|
|
}
|
|
],
|
|
"deps": [
|
|
{
|
|
"package": "@discordjs/voice",
|
|
"current": "0.19.1",
|
|
"wanted": "0.19.2",
|
|
"latest": "0.19.2"
|
|
},
|
|
{
|
|
"package": "express"
|
|
},
|
|
{
|
|
"package": "pdf-parse",
|
|
"current": "1.1.4",
|
|
"wanted": "1.1.4",
|
|
"latest": "2.4.5"
|
|
}
|
|
],
|
|
"typescript": [
|
|
{
|
|
"dir": "apps/api",
|
|
"status": "ok",
|
|
"errors": 0,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"dir": "apps/web",
|
|
"status": "ok",
|
|
"errors": 0,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"dir": "apps/worker",
|
|
"status": "ok",
|
|
"errors": 0,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"dir": "packages/core",
|
|
"status": "ok",
|
|
"errors": 0,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"dir": "packages/auth",
|
|
"status": "ok",
|
|
"errors": 0,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"dir": "packages/chat-domain",
|
|
"status": "ok",
|
|
"errors": 0,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"dir": "packages/persona-domain",
|
|
"status": "ok",
|
|
"errors": 0,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"dir": "packages/node-engine",
|
|
"status": "ok",
|
|
"errors": 0,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"dir": "packages/storage",
|
|
"status": "ok",
|
|
"errors": 0,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"dir": "packages/ui",
|
|
"status": "ok",
|
|
"errors": 0,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"dir": "packages/tui",
|
|
"status": "ok",
|
|
"errors": 0,
|
|
"detail": ""
|
|
}
|
|
],
|
|
"debt": {
|
|
"score": 40,
|
|
"level": "medium",
|
|
"components": {
|
|
"security": {
|
|
"P0": 0,
|
|
"P1": 0,
|
|
"P2": 0
|
|
},
|
|
"performance": {
|
|
"P0": 0,
|
|
"P1": 0,
|
|
"P2": 0
|
|
},
|
|
"tsErrors": 0,
|
|
"largeFiles": 9,
|
|
"mediumFiles": 10,
|
|
"deps": 3
|
|
}
|
|
}
|
|
}
|