feat(providers): add pure claude adapter with record-stream golden tests (5b-1)

claude.parse mirrors indexJsonl line-for-line but yields IndexRecords (no db).
Adds MessageTurnDurationRecord op. Purely additive — buildIndex still uses the
old path. 111/111 green.
This commit is contained in:
tommy0103
2026-07-08 18:27:28 +08:00
parent 338dae413d
commit 2b30d9596d
5 changed files with 231 additions and 1 deletions
+10
View File
@@ -60,6 +60,7 @@ export type IndexRecord =
| SubagentRecord
| WorkflowRecord
| WorkflowAgentRecord
| MessageTurnDurationRecord
| DeleteSessionRecord;
export interface MessageRecord {
@@ -163,6 +164,15 @@ export interface WorkflowAgentRecord {
tool_calls?: number | null;
}
// Update op (not a table): sets messages.turn_duration_ms for a message that was
// (or will be) inserted by a separate line, possibly on a different run. Persist
// applies it as a targeted UPDATE, so it never clobbers other message columns.
export interface MessageTurnDurationRecord {
kind: 'message-turn-duration';
uuid: string;
turn_duration_ms: number;
}
// Retraction op (not a table). The adapter emits this when a previously-indexed
// session must be removed — e.g. a Codex guardian/auto-review thread. Persist
// executes the cascade delete across all tables for that session.