agent-nuvira 1.59.4 → 1.59.6

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 CHANGED
@@ -2025,6 +2025,8 @@ npx tsc --noEmit
2025
2025
  | **v1.54.0** | Aug 2026 | VS Code extension telemetry attribution — the extension tags every IDE-driven LLM call with `BUFF_TELEMETRY_ACTION` (`ide-chat` / `ide-inline` / `ide-<command>`) so IDE usage gets its own rows in the per-action "learned from real usage" registry log + dashboard panel; 3,002 tests |
2026
2026
  | **v1.55.0** | Aug 2026 | `buff models unblock <provider>` escape hatch — manually release a registry-blocked provider (demote unavailable→unverified, clear quota parks + ledger cooldown, live re-probe with honest `stillBlocked`); also fixed the pre-existing `models status --json` / `refresh --json` flag-shadowing bug; 3,011 tests |
2027
2027
  | **v1.59.4** | Aug 2026 | P6 M6.6 Software Bill of Materials: `buff sbom` (CycloneDX 1.5 from lockfile, `--reproducible` pins), `sbom verify` (drift/tamper), `sbom licenses` (copyleft/unknown audit), `doctor --enterprise` Supply Chain check; 3,313 tests |
2028
+ | **v1.59.5** | Aug 2026 | Dashboard surfaces mid-stream flakiness end-to-end: violet `⏸ flaky N%` chips on registry rows (mirroring the CLI's `model explain` chip), `⏸ N flaky` provider badges, and a **Flaky mid-stream** stats card — the exact signal `routing.partialFlakiness` uses to deprioritize providers; 3,313 root tests |
2029
+ | **v1.59.6** | Aug 2026 | P6 M6.5 **Admin governance API** (`buff admin policy/allow/deny/allow-model/deny-model/max-cost/pii-min/unblock/clear` over the M2.4 policy) + dashboard **flakiness healing sparklines** (per-entry `partialHistory` trajectory, never hard-wiped) + Requests panel `⏸ N` partial chips (partials excluded from error rate); 3,328 root tests |
2028
2030
  | **v1.59.3** | Aug 2026 | `config set routing.<gate>` now accepts the boolean soft-signal keys (`capabilityFit`, `contextFit`, `partialFlakiness`); 3,286 tests |
2029
2031
  | **v1.59.2** | Aug 2026 | P4 M4.4 partial flakiness now feeds the ROUTER: registry `partialRate` EMA (bumped by mid-stream interruptions, healed by clean successes, never flips status) → reliability penalty (capped 40%) gated by `routing.partialFlakiness` (default ON) + transparent `⏸ flaky` chip in `models explain`; 3,284 tests |
2030
2032
  | **v1.59.1** | Aug 2026 | Dashboard: P4 M4.4 partial mid-stream interruption chips surface end-to-end (violet `⏸` timeline segment, day chips with streamed-chunk tooltip, per-action Partial section + stat); 3,276 tests |
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Admin command — P6 M6.5 governance policy surface for Auto routing.
3
+ *
4
+ * The M2.4 admin schema (routing.governance.*) is enforced inside the
5
+ * auto-router's hard-constraint slot on every pick — violating providers are
6
+ * ELIMINATED, never just scored lower. This command promotes that raw config
7
+ * surface into a first-class admin API:
8
+ *
9
+ * buff admin — Show the current policy (alias for `policy`)
10
+ * buff admin policy [--json] — Current allow/deny policy + enforcement status
11
+ * buff admin allow <provider...> — Add providers to governance.allowProviders
12
+ * buff admin deny <provider...> — Add providers to governance.denyProviders
13
+ * buff admin allow-model <m...> — Add models to governance.allowModels
14
+ * buff admin deny-model <m...> — Add models to governance.denyModels
15
+ * buff admin max-cost <usd> — Admin hard max cost per call (joins routing.maxCostUsd)
16
+ * buff admin pii-min <0..1> — Min privacy score for PII-matching tasks (default 1.0)
17
+ * buff admin unblock on|off — May `buff models unblock` override registry blocks?
18
+ * buff admin clear <field> — Remove one governance field (policy becomes permissive on it)
19
+ *
20
+ * All writes go through ConfigManager.save() — the same file/path the config
21
+ * CLI writes — so `buff config get routing.governance.<key>` agrees with the
22
+ * admin surface. Everything is additive: an empty policy is fully permissive.
23
+ */
24
+ import { Command } from 'commander';
25
+ import { BaseCommand } from './commands.js';
26
+ export declare class AdminCommand extends BaseCommand {
27
+ create(): Command;
28
+ private policyCommand;
29
+ private showPolicy;
30
+ private describeEnforcement;
31
+ private allowCommand;
32
+ private denyCommand;
33
+ private allowModelCommand;
34
+ private denyModelCommand;
35
+ private setListField;
36
+ private maxCostCommand;
37
+ private piiMinCommand;
38
+ private unblockCommand;
39
+ private clearCommand;
40
+ }
41
+ //# sourceMappingURL=admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/cli/admin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAe5C,qBAAa,YAAa,SAAQ,WAAW;IAC3C,MAAM,IAAI,OAAO;IAmBjB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,UAAU;IA0ClB,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,YAAY;CAiBrB"}
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Admin command — P6 M6.5 governance policy surface for Auto routing.
3
+ *
4
+ * The M2.4 admin schema (routing.governance.*) is enforced inside the
5
+ * auto-router's hard-constraint slot on every pick — violating providers are
6
+ * ELIMINATED, never just scored lower. This command promotes that raw config
7
+ * surface into a first-class admin API:
8
+ *
9
+ * buff admin — Show the current policy (alias for `policy`)
10
+ * buff admin policy [--json] — Current allow/deny policy + enforcement status
11
+ * buff admin allow <provider...> — Add providers to governance.allowProviders
12
+ * buff admin deny <provider...> — Add providers to governance.denyProviders
13
+ * buff admin allow-model <m...> — Add models to governance.allowModels
14
+ * buff admin deny-model <m...> — Add models to governance.denyModels
15
+ * buff admin max-cost <usd> — Admin hard max cost per call (joins routing.maxCostUsd)
16
+ * buff admin pii-min <0..1> — Min privacy score for PII-matching tasks (default 1.0)
17
+ * buff admin unblock on|off — May `buff models unblock` override registry blocks?
18
+ * buff admin clear <field> — Remove one governance field (policy becomes permissive on it)
19
+ *
20
+ * All writes go through ConfigManager.save() — the same file/path the config
21
+ * CLI writes — so `buff config get routing.governance.<key>` agrees with the
22
+ * admin surface. Everything is additive: an empty policy is fully permissive.
23
+ */
24
+ import { Command } from 'commander';
25
+ import { BaseCommand } from './commands.js';
26
+ import { logger } from '../utils/logger.js';
27
+ /** The governance fields `buff admin clear` accepts. */
28
+ const GOVERNANCE_FIELDS = [
29
+ 'allowProviders', 'denyProviders', 'allowModels', 'denyModels',
30
+ 'maxCostUsd', 'minPrivacyForPii', 'piiPatterns', 'allowUnblock',
31
+ ];
32
+ /** Union-append to a comma/space list field (deduped, order preserved). */
33
+ function appendUnique(current, additions) {
34
+ return [...new Set([...(current || []), ...additions])];
35
+ }
36
+ export class AdminCommand extends BaseCommand {
37
+ create() {
38
+ return new Command('admin')
39
+ .description('Admin governance policy for Auto routing (P6 M6.5) — allow/deny providers & models, hard cost cap, PII privacy, unblock control')
40
+ .addCommand(this.policyCommand())
41
+ .addCommand(this.allowCommand())
42
+ .addCommand(this.denyCommand())
43
+ .addCommand(this.allowModelCommand())
44
+ .addCommand(this.denyModelCommand())
45
+ .addCommand(this.maxCostCommand())
46
+ .addCommand(this.piiMinCommand())
47
+ .addCommand(this.unblockCommand())
48
+ .addCommand(this.clearCommand())
49
+ .action(() => {
50
+ this.showPolicy(false);
51
+ });
52
+ }
53
+ // ─── policy ─────────────────────────────────────────────────────────────
54
+ policyCommand() {
55
+ return new Command('policy')
56
+ .description('Show the current governance policy + enforcement status')
57
+ .option('--json', 'Machine-readable JSON output')
58
+ .action((options) => {
59
+ this.showPolicy(options?.json === true);
60
+ });
61
+ }
62
+ showPolicy(json) {
63
+ const gov = this.configManager.getAll().routing?.governance || {};
64
+ if (json) {
65
+ console.log(JSON.stringify({ governance: gov, enforced: this.describeEnforcement() }, null, 2));
66
+ return;
67
+ }
68
+ const hasAny = GOVERNANCE_FIELDS.some((f) => gov[f] !== undefined);
69
+ logger.highlight('\n ── Admin Governance Policy (P6 M6.5) ──\n');
70
+ if (!hasAny) {
71
+ console.log(' ⚖️ Policy is EMPTY — fully permissive. Auto routing may use any provider × model.');
72
+ console.log(' Add rules with: buff admin allow <provider> · buff admin deny <provider>');
73
+ console.log(' buff admin allow-model <model> · buff admin max-cost <usd>');
74
+ }
75
+ else {
76
+ const row = (label, value) => {
77
+ const rendered = Array.isArray(value)
78
+ ? value.join(', ')
79
+ : typeof value === 'number'
80
+ ? label.toLowerCase().includes('cost')
81
+ ? `$${value}`
82
+ : String(value)
83
+ : String(value);
84
+ console.log(` ${label}: ${rendered || '(none)'}`);
85
+ };
86
+ if (gov.allowProviders?.length)
87
+ row('allowProviders', gov.allowProviders);
88
+ else
89
+ console.log(' allowProviders: (none — all providers allowed)');
90
+ if (gov.denyProviders?.length)
91
+ row('denyProviders', gov.denyProviders);
92
+ else
93
+ console.log(' denyProviders: (none)');
94
+ if (gov.allowModels?.length)
95
+ row('allowModels', gov.allowModels);
96
+ else
97
+ console.log(' allowModels: (none — all models allowed)');
98
+ if (gov.denyModels?.length)
99
+ row('denyModels', gov.denyModels);
100
+ else
101
+ console.log(' denyModels: (none)');
102
+ row('maxCostUsd', gov.maxCostUsd ?? '(none — no admin cost cap)');
103
+ row('minPrivacyForPii', gov.minPrivacyForPii ?? '1.0 (local-only for PII)');
104
+ if (gov.piiPatterns?.length)
105
+ row('piiPatterns', gov.piiPatterns);
106
+ else
107
+ console.log(' piiPatterns: (none — no PII domain guard)');
108
+ row('allowUnblock', gov.allowUnblock ?? 'true (unblock escape hatch open)');
109
+ }
110
+ console.log(`\n ${this.describeEnforcement()}`);
111
+ console.log(' Rules are admin-HARD: violating providers are eliminated, never just scored lower.');
112
+ console.log('');
113
+ }
114
+ describeEnforcement() {
115
+ const gov = this.configManager.getAll().routing?.governance;
116
+ const rules = [
117
+ gov?.allowProviders?.length ? 'provider allow-list' : null,
118
+ gov?.denyProviders?.length ? 'provider deny-list' : null,
119
+ gov?.allowModels?.length ? 'model allow-list' : null,
120
+ gov?.denyModels?.length ? 'model deny-list' : null,
121
+ gov?.maxCostUsd !== undefined ? 'admin cost cap' : null,
122
+ gov?.piiPatterns?.length ? 'PII privacy guard' : null,
123
+ ].filter(Boolean);
124
+ return rules.length > 0
125
+ ? `Enforced on every Auto pick (${rules.join(', ')})`
126
+ : 'No rules active — every provider × model is eligible';
127
+ }
128
+ // ─── allow / deny providers ──────────────────────────────────────────────
129
+ allowCommand() {
130
+ return new Command('allow')
131
+ .description('Add providers to the allow-list (empty = all providers allowed)')
132
+ .argument('<providers...>', 'Provider ids (e.g. groq local)')
133
+ .action((providers) => {
134
+ this.setListField('allowProviders', providers);
135
+ });
136
+ }
137
+ denyCommand() {
138
+ return new Command('deny')
139
+ .description('Add providers to the deny-list (wins over the allow-list)')
140
+ .argument('<providers...>', 'Provider ids (e.g. gemini openrouter)')
141
+ .action((providers) => {
142
+ this.setListField('denyProviders', providers);
143
+ });
144
+ }
145
+ // ─── allow-model / deny-model ────────────────────────────────────────────
146
+ allowModelCommand() {
147
+ return new Command('allow-model')
148
+ .description('Add models to the allow-list — a provider survives only if one of its candidate models is listed')
149
+ .argument('<models...>', 'Model ids (e.g. llama-3.3-70b-versatile)')
150
+ .action((models) => {
151
+ this.setListField('allowModels', models);
152
+ });
153
+ }
154
+ denyModelCommand() {
155
+ return new Command('deny-model')
156
+ .description('Add models to the deny-list (wins over the allow-list)')
157
+ .argument('<models...>', 'Model ids')
158
+ .action((models) => {
159
+ this.setListField('denyModels', models);
160
+ });
161
+ }
162
+ setListField(field, values) {
163
+ const gov = this.configManager.getAll().routing?.governance || {};
164
+ const merged = appendUnique(gov[field], values);
165
+ this.configManager.save({
166
+ routing: { governance: { ...gov, [field]: merged } },
167
+ });
168
+ logger.success(`${field} = ${merged.join(', ')}`);
169
+ }
170
+ // ─── max-cost ────────────────────────────────────────────────────────────
171
+ maxCostCommand() {
172
+ return new Command('max-cost')
173
+ .description('Set the admin hard max cost per call (USD); joins routing.maxCostUsd (stricter wins)')
174
+ .argument('<usd>', 'Max cost per call in USD (e.g. 0.01)')
175
+ .action((usd) => {
176
+ const num = Number(usd);
177
+ if (isNaN(num) || num < 0) {
178
+ logger.error(`Invalid max-cost "${usd}". Must be a non-negative number (USD).`);
179
+ return;
180
+ }
181
+ const gov = this.configManager.getAll().routing?.governance || {};
182
+ this.configManager.save({
183
+ routing: { governance: { ...gov, maxCostUsd: num } },
184
+ });
185
+ logger.success(`governance.maxCostUsd = ${num}`);
186
+ });
187
+ }
188
+ // ─── pii-min ─────────────────────────────────────────────────────────────
189
+ piiMinCommand() {
190
+ return new Command('pii-min')
191
+ .description('Set the minimum privacy score (0-1) required when a task matches a PII pattern (default 1.0 = local-only)')
192
+ .argument('<score>', '0 to 1 (1.0 = only fully-local providers may serve PII)')
193
+ .action((score) => {
194
+ const num = Number(score);
195
+ if (isNaN(num) || num < 0 || num > 1) {
196
+ logger.error(`Invalid pii-min "${score}". Must be between 0 and 1.`);
197
+ return;
198
+ }
199
+ const gov = this.configManager.getAll().routing?.governance || {};
200
+ this.configManager.save({
201
+ routing: { governance: { ...gov, minPrivacyForPii: num } },
202
+ });
203
+ logger.success(`governance.minPrivacyForPii = ${num}`);
204
+ });
205
+ }
206
+ // ─── unblock on|off ──────────────────────────────────────────────────────
207
+ unblockCommand() {
208
+ return new Command('unblock')
209
+ .description('Control whether `buff models unblock` may override REGISTRY-learned blocks (false = admin-hard)')
210
+ .argument('<on|off>', 'on (escape hatch open, default) or off (admin-hard)')
211
+ .action((mode) => {
212
+ const lower = mode.trim().toLowerCase();
213
+ if (lower !== 'on' && lower !== 'off') {
214
+ logger.error(`Invalid unblock "${mode}". Use "on" or "off".`);
215
+ return;
216
+ }
217
+ const gov = this.configManager.getAll().routing?.governance || {};
218
+ this.configManager.save({
219
+ routing: { governance: { ...gov, allowUnblock: lower === 'on' } },
220
+ });
221
+ logger.success(`governance.allowUnblock = ${lower === 'on'} (${lower === 'on' ? 'unblock allowed' : 'registry blocks are admin-hard'})`);
222
+ });
223
+ }
224
+ // ─── clear <field> ───────────────────────────────────────────────────────
225
+ clearCommand() {
226
+ return new Command('clear')
227
+ .description('Remove one governance rule (the policy becomes permissive on that field)')
228
+ .argument('<field>', `Field to clear: ${GOVERNANCE_FIELDS.join(', ')}`)
229
+ .action((field) => {
230
+ if (!GOVERNANCE_FIELDS.includes(field)) {
231
+ logger.error(`Unknown governance field "${field}". Valid: ${GOVERNANCE_FIELDS.join(', ')}`);
232
+ return;
233
+ }
234
+ const gov = this.configManager.getAll().routing?.governance || {};
235
+ const { [field]: _removed, ...rest } = gov;
236
+ this.configManager.save({
237
+ routing: { governance: rest },
238
+ });
239
+ logger.success(`Cleared governance.${field}`);
240
+ });
241
+ }
242
+ }
243
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/cli/admin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/cli/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAKrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA0C9D;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CA8InC;AASD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,aAAa,EAAE,aAAa,EAC5B,cAAc,CAAC,EAAE,MAAM,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,iBAAiB,CAAA;CAAE,CAoD/C"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/cli/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAKrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA2C9D;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAgJnC;AASD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,aAAa,EAAE,aAAa,EAC5B,cAAc,CAAC,EAAE,MAAM,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,iBAAiB,CAAA;CAAE,CAoD/C"}
@@ -35,6 +35,7 @@ import { ProviderCommand } from './provider.js';
35
35
  import { SecurityCommand } from './security.js';
