instar 1.3.486 → 1.3.488

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 (97) hide show
  1. package/dist/commands/reflect.d.ts.map +1 -1
  2. package/dist/commands/reflect.js +4 -0
  3. package/dist/commands/reflect.js.map +1 -1
  4. package/dist/commands/route.d.ts.map +1 -1
  5. package/dist/commands/route.js +3 -0
  6. package/dist/commands/route.js.map +1 -1
  7. package/dist/commands/server.d.ts.map +1 -1
  8. package/dist/commands/server.js +14 -0
  9. package/dist/commands/server.js.map +1 -1
  10. package/dist/core/CircuitBreakingIntelligenceProvider.d.ts +7 -0
  11. package/dist/core/CircuitBreakingIntelligenceProvider.d.ts.map +1 -1
  12. package/dist/core/CircuitBreakingIntelligenceProvider.js +50 -0
  13. package/dist/core/CircuitBreakingIntelligenceProvider.js.map +1 -1
  14. package/dist/core/ClaudeCliIntelligenceProvider.d.ts +5 -0
  15. package/dist/core/ClaudeCliIntelligenceProvider.d.ts.map +1 -1
  16. package/dist/core/ClaudeCliIntelligenceProvider.js +6 -1
  17. package/dist/core/ClaudeCliIntelligenceProvider.js.map +1 -1
  18. package/dist/core/CodexCliIntelligenceProvider.d.ts +58 -0
  19. package/dist/core/CodexCliIntelligenceProvider.d.ts.map +1 -1
  20. package/dist/core/CodexCliIntelligenceProvider.js +293 -27
  21. package/dist/core/CodexCliIntelligenceProvider.js.map +1 -1
  22. package/dist/core/GeminiCliIntelligenceProvider.d.ts +8 -0
  23. package/dist/core/GeminiCliIntelligenceProvider.d.ts.map +1 -1
  24. package/dist/core/GeminiCliIntelligenceProvider.js +8 -0
  25. package/dist/core/GeminiCliIntelligenceProvider.js.map +1 -1
  26. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  27. package/dist/core/PostUpdateMigrator.js +40 -0
  28. package/dist/core/PostUpdateMigrator.js.map +1 -1
  29. package/dist/core/SafeGitExecutor.d.ts.map +1 -1
  30. package/dist/core/SafeGitExecutor.js +79 -1
  31. package/dist/core/SafeGitExecutor.js.map +1 -1
  32. package/dist/core/StateManager.d.ts +8 -0
  33. package/dist/core/StateManager.d.ts.map +1 -1
  34. package/dist/core/StateManager.js +37 -0
  35. package/dist/core/StateManager.js.map +1 -1
  36. package/dist/core/componentCategories.d.ts.map +1 -1
  37. package/dist/core/componentCategories.js +10 -0
  38. package/dist/core/componentCategories.js.map +1 -1
  39. package/dist/core/intelligenceProviderFactory.d.ts +8 -0
  40. package/dist/core/intelligenceProviderFactory.d.ts.map +1 -1
  41. package/dist/core/intelligenceProviderFactory.js +1 -0
  42. package/dist/core/intelligenceProviderFactory.js.map +1 -1
  43. package/dist/core/types.d.ts +25 -9
  44. package/dist/core/types.d.ts.map +1 -1
  45. package/dist/core/types.js.map +1 -1
  46. package/dist/messaging/slack/SlackAdapter.d.ts +3 -0
  47. package/dist/messaging/slack/SlackAdapter.d.ts.map +1 -1
  48. package/dist/messaging/slack/SlackAdapter.js +8 -1
  49. package/dist/messaging/slack/SlackAdapter.js.map +1 -1
  50. package/dist/monitoring/FeatureMetricsLedger.d.ts +123 -1
  51. package/dist/monitoring/FeatureMetricsLedger.d.ts.map +1 -1
  52. package/dist/monitoring/FeatureMetricsLedger.js +211 -25
  53. package/dist/monitoring/FeatureMetricsLedger.js.map +1 -1
  54. package/dist/providers/adapters/anthropic-interactive-pool/index.d.ts.map +1 -1
  55. package/dist/providers/adapters/anthropic-interactive-pool/index.js +1 -0
  56. package/dist/providers/adapters/anthropic-interactive-pool/index.js.map +1 -1
  57. package/dist/providers/adapters/openai-codex/transport/codexSpawn.d.ts +93 -0
  58. package/dist/providers/adapters/openai-codex/transport/codexSpawn.d.ts.map +1 -1
  59. package/dist/providers/adapters/openai-codex/transport/codexSpawn.js +339 -0
  60. package/dist/providers/adapters/openai-codex/transport/codexSpawn.js.map +1 -1
  61. package/dist/providers/adapters/openai-codex/transport/codexUsageParser.d.ts +84 -0
  62. package/dist/providers/adapters/openai-codex/transport/codexUsageParser.d.ts.map +1 -0
  63. package/dist/providers/adapters/openai-codex/transport/codexUsageParser.js +208 -0
  64. package/dist/providers/adapters/openai-codex/transport/codexUsageParser.js.map +1 -0
  65. package/dist/providers/uxConfirm/OverrideDetector.d.ts.map +1 -1
  66. package/dist/providers/uxConfirm/OverrideDetector.js +1 -0
  67. package/dist/providers/uxConfirm/OverrideDetector.js.map +1 -1
  68. package/dist/providers/uxConfirm/TaskClassifier.d.ts.map +1 -1
  69. package/dist/providers/uxConfirm/TaskClassifier.js +1 -0
  70. package/dist/providers/uxConfirm/TaskClassifier.js.map +1 -1
  71. package/dist/scaffold/templates.d.ts.map +1 -1
  72. package/dist/scaffold/templates.js +3 -2
  73. package/dist/scaffold/templates.js.map +1 -1
  74. package/dist/security/LLMSanitizer.d.ts.map +1 -1
  75. package/dist/security/LLMSanitizer.js +7 -1
  76. package/dist/security/LLMSanitizer.js.map +1 -1
  77. package/dist/server/CapabilityIndex.js +1 -1
  78. package/dist/server/CapabilityIndex.js.map +1 -1
  79. package/dist/server/routes.d.ts.map +1 -1
  80. package/dist/server/routes.js +10 -1
  81. package/dist/server/routes.js.map +1 -1
  82. package/dist/threadline/PipeSessionSpawner.d.ts.map +1 -1
  83. package/dist/threadline/PipeSessionSpawner.js +2 -0
  84. package/dist/threadline/PipeSessionSpawner.js.map +1 -1
  85. package/dist/threadline/WarrantsReplyGate.d.ts.map +1 -1
  86. package/dist/threadline/WarrantsReplyGate.js +5 -1
  87. package/dist/threadline/WarrantsReplyGate.js.map +1 -1
  88. package/package.json +4 -2
  89. package/scripts/lint-llm-attribution.js +418 -0
  90. package/scripts/lint-no-direct-destructive.js +4 -0
  91. package/scripts/pre-push-gate.js +24 -0
  92. package/src/data/builtin-manifest.json +63 -63
  93. package/src/scaffold/templates.ts +3 -2
  94. package/upgrades/1.3.487.md +39 -0
  95. package/upgrades/1.3.488.md +27 -0
  96. package/upgrades/side-effects/session-ghost-records.md +79 -0
  97. package/upgrades/side-effects/token-audit-completeness.md +84 -0
