oc2token 0.1.0 → 0.1.1

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.
Files changed (71) hide show
  1. package/README.md +40 -15
  2. package/dist/src/accounting/index.d.ts +1 -1
  3. package/dist/src/accounting/index.js +1 -1
  4. package/dist/src/accounting/index.js.map +1 -1
  5. package/dist/src/accounting/reducer.d.ts +1 -2
  6. package/dist/src/accounting/reducer.js +0 -22
  7. package/dist/src/accounting/reducer.js.map +1 -1
  8. package/dist/src/antigravity/discovery.d.ts +4 -0
  9. package/dist/src/antigravity/discovery.js +25 -2
  10. package/dist/src/antigravity/discovery.js.map +1 -1
  11. package/dist/src/antigravity/scanner.js +173 -156
  12. package/dist/src/antigravity/scanner.js.map +1 -1
  13. package/dist/src/application.js +87 -75
  14. package/dist/src/application.js.map +1 -1
  15. package/dist/src/cache/lock.js +4 -1
  16. package/dist/src/cache/lock.js.map +1 -1
  17. package/dist/src/cache/schema.js +13 -1
  18. package/dist/src/cache/schema.js.map +1 -1
  19. package/dist/src/cache/store.d.ts +1 -0
  20. package/dist/src/cache/store.js +27 -0
  21. package/dist/src/cache/store.js.map +1 -1
  22. package/dist/src/cli.js +174 -46
  23. package/dist/src/cli.js.map +1 -1
  24. package/dist/src/codex/discovery.d.ts +4 -0
  25. package/dist/src/codex/discovery.js +59 -47
  26. package/dist/src/codex/discovery.js.map +1 -1
  27. package/dist/src/codex/scanner.js +37 -11
  28. package/dist/src/codex/scanner.js.map +1 -1
  29. package/dist/src/collector/collector.js +44 -14
  30. package/dist/src/collector/collector.js.map +1 -1
  31. package/dist/src/collector/types.d.ts +8 -0
  32. package/dist/src/collector/types.js.map +1 -1
  33. package/dist/src/dashboard/render/dashboard.js +18 -5
  34. package/dist/src/dashboard/render/dashboard.js.map +1 -1
  35. package/dist/src/dashboard/render/format.d.ts +4 -0
  36. package/dist/src/dashboard/render/format.js +9 -0
  37. package/dist/src/dashboard/render/format.js.map +1 -1
  38. package/dist/src/dashboard/render/types.d.ts +14 -0
  39. package/dist/src/dashboard/render/types.js +40 -13
  40. package/dist/src/dashboard/render/types.js.map +1 -1
  41. package/dist/src/dashboard/scheduler/refresh-scheduler.js +2 -1
  42. package/dist/src/dashboard/scheduler/refresh-scheduler.js.map +1 -1
  43. package/dist/src/dashboard/settings/index.js +29 -4
  44. package/dist/src/dashboard/settings/index.js.map +1 -1
  45. package/dist/src/dashboard/state/refresh-coordinator.d.ts +7 -0
  46. package/dist/src/dashboard/state/refresh-coordinator.js +30 -0
  47. package/dist/src/dashboard/state/refresh-coordinator.js.map +1 -1
  48. package/dist/src/domain/records.d.ts +15 -1
  49. package/dist/src/domain/records.js +15 -1
  50. package/dist/src/domain/records.js.map +1 -1
  51. package/dist/src/domain/tokens.d.ts +12 -0
  52. package/dist/src/domain/tokens.js +19 -3
  53. package/dist/src/domain/tokens.js.map +1 -1
  54. package/dist/src/domain/windows.js +37 -13
  55. package/dist/src/domain/windows.js.map +1 -1
  56. package/dist/src/opencode/adapter.js +12 -3
  57. package/dist/src/opencode/adapter.js.map +1 -1
  58. package/dist/src/opencode/client.d.ts +10 -0
  59. package/dist/src/opencode/client.js +17 -3
  60. package/dist/src/opencode/client.js.map +1 -1
  61. package/dist/src/opencode/stats.js +33 -9
  62. package/dist/src/opencode/stats.js.map +1 -1
  63. package/dist/src/opencode/transport.d.ts +10 -0
  64. package/dist/src/opencode/transport.js +23 -9
  65. package/dist/src/opencode/transport.js.map +1 -1
  66. package/dist/src/output/table.js +6 -2
  67. package/dist/src/output/table.js.map +1 -1
  68. package/dist/src/pricing/pricing.d.ts +30 -0
  69. package/dist/src/pricing/pricing.js +67 -27
  70. package/dist/src/pricing/pricing.js.map +1 -1
  71. package/package.json +32 -7
