agent-nuvira 3.1.1 → 3.2.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 (172) hide show
  1. package/dist/agents/agents/reasoner.d.ts +8 -0
  2. package/dist/agents/agents/reasoner.d.ts.map +1 -1
  3. package/dist/agents/agents/reasoner.js +53 -2
  4. package/dist/agents/agents/reasoner.js.map +1 -1
  5. package/dist/agents/agents/writer.d.ts +24 -0
  6. package/dist/agents/agents/writer.d.ts.map +1 -1
  7. package/dist/agents/agents/writer.js +194 -0
  8. package/dist/agents/agents/writer.js.map +1 -1
  9. package/dist/agents/composite-plan.d.ts +143 -0
  10. package/dist/agents/composite-plan.d.ts.map +1 -0
  11. package/dist/agents/composite-plan.js +399 -0
  12. package/dist/agents/composite-plan.js.map +1 -0
  13. package/dist/agents/long-form-plan.d.ts +156 -0
  14. package/dist/agents/long-form-plan.d.ts.map +1 -0
  15. package/dist/agents/long-form-plan.js +274 -0
  16. package/dist/agents/long-form-plan.js.map +1 -0
  17. package/dist/agents/orchestrator.d.ts +107 -0
  18. package/dist/agents/orchestrator.d.ts.map +1 -1
  19. package/dist/agents/orchestrator.js +501 -35
  20. package/dist/agents/orchestrator.js.map +1 -1
  21. package/dist/agents/prompt-assembly.d.ts +8 -0
  22. package/dist/agents/prompt-assembly.d.ts.map +1 -1
  23. package/dist/agents/prompt-assembly.js +17 -0
  24. package/dist/agents/prompt-assembly.js.map +1 -1
  25. package/dist/cli/chat.d.ts +27 -0
  26. package/dist/cli/chat.d.ts.map +1 -1
  27. package/dist/cli/chat.js +133 -8
  28. package/dist/cli/chat.js.map +1 -1
  29. package/dist/cli/execute.d.ts +12 -0
  30. package/dist/cli/execute.d.ts.map +1 -1
  31. package/dist/cli/execute.js +105 -2
  32. package/dist/cli/execute.js.map +1 -1
  33. package/dist/cli/models.d.ts.map +1 -1
  34. package/dist/cli/models.js +10 -0
  35. package/dist/cli/models.js.map +1 -1
  36. package/dist/cli/nlu.d.ts +8 -0
  37. package/dist/cli/nlu.d.ts.map +1 -1
  38. package/dist/cli/nlu.js +57 -0
  39. package/dist/cli/nlu.js.map +1 -1
  40. package/dist/cli/trace.d.ts.map +1 -1
  41. package/dist/cli/trace.js +27 -0
  42. package/dist/cli/trace.js.map +1 -1
  43. package/dist/gateway/gateway-log.d.ts +1 -1
  44. package/dist/gateway/gateway-log.d.ts.map +1 -1
  45. package/dist/gateway/gateway-log.js.map +1 -1
  46. package/dist/gateway/registry.d.ts +116 -1
  47. package/dist/gateway/registry.d.ts.map +1 -1
  48. package/dist/gateway/registry.js +575 -52
  49. package/dist/gateway/registry.js.map +1 -1
  50. package/dist/inference/model-entitlement.d.ts +46 -0
  51. package/dist/inference/model-entitlement.d.ts.map +1 -0
  52. package/dist/inference/model-entitlement.js +98 -0
  53. package/dist/inference/model-entitlement.js.map +1 -0
  54. package/dist/inference/tool-call-utils.d.ts.map +1 -1
  55. package/dist/inference/tool-call-utils.js +70 -1
  56. package/dist/inference/tool-call-utils.js.map +1 -1
  57. package/dist/learning/autonomy-policy.d.ts +334 -0
  58. package/dist/learning/autonomy-policy.d.ts.map +1 -0
  59. package/dist/learning/autonomy-policy.js +500 -0
  60. package/dist/learning/autonomy-policy.js.map +1 -0
  61. package/dist/learning/credential-fingerprint.d.ts +58 -0
  62. package/dist/learning/credential-fingerprint.d.ts.map +1 -0
  63. package/dist/learning/credential-fingerprint.js +126 -0
  64. package/dist/learning/credential-fingerprint.js.map +1 -0
  65. package/dist/learning/deferred-task.d.ts +159 -0
  66. package/dist/learning/deferred-task.d.ts.map +1 -0
  67. package/dist/learning/deferred-task.js +451 -0
  68. package/dist/learning/deferred-task.js.map +1 -0
  69. package/dist/learning/deliverable-class.d.ts +130 -0
  70. package/dist/learning/deliverable-class.d.ts.map +1 -0
  71. package/dist/learning/deliverable-class.js +432 -0
  72. package/dist/learning/deliverable-class.js.map +1 -0
  73. package/dist/learning/long-form.d.ts +252 -0
  74. package/dist/learning/long-form.d.ts.map +1 -0
  75. package/dist/learning/long-form.js +510 -0
  76. package/dist/learning/long-form.js.map +1 -0
  77. package/dist/learning/model-first-router.d.ts +17 -0
  78. package/dist/learning/model-first-router.d.ts.map +1 -1
  79. package/dist/learning/model-first-router.js +35 -0
  80. package/dist/learning/model-first-router.js.map +1 -1
  81. package/dist/learning/model-registry.d.ts +96 -4
  82. package/dist/learning/model-registry.d.ts.map +1 -1
  83. package/dist/learning/model-registry.js +128 -6
  84. package/dist/learning/model-registry.js.map +1 -1
  85. package/dist/learning/model-warmup.d.ts +97 -2
  86. package/dist/learning/model-warmup.d.ts.map +1 -1
  87. package/dist/learning/model-warmup.js +165 -60
  88. package/dist/learning/model-warmup.js.map +1 -1
  89. package/dist/learning/prompt-layers.d.ts +61 -0
  90. package/dist/learning/prompt-layers.d.ts.map +1 -0
  91. package/dist/learning/prompt-layers.js +140 -0
  92. package/dist/learning/prompt-layers.js.map +1 -0
  93. package/dist/learning/provider-limits.d.ts +66 -0
  94. package/dist/learning/provider-limits.d.ts.map +1 -0
  95. package/dist/learning/provider-limits.js +184 -0
  96. package/dist/learning/provider-limits.js.map +1 -0
  97. package/dist/learning/reasoning-trace.d.ts +36 -1
  98. package/dist/learning/reasoning-trace.d.ts.map +1 -1
  99. package/dist/learning/reasoning-trace.js +36 -2
  100. package/dist/learning/reasoning-trace.js.map +1 -1
  101. package/dist/learning/resilient-call.d.ts +36 -1
  102. package/dist/learning/resilient-call.d.ts.map +1 -1
  103. package/dist/learning/resilient-call.js +118 -8
  104. package/dist/learning/resilient-call.js.map +1 -1
  105. package/dist/learning/unattended-job.d.ts +293 -0
  106. package/dist/learning/unattended-job.d.ts.map +1 -0
  107. package/dist/learning/unattended-job.js +544 -0
  108. package/dist/learning/unattended-job.js.map +1 -0
  109. package/dist/learning/unattended-progress.d.ts +95 -0
  110. package/dist/learning/unattended-progress.d.ts.map +1 -0
  111. package/dist/learning/unattended-progress.js +147 -0
  112. package/dist/learning/unattended-progress.js.map +1 -0
  113. package/dist/learning/working-state.d.ts +109 -0
  114. package/dist/learning/working-state.d.ts.map +1 -0
  115. package/dist/learning/working-state.js +244 -0
  116. package/dist/learning/working-state.js.map +1 -0
  117. package/dist/nlu/conversation-gate.d.ts +46 -0
  118. package/dist/nlu/conversation-gate.d.ts.map +1 -1
  119. package/dist/nlu/conversation-gate.js +73 -6
  120. package/dist/nlu/conversation-gate.js.map +1 -1
  121. package/dist/nlu/intent-confirm.d.ts +82 -0
  122. package/dist/nlu/intent-confirm.d.ts.map +1 -0
  123. package/dist/nlu/intent-confirm.js +146 -0
  124. package/dist/nlu/intent-confirm.js.map +1 -0
  125. package/dist/nlu/learnings.d.ts +101 -0
  126. package/dist/nlu/learnings.d.ts.map +1 -0
  127. package/dist/nlu/learnings.js +283 -0
  128. package/dist/nlu/learnings.js.map +1 -0
  129. package/dist/tools/coding-tools.d.ts.map +1 -1
  130. package/dist/tools/coding-tools.js +95 -19
  131. package/dist/tools/coding-tools.js.map +1 -1
  132. package/dist/tools/edit-verification.d.ts +125 -0
  133. package/dist/tools/edit-verification.d.ts.map +1 -0
  134. package/dist/tools/edit-verification.js +237 -0
  135. package/dist/tools/edit-verification.js.map +1 -0
  136. package/dist/tools/git-tool.d.ts.map +1 -1
  137. package/dist/tools/git-tool.js +37 -4
  138. package/dist/tools/git-tool.js.map +1 -1
  139. package/dist/tools/registry.d.ts +30 -2
  140. package/dist/tools/registry.d.ts.map +1 -1
  141. package/dist/tools/registry.js +40 -11
  142. package/dist/tools/registry.js.map +1 -1
  143. package/dist/tools/run-cli.d.ts.map +1 -1
  144. package/dist/tools/run-cli.js +40 -13
  145. package/dist/tools/run-cli.js.map +1 -1
  146. package/dist/tools/run-terminal.d.ts +6 -1
  147. package/dist/tools/run-terminal.d.ts.map +1 -1
  148. package/dist/tools/run-terminal.js +158 -18
  149. package/dist/tools/run-terminal.js.map +1 -1
  150. package/dist/tools/tool-loop.d.ts +35 -0
  151. package/dist/tools/tool-loop.d.ts.map +1 -1
  152. package/dist/tools/tool-loop.js +157 -3
  153. package/dist/tools/tool-loop.js.map +1 -1
  154. package/dist/web-dashboard/chat-console.d.ts +35 -0
  155. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  156. package/dist/web-dashboard/chat-console.js +97 -18
  157. package/dist/web-dashboard/chat-console.js.map +1 -1
  158. package/dist/web-dashboard/chat-retry.d.ts +143 -0
  159. package/dist/web-dashboard/chat-retry.d.ts.map +1 -0
  160. package/dist/web-dashboard/chat-retry.js +227 -0
  161. package/dist/web-dashboard/chat-retry.js.map +1 -0
  162. package/dist/web-dashboard/server.d.ts +17 -0
  163. package/dist/web-dashboard/server.d.ts.map +1 -1
  164. package/dist/web-dashboard/server.js +200 -9
  165. package/dist/web-dashboard/server.js.map +1 -1
  166. package/dist/web-dashboard/src/types.d.ts +81 -4
  167. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  168. package/package.json +1 -1
  169. package/src/web-dashboard/public/assets/{index-CQW0qv1r.js → index-kCUkORm7.js} +27 -27
  170. package/src/web-dashboard/public/assets/index-kCUkORm7.js.map +1 -0
  171. package/src/web-dashboard/public/index.html +1 -1
  172. package/src/web-dashboard/public/assets/index-CQW0qv1r.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"model-first-router.js","sourceRoot":"","sources":["../../src/learning/model-first-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-first-router.js","sourceRoot":"","sources":["../../src/learning/model-first-router.ts"],"names":[],"mappings":"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"}
@@ -98,6 +98,22 @@ export interface ModelRegistryEntry {
98
98
  * because a DIFFERENT model in the same provider hit a rate limit.
99
99
  */
100
100
  providerParked?: boolean;
101
+ /**
102
+ * A model-not-found is DEFINITIVE for the pair: `provider/model` does not
103
+ * exist and can never serve a request, however healthy the provider is.
104
+ *
105
+ * Observed live (2026-09-21): the failover walk offered `local/gemini-3.1-
106
+ * flash-lite` — the `local` provider is an Ollama runner that cannot serve a
107
+ * Google model. The pair had been marked `unavailable` ('model not found') and
108
+ * was STILL handed back as a candidate on every walk, paying a 404 round trip
109
+ * and taking the fallback slot a servable sibling should have had.
110
+ *
111
+ * An ordinary `unavailable` entry stays offerable on purpose (auth/quota may
112
+ * be repaired, and the walk reaches parked models deliberately). A DEAD PAIR
113
+ * is not offerable at all — only a real success clears it (see `markVerified`),
114
+ * so a provider that later adds the model re-earns its place automatically.
115
+ */
116
+ deadPair?: boolean;
101
117
  /** Where the current status came from. */
102
118
  source: ModelRegistrySource;
103
119
  /** Human reason for `unavailable` (e.g. '403 permission denied'). */
@@ -161,6 +177,21 @@ export interface ActionTelemetryEntry {
161
177
  costUsd?: number;
162
178
  /** Correlation id of the call when the caller has one (traceability). */
163
179
  callId?: string;
180
+ /**
181
+ * Where this record came from — `live` (a real run) or `test` (a test process).
182
+ *
183
+ * WHY: the charts read this log, and a test suite driving the real pipeline
184
+ * used to write real records for models that do not exist. One fake model
185
+ * (`local/nonexistent-fast-fail`) reached **2,110 of 3,436 lines** and was the
186
+ * largest row in "Learned from real usage". The harness leak is now fixed at
187
+ * the source (`tests/setup/hermetic-env.ts`), so this is the second layer:
188
+ * even if a record is written from a test process, the VIEW can tell, without
189
+ * rewriting a tamper-evident chain to hide it.
190
+ *
191
+ * Absent means `live` — an old record predates this field and was not
192
+ * necessarily synthetic.
193
+ */
194
+ origin?: 'live' | 'test';
164
195
  /**
165
196
  * P4 M4.4: tokens already streamed before a `partial` (mid-stream
166
197
  * interruption) — the bigger the number, the more "almost finished" the
@@ -171,8 +202,18 @@ export interface ActionTelemetryEntry {
171
202
  /** Aggregated "learned from real usage" view — per action (dashboard panel). */
172
203
  export interface ActionTelemetryInsights {
173
204
  enabled: boolean;
174
- /** Total logged events (capped at MAX_ACTION_LOG_ENTRIES). */
205
+ /** Total logged events INCLUDED in this view (test-origin records excluded). */
175
206
  total: number;
207
+ /**
208
+ * Records in the log that were written by a test process and are therefore
209
+ * excluded from every number in this view.
210
+ *
211
+ * Reported rather than silently dropped: the log is hash-chained, so the
212
+ * records remain on disk, and a reader who knows the total log size can see
213
+ * exactly how much of it is synthetic. Silence here would just be a different
214
+ * way of lying about the data.
215
+ */
216
+ synthetic: number;
176
217
  updatedAt: number;
177
218
  /** Per-action aggregates (actions with at least one event, sorted by name). */
178
219
  actions: Array<{
@@ -269,6 +310,22 @@ export declare const DEGRADED_UNAVAILABLE_THRESHOLD = 3;
269
310
  * permanently penalizes a recovered model in preferredModelsFor().
270
311
  */
271
312
  export declare const ERROR_RATE_HEAL_STEP = 0.1;
313
+ /**
314
+ * Where a telemetry record originated: a real run (`live`) or a test process
315
+ * (`test`).
316
+ *
317
+ * WHY THIS IS A RUNTIME CHECK, NOT A CALLER ARGUMENT. Relying on every call site
318
+ * to pass the right value means the one that forgets silently poisons the
319
+ * production store — which is exactly how `local/nonexistent-fast-fail` came to
320
+ * be the largest row on the dashboard. Detecting it at the single write path
321
+ * fails closed: an unrecognised process is `live`, and a known test runner is
322
+ * `test` whether or not the caller remembered.
323
+ *
324
+ * Three signals, cheapest first: an explicit override (so a harness can pin the
325
+ * value), then the test runners' own env markers (`vitest`/`jest` both set
326
+ * these), then `NODE_ENV=test`.
327
+ */
328
+ export declare function telemetryOrigin(): 'live' | 'test';
272
329
  /**
273
330
  * The config value `'default'` is a SENTINEL meaning "use the provider's
274
331
  * default model" — it is NOT a model id. Telemetry must never track it: a
@@ -296,7 +353,9 @@ export declare function readActionTelemetryFile(path: string): ActionTelemetryEn
296
353
  * verified/killed/transient series over time.
297
354
  */
298
355
  export declare function buildActionTimeline(entries: ActionTelemetryEntry[], days?: number, now?: number): ActionTelemetryInsights['actions'][number]['timeline'];
299
- export declare function aggregateActionTelemetry(entries: ActionTelemetryEntry[]): ActionTelemetryInsights;
356
+ export declare function aggregateActionTelemetry(entries: ActionTelemetryEntry[], options?: {
357
+ includeSynthetic?: boolean;
358
+ }): ActionTelemetryInsights;
300
359
  /**
301
360
  * Persistent model availability registry with sub-ms synchronous reads.
302
361
  *
@@ -325,12 +384,36 @@ export declare class ModelRegistry {
325
384
  * Sync — the fast path for routing and the model picker.
326
385
  */
327
386
  getVerifiedModels(provider: string, now?: number): string[];
387
+ /**
388
+ * Every provider the registry holds ANY data for — verified, unverified or
389
+ * dead, sorted.
390
+ *
391
+ * Deliberately broader than {@link getUsableProviders} (verified only). The
392
+ * warmup sweep needs the providers whose models it could VERIFY — which are
393
+ * exactly the ones still invisible to the router, i.e. the ones missing from
394
+ * the usable set.
395
+ */
396
+ getTrackedProviders(): string[];
328
397
  /**
329
398
  * ALL tracked models for a provider (verified + unverified + unavailable).
330
399
  * Returns full ModelRegistryEntry objects so callers can inspect context
331
400
  * windows, latency, error rates, etc. Sync.
332
401
  */
333
402
  getAllModelsForProvider(provider: string): ModelRegistryEntry[];
403
+ /**
404
+ * Provider × model pairs that are DEFINITIVELY dead — the provider answered
405
+ * "model not found" for them (see `ModelRegistryEntry.deadPair`). Sync + sub-ms.
406
+ *
407
+ * The candidate builders consult this so an impossible pair can never be
408
+ * offered again, and `nuvira models excluded` reports it, so "why is this
409
+ * model never tried?" is answerable instead of silent.
410
+ */
411
+ getDeadPairs(): Array<{
412
+ provider: string;
413
+ model: string;
414
+ }>;
415
+ /** Is this exact provider × model pair retired as definitively nonexistent? */
416
+ isDeadPair(provider: string, model: string | undefined): boolean;
334
417
  /** Providers that currently have at least one verified, usable model. Sync. */
335
418
  getUsableProviders(now?: number): string[];
336
419
  /**
@@ -531,8 +614,17 @@ export declare class ModelRegistry {
531
614
  */
532
615
  private appendActionLog;
533
616
  private countActionLogLines;
534
- /** Aggregated per-action "learned from real usage" view (dashboard / CLI). Sync. */
535
- getActionTelemetry(): ActionTelemetryInsights;
617
+ /**
618
+ * Aggregated per-action "learned from real usage" view (dashboard / CLI). Sync.
619
+ *
620
+ * `includeSynthetic` is for callers whose subject IS the log rather than the
621
+ * production view — a test asserting the write path, or an operator auditing a
622
+ * store that has test-origin rows in it. The default excludes them, because
623
+ * the charts read this and a test process must not be able to move them.
624
+ */
625
+ getActionTelemetry(options?: {
626
+ includeSynthetic?: boolean;
627
+ }): ActionTelemetryInsights;
536
628
  /**
537
629
  * Sync quota parks AND full usage telemetry from the QuotaLedger, so the
538
630
  * registry's FAISS/JSON snapshot alone answers "is it healthy, how many
@@ -1 +1 @@
1
- {"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../src/learning/model-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../src/learning/model-registry.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,35 @@ export const ERROR_RATE_HEAL_STEP = 0.1;
74
74
  function memoryDir() {
75
75
  return envBuff('MEMORY_DIR') || DEFAULT_MEMORY_DIR;
76
76
  }
77
+ /**
78
+ * Where a telemetry record originated: a real run (`live`) or a test process
79
+ * (`test`).
80
+ *
81
+ * WHY THIS IS A RUNTIME CHECK, NOT A CALLER ARGUMENT. Relying on every call site
82
+ * to pass the right value means the one that forgets silently poisons the
83
+ * production store — which is exactly how `local/nonexistent-fast-fail` came to
84
+ * be the largest row on the dashboard. Detecting it at the single write path
85
+ * fails closed: an unrecognised process is `live`, and a known test runner is
86
+ * `test` whether or not the caller remembered.
87
+ *
88
+ * Three signals, cheapest first: an explicit override (so a harness can pin the
89
+ * value), then the test runners' own env markers (`vitest`/`jest` both set
90
+ * these), then `NODE_ENV=test`.
91
+ */
92
+ export function telemetryOrigin() {
93
+ // Both spellings: the bare var for an explicit operator override, and the
94
+ // namespaced one (NUVIRA_/BUFF_) which `envBuff` resolves — the harness sets
95
+ // the namespaced form so "this is a test process" is stated, not inferred.
96
+ const override = process.env.TELEMETRY_ORIGIN ?? envBuff('TELEMETRY_ORIGIN');
97
+ if (override === 'test' || override === 'live')
98
+ return override;
99
+ if (process.env.VITEST || process.env.VITEST_WORKER_ID || process.env.JEST_WORKER_ID) {
100
+ return 'test';
101
+ }
102
+ if (envBuff('NODE_ENV') === 'test')
103
+ return 'test';
104
+ return 'live';
105
+ }
77
106
  function mirrorPath() {
78
107
  return join(memoryDir(), 'model-registry.json');
79
108
  }
@@ -83,6 +112,35 @@ function actionLogPath() {
83
112
  function entryKey(provider, model) {
84
113
  return `${provider}|${model || 'default'}`;
85
114
  }
115
+ /**
116
+ * Does an `unavailable` REASON mean the provider/model pair cannot exist?
117
+ *
118
+ * Deliberately narrow: it must be an explicit "this model does not exist on
119
+ * this endpoint", never a permission/per-account answer (a 403 or a quota
120
+ * denial can be repaired, so the pair must stay reachable).
121
+ */
122
+ /**
123
+ * Does an `unavailable` REASON mean the provider/model pair cannot exist?
124
+ *
125
+ * Deliberately narrow: it must be an explicit "this model does not exist on
126
+ * this endpoint", never a permission/per-account answer (a 403 or a quota
127
+ * denial can be repaired, so the pair must stay reachable).
128
+ */
129
+ const MODEL_NOT_FOUND_REASON_RE = /model not found|not in live model list|does not exist|no such model|model_not_found/i;
130
+ /**
131
+ * Is this entry a DEAD PAIR?
132
+ *
133
+ * The flag is the primary signal, but the reason check heals data written
134
+ * BEFORE the flag existed (and by any surface): an entry sitting at
135
+ * `unavailable` with a not-found reason IS a retired pair, and without this the
136
+ * live `local/gemini-3.1-flash-lite` entry would keep being offered until it
137
+ * failed one more time.
138
+ */
139
+ function isDeadEntry(e) {
140
+ if (e.deadPair)
141
+ return true;
142
+ return e.status === 'unavailable' && MODEL_NOT_FOUND_REASON_RE.test(e.lastError ?? '');
143
+ }
86
144
  /**
87
145
  * The config value `'default'` is a SENTINEL meaning "use the provider's
88
146
  * default model" — it is NOT a model id. Telemetry must never track it: a
@@ -181,9 +239,17 @@ export function buildActionTimeline(entries, days = TIMELINE_DAYS, now = Date.no
181
239
  events: [...counts.events.values()],
182
240
  }));
183
241
  }
184
- export function aggregateActionTelemetry(entries) {
242
+ export function aggregateActionTelemetry(entries, options = {}) {
243
+ // Test-origin records are EXCLUDED from what the dashboard reports as learned
244
+ // behaviour — the view stays honest without rewriting the chain that records
245
+ // them (see `origin` on ActionTelemetryEntry). Records with no `origin`
246
+ // predate the field and are treated as live, so old data keeps working.
247
+ const syntheticEntries = entries.filter((e) => e.origin === 'test');
248
+ const usable = options.includeSynthetic
249
+ ? entries
250
+ : entries.filter((e) => e.origin !== 'test');
185
251
  const byAction = new Map();
186
- for (const e of entries) {
252
+ for (const e of usable) {
187
253
  const list = byAction.get(e.action);
188
254
  if (list)
189
255
  list.push(e);
@@ -218,7 +284,8 @@ export function aggregateActionTelemetry(entries) {
218
284
  .sort((a, b) => a.action.localeCompare(b.action));
219
285
  return {
220
286
  enabled: actions.length > 0,
221
- total: entries.length,
287
+ total: usable.length,
288
+ synthetic: options.includeSynthetic ? 0 : syntheticEntries.length,
222
289
  updatedAt: Date.now(),
223
290
  actions,
224
291
  };
@@ -285,6 +352,18 @@ export class ModelRegistry {
285
352
  .sort((a, b) => b.lastVerifiedAt - a.lastVerifiedAt)
286
353
  .map((e) => e.model);
287
354
  }
355
+ /**
356
+ * Every provider the registry holds ANY data for — verified, unverified or
357
+ * dead, sorted.
358
+ *
359
+ * Deliberately broader than {@link getUsableProviders} (verified only). The
360
+ * warmup sweep needs the providers whose models it could VERIFY — which are
361
+ * exactly the ones still invisible to the router, i.e. the ones missing from
362
+ * the usable set.
363
+ */
364
+ getTrackedProviders() {
365
+ return [...new Set(Object.values(this.data.entries).map((e) => e.provider))].sort();
366
+ }
288
367
  /**
289
368
  * ALL tracked models for a provider (verified + unverified + unavailable).
290
369
  * Returns full ModelRegistryEntry objects so callers can inspect context
@@ -293,6 +372,29 @@ export class ModelRegistry {
293
372
  getAllModelsForProvider(provider) {
294
373
  return Object.values(this.data.entries).filter((e) => e.provider === provider);
295
374
  }
375
+ /**
376
+ * Provider × model pairs that are DEFINITIVELY dead — the provider answered
377
+ * "model not found" for them (see `ModelRegistryEntry.deadPair`). Sync + sub-ms.
378
+ *
379
+ * The candidate builders consult this so an impossible pair can never be
380
+ * offered again, and `nuvira models excluded` reports it, so "why is this
381
+ * model never tried?" is answerable instead of silent.
382
+ */
383
+ getDeadPairs() {
384
+ const out = [];
385
+ for (const e of Object.values(this.data.entries)) {
386
+ if (isDeadEntry(e))
387
+ out.push({ provider: e.provider, model: e.model });
388
+ }
389
+ return out;
390
+ }
391
+ /** Is this exact provider × model pair retired as definitively nonexistent? */
392
+ isDeadPair(provider, model) {
393
+ if (!model || model === 'default')
394
+ return false;
395
+ const entry = this.data.entries[entryKey(provider, model)];
396
+ return !!entry && isDeadEntry(entry);
397
+ }
296
398
  /** Providers that currently have at least one verified, usable model. Sync. */
297
399
  getUsableProviders(now = Date.now()) {
298
400
  const providers = new Set();
@@ -465,6 +567,11 @@ export class ModelRegistry {
465
567
  quotaParkedUntil: existing?.quotaParkedUntil || 0,
466
568
  source: 'probe',
467
569
  lastError: existing?.lastError,
570
+ // The provider's OWN model list is authoritative about what it serves:
571
+ // a pair that appears in a fresh list is not a dead pair, so the flag is
572
+ // dropped. A bogus list re-earns the flag on the next call (one 404), so
573
+ // this is self-correcting rather than a permanent re-offer loop.
574
+ deadPair: undefined,
468
575
  };
469
576
  }
470
577
  this.persist();
@@ -635,6 +742,10 @@ export class ModelRegistry {
635
742
  quotaParkedUntil: Math.max(existing?.quotaParkedUntil || 0, quotaParkedUntil),
636
743
  source,
637
744
  lastError: reason,
745
+ // A "model not found" answer is definitive for this provider × model, so
746
+ // the pair is retired from every candidate pool (see `deadPair`). The flag
747
+ // is sticky across ordinary failures and cleared only by a real success.
748
+ deadPair: existing?.deadPair || MODEL_NOT_FOUND_REASON_RE.test(reason),
638
749
  tokensConsumed: existing?.tokensConsumed,
639
750
  requests: existing?.requests,
640
751
  resetsInMs: existing?.resetsInMs,
@@ -954,6 +1065,10 @@ export class ModelRegistry {
954
1065
  */
955
1066
  appendActionLog(entry) {
956
1067
  try {
1068
+ // Stamp provenance ONCE, at the single write path, so every consumer (the
1069
+ // registry API, the dashboard, a CLI report) sees the same origin.
1070
+ if (!entry.origin)
1071
+ entry.origin = telemetryOrigin();
957
1072
  const dir = memoryDir();
958
1073
  if (!existsSync(dir))
959
1074
  mkdirSync(dir, { recursive: true });
@@ -988,9 +1103,16 @@ export class ModelRegistry {
988
1103
  return 0;
989
1104
  }
990
1105
  }
991
- /** Aggregated per-action "learned from real usage" view (dashboard / CLI). Sync. */
992
- getActionTelemetry() {
993
- return aggregateActionTelemetry(readActionTelemetryFile(actionLogPath()));
1106
+ /**
1107
+ * Aggregated per-action "learned from real usage" view (dashboard / CLI). Sync.
1108
+ *
1109
+ * `includeSynthetic` is for callers whose subject IS the log rather than the
1110
+ * production view — a test asserting the write path, or an operator auditing a
1111
+ * store that has test-origin rows in it. The default excludes them, because
1112
+ * the charts read this and a test process must not be able to move them.
1113
+ */
1114
+ getActionTelemetry(options = {}) {
1115
+ return aggregateActionTelemetry(readActionTelemetryFile(actionLogPath()), options);
994
1116
  }
995
1117
  /**
996
1118
  * Sync quota parks AND full usage telemetry from the QuotaLedger, so the