@@ -49,6 +49,7 @@ const SCHEMA = [
49
49
  */
50
50
  const ADDED_COLUMNS = [
51
51
  { name: 'framework', ddl: 'ALTER TABLE feature_metrics ADD COLUMN framework TEXT' },
52
+ { name: 'tokens_cached', ddl: 'ALTER TABLE feature_metrics ADD COLUMN tokens_cached INTEGER' },
52
53
  ];
53
54
  function percentile(sortedAsc, p) {
54
55
  if (sortedAsc.length === 0)
@@ -84,8 +85,8 @@ export class FeatureMetricsLedger {
84
85
  }
85
86
  catch { /* already closed */ } });
86
87
  this.insertStmt = this.db.prepare(`INSERT INTO feature_metrics
87
- (ts, feature, kind, outcome, tokens_in, tokens_out, latency_ms, model, framework, waited, wait_ms, verdict_id)
88
- VALUES (@ts, @feature, @kind, @outcome, @tokensIn, @tokensOut, @latencyMs, @model, @framework, @waited, @waitMs, @verdictId)`);
88
+ (ts, feature, kind, outcome, tokens_in, tokens_out, tokens_cached, latency_ms, model, framework, waited, wait_ms, verdict_id)
89
+ VALUES (@ts, @feature, @kind, @outcome, @tokensIn, @tokensOut, @tokensCached, @latencyMs, @model, @framework, @waited, @waitMs, @verdictId)`);
89
90
  }
90
91
  /** Add post-ship columns to an existing table, idempotently (pragma-guarded). */
91
92
  ensureAddedColumns() {
@@ -114,6 +115,7 @@ export class FeatureMetricsLedger {
114
115
  outcome: r.outcome,
115
116
  tokensIn: r.tokensIn ?? null,
116
117
  tokensOut: r.tokensOut ?? null,
118
+ tokensCached: r.tokensCached ?? null,
117
119
  latencyMs: r.latencyMs ?? null,
118
120
  model: r.model ?? null,
119
121
  framework: r.framework ?? null,
@@ -131,9 +133,20 @@ export class FeatureMetricsLedger {
131
133
  recordEvent(feature, outcome, verdictId) {
132
134
  this.record({ feature, kind: 'event', outcome, verdictId });
133
135
  }
136
+ sinceMsFrom(opts) {
137
+ return opts.sinceHours && opts.sinceHours > 0 ? this.now() - opts.sinceHours * 3_600_000 : 0;
138
+ }
134
139
  /** Per-feature rollup over the lookback window (default: all time). */
135
140
  byFeature(opts = {}) {
136
- const sinceMs = opts.sinceHours && opts.sinceHours > 0 ? this.now() - opts.sinceHours * 3_600_000 : 0;
141
+ return this.byFeatureCore(this.sinceMsFrom(opts), { includeProviderScan: true });
142
+ }
143
+ /**
144
+ * Core per-feature rollup. `includeProviderScan: false` skips the DISTINCT
145
+ * frameworks/models window scan — summary() derives those arrays from the
146
+ * byFeatureModel partition instead (its group keys ARE feature×framework×
147
+ * model), so the per-model slice lands at NET-ZERO window scans, not +1.
148
+ */
149
+ byFeatureCore(sinceMs, o) {
137
150
  const agg = this.db
138
151
  .prepare(`SELECT
