hacklab 0.19.0 → 0.20.0
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 +33 -25
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +18 -19
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/scan.d.ts.map +1 -1
- package/dist/commands/scan.js +5 -2
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +32 -26
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +32 -17
- package/dist/commands/sync.js.map +1 -1
- package/dist/config.d.ts +8 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/prompt-consent.d.ts +37 -23
- package/dist/prompt-consent.d.ts.map +1 -1
- package/dist/prompt-consent.js +75 -58
- package/dist/prompt-consent.js.map +1 -1
- package/dist/prompt-stats.d.ts +116 -7
- package/dist/prompt-stats.d.ts.map +1 -1
- package/dist/prompt-stats.js +205 -25
- package/dist/prompt-stats.js.map +1 -1
- package/dist/scanners/incremental.d.ts +114 -17
- package/dist/scanners/incremental.d.ts.map +1 -1
- package/dist/scanners/incremental.js +235 -74
- package/dist/scanners/incremental.js.map +1 -1
- package/dist/scanners/index.d.ts +7 -3
- package/dist/scanners/index.d.ts.map +1 -1
- package/dist/scanners/index.js +8 -40
- package/dist/scanners/index.js.map +1 -1
- package/dist/scanners/util.d.ts +32 -15
- package/dist/scanners/util.d.ts.map +1 -1
- package/dist/scanners/util.js +10 -34
- package/dist/scanners/util.js.map +1 -1
- package/dist/sync.d.ts +3 -3
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +27 -14
- package/dist/sync.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { mkdir, open, readFile, stat, writeFile } from 'node:fs/promises';
|
|
2
2
|
import { dirname, join } from 'node:path';
|
|
3
|
+
import { addPromptToActivity, emptyPromptActivity, parsePromptLine, } from '../prompt-stats.js';
|
|
3
4
|
import { getSessionPath } from '../session.js';
|
|
4
|
-
import { claudeCodeFiles, codexDateForFile, codexFiles, codexFileTotals, grokLogFiles, hermesDbPath,
|
|
5
|
+
import { claudeCodeFiles, codexDateForFile, codexFiles, codexFileTotals, dateDaysAgo, grokLogFiles, hermesDbPath, openclawFiles, opencodeDbPath, PROMPT_ACTIVITY_DATE_CAP, PROMPT_ACTIVITY_SESSION_CAP, parseClaudeCodeLine, parseGrokLine, parseOpenclawLine, scanHermes, scanOpenCode, toDateStr, } from './index.js';
|
|
5
6
|
// The incremental half of the scanners: what `hacklab sync --tick` runs every
|
|
6
7
|
// minute instead of the full stateless re-scan the daily job does.
|
|
7
8
|
//
|
|
@@ -16,19 +17,27 @@ import { claudeCodeFiles, codexDateForFile, codexFiles, codexFileTotals, grokLog
|
|
|
16
17
|
// following disappeared) drops that harness back to a full re-read, because we
|
|
17
18
|
// don't track which file contributed which tokens. And the daily `sync --quiet`
|
|
18
19
|
// rebuilds the whole state from its full scan, so drift can never last a day.
|
|
19
|
-
export const SCAN_STATE_VERSION =
|
|
20
|
+
export const SCAN_STATE_VERSION = 2;
|
|
21
|
+
/** How long a session is kept in the state after its last prompt. */
|
|
22
|
+
export const PROMPT_SESSION_RETENTION_DAYS = 45;
|
|
23
|
+
/** How long a per-day prompt tally is kept. Matches the wire's date cap. */
|
|
24
|
+
export const PROMPT_DAILY_RETENTION_DAYS = PROMPT_ACTIVITY_DATE_CAP;
|
|
20
25
|
/** Lives next to the session file, so it honors HACKLAB_SESSION_PATH. */
|
|
21
26
|
export function scanStatePath() {
|
|
22
27
|
return join(dirname(getSessionPath()), 'scan-state.json');
|
|
23
28
|
}
|
|
24
29
|
export function emptyHarness() {
|
|
25
|
-
return { files: {}, daily: {},
|
|
30
|
+
return { files: {}, daily: {}, models: {} };
|
|
31
|
+
}
|
|
32
|
+
export function emptyPromptState() {
|
|
33
|
+
return { ...emptyPromptActivity(), dirtySessions: [], dirtyDates: [] };
|
|
26
34
|
}
|
|
27
35
|
export function emptyState() {
|
|
28
36
|
return {
|
|
29
37
|
version: SCAN_STATE_VERSION,
|
|
30
38
|
harnesses: {},
|
|
31
39
|
dirty: [],
|
|
40
|
+
prompts: emptyPromptState(),
|
|
32
41
|
uploaded: { toolTotals: {}, modelTotals: {} },
|
|
33
42
|
};
|
|
34
43
|
}
|
|
@@ -53,6 +62,7 @@ export async function loadScanState() {
|
|
|
53
62
|
if (!parsed.harnesses || typeof parsed.harnesses !== 'object')
|
|
54
63
|
return null;
|
|
55
64
|
parsed.dirty ??= [];
|
|
65
|
+
parsed.prompts ??= emptyPromptState();
|
|
56
66
|
parsed.uploaded ??= { toolTotals: {}, modelTotals: {} };
|
|
57
67
|
return parsed;
|
|
58
68
|
}
|
|
@@ -60,16 +70,34 @@ export async function loadScanState() {
|
|
|
60
70
|
return null;
|
|
61
71
|
}
|
|
62
72
|
}
|
|
63
|
-
/**
|
|
64
|
-
*
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
73
|
+
/**
|
|
74
|
+
* Drop prompt rows that have aged out, dirty or not.
|
|
75
|
+
*
|
|
76
|
+
* Dropping a dirty row means it is never uploaded, which is the right trade at
|
|
77
|
+
* this age: a session or a day that has sat unsent for its whole retention
|
|
78
|
+
* window is not coming back, and the alternative is a dirty list that grows
|
|
79
|
+
* forever on a machine that never consented (the tick still counts prompts at
|
|
80
|
+
* the `none` tier — it just never sends them).
|
|
81
|
+
*/
|
|
82
|
+
function prunePrompts(prompts) {
|
|
83
|
+
const sessionCutoff = dateDaysAgo(PROMPT_SESSION_RETENTION_DAYS);
|
|
84
|
+
for (const [id, session] of Object.entries(prompts.sessions)) {
|
|
85
|
+
if (session.lastActiveAt.slice(0, 10) < sessionCutoff) {
|
|
86
|
+
delete prompts.sessions[id];
|
|
71
87
|
}
|
|
72
88
|
}
|
|
89
|
+
const dateCutoff = dateDaysAgo(PROMPT_DAILY_RETENTION_DAYS);
|
|
90
|
+
for (const date of Object.keys(prompts.daily)) {
|
|
91
|
+
if (date < dateCutoff)
|
|
92
|
+
delete prompts.daily[date];
|
|
93
|
+
}
|
|
94
|
+
prompts.dirtySessions = prompts.dirtySessions.filter((id) => prompts.sessions[id] !== undefined);
|
|
95
|
+
prompts.dirtyDates = prompts.dirtyDates.filter((date) => prompts.daily[date] !== undefined);
|
|
96
|
+
}
|
|
97
|
+
/** Persist the state, pruning prompt rows that aged out of their retention
|
|
98
|
+
* window (they'd otherwise accumulate forever). Best-effort. */
|
|
99
|
+
export async function saveScanState(state) {
|
|
100
|
+
prunePrompts(state.prompts);
|
|
73
101
|
try {
|
|
74
102
|
await mkdir(dirname(scanStatePath()), { recursive: true });
|
|
75
103
|
await writeFile(scanStatePath(), `${JSON.stringify(state)}\n`, 'utf8');
|
|
@@ -93,20 +121,6 @@ function addDaily(h, date, model, tokens, messages, dirty) {
|
|
|
93
121
|
h.models[model] = (h.models[model] ?? 0) + tokens;
|
|
94
122
|
dirty.add(date);
|
|
95
123
|
}
|
|
96
|
-
function addHourly(h, date, hour, model, tokens, messages, dirty) {
|
|
97
|
-
if (date < hourlyCutoff())
|
|
98
|
-
return;
|
|
99
|
-
const key = `${date}|${hour}|${model}`;
|
|
100
|
-
const existing = h.hourly[key];
|
|
101
|
-
if (existing) {
|
|
102
|
-
existing.tokens += tokens;
|
|
103
|
-
existing.messages += messages;
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
h.hourly[key] = { tokens, messages };
|
|
107
|
-
}
|
|
108
|
-
dirty.add(date);
|
|
109
|
-
}
|
|
110
124
|
/** A full scanner's result as the maps the state stores. */
|
|
111
125
|
export function aggregatesOfResult(result) {
|
|
112
126
|
const daily = {};
|
|
@@ -116,21 +130,10 @@ export function aggregatesOfResult(result) {
|
|
|
116
130
|
messages: entry.messages ?? 0,
|
|
117
131
|
};
|
|
118
132
|
}
|
|
119
|
-
|
|
120
|
-
for (const entry of result.hourly) {
|
|
121
|
-
hourly[`${entry.date}|${entry.hour}|${entry.model ?? ''}`] = {
|
|
122
|
-
tokens: entry.tokens,
|
|
123
|
-
messages: entry.messages ?? 0,
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
return { daily, hourly, models: { ...result.models } };
|
|
133
|
+
return { daily, models: { ...result.models } };
|
|
127
134
|
}
|
|
128
135
|
function aggregatesOf(h) {
|
|
129
|
-
return {
|
|
130
|
-
daily: structuredClone(h.daily),
|
|
131
|
-
hourly: structuredClone(h.hourly),
|
|
132
|
-
models: { ...h.models },
|
|
133
|
-
};
|
|
136
|
+
return { daily: structuredClone(h.daily), models: { ...h.models } };
|
|
134
137
|
}
|
|
135
138
|
/**
|
|
136
139
|
* Mark every date whose rows moved between two versions of a harness's
|
|
@@ -150,15 +153,59 @@ function markMovedDates(before, after, dirty) {
|
|
|
150
153
|
}
|
|
151
154
|
};
|
|
152
155
|
compare(before.daily, after.daily);
|
|
153
|
-
compare(before.hourly, after.hourly);
|
|
154
156
|
}
|
|
155
157
|
/** Swap in freshly scanned aggregates, dirtying the dates that moved. */
|
|
156
158
|
function replaceAggregates(h, next, dirty) {
|
|
157
|
-
markMovedDates({ daily: h.daily,
|
|
159
|
+
markMovedDates({ daily: h.daily, models: h.models }, next, dirty);
|
|
158
160
|
h.daily = next.daily;
|
|
159
|
-
h.hourly = next.hourly;
|
|
160
161
|
h.models = next.models;
|
|
161
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Swap in a freshly scanned prompt aggregate, dirtying every session and date
|
|
165
|
+
* whose numbers moved. Same idea as `markMovedDates`: a daily full scan mostly
|
|
166
|
+
* reproduces what the ticks already sent, and only the difference is worth
|
|
167
|
+
* putting back on the wire.
|
|
168
|
+
*/
|
|
169
|
+
function replacePromptActivity(prompts, next) {
|
|
170
|
+
const dirtySessions = new Set(prompts.dirtySessions);
|
|
171
|
+
for (const id of new Set([
|
|
172
|
+
...Object.keys(prompts.sessions),
|
|
173
|
+
...Object.keys(next.sessions),
|
|
174
|
+
])) {
|
|
175
|
+
const before = prompts.sessions[id];
|
|
176
|
+
const after = next.sessions[id];
|
|
177
|
+
if (!after)
|
|
178
|
+
continue;
|
|
179
|
+
if (!before ||
|
|
180
|
+
before.promptCount !== after.promptCount ||
|
|
181
|
+
before.startedAt !== after.startedAt ||
|
|
182
|
+
before.lastActiveAt !== after.lastActiveAt) {
|
|
183
|
+
dirtySessions.add(id);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
const dirtyDates = new Set(prompts.dirtyDates);
|
|
187
|
+
for (const date of new Set([
|
|
188
|
+
...Object.keys(prompts.daily),
|
|
189
|
+
...Object.keys(next.daily),
|
|
190
|
+
])) {
|
|
191
|
+
const before = prompts.daily[date];
|
|
192
|
+
const after = next.daily[date];
|
|
193
|
+
if (!after)
|
|
194
|
+
continue;
|
|
195
|
+
if (!before ||
|
|
196
|
+
before.prompts !== after.prompts ||
|
|
197
|
+
before.words !== after.words) {
|
|
198
|
+
dirtyDates.add(date);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
prompts.sessions = next.sessions;
|
|
202
|
+
prompts.daily = next.daily;
|
|
203
|
+
// A session or date the full scan can no longer see has nothing left to say.
|
|
204
|
+
prompts.dirtySessions = [...dirtySessions].filter((id) => next.sessions[id] !== undefined);
|
|
205
|
+
prompts.dirtyDates = [...dirtyDates]
|
|
206
|
+
.filter((date) => next.daily[date] !== undefined)
|
|
207
|
+
.sort();
|
|
208
|
+
}
|
|
162
209
|
// ---- reading the tail ------------------------------------------------------
|
|
163
210
|
async function statOrNull(path) {
|
|
164
211
|
try {
|
|
@@ -202,6 +249,7 @@ export function defaultSources() {
|
|
|
202
249
|
tool: 'claude_code',
|
|
203
250
|
files: claudeCodeFiles,
|
|
204
251
|
parse: parseClaudeCodeLine,
|
|
252
|
+
parsePrompt: parsePromptLine,
|
|
205
253
|
},
|
|
206
254
|
{ tool: 'openclaw', files: openclawFiles, parse: parseOpenclawLine },
|
|
207
255
|
{ tool: 'grok', files: grokLogFiles, parse: parseGrokLine },
|
|
@@ -241,7 +289,6 @@ function resetHarness(h) {
|
|
|
241
289
|
if (h.codexTotals)
|
|
242
290
|
h.codexTotals = {};
|
|
243
291
|
h.daily = {};
|
|
244
|
-
h.hourly = {};
|
|
245
292
|
h.models = {};
|
|
246
293
|
}
|
|
247
294
|
async function tickJsonl(state, src, dirty) {
|
|
@@ -255,6 +302,14 @@ async function tickJsonl(state, src, dirty) {
|
|
|
255
302
|
const target = invalidated ? new Set() : dirty;
|
|
256
303
|
if (invalidated)
|
|
257
304
|
resetHarness(h);
|
|
305
|
+
// Same story for prompts: a re-read has to rebuild the aggregate from
|
|
306
|
+
// scratch, or every session in it would be counted twice.
|
|
307
|
+
const rebuildPrompts = invalidated && src.parsePrompt !== undefined;
|
|
308
|
+
const prompts = rebuildPrompts
|
|
309
|
+
? emptyPromptActivity()
|
|
310
|
+
: state.prompts;
|
|
311
|
+
const dirtySessions = new Set(state.prompts.dirtySessions);
|
|
312
|
+
const dirtyDates = new Set(state.prompts.dirtyDates);
|
|
258
313
|
let changed = invalidated;
|
|
259
314
|
for (const file of files) {
|
|
260
315
|
const prev = h.files[file.path];
|
|
@@ -265,6 +320,12 @@ async function tickJsonl(state, src, dirty) {
|
|
|
265
320
|
const { text, offset } = await readCompleteLines(file.path, from, file.size).catch(() => ({ text: '', offset: from }));
|
|
266
321
|
let fallbackDate = null;
|
|
267
322
|
for (const line of text.split('\n')) {
|
|
323
|
+
const prompt = src.parsePrompt?.(line);
|
|
324
|
+
if (prompt) {
|
|
325
|
+
const touched = addPromptToActivity(prompts, prompt);
|
|
326
|
+
dirtySessions.add(touched.sessionId);
|
|
327
|
+
dirtyDates.add(touched.date);
|
|
328
|
+
}
|
|
268
329
|
const usage = src.parse(line);
|
|
269
330
|
if (!usage)
|
|
270
331
|
continue;
|
|
@@ -274,15 +335,20 @@ async function tickJsonl(state, src, dirty) {
|
|
|
274
335
|
date = fallbackDate;
|
|
275
336
|
}
|
|
276
337
|
addDaily(h, date, usage.model, usage.tokens, 1, target);
|
|
277
|
-
if (usage.hour !== null) {
|
|
278
|
-
addHourly(h, date, usage.hour, usage.model, usage.tokens, 1, target);
|
|
279
|
-
}
|
|
280
338
|
}
|
|
281
339
|
h.files[file.path] = { size: file.size, mtimeMs: file.mtimeMs, offset };
|
|
282
340
|
changed = true;
|
|
283
341
|
}
|
|
284
342
|
if (before)
|
|
285
343
|
markMovedDates(before, aggregatesOf(h), dirty);
|
|
344
|
+
if (rebuildPrompts) {
|
|
345
|
+
// The rebuilt aggregate replaces the old one, dirtying only what moved.
|
|
346
|
+
replacePromptActivity(state.prompts, prompts);
|
|
347
|
+
}
|
|
348
|
+
else if (src.parsePrompt) {
|
|
349
|
+
state.prompts.dirtySessions = [...dirtySessions];
|
|
350
|
+
state.prompts.dirtyDates = [...dirtyDates].sort();
|
|
351
|
+
}
|
|
286
352
|
return changed;
|
|
287
353
|
}
|
|
288
354
|
async function tickCodex(state, src, dirty) {
|
|
@@ -347,10 +413,15 @@ async function tickSqlite(state, src, dirty) {
|
|
|
347
413
|
}
|
|
348
414
|
/**
|
|
349
415
|
* One incremental pass over every harness. `prev` is the saved state, or null
|
|
350
|
-
* for a cold start — in which case this reads everything and marks
|
|
351
|
-
* dirty: those tokens are already on the server (the daily job put them
|
|
352
|
-
* and re-uploading every date would only invite the reconcile to prune
|
|
353
|
-
* this scan can't see (Cursor's, above all).
|
|
416
|
+
* for a cold start — in which case this reads everything and marks no *token*
|
|
417
|
+
* date dirty: those tokens are already on the server (the daily job put them
|
|
418
|
+
* there), and re-uploading every date would only invite the reconcile to prune
|
|
419
|
+
* rows this scan can't see (Cursor's, above all).
|
|
420
|
+
*
|
|
421
|
+
* Prompt rows go the other way on a cold start: everything found is marked
|
|
422
|
+
* dirty. They're idempotent GREATEST upserts, so a resend costs nothing, and a
|
|
423
|
+
* cold start (fresh install, or a state file this version can't read) is
|
|
424
|
+
* exactly the case where we have no evidence any of it ever reached the server.
|
|
354
425
|
*/
|
|
355
426
|
export async function runTick(prev, sources = defaultSources()) {
|
|
356
427
|
const cold = prev === null;
|
|
@@ -367,7 +438,14 @@ export async function runTick(prev, sources = defaultSources()) {
|
|
|
367
438
|
if (await tickSqlite(state, src, dirty))
|
|
368
439
|
changed = true;
|
|
369
440
|
}
|
|
370
|
-
|
|
441
|
+
if (cold) {
|
|
442
|
+
state.dirty = [];
|
|
443
|
+
state.prompts.dirtySessions = Object.keys(state.prompts.sessions);
|
|
444
|
+
state.prompts.dirtyDates = Object.keys(state.prompts.daily).sort();
|
|
445
|
+
}
|
|
446
|
+
else {
|
|
447
|
+
state.dirty = [...dirty].sort();
|
|
448
|
+
}
|
|
371
449
|
return { state, changed };
|
|
372
450
|
}
|
|
373
451
|
// ---- payload ---------------------------------------------------------------
|
|
@@ -393,10 +471,52 @@ export function sameTotals(a, b) {
|
|
|
393
471
|
return false;
|
|
394
472
|
return true;
|
|
395
473
|
}
|
|
474
|
+
/**
|
|
475
|
+
* Is there prompt activity waiting to go out?
|
|
476
|
+
*
|
|
477
|
+
* A dirty id whose row is gone (pruned between the mark and the send) doesn't
|
|
478
|
+
* count: it would have the tick POST an empty block every minute forever, since
|
|
479
|
+
* there'd be nothing for `markUploaded` to clear.
|
|
480
|
+
*/
|
|
481
|
+
export function hasPromptActivity(state) {
|
|
482
|
+
const { prompts } = state;
|
|
483
|
+
return (prompts.dirtySessions.some((id) => prompts.sessions[id] !== undefined) ||
|
|
484
|
+
prompts.dirtyDates.some((date) => prompts.daily[date] !== undefined));
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Stake a claim on the outstanding prompt rows: the ones this payload carries
|
|
488
|
+
* are recorded in `prompts.sent`, and `markUploaded` clears exactly those. Rows
|
|
489
|
+
* a cap held back stay dirty and go out next tick.
|
|
490
|
+
*
|
|
491
|
+
* Most-recently-active first, so a machine with a long backlog syncs the work
|
|
492
|
+
* the user actually cares about before the archaeology.
|
|
493
|
+
*/
|
|
494
|
+
function takePromptActivity(state) {
|
|
495
|
+
const { prompts } = state;
|
|
496
|
+
const sessions = prompts.dirtySessions
|
|
497
|
+
.flatMap((sessionId) => {
|
|
498
|
+
const session = prompts.sessions[sessionId];
|
|
499
|
+
return session ? [{ sessionId, ...session }] : [];
|
|
500
|
+
})
|
|
501
|
+
.sort((a, b) => b.lastActiveAt.localeCompare(a.lastActiveAt))
|
|
502
|
+
.slice(0, PROMPT_ACTIVITY_SESSION_CAP);
|
|
503
|
+
const dates = [...prompts.dirtyDates]
|
|
504
|
+
.sort((a, b) => b.localeCompare(a))
|
|
505
|
+
.slice(0, PROMPT_ACTIVITY_DATE_CAP);
|
|
506
|
+
const dailyPrompts = dates.flatMap((date) => {
|
|
507
|
+
const day = prompts.daily[date];
|
|
508
|
+
return day ? [{ date, ...day }] : [];
|
|
509
|
+
});
|
|
510
|
+
prompts.sent = { sessions: sessions.map((s) => s.sessionId), dates };
|
|
511
|
+
if (sessions.length === 0 && dailyPrompts.length === 0)
|
|
512
|
+
return undefined;
|
|
513
|
+
return { sessions, dailyPrompts };
|
|
514
|
+
}
|
|
396
515
|
/**
|
|
397
516
|
* What a tick uploads: cumulative tool/model totals (the server diffs those
|
|
398
|
-
* against its own per-machine snapshot) plus the daily
|
|
399
|
-
*
|
|
517
|
+
* against its own per-machine snapshot) plus the daily rows for the dirty dates
|
|
518
|
+
* only, and — under the `stats` or `full` tier — the outstanding prompt
|
|
519
|
+
* activity.
|
|
400
520
|
*
|
|
401
521
|
* Every harness's rows go out for a dirty date, including Cursor's — which the
|
|
402
522
|
* tick never scans, and carries over from the last full scan instead. The
|
|
@@ -404,10 +524,9 @@ export function sameTotals(a, b) {
|
|
|
404
524
|
* payload didn't mention, so a date has to be reported complete or the harnesses
|
|
405
525
|
* left out of it lose that day.
|
|
406
526
|
*/
|
|
407
|
-
export function tickPayload(state) {
|
|
527
|
+
export function tickPayload(state, opts = {}) {
|
|
408
528
|
const dirty = new Set(state.dirty);
|
|
409
529
|
const dailyTotals = [];
|
|
410
|
-
const hourlyTotals = [];
|
|
411
530
|
for (const [tool, h] of Object.entries(state.harnesses)) {
|
|
412
531
|
for (const [key, value] of Object.entries(h.daily)) {
|
|
413
532
|
const [date = '', model = ''] = key.split('|');
|
|
@@ -421,34 +540,36 @@ export function tickPayload(state) {
|
|
|
421
540
|
model: model || undefined,
|
|
422
541
|
});
|
|
423
542
|
}
|
|
424
|
-
for (const [key, value] of Object.entries(h.hourly)) {
|
|
425
|
-
const [date = '', hour = '0', model = ''] = key.split('|');
|
|
426
|
-
if (!dirty.has(date) || value.tokens <= 0)
|
|
427
|
-
continue;
|
|
428
|
-
hourlyTotals.push({
|
|
429
|
-
date,
|
|
430
|
-
hour: Number(hour),
|
|
431
|
-
tool,
|
|
432
|
-
model: model || undefined,
|
|
433
|
-
tokens: value.tokens,
|
|
434
|
-
messages: value.messages,
|
|
435
|
-
});
|
|
436
|
-
}
|
|
437
543
|
}
|
|
544
|
+
// Claim the prompt rows this payload carries, or drop a claim a previous
|
|
545
|
+
// payload left behind: a stale one would have `markUploaded` clear rows this
|
|
546
|
+
// upload never mentioned (a tier turned down to `none` between two ticks).
|
|
547
|
+
state.prompts.sent = undefined;
|
|
548
|
+
const promptActivity = opts.promptActivity
|
|
549
|
+
? takePromptActivity(state)
|
|
550
|
+
: undefined;
|
|
438
551
|
const { toolTotals, modelTotals } = cumulativeTotals(state);
|
|
439
552
|
return {
|
|
440
553
|
toolTotals,
|
|
441
554
|
dailyTotals,
|
|
442
|
-
hourlyTotals,
|
|
443
555
|
modelTotals,
|
|
444
556
|
grandTotal: Object.values(toolTotals).reduce((a, b) => a + b, 0),
|
|
445
557
|
cursorStats: null,
|
|
446
558
|
cursorScanStatus: { source: 'none' },
|
|
559
|
+
...(promptActivity ? { promptActivity } : {}),
|
|
447
560
|
};
|
|
448
561
|
}
|
|
449
|
-
/** Called on a 200:
|
|
562
|
+
/** Called on a 200: whatever that payload carried is on the server now. */
|
|
450
563
|
export function markUploaded(state) {
|
|
451
564
|
state.dirty = [];
|
|
565
|
+
const sent = state.prompts.sent;
|
|
566
|
+
if (sent) {
|
|
567
|
+
const sessions = new Set(sent.sessions);
|
|
568
|
+
const dates = new Set(sent.dates);
|
|
569
|
+
state.prompts.dirtySessions = state.prompts.dirtySessions.filter((id) => !sessions.has(id));
|
|
570
|
+
state.prompts.dirtyDates = state.prompts.dirtyDates.filter((date) => !dates.has(date));
|
|
571
|
+
state.prompts.sent = undefined;
|
|
572
|
+
}
|
|
452
573
|
state.uploaded = cumulativeTotals(state);
|
|
453
574
|
state.lastError = undefined;
|
|
454
575
|
state.nextAllowedAt = undefined;
|
|
@@ -471,11 +592,36 @@ async function snapshotFileCursors(h, paths) {
|
|
|
471
592
|
* the design. Whatever the tick's tail-follow got wrong (a rotated log, a
|
|
472
593
|
* mid-file model switch, a Codex date guessed from an mtime) is corrected here,
|
|
473
594
|
* so incremental drift can never outlive a day. Best-effort: a state we failed
|
|
474
|
-
* to rebuild costs a tick, never the sync that
|
|
595
|
+
* to rebuild costs a tick, never the sync that called us.
|
|
596
|
+
*
|
|
597
|
+
* Staged rather than persisted outright, because the full-scan paths carry
|
|
598
|
+
* prompt activity too — a machine with no daemon has no tick to drain it. The
|
|
599
|
+
* rebuild diffs the scan's aggregate against what was already sent, claims the
|
|
600
|
+
* difference for this upload, and only `commit` (on a 200) clears it. A failed
|
|
601
|
+
* POST therefore leaves every row dirty for the next run, which the server's
|
|
602
|
+
* GREATEST upserts make free to resend.
|
|
603
|
+
*
|
|
604
|
+
* `prompts` says whether this caller has any authority over the prompt state —
|
|
605
|
+
* see `StagedPrompts`. Only a caller that actually resolved the consent tier
|
|
606
|
+
* gets to rewrite it, and only such a caller claims prompt rows for the upload.
|
|
475
607
|
*/
|
|
476
|
-
export async function
|
|
608
|
+
export async function stageFullScan(results, prompts = 'untouched', sources = defaultSources()) {
|
|
609
|
+
const nothingStaged = {
|
|
610
|
+
commit: async () => {
|
|
611
|
+
// Nothing was staged, so there is nothing to record as delivered.
|
|
612
|
+
},
|
|
613
|
+
};
|
|
477
614
|
try {
|
|
615
|
+
const previous = await loadScanState();
|
|
478
616
|
const state = emptyState();
|
|
617
|
+
state.prompts = previous?.prompts ?? emptyPromptState();
|
|
618
|
+
// Nothing is claimed as in-flight any more: whatever the last upload sent
|
|
619
|
+
// was either acked (and cleared) or lost. A caller with authority re-derives
|
|
620
|
+
// the claim below; one without leaves the rows dirty for the tick.
|
|
621
|
+
state.prompts.sent = undefined;
|
|
622
|
+
if (prompts !== 'untouched') {
|
|
623
|
+
replacePromptActivity(state.prompts, prompts.scanned ?? emptyPromptActivity());
|
|
624
|
+
}
|
|
479
625
|
for (const result of results) {
|
|
480
626
|
replaceAggregates(harness(state, result.tool), aggregatesOfResult(result), new Set());
|
|
481
627
|
}
|
|
@@ -509,12 +655,27 @@ export async function rebuildScanState(results, sources = defaultSources()) {
|
|
|
509
655
|
h.dbMtimeMs = (await statOrNull(path))?.mtimeMs ?? 0;
|
|
510
656
|
h.walMtimeMs = (await statOrNull(`${path}-wal`))?.mtimeMs ?? 0;
|
|
511
657
|
}
|
|
512
|
-
//
|
|
513
|
-
|
|
514
|
-
|
|
658
|
+
// Only a caller that knows the tier may put prompt rows on the wire. For
|
|
659
|
+
// anyone else `sent` stays empty, so `commit` clears no prompt rows either.
|
|
660
|
+
const claimed = prompts === 'untouched' ? undefined : takePromptActivity(state);
|
|
661
|
+
return {
|
|
662
|
+
...(claimed ? { promptActivity: claimed } : {}),
|
|
663
|
+
commit: async () => {
|
|
664
|
+
try {
|
|
665
|
+
// The full token payload just went out, and the server took the
|
|
666
|
+
// prompt rows this upload claimed — markUploaded records both.
|
|
667
|
+
markUploaded(state);
|
|
668
|
+
await saveScanState(state);
|
|
669
|
+
}
|
|
670
|
+
catch {
|
|
671
|
+
// never fail the sync that called us
|
|
672
|
+
}
|
|
673
|
+
},
|
|
674
|
+
};
|
|
515
675
|
}
|
|
516
676
|
catch {
|
|
517
677
|
// never fail the sync that called us
|
|
678
|
+
return nothingStaged;
|
|
518
679
|
}
|
|
519
680
|
}
|
|
520
681
|
//# sourceMappingURL=incremental.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incremental.js","sourceRoot":"","sources":["../../src/scanners/incremental.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"incremental.js","sourceRoot":"","sources":["../../src/scanners/incremental.ts"],"names":[],"mappings":"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"}
|
package/dist/scanners/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type CursorScanStatus, type CursorStats, type DailyToolEntry, type
|
|
1
|
+
import { type CursorScanStatus, type CursorStats, type DailyToolEntry, type PromptActivity, type ScanResult } from './util.js';
|
|
2
2
|
export * from './util.js';
|
|
3
3
|
export declare function claudeProjectsDir(): string;
|
|
4
4
|
export declare function codexSessionsDir(): string;
|
|
@@ -24,7 +24,6 @@ export type UsageLine = {
|
|
|
24
24
|
tokens: number;
|
|
25
25
|
model: string;
|
|
26
26
|
date: string | null;
|
|
27
|
-
hour: number | null;
|
|
28
27
|
};
|
|
29
28
|
export declare function parseClaudeCodeLine(line: string): UsageLine | null;
|
|
30
29
|
/** Every Claude Code transcript on this machine. */
|
|
@@ -85,10 +84,15 @@ export declare function scanCursorApi(): Promise<ScanResult>;
|
|
|
85
84
|
export type AggregateScan = {
|
|
86
85
|
toolTotals: Record<string, number>;
|
|
87
86
|
dailyTotals: DailyToolEntry[];
|
|
88
|
-
hourlyTotals: HourlyEntry[];
|
|
89
87
|
modelTotals: Record<string, number>;
|
|
90
88
|
/** Per-tool model breakdown. Optional on older incremental payloads. */
|
|
91
89
|
modelsByTool?: Record<string, Record<string, number>>;
|
|
90
|
+
/**
|
|
91
|
+
* Prompt metadata, filled in by the tick under the `stats`/`full` tier of
|
|
92
|
+
* `promptSync`. Absent at `none`, and absent on a full scan — which has no
|
|
93
|
+
* incremental dirty set to drain.
|
|
94
|
+
*/
|
|
95
|
+
promptActivity?: PromptActivity;
|
|
92
96
|
grandTotal: number;
|
|
93
97
|
cursorStats: CursorStats | null;
|
|
94
98
|
cursorScanStatus: CursorScanStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanners/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAGnB,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanners/index.ts"],"names":[],"mappings":"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"}
|