MCPcopy Create free account
hub / github.com/coder/aibridge / NewSQLiteRecorder

Function NewSQLiteRecorder

example/recorder.go:25–64  ·  view source on GitHub ↗
(db *sql.DB, logger slog.Logger)

Source from the content-addressed store, hash-verified

23}
24
25func NewSQLiteRecorder(db *sql.DB, logger slog.Logger) (*SQLiteRecorder, error) {
26 r := &SQLiteRecorder{db: db, logger: logger}
27
28 var err error
29 r.stmtInsertInterception, err = db.Prepare(`
30 INSERT INTO aibridge_interceptions (id, initiator_id, provider, model, started_at, metadata)
31 VALUES (?, ?, ?, ?, ?, ?)`)
32 if err != nil {
33 return nil, err
34 }
35
36 r.stmtUpdateInterception, err = db.Prepare(`
37 UPDATE aibridge_interceptions SET ended_at = ? WHERE id = ?`)
38 if err != nil {
39 return nil, err
40 }
41
42 r.stmtInsertTokenUsage, err = db.Prepare(`
43 INSERT INTO aibridge_token_usages (id, interception_id, provider_response_id, input_tokens, output_tokens, cache_read_input_tokens, cache_write_input_tokens, metadata, created_at)
44 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`)
45 if err != nil {
46 return nil, err
47 }
48
49 r.stmtInsertPromptUsage, err = db.Prepare(`
50 INSERT INTO aibridge_user_prompts (id, interception_id, provider_response_id, prompt, metadata, created_at)
51 VALUES (?, ?, ?, ?, ?, ?)`)
52 if err != nil {
53 return nil, err
54 }
55
56 r.stmtInsertToolUsage, err = db.Prepare(`
57 INSERT INTO aibridge_tool_usages (id, interception_id, provider_response_id, server_url, tool, input, injected, invocation_error, metadata, created_at)
58 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
59 if err != nil {
60 return nil, err
61 }
62
63 return r, nil
64}
65
66func (r *SQLiteRecorder) Close() error {
67 r.stmtInsertInterception.Close()

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected