@warmdrift/kgauto-compiler 2.0.0-alpha.94 → 2.0.0-alpha.95

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.
@@ -2,7 +2,7 @@ import {
2
2
  allProfiles,
3
3
  resolveModelAlias,
4
4
  tryGetProfile
5
- } from "./chunk-57XCZGN5.mjs";
5
+ } from "./chunk-D3BVYXNA.mjs";
6
6
 
7
7
  // src/brain-query.ts
8
8
  var FRESH_SNAPSHOT = {
@@ -54,6 +54,26 @@ var PROFILES_RAW = [
54
54
  // on Fable 5 (omit instead) — MOOT here: ANTHROPIC_LOWERING_BASE carries no
55
55
  // `thinking` field, so kgauto never sends the param. (L-049/L-081.)
56
56
  id: "claude-fable-5",
57
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 32.
58
+ // This model declared no cliffs, which is why the offline check had
59
+ // nothing measured to say about it. The claim states its denominator:
60
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
61
+ // evidence of correct selection + 3-way parallel emission at that menu
62
+ // size — NOT evidence of 20 concurrent calls.
63
+ probedLimits: [
64
+ {
65
+ metric: "tool_count",
66
+ testedAt: 20,
67
+ demanded: 3,
68
+ served: [3, 3, 3],
69
+ outcome: "held",
70
+ trials: 3,
71
+ lastProbed: "2026-08-28",
72
+ probeRunId: 32,
73
+ route: "direct",
74
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
75
+ }
76
+ ],
57
77
  verifiedAgainstDocs: "2026-06-21",
58
78
  provider: "anthropic",
59
79
  status: "current",
@@ -174,6 +194,26 @@ var PROFILES_RAW = [
174
194
  // failure, where a template-clone of PRICE (the field that actually varies,
175
195
  // there by 2.5-3.75x) went unverified for 65 days.
176
196
  id: "claude-opus-5",
197
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 33.
198
+ // This model declared no cliffs, which is why the offline check had
199
+ // nothing measured to say about it. The claim states its denominator:
200
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
201
+ // evidence of correct selection + 3-way parallel emission at that menu
202
+ // size — NOT evidence of 20 concurrent calls.
203
+ probedLimits: [
204
+ {
205
+ metric: "tool_count",
206
+ testedAt: 20,
207
+ demanded: 3,
208
+ served: [3, 3, 3],
209
+ outcome: "held",
210
+ trials: 3,
211
+ lastProbed: "2026-08-28",
212
+ probeRunId: 33,
213
+ route: "direct",
214
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
215
+ }
216
+ ],
177
217
  verifiedAgainstDocs: "2026-07-25",
178
218
  provider: "anthropic",
179
219
  status: "current",
@@ -1052,6 +1092,26 @@ var PROFILES_RAW = [
1052
1092
  },
1053
1093
  {
1054
1094
  id: "gpt-5.4-mini",
1095
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 34.
1096
+ // This model declared no cliffs, which is why the offline check had
1097
+ // nothing measured to say about it. The claim states its denominator:
1098
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
1099
+ // evidence of correct selection + 3-way parallel emission at that menu
1100
+ // size — NOT evidence of 20 concurrent calls.
1101
+ probedLimits: [
1102
+ {
1103
+ metric: "tool_count",
1104
+ testedAt: 20,
1105
+ demanded: 3,
1106
+ served: [3, 3, 3],
1107
+ outcome: "held",
1108
+ trials: 3,
1109
+ lastProbed: "2026-08-28",
1110
+ probeRunId: 34,
1111
+ route: "direct",
1112
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
1113
+ }
1114
+ ],
1055
1115
  verifiedAgainstDocs: "2026-05-17",
1056
1116
  provider: "openai",
1057
1117
  status: "current",
@@ -1095,6 +1155,26 @@ var PROFILES_RAW = [
1095
1155
  },
1096
1156
  {
1097
1157
  id: "gpt-5.4-nano",
1158
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 35.
1159
+ // This model declared no cliffs, which is why the offline check had
1160
+ // nothing measured to say about it. The claim states its denominator:
1161
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
1162
+ // evidence of correct selection + 3-way parallel emission at that menu
1163
+ // size — NOT evidence of 20 concurrent calls.
1164
+ probedLimits: [
1165
+ {
1166
+ metric: "tool_count",
1167
+ testedAt: 20,
1168
+ demanded: 3,
1169
+ served: [3, 3, 3],
1170
+ outcome: "held",
1171
+ trials: 3,
1172
+ lastProbed: "2026-08-28",
1173
+ probeRunId: 35,
1174
+ route: "direct",
1175
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
1176
+ }
1177
+ ],
1098
1178
  verifiedAgainstDocs: "2026-05-17",
1099
1179
  provider: "openai",
1100
1180
  status: "current",
@@ -1710,6 +1790,26 @@ var PROFILES_RAW = [
1710
1790
  // 'preview' per the Fable precedent — no brain evidence yet; promotion to
1711
1791
  // 'current' is an explicit call. (L-049/L-081.)
1712
1792
  id: "claude-sonnet-5",
1793
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 36.
1794
+ // This model declared no cliffs, which is why the offline check had
1795
+ // nothing measured to say about it. The claim states its denominator:
1796
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
1797
+ // evidence of correct selection + 3-way parallel emission at that menu
1798
+ // size — NOT evidence of 20 concurrent calls.
1799
+ probedLimits: [
1800
+ {
1801
+ metric: "tool_count",
1802
+ testedAt: 20,
1803
+ demanded: 3,
1804
+ served: [3, 3, 3],
1805
+ outcome: "held",
1806
+ trials: 3,
1807
+ lastProbed: "2026-08-28",
1808
+ probeRunId: 36,
1809
+ route: "direct",
1810
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
1811
+ }
1812
+ ],
1713
1813
  verifiedAgainstDocs: "2026-08-14",
1714
1814
  provider: "anthropic",
1715
1815
  status: "current",
@@ -9,7 +9,7 @@ import {
9
9
  getModelCompatibility,
10
10
  isBrainQueryActiveFor,
11
11
  policySetHas
12
- } from "./chunk-OAJZLZBN.mjs";
12
+ } from "./chunk-BJD75WCL.mjs";
13
13
  import {
14
14
  bucketContext,
15
15
  bucketHistory,
@@ -30,7 +30,7 @@ import {
30
30
  latencyTierOf,
31
31
  resolveModelAlias,
32
32
  tryGetProfile
33
- } from "./chunk-57XCZGN5.mjs";
33
+ } from "./chunk-D3BVYXNA.mjs";
34
34
 
35
35
  // src/models-brain.ts
36
36
  function isModelRow(x) {
@@ -88,7 +88,11 @@ function rowToProfile(row) {
88
88
  // latency_tier → undefined (latencyTierOf derives from tags; not
89
89
  // safety-critical). archetype_conventions already array-validated above.
90
90
  latencyTier: normalizeLatencyTier(row.latency_tier),
91
- archetypeConventions: row.archetype_conventions ?? void 0
91
+ archetypeConventions: row.archetype_conventions ?? void 0,
92
+ // alpha.95 — measured negatives. NOT safety-critical (nothing routes on
93
+ // them), so a type-mismatch degrades to undefined rather than nulling
94
+ // the whole profile the way a corrupt `cliffs` does.
95
+ probedLimits: Array.isArray(row.probed_limits) ? row.probed_limits : void 0
92
96
  };
93
97
  } catch {
94
98
  return null;
@@ -128,7 +132,12 @@ function profileToRow(profile, opts = {}) {
128
132
  // so a reseed from bundled profiles makes the latency lever + schema
129
133
  // conventions live warm. Closes the silently-dropped-field gap.
130
134
  latency_tier: profile.latencyTier ?? null,
131
- archetype_conventions: profile.archetypeConventions ?? null
135
+ archetype_conventions: profile.archetypeConventions ?? null,
136
+ // alpha.95 — round-trip the measured negatives. The s56 rule: a new
137
+ // ModelProfile field must land in migration + BOTH transformers + the
138
+ // config-endpoint cols list + the parity test, or it is theater for every
139
+ // brain-connected consumer.
140
+ probed_limits: profile.probedLimits ?? null
132
141
  };
133
142
  if (opts.verifiedAgainstDocs !== void 0) {
134
143
  row.verified_against_docs = opts.verifiedAgainstDocs;
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var LIBRARY_VERSION = "2.0.0-alpha.94";
2
+ var LIBRARY_VERSION = "2.0.0-alpha.95";
3
3
 
4
4
  // src/key-health.ts
5
5
  var JSON_HEADERS = { "Content-Type": "application/json" };
@@ -99,6 +99,26 @@ var PROFILES_RAW = [
99
99
  // on Fable 5 (omit instead) — MOOT here: ANTHROPIC_LOWERING_BASE carries no
100
100
  // `thinking` field, so kgauto never sends the param. (L-049/L-081.)
101
101
  id: "claude-fable-5",
102
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 32.
103
+ // This model declared no cliffs, which is why the offline check had
104
+ // nothing measured to say about it. The claim states its denominator:
105
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
106
+ // evidence of correct selection + 3-way parallel emission at that menu
107
+ // size — NOT evidence of 20 concurrent calls.
108
+ probedLimits: [
109
+ {
110
+ metric: "tool_count",
111
+ testedAt: 20,
112
+ demanded: 3,
113
+ served: [3, 3, 3],
114
+ outcome: "held",
115
+ trials: 3,
116
+ lastProbed: "2026-08-28",
117
+ probeRunId: 32,
118
+ route: "direct",
119
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
120
+ }
121
+ ],
102
122
  verifiedAgainstDocs: "2026-06-21",
103
123
  provider: "anthropic",
104
124
  status: "current",
@@ -219,6 +239,26 @@ var PROFILES_RAW = [
219
239
  // failure, where a template-clone of PRICE (the field that actually varies,
220
240
  // there by 2.5-3.75x) went unverified for 65 days.
221
241
  id: "claude-opus-5",
242
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 33.
243
+ // This model declared no cliffs, which is why the offline check had
244
+ // nothing measured to say about it. The claim states its denominator:
245
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
246
+ // evidence of correct selection + 3-way parallel emission at that menu
247
+ // size — NOT evidence of 20 concurrent calls.
248
+ probedLimits: [
249
+ {
250
+ metric: "tool_count",
251
+ testedAt: 20,
252
+ demanded: 3,
253
+ served: [3, 3, 3],
254
+ outcome: "held",
255
+ trials: 3,
256
+ lastProbed: "2026-08-28",
257
+ probeRunId: 33,
258
+ route: "direct",
259
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
260
+ }
261
+ ],
222
262
  verifiedAgainstDocs: "2026-07-25",
223
263
  provider: "anthropic",
224
264
  status: "current",
@@ -1097,6 +1137,26 @@ var PROFILES_RAW = [
1097
1137
  },
1098
1138
  {
1099
1139
  id: "gpt-5.4-mini",
1140
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 34.
1141
+ // This model declared no cliffs, which is why the offline check had
1142
+ // nothing measured to say about it. The claim states its denominator:
1143
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
1144
+ // evidence of correct selection + 3-way parallel emission at that menu
1145
+ // size — NOT evidence of 20 concurrent calls.
1146
+ probedLimits: [
1147
+ {
1148
+ metric: "tool_count",
1149
+ testedAt: 20,
1150
+ demanded: 3,
1151
+ served: [3, 3, 3],
1152
+ outcome: "held",
1153
+ trials: 3,
1154
+ lastProbed: "2026-08-28",
1155
+ probeRunId: 34,
1156
+ route: "direct",
1157
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
1158
+ }
1159
+ ],
1100
1160
  verifiedAgainstDocs: "2026-05-17",
1101
1161
  provider: "openai",
1102
1162
  status: "current",
@@ -1140,6 +1200,26 @@ var PROFILES_RAW = [
1140
1200
  },
1141
1201
  {
1142
1202
  id: "gpt-5.4-nano",
1203
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 35.
1204
+ // This model declared no cliffs, which is why the offline check had
1205
+ // nothing measured to say about it. The claim states its denominator:
1206
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
1207
+ // evidence of correct selection + 3-way parallel emission at that menu
1208
+ // size — NOT evidence of 20 concurrent calls.
1209
+ probedLimits: [
1210
+ {
1211
+ metric: "tool_count",
1212
+ testedAt: 20,
1213
+ demanded: 3,
1214
+ served: [3, 3, 3],
1215
+ outcome: "held",
1216
+ trials: 3,
1217
+ lastProbed: "2026-08-28",
1218
+ probeRunId: 35,
1219
+ route: "direct",
1220
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
1221
+ }
1222
+ ],
1143
1223
  verifiedAgainstDocs: "2026-05-17",
1144
1224
  provider: "openai",
1145
1225
  status: "current",
@@ -1755,6 +1835,26 @@ var PROFILES_RAW = [
1755
1835
  // 'preview' per the Fable precedent — no brain evidence yet; promotion to
1756
1836
  // 'current' is an explicit call. (L-049/L-081.)
1757
1837
  id: "claude-sonnet-5",
1838
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 36.
1839
+ // This model declared no cliffs, which is why the offline check had
1840
+ // nothing measured to say about it. The claim states its denominator:
1841
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
1842
+ // evidence of correct selection + 3-way parallel emission at that menu
1843
+ // size — NOT evidence of 20 concurrent calls.
1844
+ probedLimits: [
1845
+ {
1846
+ metric: "tool_count",
1847
+ testedAt: 20,
1848
+ demanded: 3,
1849
+ served: [3, 3, 3],
1850
+ outcome: "held",
1851
+ trials: 3,
1852
+ lastProbed: "2026-08-28",
1853
+ probeRunId: 36,
1854
+ route: "direct",
1855
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
1856
+ }
1857
+ ],
1758
1858
  verifiedAgainstDocs: "2026-08-14",
1759
1859
  provider: "anthropic",
1760
1860
  status: "current",
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  ARCHETYPE_FLOOR_DEFAULT,
3
3
  getDefaultFallbackChain
4
- } from "../chunk-OAJZLZBN.mjs";
4
+ } from "../chunk-BJD75WCL.mjs";
5
5
  import {
6
6
  tryGetProfile
7
- } from "../chunk-57XCZGN5.mjs";
7
+ } from "../chunk-D3BVYXNA.mjs";
8
8
  import {
9
9
  subscribe,
10
10
  subscribeApp
package/dist/index.d.mts CHANGED
@@ -3,7 +3,7 @@ import { N as NormalizedResponse, A as ApiKeys, P as ProviderOverrides, C as Com
3
3
  export { n as CallAttempt, o as CallError, p as ChainModelEntry, q as ChainWithGrounding, r as Constraints, E as EffortLevel, s as GoldenCaptureOptions, H as HistoryCachePolicy, I as IntentDeclaration, M as Message, t as MutationApplied, u as NormalizedTokens, v as OutcomeKind, w as PerAxisMetricsByModel, x as PromptSection, y as SectionKind, z as ShadowProbeConfig, T as ToolCall, D as ToolDefinition, J as captureGoldenIr, K as hasMutation, L as mutationId, Q as parseGoldenCaptureRate, U as resolveGoldenCaptureRate, V as shouldCaptureGolden } from './ir-DyMJ84je.mjs';
4
4
  export { BrainForwardConfig, BrainForwardRoutes, createBrainForwardRoutes } from './brain-proxy.mjs';
5
5
  export { KEY_FINGERPRINT_DOMAIN, KEY_FINGERPRINT_LENGTH, KeyHealthConfig, KeyHealthProvider, KeyHealthResponseBody, KeyHealthResult, KeyHealthRoute, createKeyHealthRoute, keyFingerprint } from './key-health.mjs';
6
- import { ModelProfile, ArchetypeConvention } from './profiles.mjs';
6
+ import { ModelProfile, ArchetypeConvention, ProbedLimit } from './profiles.mjs';
7
7
  export { ALIASES, CacheStrategy, CliffRule, LATENCY_TIER_MS, LatencyTier, LoweringSpec, RecoveryRule, StructuredOutputCapability, SystemPromptMode, _testClearConsumerProfiles, allProfiles, bestEffortProfile, getProfile, inferProviderFromId, latencyTierOf, profilesByProvider, registerProfiles, resolveModelAlias, tryGetProfile } from './profiles.mjs';
8
8
  import { IntentArchetypeName, OutputMode } from './dialect.mjs';
9
9
  export { ALL_ARCHETYPES, ContextBucket, DIALECT_VERSION, HistoryDepth, INTENT_ARCHETYPES, ShapeSignature, ToolCountBucket, bucketContext, bucketHistory, bucketToolCount, hashShape, isArchetype, learningKey } from './dialect.mjs';
@@ -76,6 +76,13 @@ interface ExecuteErr {
76
76
  }
77
77
  type ExecuteResult = ExecuteOk | ExecuteErr;
78
78
  declare function execute(request: CompiledRequest, opts?: ExecuteOptions): Promise<ExecuteResult>;
79
+ /**
80
+ * Provider wordings that mean "this model will never serve THIS caller" —
81
+ * delistings and retirements that arrive on statuses other than 404. Kept
82
+ * deliberately narrow: a match reroutes the call to the next chain target,
83
+ * so a false positive here would mask a real validation error.
84
+ */
85
+ declare function isModelUnavailableMessage(message: string | undefined): boolean;
79
86
 
80
87
  /**
81
88
  * call() — the high-level orchestrator that owns the network round-trip.
@@ -1234,7 +1241,7 @@ declare function runStrategyEvalWithAttribution(opts: Omit<GoldenEvalOptions, 'a
1234
1241
  * guard in `tests/version.test.ts` fails the suite (and therefore
1235
1242
  * `prepublishOnly`) when they diverge — a stale constant cannot reach npm.
1236
1243
  */
1237
- declare const LIBRARY_VERSION = "2.0.0-alpha.94";
1244
+ declare const LIBRARY_VERSION = "2.0.0-alpha.95";
1238
1245
 
1239
1246
  /**
1240
1247
  * Oracle contract — how an app tells the brain whether a response was good.
@@ -3219,6 +3226,8 @@ interface ModelBrainRow {
3219
3226
  latency_tier?: string | null;
3220
3227
  /** alpha.49 — per-archetype prompt-shape conventions (migration 028 column). */
3221
3228
  archetype_conventions?: ArchetypeConvention[] | null;
3229
+ /** alpha.95 — measured negatives from --discover (migration 070 column). */
3230
+ probed_limits?: ProbedLimit[] | null;
3222
3231
  }
3223
3232
  interface ProfileToRowOptions {
3224
3233
  /** e.g. `'2.0.0-alpha.12'` — leave undefined to omit from row. */
@@ -4055,4 +4064,4 @@ declare function planDecomposition(args: PlanDecompositionArgs): DecompositionPl
4055
4064
  */
4056
4065
  declare function compile(ir: PromptIR, opts?: CompileOptions): CompileResult;
4057
4066
 
4058
- export { ABSOLUTE_FLOOR, type AISDKConvertedMessage, ALT_BLIND_TOKEN_BUDGET_BREACH, ALT_STRATEGY_IDS, ARCHETYPE_FAMILY_FITS, ARCHETYPE_FLOOR_DEFAULT, type ActionableAdvisory, Adapter, type AdvisoryEvidenceWindow, type AdvisoryResolutionSource, type AdvisorySeverity, type AdvisoryStatus, type AdvisorySuggestedFix, ApiKeys, type AppOracle, type ApplySectionRewritesArgs, type ApplySectionRewritesResult, ArchetypeConvention, type ArchetypeFamilyFit, type ArchetypePerfMap, type ArchetypePerfNMap, type ArchetypePerfScoreResult, type AttachCacheControlResult, BLOCKED_MODEL_FAMILY_SIBLING_SERVED_CODE, BLOCKED_MODEL_NOT_IN_ROSTER_CODE, BRAIN_READ_ENV_NAMES, BURST_SPAN_MS, BestPracticeAdvisory, type BrainConfig, type BrainDeadLetterEntry, type BrainHealthSnapshot, type BrainQueryConfig, type BrainReadEnv, COACH_CFG, COST_RANKING_REFERENCE_SHAPE, CallOptions, CallResult, ChainEntry, type CompatibilityIntent, type CompileForAISDKv6Result, CompileOptions, CompilePolicy, CompileResult, CompiledRequest, type CreateDelegateOpts, DECOMPOSITION_TEMPLATES, DECOMPOSITION_TEMPLATES_VERSION, DEFAULT_FINDINGS_ENDPOINT, DEFAULT_JUDGE_MODEL, DEFAULT_MEASURED_FAILURE_ENDPOINT, DEFAULT_PROMOTIONS_ENDPOINT, DELEGATE_TOOL_DEFINITION, DISCIPLINE_GATES_V1_ALT_BLIND_HEADER, DISCIPLINE_GATES_V1_ALT_HEADER, type DecompositionPlan, type DecompositionStep, type DecompositionTemplate, type DelegateHandle, type DelegateRefusalReason, type DelegateResult, type DelegateToolArgs, type ExclusionFindingRow, type ExclusionResolutionSource, type ExecuteErr, type ExecuteOk, type ExecuteOptions, type ExecuteResult, type ExecutorCandidate, type FallbackPosture, FallbackReason, FamilyResolutionError, type GetActionableAdvisoriesOptions, type GetApplicablePromotionOpts, type GetDefaultFallbackChainOpts, type GetMeasuredFailureOpts, type GetPerAxisMetricsOpts, type GetRecommendedPrimaryOptions, type GoldenEvalAxis, type GoldenEvalCase, type GoldenEvalOptions, type GoldenEvalRunResult, type GoldenEvalStrategyId, type GoldenIrRecordInput, Grounding, IntentArchetypeName, JUDGE_RUBRICS, LIBRARY_VERSION, type LLMJudgeOptions, MEASURED_FAILURE_CFG, MEASURED_GROUNDING_MIN_N, type MarkAdvisoryResolvedOptions, type MarkExclusionFindingHandledOptions, type MarkPromoteReadyHandledOptions, type MeasuredFailureRuntime, type MeasuredFailureVerdict, type ModelBrainRow, type ModelCompatibility, ModelProfile, NormalizedResponse, type OracleContext, OracleScore, type OutcomePayload, OutcomeResult, OutputMode, PRODUCER_OWNED_RULE_CODES, PROVIDER_ENV_KEYS, PerAxisMetrics, type PlannedStep, type PricingRow, type ProbeShadowOptions, type ProbeShadowServed, type ProfileToRowOptions, type PromoteReadyFindingRow, type PromoteReadyResolution, type PromotionRow, type PromotionsRuntime, PromptIR, Provider, ProviderOverrides, type ProviderReachability, ROLLBACK_SUPPRESSION_WINDOW_DAYS, RULE_DISCIPLINE_GATES_V1, RULE_DISCIPLINE_GATES_V1_STRUCTURED, RULE_SEQUENTIAL_TOOL_CLIFF, type ReachabilityOpts, RecordInput, RecordOutcomeInput, type RunAdvisorPhase2Context, STRATEGY_AUTHORSHIP_INDEPENDENT, STRATEGY_AUTHORSHIP_LIMITATION, SectionRewrite, type ShadowProbeRecordInput, type StrategyAttribution, type StrategyAttributionResult, type StrategyOutcome, type SupportedProvider, type SurfaceFailureRow, type SurfaceStats, SystemModelMessage, TRANSLATOR_FLOOR, _testResetMeasuredFailure, _testResetOutcomeSourceWarning, _testResetPromotions, _testWaitForMeasuredFailureRefresh, _testWaitForPromotionsRefresh, altBlindGatesBlockFor, altGatesBlockFor, applyArchetypeConvention, applySectionRewrites, attachCacheControlToStreamTextInput, awaitMeasuredFailureReady, awaitPromotionsReady, brainHealth, buildGoldenIrRow, buildLLMJudge, buildPairwiseJudgePrompt, buildShadowProbeRow, burstCaveat, call, chainProviderSpread, classifyEvidenceWindow, classifyStrategyOutcome, clearBrain, combineOrderSwappedVerdicts, compile, compileForAISDKv6, configureBrain, configureMeasuredFailureBrain, configurePromotionsBrain, countTokens, createDelegate, deriveFamilyFromModelId, deriveOwnership, estimateChainCostUsd, estimateModelCostUsd, execute, findBetterFit, flushBrainDeadLetter, formatEvidenceSpan, getActionableAdvisories, getAllStarterChains, getAllStarterChainsWithGrounding, getApplicablePromotion, getArchetypePerfScore, getDefaultFallbackChain, getDefaultFallbackChainWithGrounding, getMeasuredFailureVerdict, getModelCompatibility, getPerAxisMetrics, getReachabilityDiagnostic, getRecentRollback, getRecommendedPrimary, getSequentialStarterChain, getSequentialStarterChainWithGrounding, getStaleExclusionFindings, getStarterChain, getStarterChainWithGrounding, isAltStrategy, isAutoPromoteEnabledFromEnv, isBrainQueryActiveFor, isBrainSync, isDelegateEnabledFromEnv, isExclusionFindingsBrainActive, isMeasuredFailureBrainActive, isMeasuredFailureGateEnabledFromEnv, isModelReachable, isPromotionsBrainActive, isProviderReachable, judgeMeasuredFailure, loadAliasesFromBrain, loadArchetypePerfFromBrain, loadArchetypePerfNFromBrain, loadChainsFromBrain, loadModelsFromBrain, loadPricingFromBrain, mapMeasuredFailureRows, markAdvisoryResolved, markExclusionFindingHandled, markPromoteReadyHandled, parseJudgeVerdict, peekBrainDeadLetter, planDecomposition, prefetchMeasuredFailure, prefetchPromotions, probeShadow, profileToRow, readBrainReadEnv, record, recordGoldenIr, recordOutcome, recordShadowProbe, renderIrForJudge, resetTokenizer, resolveConventionsForProfile, resolveOutcomeSource, resolvePricingAt, resolveProviderKey, rowToAdvisory, rubricFor, runAdvisor, runGoldenEval, runStrategyEvalWithAttribution, setTokenizer, wilsonLowerBound, withAltBlindDisciplineContract, withAltDisciplineContract, withDisciplineContract };
4067
+ export { ABSOLUTE_FLOOR, type AISDKConvertedMessage, ALT_BLIND_TOKEN_BUDGET_BREACH, ALT_STRATEGY_IDS, ARCHETYPE_FAMILY_FITS, ARCHETYPE_FLOOR_DEFAULT, type ActionableAdvisory, Adapter, type AdvisoryEvidenceWindow, type AdvisoryResolutionSource, type AdvisorySeverity, type AdvisoryStatus, type AdvisorySuggestedFix, ApiKeys, type AppOracle, type ApplySectionRewritesArgs, type ApplySectionRewritesResult, ArchetypeConvention, type ArchetypeFamilyFit, type ArchetypePerfMap, type ArchetypePerfNMap, type ArchetypePerfScoreResult, type AttachCacheControlResult, BLOCKED_MODEL_FAMILY_SIBLING_SERVED_CODE, BLOCKED_MODEL_NOT_IN_ROSTER_CODE, BRAIN_READ_ENV_NAMES, BURST_SPAN_MS, BestPracticeAdvisory, type BrainConfig, type BrainDeadLetterEntry, type BrainHealthSnapshot, type BrainQueryConfig, type BrainReadEnv, COACH_CFG, COST_RANKING_REFERENCE_SHAPE, CallOptions, CallResult, ChainEntry, type CompatibilityIntent, type CompileForAISDKv6Result, CompileOptions, CompilePolicy, CompileResult, CompiledRequest, type CreateDelegateOpts, DECOMPOSITION_TEMPLATES, DECOMPOSITION_TEMPLATES_VERSION, DEFAULT_FINDINGS_ENDPOINT, DEFAULT_JUDGE_MODEL, DEFAULT_MEASURED_FAILURE_ENDPOINT, DEFAULT_PROMOTIONS_ENDPOINT, DELEGATE_TOOL_DEFINITION, DISCIPLINE_GATES_V1_ALT_BLIND_HEADER, DISCIPLINE_GATES_V1_ALT_HEADER, type DecompositionPlan, type DecompositionStep, type DecompositionTemplate, type DelegateHandle, type DelegateRefusalReason, type DelegateResult, type DelegateToolArgs, type ExclusionFindingRow, type ExclusionResolutionSource, type ExecuteErr, type ExecuteOk, type ExecuteOptions, type ExecuteResult, type ExecutorCandidate, type FallbackPosture, FallbackReason, FamilyResolutionError, type GetActionableAdvisoriesOptions, type GetApplicablePromotionOpts, type GetDefaultFallbackChainOpts, type GetMeasuredFailureOpts, type GetPerAxisMetricsOpts, type GetRecommendedPrimaryOptions, type GoldenEvalAxis, type GoldenEvalCase, type GoldenEvalOptions, type GoldenEvalRunResult, type GoldenEvalStrategyId, type GoldenIrRecordInput, Grounding, IntentArchetypeName, JUDGE_RUBRICS, LIBRARY_VERSION, type LLMJudgeOptions, MEASURED_FAILURE_CFG, MEASURED_GROUNDING_MIN_N, type MarkAdvisoryResolvedOptions, type MarkExclusionFindingHandledOptions, type MarkPromoteReadyHandledOptions, type MeasuredFailureRuntime, type MeasuredFailureVerdict, type ModelBrainRow, type ModelCompatibility, ModelProfile, NormalizedResponse, type OracleContext, OracleScore, type OutcomePayload, OutcomeResult, OutputMode, PRODUCER_OWNED_RULE_CODES, PROVIDER_ENV_KEYS, PerAxisMetrics, type PlannedStep, type PricingRow, type ProbeShadowOptions, type ProbeShadowServed, ProbedLimit, type ProfileToRowOptions, type PromoteReadyFindingRow, type PromoteReadyResolution, type PromotionRow, type PromotionsRuntime, PromptIR, Provider, ProviderOverrides, type ProviderReachability, ROLLBACK_SUPPRESSION_WINDOW_DAYS, RULE_DISCIPLINE_GATES_V1, RULE_DISCIPLINE_GATES_V1_STRUCTURED, RULE_SEQUENTIAL_TOOL_CLIFF, type ReachabilityOpts, RecordInput, RecordOutcomeInput, type RunAdvisorPhase2Context, STRATEGY_AUTHORSHIP_INDEPENDENT, STRATEGY_AUTHORSHIP_LIMITATION, SectionRewrite, type ShadowProbeRecordInput, type StrategyAttribution, type StrategyAttributionResult, type StrategyOutcome, type SupportedProvider, type SurfaceFailureRow, type SurfaceStats, SystemModelMessage, TRANSLATOR_FLOOR, _testResetMeasuredFailure, _testResetOutcomeSourceWarning, _testResetPromotions, _testWaitForMeasuredFailureRefresh, _testWaitForPromotionsRefresh, altBlindGatesBlockFor, altGatesBlockFor, applyArchetypeConvention, applySectionRewrites, attachCacheControlToStreamTextInput, awaitMeasuredFailureReady, awaitPromotionsReady, brainHealth, buildGoldenIrRow, buildLLMJudge, buildPairwiseJudgePrompt, buildShadowProbeRow, burstCaveat, call, chainProviderSpread, classifyEvidenceWindow, classifyStrategyOutcome, clearBrain, combineOrderSwappedVerdicts, compile, compileForAISDKv6, configureBrain, configureMeasuredFailureBrain, configurePromotionsBrain, countTokens, createDelegate, deriveFamilyFromModelId, deriveOwnership, estimateChainCostUsd, estimateModelCostUsd, execute, findBetterFit, flushBrainDeadLetter, formatEvidenceSpan, getActionableAdvisories, getAllStarterChains, getAllStarterChainsWithGrounding, getApplicablePromotion, getArchetypePerfScore, getDefaultFallbackChain, getDefaultFallbackChainWithGrounding, getMeasuredFailureVerdict, getModelCompatibility, getPerAxisMetrics, getReachabilityDiagnostic, getRecentRollback, getRecommendedPrimary, getSequentialStarterChain, getSequentialStarterChainWithGrounding, getStaleExclusionFindings, getStarterChain, getStarterChainWithGrounding, isAltStrategy, isAutoPromoteEnabledFromEnv, isBrainQueryActiveFor, isBrainSync, isDelegateEnabledFromEnv, isExclusionFindingsBrainActive, isMeasuredFailureBrainActive, isMeasuredFailureGateEnabledFromEnv, isModelReachable, isModelUnavailableMessage, isPromotionsBrainActive, isProviderReachable, judgeMeasuredFailure, loadAliasesFromBrain, loadArchetypePerfFromBrain, loadArchetypePerfNFromBrain, loadChainsFromBrain, loadModelsFromBrain, loadPricingFromBrain, mapMeasuredFailureRows, markAdvisoryResolved, markExclusionFindingHandled, markPromoteReadyHandled, parseJudgeVerdict, peekBrainDeadLetter, planDecomposition, prefetchMeasuredFailure, prefetchPromotions, probeShadow, profileToRow, readBrainReadEnv, record, recordGoldenIr, recordOutcome, recordShadowProbe, renderIrForJudge, resetTokenizer, resolveConventionsForProfile, resolveOutcomeSource, resolvePricingAt, resolveProviderKey, rowToAdvisory, rubricFor, runAdvisor, runGoldenEval, runStrategyEvalWithAttribution, setTokenizer, wilsonLowerBound, withAltBlindDisciplineContract, withAltDisciplineContract, withDisciplineContract };
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import { N as NormalizedResponse, A as ApiKeys, P as ProviderOverrides, C as Com
3
3
  export { n as CallAttempt, o as CallError, p as ChainModelEntry, q as ChainWithGrounding, r as Constraints, E as EffortLevel, s as GoldenCaptureOptions, H as HistoryCachePolicy, I as IntentDeclaration, M as Message, t as MutationApplied, u as NormalizedTokens, v as OutcomeKind, w as PerAxisMetricsByModel, x as PromptSection, y as SectionKind, z as ShadowProbeConfig, T as ToolCall, D as ToolDefinition, J as captureGoldenIr, K as hasMutation, L as mutationId, Q as parseGoldenCaptureRate, U as resolveGoldenCaptureRate, V as shouldCaptureGolden } from './ir-DbvOFKF-.js';
4
4
  export { BrainForwardConfig, BrainForwardRoutes, createBrainForwardRoutes } from './brain-proxy.js';
5
5
  export { KEY_FINGERPRINT_DOMAIN, KEY_FINGERPRINT_LENGTH, KeyHealthConfig, KeyHealthProvider, KeyHealthResponseBody, KeyHealthResult, KeyHealthRoute, createKeyHealthRoute, keyFingerprint } from './key-health.js';
6
- import { ModelProfile, ArchetypeConvention } from './profiles.js';
6
+ import { ModelProfile, ArchetypeConvention, ProbedLimit } from './profiles.js';
7
7
  export { ALIASES, CacheStrategy, CliffRule, LATENCY_TIER_MS, LatencyTier, LoweringSpec, RecoveryRule, StructuredOutputCapability, SystemPromptMode, _testClearConsumerProfiles, allProfiles, bestEffortProfile, getProfile, inferProviderFromId, latencyTierOf, profilesByProvider, registerProfiles, resolveModelAlias, tryGetProfile } from './profiles.js';
8
8
  import { IntentArchetypeName, OutputMode } from './dialect.js';
9
9
  export { ALL_ARCHETYPES, ContextBucket, DIALECT_VERSION, HistoryDepth, INTENT_ARCHETYPES, ShapeSignature, ToolCountBucket, bucketContext, bucketHistory, bucketToolCount, hashShape, isArchetype, learningKey } from './dialect.js';
@@ -76,6 +76,13 @@ interface ExecuteErr {
76
76
  }
77
77
  type ExecuteResult = ExecuteOk | ExecuteErr;
78
78
  declare function execute(request: CompiledRequest, opts?: ExecuteOptions): Promise<ExecuteResult>;
79
+ /**
80
+ * Provider wordings that mean "this model will never serve THIS caller" —
81
+ * delistings and retirements that arrive on statuses other than 404. Kept
82
+ * deliberately narrow: a match reroutes the call to the next chain target,
83
+ * so a false positive here would mask a real validation error.
84
+ */
85
+ declare function isModelUnavailableMessage(message: string | undefined): boolean;
79
86
 
80
87
  /**
81
88
  * call() — the high-level orchestrator that owns the network round-trip.
@@ -1234,7 +1241,7 @@ declare function runStrategyEvalWithAttribution(opts: Omit<GoldenEvalOptions, 'a
1234
1241
  * guard in `tests/version.test.ts` fails the suite (and therefore
1235
1242
  * `prepublishOnly`) when they diverge — a stale constant cannot reach npm.
1236
1243
  */
1237
- declare const LIBRARY_VERSION = "2.0.0-alpha.94";
1244
+ declare const LIBRARY_VERSION = "2.0.0-alpha.95";
1238
1245
 
1239
1246
  /**
1240
1247
  * Oracle contract — how an app tells the brain whether a response was good.
@@ -3219,6 +3226,8 @@ interface ModelBrainRow {
3219
3226
  latency_tier?: string | null;
3220
3227
  /** alpha.49 — per-archetype prompt-shape conventions (migration 028 column). */
3221
3228
  archetype_conventions?: ArchetypeConvention[] | null;
3229
+ /** alpha.95 — measured negatives from --discover (migration 070 column). */
3230
+ probed_limits?: ProbedLimit[] | null;
3222
3231
  }
3223
3232
  interface ProfileToRowOptions {
3224
3233
  /** e.g. `'2.0.0-alpha.12'` — leave undefined to omit from row. */
@@ -4055,4 +4064,4 @@ declare function planDecomposition(args: PlanDecompositionArgs): DecompositionPl
4055
4064
  */
4056
4065
  declare function compile(ir: PromptIR, opts?: CompileOptions): CompileResult;
4057
4066
 
4058
- export { ABSOLUTE_FLOOR, type AISDKConvertedMessage, ALT_BLIND_TOKEN_BUDGET_BREACH, ALT_STRATEGY_IDS, ARCHETYPE_FAMILY_FITS, ARCHETYPE_FLOOR_DEFAULT, type ActionableAdvisory, Adapter, type AdvisoryEvidenceWindow, type AdvisoryResolutionSource, type AdvisorySeverity, type AdvisoryStatus, type AdvisorySuggestedFix, ApiKeys, type AppOracle, type ApplySectionRewritesArgs, type ApplySectionRewritesResult, ArchetypeConvention, type ArchetypeFamilyFit, type ArchetypePerfMap, type ArchetypePerfNMap, type ArchetypePerfScoreResult, type AttachCacheControlResult, BLOCKED_MODEL_FAMILY_SIBLING_SERVED_CODE, BLOCKED_MODEL_NOT_IN_ROSTER_CODE, BRAIN_READ_ENV_NAMES, BURST_SPAN_MS, BestPracticeAdvisory, type BrainConfig, type BrainDeadLetterEntry, type BrainHealthSnapshot, type BrainQueryConfig, type BrainReadEnv, COACH_CFG, COST_RANKING_REFERENCE_SHAPE, CallOptions, CallResult, ChainEntry, type CompatibilityIntent, type CompileForAISDKv6Result, CompileOptions, CompilePolicy, CompileResult, CompiledRequest, type CreateDelegateOpts, DECOMPOSITION_TEMPLATES, DECOMPOSITION_TEMPLATES_VERSION, DEFAULT_FINDINGS_ENDPOINT, DEFAULT_JUDGE_MODEL, DEFAULT_MEASURED_FAILURE_ENDPOINT, DEFAULT_PROMOTIONS_ENDPOINT, DELEGATE_TOOL_DEFINITION, DISCIPLINE_GATES_V1_ALT_BLIND_HEADER, DISCIPLINE_GATES_V1_ALT_HEADER, type DecompositionPlan, type DecompositionStep, type DecompositionTemplate, type DelegateHandle, type DelegateRefusalReason, type DelegateResult, type DelegateToolArgs, type ExclusionFindingRow, type ExclusionResolutionSource, type ExecuteErr, type ExecuteOk, type ExecuteOptions, type ExecuteResult, type ExecutorCandidate, type FallbackPosture, FallbackReason, FamilyResolutionError, type GetActionableAdvisoriesOptions, type GetApplicablePromotionOpts, type GetDefaultFallbackChainOpts, type GetMeasuredFailureOpts, type GetPerAxisMetricsOpts, type GetRecommendedPrimaryOptions, type GoldenEvalAxis, type GoldenEvalCase, type GoldenEvalOptions, type GoldenEvalRunResult, type GoldenEvalStrategyId, type GoldenIrRecordInput, Grounding, IntentArchetypeName, JUDGE_RUBRICS, LIBRARY_VERSION, type LLMJudgeOptions, MEASURED_FAILURE_CFG, MEASURED_GROUNDING_MIN_N, type MarkAdvisoryResolvedOptions, type MarkExclusionFindingHandledOptions, type MarkPromoteReadyHandledOptions, type MeasuredFailureRuntime, type MeasuredFailureVerdict, type ModelBrainRow, type ModelCompatibility, ModelProfile, NormalizedResponse, type OracleContext, OracleScore, type OutcomePayload, OutcomeResult, OutputMode, PRODUCER_OWNED_RULE_CODES, PROVIDER_ENV_KEYS, PerAxisMetrics, type PlannedStep, type PricingRow, type ProbeShadowOptions, type ProbeShadowServed, type ProfileToRowOptions, type PromoteReadyFindingRow, type PromoteReadyResolution, type PromotionRow, type PromotionsRuntime, PromptIR, Provider, ProviderOverrides, type ProviderReachability, ROLLBACK_SUPPRESSION_WINDOW_DAYS, RULE_DISCIPLINE_GATES_V1, RULE_DISCIPLINE_GATES_V1_STRUCTURED, RULE_SEQUENTIAL_TOOL_CLIFF, type ReachabilityOpts, RecordInput, RecordOutcomeInput, type RunAdvisorPhase2Context, STRATEGY_AUTHORSHIP_INDEPENDENT, STRATEGY_AUTHORSHIP_LIMITATION, SectionRewrite, type ShadowProbeRecordInput, type StrategyAttribution, type StrategyAttributionResult, type StrategyOutcome, type SupportedProvider, type SurfaceFailureRow, type SurfaceStats, SystemModelMessage, TRANSLATOR_FLOOR, _testResetMeasuredFailure, _testResetOutcomeSourceWarning, _testResetPromotions, _testWaitForMeasuredFailureRefresh, _testWaitForPromotionsRefresh, altBlindGatesBlockFor, altGatesBlockFor, applyArchetypeConvention, applySectionRewrites, attachCacheControlToStreamTextInput, awaitMeasuredFailureReady, awaitPromotionsReady, brainHealth, buildGoldenIrRow, buildLLMJudge, buildPairwiseJudgePrompt, buildShadowProbeRow, burstCaveat, call, chainProviderSpread, classifyEvidenceWindow, classifyStrategyOutcome, clearBrain, combineOrderSwappedVerdicts, compile, compileForAISDKv6, configureBrain, configureMeasuredFailureBrain, configurePromotionsBrain, countTokens, createDelegate, deriveFamilyFromModelId, deriveOwnership, estimateChainCostUsd, estimateModelCostUsd, execute, findBetterFit, flushBrainDeadLetter, formatEvidenceSpan, getActionableAdvisories, getAllStarterChains, getAllStarterChainsWithGrounding, getApplicablePromotion, getArchetypePerfScore, getDefaultFallbackChain, getDefaultFallbackChainWithGrounding, getMeasuredFailureVerdict, getModelCompatibility, getPerAxisMetrics, getReachabilityDiagnostic, getRecentRollback, getRecommendedPrimary, getSequentialStarterChain, getSequentialStarterChainWithGrounding, getStaleExclusionFindings, getStarterChain, getStarterChainWithGrounding, isAltStrategy, isAutoPromoteEnabledFromEnv, isBrainQueryActiveFor, isBrainSync, isDelegateEnabledFromEnv, isExclusionFindingsBrainActive, isMeasuredFailureBrainActive, isMeasuredFailureGateEnabledFromEnv, isModelReachable, isPromotionsBrainActive, isProviderReachable, judgeMeasuredFailure, loadAliasesFromBrain, loadArchetypePerfFromBrain, loadArchetypePerfNFromBrain, loadChainsFromBrain, loadModelsFromBrain, loadPricingFromBrain, mapMeasuredFailureRows, markAdvisoryResolved, markExclusionFindingHandled, markPromoteReadyHandled, parseJudgeVerdict, peekBrainDeadLetter, planDecomposition, prefetchMeasuredFailure, prefetchPromotions, probeShadow, profileToRow, readBrainReadEnv, record, recordGoldenIr, recordOutcome, recordShadowProbe, renderIrForJudge, resetTokenizer, resolveConventionsForProfile, resolveOutcomeSource, resolvePricingAt, resolveProviderKey, rowToAdvisory, rubricFor, runAdvisor, runGoldenEval, runStrategyEvalWithAttribution, setTokenizer, wilsonLowerBound, withAltBlindDisciplineContract, withAltDisciplineContract, withDisciplineContract };
4067
+ export { ABSOLUTE_FLOOR, type AISDKConvertedMessage, ALT_BLIND_TOKEN_BUDGET_BREACH, ALT_STRATEGY_IDS, ARCHETYPE_FAMILY_FITS, ARCHETYPE_FLOOR_DEFAULT, type ActionableAdvisory, Adapter, type AdvisoryEvidenceWindow, type AdvisoryResolutionSource, type AdvisorySeverity, type AdvisoryStatus, type AdvisorySuggestedFix, ApiKeys, type AppOracle, type ApplySectionRewritesArgs, type ApplySectionRewritesResult, ArchetypeConvention, type ArchetypeFamilyFit, type ArchetypePerfMap, type ArchetypePerfNMap, type ArchetypePerfScoreResult, type AttachCacheControlResult, BLOCKED_MODEL_FAMILY_SIBLING_SERVED_CODE, BLOCKED_MODEL_NOT_IN_ROSTER_CODE, BRAIN_READ_ENV_NAMES, BURST_SPAN_MS, BestPracticeAdvisory, type BrainConfig, type BrainDeadLetterEntry, type BrainHealthSnapshot, type BrainQueryConfig, type BrainReadEnv, COACH_CFG, COST_RANKING_REFERENCE_SHAPE, CallOptions, CallResult, ChainEntry, type CompatibilityIntent, type CompileForAISDKv6Result, CompileOptions, CompilePolicy, CompileResult, CompiledRequest, type CreateDelegateOpts, DECOMPOSITION_TEMPLATES, DECOMPOSITION_TEMPLATES_VERSION, DEFAULT_FINDINGS_ENDPOINT, DEFAULT_JUDGE_MODEL, DEFAULT_MEASURED_FAILURE_ENDPOINT, DEFAULT_PROMOTIONS_ENDPOINT, DELEGATE_TOOL_DEFINITION, DISCIPLINE_GATES_V1_ALT_BLIND_HEADER, DISCIPLINE_GATES_V1_ALT_HEADER, type DecompositionPlan, type DecompositionStep, type DecompositionTemplate, type DelegateHandle, type DelegateRefusalReason, type DelegateResult, type DelegateToolArgs, type ExclusionFindingRow, type ExclusionResolutionSource, type ExecuteErr, type ExecuteOk, type ExecuteOptions, type ExecuteResult, type ExecutorCandidate, type FallbackPosture, FallbackReason, FamilyResolutionError, type GetActionableAdvisoriesOptions, type GetApplicablePromotionOpts, type GetDefaultFallbackChainOpts, type GetMeasuredFailureOpts, type GetPerAxisMetricsOpts, type GetRecommendedPrimaryOptions, type GoldenEvalAxis, type GoldenEvalCase, type GoldenEvalOptions, type GoldenEvalRunResult, type GoldenEvalStrategyId, type GoldenIrRecordInput, Grounding, IntentArchetypeName, JUDGE_RUBRICS, LIBRARY_VERSION, type LLMJudgeOptions, MEASURED_FAILURE_CFG, MEASURED_GROUNDING_MIN_N, type MarkAdvisoryResolvedOptions, type MarkExclusionFindingHandledOptions, type MarkPromoteReadyHandledOptions, type MeasuredFailureRuntime, type MeasuredFailureVerdict, type ModelBrainRow, type ModelCompatibility, ModelProfile, NormalizedResponse, type OracleContext, OracleScore, type OutcomePayload, OutcomeResult, OutputMode, PRODUCER_OWNED_RULE_CODES, PROVIDER_ENV_KEYS, PerAxisMetrics, type PlannedStep, type PricingRow, type ProbeShadowOptions, type ProbeShadowServed, ProbedLimit, type ProfileToRowOptions, type PromoteReadyFindingRow, type PromoteReadyResolution, type PromotionRow, type PromotionsRuntime, PromptIR, Provider, ProviderOverrides, type ProviderReachability, ROLLBACK_SUPPRESSION_WINDOW_DAYS, RULE_DISCIPLINE_GATES_V1, RULE_DISCIPLINE_GATES_V1_STRUCTURED, RULE_SEQUENTIAL_TOOL_CLIFF, type ReachabilityOpts, RecordInput, RecordOutcomeInput, type RunAdvisorPhase2Context, STRATEGY_AUTHORSHIP_INDEPENDENT, STRATEGY_AUTHORSHIP_LIMITATION, SectionRewrite, type ShadowProbeRecordInput, type StrategyAttribution, type StrategyAttributionResult, type StrategyOutcome, type SupportedProvider, type SurfaceFailureRow, type SurfaceStats, SystemModelMessage, TRANSLATOR_FLOOR, _testResetMeasuredFailure, _testResetOutcomeSourceWarning, _testResetPromotions, _testWaitForMeasuredFailureRefresh, _testWaitForPromotionsRefresh, altBlindGatesBlockFor, altGatesBlockFor, applyArchetypeConvention, applySectionRewrites, attachCacheControlToStreamTextInput, awaitMeasuredFailureReady, awaitPromotionsReady, brainHealth, buildGoldenIrRow, buildLLMJudge, buildPairwiseJudgePrompt, buildShadowProbeRow, burstCaveat, call, chainProviderSpread, classifyEvidenceWindow, classifyStrategyOutcome, clearBrain, combineOrderSwappedVerdicts, compile, compileForAISDKv6, configureBrain, configureMeasuredFailureBrain, configurePromotionsBrain, countTokens, createDelegate, deriveFamilyFromModelId, deriveOwnership, estimateChainCostUsd, estimateModelCostUsd, execute, findBetterFit, flushBrainDeadLetter, formatEvidenceSpan, getActionableAdvisories, getAllStarterChains, getAllStarterChainsWithGrounding, getApplicablePromotion, getArchetypePerfScore, getDefaultFallbackChain, getDefaultFallbackChainWithGrounding, getMeasuredFailureVerdict, getModelCompatibility, getPerAxisMetrics, getReachabilityDiagnostic, getRecentRollback, getRecommendedPrimary, getSequentialStarterChain, getSequentialStarterChainWithGrounding, getStaleExclusionFindings, getStarterChain, getStarterChainWithGrounding, isAltStrategy, isAutoPromoteEnabledFromEnv, isBrainQueryActiveFor, isBrainSync, isDelegateEnabledFromEnv, isExclusionFindingsBrainActive, isMeasuredFailureBrainActive, isMeasuredFailureGateEnabledFromEnv, isModelReachable, isModelUnavailableMessage, isPromotionsBrainActive, isProviderReachable, judgeMeasuredFailure, loadAliasesFromBrain, loadArchetypePerfFromBrain, loadArchetypePerfNFromBrain, loadChainsFromBrain, loadModelsFromBrain, loadPricingFromBrain, mapMeasuredFailureRows, markAdvisoryResolved, markExclusionFindingHandled, markPromoteReadyHandled, parseJudgeVerdict, peekBrainDeadLetter, planDecomposition, prefetchMeasuredFailure, prefetchPromotions, probeShadow, profileToRow, readBrainReadEnv, record, recordGoldenIr, recordOutcome, recordShadowProbe, renderIrForJudge, resetTokenizer, resolveConventionsForProfile, resolveOutcomeSource, resolvePricingAt, resolveProviderKey, rowToAdvisory, rubricFor, runAdvisor, runGoldenEval, runStrategyEvalWithAttribution, setTokenizer, wilsonLowerBound, withAltBlindDisciplineContract, withAltDisciplineContract, withDisciplineContract };
package/dist/index.js CHANGED
@@ -142,6 +142,7 @@ __export(index_exports, {
142
142
  isMeasuredFailureBrainActive: () => isMeasuredFailureBrainActive,
143
143
  isMeasuredFailureGateEnabledFromEnv: () => isMeasuredFailureGateEnabledFromEnv,
144
144
  isModelReachable: () => isModelReachable,
145
+ isModelUnavailableMessage: () => isModelUnavailableMessage,
145
146
  isPromotionsBrainActive: () => isPromotionsBrainActive,
146
147
  isProviderReachable: () => isProviderReachable,
147
148
  judgeMeasuredFailure: () => judgeMeasuredFailure,
@@ -418,6 +419,26 @@ var PROFILES_RAW = [
418
419
  // on Fable 5 (omit instead) — MOOT here: ANTHROPIC_LOWERING_BASE carries no
419
420
  // `thinking` field, so kgauto never sends the param. (L-049/L-081.)
420
421
  id: "claude-fable-5",
422
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 32.
423
+ // This model declared no cliffs, which is why the offline check had
424
+ // nothing measured to say about it. The claim states its denominator:
425
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
426
+ // evidence of correct selection + 3-way parallel emission at that menu
427
+ // size — NOT evidence of 20 concurrent calls.
428
+ probedLimits: [
429
+ {
430
+ metric: "tool_count",
431
+ testedAt: 20,
432
+ demanded: 3,
433
+ served: [3, 3, 3],
434
+ outcome: "held",
435
+ trials: 3,
436
+ lastProbed: "2026-08-28",
437
+ probeRunId: 32,
438
+ route: "direct",
439
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
440
+ }
441
+ ],
421
442
  verifiedAgainstDocs: "2026-06-21",
422
443
  provider: "anthropic",
423
444
  status: "current",
@@ -538,6 +559,26 @@ var PROFILES_RAW = [
538
559
  // failure, where a template-clone of PRICE (the field that actually varies,
539
560
  // there by 2.5-3.75x) went unverified for 65 days.
540
561
  id: "claude-opus-5",
562
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 33.
563
+ // This model declared no cliffs, which is why the offline check had
564
+ // nothing measured to say about it. The claim states its denominator:
565
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
566
+ // evidence of correct selection + 3-way parallel emission at that menu
567
+ // size — NOT evidence of 20 concurrent calls.
568
+ probedLimits: [
569
+ {
570
+ metric: "tool_count",
571
+ testedAt: 20,
572
+ demanded: 3,
573
+ served: [3, 3, 3],
574
+ outcome: "held",
575
+ trials: 3,
576
+ lastProbed: "2026-08-28",
577
+ probeRunId: 33,
578
+ route: "direct",
579
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
580
+ }
581
+ ],
541
582
  verifiedAgainstDocs: "2026-07-25",
542
583
  provider: "anthropic",
543
584
  status: "current",
@@ -1416,6 +1457,26 @@ var PROFILES_RAW = [
1416
1457
  },
1417
1458
  {
1418
1459
  id: "gpt-5.4-mini",
1460
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 34.
1461
+ // This model declared no cliffs, which is why the offline check had
1462
+ // nothing measured to say about it. The claim states its denominator:
1463
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
1464
+ // evidence of correct selection + 3-way parallel emission at that menu
1465
+ // size — NOT evidence of 20 concurrent calls.
1466
+ probedLimits: [
1467
+ {
1468
+ metric: "tool_count",
1469
+ testedAt: 20,
1470
+ demanded: 3,
1471
+ served: [3, 3, 3],
1472
+ outcome: "held",
1473
+ trials: 3,
1474
+ lastProbed: "2026-08-28",
1475
+ probeRunId: 34,
1476
+ route: "direct",
1477
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
1478
+ }
1479
+ ],
1419
1480
  verifiedAgainstDocs: "2026-05-17",
1420
1481
  provider: "openai",
1421
1482
  status: "current",
@@ -1459,6 +1520,26 @@ var PROFILES_RAW = [
1459
1520
  },
1460
1521
  {
1461
1522
  id: "gpt-5.4-nano",
1523
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 35.
1524
+ // This model declared no cliffs, which is why the offline check had
1525
+ // nothing measured to say about it. The claim states its denominator:
1526
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
1527
+ // evidence of correct selection + 3-way parallel emission at that menu
1528
+ // size — NOT evidence of 20 concurrent calls.
1529
+ probedLimits: [
1530
+ {
1531
+ metric: "tool_count",
1532
+ testedAt: 20,
1533
+ demanded: 3,
1534
+ served: [3, 3, 3],
1535
+ outcome: "held",
1536
+ trials: 3,
1537
+ lastProbed: "2026-08-28",
1538
+ probeRunId: 35,
1539
+ route: "direct",
1540
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
1541
+ }
1542
+ ],
1462
1543
  verifiedAgainstDocs: "2026-05-17",
1463
1544
  provider: "openai",
1464
1545
  status: "current",
@@ -2074,6 +2155,26 @@ var PROFILES_RAW = [
2074
2155
  // 'preview' per the Fable precedent — no brain evidence yet; promotion to
2075
2156
  // 'current' is an explicit call. (L-049/L-081.)
2076
2157
  id: "claude-sonnet-5",
2158
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 36.
2159
+ // This model declared no cliffs, which is why the offline check had
2160
+ // nothing measured to say about it. The claim states its denominator:
2161
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
2162
+ // evidence of correct selection + 3-way parallel emission at that menu
2163
+ // size — NOT evidence of 20 concurrent calls.
2164
+ probedLimits: [
2165
+ {
2166
+ metric: "tool_count",
2167
+ testedAt: 20,
2168
+ demanded: 3,
2169
+ served: [3, 3, 3],
2170
+ outcome: "held",
2171
+ trials: 3,
2172
+ lastProbed: "2026-08-28",
2173
+ probeRunId: 36,
2174
+ route: "direct",
2175
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
2176
+ }
2177
+ ],
2077
2178
  verifiedAgainstDocs: "2026-08-14",
2078
2179
  provider: "anthropic",
2079
2180
  status: "current",
@@ -2419,7 +2520,11 @@ function rowToProfile(row) {
2419
2520
  // latency_tier → undefined (latencyTierOf derives from tags; not
2420
2521
  // safety-critical). archetype_conventions already array-validated above.
2421
2522
  latencyTier: normalizeLatencyTier(row.latency_tier),
2422
- archetypeConventions: row.archetype_conventions ?? void 0
2523
+ archetypeConventions: row.archetype_conventions ?? void 0,
2524
+ // alpha.95 — measured negatives. NOT safety-critical (nothing routes on
2525
+ // them), so a type-mismatch degrades to undefined rather than nulling
2526
+ // the whole profile the way a corrupt `cliffs` does.
2527
+ probedLimits: Array.isArray(row.probed_limits) ? row.probed_limits : void 0
2423
2528
  };
2424
2529
  } catch {
2425
2530
  return null;
@@ -2459,7 +2564,12 @@ function profileToRow(profile, opts = {}) {
2459
2564
  // so a reseed from bundled profiles makes the latency lever + schema
2460
2565
  // conventions live warm. Closes the silently-dropped-field gap.
2461
2566
  latency_tier: profile.latencyTier ?? null,
2462
- archetype_conventions: profile.archetypeConventions ?? null
2567
+ archetype_conventions: profile.archetypeConventions ?? null,
2568
+ // alpha.95 — round-trip the measured negatives. The s56 rule: a new
2569
+ // ModelProfile field must land in migration + BOTH transformers + the
2570
+ // config-endpoint cols list + the parity test, or it is theater for every
2571
+ // brain-connected consumer.
2572
+ probed_limits: profile.probedLimits ?? null
2463
2573
  };
2464
2574
  if (opts.verifiedAgainstDocs !== void 0) {
2465
2575
  row.verified_against_docs = opts.verifiedAgainstDocs;
@@ -6464,7 +6574,7 @@ function validateFinalFit(ir, profile, tokens) {
6464
6574
  }
6465
6575
 
6466
6576
  // src/version.ts
6467
- var LIBRARY_VERSION = "2.0.0-alpha.94";
6577
+ var LIBRARY_VERSION = "2.0.0-alpha.95";
6468
6578
 
6469
6579
  // src/pricing-brain.ts
6470
6580
  function isPricingRow(x) {
@@ -11403,6 +11513,7 @@ function compile2(ir, opts) {
11403
11513
  isMeasuredFailureBrainActive,
11404
11514
  isMeasuredFailureGateEnabledFromEnv,
11405
11515
  isModelReachable,
11516
+ isModelUnavailableMessage,
11406
11517
  isPromotionsBrainActive,
11407
11518
  isProviderReachable,
11408
11519
  judgeMeasuredFailure,
package/dist/index.mjs CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  LIBRARY_VERSION,
8
8
  createKeyHealthRoute,
9
9
  keyFingerprint
10
- } from "./chunk-VXSSZFES.mjs";
10
+ } from "./chunk-JFM5A556.mjs";
11
11
  import {
12
12
  ARCHETYPE_FAMILY_FITS,
13
13
  BLOCKED_MODEL_FAMILY_SIBLING_SERVED_CODE,
@@ -63,7 +63,7 @@ import {
63
63
  runAdvisor,
64
64
  setTokenizer,
65
65
  wilsonLowerBound
66
- } from "./chunk-TN6UIX56.mjs";
66
+ } from "./chunk-IRXC7WEQ.mjs";
67
67
  import {
68
68
  ABSOLUTE_FLOOR,
69
69
  ARCHETYPE_FLOOR_DEFAULT,
@@ -100,7 +100,7 @@ import {
100
100
  policySetHas,
101
101
  readBrainReadEnv,
102
102
  resolveProviderKey
103
- } from "./chunk-OAJZLZBN.mjs";
103
+ } from "./chunk-BJD75WCL.mjs";
104
104
  import {
105
105
  ALL_ARCHETYPES,
106
106
  DIALECT_VERSION,
@@ -127,7 +127,7 @@ import {
127
127
  registerProfiles,
128
128
  resolveModelAlias,
129
129
  tryGetProfile
130
- } from "./chunk-57XCZGN5.mjs";
130
+ } from "./chunk-D3BVYXNA.mjs";
131
131
  import {
132
132
  emitAdvisoryFired,
133
133
  emitCompileDone,
@@ -4397,6 +4397,7 @@ export {
4397
4397
  isMeasuredFailureBrainActive,
4398
4398
  isMeasuredFailureGateEnabledFromEnv,
4399
4399
  isModelReachable,
4400
+ isModelUnavailableMessage,
4400
4401
  isPromotionsBrainActive,
4401
4402
  isProviderReachable,
4402
4403
  judgeMeasuredFailure,
@@ -28,7 +28,7 @@ __export(key_health_exports, {
28
28
  module.exports = __toCommonJS(key_health_exports);
29
29
 
30
30
  // src/version.ts
31
- var LIBRARY_VERSION = "2.0.0-alpha.94";
31
+ var LIBRARY_VERSION = "2.0.0-alpha.95";
32
32
 
33
33
  // src/key-health.ts
34
34
  var JSON_HEADERS = { "Content-Type": "application/json" };
@@ -3,7 +3,7 @@ import {
3
3
  KEY_FINGERPRINT_LENGTH,
4
4
  createKeyHealthRoute,
5
5
  keyFingerprint
6
- } from "./chunk-VXSSZFES.mjs";
6
+ } from "./chunk-JFM5A556.mjs";
7
7
  export {
8
8
  KEY_FINGERPRINT_DOMAIN,
9
9
  KEY_FINGERPRINT_LENGTH,
package/dist/probe.js CHANGED
@@ -161,6 +161,26 @@ var PROFILES_RAW = [
161
161
  // on Fable 5 (omit instead) — MOOT here: ANTHROPIC_LOWERING_BASE carries no
162
162
  // `thinking` field, so kgauto never sends the param. (L-049/L-081.)
163
163
  id: "claude-fable-5",
164
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 32.
165
+ // This model declared no cliffs, which is why the offline check had
166
+ // nothing measured to say about it. The claim states its denominator:
167
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
168
+ // evidence of correct selection + 3-way parallel emission at that menu
169
+ // size — NOT evidence of 20 concurrent calls.
170
+ probedLimits: [
171
+ {
172
+ metric: "tool_count",
173
+ testedAt: 20,
174
+ demanded: 3,
175
+ served: [3, 3, 3],
176
+ outcome: "held",
177
+ trials: 3,
178
+ lastProbed: "2026-08-28",
179
+ probeRunId: 32,
180
+ route: "direct",
181
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
182
+ }
183
+ ],
164
184
  verifiedAgainstDocs: "2026-06-21",
165
185
  provider: "anthropic",
166
186
  status: "current",
@@ -281,6 +301,26 @@ var PROFILES_RAW = [
281
301
  // failure, where a template-clone of PRICE (the field that actually varies,
282
302
  // there by 2.5-3.75x) went unverified for 65 days.
283
303
  id: "claude-opus-5",
304
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 33.
305
+ // This model declared no cliffs, which is why the offline check had
306
+ // nothing measured to say about it. The claim states its denominator:
307
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
308
+ // evidence of correct selection + 3-way parallel emission at that menu
309
+ // size — NOT evidence of 20 concurrent calls.
310
+ probedLimits: [
311
+ {
312
+ metric: "tool_count",
313
+ testedAt: 20,
314
+ demanded: 3,
315
+ served: [3, 3, 3],
316
+ outcome: "held",
317
+ trials: 3,
318
+ lastProbed: "2026-08-28",
319
+ probeRunId: 33,
320
+ route: "direct",
321
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
322
+ }
323
+ ],
284
324
  verifiedAgainstDocs: "2026-07-25",
285
325
  provider: "anthropic",
286
326
  status: "current",
@@ -1159,6 +1199,26 @@ var PROFILES_RAW = [
1159
1199
  },
1160
1200
  {
1161
1201
  id: "gpt-5.4-mini",
1202
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 34.
1203
+ // This model declared no cliffs, which is why the offline check had
1204
+ // nothing measured to say about it. The claim states its denominator:
1205
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
1206
+ // evidence of correct selection + 3-way parallel emission at that menu
1207
+ // size — NOT evidence of 20 concurrent calls.
1208
+ probedLimits: [
1209
+ {
1210
+ metric: "tool_count",
1211
+ testedAt: 20,
1212
+ demanded: 3,
1213
+ served: [3, 3, 3],
1214
+ outcome: "held",
1215
+ trials: 3,
1216
+ lastProbed: "2026-08-28",
1217
+ probeRunId: 34,
1218
+ route: "direct",
1219
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
1220
+ }
1221
+ ],
1162
1222
  verifiedAgainstDocs: "2026-05-17",
1163
1223
  provider: "openai",
1164
1224
  status: "current",
@@ -1202,6 +1262,26 @@ var PROFILES_RAW = [
1202
1262
  },
1203
1263
  {
1204
1264
  id: "gpt-5.4-nano",
1265
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 35.
1266
+ // This model declared no cliffs, which is why the offline check had
1267
+ // nothing measured to say about it. The claim states its denominator:
1268
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
1269
+ // evidence of correct selection + 3-way parallel emission at that menu
1270
+ // size — NOT evidence of 20 concurrent calls.
1271
+ probedLimits: [
1272
+ {
1273
+ metric: "tool_count",
1274
+ testedAt: 20,
1275
+ demanded: 3,
1276
+ served: [3, 3, 3],
1277
+ outcome: "held",
1278
+ trials: 3,
1279
+ lastProbed: "2026-08-28",
1280
+ probeRunId: 35,
1281
+ route: "direct",
1282
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
1283
+ }
1284
+ ],
1205
1285
  verifiedAgainstDocs: "2026-05-17",
1206
1286
  provider: "openai",
1207
1287
  status: "current",
@@ -1817,6 +1897,26 @@ var PROFILES_RAW = [
1817
1897
  // 'preview' per the Fable precedent — no brain evidence yet; promotion to
1818
1898
  // 'current' is an explicit call. (L-049/L-081.)
1819
1899
  id: "claude-sonnet-5",
1900
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 36.
1901
+ // This model declared no cliffs, which is why the offline check had
1902
+ // nothing measured to say about it. The claim states its denominator:
1903
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
1904
+ // evidence of correct selection + 3-way parallel emission at that menu
1905
+ // size — NOT evidence of 20 concurrent calls.
1906
+ probedLimits: [
1907
+ {
1908
+ metric: "tool_count",
1909
+ testedAt: 20,
1910
+ demanded: 3,
1911
+ served: [3, 3, 3],
1912
+ outcome: "held",
1913
+ trials: 3,
1914
+ lastProbed: "2026-08-28",
1915
+ probeRunId: 36,
1916
+ route: "direct",
1917
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
1918
+ }
1919
+ ],
1820
1920
  verifiedAgainstDocs: "2026-08-14",
1821
1921
  provider: "anthropic",
1822
1922
  status: "current",
@@ -2153,7 +2253,11 @@ function rowToProfile(row) {
2153
2253
  // latency_tier → undefined (latencyTierOf derives from tags; not
2154
2254
  // safety-critical). archetype_conventions already array-validated above.
2155
2255
  latencyTier: normalizeLatencyTier(row.latency_tier),
2156
- archetypeConventions: row.archetype_conventions ?? void 0
2256
+ archetypeConventions: row.archetype_conventions ?? void 0,
2257
+ // alpha.95 — measured negatives. NOT safety-critical (nothing routes on
2258
+ // them), so a type-mismatch degrades to undefined rather than nulling
2259
+ // the whole profile the way a corrupt `cliffs` does.
2260
+ probedLimits: Array.isArray(row.probed_limits) ? row.probed_limits : void 0
2157
2261
  };
2158
2262
  } catch {
2159
2263
  return null;
package/dist/probe.mjs CHANGED
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  compile
3
- } from "./chunk-TN6UIX56.mjs";
4
- import "./chunk-OAJZLZBN.mjs";
3
+ } from "./chunk-IRXC7WEQ.mjs";
4
+ import "./chunk-BJD75WCL.mjs";
5
5
  import "./chunk-FEMPY6EC.mjs";
6
6
  import {
7
7
  deriveCliffEvidenceClass,
8
8
  getProfile
9
- } from "./chunk-57XCZGN5.mjs";
9
+ } from "./chunk-D3BVYXNA.mjs";
10
10
 
11
11
  // src/probe.ts
12
12
  function compileSuppressing(ir, opts) {
@@ -61,6 +61,39 @@ interface CliffEvidence {
61
61
  /** FK into kgauto_guard_probe_runs. */
62
62
  probeRunId?: number;
63
63
  }
64
+ /**
65
+ * alpha.95 — a MEASURED NEGATIVE: a limit we deliberately probed and which
66
+ * held. It has no home in `CliffRule`, because a CliffRule requires an action
67
+ * and there is nothing to do when nothing broke — which is exactly why the
68
+ * fact was invisible until now. Of 15 `current` bundled models, 5 declared
69
+ * zero cliffs (claude-opus-5, claude-sonnet-5, claude-fable-5, gpt-5.4-mini,
70
+ * gpt-5.4-nano — the models a stranger hardcodes), so the offline check had
71
+ * nothing measured to say about precisely them.
72
+ *
73
+ * `claim` is written to be quotable verbatim and MUST state its own
74
+ * denominator: "served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials"
75
+ * is a fact; "handles 20 tools" is an overclaim of the same run.
76
+ */
77
+ interface ProbedLimit {
78
+ metric: CliffRule['metric'];
79
+ /** The point actually exercised (e.g. tool-ladder size). */
80
+ testedAt: number;
81
+ /** What the fixture demanded at that point — the denominator. */
82
+ demanded?: number;
83
+ /** Distinct tools served, per trial. */
84
+ served?: number[];
85
+ /** `held` = probed and did not break. `broke` = a cliff we shipped blind. */
86
+ outcome: 'held' | 'broke';
87
+ trials: number;
88
+ /** ISO date of the run. */
89
+ lastProbed: string;
90
+ /** FK into kgauto_guard_probe_runs. */
91
+ probeRunId?: number;
92
+ /** `direct`, or a gateway route — a verdict is a per-route fact. */
93
+ route?: string;
94
+ /** One sentence, quotable, denominator included. */
95
+ claim: string;
96
+ }
64
97
  /**
65
98
  * alpha.93 — evidence class for a guard, derived when the rule predates the
66
99
  * explicit field. Explicit `evidence.class` always wins; the legacy
@@ -291,6 +324,13 @@ interface ModelProfile {
291
324
  * See `ArchetypeConvention` for field semantics.
292
325
  */
293
326
  archetypeConventions?: ArchetypeConvention[];
327
+ /**
328
+ * alpha.95 — measured negatives from the guard-probe suite's `--discover`
329
+ * mode. Lives in the BUNDLE deliberately: `kgauto-check` runs offline and
330
+ * never reads the brain, so evidence that lands brain-only is invisible to
331
+ * the artifact first contact leads with.
332
+ */
333
+ probedLimits?: ProbedLimit[];
294
334
  /**
295
335
  * alpha.87 — true ONLY on profiles synthesized by
296
336
  * `onUnprofiledModel: 'best-effort'`. Lets compile() (and any consumer)
@@ -377,4 +417,4 @@ declare function allProfiles(): readonly ModelProfile[];
377
417
  declare function allProfilesRaw(): readonly ModelProfile[];
378
418
  declare function profilesByProvider(provider: Provider): readonly ModelProfile[];
379
419
 
380
- export { ALIASES, type ArchetypeConvention, type CacheStrategy, type CliffEvidence, type CliffRule, LATENCY_TIER_MS, type LatencyTier, type LoweringSpec, type ModelProfile, type RecoveryRule, type StructuredOutputCapability, type SystemPromptMode, _setProfileBrainHook, _testClearConsumerProfiles, allProfiles, allProfilesRaw, bestEffortProfile, deriveCliffEvidenceClass, getProfile, inferProviderFromId, latencyTierOf, profilesByProvider, registerProfiles, resolveModelAlias, tryGetProfile };
420
+ export { ALIASES, type ArchetypeConvention, type CacheStrategy, type CliffEvidence, type CliffRule, LATENCY_TIER_MS, type LatencyTier, type LoweringSpec, type ModelProfile, type ProbedLimit, type RecoveryRule, type StructuredOutputCapability, type SystemPromptMode, _setProfileBrainHook, _testClearConsumerProfiles, allProfiles, allProfilesRaw, bestEffortProfile, deriveCliffEvidenceClass, getProfile, inferProviderFromId, latencyTierOf, profilesByProvider, registerProfiles, resolveModelAlias, tryGetProfile };
@@ -61,6 +61,39 @@ interface CliffEvidence {
61
61
  /** FK into kgauto_guard_probe_runs. */
62
62
  probeRunId?: number;
63
63
  }
64
+ /**
65
+ * alpha.95 — a MEASURED NEGATIVE: a limit we deliberately probed and which
66
+ * held. It has no home in `CliffRule`, because a CliffRule requires an action
67
+ * and there is nothing to do when nothing broke — which is exactly why the
68
+ * fact was invisible until now. Of 15 `current` bundled models, 5 declared
69
+ * zero cliffs (claude-opus-5, claude-sonnet-5, claude-fable-5, gpt-5.4-mini,
70
+ * gpt-5.4-nano — the models a stranger hardcodes), so the offline check had
71
+ * nothing measured to say about precisely them.
72
+ *
73
+ * `claim` is written to be quotable verbatim and MUST state its own
74
+ * denominator: "served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials"
75
+ * is a fact; "handles 20 tools" is an overclaim of the same run.
76
+ */
77
+ interface ProbedLimit {
78
+ metric: CliffRule['metric'];
79
+ /** The point actually exercised (e.g. tool-ladder size). */
80
+ testedAt: number;
81
+ /** What the fixture demanded at that point — the denominator. */
82
+ demanded?: number;
83
+ /** Distinct tools served, per trial. */
84
+ served?: number[];
85
+ /** `held` = probed and did not break. `broke` = a cliff we shipped blind. */
86
+ outcome: 'held' | 'broke';
87
+ trials: number;
88
+ /** ISO date of the run. */
89
+ lastProbed: string;
90
+ /** FK into kgauto_guard_probe_runs. */
91
+ probeRunId?: number;
92
+ /** `direct`, or a gateway route — a verdict is a per-route fact. */
93
+ route?: string;
94
+ /** One sentence, quotable, denominator included. */
95
+ claim: string;
96
+ }
64
97
  /**
65
98
  * alpha.93 — evidence class for a guard, derived when the rule predates the
66
99
  * explicit field. Explicit `evidence.class` always wins; the legacy
@@ -291,6 +324,13 @@ interface ModelProfile {
291
324
  * See `ArchetypeConvention` for field semantics.
292
325
  */
293
326
  archetypeConventions?: ArchetypeConvention[];
327
+ /**
328
+ * alpha.95 — measured negatives from the guard-probe suite's `--discover`
329
+ * mode. Lives in the BUNDLE deliberately: `kgauto-check` runs offline and
330
+ * never reads the brain, so evidence that lands brain-only is invisible to
331
+ * the artifact first contact leads with.
332
+ */
333
+ probedLimits?: ProbedLimit[];
294
334
  /**
295
335
  * alpha.87 — true ONLY on profiles synthesized by
296
336
  * `onUnprofiledModel: 'best-effort'`. Lets compile() (and any consumer)
@@ -377,4 +417,4 @@ declare function allProfiles(): readonly ModelProfile[];
377
417
  declare function allProfilesRaw(): readonly ModelProfile[];
378
418
  declare function profilesByProvider(provider: Provider): readonly ModelProfile[];
379
419
 
380
- export { ALIASES, type ArchetypeConvention, type CacheStrategy, type CliffEvidence, type CliffRule, LATENCY_TIER_MS, type LatencyTier, type LoweringSpec, type ModelProfile, type RecoveryRule, type StructuredOutputCapability, type SystemPromptMode, _setProfileBrainHook, _testClearConsumerProfiles, allProfiles, allProfilesRaw, bestEffortProfile, deriveCliffEvidenceClass, getProfile, inferProviderFromId, latencyTierOf, profilesByProvider, registerProfiles, resolveModelAlias, tryGetProfile };
420
+ export { ALIASES, type ArchetypeConvention, type CacheStrategy, type CliffEvidence, type CliffRule, LATENCY_TIER_MS, type LatencyTier, type LoweringSpec, type ModelProfile, type ProbedLimit, type RecoveryRule, type StructuredOutputCapability, type SystemPromptMode, _setProfileBrainHook, _testClearConsumerProfiles, allProfiles, allProfilesRaw, bestEffortProfile, deriveCliffEvidenceClass, getProfile, inferProviderFromId, latencyTierOf, profilesByProvider, registerProfiles, resolveModelAlias, tryGetProfile };
package/dist/profiles.js CHANGED
@@ -92,6 +92,26 @@ var PROFILES_RAW = [
92
92
  // on Fable 5 (omit instead) — MOOT here: ANTHROPIC_LOWERING_BASE carries no
93
93
  // `thinking` field, so kgauto never sends the param. (L-049/L-081.)
94
94
  id: "claude-fable-5",
95
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 32.
96
+ // This model declared no cliffs, which is why the offline check had
97
+ // nothing measured to say about it. The claim states its denominator:
98
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
99
+ // evidence of correct selection + 3-way parallel emission at that menu
100
+ // size — NOT evidence of 20 concurrent calls.
101
+ probedLimits: [
102
+ {
103
+ metric: "tool_count",
104
+ testedAt: 20,
105
+ demanded: 3,
106
+ served: [3, 3, 3],
107
+ outcome: "held",
108
+ trials: 3,
109
+ lastProbed: "2026-08-28",
110
+ probeRunId: 32,
111
+ route: "direct",
112
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
113
+ }
114
+ ],
95
115
  verifiedAgainstDocs: "2026-06-21",
96
116
  provider: "anthropic",
97
117
  status: "current",
@@ -212,6 +232,26 @@ var PROFILES_RAW = [
212
232
  // failure, where a template-clone of PRICE (the field that actually varies,
213
233
  // there by 2.5-3.75x) went unverified for 65 days.
214
234
  id: "claude-opus-5",
235
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 33.
236
+ // This model declared no cliffs, which is why the offline check had
237
+ // nothing measured to say about it. The claim states its denominator:
238
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
239
+ // evidence of correct selection + 3-way parallel emission at that menu
240
+ // size — NOT evidence of 20 concurrent calls.
241
+ probedLimits: [
242
+ {
243
+ metric: "tool_count",
244
+ testedAt: 20,
245
+ demanded: 3,
246
+ served: [3, 3, 3],
247
+ outcome: "held",
248
+ trials: 3,
249
+ lastProbed: "2026-08-28",
250
+ probeRunId: 33,
251
+ route: "direct",
252
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
253
+ }
254
+ ],
215
255
  verifiedAgainstDocs: "2026-07-25",
216
256
  provider: "anthropic",
217
257
  status: "current",
@@ -1090,6 +1130,26 @@ var PROFILES_RAW = [
1090
1130
  },
1091
1131
  {
1092
1132
  id: "gpt-5.4-mini",
1133
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 34.
1134
+ // This model declared no cliffs, which is why the offline check had
1135
+ // nothing measured to say about it. The claim states its denominator:
1136
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
1137
+ // evidence of correct selection + 3-way parallel emission at that menu
1138
+ // size — NOT evidence of 20 concurrent calls.
1139
+ probedLimits: [
1140
+ {
1141
+ metric: "tool_count",
1142
+ testedAt: 20,
1143
+ demanded: 3,
1144
+ served: [3, 3, 3],
1145
+ outcome: "held",
1146
+ trials: 3,
1147
+ lastProbed: "2026-08-28",
1148
+ probeRunId: 34,
1149
+ route: "direct",
1150
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
1151
+ }
1152
+ ],
1093
1153
  verifiedAgainstDocs: "2026-05-17",
1094
1154
  provider: "openai",
1095
1155
  status: "current",
@@ -1133,6 +1193,26 @@ var PROFILES_RAW = [
1133
1193
  },
1134
1194
  {
1135
1195
  id: "gpt-5.4-nano",
1196
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 35.
1197
+ // This model declared no cliffs, which is why the offline check had
1198
+ // nothing measured to say about it. The claim states its denominator:
1199
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
1200
+ // evidence of correct selection + 3-way parallel emission at that menu
1201
+ // size — NOT evidence of 20 concurrent calls.
1202
+ probedLimits: [
1203
+ {
1204
+ metric: "tool_count",
1205
+ testedAt: 20,
1206
+ demanded: 3,
1207
+ served: [3, 3, 3],
1208
+ outcome: "held",
1209
+ trials: 3,
1210
+ lastProbed: "2026-08-28",
1211
+ probeRunId: 35,
1212
+ route: "direct",
1213
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
1214
+ }
1215
+ ],
1136
1216
  verifiedAgainstDocs: "2026-05-17",
1137
1217
  provider: "openai",
1138
1218
  status: "current",
@@ -1748,6 +1828,26 @@ var PROFILES_RAW = [
1748
1828
  // 'preview' per the Fable precedent — no brain evidence yet; promotion to
1749
1829
  // 'current' is an explicit call. (L-049/L-081.)
1750
1830
  id: "claude-sonnet-5",
1831
+ // alpha.95 — MEASURED, 2026-08-28, guard-probe-suite --discover run 36.
1832
+ // This model declared no cliffs, which is why the offline check had
1833
+ // nothing measured to say about it. The claim states its denominator:
1834
+ // the fixture demands 3 specific tools from a 20-tool menu, so this is
1835
+ // evidence of correct selection + 3-way parallel emission at that menu
1836
+ // size — NOT evidence of 20 concurrent calls.
1837
+ probedLimits: [
1838
+ {
1839
+ metric: "tool_count",
1840
+ testedAt: 20,
1841
+ demanded: 3,
1842
+ served: [3, 3, 3],
1843
+ outcome: "held",
1844
+ trials: 3,
1845
+ lastProbed: "2026-08-28",
1846
+ probeRunId: 36,
1847
+ route: "direct",
1848
+ claim: "Measured 2026-08-28: served 3 of 3 demanded tools from a 20-tool menu, 3/3 trials, direct route."
1849
+ }
1850
+ ],
1751
1851
  verifiedAgainstDocs: "2026-08-14",
1752
1852
  provider: "anthropic",
1753
1853
  status: "current",
package/dist/profiles.mjs CHANGED
@@ -14,7 +14,7 @@ import {
14
14
  registerProfiles,
15
15
  resolveModelAlias,
16
16
  tryGetProfile
17
- } from "./chunk-57XCZGN5.mjs";
17
+ } from "./chunk-D3BVYXNA.mjs";
18
18
  export {
19
19
  ALIASES,
20
20
  LATENCY_TIER_MS,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@warmdrift/kgauto-compiler",
3
- "version": "2.0.0-alpha.94",
3
+ "version": "2.0.0-alpha.95",
4
4
  "description": "Prompt compiler with executable provider knowledge for multi-model AI apps: normalized multi-provider transport with fallback chains, compile-time cliff guards, a curated model registry, and a telemetry flight recorder. Swap models without rewriting prompts.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -114,4 +114,4 @@
114
114
  "typescript": "^5.7.0",
115
115
  "vitest": "^3.1.0"
116
116
  }
117
- }
117
+ }