oc2token 0.1.0 → 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.
- package/README.md +40 -15
- package/dist/src/accounting/index.d.ts +1 -1
- package/dist/src/accounting/index.js +1 -1
- package/dist/src/accounting/index.js.map +1 -1
- package/dist/src/accounting/reducer.d.ts +1 -2
- package/dist/src/accounting/reducer.js +0 -22
- package/dist/src/accounting/reducer.js.map +1 -1
- package/dist/src/antigravity/discovery.d.ts +4 -0
- package/dist/src/antigravity/discovery.js +25 -2
- package/dist/src/antigravity/discovery.js.map +1 -1
- package/dist/src/antigravity/scanner.js +167 -156
- package/dist/src/antigravity/scanner.js.map +1 -1
- package/dist/src/application.js +87 -75
- package/dist/src/application.js.map +1 -1
- package/dist/src/cache/lock.js +4 -1
- package/dist/src/cache/lock.js.map +1 -1
- package/dist/src/cache/schema.js +13 -1
- package/dist/src/cache/schema.js.map +1 -1
- package/dist/src/cache/store.d.ts +1 -0
- package/dist/src/cache/store.js +27 -0
- package/dist/src/cache/store.js.map +1 -1
- package/dist/src/cli.js +174 -46
- package/dist/src/cli.js.map +1 -1
- package/dist/src/codex/discovery.d.ts +4 -0
- package/dist/src/codex/discovery.js +59 -47
- package/dist/src/codex/discovery.js.map +1 -1
- package/dist/src/codex/scanner.js +37 -11
- package/dist/src/codex/scanner.js.map +1 -1
- package/dist/src/collector/collector.js +44 -14
- package/dist/src/collector/collector.js.map +1 -1
- package/dist/src/collector/types.d.ts +8 -0
- package/dist/src/collector/types.js.map +1 -1
- package/dist/src/dashboard/render/dashboard.js +19 -6
- package/dist/src/dashboard/render/dashboard.js.map +1 -1
- package/dist/src/dashboard/render/format.d.ts +4 -0
- package/dist/src/dashboard/render/format.js +9 -0
- package/dist/src/dashboard/render/format.js.map +1 -1
- package/dist/src/dashboard/render/types.d.ts +14 -0
- package/dist/src/dashboard/render/types.js +40 -13
- package/dist/src/dashboard/render/types.js.map +1 -1
- package/dist/src/dashboard/scheduler/refresh-scheduler.js +2 -1
- package/dist/src/dashboard/scheduler/refresh-scheduler.js.map +1 -1
- package/dist/src/dashboard/settings/index.js +29 -4
- package/dist/src/dashboard/settings/index.js.map +1 -1
- package/dist/src/dashboard/state/refresh-coordinator.d.ts +7 -0
- package/dist/src/dashboard/state/refresh-coordinator.js +30 -0
- package/dist/src/dashboard/state/refresh-coordinator.js.map +1 -1
- package/dist/src/domain/records.d.ts +15 -1
- package/dist/src/domain/records.js +15 -1
- package/dist/src/domain/records.js.map +1 -1
- package/dist/src/domain/tokens.d.ts +12 -0
- package/dist/src/domain/tokens.js +19 -3
- package/dist/src/domain/tokens.js.map +1 -1
- package/dist/src/domain/windows.js +37 -13
- package/dist/src/domain/windows.js.map +1 -1
- package/dist/src/opencode/adapter.js +12 -3
- package/dist/src/opencode/adapter.js.map +1 -1
- package/dist/src/opencode/client.d.ts +10 -0
- package/dist/src/opencode/client.js +17 -3
- package/dist/src/opencode/client.js.map +1 -1
- package/dist/src/opencode/stats.js +33 -9
- package/dist/src/opencode/stats.js.map +1 -1
- package/dist/src/opencode/transport.d.ts +10 -0
- package/dist/src/opencode/transport.js +23 -9
- package/dist/src/opencode/transport.js.map +1 -1
- package/dist/src/output/table.js +6 -2
- package/dist/src/output/table.js.map +1 -1
- package/dist/src/pricing/pricing.d.ts +30 -0
- package/dist/src/pricing/pricing.js +67 -27
- package/dist/src/pricing/pricing.js.map +1 -1
- 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,188 +265,197 @@ 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
|
-
|
|
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
|
+
const processRow = (row) => {
|
|
276
|
+
assertNotAborted(request.signal);
|
|
277
|
+
const idx = typeof row.idx === "number" ? row.idx : Number(row.idx);
|
|
278
|
+
const dataBytes = normalizeDataBytes(row.data);
|
|
279
|
+
if (dataBytes === null) {
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
const rootFields = parseProtoFields(dataBytes);
|
|
283
|
+
const chatBytes = protoFieldBytes(firstProtoField(rootFields, 1));
|
|
284
|
+
const chatFields = parseProtoFields(chatBytes ?? new Uint8Array());
|
|
285
|
+
const usageBytes = protoFieldBytes(firstProtoField(chatFields, 4));
|
|
286
|
+
const usageFields = parseProtoFields(usageBytes ?? new Uint8Array());
|
|
287
|
+
if (usageFields.length === 0) {
|
|
288
|
+
// No usage payload: normal for non-assistant rows (user messages,
|
|
289
|
+
// system rows, in-progress generations). Nothing billable — skip
|
|
290
|
+
// silently, not a coverage error.
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
const inputTokens = protoFieldPositiveInteger(firstProtoField(usageFields, 2)) ||
|
|
294
|
+
protoFieldPositiveInteger(firstProtoField(usageFields, 1));
|
|
295
|
+
const totalOutputTokens = protoFieldPositiveInteger(firstProtoField(usageFields, 3));
|
|
296
|
+
let responseTokens = protoFieldPositiveInteger(firstProtoField(usageFields, 9));
|
|
297
|
+
let thinkingTokens = protoFieldPositiveInteger(firstProtoField(usageFields, 10));
|
|
298
|
+
// Adjust logic mirrors codeburn buildCallFromSqliteGenMetadataRow:17255
|
|
299
|
+
if (responseTokens === 0 && thinkingTokens === 0) {
|
|
300
|
+
responseTokens = totalOutputTokens;
|
|
301
|
+
}
|
|
302
|
+
else if (totalOutputTokens > 0 && responseTokens + thinkingTokens !== totalOutputTokens) {
|
|
303
|
+
const adjustedResponseTokens = totalOutputTokens - thinkingTokens;
|
|
304
|
+
if (adjustedResponseTokens >= 0) {
|
|
305
|
+
responseTokens = adjustedResponseTokens;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
if (inputTokens === 0 && totalOutputTokens === 0) {
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
const rawResponseId = antigravitySqliteResponseId(usageFields, String(idx));
|
|
312
|
+
// Domain messageIDs reject "/" (it joins the stable record key) while
|
|
313
|
+
// proto responseIds only exclude whitespace — sanitize before use.
|
|
314
|
+
const responseId = rawResponseId.replace(/[\u0000-\u001f/]/g, "_").trim() || String(idx);
|
|
315
|
+
const model = antigravitySqliteModel(chatFields);
|
|
316
|
+
let createdAt = null;
|
|
317
|
+
const timestampIso = antigravitySqliteCreatedAt(chatFields);
|
|
318
|
+
if (timestampIso) {
|
|
319
|
+
const parsed = new Date(timestampIso);
|
|
320
|
+
if (!Number.isNaN(parsed.getTime())) {
|
|
321
|
+
createdAt = parsed;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
// NOTE (mtime bucketing): when a row carries no proto timestamp every
|
|
325
|
+
// such row in this file falls back to the same file-mtime instant, so
|
|
326
|
+
// they all bucket into one window. That matches codeburn's
|
|
327
|
+
// assignStableTimestamps fallback, but it is a coarse approximation:
|
|
328
|
+
// per-row times are unknown and day/hour splits for these rows reflect
|
|
329
|
+
// file mtime, not actual generation time.
|
|
330
|
+
if (createdAt === null && fallbackDate !== undefined && !Number.isNaN(fallbackDate.getTime())) {
|
|
331
|
+
createdAt = new Date(fallbackDate.getTime());
|
|
332
|
+
}
|
|
333
|
+
if (createdAt === null) {
|
|
334
|
+
// No usable timestamp — skip record but count as error?
|
|
335
|
+
fileHadError = true;
|
|
336
|
+
mutable.errors.push(toCollectionError(new DomainError("invalid-data", "Missing timestamp in gen_metadata row", { sessionID: cascadeId }), "invalid-data", cascadeId));
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
339
|
+
// Window filter — in-memory containsInstant
|
|
340
|
+
const inWindow = request.windows.some((w) => containsInstant(w, createdAt));
|
|
341
|
+
if (!inWindow) {
|
|
342
|
+
return;
|
|
343
|
+
}
|
|
344
|
+
const deduplicationKey = `antigravity:${cascadeId}:${responseId}`;
|
|
345
|
+
// NOTE (project): gen_metadata rows carry no dedicated project field,
|
|
346
|
+
// so records omit project unless a chat metadata attribute names one.
|
|
347
|
+
const attributes = antigravitySqliteMetadataAttributes(chatFields);
|
|
348
|
+
const projectCandidate = attributes.get("project") ??
|
|
349
|
+
attributes.get("projectId") ??
|
|
350
|
+
attributes.get("project_id") ??
|
|
351
|
+
attributes.get("cwd") ??
|
|
352
|
+
attributes.get("directory");
|
|
353
|
+
const project = typeof projectCandidate === "string" && projectCandidate.trim().length > 0
|
|
354
|
+
? projectCandidate.trim()
|
|
355
|
+
: undefined;
|
|
356
|
+
try {
|
|
357
|
+
const record = createUsageRecord({
|
|
358
|
+
sessionID: cascadeId,
|
|
359
|
+
messageID: responseId,
|
|
360
|
+
createdAt,
|
|
361
|
+
model,
|
|
362
|
+
tokens: {
|
|
363
|
+
input: inputTokens,
|
|
364
|
+
output: responseTokens,
|
|
365
|
+
reasoning: thinkingTokens,
|
|
366
|
+
cacheRead: 0,
|
|
367
|
+
cacheWrite: 0,
|
|
368
|
+
},
|
|
369
|
+
observedAt: new Date(request.capturedAt.getTime()),
|
|
370
|
+
completeness: "final",
|
|
371
|
+
provider: "antigravity",
|
|
372
|
+
tokenRevision: deduplicationKey,
|
|
373
|
+
...(project === undefined ? {} : { project }),
|
|
374
|
+
});
|
|
375
|
+
reducer.upsert(record);
|
|
376
|
+
fileHadRows = true;
|
|
377
|
+
}
|
|
378
|
+
catch (error) {
|
|
379
|
+
if (isCancellationError(error)) {
|
|
380
|
+
throw cancellationError();
|
|
381
|
+
}
|
|
382
|
+
fileHadError = true;
|
|
383
|
+
mutable.errors.push(toCollectionError(error, "invalid-data", cascadeId));
|
|
384
|
+
}
|
|
385
|
+
};
|
|
386
|
+
const iterateRows = (handle) => {
|
|
387
|
+
const stmt = handle.prepare("SELECT idx, data FROM gen_metadata ORDER BY idx");
|
|
388
|
+
for (const row of stmt.iterate()) {
|
|
389
|
+
processRow(row);
|
|
390
|
+
}
|
|
391
|
+
};
|
|
267
392
|
try {
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
393
|
+
try {
|
|
394
|
+
iterateRows(db);
|
|
395
|
+
mutable.pagesRead += 1;
|
|
396
|
+
}
|
|
397
|
+
catch (error) {
|
|
398
|
+
if (isCancellationError(error)) {
|
|
399
|
+
throw cancellationError();
|
|
400
|
+
}
|
|
401
|
+
if (!isSqliteBusyError(error)) {
|
|
402
|
+
throw error;
|
|
403
|
+
}
|
|
404
|
+
// Busy mid-query: re-open and retry the streaming query once.
|
|
275
405
|
try {
|
|
276
406
|
db.close();
|
|
277
407
|
}
|
|
278
408
|
catch {
|
|
279
409
|
// ignore
|
|
280
410
|
}
|
|
281
|
-
|
|
282
|
-
}
|
|
283
|
-
if (isSqliteBusyError(error)) {
|
|
284
|
-
mutable.sessionsSkipped += 1;
|
|
285
|
-
// retry once
|
|
411
|
+
const retryDb = new DatabaseSync(filePath, { readOnly: true });
|
|
286
412
|
try {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
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();
|
|
413
|
+
retryDb.exec?.("PRAGMA busy_timeout = 1000");
|
|
414
|
+
}
|
|
415
|
+
catch {
|
|
416
|
+
// ignore
|
|
417
|
+
}
|
|
418
|
+
try {
|
|
419
|
+
iterateRows(retryDb);
|
|
303
420
|
mutable.jobsRetried += 1;
|
|
304
421
|
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
422
|
}
|
|
314
|
-
|
|
315
|
-
if (isCancellationError(retryError)) {
|
|
316
|
-
throw cancellationError();
|
|
317
|
-
}
|
|
318
|
-
mutable.errors.push(toCollectionError(retryError, "unknown", cascadeId));
|
|
423
|
+
finally {
|
|
319
424
|
try {
|
|
320
|
-
|
|
425
|
+
retryDb.close();
|
|
321
426
|
}
|
|
322
427
|
catch {
|
|
323
428
|
// ignore
|
|
324
429
|
}
|
|
325
|
-
continue;
|
|
326
430
|
}
|
|
327
431
|
}
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
432
|
+
}
|
|
433
|
+
catch (error) {
|
|
434
|
+
if (isCancellationError(error)) {
|
|
331
435
|
try {
|
|
332
|
-
db
|
|
436
|
+
db.close();
|
|
333
437
|
}
|
|
334
438
|
catch {
|
|
335
439
|
// ignore
|
|
336
440
|
}
|
|
337
|
-
|
|
441
|
+
throw cancellationError();
|
|
338
442
|
}
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
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
|
-
}
|
|
443
|
+
mutable.sessionsSkipped += 1;
|
|
444
|
+
mutable.errors.push(toCollectionError(error, "unknown", cascadeId));
|
|
445
|
+
try {
|
|
446
|
+
db.close();
|
|
447
|
+
}
|
|
448
|
+
catch {
|
|
449
|
+
// ignore
|
|
438
450
|
}
|
|
451
|
+
continue;
|
|
439
452
|
}
|
|
440
453
|
finally {
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
// ignore close errors; if busy, count as skipped
|
|
447
|
-
}
|
|
454
|
+
try {
|
|
455
|
+
db.close();
|
|
456
|
+
}
|
|
457
|
+
catch {
|
|
458
|
+
// ignore close errors; if busy, count as skipped
|
|
448
459
|
}
|
|
449
460
|
}
|
|
450
461
|
if (fileHadRows && !fileHadError) {
|
|
@@ -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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"}
|
package/dist/src/application.js
CHANGED
|
@@ -9,8 +9,11 @@ import { createNormalizedCacheStore, } from "./cache/index.js";
|
|
|
9
9
|
import { createOpenCodeAdapter, isStatsRangeMismatch, } from "./opencode/index.js";
|
|
10
10
|
/** The default is intentionally explicit so a second CLI instance is safe. */
|
|
11
11
|
export function defaultCacheDirectory() {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
if (process.env.XDG_CACHE_HOME)
|
|
13
|
+
return join(process.env.XDG_CACHE_HOME, "oc2token");
|
|
14
|
+
if (process.platform === "darwin")
|
|
15
|
+
return join(homedir(), "Library", "Caches", "oc2token");
|
|
16
|
+
return join(homedir(), ".cache", "oc2token");
|
|
14
17
|
}
|
|
15
18
|
function appendError(coverage, error) {
|
|
16
19
|
return {
|
|
@@ -46,6 +49,63 @@ function addUsageTotals(left, right) {
|
|
|
46
49
|
function emptyUsageTotals() {
|
|
47
50
|
return toUsageTotals({ input: 0, output: 0, reasoning: 0, cacheRead: 0, cacheWrite: 0 });
|
|
48
51
|
}
|
|
52
|
+
function sortBreakdowns(values) {
|
|
53
|
+
values.sort((left, right) => right.totals.recorded_total - left.totals.recorded_total || left.name.localeCompare(right.name));
|
|
54
|
+
return values;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Single source of truth for provider/model/project splits: recompute from the
|
|
58
|
+
* merged, deduplicated records in one window. Supplied per-source breakdowns
|
|
59
|
+
* describe the same records, so merging both would double-count; callers use
|
|
60
|
+
* this result when non-empty and fall back to merged supplied breakdowns only
|
|
61
|
+
* when a window has no records (e.g. a stats source with zero records but
|
|
62
|
+
* usable totals). Empty input yields empty outputs, preserving empty-source
|
|
63
|
+
* behavior.
|
|
64
|
+
*/
|
|
65
|
+
function buildBreakdowns(records, window) {
|
|
66
|
+
const windowRecords = records.filter((record) => containsInstant(window, record.createdAt));
|
|
67
|
+
if (windowRecords.length === 0)
|
|
68
|
+
return { providers: [], models: [], projects: [] };
|
|
69
|
+
const byProvider = new Map();
|
|
70
|
+
const byModel = new Map();
|
|
71
|
+
const byProject = new Map();
|
|
72
|
+
for (const record of windowRecords) {
|
|
73
|
+
const providerRecords = byProvider.get(record.provider);
|
|
74
|
+
if (providerRecords === undefined)
|
|
75
|
+
byProvider.set(record.provider, [record]);
|
|
76
|
+
else
|
|
77
|
+
providerRecords.push(record);
|
|
78
|
+
const modelRecords = byModel.get(record.model);
|
|
79
|
+
if (modelRecords === undefined)
|
|
80
|
+
byModel.set(record.model, [record]);
|
|
81
|
+
else
|
|
82
|
+
modelRecords.push(record);
|
|
83
|
+
if (record.project !== undefined && record.project.trim().length > 0) {
|
|
84
|
+
const projectRecords = byProject.get(record.project);
|
|
85
|
+
if (projectRecords === undefined)
|
|
86
|
+
byProject.set(record.project, [record]);
|
|
87
|
+
else
|
|
88
|
+
projectRecords.push(record);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const providers = [];
|
|
92
|
+
for (const [name, recs] of byProvider.entries()) {
|
|
93
|
+
providers.push({ name, provider: name, totals: sumUsageRecords(recs, window) });
|
|
94
|
+
}
|
|
95
|
+
const models = [];
|
|
96
|
+
for (const [name, recs] of byModel.entries()) {
|
|
97
|
+
models.push({ name, totals: sumUsageRecords(recs, window) });
|
|
98
|
+
}
|
|
99
|
+
const projects = [];
|
|
100
|
+
for (const [name, recs] of byProject.entries()) {
|
|
101
|
+
projects.push({ name, totals: sumUsageRecords(recs, window) });
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
providers: sortBreakdowns(providers),
|
|
105
|
+
models: sortBreakdowns(models),
|
|
106
|
+
projects: sortBreakdowns(projects),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
49
109
|
function mergeBreakdowns(values) {
|
|
50
110
|
const merged = new Map();
|
|
51
111
|
for (const value of values) {
|
|
@@ -165,9 +225,11 @@ export class HybridUsageSource {
|
|
|
165
225
|
}
|
|
166
226
|
if (!isStatsRangeMismatch(error))
|
|
167
227
|
throw error;
|
|
168
|
-
// Cache this decision for the
|
|
169
|
-
//
|
|
170
|
-
|
|
228
|
+
// Cache this decision for the live server fingerprint. A reconnect
|
|
229
|
+
// above replaces the connection, so the stale entry-time fingerprint
|
|
230
|
+
// must not be reused: re-read the current connection instead.
|
|
231
|
+
this.statsUnsupportedFingerprint = this.adapter.currentConnection?.health.fingerprint ??
|
|
232
|
+
fingerprint ?? "unknown";
|
|
171
233
|
return this.fallback(request);
|
|
172
234
|
}
|
|
173
235
|
}
|
|
@@ -370,81 +432,31 @@ export class UnifiedUsageSource {
|
|
|
370
432
|
const modelsMutable = {};
|
|
371
433
|
const projectsMutable = {};
|
|
372
434
|
for (const w of request.windows) {
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
for (const r of windowRecords) {
|
|
379
|
-
const prov = r.provider;
|
|
380
|
-
const arrP = byProvider.get(prov);
|
|
381
|
-
if (arrP === undefined)
|
|
382
|
-
byProvider.set(prov, [r]);
|
|
383
|
-
else
|
|
384
|
-
arrP.push(r);
|
|
385
|
-
const modelName = r.model;
|
|
386
|
-
const arrM = byModel.get(modelName);
|
|
387
|
-
if (arrM === undefined)
|
|
388
|
-
byModel.set(modelName, [r]);
|
|
389
|
-
else
|
|
390
|
-
arrM.push(r);
|
|
391
|
-
if (r.project !== undefined && r.project.trim().length > 0) {
|
|
392
|
-
const proj = r.project;
|
|
393
|
-
const arrJ = byProject.get(proj);
|
|
394
|
-
if (arrJ === undefined)
|
|
395
|
-
byProject.set(proj, [r]);
|
|
396
|
-
else
|
|
397
|
-
arrJ.push(r);
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
if (byProvider.size > 0) {
|
|
401
|
-
const breakdowns = [];
|
|
402
|
-
for (const [provName, recs] of byProvider.entries()) {
|
|
403
|
-
const totals = sumUsageRecords(recs, w);
|
|
404
|
-
breakdowns.push({ name: provName, provider: provName, totals });
|
|
405
|
-
}
|
|
406
|
-
breakdowns.sort((a, b) => b.totals.recorded_total - a.totals.recorded_total || a.name.localeCompare(b.name));
|
|
407
|
-
providersMutable[w.kind] = breakdowns;
|
|
408
|
-
}
|
|
409
|
-
if (byModel.size > 0) {
|
|
410
|
-
const breakdowns = [];
|
|
411
|
-
for (const [modelName, recs] of byModel.entries()) {
|
|
412
|
-
const totals = sumUsageRecords(recs, w);
|
|
413
|
-
breakdowns.push({ name: modelName, totals });
|
|
414
|
-
}
|
|
415
|
-
breakdowns.sort((a, b) => b.totals.recorded_total - a.totals.recorded_total || a.name.localeCompare(b.name));
|
|
416
|
-
modelsMutable[w.kind] = breakdowns;
|
|
417
|
-
}
|
|
418
|
-
if (byProject.size > 0) {
|
|
419
|
-
const breakdowns = [];
|
|
420
|
-
for (const [projName, recs] of byProject.entries()) {
|
|
421
|
-
const totals = sumUsageRecords(recs, w);
|
|
422
|
-
breakdowns.push({ name: projName, totals });
|
|
423
|
-
}
|
|
424
|
-
breakdowns.sort((a, b) => b.totals.recorded_total - a.totals.recorded_total || a.name.localeCompare(b.name));
|
|
425
|
-
projectsMutable[w.kind] = breakdowns;
|
|
426
|
-
}
|
|
427
|
-
}
|
|
435
|
+
// Single-source breakdowns: recomputed splits describe the same records
|
|
436
|
+
// as the supplied per-source splits, so using both would double-count.
|
|
437
|
+
// Prefer the recomputed split; fall back to merged supplied splits only
|
|
438
|
+
// when the window has no records (e.g. stats totals without records).
|
|
439
|
+
const recomputed = buildBreakdowns(records, w);
|
|
428
440
|
const suppliedProviders = successful.flatMap(({ result }) => result.providersByWindow?.[w.kind] ?? []);
|
|
429
|
-
if (
|
|
430
|
-
providersMutable[w.kind] =
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
]);
|
|
441
|
+
if (recomputed.providers.length > 0) {
|
|
442
|
+
providersMutable[w.kind] = recomputed.providers;
|
|
443
|
+
}
|
|
444
|
+
else if (suppliedProviders.length > 0) {
|
|
445
|
+
providersMutable[w.kind] = mergeBreakdowns(suppliedProviders);
|
|
434
446
|
}
|
|
435
447
|
const suppliedModels = successful.flatMap(({ result }) => result.modelsByWindow?.[w.kind] ?? []);
|
|
436
|
-
if (
|
|
437
|
-
modelsMutable[w.kind] =
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
]);
|
|
448
|
+
if (recomputed.models.length > 0) {
|
|
449
|
+
modelsMutable[w.kind] = recomputed.models;
|
|
450
|
+
}
|
|
451
|
+
else if (suppliedModels.length > 0) {
|
|
452
|
+
modelsMutable[w.kind] = mergeBreakdowns(suppliedModels);
|
|
441
453
|
}
|
|
442
454
|
const suppliedProjects = successful.flatMap(({ result }) => result.projectsByWindow?.[w.kind] ?? []);
|
|
443
|
-
if (
|
|
444
|
-
projectsMutable[w.kind] =
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
]);
|
|
455
|
+
if (recomputed.projects.length > 0) {
|
|
456
|
+
projectsMutable[w.kind] = recomputed.projects;
|
|
457
|
+
}
|
|
458
|
+
else if (suppliedProjects.length > 0) {
|
|
459
|
+
projectsMutable[w.kind] = mergeBreakdowns(suppliedProjects);
|
|
448
460
|
}
|
|
449
461
|
}
|
|
450
462
|
const providersByWindow = providersMutable;
|