feat(sessions): indexação multi-fonte Hermes + OpenCode com fix TypeScript

- Novos indexadores hermes-indexer.ts e opencode-indexer.ts para unificar
  sessões Claude, Hermes Agent e OpenCode num único sessions.db
- SessionMeta alargado: source (obrigatório), model, input/output_tokens,
  estimated_cost; project_path/jsonl_path agora nullable
- Fix TS: tipos explícitos, guard jsonl_path null, dependências instaladas

Security Audit (Regra #47):
- npm audit executado — 0 vulnerabilities após fix
- vite 7→8.0.16 (breaking upgrade, resolve esbuild CVE GHSA-gv7w-rqvm-qjhr)
- vitest 4.0.18→4.1.9 (resolve esbuild interno CVE GHSA-gv7w-rqvm-qjhr)
- shell-quote override ^1.8.4 via package.json#overrides (CVE GHSA-w7jw-789q-3m8p)
- react-router, joi, qs, form-data, ip-address, js-yaml resolvidos via npm audit fix

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-15 19:41:32 +01:00
parent 9f3d14dc51
commit f733998945
18 changed files with 1475 additions and 678 deletions
+5
View File
@@ -15,9 +15,11 @@ import type { SessionMeta } from '../types/session.js'
function meta(overrides: Partial<SessionMeta> = {}): SessionMeta {
return {
session_id: 's1',
source: 'claude',
project_path: '/tmp/p',
project_slug: 'p',
jsonl_path: '/tmp/p/s1.jsonl',
model: null,
started_at: new Date().toISOString(),
ended_at: null,
duration_sec: 60,
@@ -25,6 +27,9 @@ function meta(overrides: Partial<SessionMeta> = {}): SessionMeta {
user_messages: 2,
assistant_msgs: 5,
tool_calls: 3,
input_tokens: null,
output_tokens: null,
estimated_cost: null,
first_prompt: 'teste',
tools_used: ['Bash'],
skills_invoked: [],