ragscope 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,MAAM,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE7C,wBAAgB,QAAQ,CAAC,MAAM,SAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwD3C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,EAAE,GAAG,YAAY,CAAC;AAE9B,wBAAgB,QAAQ,CAAC,MAAM,SAAa,GAAG,EAAE,CAyDhD"}
@@ -1,11 +1,9 @@
1
- import Database from 'better-sqlite3';
2
- import { drizzle } from 'drizzle-orm/better-sqlite3';
3
- import { traces, spans, chunks } from './schema.js';
1
+ import { DatabaseSync } from 'node:sqlite';
4
2
  export function createDb(dbPath = ':memory:') {
5
- const sqlite = new Database(dbPath);
6
- sqlite.pragma('journal_mode = WAL');
7
- sqlite.pragma('foreign_keys = ON');
8
- sqlite.exec(`
3
+ const db = new DatabaseSync(dbPath);
4
+ db.exec('PRAGMA journal_mode = WAL');
5
+ db.exec('PRAGMA foreign_keys = ON');
6
+ db.exec(`
9
7
  CREATE TABLE IF NOT EXISTS traces (
10
8
  id TEXT PRIMARY KEY,
11
9
  service_name TEXT NOT NULL,
@@ -54,6 +52,6 @@ export function createDb(dbPath = ':memory:') {
54
52
  score_missing INTEGER NOT NULL DEFAULT 0
55
53
  );
56
54
  `);
57
- return drizzle(sqlite, { schema: { traces, spans, chunks } });
55
+ return db;
58
56
  }
59
57
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIpD,MAAM,UAAU,QAAQ,CAAC,MAAM,GAAG,UAAU;IAC1C,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACpC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAEnC,MAAM,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDX,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,MAAM,UAAU,QAAQ,CAAC,MAAM,GAAG,UAAU;IAC1C,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAEpC,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACrC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAEpC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDP,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import type { Db } from './index.js';
2
2
  import type { RagTrace, RagSpan, RagChunk } from '../types.js';
3
- export declare function insertTrace(db: Db, trace: RagTrace): Promise<void>;
4
- export declare function insertSpans(db: Db, rows: RagSpan[]): Promise<void>;
5
- export declare function insertChunks(db: Db, rows: RagChunk[]): Promise<void>;
6
- export declare function getTraces(db: Db, limit?: number): Promise<RagTrace[]>;
7
- export declare function getTraceById(db: Db, traceId: string): Promise<{
3
+ export declare function insertTrace(db: Db, trace: RagTrace): void;
4
+ export declare function insertSpans(db: Db, rows: RagSpan[]): void;
5
+ export declare function insertChunks(db: Db, rows: RagChunk[]): void;
6
+ export declare function getTraces(db: Db, limit?: number): RagTrace[];
7
+ export declare function getTraceById(db: Db, traceId: string): {
8
8
  trace: RagTrace;
9
9
  spans: RagSpan[];
10
10
  chunks: RagChunk[];
11
- } | null>;
11
+ } | null;
12
12
  //# sourceMappingURL=queries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/db/queries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE/D,wBAAsB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAExE;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxE;AAED,wBAAsB,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1E;AAED,wBAAsB,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAMxE;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IACT,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB,GAAG,IAAI,CAAC,CAYR"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/db/queries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAwD/D,wBAAgB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAiBzD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAyBzD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CA6B3D;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,SAAM,GAAG,QAAQ,EAAE,CAIzD;AAED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,MAAM,GACd;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,OAAO,EAAE,CAAC;IAAC,MAAM,EAAE,QAAQ,EAAE,CAAA;CAAE,GAAG,IAAI,CAYlE"}
@@ -1,35 +1,99 @@
1
- import { eq, desc } from 'drizzle-orm';
2
- import { traces, spans, chunks } from './schema.js';
3
- export async function insertTrace(db, trace) {
4
- await db.insert(traces).values(trace).onConflictDoNothing();
1
+ function rowToTrace(r) {
2
+ return {
3
+ id: r['id'],
4
+ serviceName: r['service_name'],
5
+ query: r['query'],
6
+ source: r['source'],
7
+ totalLatencyMs: r['total_latency_ms'],
8
+ spanCount: r['span_count'],
9
+ chunkCount: r['chunk_count'],
10
+ createdAt: r['created_at'],
11
+ };
12
+ }
13
+ function rowToSpan(r) {
14
+ return {
15
+ id: r['id'],
16
+ traceId: r['trace_id'],
17
+ parentSpanId: r['parent_span_id'],
18
+ name: r['name'],
19
+ kind: r['kind'],
20
+ startTimeMs: r['start_time_ms'],
21
+ endTimeMs: r['end_time_ms'],
22
+ latencyMs: r['latency_ms'],
23
+ operationName: r['operation_name'],
24
+ model: r['model'],
25
+ system: r['system'],
26
+ inputTokens: r['input_tokens'],
27
+ outputTokens: r['output_tokens'],
28
+ };
5
29
  }
6
- export async function insertSpans(db, rows) {
30
+ function rowToChunk(r) {
31
+ return {
32
+ id: r['id'],
33
+ spanId: r['span_id'],
34
+ traceId: r['trace_id'],
35
+ chunkId: r['chunk_id'],
36
+ content: r['content'],
37
+ scoreRaw: r['score_raw'],
38
+ scoreNormalized: r['score_normalized'],
39
+ rankRetrieval: r['rank_retrieval'],
40
+ rankReranked: r['rank_reranked'],
41
+ scoreReranked: r['score_reranked'],
42
+ tokenCount: r['token_count'],
43
+ vectorStore: r['vector_store'],
44
+ inContext: Boolean(r['in_context']),
45
+ contextPosition: r['context_position'],
46
+ overlapWithNext: r['overlap_with_next'],
47
+ scoreMissing: Boolean(r['score_missing']),
48
+ };
49
+ }
50
+ export function insertTrace(db, trace) {
51
+ db.prepare(`
52
+ INSERT OR IGNORE INTO traces
53
+ (id, service_name, query, source, total_latency_ms, span_count, chunk_count, created_at)
54
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
55
+ `).run(trace.id, trace.serviceName, trace.query, trace.source, trace.totalLatencyMs, trace.spanCount, trace.chunkCount, trace.createdAt);
56
+ }
57
+ export function insertSpans(db, rows) {
7
58
  if (rows.length === 0)
8
59
  return;
9
- await db.insert(spans).values(rows).onConflictDoNothing();
60
+ const stmt = db.prepare(`
61
+ INSERT OR IGNORE INTO spans
62
+ (id, trace_id, parent_span_id, name, kind, start_time_ms, end_time_ms,
63
+ latency_ms, operation_name, model, system, input_tokens, output_tokens, raw_attributes, prompt)
64
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, '[]', NULL)
65
+ `);
66
+ for (const s of rows) {
67
+ stmt.run(s.id, s.traceId, s.parentSpanId, s.name, s.kind, s.startTimeMs, s.endTimeMs, s.latencyMs, s.operationName, s.model, s.system, s.inputTokens, s.outputTokens);
68
+ }
10
69
  }
11
- export async function insertChunks(db, rows) {
70
+ export function insertChunks(db, rows) {
12
71
  if (rows.length === 0)
13
72
  return;
14
- await db.insert(chunks).values(rows).onConflictDoNothing();
15
- }
16
- export async function getTraces(db, limit = 100) {
17
- return db
18
- .select()
19
- .from(traces)
20
- .orderBy(desc(traces.createdAt))
21
- .limit(limit);
22
- }
23
- export async function getTraceById(db, traceId) {
24
- const traceRows = await db.select().from(traces).where(eq(traces.id, traceId));
25
- if (traceRows.length === 0)
73
+ const stmt = db.prepare(`
74
+ INSERT OR IGNORE INTO chunks
75
+ (id, span_id, trace_id, chunk_id, content, score_raw, score_normalized,
76
+ rank_retrieval, rank_reranked, score_reranked, token_count, vector_store,
77
+ in_context, context_position, overlap_with_next, score_missing)
78
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
79
+ `);
80
+ for (const c of rows) {
81
+ stmt.run(c.id, c.spanId, c.traceId, c.chunkId, c.content, c.scoreRaw, c.scoreNormalized, c.rankRetrieval, c.rankReranked, c.scoreReranked, c.tokenCount, c.vectorStore, Number(c.inContext), c.contextPosition, c.overlapWithNext, Number(c.scoreMissing));
82
+ }
83
+ }
84
+ export function getTraces(db, limit = 100) {
85
+ return db.prepare('SELECT * FROM traces ORDER BY created_at DESC LIMIT ?').all(limit).map(rowToTrace);
86
+ }
87
+ export function getTraceById(db, traceId) {
88
+ const traceRow = db.prepare('SELECT * FROM traces WHERE id = ?').get(traceId);
89
+ if (!traceRow)
26
90
  return null;
27
- const spanRows = await db.select().from(spans).where(eq(spans.traceId, traceId));
28
- const chunkRows = await db.select().from(chunks).where(eq(chunks.traceId, traceId));
91
+ const spanRows = db.prepare('SELECT * FROM spans WHERE trace_id = ?').all(traceId);
92
+ const chunkRows = db.prepare('SELECT * FROM chunks WHERE trace_id = ?').all(traceId);
29
93
  return {
30
- trace: traceRows[0],
31
- spans: spanRows,
32
- chunks: chunkRows,
94
+ trace: rowToTrace(traceRow),
95
+ spans: spanRows.map(rowToSpan),
96
+ chunks: chunkRows.map(rowToChunk),
33
97
  };
34
98
  }
35
99
  //# sourceMappingURL=queries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/db/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGpD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAM,EAAE,KAAe;IACvD,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,mBAAmB,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAM,EAAE,IAAe;IACvD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC9B,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAM,EAAE,IAAgB;IACzD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC9B,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAAM,EAAE,KAAK,GAAG,GAAG;IACjD,OAAO,EAAE;SACN,MAAM,EAAE;SACR,IAAI,CAAC,MAAM,CAAC;SACZ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAC/B,KAAK,CAAC,KAAK,CAA0B,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAM,EACN,OAAe;IAMf,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACjF,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpF,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,CAAC,CAAwB;QAC1C,KAAK,EAAE,QAAgC;QACvC,MAAM,EAAE,SAAkC;KAC3C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/db/queries.ts"],"names":[],"mappings":"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"}
@@ -93,9 +93,9 @@ describe('DB queries', () => {
93
93
  const traces = await getTraces(db);
94
94
  expect(traces).toHaveLength(1);
95
95
  });
96
- it('handles empty spans and chunks insert', async () => {
97
- await expect(insertSpans(db, [])).resolves.toBeUndefined();
98
- await expect(insertChunks(db, [])).resolves.toBeUndefined();
96
+ it('handles empty spans and chunks insert', () => {
97
+ expect(() => insertSpans(db, [])).not.toThrow();
98
+ expect(() => insertChunks(db, [])).not.toThrow();
99
99
  });
100
100
  });
101
101
  //# sourceMappingURL=queries.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.test.js","sourceRoot":"","sources":["../../../src/db/queries.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.test.js","sourceRoot":"","sources":["../../../src/db/queries.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ragscope",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Lighthouse for RAG — PASS/WARN/FAIL scores for your retrieval pipeline, straight in the terminal. Works with LangChain, LlamaIndex, Vercel AI SDK, Langfuse, and any OpenTelemetry source.",
5
5
  "keywords": [
6
6
  "rag",
@@ -35,7 +35,7 @@
35
35
  "url": "https://github.com/Sidd27/ragscope/issues"
36
36
  },
37
37
  "engines": {
38
- "node": ">=18.0.0"
38
+ "node": ">=24.0.0"
39
39
  },
40
40
  "publishConfig": {
41
41
  "access": "public"
@@ -63,9 +63,7 @@
63
63
  "dependencies": {
64
64
  "@fastify/cors": "^10.0.2",
65
65
  "ai-tokenizer": "^1.0.6",
66
- "better-sqlite3": "^12.10.0",
67
66
  "chonkie": "^0.3.0",
68
- "drizzle-orm": "^0.45.2",
69
67
  "fastify": "^5.3.2",
70
68
  "langfuse": "^3.37.1",
71
69
  "picocolors": "^1.1.1"
@@ -73,11 +71,6 @@
73
71
  "optionalDependencies": {
74
72
  "@huggingface/transformers": "^4.2.0"
75
73
  },
76
- "pnpm": {
77
- "onlyBuiltDependencies": [
78
- "better-sqlite3"
79
- ]
80
- },
81
74
  "lint-staged": {
82
75
  "*.ts": [
83
76
  "eslint --fix",
@@ -88,7 +81,6 @@
88
81
  ]
89
82
  },
90
83
  "devDependencies": {
91
- "@types/better-sqlite3": "^7.6.13",
92
84
  "@types/node": "^22.15.21",
93
85
  "@typescript-eslint/eslint-plugin": "^8.60.0",
94
86
  "@typescript-eslint/parser": "^8.60.0",