@@ -5,7 +5,7 @@ import { containsInstant, createUsageRecord, sumUsageRecords } from "../domain/i
5
5
  import { UsageRecordReducer } from "../accounting/reducer.js";
6
6
  import { DomainError, cancellationError, isCancellationError, toCollectionError, } from "../domain/index.js";
7
7
  import { discoverAntigravityDatabases } from "./discovery.js";
8
- import { antigravitySqliteCreatedAt, antigravitySqliteModel, antigravitySqliteResponseId, firstProtoField, parseProtoFields, protoFieldBytes, protoFieldPositiveInteger, } from "./proto.js";
8
+ import { antigravitySqliteCreatedAt, antigravitySqliteMetadataAttributes, antigravitySqliteModel, antigravitySqliteResponseId, firstProtoField, parseProtoFields, protoFieldBytes, protoFieldPositiveInteger, } from "./proto.js";
9
9
  // SQLite driver lazy loading — mirrors codeburn loadDriver/isSqliteAvailable
10
10
  let CachedDatabaseSync = undefined;
11
11
  let loadAttempted = false;
@@ -236,6 +236,8 @@ export async function collectAntigravity(request) {
236
236
  // ignore
237
237
  }
238
238
  retried = true;
239
+ // A successful open-retry is retried work: surface it in coverage.
240
+ mutable.jobsRetried += 1;
239
241
  }