139
152
  feature,
@@ -142,6 +155,7 @@ export class FeatureMetricsLedger {
142
155
  SUM(CASE WHEN kind='event' THEN 1 ELSE 0 END) AS events,
143
156
  COALESCE(SUM(tokens_in), 0) AS tokensIn,
144
157
  COALESCE(SUM(tokens_out), 0) AS tokensOut,
158
+ COALESCE(SUM(tokens_cached), 0) AS tokensCached,
145
159
  SUM(CASE WHEN outcome='fired' THEN 1 ELSE 0 END) AS fired,
146
160
  SUM(CASE WHEN outcome='noop' THEN 1 ELSE 0 END) AS noop,
147
161
  SUM(CASE WHEN outcome='error' THEN 1 ELSE 0 END) AS errors,
@@ -155,7 +169,10 @@ export class FeatureMetricsLedger {
155
169
  GROUP BY feature
156
170
  ORDER BY calls DESC`)
157
171
  .all(sinceMs);
158
- // Percentiles in JS from the per-feature latency lists (bounded by the window).
172
+ // Percentiles in JS from the per-feature latency lists (bounded by the
173
+ // window). This is the one full-row-materializing query and stays
174
+ // single-keyed — a future per-model percentile must reuse one
175
+ // composite-key query, never a second full-window load.
159
176
  const latRows = this.db
160
177
  .prepare(`SELECT feature, latency_ms FROM feature_metrics
161
178
  WHERE ts >= ? AND latency_ms IS NOT NULL
@@ -167,24 +184,27 @@ export class FeatureMetricsLedger {
167
184
  arr.push(row.latency_ms);
168
185
  latByFeature.set(row.feature, arr);
169
186
  }
170
- // Distinct provider/model per feature in the window (Observable Intelligence:
171
- // "which provider actually ran this sentinel"). Bounded by GROUP BY DISTINCT.
172
- const fwRows = this.db
173
- .prepare(`SELECT DISTINCT feature, framework, model FROM feature_metrics
174
- WHERE ts >= ? AND (framework IS NOT NULL OR model IS NOT NULL)`)
175
- .all(sinceMs);
187
+ // Distinct provider/model per feature in the window (Observable
188
+ // Intelligence). Skipped when the caller derives these from the
189
+ // byFeatureModel partition (summary()).
176
190
  const fwByFeature = new Map();
177
191
  const modelByFeature = new Map();
178
- for (const row of fwRows) {
179
- if (row.framework) {
180
- const s = fwByFeature.get(row.feature) ?? new Set();
181
- s.add(row.framework);
182
- fwByFeature.set(row.feature, s);
183
- }
184
- if (row.model) {
185
- const s = modelByFeature.get(row.feature) ?? new Set();
186
- s.add(row.model);
187
- modelByFeature.set(row.feature, s);
192
+ if (o.includeProviderScan) {
193
+ const fwRows = this.db
194
+ .prepare(`SELECT DISTINCT feature, framework, model FROM feature_metrics
195
+ WHERE ts >= ? AND (framework IS NOT NULL OR model IS NOT NULL)`)
196
+ .all(sinceMs);
197
+ for (const row of fwRows) {
198
+ if (row.framework) {
199
+ const s = fwByFeature.get(row.feature) ?? new Set();
200
+ s.add(row.framework);
201
+ fwByFeature.set(row.feature, s);
202
+ }
203
+ if (row.model) {
204
+ const s = modelByFeature.get(row.feature) ?? new Set();
205
+ s.add(row.model);
206
+ modelByFeature.set(row.feature, s);
207
+ }
188
208
  }
189
209
  }
190
210
  return agg.map((a) => {
@@ -201,6 +221,7 @@ export class FeatureMetricsLedger {
201
221
  events: Number(a.events) || 0,
202
222
  tokensIn: Number(a.tokensIn) || 0,
203
223
  tokensOut: Number(a.tokensOut) || 0,
224
+ tokensCached: Number(a.tokensCached) || 0,
204
225
  frameworks: Array.from(fwByFeature.get(String(a.feature)) ?? []).sort(),
205
226
  models: Array.from(modelByFeature.get(String(a.feature)) ?? []).sort(),
206
227
  fired,
@@ -217,10 +238,158 @@ export class FeatureMetricsLedger {
217
238
  };
218
239
  });
219
240
  }
220
- /** Totals + per-feature rollup. */
241
+ /**
242
+ * Feature×model×framework partition (token-audit-completeness, Slice 2).
243
+ * llm-kind rows only; NULL model/framework render "unknown". ONE composite-
244
+ * key GROUP BY carries the usage-presence counts itself — SQLite
245
+ * COUNT(expr) counts non-NULL, so `COUNT(CASE WHEN outcome IN
246
+ * ('fired','noop') THEN tokens_in END)` is the success-rows-with-usage
247
+ * count (a recorded 0 counts as reported; a SUM would let one large row
248
+ * mask N null rows). No latency percentiles on this dimension.
249
+ */
250
+ byFeatureModel(opts = {}) {
251
+ const sinceMs = this.sinceMsFrom(opts);
252
+ let rows;
253
+ try {
254
+ rows = this.db
255
+ .prepare(`SELECT
256
+ feature,
257
+ model,
258
+ framework,
259
+ COUNT(*) AS calls,
260
+ COALESCE(SUM(tokens_in), 0) AS tokensIn,
261
+ COALESCE(SUM(tokens_out), 0) AS tokensOut,
262
+ COALESCE(SUM(tokens_cached), 0) AS tokensCached,
263
+ SUM(CASE WHEN outcome='fired' THEN 1 ELSE 0 END) AS fired,
264
+ SUM(CASE WHEN outcome='noop' THEN 1 ELSE 0 END) AS noop,
265
+ SUM(CASE WHEN outcome='error' THEN 1 ELSE 0 END) AS errors,
266
+ SUM(CASE WHEN outcome='shed' THEN 1 ELSE 0 END) AS shed,
267
+ COUNT(CASE WHEN outcome IN ('fired','noop') THEN tokens_in END) AS successRowsWithUsage,
268
+ COUNT(CASE WHEN outcome='error' THEN tokens_in END) AS errorRowsWithUsage
269
+ FROM feature_metrics
270
+ WHERE ts >= ? AND kind='llm'
271
+ GROUP BY feature, model, framework
272
+ ORDER BY tokensIn + tokensOut DESC, calls DESC`)
273
+ .all(sinceMs);
274
+ }
275
+ catch {
276
+ // @silent-fallback-ok: identical failure envelope to byFeature on a DB
277
+ // whose ALTER was swallowed — degrade to [] rather than throw.
278
+ return [];
279
+ }
280
+ return rows.map((r) => {
281
+ const calls = Number(r.calls) || 0;
282
+ const shed = Number(r.shed) || 0;
283
+ return {
284
+ feature: String(r.feature),
285
+ model: r.model === null || r.model === undefined ? 'unknown' : String(r.model),
286
+ framework: r.framework === null || r.framework === undefined ? 'unknown' : String(r.framework),
287
+ calls,
288
+ realCalls: calls - shed,
289
+ tokensIn: Number(r.tokensIn) || 0,
290
+ tokensOut: Number(r.tokensOut) || 0,
291
+ tokensCached: Number(r.tokensCached) || 0,
292
+ fired: Number(r.fired) || 0,
293
+ noop: Number(r.noop) || 0,
294
+ errors: Number(r.errors) || 0,
295
+ shed,
296
+ successRowsWithUsage: Number(r.successRowsWithUsage) || 0,
297
+ errorRowsWithUsage: Number(r.errorRowsWithUsage) || 0,
298
+ };
299
+ });
300
+ }
301
+ /**
302
+ * Frameworks whose provider implementation cannot surface per-call usage by
303
+ * documented contract (the cannot-surface list, keyed per implementation —
304
+ * see the provider usage-contract test, which derives expectations from
305
+ * fixtures, never from this list).
306
+ */
307
+ static USAGE_EXEMPT_FRAMEWORKS = new Set(['gemini-cli']);
308
+ /** Totals + per-feature rollup, enriched with the per-model partition. */
221
309
  summary(opts = {}) {
222
- const features = this.byFeature(opts);
223
- const sinceMs = opts.sinceHours && opts.sinceHours > 0 ? this.now() - opts.sinceHours * 3_600_000 : 0;
310
+ const sinceMs = this.sinceMsFrom(opts);
311
+ // ONE byFeatureModel call, partitioned in JS per-feature slicing
312
+ // queries are forbidden (N× full-window scans on synchronous
313
+ // better-sqlite3).
314
+ const partition = this.byFeatureModel(opts);
315
+ const features = this.byFeatureCore(sinceMs, { includeProviderScan: false });
316
+ // Derive per-feature byModel + frameworks/models from the partition
317
+ // (scan-neutral: subsumes the DISTINCT provider scan).
318
+ const byFeaturePartition = new Map();
319
+ for (const row of partition) {
320
+ const arr = byFeaturePartition.get(row.feature) ?? [];
321
+ arr.push(row);
322
+ byFeaturePartition.set(row.feature, arr);
323
+ }
324
+ for (const f of features) {
325
+ const rows = byFeaturePartition.get(f.feature) ?? [];
326
+ f.byModel = rows;
327
+ f.frameworks = Array.from(new Set(rows.filter((r) => r.framework !== 'unknown').map((r) => r.framework))).sort();
328
+ f.models = Array.from(new Set(rows.filter((r) => r.model !== 'unknown').map((r) => r.model))).sort();
329
+ }
330
+ // totals.byModel — aggregate the same partition by model×framework.
331
+ const modelAgg = new Map();
332
+ for (const row of partition) {
333
+ const key = `${row.model}${row.framework}`;
334
+ const acc = modelAgg.get(key) ??
335
+ {
336
+ model: row.model,
337
+ framework: row.framework,
338
+ calls: 0,
339
+ realCalls: 0,
340
+ tokensIn: 0,
341
+ tokensOut: 0,
342
+ tokensCached: 0,
343
+ fired: 0,
344
+ noop: 0,
345
+ errors: 0,
346
+ shed: 0,
347
+ };
348
+ acc.calls += row.calls;
349
+ acc.realCalls += row.realCalls;
350
+ acc.tokensIn += row.tokensIn;
351
+ acc.tokensOut += row.tokensOut;
352
+ acc.tokensCached += row.tokensCached;
353
+ acc.fired += row.fired;
354
+ acc.noop += row.noop;
355
+ acc.errors += row.errors;
356
+ acc.shed += row.shed;
357
+ modelAgg.set(key, acc);
358
+ }
359
+ const byModel = Array.from(modelAgg.values()).sort((a, b) => b.tokensIn + b.tokensOut - (a.tokensIn + a.tokensOut));
360
+ // usageCoverage — per framework from the SAME partition (no second window
361
+ // scan). Success-only denominator; interactive-pool rows excluded from
362
+ // the claude-code denominator (that provider never invokes onUsage by
363
+ // documented contract).
364
+ const coverageAgg = new Map();
365
+ for (const row of partition) {
366
+ const fw = row.framework;
367
+ const acc = coverageAgg.get(fw) ??
368
+ { successRows: 0, successRowsWithUsage: 0, errorRows: 0, errorRowsWithUsage: 0, excludedRows: 0 };
369
+ const isInteractivePool = fw === 'claude-code' && row.model === 'interactive-pool';
370
+ if (isInteractivePool) {
371
+ acc.excludedRows += row.fired + row.noop;
372
+ }
373
+ else {
374
+ acc.successRows += row.fired + row.noop;
375
+ acc.successRowsWithUsage += row.successRowsWithUsage;
376
+ }
377
+ acc.errorRows += row.errors;
378
+ acc.errorRowsWithUsage += row.errorRowsWithUsage;
379
+ coverageAgg.set(fw, acc);
380
+ }
381
+ const usageCoverage = Array.from(coverageAgg.entries())
382
+ .map(([framework, c]) => ({
383
+ framework,
384
+ successRows: c.successRows,
385
+ successRowsWithUsage: c.successRowsWithUsage,
386
+ coverage: c.successRows > 0 ? c.successRowsWithUsage / c.successRows : 0,
387
+ errorRows: c.errorRows,
388
+ errorRowsWithUsage: c.errorRowsWithUsage,
389
+ exempt: FeatureMetricsLedger.USAGE_EXEMPT_FRAMEWORKS.has(framework),
390
+ ...(c.excludedRows > 0 ? { excludedRows: c.excludedRows } : {}),
391
+ }))
392
+ .sort((a, b) => a.framework.localeCompare(b.framework));
224
393
  const totals = features.reduce((acc, f) => {
225
394
  acc.calls += f.calls;
226
395
  acc.realCalls += f.realCalls;
@@ -228,13 +397,30 @@ export class FeatureMetricsLedger {
228
397
  acc.events += f.events;
229
398
  acc.tokensIn += f.tokensIn;
230
399
  acc.tokensOut += f.tokensOut;
400
+ acc.tokensCached += f.tokensCached;
231
401
  acc.fired += f.fired;
232
402
  acc.noop += f.noop;
233
403
  acc.errors += f.errors;
234
404
  acc.shed += f.shed;
235
405
  return acc;
236
- }, { calls: 0, realCalls: 0, llmCalls: 0, events: 0, tokensIn: 0, tokensOut: 0, fired: 0, noop: 0, errors: 0, shed: 0 });
237
- return { sinceMs, totals, features };
406
+ }, {
407
+ calls: 0, realCalls: 0, llmCalls: 0, events: 0,
408
+ tokensIn: 0, tokensOut: 0, tokensCached: 0,
409
+ fired: 0, noop: 0, errors: 0, shed: 0,
410
+ });
411
+ // Unlabeled shares — both needed: token-blind unlabeled calls contribute
412
+ // 0/0 to the token share, so the call share is what catches unlabeled
413
+ // traffic running at volume. Zero denominators → 0.
414
+ const unlabeled = features.find((f) => f.feature === 'unlabeled');
415
+ const totalTokens = totals.tokensIn + totals.tokensOut;
416
+ const unlabeledTokens = unlabeled ? unlabeled.tokensIn + unlabeled.tokensOut : 0;
417
+ const unlabeledTokenShare = totalTokens > 0 ? unlabeledTokens / totalTokens : 0;
418
+ const unlabeledCallShare = totals.realCalls > 0 ? (unlabeled?.realCalls ?? 0) / totals.realCalls : 0;
419
+ return {
420
+ sinceMs,
421
+ totals: { ...totals, byModel, usageCoverage, unlabeledTokenShare, unlabeledCallShare },
422
+ features,
423
+ };
238
424
  }
239
425
  /**
240
426
  * Delete rows older than `cutoffMs`. Returns rows deleted. Fail-open.
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureMetricsLedger.js","sourceRoot":"","sources":["../../src/monitoring/FeatureMetricsLedger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FeatureMetricsLedger.js","sourceRoot":"","sources":["../../src/monitoring/FeatureMetricsLedger.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/providers/adapters/anthropic-interactive-pool/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIzD,OAAO,EAAiB,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAuB5C;;;;;GAKG;AACH,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,yEAAyE;IACzE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,aAAa,GAAE,OAAO,CAAC,qBAAqB,CAAM,GACjD,sBAAsB,CAuFxB;AAGD,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,OAAO,wBAAwB,EAAE,oBAAoB,GAClE,OAAO,+BAA+B,EAAE,iBAAiB,CA2B3D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/providers/adapters/anthropic-interactive-pool/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIzD,OAAO,EAAiB,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAuB5C;;;;;GAKG;AACH,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,yEAAyE;IACzE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,aAAa,GAAE,OAAO,CAAC,qBAAqB,CAAM,GACjD,sBAAsB,CAuFxB;AAGD,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,OAAO,wBAAwB,EAAE,oBAAoB,GAClE,OAAO,+BAA+B,EAAE,iBAAiB,CA4B3D"}
@@ -158,6 +158,7 @@ export function buildCanaryLlmFallback(intelligence) {
158
158
  model: 'fast',
159
159
  maxTokens: 16,
160
160
  temperature: 0,
161
+ attribution: { component: 'InteractivePoolCanaryJudge' },
161
162
  });
162
163
  const verdict = raw.trim().toLowerCase();
163
164
  if (verdict.startsWith('complete'))
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/adapters/anthropic-interactive-pool/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/adapters/anthropic-interactive-pool/index.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,8 @@
14
14
  * structured one-shot). The agenticSessionHeadless primitive spawns
15
15
  * codex inside tmux, where tmux owns stdin — that path is unaffected.
16
16
  */
17
+ import { spawn } from 'node:child_process';
18
+ import { type Stats } from 'node:fs';
17
19
  export interface SpawnResult {
18
20
  exitCode: number | null;
19
21
  stdout: string;
@@ -65,4 +67,95 @@ export declare function spawnCodexAndWait(binary: string, args: string[], option
65
67
  env: NodeJS.ProcessEnv;
66
68
  signal?: AbortSignal;
67
69
  }): Promise<SpawnResult>;
70
+ /** Carry-buffer cap for event-line assembly (2 MB). */
71
+ export declare const EXEC_JSON_CARRY_CAP_BYTES: number;
72
+ export interface SpawnCodexExecJsonOptions {
73
+ timeoutMs: number;
74
+ env: NodeJS.ProcessEnv;
75
+ /**
76
+ * Prompt text written to the child's stdin (then stdin is ended). The
77
+ * prompt moves OFF argv in --json mode: process argv is world-readable
78
+ * (`ps`), cartographer-sweep-class prompts embed repo content, and macOS
79
+ * ARG_MAX (~1 MB) would hard-fail large prompts.
80
+ */
81
+ prompt: string;
82
+ /** Complete event lines, called BEFORE the promise settles. Must not throw. */
83
+ onLine: (line: string) => void;
84
+ /** An over-cap line was discarded unparsed (counted for the drift tripwire). */
85
+ onOversizedLine?: () => void;
86
+ /** Test seams. */
87
+ spawnImpl?: typeof spawn;
88
+ /** Bounded post-exit grace before forced settlement (default 5000 ms). */
89
+ postExitGraceMs?: number;
90
+ /** SIGTERM → SIGKILL grace (house standard 2000 ms). */
91
+ sigkillGraceMs?: number;
92
+ }
93
+ export interface ExecJsonResult {
94
+ exitCode: number | null;
95
+ /** Rolling tail (last 600 chars) of the child's stderr. */
96
+ stderrTail: string;
97
+ }
98
+ export declare class CodexExecJsonTimeoutError extends Error {
99
+ readonly stderrTail: string;
100
+ readonly killed = true;
101
+ readonly signal = "SIGTERM";
102
+ constructor(timeoutMs: number, stderrTail: string);
103
+ }
104
+ /**
105
+ * Spawn `codex exec --json ...` and stream its event lines to `onLine`.
106
+ *
107
+ * Settlement contract (the spec's "settlement ordering"): the timeout timer
108
+ * only INITIATES the kill sequence (SIGTERM → sigkillGraceMs → SIGKILL); the
109
+ * promise settles from the `close` handler — after the carry flush — or at a
110
+ * bounded post-`exit` grace when `close` is deferred by a held fd. Either
111
+ * way, every onLine callback (including the final post-SIGTERM flush) has
112
+ * completed before the promise settles, exactly once.
113
+ *
114
+ * Resolution: `{ exitCode, stderrTail }` for ANY exit (the caller decides
115
+ * what a non-zero exit means). Rejection: spawn error, or timeout
116
+ * (CodexExecJsonTimeoutError — after the final flush, so already-parsed
117
+ * usage is never lost to the reject path).
118
+ */
119
+ export declare function spawnCodexExecJson(binary: string, args: string[], options: SpawnCodexExecJsonOptions): Promise<ExecJsonResult>;
120
+ export declare function createCodexOutDir(): string;
121
+ /**
122
+ * Remove a per-call out-dir. Pinned nesting per spec:
123
+ * `try { safeRm(dir) } finally { set.delete(dir) }` — a throwing deletion
124
+ * (EPERM, sandbox-revoked tmp access) cannot leak the in-flight entry.
125
+ * Never throws into the call path.
126
+ */
127
+ export declare function cleanupCodexOutDir(dir: string): void;
128
+ /** Sweep brakes (P19 — every one unit-tested). */
129
+ export declare const CODEX_OUT_SWEEP_INTERVAL_MS: number;
130
+ export declare const CODEX_OUT_SWEEP_AGE_MS: number;
131
+ export declare const CODEX_OUT_SWEEP_MAX_DELETIONS = 20;
132
+ export declare const CODEX_OUT_SWEEP_MAX_CANDIDATES = 200;
133
+ export interface SweepStaleCodexOutDirsOptions {
134
+ /** Test seams. */
135
+ now?: () => number;
136
+ tmpDirOverride?: string;
137
+ lstatImpl?: (p: string) => Promise<Stats>;
138
+ }
139
+ /**
140
+ * Opportunistic, bounded sweep of stale `instar-codex-out-*` dirs left by
141
+ * CRASHED processes (the in-process `finally` covers everything else).
142
+ *
143
+ * Fire-and-forget async — NEVER awaited by evaluate() (os.tmpdir() population
144
+ * scales with the whole machine; a synchronous readdir+lstat pass inside a
145
+ * judgment call would block the single server event loop on foreign state).
146
+ * `lastSweepAt` is set BEFORE the pass starts so concurrent calls cannot
147
+ * double-trigger. os.tmpdir() is hostile on Linux (world-writable /tmp): each
148
+ * candidate is lstat-verified — a directory, NOT a symlink, owned by this
149
+ * uid, mtime older than the threshold — and EPERM/ENOENT during deletion is
150
+ * swallowed, never thrown into the call path.
151
+ *
152
+ * Returns the sweep promise when a pass started (for tests), null when
153
+ * rate-floored.
154
+ */
155
+ export declare function maybeSweepStaleCodexOutDirs(options?: SweepStaleCodexOutDirsOptions): Promise<void> | null;
156
+ /** Test-only internals. */
157
+ export declare const _codexOutDirInternals: {
158
+ inFlightOutDirs: Set<string>;
159
+ resetSweepClock(): void;
160
+ };
68
161
  //# sourceMappingURL=codexSpawn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codexSpawn.d.ts","sourceRoot":"","sources":["../../../../../src/providers/adapters/openai-codex/transport/codexSpawn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAwED,MAAM,WAAW,yBAAyB;IACxC;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,MAAM,CAAC,UAAU,CAuCzF;AA6CD,MAAM,WAAW,+BAA+B;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC7C;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,+BAA+B,GACvC,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAmBzB;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAC3E,OAAO,CAAC,WAAW,CAAC,CAyDtB"}
1
+ {"version":3,"file":"codexSpawn.d.ts","sourceRoot":"","sources":["../../../../../src/providers/adapters/openai-codex/transport/codexSpawn.ts"],"names":[],"mappings":"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"}