@dsiloed/silo-link 1.19.22 → 1.19.23
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 +4 -0
- package/dist/api/dsiloed-client.d.ts +9 -0
- package/dist/api/dsiloed-client.d.ts.map +1 -1
- package/dist/api/dsiloed-client.js +33 -1
- package/dist/api/dsiloed-client.js.map +1 -1
- package/dist/core/base-tmux-launcher.d.ts +22 -6
- package/dist/core/base-tmux-launcher.d.ts.map +1 -1
- package/dist/core/base-tmux-launcher.js +67 -19
- package/dist/core/base-tmux-launcher.js.map +1 -1
- package/dist/core/bridge.d.ts.map +1 -1
- package/dist/core/bridge.js +1 -0
- package/dist/core/bridge.js.map +1 -1
- package/dist/core/claude-launcher.d.ts +2 -6
- package/dist/core/claude-launcher.d.ts.map +1 -1
- package/dist/core/claude-launcher.js +9 -15
- package/dist/core/claude-launcher.js.map +1 -1
- package/dist/core/codex-launcher.d.ts +2 -6
- package/dist/core/codex-launcher.d.ts.map +1 -1
- package/dist/core/codex-launcher.js +13 -26
- package/dist/core/codex-launcher.js.map +1 -1
- package/dist/core/gemini-launcher.d.ts +2 -6
- package/dist/core/gemini-launcher.d.ts.map +1 -1
- package/dist/core/gemini-launcher.js +7 -20
- package/dist/core/gemini-launcher.js.map +1 -1
- package/dist/core/health-monitor.d.ts +13 -0
- package/dist/core/health-monitor.d.ts.map +1 -1
- package/dist/core/health-monitor.js +17 -0
- package/dist/core/health-monitor.js.map +1 -1
- package/dist/core/report-usage.d.ts +2 -2
- package/dist/core/report-usage.d.ts.map +1 -1
- package/dist/core/report-usage.js +7 -20
- package/dist/core/report-usage.js.map +1 -1
- package/dist/core/transcript-usage.d.ts +54 -10
- package/dist/core/transcript-usage.d.ts.map +1 -1
- package/dist/core/transcript-usage.js +139 -25
- package/dist/core/transcript-usage.js.map +1 -1
- package/dist/core/usage-ledger.d.ts +5 -0
- package/dist/core/usage-ledger.d.ts.map +1 -1
- package/dist/core/usage-ledger.js.map +1 -1
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-launcher.js","sourceRoot":"","sources":["../../src/core/codex-launcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOlC,OAAO,EAAE,gBAAgB,EAAuB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EACL,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"codex-launcher.js","sourceRoot":"","sources":["../../src/core/codex-launcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import type { DSiloedClient } from '../api/dsiloed-client.js';
|
|
|
5
5
|
import type { WorkspaceManager } from './workspace-manager.js';
|
|
6
6
|
import type { UsageLedger } from './usage-ledger.js';
|
|
7
7
|
import { BaseTmuxLauncher, type LaunchIdentity } from './base-tmux-launcher.js';
|
|
8
|
-
import { type
|
|
8
|
+
import { type ExtractedTranscriptUsage } from './transcript-usage.js';
|
|
9
9
|
/**
|
|
10
10
|
* Gemini CLI implementation of the AgentLauncher interface.
|
|
11
11
|
*
|
|
@@ -33,11 +33,7 @@ export declare class GeminiLauncher extends BaseTmuxLauncher {
|
|
|
33
33
|
protected getCliType(): string;
|
|
34
34
|
protected getLogTag(): string;
|
|
35
35
|
protected getCostMetadataKey(): string;
|
|
36
|
-
protected extractTranscriptUsage(cwd: string, cliSessionId?: string | null):
|
|
37
|
-
cli_type: string;
|
|
38
|
-
cost_basis: 'real' | 'imputed';
|
|
39
|
-
usage: UsageEntry[];
|
|
40
|
-
} | null;
|
|
36
|
+
protected extractTranscriptUsage(cwd: string, cliSessionId?: string | null, notBefore?: Date): ExtractedTranscriptUsage | null;
|
|
41
37
|
/**
|
|
42
38
|
* Detect Gemini's session id for a worker in `cwd`. Gemini stores the id in
|
|
43
39
|
* the chat transcript's header line (`{ "sessionId": "<id>", ... }`) under
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-launcher.d.ts","sourceRoot":"","sources":["../../src/core/gemini-launcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,
|
|
1
|
+
{"version":3,"file":"gemini-launcher.d.ts","sourceRoot":"","sources":["../../src/core/gemini-launcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAGmC,KAAK,wBAAwB,EACtE,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;gBAEhD,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,cAAc,EAC9B,aAAa,CAAC,EAAE,aAAa,EAC7B,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,WAAW,CAAC,EAAE,WAAW;IAO3B,SAAS,CAAC,UAAU,IAAI,MAAM;IAI9B,SAAS,CAAC,OAAO,IAAI,MAAM,EAAE;IAI7B,SAAS,CAAC,iBAAiB,IAAI,MAAM,EAAE;IAIvC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;cAI9B,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA+EpH,SAAS,CAAC,YAAY,IAAI,OAAO;IAKjC,SAAS,CAAC,mBAAmB,IAAI,MAAM;IAgBvC,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAI5C,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAIpC,SAAS,CAAC,kBAAkB,IAAI,MAAM;IAItC,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAIhD,SAAS,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO/C,SAAS,CAAC,aAAa,IAAI,MAAM;IAIjC,SAAS,CAAC,UAAU,IAAI,MAAM;IAI9B,SAAS,CAAC,SAAS,IAAI,MAAM;IAI7B,SAAS,CAAC,kBAAkB,IAAI,MAAM;cAOnB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,IAAI,GAAG,wBAAwB,GAAG,IAAI;IAIvI;;;;;;;;;;OAUG;cACgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI;IAiB/E,SAAS,CAAC,iBAAiB,CACzB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,GACvB;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE;IA2C1C;;;;;OAKG;IACH,OAAO,CAAC,0BAA0B;IA0BlC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;CAK7B"}
|
|
@@ -2,7 +2,7 @@ import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'node:fs';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
import { BaseTmuxLauncher } from './base-tmux-launcher.js';
|
|
5
|
-
import { locateGeminiTranscript,
|
|
5
|
+
import { locateGeminiTranscript, geminiTranscriptSessionId, isResumableGeminiTranscript, transcriptTouchedSince, extractTranscriptUsage as extractUsage, } from './transcript-usage.js';
|
|
6
6
|
/**
|
|
7
7
|
* Gemini CLI implementation of the AgentLauncher interface.
|
|
8
8
|
*
|
|
@@ -21,7 +21,7 @@ export class GeminiLauncher extends BaseTmuxLauncher {
|
|
|
21
21
|
return this.config.gemini_command || 'gemini';
|
|
22
22
|
}
|
|
23
23
|
getArgs() {
|
|
24
|
-
return ['--yolo'];
|
|
24
|
+
return ['--yolo', ...this.modelArgs(this.config.gemini_model)];
|
|
25
25
|
}
|
|
26
26
|
getReadyIndicator() {
|
|
27
27
|
return ['Type your message', 'Using:', 'YOLO mode'];
|
|
@@ -152,16 +152,10 @@ export class GeminiLauncher extends BaseTmuxLauncher {
|
|
|
152
152
|
return 'gemini_session_cost_usd';
|
|
153
153
|
}
|
|
154
154
|
// Token-level usage from the Gemini chat transcript on disk, located by the
|
|
155
|
-
// launch cwd (-> project slug) + the
|
|
156
|
-
// the live Gemini auth mode (API key = real $, OAuth = imputed).
|
|
157
|
-
extractTranscriptUsage(cwd, cliSessionId) {
|
|
158
|
-
|
|
159
|
-
if (!transcriptPath)
|
|
160
|
-
return null;
|
|
161
|
-
const usage = parseGeminiTranscript(readFileSync(transcriptPath, 'utf-8'));
|
|
162
|
-
if (usage.length === 0)
|
|
163
|
-
return null;
|
|
164
|
-
return { cli_type: 'gemini', cost_basis: geminiCostBasis(), usage };
|
|
155
|
+
// launch cwd (-> project slug) + the session id (ONLY that file when known).
|
|
156
|
+
// cost_basis reflects the live Gemini auth mode (API key = real $, OAuth = imputed).
|
|
157
|
+
extractTranscriptUsage(cwd, cliSessionId, notBefore) {
|
|
158
|
+
return extractUsage('gemini', cwd, cliSessionId ?? null, notBefore);
|
|
165
159
|
}
|
|
166
160
|
/**
|
|
167
161
|
* Detect Gemini's session id for a worker in `cwd`. Gemini stores the id in
|
|
@@ -189,14 +183,7 @@ export class GeminiLauncher extends BaseTmuxLauncher {
|
|
|
189
183
|
console.warn(`[GeminiLauncher] Skipping resume capture — transcript ${transcriptPath} has no resumable turns yet (stub/warm-up).`);
|
|
190
184
|
return null;
|
|
191
185
|
}
|
|
192
|
-
|
|
193
|
-
const firstLine = readFileSync(transcriptPath, 'utf8').split('\n', 1)[0];
|
|
194
|
-
const id = JSON.parse(firstLine).sessionId;
|
|
195
|
-
return typeof id === 'string' && id ? id : null;
|
|
196
|
-
}
|
|
197
|
-
catch {
|
|
198
|
-
return null;
|
|
199
|
-
}
|
|
186
|
+
return geminiTranscriptSessionId(transcriptPath);
|
|
200
187
|
}
|
|
201
188
|
buildLaunchPrompt(reason, conversationId, agentContext, workspaceContext) {
|
|
202
189
|
const extraArgs = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-launcher.js","sourceRoot":"","sources":["../../src/core/gemini-launcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOlC,OAAO,EAAE,gBAAgB,EAAuB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EACL,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"gemini-launcher.js","sourceRoot":"","sources":["../../src/core/gemini-launcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,13 @@ export interface HealthSnapshot {
|
|
|
25
25
|
unsettled: number;
|
|
26
26
|
oldest: string | null;
|
|
27
27
|
};
|
|
28
|
+
usage_skipped: {
|
|
29
|
+
last_at: string | null;
|
|
30
|
+
entries: Array<{
|
|
31
|
+
model: string;
|
|
32
|
+
reason: string;
|
|
33
|
+
}>;
|
|
34
|
+
};
|
|
28
35
|
sessions: {
|
|
29
36
|
recycles_24h: number;
|
|
30
37
|
reaped_at_boot: number;
|
|
@@ -61,6 +68,7 @@ export declare class HealthMonitor {
|
|
|
61
68
|
private reapedAtBoot;
|
|
62
69
|
private launchFailure;
|
|
63
70
|
private resumeCaptures;
|
|
71
|
+
private usageSkips;
|
|
64
72
|
private updater;
|
|
65
73
|
private hourly;
|
|
66
74
|
attach(feeds: HealthFeeds): void;
|
|
@@ -71,6 +79,11 @@ export declare class HealthMonitor {
|
|
|
71
79
|
/** Record a session-launch failure (scrubbed short message) for the health block. */
|
|
72
80
|
noteLaunchFailure(error: string, now?: number): void;
|
|
73
81
|
noteResumeCapture(now?: number): void;
|
|
82
|
+
/** Record report_usage entries the server skipped (not priced, not recorded). */
|
|
83
|
+
noteUsageSkipped(entries: Array<{
|
|
84
|
+
model: string;
|
|
85
|
+
reason: string;
|
|
86
|
+
}>, now?: number): void;
|
|
74
87
|
setUpdater(patch: Partial<{
|
|
75
88
|
state: UpdaterState;
|
|
76
89
|
latest: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health-monitor.d.ts","sourceRoot":"","sources":["../../src/core/health-monitor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc;IAC7B,mBAAmB,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE;QAAE,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;QAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACpG,OAAO,EAAE,qBAAqB,CAAC;IAC/B,YAAY,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"health-monitor.d.ts","sourceRoot":"","sources":["../../src/core/health-monitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { decodeJwtExpMs } from '../config/jwt-generator.js';
|
|
2
2
|
import { getFileLogStatus } from '../cli/file-log.js';
|
|
3
3
|
const HOUR_MS = 60 * 60 * 1000;
|
|
4
|
+
const DAY_MS = 24 * HOUR_MS;
|
|
5
|
+
// Keeps the heartbeat health payload small (< 2 KB).
|
|
6
|
+
const MAX_USAGE_SKIPS = 5;
|
|
4
7
|
export class HealthMonitor {
|
|
5
8
|
feeds = {};
|
|
6
9
|
credentialsPresent = null;
|
|
@@ -9,6 +12,7 @@ export class HealthMonitor {
|
|
|
9
12
|
reapedAtBoot = 0;
|
|
10
13
|
launchFailure = null;
|
|
11
14
|
resumeCaptures = [];
|
|
15
|
+
usageSkips = [];
|
|
12
16
|
updater = { state: 'unknown', latest: null, pinned: null };
|
|
13
17
|
hourly = null;
|
|
14
18
|
attach(feeds) {
|
|
@@ -27,6 +31,14 @@ export class HealthMonitor {
|
|
|
27
31
|
this.resumeCaptures.push(now);
|
|
28
32
|
this.resumeCaptures = this.resumeCaptures.filter(t => now - t < HOUR_MS);
|
|
29
33
|
}
|
|
34
|
+
/** Record report_usage entries the server skipped (not priced, not recorded). */
|
|
35
|
+
noteUsageSkipped(entries, now = Date.now()) {
|
|
36
|
+
for (const e of entries) {
|
|
37
|
+
this.usageSkips = this.usageSkips.filter(s => !(s.model === e.model && s.reason === e.reason));
|
|
38
|
+
this.usageSkips.unshift({ model: e.model, reason: e.reason, at: now });
|
|
39
|
+
}
|
|
40
|
+
this.usageSkips = this.usageSkips.slice(0, MAX_USAGE_SKIPS);
|
|
41
|
+
}
|
|
30
42
|
setUpdater(patch) {
|
|
31
43
|
this.updater = { ...this.updater, ...patch };
|
|
32
44
|
}
|
|
@@ -44,6 +56,7 @@ export class HealthMonitor {
|
|
|
44
56
|
const jwtExp = decodeJwtExpMs(safe(this.feeds.jwt, undefined));
|
|
45
57
|
const log = safe(this.feeds.log ?? getFileLogStatus, null);
|
|
46
58
|
this.resumeCaptures = this.resumeCaptures.filter(t => now - t < HOUR_MS);
|
|
59
|
+
this.usageSkips = this.usageSkips.filter(s => now - s.at < DAY_MS);
|
|
47
60
|
return {
|
|
48
61
|
credentials_present: this.credentialsPresent,
|
|
49
62
|
claude_resolved: this.claudeResolved,
|
|
@@ -54,6 +67,10 @@ export class HealthMonitor {
|
|
|
54
67
|
},
|
|
55
68
|
backend: safe(this.feeds.backend, { consecutive_403: {}, blocked: [], last_429_at: null, last_5xx_at: null }),
|
|
56
69
|
usage_ledger: { unsettled: ledger.length, oldest },
|
|
70
|
+
usage_skipped: {
|
|
71
|
+
last_at: this.usageSkips[0] ? new Date(this.usageSkips[0].at).toISOString() : null,
|
|
72
|
+
entries: this.usageSkips.map(({ model, reason }) => ({ model, reason })),
|
|
73
|
+
},
|
|
57
74
|
sessions: {
|
|
58
75
|
recycles_24h: safe(this.feeds.recycles24h, 0),
|
|
59
76
|
reaped_at_boot: this.reapedAtBoot,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health-monitor.js","sourceRoot":"","sources":["../../src/core/health-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"health-monitor.js","sourceRoot":"","sources":["../../src/core/health-monitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { SiloLinkConfig } from '../types/index.js';
|
|
2
|
-
import { type UsageEntry } from './transcript-usage.js';
|
|
3
|
-
export type CliType =
|
|
2
|
+
import { type UsageEntry, type TranscriptCli } from './transcript-usage.js';
|
|
3
|
+
export type CliType = TranscriptCli;
|
|
4
4
|
/**
|
|
5
5
|
* True when this process is running inside a SiloLink-managed session (the
|
|
6
6
|
* daemon launches CLIs with SILOLINK_MANAGED=1). The daemon already reports
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-usage.d.ts","sourceRoot":"","sources":["../../src/core/report-usage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"report-usage.d.ts","sourceRoot":"","sources":["../../src/core/report-usage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,KAAK,UAAU,EAAE,KAAK,aAAa,EAEpC,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,OAAO,GAAG,aAAa,CAAC;AAEpC;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAG9E;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,OAAO,CAAC;IACb,kFAAkF;IAClF,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAsBjE;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,MAAM,CAAA;CAAE,GACxF,OAAO,CAAC,YAAY,CAAC,CA4CvB;AAOD;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAWtE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { basename } from 'node:path';
|
|
3
|
-
import {
|
|
3
|
+
import { TRANSCRIPT_PARSERS, TRANSCRIPT_LOCATORS, TRANSCRIPT_SESSION_IDS, COST_BASES, } from './transcript-usage.js';
|
|
4
4
|
/**
|
|
5
5
|
* True when this process is running inside a SiloLink-managed session (the
|
|
6
6
|
* daemon launches CLIs with SILOLINK_MANAGED=1). The daemon already reports
|
|
@@ -12,21 +12,6 @@ export function isManagedSession(env = process.env) {
|
|
|
12
12
|
return false;
|
|
13
13
|
return env.SILOLINK_MANAGED === '1';
|
|
14
14
|
}
|
|
15
|
-
const PARSERS = {
|
|
16
|
-
claude: parseClaudeTranscript,
|
|
17
|
-
gemini: parseGeminiTranscript,
|
|
18
|
-
codex: parseCodexTranscript,
|
|
19
|
-
};
|
|
20
|
-
const LOCATORS = {
|
|
21
|
-
claude: locateClaudeTranscript,
|
|
22
|
-
gemini: locateGeminiTranscript,
|
|
23
|
-
codex: locateCodexTranscript,
|
|
24
|
-
};
|
|
25
|
-
const COST_BASIS = {
|
|
26
|
-
claude: claudeCostBasis,
|
|
27
|
-
gemini: geminiCostBasis,
|
|
28
|
-
codex: codexCostBasis,
|
|
29
|
-
};
|
|
30
15
|
/**
|
|
31
16
|
* Locate + parse a coding-agent transcript into the per-model usage summary the
|
|
32
17
|
* report_coding_usage endpoint expects. Pure (no network) so it's unit-testable.
|
|
@@ -37,14 +22,16 @@ export function collectUsage(opts) {
|
|
|
37
22
|
const sessionId = opts.sessionId ?? null;
|
|
38
23
|
const transcriptPath = opts.transcriptPath && existsSync(opts.transcriptPath)
|
|
39
24
|
? opts.transcriptPath
|
|
40
|
-
:
|
|
25
|
+
: TRANSCRIPT_LOCATORS[cli](cwd, sessionId);
|
|
41
26
|
const usage = transcriptPath && existsSync(transcriptPath)
|
|
42
|
-
?
|
|
27
|
+
? TRANSCRIPT_PARSERS[cli](readFileSync(transcriptPath, 'utf8'))
|
|
43
28
|
: [];
|
|
44
29
|
return {
|
|
45
30
|
cli,
|
|
46
|
-
cost_basis:
|
|
47
|
-
|
|
31
|
+
cost_basis: COST_BASES[cli](),
|
|
32
|
+
// The id of the transcript actually parsed, so usage is never filed under
|
|
33
|
+
// a different session's id.
|
|
34
|
+
cli_session_id: (transcriptPath && TRANSCRIPT_SESSION_IDS[cli](transcriptPath)) || sessionId,
|
|
48
35
|
usage,
|
|
49
36
|
transcriptPath,
|
|
50
37
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-usage.js","sourceRoot":"","sources":["../../src/core/report-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAEL,
|
|
1
|
+
{"version":3,"file":"report-usage.js","sourceRoot":"","sources":["../../src/core/report-usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,12 +40,22 @@ export declare function parseGeminiTranscript(content: string): UsageEntry[];
|
|
|
40
40
|
* reasoning-token line (it folds into output).
|
|
41
41
|
*/
|
|
42
42
|
export declare function parseClaudeTranscript(content: string): UsageEntry[];
|
|
43
|
+
/** Model name Claude Code stamps on locally generated (non-API) assistant entries. */
|
|
44
|
+
export declare const SYNTHETIC_CLAUDE_MODEL = "<synthetic>";
|
|
43
45
|
/**
|
|
44
|
-
* Locate a Claude Code transcript. The file is named `<sessionId>.jsonl
|
|
45
|
-
*
|
|
46
|
-
*
|
|
46
|
+
* Locate a Claude Code transcript. The file is named `<sessionId>.jsonl`.
|
|
47
|
+
*
|
|
48
|
+
* - `sessionId` known: ONLY `~/.claude/projects/* /<sessionId>.jsonl` is
|
|
49
|
+
* accepted. If it does not exist yet (the CLI has not flushed its first turn)
|
|
50
|
+
* the result is null and the caller retries later. It never falls back to
|
|
51
|
+
* "newest in the cwd": right after launch that is the PREVIOUS session's
|
|
52
|
+
* transcript, which was then reported under the new session's id
|
|
53
|
+
* (2026-09-26 stale-transcript usage bug).
|
|
54
|
+
* - `sessionId` unknown: the newest `.jsonl` in the cwd's project-slug dir,
|
|
55
|
+
* and — when `notBefore` is given — only if it was touched at/after it (see
|
|
56
|
+
* transcriptTouchedSince).
|
|
47
57
|
*/
|
|
48
|
-
export declare function locateClaudeTranscript(cwd: string, sessionId: string | null): string | null;
|
|
58
|
+
export declare function locateClaudeTranscript(cwd: string, sessionId: string | null, notBefore?: Date): string | null;
|
|
49
59
|
/**
|
|
50
60
|
* True when a transcript was written at/after `since` — i.e. it can belong to a
|
|
51
61
|
* pane that started then. Discovery picks "the newest transcript in the cwd",
|
|
@@ -98,10 +108,20 @@ export declare function claudeCostBasis(): 'real' | 'imputed';
|
|
|
98
108
|
/**
|
|
99
109
|
* Locate the Gemini transcript for a session: map `cwd` to its project slug via
|
|
100
110
|
* ~/.gemini/projects.json, then pick the chat file in that slug whose header
|
|
101
|
-
* `sessionId` matches
|
|
102
|
-
*
|
|
111
|
+
* `sessionId` matches — and ONLY that file when the id is known (null until it
|
|
112
|
+
* exists; never another session's file). When the session id isn't known, the
|
|
113
|
+
* most recently modified chat file in the slug, gated by `notBefore` when given.
|
|
114
|
+
*/
|
|
115
|
+
export declare function locateGeminiTranscript(cwd: string, sessionId: string | null, notBefore?: Date): string | null;
|
|
116
|
+
/** Session id of a Claude Code transcript — its filename minus `.jsonl`. */
|
|
117
|
+
export declare function claudeTranscriptSessionId(path: string): string | null;
|
|
118
|
+
/** Session id of a Gemini chat transcript — the header line's `sessionId`. */
|
|
119
|
+
export declare function geminiTranscriptSessionId(path: string): string | null;
|
|
120
|
+
/**
|
|
121
|
+
* Session id of a Codex rollout — the session_meta header `id`/`payload.id`,
|
|
122
|
+
* falling back to the UUID in the `rollout-<ts>-<uuid>.jsonl` filename.
|
|
103
123
|
*/
|
|
104
|
-
export declare function
|
|
124
|
+
export declare function codexTranscriptSessionId(path: string): string | null;
|
|
105
125
|
/**
|
|
106
126
|
* Parse a Codex CLI rollout transcript (JSONL) into per-model token totals.
|
|
107
127
|
*
|
|
@@ -126,11 +146,12 @@ export declare function parseCodexTranscript(content: string): UsageEntry[];
|
|
|
126
146
|
/**
|
|
127
147
|
* Locate a Codex rollout transcript. Rollouts live under
|
|
128
148
|
* ~/.codex/sessions/YYYY/MM/DD/rollout-<ts>-<uuid>.jsonl. When sessionId is
|
|
129
|
-
* known, match it in the filename or the session_meta header
|
|
149
|
+
* known, match it in the filename or the session_meta header — and ONLY that
|
|
150
|
+
* (null until it exists; never another session's rollout). Otherwise pick the
|
|
130
151
|
* newest rollout whose session_meta cwd matches, falling back to the newest
|
|
131
|
-
* rollout overall.
|
|
152
|
+
* rollout overall; with `notBefore`, that pick must have been touched since.
|
|
132
153
|
*/
|
|
133
|
-
export declare function locateCodexTranscript(cwd: string, sessionId: string | null): string | null;
|
|
154
|
+
export declare function locateCodexTranscript(cwd: string, sessionId: string | null, notBefore?: Date): string | null;
|
|
134
155
|
/**
|
|
135
156
|
* Codex billing basis: API key (env OPENAI_API_KEY, or an api-key entry in
|
|
136
157
|
* ~/.codex/auth.json) => real metered dollars; "Sign in with ChatGPT" (OAuth
|
|
@@ -145,4 +166,27 @@ export declare function codexCostBasis(): 'real' | 'imputed';
|
|
|
145
166
|
* no-marginal-dollar assumption) if the config can't be read.
|
|
146
167
|
*/
|
|
147
168
|
export declare function geminiCostBasis(): 'real' | 'imputed';
|
|
169
|
+
export type TranscriptCli = 'claude' | 'gemini' | 'codex';
|
|
170
|
+
export declare const TRANSCRIPT_PARSERS: Record<TranscriptCli, (content: string) => UsageEntry[]>;
|
|
171
|
+
export declare const TRANSCRIPT_LOCATORS: Record<TranscriptCli, (cwd: string, sessionId: string | null, notBefore?: Date) => string | null>;
|
|
172
|
+
export declare const TRANSCRIPT_SESSION_IDS: Record<TranscriptCli, (path: string) => string | null>;
|
|
173
|
+
export declare const COST_BASES: Record<TranscriptCli, () => 'real' | 'imputed'>;
|
|
174
|
+
/** What a transcript yields for a report_usage POST. */
|
|
175
|
+
export interface ExtractedTranscriptUsage {
|
|
176
|
+
cli_type: TranscriptCli;
|
|
177
|
+
cost_basis: 'real' | 'imputed';
|
|
178
|
+
usage: UsageEntry[];
|
|
179
|
+
/** The session id of the file ACTUALLY parsed — never the caller's guess. */
|
|
180
|
+
cli_session_id: string | null;
|
|
181
|
+
transcriptPath: string;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Locate + parse a CLI transcript into report_usage material. `cli_session_id`
|
|
185
|
+
* is derived from the parsed file itself, so the id sent with the usage always
|
|
186
|
+
* names the transcript the usage came from. Null when no (fresh) transcript
|
|
187
|
+
* exists or it carries no usage. Pure apart from the filesystem reads.
|
|
188
|
+
*/
|
|
189
|
+
export declare function extractTranscriptUsage(cli: TranscriptCli, cwd: string, sessionId: string | null, notBefore?: Date): ExtractedTranscriptUsage | null;
|
|
190
|
+
/** Parse a known transcript path into report_usage material (see extractTranscriptUsage). */
|
|
191
|
+
export declare function extractFromPath(cli: TranscriptCli, transcriptPath: string, fallbackSessionId?: string | null): ExtractedTranscriptUsage | null;
|
|
148
192
|
//# sourceMappingURL=transcript-usage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript-usage.d.ts","sourceRoot":"","sources":["../../src/core/transcript-usage.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CAgCnE;AA4BD;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"transcript-usage.d.ts","sourceRoot":"","sources":["../../src/core/transcript-usage.ts"],"names":[],"mappings":"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"}
|