@dsiloed/silo-link 1.13.7 → 1.14.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.
Files changed (40) hide show
  1. package/dist/api/dsiloed-client.d.ts +5 -1
  2. package/dist/api/dsiloed-client.d.ts.map +1 -1
  3. package/dist/api/dsiloed-client.js +11 -6
  4. package/dist/api/dsiloed-client.js.map +1 -1
  5. package/dist/core/agent-launcher.d.ts +16 -0
  6. package/dist/core/agent-launcher.d.ts.map +1 -1
  7. package/dist/core/base-tmux-launcher.d.ts +44 -3
  8. package/dist/core/base-tmux-launcher.d.ts.map +1 -1
  9. package/dist/core/base-tmux-launcher.js +134 -12
  10. package/dist/core/base-tmux-launcher.js.map +1 -1
  11. package/dist/core/bridge.d.ts +10 -0
  12. package/dist/core/bridge.d.ts.map +1 -1
  13. package/dist/core/bridge.js +76 -3
  14. package/dist/core/bridge.js.map +1 -1
  15. package/dist/core/claude-launcher.d.ts +4 -2
  16. package/dist/core/claude-launcher.d.ts.map +1 -1
  17. package/dist/core/claude-launcher.js +11 -4
  18. package/dist/core/claude-launcher.js.map +1 -1
  19. package/dist/core/codex-launcher.d.ts +4 -2
  20. package/dist/core/codex-launcher.d.ts.map +1 -1
  21. package/dist/core/codex-launcher.js +7 -4
  22. package/dist/core/codex-launcher.js.map +1 -1
  23. package/dist/core/gemini-launcher.d.ts +4 -2
  24. package/dist/core/gemini-launcher.d.ts.map +1 -1
  25. package/dist/core/gemini-launcher.js +7 -4
  26. package/dist/core/gemini-launcher.js.map +1 -1
  27. package/dist/core/launcher-factory.d.ts +2 -1
  28. package/dist/core/launcher-factory.d.ts.map +1 -1
  29. package/dist/core/launcher-factory.js +5 -5
  30. package/dist/core/launcher-factory.js.map +1 -1
  31. package/dist/core/usage-ledger.d.ts +55 -0
  32. package/dist/core/usage-ledger.d.ts.map +1 -0
  33. package/dist/core/usage-ledger.js +82 -0
  34. package/dist/core/usage-ledger.js.map +1 -0
  35. package/dist/index.js +0 -0
  36. package/package.json +1 -1
  37. package/dist/core/baseline-verify.d.ts +0 -54
  38. package/dist/core/baseline-verify.d.ts.map +0 -1
  39. package/dist/core/baseline-verify.js +0 -164
  40. package/dist/core/baseline-verify.js.map +0 -1
@@ -70,6 +70,10 @@ export declare class DSiloedClient {
70
70
  * transcript. model_api prices it (same LlmCosting method as real messages)
71
71
  * and persists AgentUsageRecords so silolink work shows up in cost rollups.
72
72
  * Idempotent server-side (UPSERT on session+model) — safe to re-report.
73
+ *
74
+ * Resolves `true` only on a confirmed 2xx (or nothing to send) — callers use
75
+ * this to settle the usage ledger, so a swallowed failure here would silently
76
+ * drop the entry the startup reconciliation sweep needs to re-report.
73
77
  */
74
78
  reportUsage(payload: {
75
79
  agent_session_id: number;
@@ -77,7 +81,7 @@ export declare class DSiloedClient {
77
81
  cost_basis: 'real' | 'imputed';
78
82
  cli_session_id: string | null;
79
83
  usage: UsageEntry[];
80
- }): Promise<void>;
84
+ }): Promise<boolean>;
81
85
  updateAgentSessionStatus(agentSessionId: number, status: string): Promise<void>;
82
86
  getAgentSessionsForConversation(conversationId: number): Promise<AgentSessionResponse[]>;