36
36
  import { AuditCommand } from './audit.js';
37
37
  import { SbomCommand } from './sbom.js';
38
+ import { AdminCommand } from './admin.js';
38
39
  import { FeedbackCommand } from './feedback.js';
39
40
  import { MarketplaceCommand } from './marketplace.js';
40
41
  import { MCPCommand } from './mcp.js';
@@ -59,10 +60,12 @@ export function createCLI() {
59
60
  const chatCmd = new ChatCommand();
60
61
  const editCmd = new EditCommand();
61
62
  const planCmd = new PlanCommand();
63
+ const adminCmd = new AdminCommand();
62
64
  const configCmd = new ConfigCommand();
63
65
  const cacheCmd = new CacheCommand();
64
66
  const modelsCmd = new ModelsCommand();
65
67
  const executeCmd = new ExecuteCommand();
68
+ program.addCommand(adminCmd.create());
66
69
  program.addCommand(chatCmd.create());
67
70
  program.addCommand(editCmd.create());
68
71
  program.addCommand(planCmd.create());
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/cli/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/cli/router.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,16 @@ export interface ModelRegistryEntry {
68
68
  * complete tomorrow); decays toward 0 on clean successes.
69
69
  */
70
70
  partialRate?: number;
71
+ /**
72
+ * P4 M4.4: recent mid-stream flakiness EMA samples [{ t, rate }] — newest
73
+ * last, capped at MAX_PARTIAL_HISTORY. Powers the dashboard's "flakiness
74
+ * over time" sparkline: a trend toward 0 = the provider is HEALING via
75
+ * clean successes; climbing = flakiness accumulating.
76
+ */
77
+ partialHistory?: Array<{
78
+ t: number;
79
+ rate: number;
80
+ }>;
71
81
  /** Epoch ms until which the entry is quota-parked (0 = not parked). */
72
82
  quotaParkedUntil: number;
73
83
  /** Where the current status came from. */
@@ -225,6 +235,8 @@ export declare const ACTION_LOG_FILENAME = "model-registry-actions.jsonl";
225
235
  export declare const MAX_ACTION_LOG_ENTRIES = 2000;
226
236
  /** Days of per-action daily buckets included in the telemetry timeline. */
227
237
  export declare const TIMELINE_DAYS = 14;
238
+ /** Cap on per-entry partialRate history samples (dashboard sparkline points). */
239
+ export declare const MAX_PARTIAL_HISTORY = 16;
228
240
  /** Verified entries older than this are demoted to `unverified` on prune. */
229
241
  export declare const DEFAULT_STALE_MS: number;
230
242
  /**
@@ -299,6 +311,12 @@ export declare class ModelRegistry {
299
311
  * @returns The first candidate that is verified+usable, else undefined.
300
312
  */
301
313
  resolveVerifiedModel(provider: string, preferred: string[], now?: number): string | undefined;
314
+ /**
315
+ * P4 M4.4: append the entry's current partialRate to its history (newest
316
+ * last, capped at MAX_PARTIAL_HISTORY). Callers invoke this right after a
317
+ * partialRate mutation so the dashboard sparkline sees the exact trajectory.
318
+ */
319
+ private pushPartialHistory;
302
320
  /**
303
321
  * listModels probe: mark the model as seen (unverified unless already
304
322
  * verified). Does NOT downgrade a verified entry — real verification wins.
@@ -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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"}
@@ -51,6 +51,8 @@ export const MAX_ACTION_LOG_ENTRIES = 2000;
51
51
  export const TIMELINE_DAYS = 14;
52
52
  /** VectorStore namespace that holds the enterprise mirror of the registry. */
53
53
  const VECTOR_NAMESPACE = 'model-registry';
54
+ /** Cap on per-entry partialRate history samples (dashboard sparkline points). */
55
+ export const MAX_PARTIAL_HISTORY = 16;
54
56
  /** Single vector id holding the whole registry snapshot (1-dim — we never search). */
55
57
  const VECTOR_SNAPSHOT_ID = 'snapshot';
56
58
  /** Verified entries older than this are demoted to `unverified` on prune. */
@@ -307,6 +309,17 @@ export class ModelRegistry {
307
309
  return verified.length > 0 ? verified[0] : undefined;
308
310
  }
309
311
  // ─── Writes (probe / spot-check / telemetry) ──────────────────────────────
312
+ /**
313
+ * P4 M4.4: append the entry's current partialRate to its history (newest
314
+ * last, capped at MAX_PARTIAL_HISTORY). Callers invoke this right after a
315
+ * partialRate mutation so the dashboard sparkline sees the exact trajectory.
316
+ */
317
+ pushPartialHistory(entry, now = Date.now()) {
318
+ const rate = entry.partialRate || 0;
319
+ const history = entry.partialHistory ? [...entry.partialHistory] : [];
320
+ history.push({ t: now, rate });
321
+ entry.partialHistory = history.slice(-MAX_PARTIAL_HISTORY);
322
+ }
310
323
  /**
311
324
  * listModels probe: mark the model as seen (unverified unless already
312
325
  * verified). Does NOT downgrade a verified entry — real verification wins.
@@ -329,6 +342,10 @@ export class ModelRegistry {
329
342
  lastUsedAt: existing?.lastUsedAt || 0,
330
343
  latencyMs: existing?.latencyMs,
331
344
  errorRate: existing?.errorRate || 0,
345
+ // P4 M4.4: a re-list never wipes the flakiness signal (same contract
346
+ // as markVerified — availability and reliability are separate axes).
347
+ partialRate: existing?.partialRate,
348
+ partialHistory: existing?.partialHistory,
332
349
  quotaParkedUntil: existing?.quotaParkedUntil || 0,
333
350
  source: 'probe',
334
351
  lastError: existing?.lastError,
@@ -385,8 +402,10 @@ export class ModelRegistry {
385
402
  measuredSamples: existing?.measuredSamples,
386
403
  // P4 M4.4: mid-stream flakiness survives a re-verify too — a success
387
404
  // DECAYS it (recordCall) rather than wiping it, so a single clean call
388
- // can't erase a flaky streak (that's the whole point of the EMA).
405
+ // can't erase a flaky streak (that's the whole point of the EMA). The
406
+ // trajectory (partialHistory) survives alongside it.
389
407
  partialRate: existing?.partialRate,
408
+ partialHistory: existing?.partialHistory,
390
409
  };
391
410
  this.persist();
392
411
  // A GENUINE promotion (was not verified → now verified) is a state change
@@ -479,6 +498,11 @@ export class ModelRegistry {
479
498
  lastUsedAt: existing?.lastUsedAt || 0,
480
499
  latencyMs: existing?.latencyMs,
481
500
  errorRate: existing?.errorRate || 0,
501
+ // P4 M4.4: an availability flip never resets reliability — the flaky
502
+ // streak (and its trajectory) survives an auth/403 mark, same contract
503
+ // as markVerified/markListed (a later success decays it, never a wipe).
504
+ partialRate: existing?.partialRate,
505
+ partialHistory: existing?.partialHistory,
482
506
  quotaParkedUntil: Math.max(existing?.quotaParkedUntil || 0, quotaParkedUntil),
483
507
  source,
484
508
  lastError: reason,
@@ -597,6 +621,9 @@ export class ModelRegistry {
597
621
  const prevPartial = this.data.entries[key].partialRate || 0;
598
622
  if (prevPartial > 0) {
599
623
  this.data.entries[key].partialRate = Math.max(0, prevPartial - 0.1);
624
+ // Record the healed point so the dashboard sparkline shows the decay
625
+ // (the provider demonstrably finishes → flakiness trending down).
626
+ this.pushPartialHistory(this.data.entries[key]);
600
627
  this.persist();
601
628
  }
602
629
  return;
@@ -686,6 +713,7 @@ export class ModelRegistry {
686
713
  if (existing) {
687
714
  const prev = existing.partialRate || 0;
688
715
  existing.partialRate = Math.min(1, prev + (1 - prev) * 0.25);
716
+ this.pushPartialHistory(existing);
689
717
  this.persist();
690
718
  }
691
719
  }