feat(observabilidade): setup dependências e tipos SessionMeta/SessionEvent
- Instala better-sqlite3 + chokidar + @types/better-sqlite3 - Upgrade googleapis 144 → 171 (resolve 4 vulns moderate em uuid/gaxios) - Cria api/types/session.ts (SessionMeta, SessionEvent, ParseResult, SessionOutcome) - Cria SPEC.md raiz com marker APPROVED a referenciar SPEC autoritativo no Hub - Task 1 de 10 do plano Observabilidade (Espelho) - Desk #2059, Projecto #65 Security Audit (Regra #47): - npm audit --audit-level=moderate: 0 vulnerabilities - Calendar API continua operacional (google.calendar v3 inalterada)
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
export type SessionOutcome = 'completed' | 'interrupted' | 'error' | 'unknown'
|
||||
|
||||
export interface SessionMeta {
|
||||
session_id: string
|
||||
project_path: string
|
||||
project_slug: string
|
||||
jsonl_path: string
|
||||
started_at: string
|
||||
ended_at: string | null
|
||||
duration_sec: number | null
|
||||
event_count: number
|
||||
user_messages: number
|
||||
assistant_msgs: number
|
||||
tool_calls: number
|
||||
first_prompt: string | null
|
||||
tools_used: string[]
|
||||
skills_invoked: string[]
|
||||
outcome: SessionOutcome
|
||||
permission_mode: string | null
|
||||
file_size: number
|
||||
indexed_at: string
|
||||
}
|
||||
|
||||
export type SessionEventType =
|
||||
| 'user'
|
||||
| 'assistant'
|
||||
| 'system'
|
||||
| 'attachment'
|
||||
| 'permission-mode'
|
||||
| 'file-history-snapshot'
|
||||
| 'unknown'
|
||||
|
||||
export interface SessionEvent {
|
||||
index: number
|
||||
type: SessionEventType
|
||||
timestamp: string | null
|
||||
raw: Record<string, unknown>
|
||||
text: string | null
|
||||
tool_name: string | null
|
||||
tool_input: Record<string, unknown> | null
|
||||
tool_result: unknown
|
||||
skill_invoked: string | null
|
||||
hook_name: string | null
|
||||
}
|
||||
|
||||
export interface ParseResult {
|
||||
meta: SessionMeta
|
||||
events: SessionEvent[]
|
||||
}
|
||||
Reference in New Issue
Block a user