240
242
  catch (retryError) {
241
243
  if (isCancellationError(retryError)) {
@@ -263,189 +265,204 @@ export async function collectAntigravity(request) {
263
265
  mutable.errors.push(toCollectionError(new Error("Failed to open database"), "unknown", cascadeId));
264
266
  continue;
265
267
  }
266
- let rows;
268
+ // Stream rows via iterate() so a huge gen_metadata table is processed one
269
+ // row at a time instead of materializing via all(). The per-row body is a
270
+ // closure so the normal path and the single busy-retry path share it;
271
+ // re-processing after a mid-iteration retry is safe because reducer
272
+ // upserts are idempotent on the stable record key.
273
+ let fileHadRows = false;
274
+ let fileHadError = false;
275
+ let emptyUsageRows = 0;
276
+ const processRow = (row) => {
277
+ assertNotAborted(request.signal);
278
+ const idx = typeof row.idx === "number" ? row.idx : Number(row.idx);
279
+ const dataBytes = normalizeDataBytes(row.data);
280
+ if (dataBytes === null) {
281
+ return;
282
+ }
283
+ const rootFields = parseProtoFields(dataBytes);
284
+ const chatBytes = protoFieldBytes(firstProtoField(rootFields, 1));
285
+ const chatFields = parseProtoFields(chatBytes ?? new Uint8Array());
286
+ const usageBytes = protoFieldBytes(firstProtoField(chatFields, 4));
287
+ const usageFields = parseProtoFields(usageBytes ?? new Uint8Array());
288
+ if (usageFields.length === 0) {
289
+ // No usage payload in this row: nothing billable to record. Counted
290
+ // and surfaced as one aggregated coverage error per file below rather
291
+ // than silently skipped or per-row spam.
292
+ emptyUsageRows += 1;
293
+ return;
294
+ }
295
+ const inputTokens = protoFieldPositiveInteger(firstProtoField(usageFields, 2)) ||
296
+ protoFieldPositiveInteger(firstProtoField(usageFields, 1));
297
+ const totalOutputTokens = protoFieldPositiveInteger(firstProtoField(usageFields, 3));
298
+ let responseTokens = protoFieldPositiveInteger(firstProtoField(usageFields, 9));
299
+ let thinkingTokens = protoFieldPositiveInteger(firstProtoField(usageFields, 10));
300
+ // Adjust logic mirrors codeburn buildCallFromSqliteGenMetadataRow:17255
301
+ if (responseTokens === 0 && thinkingTokens === 0) {
302
+ responseTokens = totalOutputTokens;
303
+ }
304
+ else if (totalOutputTokens > 0 && responseTokens + thinkingTokens !== totalOutputTokens) {
305
+ const adjustedResponseTokens = totalOutputTokens - thinkingTokens;
306
+ if (adjustedResponseTokens >= 0) {
307
+ responseTokens = adjustedResponseTokens;
308
+ }
309
+ }
310
+ if (inputTokens === 0 && totalOutputTokens === 0) {
311
+ return;
312
+ }
313
+ const rawResponseId = antigravitySqliteResponseId(usageFields, String(idx));
314
+ // Domain messageIDs reject "/" (it joins the stable record key) while
315
+ // proto responseIds only exclude whitespace — sanitize before use.
316
+ const responseId = rawResponseId.replace(/[\u0000-\u001f/]/g, "_").trim() || String(idx);
317
+ const model = antigravitySqliteModel(chatFields);
318
+ let createdAt = null;
319
+ const timestampIso = antigravitySqliteCreatedAt(chatFields);
320
+ if (timestampIso) {
321
+ const parsed = new Date(timestampIso);
322
+ if (!Number.isNaN(parsed.getTime())) {
323
+ createdAt = parsed;
324
+ }
325
+ }
326
+ // NOTE (mtime bucketing): when a row carries no proto timestamp every
327
+ // such row in this file falls back to the same file-mtime instant, so
328
+ // they all bucket into one window. That matches codeburn's
329
+ // assignStableTimestamps fallback, but it is a coarse approximation:
330
+ // per-row times are unknown and day/hour splits for these rows reflect
331
+ // file mtime, not actual generation time.
332
+ if (createdAt === null && fallbackDate !== undefined && !Number.isNaN(fallbackDate.getTime())) {
333
+ createdAt = new Date(fallbackDate.getTime());
334
+ }
335
+ if (createdAt === null) {
336
+ // No usable timestamp — skip record but count as error?
337
+ fileHadError = true;
338
+ mutable.errors.push(toCollectionError(new DomainError("invalid-data", "Missing timestamp in gen_metadata row", { sessionID: cascadeId }), "invalid-data", cascadeId));
339
+ return;
340
+ }
341
+ // Window filter — in-memory containsInstant
342
+ const inWindow = request.windows.some((w) => containsInstant(w, createdAt));
343
+ if (!inWindow) {
344
+ return;
345
+ }
346
+ const deduplicationKey = `antigravity:${cascadeId}:${responseId}`;
347
+ // NOTE (project): gen_metadata rows carry no dedicated project field,
348
+ // so records omit project unless a chat metadata attribute names one.
349
+ const attributes = antigravitySqliteMetadataAttributes(chatFields);
350
+ const projectCandidate = attributes.get("project") ??
351
+ attributes.get("projectId") ??
352
+ attributes.get("project_id") ??
353
+ attributes.get("cwd") ??
354
+ attributes.get("directory");
355
+ const project = typeof projectCandidate === "string" && projectCandidate.trim().length > 0
356
+ ? projectCandidate.trim()
357
+ : undefined;
358
+ try {
359
+ const record = createUsageRecord({
360
+ sessionID: cascadeId,
361
+ messageID: responseId,
362
+ createdAt,
363
+ model,
364
+ tokens: {
365
+ input: inputTokens,
366
+ output: responseTokens,
367
+ reasoning: thinkingTokens,
368
+ cacheRead: 0,
369
+ cacheWrite: 0,
370
+ },
371
+ observedAt: new Date(request.capturedAt.getTime()),
372
+ completeness: "final",
373
+ provider: "antigravity",
374
+ tokenRevision: deduplicationKey,
375
+ ...(project === undefined ? {} : { project }),
376
+ });
377
+ reducer.upsert(record);
378
+ fileHadRows = true;
379
+ }
380
+ catch (error) {
381
+ if (isCancellationError(error)) {
382
+ throw cancellationError();
383
+ }
384
+ fileHadError = true;
385
+ mutable.errors.push(toCollectionError(error, "invalid-data", cascadeId));
386
+ }
387
+ };
388
+ const iterateRows = (handle) => {
389
+ const stmt = handle.prepare("SELECT idx, data FROM gen_metadata ORDER BY idx");
390
+ for (const row of stmt.iterate()) {
391
+ processRow(row);
392
+ }
393
+ };
267
394
  try {
268
- const stmt = db.prepare("SELECT idx, data FROM gen_metadata ORDER BY idx");
269
- // stmt.all returns rows; for readonly we pass no params
270
- rows = stmt.all();
271
- mutable.pagesRead += 1;
272
- }
273
- catch (error) {
274
- if (isCancellationError(error)) {
395
+ try {
396
+ iterateRows(db);
397
+ mutable.pagesRead += 1;
398
+ }
399
+ catch (error) {
400
+ if (isCancellationError(error)) {
401
+ throw cancellationError();
402
+ }
403
+ if (!isSqliteBusyError(error)) {
404
+ throw error;
405
+ }
406
+ // Busy mid-query: re-open and retry the streaming query once.
275
407
  try {
276
408
  db.close();
277
409
  }
278
410
  catch {
279
411
  // ignore
280
412
  }
281
- throw cancellationError();
282
- }
283
- if (isSqliteBusyError(error)) {
284
- mutable.sessionsSkipped += 1;
285
- // retry once
413
+ const retryDb = new DatabaseSync(filePath, { readOnly: true });
286
414
  try {
287
- // Re-open and retry query once
288
- try {
289
- db.close();
290
- }
291
- catch {
292
- // ignore
293
- }
294
- const retryDb = new DatabaseSync(filePath, { readOnly: true });
295
- try {
296
- retryDb.exec?.("PRAGMA busy_timeout = 1000");
297
- }
298
- catch {
299
- // ignore
300
- }
301
- const retryStmt = retryDb.prepare("SELECT idx, data FROM gen_metadata ORDER BY idx");
302
- rows = retryStmt.all();
415
+ retryDb.exec?.("PRAGMA busy_timeout = 1000");
416
+ }
417
+ catch {
418
+ // ignore
419
+ }
420
+ try {
421
+ iterateRows(retryDb);
303
422
  mutable.jobsRetried += 1;
304
423
  mutable.pagesRead += 1;
305
- try {
306
- retryDb.close();
307
- }
308
- catch {
309
- // ignore
310
- }
311
- // continue to row processing with retry rows
312
- db = null; // already closed retryDb, prevent double close
313
424
  }
314
- catch (retryError) {
315
- if (isCancellationError(retryError)) {
316
- throw cancellationError();
317
- }
318
- mutable.errors.push(toCollectionError(retryError, "unknown", cascadeId));
425
+ finally {
319
426
  try {
320
- db?.close();
427
+ retryDb.close();
321
428
  }
322
429
  catch {
323
430
  // ignore
324
431
  }
325
- continue;
326
432
  }
327
433
  }
328
- else {
329
- mutable.sessionsSkipped += 1;
330
- mutable.errors.push(toCollectionError(error, "unknown", cascadeId));
434
+ }
435
+ catch (error) {
436
+ if (isCancellationError(error)) {
331
437
  try {
332
- db?.close();
438
+ db.close();
333
439
  }
334
440
  catch {
335
441
  // ignore
336
442
  }
337
- continue;
443
+ throw cancellationError();
338
444
  }
339
- }
340
- finally {
341
- // For non-busy-retry path, close after query; for retry success we already handled.
342
- // We need to handle both cases: if db still open, close after row processing.
343
- // So defer close until after row loop for normal path.
344
- }
345
- // If we retried successfully, rows is already set and db is null (closed). Create a new db handle not needed.
346
- // For normal path, db is still open; we will close after processing.
347
- const shouldCloseDb = db !== null;
348
- // Process rows
349
- let fileHadRows = false;
350
- let fileHadError = false;
351
- try {
352
- for (const row of rows) {
353
- assertNotAborted(request.signal);
354
- const idx = typeof row.idx === "number" ? row.idx : Number(row.idx);
355
- const dataBytes = normalizeDataBytes(row.data);
356
- if (dataBytes === null) {
357
- continue;
358
- }
359
- const rootFields = parseProtoFields(dataBytes);
360
- const chatBytes = protoFieldBytes(firstProtoField(rootFields, 1));
361
- const chatFields = parseProtoFields(chatBytes ?? new Uint8Array());
362
- const usageBytes = protoFieldBytes(firstProtoField(chatFields, 4));
363
- const usageFields = parseProtoFields(usageBytes ?? new Uint8Array());
364
- if (usageFields.length === 0) {
365
- continue;
366
- }
367
- const inputTokens = protoFieldPositiveInteger(firstProtoField(usageFields, 2)) ||
368
- protoFieldPositiveInteger(firstProtoField(usageFields, 1));
369
- const totalOutputTokens = protoFieldPositiveInteger(firstProtoField(usageFields, 3));
370
- let responseTokens = protoFieldPositiveInteger(firstProtoField(usageFields, 9));
371
- let thinkingTokens = protoFieldPositiveInteger(firstProtoField(usageFields, 10));
372
- // Adjust logic mirrors codeburn buildCallFromSqliteGenMetadataRow:17255
373
- if (responseTokens === 0 && thinkingTokens === 0) {
374
- responseTokens = totalOutputTokens;
375
- }
376
- else if (totalOutputTokens > 0 && responseTokens + thinkingTokens !== totalOutputTokens) {
377
- const adjustedResponseTokens = totalOutputTokens - thinkingTokens;
378
- if (adjustedResponseTokens >= 0) {
379
- responseTokens = adjustedResponseTokens;
380
- }
381
- }
382
- if (inputTokens === 0 && totalOutputTokens === 0) {
383
- continue;
384
- }
385
- const responseId = antigravitySqliteResponseId(usageFields, String(idx));
386
- const model = antigravitySqliteModel(chatFields);
387
- let createdAt = null;
388
- const timestampIso = antigravitySqliteCreatedAt(chatFields);
389
- if (timestampIso) {
390
- const parsed = new Date(timestampIso);
391
- if (!Number.isNaN(parsed.getTime())) {
392
- createdAt = parsed;
393
- }
394
- }
395
- if (createdAt === null && fallbackDate !== undefined && !Number.isNaN(fallbackDate.getTime())) {
396
- createdAt = new Date(fallbackDate.getTime());
397
- }
398
- if (createdAt === null) {
399
- // No usable timestamp — skip record but count as error?
400
- fileHadError = true;
401
- mutable.errors.push(toCollectionError(new DomainError("invalid-data", "Missing timestamp in gen_metadata row", { sessionID: cascadeId }), "invalid-data", cascadeId));
402
- continue;
403
- }
404
- // Window filter — in-memory containsInstant
405
- const inWindow = request.windows.some((w) => containsInstant(w, createdAt));
406
- if (!inWindow) {
407
- continue;
408
- }
409
- const deduplicationKey = `antigravity:${cascadeId}:${responseId}`;
410
- try {
411
- const record = createUsageRecord({
412
- sessionID: cascadeId,
413
- messageID: responseId,
414
- createdAt,
415
- model,
416
- tokens: {
417
- input: inputTokens,
418
- output: responseTokens,
419
- reasoning: thinkingTokens,
420
- cacheRead: 0,
421
- cacheWrite: 0,
422
- },
423
- observedAt: new Date(request.capturedAt.getTime()),
424
- completeness: "final",
425
- provider: "antigravity",
426
- tokenRevision: deduplicationKey,
427
- });
428
- reducer.upsert(record);
429
- fileHadRows = true;
430
- }
431
- catch (error) {
432
- if (isCancellationError(error)) {
433
- throw cancellationError();
434
- }
435
- fileHadError = true;
436
- mutable.errors.push(toCollectionError(error, "invalid-data", cascadeId));
437
- }
445
+ mutable.sessionsSkipped += 1;
446
+ mutable.errors.push(toCollectionError(error, "unknown", cascadeId));
447
+ try {
448
+ db.close();
449
+ }
450
+ catch {
451
+ // ignore
438
452
  }
453
+ continue;
439
454
  }
440
455
  finally {
441
- if (shouldCloseDb) {
442
- try {
443
- db.close();
444
- }
445
- catch {
446
- // ignore close errors; if busy, count as skipped
447
- }
456
+ try {
457
+ db.close();
448
458
  }
459
+ catch {
460
+ // ignore close errors; if busy, count as skipped
461
+ }
462
+ }
463
+ if (emptyUsageRows > 0) {
464
+ fileHadError = true;
465
+ mutable.errors.push(toCollectionError(new DomainError("invalid-data", `${emptyUsageRows} gen_metadata row(s) without usage fields in ${cascadeId}`, { sessionID: cascadeId }), "invalid-data", cascadeId));
449
466
  }
450
467
  if (fileHadRows && !fileHadError) {
451
468
  mutable.sessionsScanned += 1;
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../src/antigravity/scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../src/antigravity/scanner.ts"],"names":[],"mappings":"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"}