83
87
  getActiveAgentSessions(sessionType?: string): Promise<AgentSessionResponse[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"dsiloed-client.d.ts","sourceRoot":"","sources":["../../src/api/dsiloed-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dsiloed-client.d.ts","sourceRoot":"","sources":["../../src/api/dsiloed-client.ts"],"names":[],"mappings":"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"}
@@ -287,10 +287,14 @@ export class DSiloedClient {
287
287
  * transcript. model_api prices it (same LlmCosting method as real messages)
288
288
  * and persists AgentUsageRecords so silolink work shows up in cost rollups.
289
289
  * Idempotent server-side (UPSERT on session+model) — safe to re-report.
290
+ *
291
+ * Resolves `true` only on a confirmed 2xx (or nothing to send) — callers use
292
+ * this to settle the usage ledger, so a swallowed failure here would silently
293
+ * drop the entry the startup reconciliation sweep needs to re-report.
290
294
  */
291
295
  async reportUsage(payload) {
292
296
  if (payload.usage.length === 0)
293
- return;
297
+ return true;
294
298
  // Retry transient failures (network blips, brief model_api unavailability) with
295
299
  // backoff. Idempotent server-side, so retries can't double-count.
296
300
  const delays = [1000, 5000];
@@ -301,17 +305,18 @@ export class DSiloedClient {
301
305
  headers: this.headers,
302
306
  body: JSON.stringify(payload),
303
307
  });
308
+ if (res.ok)
309
+ return true;
304
310
  // 4xx (e.g. bad payload, auth) won't be fixed by retrying — stop.
305
- if (res.ok || (res.status >= 400 && res.status < 500) || attempt >= delays.length) {
306
- if (!res.ok)
307
- console.error(`[SiloLink] reportUsage HTTP ${res.status}`);
308
- return;
311
+ if ((res.status >= 400 && res.status < 500) || attempt >= delays.length) {
312
+ console.error(`[SiloLink] reportUsage HTTP ${res.status}`);
313
+ return false;
309
314
  }
310
315
  }
311
316
  catch (err) {
312
317
  if (attempt >= delays.length) {
313
318
  console.error('[SiloLink] Error reporting usage (gave up after retries):', err);
314
- return;
319
+ return false;
315
320
  }
316
321
  }
317
322
  await new Promise((r) => setTimeout(r, delays[attempt]));
@@ -1 +1 @@
1
- {"version":3,"file":"dsiloed-client.js","sourceRoot":"","sources":["../../src/api/dsiloed-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dsiloed-client.js","sourceRoot":"","sources":["../../src/api/dsiloed-client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { WorkspaceLaunchConfig } from '../types/index.js';
2
2
  import type { AgentProvider } from './launcher-factory.js';
3
+ import type { UsageReconcileTarget } from './usage-ledger.js';
3
4
  /**
4
5
  * Configuration for launching an agent process.
5
6
  */
@@ -126,5 +127,20 @@ export interface AgentLauncher {
126
127
  getTmuxSessionForConversation(conversationId: number): string | null;
127
128
  /** Check if any process is alive */
128
129
  hasLiveProcess(): boolean;
130
+ /**
131
+ * Teardown-grade usage capture for a conversation whose tmux/in-memory
132
+ * session may already be gone (idle sweep, process-dead cleanup). Falls back
133
+ * to the persisted usage ledger for agentSessionId/cwd. Returns true when a
134
+ * report was initiated.
135
+ */
136
+ captureUsageForConversation(conversationId: number): boolean;
137
+ /**
138
+ * Re-derive and report usage for a session from a prior daemon run (awaited).
139
+ * 'reported' = confirmed POST; 'no_usage' = nothing in the transcript (settle);
140
+ * 'failed' = keep the ledger entry and retry on the next startup sweep.
141
+ */
142
+ reconcileUsage(target: UsageReconcileTarget): Promise<'reported' | 'no_usage' | 'failed'>;
143
+ /** Await in-flight usage-report POSTs (bounded) — call before process exit. */
144
+ flushUsageReports(timeoutMs?: number): Promise<void>;
129
145
  }
130
146
  //# sourceMappingURL=agent-launcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-launcher.d.ts","sourceRoot":"","sources":["../../src/core/agent-launcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-launcher.d.ts","sourceRoot":"","sources":["../../src/core/agent-launcher.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import type { DSiloedClient } from '../api/dsiloed-client.js';
5
5
  import type { WorkspaceManager } from './workspace-manager.js';
6
6
  import type { AgentLauncher, LaunchConfig, AgentProcess } from './agent-launcher.js';
7
7
  import type { UsageEntry } from './transcript-usage.js';
8
+ import type { UsageLedger, UsageReconcileTarget } from './usage-ledger.js';
8
9
  interface TmuxSessionInfo {
9
10
  conversationId: number;
10
11
  startedAt: Date;
@@ -27,6 +28,8 @@ export declare abstract class BaseTmuxLauncher implements AgentLauncher {
27
28
  protected idleCheckTimer: ReturnType<typeof setInterval> | null;
28
29
  protected lastUsageReportAt: Map<number, number>;
29
30
  protected readonly LIVE_USAGE_REPORT_INTERVAL_MS = 180000;
31
+ protected usageLedger: UsageLedger | null;
32
+ protected pendingUsageReports: Set<Promise<unknown>>;
30
33
  protected launchingConversations: Set<number>;
31
34
  protected enabled: boolean;
32
35
  protected lastNudgeAt: number;
@@ -47,7 +50,7 @@ export declare abstract class BaseTmuxLauncher implements AgentLauncher {
47
50
  protected pendingWorkspaceCwd: string | null;
48
51
  protected pendingLlmAgentId: number | null;
49
52
  protected pendingMcpToolAllowlist: string[] | null;
50
- constructor(config: SiloLinkConfig, sessionManager: SessionManager, dsiloedClient?: DSiloedClient, messageQueue?: MessageQueue, workspaceManager?: WorkspaceManager);
53
+ constructor(config: SiloLinkConfig, sessionManager: SessionManager, dsiloedClient?: DSiloedClient, messageQueue?: MessageQueue, workspaceManager?: WorkspaceManager, usageLedger?: UsageLedger);
51
54
  /**
52
55
  * Close the rails-side AgentSession row for a session being torn down.
53
56
  * Every teardown path that kills a tmux/process WITHOUT going through the
@@ -100,6 +103,8 @@ export declare abstract class BaseTmuxLauncher implements AgentLauncher {
100
103
  protected abstract getAgentEnv(): Record<string, string>;
101
104
  /** Return prefix for tmux session names (e.g., 'silolink-claude', 'silolink-gemini') */
102
105
  protected abstract getTmuxPrefix(): string;
106
+ /** Return the CLI type this launcher drives ('claude' | 'gemini' | 'codex') — stamped on usage-ledger entries */
107
+ protected abstract getCliType(): string;
103
108
  /** Return the log tag for this launcher (e.g., '[ClaudeLauncher]') */
104
109
  protected abstract getLogTag(): string;
105
110
  /** Return cost metadata key name */
@@ -223,8 +228,12 @@ export declare abstract class BaseTmuxLauncher implements AgentLauncher {
223
228
  * parse their CLI's transcript override extractTranscriptUsage(); the default
224
229
  * is none, so Claude/Codex are no-ops until implemented. Reports per-(session
225
230
  * x model) tokens; model_api prices + persists them (idempotently).
231
+ *
232
+ * `cliSessionId` (optional) overrides the launcher's in-memory session id
233
+ * when locating the transcript — used by reconciliation, where the session
234
+ * being reported belongs to a PRIOR daemon run (ledger / Rails metadata).
226
235
  */
227
- protected extractTranscriptUsage(_cwd: string): {
236
+ protected extractTranscriptUsage(_cwd: string, _cliSessionId?: string | null): {
228
237
  cli_type: string;
229
238
  cost_basis: 'real' | 'imputed';
230
239
  usage: UsageEntry[];
@@ -255,7 +264,39 @@ export declare abstract class BaseTmuxLauncher implements AgentLauncher {
255
264
  * intact and never blocks anything.
256
265
  */
257
266
  protected captureResumeId(conversationId: number): void;
258
- protected captureUsageFromTranscript(conversationId: number): boolean;
267
+ protected captureUsageFromTranscript(conversationId: number, final?: boolean): boolean;
268
+ /**
269
+ * Public teardown-grade capture for a conversation whose tmux/in-memory
270
+ * session may already be gone (idle sweep, process-dead cleanup). Resolves
271
+ * agentSessionId/cwd via the usage ledger when memory can't.
272
+ */
273
+ captureUsageForConversation(conversationId: number): boolean;
274
+ /**
275
+ * Re-derive and report usage for a session from a PRIOR daemon run (awaited).
276
+ * Used by the startup reconciliation sweep for sessions that closed — or were
277
+ * left open — without a confirmed final usage report. The transcript is still
278
+ * on disk; the report targets the (possibly already-ended) AgentSession by id
279
+ * and is idempotent server-side.
280
+ *
281
+ * Returns 'reported' on a confirmed POST, 'no_usage' when no transcript usage
282
+ * exists (settle the ledger — nothing to recover), 'failed' when extraction or
283
+ * the POST failed (keep the ledger entry for the next sweep).
284
+ */
285
+ reconcileUsage(target: UsageReconcileTarget): Promise<'reported' | 'no_usage' | 'failed'>;
286
+ /**
287
+ * Await in-flight usage-report POSTs, bounded by `timeoutMs`. Bridge.stop()
288
+ * calls this before process.exit — the teardown reports fired by kill() are
289
+ * async and would otherwise die with the process (their ledger entries would
290
+ * survive for reconciliation, but flushing now is cheaper than re-deriving).
291
+ */
292
+ flushUsageReports(timeoutMs?: number): Promise<void>;
293
+ protected trackUsageReport(report: Promise<unknown>): void;
294
+ /**
295
+ * Keep the on-disk usage ledger current for a LIVE session (called from the
296
+ * 5s monitor tick; the ledger no-ops the write when nothing changed). The
297
+ * entry is what lets a daemon restart still report this session's usage.
298
+ */
299
+ protected updateUsageLedger(conversationId: number, tmuxSession: string, cwd?: string): void;
259
300
  protected maybeReportLiveUsage(conversationId: number): void;
260
301
  protected checkIdle(): Promise<void>;
261
302
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"base-tmux-launcher.d.ts","sourceRoot":"","sources":["../../src/core/base-tmux-launcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-tmux-launcher.d.ts","sourceRoot":"","sources":["../../src/core/base-tmux-launcher.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,11 @@ export class BaseTmuxLauncher {
21
21
  // Throttle for periodic in-session usage reporting (conversationId -> last report ms).
22
22
  lastUsageReportAt = new Map();
23
23
  LIVE_USAGE_REPORT_INTERVAL_MS = 180_000; // 3 min
24
+ usageLedger;
25
+ // In-flight usage-report POSTs. Bridge.stop() awaits these (bounded) before
26
+ // process.exit — otherwise the final teardown report fired by kill() dies
27
+ // with the process and the session's last usage delta is lost.
28
+ pendingUsageReports = new Set();
24
29
  launchingConversations = new Set();
25
30
  enabled;
26
31
  lastNudgeAt = 0;
@@ -47,12 +52,13 @@ export class BaseTmuxLauncher {
47
52
  pendingWorkspaceCwd = null;
48
53
  pendingLlmAgentId = null;
49
54
  pendingMcpToolAllowlist = null;
50
- constructor(config, sessionManager, dsiloedClient, messageQueue, workspaceManager) {
55
+ constructor(config, sessionManager, dsiloedClient, messageQueue, workspaceManager, usageLedger) {
51
56
  this.config = config;
52
57
  this.sessionManager = sessionManager;
53
58
  this.dsiloedClient = dsiloedClient || null;
54
59
  this.messageQueue = messageQueue || null;
55
60
  this.workspaceManager = workspaceManager || null;
61
+ this.usageLedger = usageLedger || null;
56
62
  this.enabled = this.checkEnabled();
57
63
  }
58
64
  /**
@@ -480,9 +486,10 @@ export class BaseTmuxLauncher {
480
486
  // regardless of how the session ended. The CLI has already flushed its
481
487
  // transcript to disk by now; the report is idempotent (model_api UPSERTs
482
488
  // per session+model). conv id is encoded in the tmux name (…-conv<N>).
489
+ // `final: true` — a confirmed-successful POST settles the usage ledger.
483
490
  const convMatch = tmuxSession.match(/-conv(\d+)$/);
484
491
  if (convMatch)
485
- this.captureUsageFromTranscript(Number(convMatch[1]));
492
+ this.captureUsageFromTranscript(Number(convMatch[1]), true);
486
493
  try {
487
494
  const capture = spawn('tmux', ['capture-pane', '-t', tmuxSession, '-p', '-S', '-200'], {
488
495
  stdio: ['ignore', 'pipe', 'pipe'],
@@ -922,6 +929,9 @@ export class BaseTmuxLauncher {
922
929
  // mid-task death/respawn can continue the SAME session instead of starting
923
930
  // fresh. The transcript exists by the time the CLI has done any work.
924
931
  this.captureResumeId(info.conversationId);
932
+ // Keep the on-disk usage ledger current (no-op write when unchanged) so
933
+ // a daemon restart can still locate + report this session's usage.
934
+ this.updateUsageLedger(info.conversationId, name, info.cwd);
925
935
  return;
926
936
  }
927
937
  this.lastUsageReportAt.delete(info.conversationId);
@@ -1031,8 +1041,12 @@ export class BaseTmuxLauncher {
1031
1041
  * parse their CLI's transcript override extractTranscriptUsage(); the default
1032
1042
  * is none, so Claude/Codex are no-ops until implemented. Reports per-(session
1033
1043
  * x model) tokens; model_api prices + persists them (idempotently).
1044
+ *
1045
+ * `cliSessionId` (optional) overrides the launcher's in-memory session id
1046
+ * when locating the transcript — used by reconciliation, where the session
1047
+ * being reported belongs to a PRIOR daemon run (ledger / Rails metadata).
1034
1048
  */
1035
- extractTranscriptUsage(_cwd) {
1049
+ extractTranscriptUsage(_cwd, _cliSessionId) {
1036
1050
  return null;
1037
1051
  }
1038
1052
  /**
@@ -1110,13 +1124,23 @@ export class BaseTmuxLauncher {
1110
1124
  }
1111
1125
  // Returns true if usage was found and a report was initiated (used by the
1112
1126
  // periodic reporter to only advance its throttle once there's something to send).
1113
- captureUsageFromTranscript(conversationId) {
1127
+ //
1128
+ // `final` marks a TEARDOWN report (pane kill, pane death, orphan reap,
1129
+ // process-dead): a confirmed-successful final POST settles the session's
1130
+ // usage-ledger entry; a failed one keeps it, so the startup reconciliation
1131
+ // sweep re-derives and re-reports. Live (3-min) reports never settle the
1132
+ // ledger — the final delta is still pending by definition.
1133
+ captureUsageFromTranscript(conversationId, final = false) {
1114
1134
  if (!this.dsiloedClient)
1115
1135
  return false;
1116
1136
  const session = conversationId
1117
1137
  ? this.sessionManager.getByConversationId(conversationId)
1118
1138
  : this.sessionManager.getAll()[0];
1119
- if (!session?.agentSessionId)
1139
+ // Ledger fallback: after a daemon restart the in-memory session is gone,
1140
+ // but the persisted entry still knows the agentSessionId/cwd/session-id.
1141
+ const ledgerEntry = conversationId ? this.usageLedger?.get(conversationId) : undefined;
1142
+ const agentSessionId = session?.agentSessionId ?? ledgerEntry?.agentSessionId;
1143
+ if (!agentSessionId)
1120
1144
  return false;
1121
1145
  // Locate the transcript by the ACTUAL cwd the session launched in (stored
1122
1146
  // at create time), NOT getWorkingDirectory() — they differ when the CLI
@@ -1128,27 +1152,125 @@ export class BaseTmuxLauncher {
1128
1152
  break;
1129
1153
  }
1130
1154
  }
1131
- cwd ||= this.getWorkingDirectory();
1155
+ cwd ||= ledgerEntry?.cwd || this.getWorkingDirectory();
1156
+ const cliSessionId = this.lastSessionId ?? session?.resumeId ?? ledgerEntry?.cliSessionId ?? null;
1132
1157
  let extracted;
1133
1158
  try {
1134
- extracted = this.extractTranscriptUsage(cwd);
1159
+ extracted = this.extractTranscriptUsage(cwd, cliSessionId);
1135
1160
  }
1136
1161
  catch (err) {
1137
1162
  console.error(`${this.getLogTag()} Failed to extract transcript usage:`, err);
1138
1163
  return false;
1139
1164
  }
1140
- if (!extracted || extracted.usage.length === 0)
1165
+ if (!extracted || extracted.usage.length === 0) {
1166
+ // Final teardown with nothing in the transcript: settle the ledger so the
1167
+ // startup sweep doesn't chase a session that never produced usage.
1168
+ if (final)
1169
+ this.usageLedger?.remove(conversationId);
1141
1170
  return false;
1142
- console.log(`${this.getLogTag()} Reporting usage for ${extracted.usage.length} model(s) (conv: ${conversationId})`);
1143
- this.dsiloedClient.reportUsage({
1144
- agent_session_id: session.agentSessionId,
1171
+ }
1172
+ console.log(`${this.getLogTag()} Reporting usage for ${extracted.usage.length} model(s) (conv: ${conversationId}${final ? ', final' : ''})`);
1173
+ const report = this.dsiloedClient.reportUsage({
1174
+ agent_session_id: agentSessionId,
1145
1175
  cli_type: extracted.cli_type,
1146
1176
  cost_basis: extracted.cost_basis,
1147
- cli_session_id: this.lastSessionId,
1177
+ cli_session_id: cliSessionId,
1148
1178
  usage: extracted.usage,
1179
+ }).then((ok) => {
1180
+ if (ok && final)
1181
+ this.usageLedger?.remove(conversationId);
1182
+ if (!ok)
1183
+ console.error(`${this.getLogTag()} Usage report not confirmed for conv=${conversationId}${final ? ' — ledger entry kept for reconciliation' : ''}`);
1149
1184
  }).catch((err) => console.error(`${this.getLogTag()} Failed to report usage:`, err));
1185
+ this.trackUsageReport(report);
1150
1186
  return true;
1151
1187
  }
1188
+ /**
1189
+ * Public teardown-grade capture for a conversation whose tmux/in-memory
1190
+ * session may already be gone (idle sweep, process-dead cleanup). Resolves
1191
+ * agentSessionId/cwd via the usage ledger when memory can't.
1192
+ */
1193
+ captureUsageForConversation(conversationId) {
1194
+ return this.captureUsageFromTranscript(conversationId, true);
1195
+ }
1196
+ /**
1197
+ * Re-derive and report usage for a session from a PRIOR daemon run (awaited).
1198
+ * Used by the startup reconciliation sweep for sessions that closed — or were
1199
+ * left open — without a confirmed final usage report. The transcript is still
1200
+ * on disk; the report targets the (possibly already-ended) AgentSession by id
1201
+ * and is idempotent server-side.
1202
+ *
1203
+ * Returns 'reported' on a confirmed POST, 'no_usage' when no transcript usage
1204
+ * exists (settle the ledger — nothing to recover), 'failed' when extraction or
1205
+ * the POST failed (keep the ledger entry for the next sweep).
1206
+ */
1207
+ async reconcileUsage(target) {
1208
+ if (!this.dsiloedClient)
1209
+ return 'failed';
1210
+ const cwd = target.cwd || this.getWorkingDirectory();
1211
+ let extracted;
1212
+ try {
1213
+ extracted = this.extractTranscriptUsage(cwd, target.cliSessionId ?? null);
1214
+ }
1215
+ catch (err) {
1216
+ console.error(`${this.getLogTag()} reconcileUsage: transcript extraction failed for agent session ${target.agentSessionId}:`, err);
1217
+ return 'failed';
1218
+ }
1219
+ if (!extracted || extracted.usage.length === 0)
1220
+ return 'no_usage';
1221
+ const ok = await this.dsiloedClient.reportUsage({
1222
+ agent_session_id: target.agentSessionId,
1223
+ cli_type: extracted.cli_type,
1224
+ cost_basis: extracted.cost_basis,
1225
+ cli_session_id: target.cliSessionId ?? null,
1226
+ usage: extracted.usage,
1227
+ });
1228
+ return ok ? 'reported' : 'failed';
1229
+ }
1230
+ /**
1231
+ * Await in-flight usage-report POSTs, bounded by `timeoutMs`. Bridge.stop()
1232
+ * calls this before process.exit — the teardown reports fired by kill() are
1233
+ * async and would otherwise die with the process (their ledger entries would
1234
+ * survive for reconciliation, but flushing now is cheaper than re-deriving).
1235
+ */
1236
+ async flushUsageReports(timeoutMs = 10_000) {
1237
+ if (this.pendingUsageReports.size === 0)
1238
+ return;
1239
+ console.log(`${this.getLogTag()} Flushing ${this.pendingUsageReports.size} in-flight usage report(s) before shutdown...`);
1240
+ let timer;
1241
+ await Promise.race([
1242
+ Promise.allSettled(Array.from(this.pendingUsageReports)),
1243
+ new Promise((resolve) => { timer = setTimeout(resolve, timeoutMs); }),
1244
+ ]);
1245
+ if (timer)
1246
+ clearTimeout(timer);
1247
+ }
1248
+ trackUsageReport(report) {
1249
+ this.pendingUsageReports.add(report);
1250
+ void report
1251
+ .catch(() => { })
1252
+ .finally(() => this.pendingUsageReports.delete(report));
1253
+ }
1254
+ /**
1255
+ * Keep the on-disk usage ledger current for a LIVE session (called from the
1256
+ * 5s monitor tick; the ledger no-ops the write when nothing changed). The
1257
+ * entry is what lets a daemon restart still report this session's usage.
1258
+ */
1259
+ updateUsageLedger(conversationId, tmuxSession, cwd) {
1260
+ if (!this.usageLedger || !conversationId)
1261
+ return;
1262
+ const session = this.sessionManager.getByConversationId(conversationId);
1263
+ if (!session?.agentSessionId)
1264
+ return;
1265
+ this.usageLedger.upsert({
1266
+ conversationId,
1267
+ agentSessionId: session.agentSessionId,
1268
+ cliType: this.getCliType(),
1269
+ cwd: cwd || this.getWorkingDirectory(),
1270
+ cliSessionId: session.resumeId || this.lastSessionId || undefined,
1271
+ tmuxSession,
1272
+ });
1273
+ }
1152
1274
  // Throttled periodic report for a LIVE session. The transcript is parsed
1153
1275
  // mid-write (cumulative-so-far) and UPSERTed, so if the daemon dies before
1154
1276
  // teardown the session's cost is still captured up to the last interval —