feat(diagnostics): adicionar 16 ferramentas de diagnóstico DB Paperclip

14 tools read-only para inspecção da BD Paperclip directamente via MCP,
eliminando psql nos skills /clip-*. 2 tools write (rotation, cancel issue).

- src/db.ts: pool PG singleton + COMPANY_ID + helper query() parametrizado
- src/tools/diagnostics.ts: 16 tools, 100% queries com $1,$2 (zero injection)
- src/tools/index.ts: registo ...diagnosticsTools
- package.json: pg ^8.13.1 + @types/pg ^8.11.10
- CHANGELOG.md: changelog completo

Fix: diag_agents_without_membership cast a.id::text + filtros
principal_type='agent' AND status='active'.

Validado:
- 14/14 read tools testadas contra BD real (CEO=19 runs, 65 agentes,
  Reality Checker sem heartbeat/membership, 2 routines next_run_at NULL)
- npm audit: 0 vulnerabilidades
- grep '\${' em SQL: zero matches

Refs: Desk #2041

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-07 03:59:19 +01:00
parent 2b2b82c2a7
commit 281799fad2
5 changed files with 524 additions and 0 deletions
+2
View File
@@ -21,12 +21,14 @@
"dependencies": {
"@modelcontextprotocol/sdk": "^1.29.0",
"dotenv": "^16.6.1",
"pg": "^8.13.1",
"winston": "^3.19.0",
"zod": "^3.25.76"
},
"devDependencies": {
"@types/jest": "^30.0.0",
"@types/node": "^22.19.17",
"@types/pg": "^8.11.10",
"@typescript-eslint/eslint-plugin": "^7.18.0",
"@typescript-eslint/parser": "^7.18.0",
"eslint": "^8.57.1",