@warmdrift/kgauto-compiler 2.0.0-alpha.52 → 2.0.0-alpha.53
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/dist/{chunk-HHWBB46W.mjs → chunk-IIMPJZNH.mjs} +1 -1
- package/dist/{chunk-CXH7KC4D.mjs → chunk-QKXTMVCT.mjs} +57 -0
- package/dist/glassbox/index.d.mts +3 -3
- package/dist/glassbox/index.d.ts +3 -3
- package/dist/glassbox-routes/format.d.mts +2 -2
- package/dist/glassbox-routes/format.d.ts +2 -2
- package/dist/glassbox-routes/index.d.mts +4 -4
- package/dist/glassbox-routes/index.d.ts +4 -4
- package/dist/glassbox-routes/index.js +57 -0
- package/dist/glassbox-routes/index.mjs +2 -2
- package/dist/glassbox-routes/react/index.d.mts +2 -2
- package/dist/glassbox-routes/react/index.d.ts +2 -2
- package/dist/index.d.mts +23 -9
- package/dist/index.d.ts +23 -9
- package/dist/index.js +97 -9
- package/dist/index.mjs +42 -11
- package/dist/{ir-rUUojj0s.d.ts → ir-BiXAMyji.d.ts} +10 -1
- package/dist/{ir-dDcG8Pvu.d.mts → ir-CAlLBu5d.d.mts} +10 -1
- package/dist/profiles.d.mts +1 -1
- package/dist/profiles.d.ts +1 -1
- package/dist/profiles.js +57 -0
- package/dist/profiles.mjs +1 -1
- package/dist/{types-vGo-h0tZ.d.mts → types-C_dkNMA_.d.mts} +1 -1
- package/dist/{types-BTeRoSvM.d.mts → types-Dj5FLhBV.d.mts} +1 -1
- package/dist/{types-B_pdPjxm.d.ts → types-DsA8JFOp.d.ts} +1 -1
- package/dist/{types-UXPxWabQ.d.ts → types-hEDGehpz.d.ts} +1 -1
- package/package.json +1 -1
|
@@ -1356,6 +1356,63 @@ var PROFILES_RAW = [
|
|
|
1356
1356
|
critique: 5
|
|
1357
1357
|
// +1 vs 2.5-flash — but still below Sonnet/Opus reasoning floor
|
|
1358
1358
|
}
|
|
1359
|
+
},
|
|
1360
|
+
{
|
|
1361
|
+
// Auto-onboarded 2026-07-01 from `claude-sonnet-4-6`; VERIFIED 2026-07-02
|
|
1362
|
+
// against the claude-api reference (cc-portfolio ratification pass). The
|
|
1363
|
+
// clone got context right (1M) and pricing right at sticker ($3/$15 —
|
|
1364
|
+
// NOTE an introductory $2/$10 per MTok runs through 2026-08-31; sticker
|
|
1365
|
+
// encoded here per the time-bounded-pricing convention, intro belongs in
|
|
1366
|
+
// brain kgauto_pricing if worth capturing). The clone got max output WRONG:
|
|
1367
|
+
// Sonnet 5 is 128k, not 4-6's 64k — corrected. New tokenizer (~30% more
|
|
1368
|
+
// tokens for the same text vs 4-6): byte-budget consumers should re-baseline.
|
|
1369
|
+
// API quirks (claude-api ref): (a) NON-DEFAULT temperature/top_p/top_k
|
|
1370
|
+
// return 400 — moot for kgauto's own call() path (ANTHROPIC_LOWERING_BASE
|
|
1371
|
+
// emits no sampling params) but a REAL hazard for compileForAISDKv6
|
|
1372
|
+
// consumers that pass temperature themselves (tt-intel scoring uses temp:0
|
|
1373
|
+
// for determinism — that 400s on this model; noted to consumers via the
|
|
1374
|
+
// contract). (b) Omitting `thinking` runs ADAPTIVE by default (4-6 ran
|
|
1375
|
+
// thinking-off) — output spend shifts. (c) Supports effort xhigh. status:
|
|
1376
|
+
// 'preview' per the Fable precedent — no brain evidence yet; promotion to
|
|
1377
|
+
// 'current' is an explicit call. (L-049/L-081.)
|
|
1378
|
+
id: "claude-sonnet-5",
|
|
1379
|
+
verifiedAgainstDocs: "2026-07-02",
|
|
1380
|
+
provider: "anthropic",
|
|
1381
|
+
status: "preview",
|
|
1382
|
+
maxContextTokens: 1e6,
|
|
1383
|
+
maxOutputTokens: 128e3,
|
|
1384
|
+
maxTools: 64,
|
|
1385
|
+
parallelToolCalls: true,
|
|
1386
|
+
structuredOutput: "grammar",
|
|
1387
|
+
systemPromptMode: "inline",
|
|
1388
|
+
streaming: true,
|
|
1389
|
+
cliffs: [],
|
|
1390
|
+
costInputPer1m: 3,
|
|
1391
|
+
costOutputPer1m: 15,
|
|
1392
|
+
lowering: ANTHROPIC_LOWERING_BASE,
|
|
1393
|
+
recovery: [
|
|
1394
|
+
{ signal: "rate_limit", action: "escalate", reason: "429 \u2014 escalate" },
|
|
1395
|
+
{ signal: "model_not_found", action: "escalate", reason: "Deprecated \u2014 escalate (L-061)" }
|
|
1396
|
+
],
|
|
1397
|
+
strengths: ["quality", "tool_use", "long_context", "cache_friendly", "extended_thinking"],
|
|
1398
|
+
weaknesses: [],
|
|
1399
|
+
notes: "Sonnet 5 (2026-06): near-Opus quality on coding/agentic work at Sonnet cost. Verified 2026-07-02 against the claude-api reference: 1M ctx, 128k out (clone's 64k corrected), $3/$15 sticker (intro $2/$10 through 2026-08-31). New tokenizer ~30% more tokens vs sonnet-4-6. Consumer hazards: non-default temperature/top_p/top_k 400 (temp:0 rejected \u2014 deterministic-scoring consumers must omit); thinking defaults to adaptive when omitted. status:preview \u2014 no brain evidence yet; earns placement via the machinery.",
|
|
1400
|
+
// Master plan §6.2 anchor. Tier 0 for plan/generate/ask/extract/transform
|
|
1401
|
+
// in starter chains; tier 1 cross-provider for hunt/summarize/classify.
|
|
1402
|
+
archetypePerf: {
|
|
1403
|
+
ask: 9,
|
|
1404
|
+
generate: 9,
|
|
1405
|
+
plan: 9,
|
|
1406
|
+
critique: 9,
|
|
1407
|
+
extract: 9,
|
|
1408
|
+
transform: 9,
|
|
1409
|
+
hunt: 7,
|
|
1410
|
+
// strong but Flash beats on parallel tool throughput
|
|
1411
|
+
summarize: 8,
|
|
1412
|
+
// overkill for tolerant archetype
|
|
1413
|
+
classify: 8
|
|
1414
|
+
// overkill
|
|
1415
|
+
}
|
|
1359
1416
|
}
|
|
1360
1417
|
];
|
|
1361
1418
|
var ALIASES = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { G as GlassboxEvent } from '../types-
|
|
2
|
-
export { A as AdvisoryFiredData, C as CompileDoneData, a as CompileStartData, E as ExecuteAttemptData, b as ExecuteSuccessData, F as FallbackWalkedData, c as GLASSBOX_STREAM_TTL_MS, d as GlassboxEventKind, e as GlassboxPubSub } from '../types-
|
|
3
|
-
import '../ir-
|
|
1
|
+
import { G as GlassboxEvent } from '../types-C_dkNMA_.mjs';
|
|
2
|
+
export { A as AdvisoryFiredData, C as CompileDoneData, a as CompileStartData, E as ExecuteAttemptData, b as ExecuteSuccessData, F as FallbackWalkedData, c as GLASSBOX_STREAM_TTL_MS, d as GlassboxEventKind, e as GlassboxPubSub } from '../types-C_dkNMA_.mjs';
|
|
3
|
+
import '../ir-CAlLBu5d.mjs';
|
|
4
4
|
import '../dialect.mjs';
|
|
5
5
|
|
|
6
6
|
/**
|
package/dist/glassbox/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { G as GlassboxEvent } from '../types-
|
|
2
|
-
export { A as AdvisoryFiredData, C as CompileDoneData, a as CompileStartData, E as ExecuteAttemptData, b as ExecuteSuccessData, F as FallbackWalkedData, c as GLASSBOX_STREAM_TTL_MS, d as GlassboxEventKind, e as GlassboxPubSub } from '../types-
|
|
3
|
-
import '../ir-
|
|
1
|
+
import { G as GlassboxEvent } from '../types-hEDGehpz.js';
|
|
2
|
+
export { A as AdvisoryFiredData, C as CompileDoneData, a as CompileStartData, E as ExecuteAttemptData, b as ExecuteSuccessData, F as FallbackWalkedData, c as GLASSBOX_STREAM_TTL_MS, d as GlassboxEventKind, e as GlassboxPubSub } from '../types-hEDGehpz.js';
|
|
3
|
+
import '../ir-BiXAMyji.js';
|
|
4
4
|
import '../dialect.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { G as GlassboxEvent } from '../types-
|
|
2
|
-
import { a as TraceDetail, b as TraceSummary, c as TraceCounterfactual } from '../types-
|
|
3
|
-
export { A as AdvisoryRecord, T as TraceHealth, d as TraceSectionRewrite } from '../types-
|
|
4
|
-
import '../ir-
|
|
1
|
+
import { G as GlassboxEvent } from '../types-C_dkNMA_.mjs';
|
|
2
|
+
import { a as TraceDetail, b as TraceSummary, c as TraceCounterfactual } from '../types-Dj5FLhBV.mjs';
|
|
3
|
+
export { A as AdvisoryRecord, T as TraceHealth, d as TraceSectionRewrite } from '../types-Dj5FLhBV.mjs';
|
|
4
|
+
import '../ir-CAlLBu5d.mjs';
|
|
5
5
|
import '../dialect.mjs';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { G as GlassboxEvent } from '../types-
|
|
2
|
-
import { a as TraceDetail, b as TraceSummary, c as TraceCounterfactual } from '../types-
|
|
3
|
-
export { A as AdvisoryRecord, T as TraceHealth, d as TraceSectionRewrite } from '../types-
|
|
4
|
-
import '../ir-
|
|
1
|
+
import { G as GlassboxEvent } from '../types-hEDGehpz.js';
|
|
2
|
+
import { a as TraceDetail, b as TraceSummary, c as TraceCounterfactual } from '../types-DsA8JFOp.js';
|
|
3
|
+
export { A as AdvisoryRecord, T as TraceHealth, d as TraceSectionRewrite } from '../types-DsA8JFOp.js';
|
|
4
|
+
import '../ir-BiXAMyji.js';
|
|
5
5
|
import '../dialect.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -1410,6 +1410,63 @@ var PROFILES_RAW = [
|
|
|
1410
1410
|
critique: 5
|
|
1411
1411
|
// +1 vs 2.5-flash — but still below Sonnet/Opus reasoning floor
|
|
1412
1412
|
}
|
|
1413
|
+
},
|
|
1414
|
+
{
|
|
1415
|
+
// Auto-onboarded 2026-07-01 from `claude-sonnet-4-6`; VERIFIED 2026-07-02
|
|
1416
|
+
// against the claude-api reference (cc-portfolio ratification pass). The
|
|
1417
|
+
// clone got context right (1M) and pricing right at sticker ($3/$15 —
|
|
1418
|
+
// NOTE an introductory $2/$10 per MTok runs through 2026-08-31; sticker
|
|
1419
|
+
// encoded here per the time-bounded-pricing convention, intro belongs in
|
|
1420
|
+
// brain kgauto_pricing if worth capturing). The clone got max output WRONG:
|
|
1421
|
+
// Sonnet 5 is 128k, not 4-6's 64k — corrected. New tokenizer (~30% more
|
|
1422
|
+
// tokens for the same text vs 4-6): byte-budget consumers should re-baseline.
|
|
1423
|
+
// API quirks (claude-api ref): (a) NON-DEFAULT temperature/top_p/top_k
|
|
1424
|
+
// return 400 — moot for kgauto's own call() path (ANTHROPIC_LOWERING_BASE
|
|
1425
|
+
// emits no sampling params) but a REAL hazard for compileForAISDKv6
|
|
1426
|
+
// consumers that pass temperature themselves (tt-intel scoring uses temp:0
|
|
1427
|
+
// for determinism — that 400s on this model; noted to consumers via the
|
|
1428
|
+
// contract). (b) Omitting `thinking` runs ADAPTIVE by default (4-6 ran
|
|
1429
|
+
// thinking-off) — output spend shifts. (c) Supports effort xhigh. status:
|
|
1430
|
+
// 'preview' per the Fable precedent — no brain evidence yet; promotion to
|
|
1431
|
+
// 'current' is an explicit call. (L-049/L-081.)
|
|
1432
|
+
id: "claude-sonnet-5",
|
|
1433
|
+
verifiedAgainstDocs: "2026-07-02",
|
|
1434
|
+
provider: "anthropic",
|
|
1435
|
+
status: "preview",
|
|
1436
|
+
maxContextTokens: 1e6,
|
|
1437
|
+
maxOutputTokens: 128e3,
|
|
1438
|
+
maxTools: 64,
|
|
1439
|
+
parallelToolCalls: true,
|
|
1440
|
+
structuredOutput: "grammar",
|
|
1441
|
+
systemPromptMode: "inline",
|
|
1442
|
+
streaming: true,
|
|
1443
|
+
cliffs: [],
|
|
1444
|
+
costInputPer1m: 3,
|
|
1445
|
+
costOutputPer1m: 15,
|
|
1446
|
+
lowering: ANTHROPIC_LOWERING_BASE,
|
|
1447
|
+
recovery: [
|
|
1448
|
+
{ signal: "rate_limit", action: "escalate", reason: "429 \u2014 escalate" },
|
|
1449
|
+
{ signal: "model_not_found", action: "escalate", reason: "Deprecated \u2014 escalate (L-061)" }
|
|
1450
|
+
],
|
|
1451
|
+
strengths: ["quality", "tool_use", "long_context", "cache_friendly", "extended_thinking"],
|
|
1452
|
+
weaknesses: [],
|
|
1453
|
+
notes: "Sonnet 5 (2026-06): near-Opus quality on coding/agentic work at Sonnet cost. Verified 2026-07-02 against the claude-api reference: 1M ctx, 128k out (clone's 64k corrected), $3/$15 sticker (intro $2/$10 through 2026-08-31). New tokenizer ~30% more tokens vs sonnet-4-6. Consumer hazards: non-default temperature/top_p/top_k 400 (temp:0 rejected \u2014 deterministic-scoring consumers must omit); thinking defaults to adaptive when omitted. status:preview \u2014 no brain evidence yet; earns placement via the machinery.",
|
|
1454
|
+
// Master plan §6.2 anchor. Tier 0 for plan/generate/ask/extract/transform
|
|
1455
|
+
// in starter chains; tier 1 cross-provider for hunt/summarize/classify.
|
|
1456
|
+
archetypePerf: {
|
|
1457
|
+
ask: 9,
|
|
1458
|
+
generate: 9,
|
|
1459
|
+
plan: 9,
|
|
1460
|
+
critique: 9,
|
|
1461
|
+
extract: 9,
|
|
1462
|
+
transform: 9,
|
|
1463
|
+
hunt: 7,
|
|
1464
|
+
// strong but Flash beats on parallel tool throughput
|
|
1465
|
+
summarize: 8,
|
|
1466
|
+
// overkill for tolerant archetype
|
|
1467
|
+
classify: 8
|
|
1468
|
+
// overkill
|
|
1469
|
+
}
|
|
1413
1470
|
}
|
|
1414
1471
|
];
|
|
1415
1472
|
var ALIASES = {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ARCHETYPE_FLOOR_DEFAULT,
|
|
3
3
|
getDefaultFallbackChain
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-IIMPJZNH.mjs";
|
|
5
5
|
import {
|
|
6
6
|
tryGetProfile
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-QKXTMVCT.mjs";
|
|
8
8
|
import {
|
|
9
9
|
subscribe,
|
|
10
10
|
subscribeApp
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { a as TraceDetail } from '../../types-
|
|
3
|
-
import '../../ir-
|
|
2
|
+
import { a as TraceDetail } from '../../types-Dj5FLhBV.mjs';
|
|
3
|
+
import '../../ir-CAlLBu5d.mjs';
|
|
4
4
|
import '../../dialect.mjs';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { a as TraceDetail } from '../../types-
|
|
3
|
-
import '../../ir-
|
|
2
|
+
import { a as TraceDetail } from '../../types-DsA8JFOp.js';
|
|
3
|
+
import '../../ir-BiXAMyji.js';
|
|
4
4
|
import '../../dialect.js';
|
|
5
5
|
|
|
6
6
|
/**
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { C as CompilePolicy, N as NormalizedResponse, A as ApiKeys, P as ProviderOverrides, a as CompiledRequest, b as PromptIR, c as CallOptions, d as CallResult, S as SystemModelMessage, e as CompileResult, B as BestPracticeAdvisory, f as SectionRewrite, R as RecordInput, g as RecordOutcomeInput, O as OutcomeResult, h as OracleScore, i as Adapter, j as PerAxisMetrics, k as Provider, l as ChainEntry, G as Grounding } from './ir-
|
|
2
|
-
export { m as CallAttempt, n as CallError, o as ChainModelEntry, p as ChainWithGrounding, q as Constraints, F as FallbackReason, H as HistoryCachePolicy, I as IntentDeclaration, M as Message, r as MutationApplied, s as NormalizedTokens, t as OutcomeKind, u as PerAxisMetricsByModel, v as PromptSection, w as SectionKind, x as ShadowProbeConfig, T as ToolCall, y as ToolDefinition } from './ir-
|
|
1
|
+
import { C as CompilePolicy, N as NormalizedResponse, A as ApiKeys, P as ProviderOverrides, a as CompiledRequest, b as PromptIR, c as CallOptions, d as CallResult, S as SystemModelMessage, e as CompileResult, B as BestPracticeAdvisory, f as SectionRewrite, R as RecordInput, g as RecordOutcomeInput, O as OutcomeResult, h as OracleScore, i as Adapter, j as PerAxisMetrics, k as Provider, l as ChainEntry, G as Grounding } from './ir-CAlLBu5d.mjs';
|
|
2
|
+
export { m as CallAttempt, n as CallError, o as ChainModelEntry, p as ChainWithGrounding, q as Constraints, F as FallbackReason, H as HistoryCachePolicy, I as IntentDeclaration, M as Message, r as MutationApplied, s as NormalizedTokens, t as OutcomeKind, u as PerAxisMetricsByModel, v as PromptSection, w as SectionKind, x as ShadowProbeConfig, T as ToolCall, y as ToolDefinition } from './ir-CAlLBu5d.mjs';
|
|
3
3
|
import { ModelProfile, ArchetypeConvention } from './profiles.mjs';
|
|
4
4
|
export { ALIASES, CacheStrategy, CliffRule, LATENCY_TIER_MS, LatencyTier, LoweringSpec, RecoveryRule, StructuredOutputCapability, SystemPromptMode, allProfiles, getProfile, latencyTierOf, profilesByProvider, tryGetProfile } from './profiles.mjs';
|
|
5
5
|
import { IntentArchetypeName } from './dialect.mjs';
|
|
@@ -536,13 +536,26 @@ interface ShadowProbeRecordInput {
|
|
|
536
536
|
/** Wall-clock latency of the candidate replay call, ms (alpha.46). */
|
|
537
537
|
latencyCandidateMs?: number;
|
|
538
538
|
/**
|
|
539
|
-
* alpha — probe-row class (migration 029
|
|
540
|
-
* pre-029 row shape: candidate ran, columns
|
|
541
|
-
* and `'skipped_slow_tier_sync'` are
|
|
542
|
-
*
|
|
543
|
-
*
|
|
539
|
+
* alpha — probe-row class (migration 029; `candidate_error` added by 032).
|
|
540
|
+
* Defaults to `'completed'` (the pre-029 row shape: candidate ran, columns
|
|
541
|
+
* populated). `'aborted_latency_budget'` and `'skipped_slow_tier_sync'` are
|
|
542
|
+
* DIAGNOSTIC rows from sync-mode latency protection; `'candidate_error'`
|
|
543
|
+
* (alpha.53) is the failed-candidate diagnostic — the candidate call
|
|
544
|
+
* errored, with the error class + latency-at-death recorded instead of
|
|
545
|
+
* silence (the IC demo-night probe deaths were invisible for ~90 min under
|
|
546
|
+
* the old record-no-row rule). Diagnostic rows carry no candidate response
|
|
547
|
+
* and no verdict — no false quality signal. A verdict rollup MUST filter to
|
|
548
|
+
* `outcome='completed'`.
|
|
544
549
|
*/
|
|
545
|
-
outcome?: 'completed' | 'aborted_latency_budget' | 'skipped_slow_tier_sync';
|
|
550
|
+
outcome?: 'completed' | 'aborted_latency_budget' | 'skipped_slow_tier_sync' | 'candidate_error';
|
|
551
|
+
/**
|
|
552
|
+
* alpha.53 (migration 032) — error class for `outcome='candidate_error'`
|
|
553
|
+
* rows. Values follow execute()'s taxonomy (`rate_limit`, `timeout`,
|
|
554
|
+
* `server_error`, `model_not_found`, `auth`, `invalid_request`, `unknown`)
|
|
555
|
+
* plus `execute_rejected` (the execute promise rejected outright). NULL /
|
|
556
|
+
* omitted on all other row classes.
|
|
557
|
+
*/
|
|
558
|
+
errorClass?: string;
|
|
546
559
|
}
|
|
547
560
|
/**
|
|
548
561
|
* Pure builder for the `probe_outcomes` row written by the inline shadow-probe.
|
|
@@ -574,7 +587,8 @@ declare function buildShadowProbeRow(input: ShadowProbeRecordInput): {
|
|
|
574
587
|
latency_candidate_ms: number | null;
|
|
575
588
|
prompt_fidelity: number;
|
|
576
589
|
replay_source: 'inline-full-ir';
|
|
577
|
-
outcome: 'completed' | 'aborted_latency_budget' | 'skipped_slow_tier_sync';
|
|
590
|
+
outcome: 'completed' | 'aborted_latency_budget' | 'skipped_slow_tier_sync' | 'candidate_error';
|
|
591
|
+
error_class: string | null;
|
|
578
592
|
};
|
|
579
593
|
/**
|
|
580
594
|
* Persist one inline shadow-probe row to `probe_outcomes`. Fire-and-forget by
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { C as CompilePolicy, N as NormalizedResponse, A as ApiKeys, P as ProviderOverrides, a as CompiledRequest, b as PromptIR, c as CallOptions, d as CallResult, S as SystemModelMessage, e as CompileResult, B as BestPracticeAdvisory, f as SectionRewrite, R as RecordInput, g as RecordOutcomeInput, O as OutcomeResult, h as OracleScore, i as Adapter, j as PerAxisMetrics, k as Provider, l as ChainEntry, G as Grounding } from './ir-
|
|
2
|
-
export { m as CallAttempt, n as CallError, o as ChainModelEntry, p as ChainWithGrounding, q as Constraints, F as FallbackReason, H as HistoryCachePolicy, I as IntentDeclaration, M as Message, r as MutationApplied, s as NormalizedTokens, t as OutcomeKind, u as PerAxisMetricsByModel, v as PromptSection, w as SectionKind, x as ShadowProbeConfig, T as ToolCall, y as ToolDefinition } from './ir-
|
|
1
|
+
import { C as CompilePolicy, N as NormalizedResponse, A as ApiKeys, P as ProviderOverrides, a as CompiledRequest, b as PromptIR, c as CallOptions, d as CallResult, S as SystemModelMessage, e as CompileResult, B as BestPracticeAdvisory, f as SectionRewrite, R as RecordInput, g as RecordOutcomeInput, O as OutcomeResult, h as OracleScore, i as Adapter, j as PerAxisMetrics, k as Provider, l as ChainEntry, G as Grounding } from './ir-BiXAMyji.js';
|
|
2
|
+
export { m as CallAttempt, n as CallError, o as ChainModelEntry, p as ChainWithGrounding, q as Constraints, F as FallbackReason, H as HistoryCachePolicy, I as IntentDeclaration, M as Message, r as MutationApplied, s as NormalizedTokens, t as OutcomeKind, u as PerAxisMetricsByModel, v as PromptSection, w as SectionKind, x as ShadowProbeConfig, T as ToolCall, y as ToolDefinition } from './ir-BiXAMyji.js';
|
|
3
3
|
import { ModelProfile, ArchetypeConvention } from './profiles.js';
|
|
4
4
|
export { ALIASES, CacheStrategy, CliffRule, LATENCY_TIER_MS, LatencyTier, LoweringSpec, RecoveryRule, StructuredOutputCapability, SystemPromptMode, allProfiles, getProfile, latencyTierOf, profilesByProvider, tryGetProfile } from './profiles.js';
|
|
5
5
|
import { IntentArchetypeName } from './dialect.js';
|
|
@@ -536,13 +536,26 @@ interface ShadowProbeRecordInput {
|
|
|
536
536
|
/** Wall-clock latency of the candidate replay call, ms (alpha.46). */
|
|
537
537
|
latencyCandidateMs?: number;
|
|
538
538
|
/**
|
|
539
|
-
* alpha — probe-row class (migration 029
|
|
540
|
-
* pre-029 row shape: candidate ran, columns
|
|
541
|
-
* and `'skipped_slow_tier_sync'` are
|
|
542
|
-
*
|
|
543
|
-
*
|
|
539
|
+
* alpha — probe-row class (migration 029; `candidate_error` added by 032).
|
|
540
|
+
* Defaults to `'completed'` (the pre-029 row shape: candidate ran, columns
|
|
541
|
+
* populated). `'aborted_latency_budget'` and `'skipped_slow_tier_sync'` are
|
|
542
|
+
* DIAGNOSTIC rows from sync-mode latency protection; `'candidate_error'`
|
|
543
|
+
* (alpha.53) is the failed-candidate diagnostic — the candidate call
|
|
544
|
+
* errored, with the error class + latency-at-death recorded instead of
|
|
545
|
+
* silence (the IC demo-night probe deaths were invisible for ~90 min under
|
|
546
|
+
* the old record-no-row rule). Diagnostic rows carry no candidate response
|
|
547
|
+
* and no verdict — no false quality signal. A verdict rollup MUST filter to
|
|
548
|
+
* `outcome='completed'`.
|
|
544
549
|
*/
|
|
545
|
-
outcome?: 'completed' | 'aborted_latency_budget' | 'skipped_slow_tier_sync';
|
|
550
|
+
outcome?: 'completed' | 'aborted_latency_budget' | 'skipped_slow_tier_sync' | 'candidate_error';
|
|
551
|
+
/**
|
|
552
|
+
* alpha.53 (migration 032) — error class for `outcome='candidate_error'`
|
|
553
|
+
* rows. Values follow execute()'s taxonomy (`rate_limit`, `timeout`,
|
|
554
|
+
* `server_error`, `model_not_found`, `auth`, `invalid_request`, `unknown`)
|
|
555
|
+
* plus `execute_rejected` (the execute promise rejected outright). NULL /
|
|
556
|
+
* omitted on all other row classes.
|
|
557
|
+
*/
|
|
558
|
+
errorClass?: string;
|
|
546
559
|
}
|
|
547
560
|
/**
|
|
548
561
|
* Pure builder for the `probe_outcomes` row written by the inline shadow-probe.
|
|
@@ -574,7 +587,8 @@ declare function buildShadowProbeRow(input: ShadowProbeRecordInput): {
|
|
|
574
587
|
latency_candidate_ms: number | null;
|
|
575
588
|
prompt_fidelity: number;
|
|
576
589
|
replay_source: 'inline-full-ir';
|
|
577
|
-
outcome: 'completed' | 'aborted_latency_budget' | 'skipped_slow_tier_sync';
|
|
590
|
+
outcome: 'completed' | 'aborted_latency_budget' | 'skipped_slow_tier_sync' | 'candidate_error';
|
|
591
|
+
error_class: string | null;
|
|
578
592
|
};
|
|
579
593
|
/**
|
|
580
594
|
* Persist one inline shadow-probe row to `probe_outcomes`. Fire-and-forget by
|
package/dist/index.js
CHANGED
|
@@ -1635,6 +1635,63 @@ var PROFILES_RAW = [
|
|
|
1635
1635
|
critique: 5
|
|
1636
1636
|
// +1 vs 2.5-flash — but still below Sonnet/Opus reasoning floor
|
|
1637
1637
|
}
|
|
1638
|
+
},
|
|
1639
|
+
{
|
|
1640
|
+
// Auto-onboarded 2026-07-01 from `claude-sonnet-4-6`; VERIFIED 2026-07-02
|
|
1641
|
+
// against the claude-api reference (cc-portfolio ratification pass). The
|
|
1642
|
+
// clone got context right (1M) and pricing right at sticker ($3/$15 —
|
|
1643
|
+
// NOTE an introductory $2/$10 per MTok runs through 2026-08-31; sticker
|
|
1644
|
+
// encoded here per the time-bounded-pricing convention, intro belongs in
|
|
1645
|
+
// brain kgauto_pricing if worth capturing). The clone got max output WRONG:
|
|
1646
|
+
// Sonnet 5 is 128k, not 4-6's 64k — corrected. New tokenizer (~30% more
|
|
1647
|
+
// tokens for the same text vs 4-6): byte-budget consumers should re-baseline.
|
|
1648
|
+
// API quirks (claude-api ref): (a) NON-DEFAULT temperature/top_p/top_k
|
|
1649
|
+
// return 400 — moot for kgauto's own call() path (ANTHROPIC_LOWERING_BASE
|
|
1650
|
+
// emits no sampling params) but a REAL hazard for compileForAISDKv6
|
|
1651
|
+
// consumers that pass temperature themselves (tt-intel scoring uses temp:0
|
|
1652
|
+
// for determinism — that 400s on this model; noted to consumers via the
|
|
1653
|
+
// contract). (b) Omitting `thinking` runs ADAPTIVE by default (4-6 ran
|
|
1654
|
+
// thinking-off) — output spend shifts. (c) Supports effort xhigh. status:
|
|
1655
|
+
// 'preview' per the Fable precedent — no brain evidence yet; promotion to
|
|
1656
|
+
// 'current' is an explicit call. (L-049/L-081.)
|
|
1657
|
+
id: "claude-sonnet-5",
|
|
1658
|
+
verifiedAgainstDocs: "2026-07-02",
|
|
1659
|
+
provider: "anthropic",
|
|
1660
|
+
status: "preview",
|
|
1661
|
+
maxContextTokens: 1e6,
|
|
1662
|
+
maxOutputTokens: 128e3,
|
|
1663
|
+
maxTools: 64,
|
|
1664
|
+
parallelToolCalls: true,
|
|
1665
|
+
structuredOutput: "grammar",
|
|
1666
|
+
systemPromptMode: "inline",
|
|
1667
|
+
streaming: true,
|
|
1668
|
+
cliffs: [],
|
|
1669
|
+
costInputPer1m: 3,
|
|
1670
|
+
costOutputPer1m: 15,
|
|
1671
|
+
lowering: ANTHROPIC_LOWERING_BASE,
|
|
1672
|
+
recovery: [
|
|
1673
|
+
{ signal: "rate_limit", action: "escalate", reason: "429 \u2014 escalate" },
|
|
1674
|
+
{ signal: "model_not_found", action: "escalate", reason: "Deprecated \u2014 escalate (L-061)" }
|
|
1675
|
+
],
|
|
1676
|
+
strengths: ["quality", "tool_use", "long_context", "cache_friendly", "extended_thinking"],
|
|
1677
|
+
weaknesses: [],
|
|
1678
|
+
notes: "Sonnet 5 (2026-06): near-Opus quality on coding/agentic work at Sonnet cost. Verified 2026-07-02 against the claude-api reference: 1M ctx, 128k out (clone's 64k corrected), $3/$15 sticker (intro $2/$10 through 2026-08-31). New tokenizer ~30% more tokens vs sonnet-4-6. Consumer hazards: non-default temperature/top_p/top_k 400 (temp:0 rejected \u2014 deterministic-scoring consumers must omit); thinking defaults to adaptive when omitted. status:preview \u2014 no brain evidence yet; earns placement via the machinery.",
|
|
1679
|
+
// Master plan §6.2 anchor. Tier 0 for plan/generate/ask/extract/transform
|
|
1680
|
+
// in starter chains; tier 1 cross-provider for hunt/summarize/classify.
|
|
1681
|
+
archetypePerf: {
|
|
1682
|
+
ask: 9,
|
|
1683
|
+
generate: 9,
|
|
1684
|
+
plan: 9,
|
|
1685
|
+
critique: 9,
|
|
1686
|
+
extract: 9,
|
|
1687
|
+
transform: 9,
|
|
1688
|
+
hunt: 7,
|
|
1689
|
+
// strong but Flash beats on parallel tool throughput
|
|
1690
|
+
summarize: 8,
|
|
1691
|
+
// overkill for tolerant archetype
|
|
1692
|
+
classify: 8
|
|
1693
|
+
// overkill
|
|
1694
|
+
}
|
|
1638
1695
|
}
|
|
1639
1696
|
];
|
|
1640
1697
|
var ALIASES = {
|
|
@@ -4525,7 +4582,7 @@ async function record(input) {
|
|
|
4525
4582
|
});
|
|
4526
4583
|
if (!res.ok) {
|
|
4527
4584
|
const text = await res.text().catch(() => "<no body>");
|
|
4528
|
-
throw new Error(
|
|
4585
|
+
throw new Error(describeBrainWriteFailure(res.status, "outcomes", text));
|
|
4529
4586
|
}
|
|
4530
4587
|
outcomeId = await tryExtractOutcomeId(res);
|
|
4531
4588
|
} catch (err) {
|
|
@@ -4563,6 +4620,11 @@ async function record(input) {
|
|
|
4563
4620
|
function defaultOnError5(err) {
|
|
4564
4621
|
console.warn("[kgauto] brain record failed:", err);
|
|
4565
4622
|
}
|
|
4623
|
+
function describeBrainWriteFailure(status, route, body) {
|
|
4624
|
+
const base = `brain ${route} ${status}: ${body}`;
|
|
4625
|
+
if (status !== 404 && status !== 405) return base;
|
|
4626
|
+
return `${base} \u2014 likely cause: the brain proxy at your KGAUTO_V2_BRAIN_URL is missing the /${route} forward route. Self-proxying consumers must implement ALL THREE sibling routes (/outcomes, /probe_outcomes, /compile_outcome_quality) \u2014 see interfaces/kgauto.md "Consumer adoption checklist" route-completeness (L-142).`;
|
|
4627
|
+
}
|
|
4566
4628
|
function buildPayload(input, reg) {
|
|
4567
4629
|
const compileTarget = reg?.model;
|
|
4568
4630
|
const actual = input.actualModel ?? compileTarget;
|
|
@@ -4691,7 +4753,9 @@ async function recordOutcome(input) {
|
|
|
4691
4753
|
});
|
|
4692
4754
|
if (!res.ok) {
|
|
4693
4755
|
const text = await res.text().catch(() => "<no body>");
|
|
4694
|
-
const err = new Error(
|
|
4756
|
+
const err = new Error(
|
|
4757
|
+
describeBrainWriteFailure(res.status, "compile_outcome_quality", text)
|
|
4758
|
+
);
|
|
4695
4759
|
(config.onError ?? defaultOnError5)(err);
|
|
4696
4760
|
return { ok: false, reason: "persistence_failed" };
|
|
4697
4761
|
}
|
|
@@ -4733,8 +4797,12 @@ function buildShadowProbeRow(input) {
|
|
|
4733
4797
|
prompt_fidelity: 1,
|
|
4734
4798
|
replay_source: "inline-full-ir",
|
|
4735
4799
|
// alpha — migration 029. 'completed' is the default completed-probe shape;
|
|
4736
|
-
// diagnostic rows (aborted/skipped) pass the explicit class.
|
|
4737
|
-
outcome: input.outcome ?? "completed"
|
|
4800
|
+
// diagnostic rows (aborted/skipped/errored) pass the explicit class.
|
|
4801
|
+
outcome: input.outcome ?? "completed",
|
|
4802
|
+
// alpha.53 — migration 032. Populated only on candidate_error rows.
|
|
4803
|
+
// Self-proxying consumers must whitelist `error_class` (and `outcome`,
|
|
4804
|
+
// per the alpha.51 PB finding) or diagnostic rows degrade silently.
|
|
4805
|
+
error_class: input.errorClass ?? null
|
|
4738
4806
|
};
|
|
4739
4807
|
}
|
|
4740
4808
|
async function recordShadowProbe(input) {
|
|
@@ -4755,7 +4823,7 @@ async function recordShadowProbe(input) {
|
|
|
4755
4823
|
});
|
|
4756
4824
|
if (!res.ok) {
|
|
4757
4825
|
const text = await res.text().catch(() => "<no body>");
|
|
4758
|
-
throw new Error(
|
|
4826
|
+
throw new Error(describeBrainWriteFailure(res.status, "probe_outcomes", text));
|
|
4759
4827
|
}
|
|
4760
4828
|
} catch (err) {
|
|
4761
4829
|
(config.onError ?? defaultOnError5)(err);
|
|
@@ -6360,7 +6428,7 @@ async function runProbeCandidates(args) {
|
|
|
6360
6428
|
const budgetMs = args.cfg.maxLatencyMs ?? DEFAULT_PROBE_MAX_LATENCY_MS;
|
|
6361
6429
|
const deadline = args.sync ? Date.now() + budgetMs : Number.POSITIVE_INFINITY;
|
|
6362
6430
|
const skipSlow = args.sync && (args.cfg.skipSlowTierInSync ?? true);
|
|
6363
|
-
const recordDiagnostic = async (candidate, outcome) => {
|
|
6431
|
+
const recordDiagnostic = async (candidate, outcome, detail) => {
|
|
6364
6432
|
await recordShadowProbe({
|
|
6365
6433
|
appId: args.ir.appId,
|
|
6366
6434
|
archetype: args.ir.intent.archetype,
|
|
@@ -6373,7 +6441,9 @@ async function runProbeCandidates(args) {
|
|
|
6373
6441
|
tokensCurrentIn: args.servedResponse.tokens.input,
|
|
6374
6442
|
tokensCurrentOut: args.servedResponse.tokens.output,
|
|
6375
6443
|
latencyCurrentMs: args.servedLatencyMs,
|
|
6376
|
-
outcome
|
|
6444
|
+
outcome,
|
|
6445
|
+
...detail?.errorClass ? { errorClass: detail.errorClass } : {},
|
|
6446
|
+
...detail?.latencyCandidateMs !== void 0 ? { latencyCandidateMs: detail.latencyCandidateMs } : {}
|
|
6377
6447
|
});
|
|
6378
6448
|
};
|
|
6379
6449
|
for (const candidate of candidates) {
|
|
@@ -6428,10 +6498,28 @@ async function runProbeCandidates(args) {
|
|
|
6428
6498
|
}
|
|
6429
6499
|
break;
|
|
6430
6500
|
}
|
|
6431
|
-
if (raced.kind === "failed")
|
|
6501
|
+
if (raced.kind === "failed") {
|
|
6502
|
+
try {
|
|
6503
|
+
await recordDiagnostic(candidate, "candidate_error", {
|
|
6504
|
+
errorClass: "execute_rejected",
|
|
6505
|
+
latencyCandidateMs: Date.now() - candStart
|
|
6506
|
+
});
|
|
6507
|
+
} catch {
|
|
6508
|
+
}
|
|
6509
|
+
continue;
|
|
6510
|
+
}
|
|
6432
6511
|
const exec = raced.exec;
|
|
6433
6512
|
const candidateLatencyMs = Date.now() - candStart;
|
|
6434
|
-
if (!exec.ok)
|
|
6513
|
+
if (!exec.ok) {
|
|
6514
|
+
try {
|
|
6515
|
+
await recordDiagnostic(candidate, "candidate_error", {
|
|
6516
|
+
errorClass: exec.errorCode,
|
|
6517
|
+
latencyCandidateMs: candidateLatencyMs
|
|
6518
|
+
});
|
|
6519
|
+
} catch {
|
|
6520
|
+
}
|
|
6521
|
+
continue;
|
|
6522
|
+
}
|
|
6435
6523
|
await recordShadowProbe({
|
|
6436
6524
|
appId: args.ir.appId,
|
|
6437
6525
|
archetype: args.ir.intent.archetype,
|
package/dist/index.mjs
CHANGED
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
loadChainsFromBrain,
|
|
34
34
|
readBrainReadEnv,
|
|
35
35
|
resolveProviderKey
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-IIMPJZNH.mjs";
|
|
37
37
|
import {
|
|
38
38
|
ALIASES,
|
|
39
39
|
LATENCY_TIER_MS,
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
latencyTierOf,
|
|
45
45
|
profilesByProvider,
|
|
46
46
|
tryGetProfile
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-QKXTMVCT.mjs";
|
|
48
48
|
import {
|
|
49
49
|
emitAdvisoryFired,
|
|
50
50
|
emitCompileDone,
|
|
@@ -2736,7 +2736,7 @@ async function record(input) {
|
|
|
2736
2736
|
});
|
|
2737
2737
|
if (!res.ok) {
|
|
2738
2738
|
const text = await res.text().catch(() => "<no body>");
|
|
2739
|
-
throw new Error(
|
|
2739
|
+
throw new Error(describeBrainWriteFailure(res.status, "outcomes", text));
|
|
2740
2740
|
}
|
|
2741
2741
|
outcomeId = await tryExtractOutcomeId(res);
|
|
2742
2742
|
} catch (err) {
|
|
@@ -2774,6 +2774,11 @@ async function record(input) {
|
|
|
2774
2774
|
function defaultOnError4(err) {
|
|
2775
2775
|
console.warn("[kgauto] brain record failed:", err);
|
|
2776
2776
|
}
|
|
2777
|
+
function describeBrainWriteFailure(status, route, body) {
|
|
2778
|
+
const base = `brain ${route} ${status}: ${body}`;
|
|
2779
|
+
if (status !== 404 && status !== 405) return base;
|
|
2780
|
+
return `${base} \u2014 likely cause: the brain proxy at your KGAUTO_V2_BRAIN_URL is missing the /${route} forward route. Self-proxying consumers must implement ALL THREE sibling routes (/outcomes, /probe_outcomes, /compile_outcome_quality) \u2014 see interfaces/kgauto.md "Consumer adoption checklist" route-completeness (L-142).`;
|
|
2781
|
+
}
|
|
2777
2782
|
function buildPayload(input, reg) {
|
|
2778
2783
|
const compileTarget = reg?.model;
|
|
2779
2784
|
const actual = input.actualModel ?? compileTarget;
|
|
@@ -2902,7 +2907,9 @@ async function recordOutcome(input) {
|
|
|
2902
2907
|
});
|
|
2903
2908
|
if (!res.ok) {
|
|
2904
2909
|
const text = await res.text().catch(() => "<no body>");
|
|
2905
|
-
const err = new Error(
|
|
2910
|
+
const err = new Error(
|
|
2911
|
+
describeBrainWriteFailure(res.status, "compile_outcome_quality", text)
|
|
2912
|
+
);
|
|
2906
2913
|
(config.onError ?? defaultOnError4)(err);
|
|
2907
2914
|
return { ok: false, reason: "persistence_failed" };
|
|
2908
2915
|
}
|
|
@@ -2944,8 +2951,12 @@ function buildShadowProbeRow(input) {
|
|
|
2944
2951
|
prompt_fidelity: 1,
|
|
2945
2952
|
replay_source: "inline-full-ir",
|
|
2946
2953
|
// alpha — migration 029. 'completed' is the default completed-probe shape;
|
|
2947
|
-
// diagnostic rows (aborted/skipped) pass the explicit class.
|
|
2948
|
-
outcome: input.outcome ?? "completed"
|
|
2954
|
+
// diagnostic rows (aborted/skipped/errored) pass the explicit class.
|
|
2955
|
+
outcome: input.outcome ?? "completed",
|
|
2956
|
+
// alpha.53 — migration 032. Populated only on candidate_error rows.
|
|
2957
|
+
// Self-proxying consumers must whitelist `error_class` (and `outcome`,
|
|
2958
|
+
// per the alpha.51 PB finding) or diagnostic rows degrade silently.
|
|
2959
|
+
error_class: input.errorClass ?? null
|
|
2949
2960
|
};
|
|
2950
2961
|
}
|
|
2951
2962
|
async function recordShadowProbe(input) {
|
|
@@ -2966,7 +2977,7 @@ async function recordShadowProbe(input) {
|
|
|
2966
2977
|
});
|
|
2967
2978
|
if (!res.ok) {
|
|
2968
2979
|
const text = await res.text().catch(() => "<no body>");
|
|
2969
|
-
throw new Error(
|
|
2980
|
+
throw new Error(describeBrainWriteFailure(res.status, "probe_outcomes", text));
|
|
2970
2981
|
}
|
|
2971
2982
|
} catch (err) {
|
|
2972
2983
|
(config.onError ?? defaultOnError4)(err);
|
|
@@ -3856,7 +3867,7 @@ async function runProbeCandidates(args) {
|
|
|
3856
3867
|
const budgetMs = args.cfg.maxLatencyMs ?? DEFAULT_PROBE_MAX_LATENCY_MS;
|
|
3857
3868
|
const deadline = args.sync ? Date.now() + budgetMs : Number.POSITIVE_INFINITY;
|
|
3858
3869
|
const skipSlow = args.sync && (args.cfg.skipSlowTierInSync ?? true);
|
|
3859
|
-
const recordDiagnostic = async (candidate, outcome) => {
|
|
3870
|
+
const recordDiagnostic = async (candidate, outcome, detail) => {
|
|
3860
3871
|
await recordShadowProbe({
|
|
3861
3872
|
appId: args.ir.appId,
|
|
3862
3873
|
archetype: args.ir.intent.archetype,
|
|
@@ -3869,7 +3880,9 @@ async function runProbeCandidates(args) {
|
|
|
3869
3880
|
tokensCurrentIn: args.servedResponse.tokens.input,
|
|
3870
3881
|
tokensCurrentOut: args.servedResponse.tokens.output,
|
|
3871
3882
|
latencyCurrentMs: args.servedLatencyMs,
|
|
3872
|
-
outcome
|
|
3883
|
+
outcome,
|
|
3884
|
+
...detail?.errorClass ? { errorClass: detail.errorClass } : {},
|
|
3885
|
+
...detail?.latencyCandidateMs !== void 0 ? { latencyCandidateMs: detail.latencyCandidateMs } : {}
|
|
3873
3886
|
});
|
|
3874
3887
|
};
|
|
3875
3888
|
for (const candidate of candidates) {
|
|
@@ -3924,10 +3937,28 @@ async function runProbeCandidates(args) {
|
|
|
3924
3937
|
}
|
|
3925
3938
|
break;
|
|
3926
3939
|
}
|
|
3927
|
-
if (raced.kind === "failed")
|
|
3940
|
+
if (raced.kind === "failed") {
|
|
3941
|
+
try {
|
|
3942
|
+
await recordDiagnostic(candidate, "candidate_error", {
|
|
3943
|
+
errorClass: "execute_rejected",
|
|
3944
|
+
latencyCandidateMs: Date.now() - candStart
|
|
3945
|
+
});
|
|
3946
|
+
} catch {
|
|
3947
|
+
}
|
|
3948
|
+
continue;
|
|
3949
|
+
}
|
|
3928
3950
|
const exec = raced.exec;
|
|
3929
3951
|
const candidateLatencyMs = Date.now() - candStart;
|
|
3930
|
-
if (!exec.ok)
|
|
3952
|
+
if (!exec.ok) {
|
|
3953
|
+
try {
|
|
3954
|
+
await recordDiagnostic(candidate, "candidate_error", {
|
|
3955
|
+
errorClass: exec.errorCode,
|
|
3956
|
+
latencyCandidateMs: candidateLatencyMs
|
|
3957
|
+
});
|
|
3958
|
+
} catch {
|
|
3959
|
+
}
|
|
3960
|
+
continue;
|
|
3961
|
+
}
|
|
3931
3962
|
await recordShadowProbe({
|
|
3932
3963
|
appId: args.ir.appId,
|
|
3933
3964
|
archetype: args.ir.intent.archetype,
|
|
@@ -1216,7 +1216,16 @@ type OutcomeKind = 'approved' | 'rejected' | 'partial' | 'engaged' | 'abandoned'
|
|
|
1216
1216
|
* outcomes accumulate.
|
|
1217
1217
|
*/
|
|
1218
1218
|
interface RecordOutcomeInput {
|
|
1219
|
-
/**
|
|
1219
|
+
/**
|
|
1220
|
+
* Joins to compile_outcomes.id. Pass the compile `handle` string
|
|
1221
|
+
* (CompileResult.handle / CallResult.handle) — consumer proxies resolve
|
|
1222
|
+
* handle → compile_outcomes.id via the `compile_outcomes.handle` column
|
|
1223
|
+
* (reference implementations: PB `api/kgauto-v2/compile_outcome_quality.js`,
|
|
1224
|
+
* tt-intel/IC `app/api/kgauto/v2/compile_outcome_quality/route.ts`). A
|
|
1225
|
+
* numeric compile_outcomes.id also works if the caller already has it.
|
|
1226
|
+
* (There is no `CompileResult.outcomeId` field — the brain assigns the row
|
|
1227
|
+
* id at insert; `handle` is the consumer-visible correlator.)
|
|
1228
|
+
*/
|
|
1220
1229
|
outcomeId: number | string;
|
|
1221
1230
|
/** What did the user / system do with this output? */
|
|
1222
1231
|
outcome: OutcomeKind;
|
|
@@ -1216,7 +1216,16 @@ type OutcomeKind = 'approved' | 'rejected' | 'partial' | 'engaged' | 'abandoned'
|
|
|
1216
1216
|
* outcomes accumulate.
|
|
1217
1217
|
*/
|
|
1218
1218
|
interface RecordOutcomeInput {
|
|
1219
|
-
/**
|
|
1219
|
+
/**
|
|
1220
|
+
* Joins to compile_outcomes.id. Pass the compile `handle` string
|
|
1221
|
+
* (CompileResult.handle / CallResult.handle) — consumer proxies resolve
|
|
1222
|
+
* handle → compile_outcomes.id via the `compile_outcomes.handle` column
|
|
1223
|
+
* (reference implementations: PB `api/kgauto-v2/compile_outcome_quality.js`,
|
|
1224
|
+
* tt-intel/IC `app/api/kgauto/v2/compile_outcome_quality/route.ts`). A
|
|
1225
|
+
* numeric compile_outcomes.id also works if the caller already has it.
|
|
1226
|
+
* (There is no `CompileResult.outcomeId` field — the brain assigns the row
|
|
1227
|
+
* id at insert; `handle` is the consumer-visible correlator.)
|
|
1228
|
+
*/
|
|
1220
1229
|
outcomeId: number | string;
|
|
1221
1230
|
/** What did the user / system do with this output? */
|
|
1222
1231
|
outcome: OutcomeKind;
|
package/dist/profiles.d.mts
CHANGED
package/dist/profiles.d.ts
CHANGED
package/dist/profiles.js
CHANGED
|
@@ -1388,6 +1388,63 @@ var PROFILES_RAW = [
|
|
|
1388
1388
|
critique: 5
|
|
1389
1389
|
// +1 vs 2.5-flash — but still below Sonnet/Opus reasoning floor
|
|
1390
1390
|
}
|
|
1391
|
+
},
|
|
1392
|
+
{
|
|
1393
|
+
// Auto-onboarded 2026-07-01 from `claude-sonnet-4-6`; VERIFIED 2026-07-02
|
|
1394
|
+
// against the claude-api reference (cc-portfolio ratification pass). The
|
|
1395
|
+
// clone got context right (1M) and pricing right at sticker ($3/$15 —
|
|
1396
|
+
// NOTE an introductory $2/$10 per MTok runs through 2026-08-31; sticker
|
|
1397
|
+
// encoded here per the time-bounded-pricing convention, intro belongs in
|
|
1398
|
+
// brain kgauto_pricing if worth capturing). The clone got max output WRONG:
|
|
1399
|
+
// Sonnet 5 is 128k, not 4-6's 64k — corrected. New tokenizer (~30% more
|
|
1400
|
+
// tokens for the same text vs 4-6): byte-budget consumers should re-baseline.
|
|
1401
|
+
// API quirks (claude-api ref): (a) NON-DEFAULT temperature/top_p/top_k
|
|
1402
|
+
// return 400 — moot for kgauto's own call() path (ANTHROPIC_LOWERING_BASE
|
|
1403
|
+
// emits no sampling params) but a REAL hazard for compileForAISDKv6
|
|
1404
|
+
// consumers that pass temperature themselves (tt-intel scoring uses temp:0
|
|
1405
|
+
// for determinism — that 400s on this model; noted to consumers via the
|
|
1406
|
+
// contract). (b) Omitting `thinking` runs ADAPTIVE by default (4-6 ran
|
|
1407
|
+
// thinking-off) — output spend shifts. (c) Supports effort xhigh. status:
|
|
1408
|
+
// 'preview' per the Fable precedent — no brain evidence yet; promotion to
|
|
1409
|
+
// 'current' is an explicit call. (L-049/L-081.)
|
|
1410
|
+
id: "claude-sonnet-5",
|
|
1411
|
+
verifiedAgainstDocs: "2026-07-02",
|
|
1412
|
+
provider: "anthropic",
|
|
1413
|
+
status: "preview",
|
|
1414
|
+
maxContextTokens: 1e6,
|
|
1415
|
+
maxOutputTokens: 128e3,
|
|
1416
|
+
maxTools: 64,
|
|
1417
|
+
parallelToolCalls: true,
|
|
1418
|
+
structuredOutput: "grammar",
|
|
1419
|
+
systemPromptMode: "inline",
|
|
1420
|
+
streaming: true,
|
|
1421
|
+
cliffs: [],
|
|
1422
|
+
costInputPer1m: 3,
|
|
1423
|
+
costOutputPer1m: 15,
|
|
1424
|
+
lowering: ANTHROPIC_LOWERING_BASE,
|
|
1425
|
+
recovery: [
|
|
1426
|
+
{ signal: "rate_limit", action: "escalate", reason: "429 \u2014 escalate" },
|
|
1427
|
+
{ signal: "model_not_found", action: "escalate", reason: "Deprecated \u2014 escalate (L-061)" }
|
|
1428
|
+
],
|
|
1429
|
+
strengths: ["quality", "tool_use", "long_context", "cache_friendly", "extended_thinking"],
|
|
1430
|
+
weaknesses: [],
|
|
1431
|
+
notes: "Sonnet 5 (2026-06): near-Opus quality on coding/agentic work at Sonnet cost. Verified 2026-07-02 against the claude-api reference: 1M ctx, 128k out (clone's 64k corrected), $3/$15 sticker (intro $2/$10 through 2026-08-31). New tokenizer ~30% more tokens vs sonnet-4-6. Consumer hazards: non-default temperature/top_p/top_k 400 (temp:0 rejected \u2014 deterministic-scoring consumers must omit); thinking defaults to adaptive when omitted. status:preview \u2014 no brain evidence yet; earns placement via the machinery.",
|
|
1432
|
+
// Master plan §6.2 anchor. Tier 0 for plan/generate/ask/extract/transform
|
|
1433
|
+
// in starter chains; tier 1 cross-provider for hunt/summarize/classify.
|
|
1434
|
+
archetypePerf: {
|
|
1435
|
+
ask: 9,
|
|
1436
|
+
generate: 9,
|
|
1437
|
+
plan: 9,
|
|
1438
|
+
critique: 9,
|
|
1439
|
+
extract: 9,
|
|
1440
|
+
transform: 9,
|
|
1441
|
+
hunt: 7,
|
|
1442
|
+
// strong but Flash beats on parallel tool throughput
|
|
1443
|
+
summarize: 8,
|
|
1444
|
+
// overkill for tolerant archetype
|
|
1445
|
+
classify: 8
|
|
1446
|
+
// overkill
|
|
1447
|
+
}
|
|
1391
1448
|
}
|
|
1392
1449
|
];
|
|
1393
1450
|
var ALIASES = {
|
package/dist/profiles.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as MutationApplied, B as BestPracticeAdvisory, F as FallbackReason, m as CallAttempt } from './ir-
|
|
1
|
+
import { r as MutationApplied, B as BestPracticeAdvisory, F as FallbackReason, m as CallAttempt } from './ir-CAlLBu5d.mjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Glass-Box observability types (alpha.17).
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as MutationApplied, B as BestPracticeAdvisory, F as FallbackReason, m as CallAttempt } from './ir-
|
|
1
|
+
import { r as MutationApplied, B as BestPracticeAdvisory, F as FallbackReason, m as CallAttempt } from './ir-BiXAMyji.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Glass-Box observability types (alpha.17).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@warmdrift/kgauto-compiler",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.53",
|
|
4
4
|
"description": "Prompt compiler + central learning brain for multi-model AI apps. Swap models without rewriting prompts.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|