@warmdrift/kgauto-compiler 2.0.0-alpha.85 → 2.0.0-alpha.87
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-LO2JXTGG.mjs → chunk-G3MKT7IR.mjs} +25 -13
- package/dist/{chunk-WXN7FNXP.mjs → chunk-GMZT4ZXD.mjs} +1 -1
- package/dist/{chunk-FD3NFXDC.mjs → chunk-YVKTTTTB.mjs} +189 -23
- 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 +152 -34
- 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 +60 -5
- package/dist/index.d.ts +60 -5
- package/dist/index.js +409 -44
- package/dist/index.mjs +200 -11
- package/dist/{ir-JUoybVM-.d.mts → ir-P3NEU8z4.d.mts} +116 -1
- package/dist/{ir-DfrM71pA.d.ts → ir-ZgN2KkuF.d.ts} +116 -1
- package/dist/key-health.js +1 -1
- package/dist/key-health.mjs +1 -1
- package/dist/profiles.d.mts +43 -2
- package/dist/profiles.d.ts +43 -2
- package/dist/profiles.js +193 -23
- package/dist/profiles.mjs +9 -1
- package/dist/{types-y42mwdvM.d.mts → types-7sF3adLO.d.mts} +1 -1
- package/dist/{types-BqTKRECa.d.ts → types-B_MjEB0h.d.ts} +1 -1
- package/dist/{types-DLDJbCha.d.ts → types-BgfuVIVI.d.ts} +1 -1
- package/dist/{types-BGH_KAHu.d.mts → types-CK0zUlVE.d.mts} +1 -1
- package/package.json +8 -2
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
allProfiles,
|
|
3
3
|
resolveModelAlias,
|
|
4
4
|
tryGetProfile
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-YVKTTTTB.mjs";
|
|
6
6
|
|
|
7
7
|
// src/brain-query.ts
|
|
8
8
|
var FRESH_SNAPSHOT = {
|
|
@@ -13,6 +13,9 @@ var FRESH_SNAPSHOT = {
|
|
|
13
13
|
};
|
|
14
14
|
var snapshot = { ...FRESH_SNAPSHOT };
|
|
15
15
|
var runtime;
|
|
16
|
+
function configFreshness() {
|
|
17
|
+
return runtime && snapshot.data ? "brain" : "bundled";
|
|
18
|
+
}
|
|
16
19
|
function configureBrainQuery(rt) {
|
|
17
20
|
runtime = rt;
|
|
18
21
|
snapshot = { ...FRESH_SNAPSHOT };
|
|
@@ -451,8 +454,14 @@ var STARTER_CHAINS_GROUNDED = {
|
|
|
451
454
|
critique: [
|
|
452
455
|
{ id: "claude-opus-4-7", grounding: "judgment", reason: "Highest reasoning bar, no degradation tier \u2014 engineer pick, awaiting measured backing" },
|
|
453
456
|
{ id: "claude-sonnet-4-6", grounding: "judgment", reason: "Same-provider walk-down from Opus on 429" },
|
|
454
|
-
|
|
455
|
-
|
|
457
|
+
// alpha.86: gemini-2.5-pro dropped — availability-restricted (tt-intel
|
|
458
|
+
// measured 4/4 cohort refusal 2026-08-02; kgauto key free-tier-quota
|
|
459
|
+
// 429 2026-08-08). No current Google model clears the critique floor
|
|
460
|
+
// (3.5-flash critique=5; 3.1-pro-preview scores 10 but is preview —
|
|
461
|
+
// default chains carry promoted models only). deepseek-v4-pro takes the
|
|
462
|
+
// third-provider tail instead.
|
|
463
|
+
{ id: "gpt-5.5", grounding: "judgment", reason: "alpha.16: third-provider frontier-tier floor (archetypePerf=9)" },
|
|
464
|
+
{ id: "deepseek-v4-pro", grounding: "judgment", reason: "alpha.86: third-provider tail replacing availability-restricted gemini-2.5-pro \u2014 critique=6 clears the floor exactly; last-resort when Anthropic AND OpenAI are down, not a quality peer of the tiers above" }
|
|
456
465
|
],
|
|
457
466
|
// alpha.62 (eval spine) — pairwise output comparison. Same reasoning-floor
|
|
458
467
|
// posture as critique (a verdict from a weak judge is worse than no
|
|
@@ -461,14 +470,16 @@ var STARTER_CHAINS_GROUNDED = {
|
|
|
461
470
|
judge: [
|
|
462
471
|
{ id: "claude-opus-4-8", grounding: "judgment", reason: "Highest reasoning bar for pairwise verdicts \u2014 current opus (s64 roster)" },
|
|
463
472
|
{ id: "claude-sonnet-4-6", grounding: "judgment", reason: "Same-provider walk-down on 429" },
|
|
464
|
-
|
|
465
|
-
|
|
473
|
+
// alpha.86: gemini-2.5-pro dropped (availability-restricted; see critique
|
|
474
|
+
// note). gpt-5.5 remains the cross-provider frontier floor for verdicts.
|
|
475
|
+
{ id: "gpt-5.5", grounding: "judgment", reason: "Third-provider frontier-tier floor" },
|
|
476
|
+
{ id: "deepseek-v4-pro", grounding: "judgment", reason: "alpha.86: third-provider tail replacing availability-restricted gemini-2.5-pro \u2014 native structured output per the judge contract; last-resort tier" }
|
|
466
477
|
],
|
|
467
478
|
// Reasoning matters — Sonnet primary; walk UP to Opus on 429.
|
|
468
479
|
plan: [
|
|
469
480
|
{ id: "claude-sonnet-4-6", grounding: "judgment", reason: "Reasoning + cost balance \u2014 engineer pick" },
|
|
470
481
|
{ id: "claude-opus-4-7", grounding: "judgment", reason: 'Same-provider walk-UP on 429 (rare exception to "always cheaper")' },
|
|
471
|
-
{ id: "gemini-
|
|
482
|
+
{ id: "gemini-3.5-flash", grounding: "judgment", reason: "alpha.86: cross-provider anchor \u2014 replaces availability-restricted gemini-2.5-pro (tt-intel 4/4 cohort refusal 2026-08-02; probed serving 200 on kgauto key 2026-08-08)" },
|
|
472
483
|
{ id: "deepseek-v4-pro", grounding: "judgment", reason: "Tier 3 cost floor \u2014 no brain evidence yet" },
|
|
473
484
|
{ id: "gpt-5.4", grounding: "judgment", reason: "alpha.33: third-provider tail (archetypePerf=7) \u2014 closes openai-in-default-fallback-chains" }
|
|
474
485
|
],
|
|
@@ -476,7 +487,7 @@ var STARTER_CHAINS_GROUNDED = {
|
|
|
476
487
|
generate: [
|
|
477
488
|
{ id: "claude-sonnet-4-6", grounding: "judgment", reason: "Quality + cost match \u2014 engineer pick" },
|
|
478
489
|
{ id: "claude-haiku-4-5", grounding: "judgment", reason: "Same-provider step-down" },
|
|
479
|
-
{ id: "gemini-
|
|
490
|
+
{ id: "gemini-3.5-flash", grounding: "judgment", reason: "alpha.86: cross-provider anchor \u2014 replaces availability-restricted gemini-2.5-pro (tt-intel 4/4 cohort refusal 2026-08-02; probed serving 200 on kgauto key 2026-08-08)" },
|
|
480
491
|
{ id: "gpt-5.4-mini", grounding: "judgment", reason: "alpha.16: third-provider tail (archetypePerf=7) \u2014 closes mono-Anthropic gap" }
|
|
481
492
|
],
|
|
482
493
|
// ask::sonnet — STARTER_CHAINS calls this "Quality + cost match" but
|
|
@@ -485,7 +496,7 @@ var STARTER_CHAINS_GROUNDED = {
|
|
|
485
496
|
ask: [
|
|
486
497
|
{ id: "claude-sonnet-4-6", grounding: "judgment", reason: "Quality + cost match \u2014 engineer pick. NOTE: tt-intel s78 prod showed 27% empty rate; placement awaits measurement validation" },
|
|
487
498
|
{ id: "claude-haiku-4-5", grounding: "judgment", reason: "Same-provider step-down" },
|
|
488
|
-
{ id: "gemini-
|
|
499
|
+
{ id: "gemini-3.5-flash", grounding: "judgment", reason: "alpha.86: cross-provider anchor \u2014 replaces availability-restricted gemini-2.5-pro (tt-intel 4/4 cohort refusal 2026-08-02; probed serving 200 on kgauto key 2026-08-08)" },
|
|
489
500
|
{ id: "gpt-5.4-mini", grounding: "judgment", reason: "alpha.16: third-provider tail (archetypePerf=7)" }
|
|
490
501
|
],
|
|
491
502
|
// Structured-output archetype — Flash skipped (alpha.8 MAX_TOKENS cliff,
|
|
@@ -493,14 +504,14 @@ var STARTER_CHAINS_GROUNDED = {
|
|
|
493
504
|
extract: [
|
|
494
505
|
{ id: "claude-sonnet-4-6", grounding: "judgment", reason: "Reliable structured-output anchor \u2014 engineer pick" },
|
|
495
506
|
{ id: "claude-haiku-4-5", grounding: "judgment", reason: "Same-provider step-down with native structured output" },
|
|
496
|
-
{ id: "gemini-
|
|
507
|
+
{ id: "gemini-3.5-flash", grounding: "judgment", reason: "alpha.86: cross-provider anchor with native structured output \u2014 replaces availability-restricted gemini-2.5-pro" },
|
|
497
508
|
{ id: "gpt-5.4", grounding: "capability-fact", reason: "alpha.16: third-provider floor \u2014 native structured-output capability (archetypePerf=8)" }
|
|
498
509
|
],
|
|
499
510
|
// Forgiving archetype — Sonnet primary but Flash safely floors it.
|
|
500
511
|
transform: [
|
|
501
512
|
{ id: "claude-sonnet-4-6", grounding: "judgment", reason: "Quality anchor \u2014 engineer pick" },
|
|
502
513
|
{ id: "claude-haiku-4-5", grounding: "judgment", reason: "Same-provider step-down" },
|
|
503
|
-
{ id: "gemini-
|
|
514
|
+
{ id: "gemini-3.5-flash", grounding: "judgment", reason: "alpha.86: cross-provider anchor \u2014 replaces availability-restricted gemini-2.5-pro (tt-intel 4/4 cohort refusal 2026-08-02; probed serving 200 on kgauto key 2026-08-08)" },
|
|
504
515
|
{ id: "gemini-2.5-flash", grounding: "judgment", reason: "Cost floor \u2014 forgiving archetype tolerates Flash" },
|
|
505
516
|
{ id: "gpt-5.4-mini", grounding: "judgment", reason: "alpha.33: third-provider tail (archetypePerf=7) \u2014 closes openai-in-default-fallback-chains" }
|
|
506
517
|
],
|
|
@@ -508,7 +519,7 @@ var STARTER_CHAINS_GROUNDED = {
|
|
|
508
519
|
// (capability-fact: Flash 15-75 parallel calls/step vs DeepSeek 7-8).
|
|
509
520
|
hunt: [
|
|
510
521
|
{ id: "gemini-2.5-flash", grounding: "capability-fact", reason: "L-040 parallel-tool throughput champion (15-75 calls/step)" },
|
|
511
|
-
{ id: "gemini-
|
|
522
|
+
{ id: "gemini-3.5-flash", grounding: "capability-fact", reason: "alpha.86: parallel-tool agentic tier (hunt archetypePerf 9, L-040 family) \u2014 replaces availability-restricted gemini-2.5-pro" },
|
|
512
523
|
{ id: "claude-sonnet-4-6", grounding: "judgment", reason: "Quality safety net for blocked-Flash case" },
|
|
513
524
|
{ id: "claude-haiku-4-5", grounding: "judgment", reason: "Reduced tool budget \u2014 cliff at 16 fires" },
|
|
514
525
|
{ id: "gpt-5.4-mini", grounding: "judgment", reason: "alpha.33: third-provider tail \u2014 OpenAI parallel-tool capable archetype" }
|
|
@@ -556,9 +567,9 @@ var STARTER_CHAINS_BY_MODE_GROUNDED = {
|
|
|
556
567
|
reason: "Cross-provider safety net \u2014 Sonnet handles sequential agentic loops cleanly"
|
|
557
568
|
},
|
|
558
569
|
{
|
|
559
|
-
id: "gemini-
|
|
570
|
+
id: "gemini-3.5-flash",
|
|
560
571
|
grounding: "judgment",
|
|
561
|
-
reason: "
|
|
572
|
+
reason: "alpha.86: third-provider tail when no DeepSeek key reachable \u2014 replaces availability-restricted gemini-2.5-pro"
|
|
562
573
|
}
|
|
563
574
|
]
|
|
564
575
|
}
|
|
@@ -808,6 +819,7 @@ var loadChainsFromBrain = createBrainQueryCache({
|
|
|
808
819
|
});
|
|
809
820
|
|
|
810
821
|
export {
|
|
822
|
+
configFreshness,
|
|
811
823
|
configureBrainQuery,
|
|
812
824
|
createBrainQueryCache,
|
|
813
825
|
isBrainQueryActiveFor,
|
|
@@ -211,7 +211,7 @@ var PROFILES_RAW = [
|
|
|
211
211
|
},
|
|
212
212
|
{
|
|
213
213
|
id: "claude-opus-4-7",
|
|
214
|
-
verifiedAgainstDocs: "2026-
|
|
214
|
+
verifiedAgainstDocs: "2026-08-14",
|
|
215
215
|
provider: "anthropic",
|
|
216
216
|
status: "legacy",
|
|
217
217
|
// s76 2026-07-25: docs list as LEGACY (Opus 5 is current). Bundle said current while the brain already said legacy — the two disagreed.
|
|
@@ -261,7 +261,7 @@ var PROFILES_RAW = [
|
|
|
261
261
|
},
|
|
262
262
|
{
|
|
263
263
|
id: "claude-opus-4-6",
|
|
264
|
-
verifiedAgainstDocs: "2026-
|
|
264
|
+
verifiedAgainstDocs: "2026-08-14",
|
|
265
265
|
provider: "anthropic",
|
|
266
266
|
status: "legacy",
|
|
267
267
|
maxContextTokens: 1e6,
|
|
@@ -306,7 +306,7 @@ var PROFILES_RAW = [
|
|
|
306
306
|
},
|
|
307
307
|
{
|
|
308
308
|
id: "claude-sonnet-4-6",
|
|
309
|
-
verifiedAgainstDocs: "2026-
|
|
309
|
+
verifiedAgainstDocs: "2026-08-14",
|
|
310
310
|
provider: "anthropic",
|
|
311
311
|
status: "legacy",
|
|
312
312
|
// s76 2026-07-25: docs list as LEGACY (Sonnet 5 is current).
|
|
@@ -347,7 +347,7 @@ var PROFILES_RAW = [
|
|
|
347
347
|
},
|
|
348
348
|
{
|
|
349
349
|
id: "claude-haiku-4-5",
|
|
350
|
-
verifiedAgainstDocs: "2026-
|
|
350
|
+
verifiedAgainstDocs: "2026-08-14",
|
|
351
351
|
provider: "anthropic",
|
|
352
352
|
status: "current",
|
|
353
353
|
maxContextTokens: 2e5,
|
|
@@ -410,7 +410,7 @@ var PROFILES_RAW = [
|
|
|
410
410
|
// ── Google ──
|
|
411
411
|
{
|
|
412
412
|
id: "gemini-2.5-flash",
|
|
413
|
-
verifiedAgainstDocs: "2026-
|
|
413
|
+
verifiedAgainstDocs: "2026-08-14",
|
|
414
414
|
provider: "google",
|
|
415
415
|
status: "current",
|
|
416
416
|
maxContextTokens: 1048576,
|
|
@@ -516,7 +516,7 @@ var PROFILES_RAW = [
|
|
|
516
516
|
// thresholds. The brain will validate/relax these as evidence accumulates
|
|
517
517
|
// per (archetype, model) tuple. Currently ZERO brain rows for this model.
|
|
518
518
|
id: "gemini-2.5-flash-lite",
|
|
519
|
-
verifiedAgainstDocs: "2026-
|
|
519
|
+
verifiedAgainstDocs: "2026-08-14",
|
|
520
520
|
provider: "google",
|
|
521
521
|
status: "current",
|
|
522
522
|
maxContextTokens: 1048576,
|
|
@@ -611,9 +611,21 @@ var PROFILES_RAW = [
|
|
|
611
611
|
},
|
|
612
612
|
{
|
|
613
613
|
id: "gemini-2.5-pro",
|
|
614
|
-
verifiedAgainstDocs: "2026-
|
|
614
|
+
verifiedAgainstDocs: "2026-08-08",
|
|
615
615
|
provider: "google",
|
|
616
|
-
|
|
616
|
+
// alpha.86 — AVAILABILITY demotion, not a provider-lifecycle mirror.
|
|
617
|
+
// Google's docs still list 2.5-pro as Stable, but the serving layer
|
|
618
|
+
// disagrees per account cohort: tt-intel measured 4/4 refusals
|
|
619
|
+
// ("no longer available to new users", 2026-08-02, their bench), and
|
|
620
|
+
// kgauto's own key 429s on a FreeTier per-day quota (probed
|
|
621
|
+
// 2026-08-08). A chain anchor that hard-fails for whole account
|
|
622
|
+
// cohorts is not an anchor; `legacy` removes it from cost-ordered
|
|
623
|
+
// chains and new selection while keeping the profile resolvable for
|
|
624
|
+
// consumers who pass it explicitly. Re-promotion is one status flip
|
|
625
|
+
// if Google restores availability. The registry cannot yet express
|
|
626
|
+
// account-cohort availability as data — see interfaces/kgauto.md
|
|
627
|
+
// ## Requested 2026-08-02.
|
|
628
|
+
status: "legacy",
|
|
617
629
|
maxContextTokens: 1048576,
|
|
618
630
|
maxOutputTokens: 65535,
|
|
619
631
|
maxTools: 128,
|
|
@@ -643,7 +655,7 @@ var PROFILES_RAW = [
|
|
|
643
655
|
}
|
|
644
656
|
],
|
|
645
657
|
strengths: ["reasoning", "1m_context", "structured_output", "tool_use"],
|
|
646
|
-
weaknesses: ["pricing_above_200k"],
|
|
658
|
+
weaknesses: ["pricing_above_200k", "availability_restricted_by_account_cohort"],
|
|
647
659
|
// Master plan §3.3 anchor: tier-2 cross-provider in almost every chain.
|
|
648
660
|
// Sits on the frontier at perf-9 — close to Sonnet but cheaper input.
|
|
649
661
|
archetypePerf: {
|
|
@@ -661,7 +673,7 @@ var PROFILES_RAW = [
|
|
|
661
673
|
},
|
|
662
674
|
{
|
|
663
675
|
id: "gemini-3.1-pro-preview",
|
|
664
|
-
verifiedAgainstDocs: "2026-
|
|
676
|
+
verifiedAgainstDocs: "2026-08-14",
|
|
665
677
|
provider: "google",
|
|
666
678
|
status: "preview",
|
|
667
679
|
maxContextTokens: 1048576,
|
|
@@ -721,7 +733,7 @@ var PROFILES_RAW = [
|
|
|
721
733
|
// deepseek-reasoner registered as aliases (see ALIASES below).
|
|
722
734
|
{
|
|
723
735
|
id: "deepseek-v4-flash",
|
|
724
|
-
verifiedAgainstDocs: "2026-
|
|
736
|
+
verifiedAgainstDocs: "2026-08-14",
|
|
725
737
|
provider: "deepseek",
|
|
726
738
|
status: "current",
|
|
727
739
|
maxContextTokens: 1e6,
|
|
@@ -759,7 +771,7 @@ var PROFILES_RAW = [
|
|
|
759
771
|
// baseQuality (it carries 'reasoning') with no latency counterweight,
|
|
760
772
|
// leapfrogged gemini-2.5-flash as PB's summarize leader once reachable.
|
|
761
773
|
latencyTier: "slow",
|
|
762
|
-
notes: "Cheap workhorse. 1M context, 384k max output. Cache-hit input $0.0028/M (1/50\xD7 of miss). Aliased as `deepseek-chat` (non-thinking) and `deepseek-reasoner` (thinking) \u2014 see ALIASES.",
|
|
774
|
+
notes: "Cheap workhorse. 1M context, 384k max output. Cache-hit input $0.0028/M (1/50\xD7 of miss). Aliased as `deepseek-chat` (non-thinking) and `deepseek-reasoner` (thinking) \u2014 see ALIASES. PRICING MODEL CHANGE effective 2026-08-16: DeepSeek moves to peak/off-peak billing, off-peak at HALF the peak rate (docs, fetched 2026-08-14). Encoded prices are peak; cost math for off-peak traffic will overstate by up to 2x until time-of-day pricing is modeled.",
|
|
763
775
|
// Master plan §6.2 anchor. Brain-validated tier 1 cross-provider for
|
|
764
776
|
// classify (169 rows, 0% empty). Tier 0 for summarize-with-no-tools.
|
|
765
777
|
// Falls off on hunt (sequential tools — L-040) and reasoning depth.
|
|
@@ -794,7 +806,7 @@ var PROFILES_RAW = [
|
|
|
794
806
|
},
|
|
795
807
|
{
|
|
796
808
|
id: "deepseek-v4-pro",
|
|
797
|
-
verifiedAgainstDocs: "2026-
|
|
809
|
+
verifiedAgainstDocs: "2026-08-14",
|
|
798
810
|
provider: "deepseek",
|
|
799
811
|
status: "current",
|
|
800
812
|
maxContextTokens: 1e6,
|
|
@@ -835,7 +847,7 @@ var PROFILES_RAW = [
|
|
|
835
847
|
// of the served set. Tag derivation would say 'medium'; the measurement says
|
|
836
848
|
// otherwise.
|
|
837
849
|
latencyTier: "slow",
|
|
838
|
-
notes: "Pro tier. 1M context, 384k max output. $0.435/$0.87 per 1M (cache-hit in $0.003625) \u2014 verified live 2026-06-22; the launch promo became the standing price (no revert). Default mode = thinking.",
|
|
850
|
+
notes: "Pro tier. 1M context, 384k max output. $0.435/$0.87 per 1M (cache-hit in $0.003625) \u2014 verified live 2026-06-22; the launch promo became the standing price (no revert). Default mode = thinking. PRICING MODEL CHANGE effective 2026-08-16: DeepSeek moves to peak/off-peak billing, off-peak at HALF the peak rate (docs, fetched 2026-08-14). Encoded prices are peak; cost math for off-peak traffic will overstate by up to 2x until time-of-day pricing is modeled.",
|
|
839
851
|
// Master plan §3.3: tier 3 cross-provider for plan chain. Reasoning
|
|
840
852
|
// bumped one notch over V4-Flash; same parallel-tool ceiling.
|
|
841
853
|
archetypePerf: {
|
|
@@ -1443,13 +1455,109 @@ var PROFILES_RAW = [
|
|
|
1443
1455
|
// +1 vs 2.5-flash — but still below Sonnet/Opus reasoning floor
|
|
1444
1456
|
}
|
|
1445
1457
|
},
|
|
1458
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
1459
|
+
// gemini-3.6-flash — hand-onboarded s86 (2026-08-14), step-zero against
|
|
1460
|
+
// Google docs (models/gemini-3.6-flash page + pricing via catalog-sync's
|
|
1461
|
+
// two-agreeing-extraction the same day). Docs list it as Stable and call
|
|
1462
|
+
// it "previous-generation Flash" (3.5-flash is now "legacy" in Google's
|
|
1463
|
+
// wording) — but kgauto status is 'preview' per the standing entry rule:
|
|
1464
|
+
// a new model enters on capability data verified only at the docs level,
|
|
1465
|
+
// preview is unreachable by starter chains, and promotion to routing
|
|
1466
|
+
// happens through brain evidence, not through Google's marketing tier.
|
|
1467
|
+
// This also means NO family-primary retarget rides this release.
|
|
1468
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
1469
|
+
{
|
|
1470
|
+
id: "gemini-3.6-flash",
|
|
1471
|
+
verifiedAgainstDocs: "2026-08-14",
|
|
1472
|
+
versionAdded: "2.0.0-alpha.87",
|
|
1473
|
+
provider: "google",
|
|
1474
|
+
status: "preview",
|
|
1475
|
+
maxContextTokens: 1048576,
|
|
1476
|
+
maxOutputTokens: 65536,
|
|
1477
|
+
maxTools: 128,
|
|
1478
|
+
parallelToolCalls: true,
|
|
1479
|
+
structuredOutput: "native",
|
|
1480
|
+
systemPromptMode: "separate",
|
|
1481
|
+
streaming: true,
|
|
1482
|
+
cliffs: [
|
|
1483
|
+
{
|
|
1484
|
+
metric: "input_tokens",
|
|
1485
|
+
threshold: 8e3,
|
|
1486
|
+
action: "downgrade_quality_warning",
|
|
1487
|
+
reason: "Inherited Flash-family guard (2.5\u21923.5 lineage); no 3.6 brain evidence yet"
|
|
1488
|
+
},
|
|
1489
|
+
{
|
|
1490
|
+
metric: "tool_count",
|
|
1491
|
+
threshold: 20,
|
|
1492
|
+
action: "drop_to_top_relevant",
|
|
1493
|
+
reason: "Inherited from Flash family: tool reliability drops above ~20 (despite 128 hard limit). Validate per (archetype, model) after n\u226520."
|
|
1494
|
+
},
|
|
1495
|
+
{
|
|
1496
|
+
metric: "thinking_with_short_output",
|
|
1497
|
+
threshold: 1,
|
|
1498
|
+
action: "force_thinking_budget_zero",
|
|
1499
|
+
reason: "Thinking supported per Google docs; same drain risk as 2.5/3.5-flash \u2014 thinking tokens consume maxOutputTokens"
|
|
1500
|
+
},
|
|
1501
|
+
{
|
|
1502
|
+
metric: "tool_count",
|
|
1503
|
+
threshold: 1,
|
|
1504
|
+
whenIntent: "summarize",
|
|
1505
|
+
action: "strip_tools",
|
|
1506
|
+
reason: "Inherited from 2.5-flash s11 cliff: summarize+tools \u2192 empty response. Preemptive family guard until brain evidence on 3.6-flash specifically."
|
|
1507
|
+
}
|
|
1508
|
+
],
|
|
1509
|
+
costInputPer1m: 1.5,
|
|
1510
|
+
costOutputPer1m: 7.5,
|
|
1511
|
+
lowering: {
|
|
1512
|
+
...GOOGLE_LOWERING_BASE,
|
|
1513
|
+
cache: { ...GOOGLE_LOWERING_BASE.cache, discount: 0.1 },
|
|
1514
|
+
thinking: { field: "generationConfig.thinkingConfig.thinkingBudget", default: "auto" }
|
|
1515
|
+
},
|
|
1516
|
+
recovery: [
|
|
1517
|
+
{
|
|
1518
|
+
signal: "empty_response_after_tool",
|
|
1519
|
+
action: "retry_with_params",
|
|
1520
|
+
retryParams: { "generationConfig.thinkingConfig.thinkingBudget": 0 },
|
|
1521
|
+
maxRetries: 1,
|
|
1522
|
+
reason: "Inherited Flash-family pattern: empty after tool result \u2014 retry with thinking off"
|
|
1523
|
+
},
|
|
1524
|
+
{
|
|
1525
|
+
signal: "empty_response",
|
|
1526
|
+
action: "retry_with_params",
|
|
1527
|
+
retryParams: { "generationConfig.thinkingConfig.thinkingBudget": 0 },
|
|
1528
|
+
maxRetries: 1,
|
|
1529
|
+
reason: "Empty response \u2014 try with thinking off"
|
|
1530
|
+
},
|
|
1531
|
+
{
|
|
1532
|
+
signal: "malformed_function_call",
|
|
1533
|
+
action: "escalate",
|
|
1534
|
+
reason: "MALFORMED_FUNCTION_CALL maps to stop \u2014 escalate to next target"
|
|
1535
|
+
}
|
|
1536
|
+
],
|
|
1537
|
+
strengths: ["agentic_loops", "coding", "1m_context", "parallel_tools", "thinking_mode"],
|
|
1538
|
+
weaknesses: ["no_brain_evidence_yet"],
|
|
1539
|
+
notes: "Hand-onboarded s86 (2026-08-14), step-zero verified: 1,048,576 ctx / 65,536 out (Google model page), $1.50/$7.50 per 1M (catalog-sync two-agreeing-extraction same day \u2014 CHEAPER output than 3.5-flash at $9.00). Docs status Stable; enters kgauto as preview per standing rule (availability != lifecycle, promotion via brain evidence). Function calling + structured outputs + thinking per docs; parallel tools assumed per Flash family (docs silent). First flagged by the release watcher s73; sat in the onboarding queue 18 days \u2014 drained by the s86 catalog-sync run.",
|
|
1540
|
+
archetypePerf: {
|
|
1541
|
+
hunt: 9,
|
|
1542
|
+
// Flash-family parallel-tool tier (L-040); inherited from 3.5-flash
|
|
1543
|
+
classify: 7,
|
|
1544
|
+
summarize: 7,
|
|
1545
|
+
transform: 7,
|
|
1546
|
+
ask: 8,
|
|
1547
|
+
generate: 8,
|
|
1548
|
+
plan: 7,
|
|
1549
|
+
extract: 7,
|
|
1550
|
+
critique: 5
|
|
1551
|
+
}
|
|
1552
|
+
},
|
|
1446
1553
|
{
|
|
1447
1554
|
// Auto-onboarded 2026-07-01 from `claude-sonnet-4-6`; VERIFIED 2026-07-02
|
|
1448
1555
|
// against the claude-api reference (cc-portfolio ratification pass). The
|
|
1449
|
-
// clone got context right (1M)
|
|
1450
|
-
//
|
|
1451
|
-
//
|
|
1452
|
-
//
|
|
1556
|
+
// clone got context right (1M). PRICING RE-BASED 2026-08-14 (s86): the
|
|
1557
|
+
// introductory $2/$10 was made PERMANENT — Anthropic's pricing page now
|
|
1558
|
+
// states the scheduled Sept-1 increase to $3/$15 "will not occur", so
|
|
1559
|
+
// $2/$10 IS the sticker. (The $3/$15 encoded 07-02 was correct under the
|
|
1560
|
+
// time-bounded-pricing convention at the time; the bound was cancelled.) The clone got max output WRONG:
|
|
1453
1561
|
// Sonnet 5 is 128k, not 4-6's 64k — corrected. New tokenizer (~30% more
|
|
1454
1562
|
// tokens for the same text vs 4-6): byte-budget consumers should re-baseline.
|
|
1455
1563
|
// API quirks (claude-api ref): (a) NON-DEFAULT temperature/top_p/top_k
|
|
@@ -1462,7 +1570,7 @@ var PROFILES_RAW = [
|
|
|
1462
1570
|
// 'preview' per the Fable precedent — no brain evidence yet; promotion to
|
|
1463
1571
|
// 'current' is an explicit call. (L-049/L-081.)
|
|
1464
1572
|
id: "claude-sonnet-5",
|
|
1465
|
-
verifiedAgainstDocs: "2026-
|
|
1573
|
+
verifiedAgainstDocs: "2026-08-14",
|
|
1466
1574
|
provider: "anthropic",
|
|
1467
1575
|
status: "current",
|
|
1468
1576
|
// s76 2026-07-25: GA per docs; was preview.
|
|
@@ -1474,8 +1582,9 @@ var PROFILES_RAW = [
|
|
|
1474
1582
|
systemPromptMode: "inline",
|
|
1475
1583
|
streaming: true,
|
|
1476
1584
|
cliffs: [],
|
|
1477
|
-
costInputPer1m:
|
|
1478
|
-
|
|
1585
|
+
costInputPer1m: 2,
|
|
1586
|
+
// 2026-08-14: intro price made PERMANENT (docs: "the previously scheduled increase to $3/$15 on September 1, 2026 will not occur")
|
|
1587
|
+
costOutputPer1m: 10,
|
|
1479
1588
|
lowering: ANTHROPIC_LOWERING_BASE,
|
|
1480
1589
|
recovery: [
|
|
1481
1590
|
{ signal: "rate_limit", action: "escalate", reason: "429 \u2014 escalate" },
|
|
@@ -1666,6 +1775,55 @@ function _setProfileBrainHook(hook) {
|
|
|
1666
1775
|
function canonicalId(id) {
|
|
1667
1776
|
return brainHook.resolveAlias?.(id) ?? ALIASES[id] ?? id;
|
|
1668
1777
|
}
|
|
1778
|
+
var CONSUMER_INDEX = /* @__PURE__ */ new Map();
|
|
1779
|
+
function registerProfiles(profiles) {
|
|
1780
|
+
for (const p of profiles) CONSUMER_INDEX.set(p.id, p);
|
|
1781
|
+
}
|
|
1782
|
+
function _testClearConsumerProfiles() {
|
|
1783
|
+
CONSUMER_INDEX.clear();
|
|
1784
|
+
}
|
|
1785
|
+
function inferProviderFromId(id) {
|
|
1786
|
+
const lower = id.toLowerCase();
|
|
1787
|
+
if (lower.startsWith("claude")) return "anthropic";
|
|
1788
|
+
if (lower.startsWith("gemini") || lower.startsWith("palm")) return "google";
|
|
1789
|
+
if (lower.startsWith("gpt") || /^o[0-9]/.test(lower) || lower.startsWith("chatgpt")) return "openai";
|
|
1790
|
+
if (lower.startsWith("deepseek")) return "deepseek";
|
|
1791
|
+
if (lower.startsWith("glm")) return "zai";
|
|
1792
|
+
if (lower.startsWith("kimi") || lower.startsWith("moonshot")) return "moonshot";
|
|
1793
|
+
return void 0;
|
|
1794
|
+
}
|
|
1795
|
+
function bestEffortProfile(id) {
|
|
1796
|
+
const canonical = canonicalId(id);
|
|
1797
|
+
const existing = tryGetProfile(canonical);
|
|
1798
|
+
if (existing) return existing;
|
|
1799
|
+
const provider = inferProviderFromId(canonical);
|
|
1800
|
+
if (!provider) return void 0;
|
|
1801
|
+
const donor = PROFILES_RAW.find((p) => p.provider === provider && p.status === "current") ?? PROFILES_RAW.find((p) => p.provider === provider);
|
|
1802
|
+
if (!donor) return void 0;
|
|
1803
|
+
const synth = {
|
|
1804
|
+
id: canonical,
|
|
1805
|
+
provider,
|
|
1806
|
+
bestEffort: true,
|
|
1807
|
+
status: "preview",
|
|
1808
|
+
maxContextTokens: 128e3,
|
|
1809
|
+
maxOutputTokens: 4096,
|
|
1810
|
+
maxTools: donor.maxTools,
|
|
1811
|
+
parallelToolCalls: false,
|
|
1812
|
+
structuredOutput: "none",
|
|
1813
|
+
systemPromptMode: donor.systemPromptMode,
|
|
1814
|
+
streaming: donor.streaming,
|
|
1815
|
+
cliffs: [],
|
|
1816
|
+
costInputPer1m: 0,
|
|
1817
|
+
costOutputPer1m: 0,
|
|
1818
|
+
lowering: donor.lowering,
|
|
1819
|
+
recovery: [],
|
|
1820
|
+
strengths: [],
|
|
1821
|
+
weaknesses: ["best-effort synthesized profile \u2014 no verified capability data"],
|
|
1822
|
+
notes: `Synthesized by onUnprofiledModel:'best-effort' (provider ${provider} inferred from id; wire mechanics borrowed from ${donor.id}). No cliffs, no measured knowledge, cost UNKNOWN (recorded as 0). Replace via registerProfiles() for real guards.`
|
|
1823
|
+
};
|
|
1824
|
+
CONSUMER_INDEX.set(canonical, synth);
|
|
1825
|
+
return synth;
|
|
1826
|
+
}
|
|
1669
1827
|
function resolveModelAlias(id) {
|
|
1670
1828
|
return canonicalId(id);
|
|
1671
1829
|
}
|
|
@@ -1674,18 +1832,22 @@ var PROFILE_INDEX = new Map(
|
|
|
1674
1832
|
);
|
|
1675
1833
|
function getProfile(id) {
|
|
1676
1834
|
const canonical = canonicalId(id);
|
|
1835
|
+
const fromConsumer = CONSUMER_INDEX.get(canonical);
|
|
1836
|
+
if (fromConsumer) return fromConsumer;
|
|
1677
1837
|
const fromBrain = brainHook.getProfile?.(canonical);
|
|
1678
1838
|
if (fromBrain) return fromBrain;
|
|
1679
1839
|
const p = PROFILE_INDEX.get(canonical);
|
|
1680
1840
|
if (!p) {
|
|
1681
1841
|
const known = [...PROFILE_INDEX.keys(), ...Object.keys(ALIASES)].join(", ");
|
|
1682
|
-
throw new Error(
|
|
1842
|
+
throw new Error(
|
|
1843
|
+
`Unknown model id: "${id}". Known: ${known}. For a model kgauto has not onboarded: registerProfiles([...]) supplies a full profile, or policy.onUnprofiledModel:'best-effort' compiles with guards skipped (alpha.87).`
|
|
1844
|
+
);
|
|
1683
1845
|
}
|
|
1684
1846
|
return p;
|
|
1685
1847
|
}
|
|
1686
1848
|
function tryGetProfile(id) {
|
|
1687
1849
|
const canonical = canonicalId(id);
|
|
1688
|
-
return brainHook.getProfile?.(canonical) ?? PROFILE_INDEX.get(canonical);
|
|
1850
|
+
return CONSUMER_INDEX.get(canonical) ?? brainHook.getProfile?.(canonical) ?? PROFILE_INDEX.get(canonical);
|
|
1689
1851
|
}
|
|
1690
1852
|
function allProfiles() {
|
|
1691
1853
|
return PROFILES_RAW;
|
|
@@ -1702,6 +1864,10 @@ export {
|
|
|
1702
1864
|
latencyTierOf,
|
|
1703
1865
|
ALIASES,
|
|
1704
1866
|
_setProfileBrainHook,
|
|
1867
|
+
registerProfiles,
|
|
1868
|
+
_testClearConsumerProfiles,
|
|
1869
|
+
inferProviderFromId,
|
|
1870
|
+
bestEffortProfile,
|
|
1705
1871
|
resolveModelAlias,
|
|
1706
1872
|
getProfile,
|
|
1707
1873
|
tryGetProfile,
|
|
@@ -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-7sF3adLO.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-7sF3adLO.mjs';
|
|
3
|
+
import '../ir-P3NEU8z4.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-B_MjEB0h.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-B_MjEB0h.js';
|
|
3
|
+
import '../ir-ZgN2KkuF.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-7sF3adLO.mjs';
|
|
2
|
+
import { a as TraceDetail, b as TraceSummary, c as TraceCounterfactual } from '../types-CK0zUlVE.mjs';
|
|
3
|
+
export { A as AdvisoryRecord, T as TraceHealth, d as TraceSectionRewrite } from '../types-CK0zUlVE.mjs';
|
|
4
|
+
import '../ir-P3NEU8z4.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-B_MjEB0h.js';
|
|
2
|
+
import { a as TraceDetail, b as TraceSummary, c as TraceCounterfactual } from '../types-BgfuVIVI.js';
|
|
3
|
+
export { A as AdvisoryRecord, T as TraceHealth, d as TraceSectionRewrite } from '../types-BgfuVIVI.js';
|
|
4
|
+
import '../ir-ZgN2KkuF.js';
|
|
5
5
|
import '../dialect.js';
|
|
6
6
|
|
|
7
7
|
/**
|