@warmdrift/kgauto-compiler 2.0.0-alpha.95 → 2.0.0-alpha.97
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-BJD75WCL.mjs → chunk-77AHSX6Y.mjs} +2 -2
- package/dist/{chunk-IRXC7WEQ.mjs → chunk-AFYBZRQV.mjs} +6 -5
- package/dist/{chunk-D3BVYXNA.mjs → chunk-HHIXHL4O.mjs} +137 -42
- package/dist/{chunk-JFM5A556.mjs → chunk-IEEROFZW.mjs} +1 -1
- package/dist/glassbox-routes/index.js +118 -40
- package/dist/glassbox-routes/index.mjs +2 -2
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +143 -47
- package/dist/index.mjs +4 -4
- package/dist/key-health.js +1 -1
- package/dist/key-health.mjs +1 -1
- package/dist/probe.js +142 -46
- package/dist/probe.mjs +3 -3
- package/dist/profiles.d.mts +4 -1
- package/dist/profiles.d.ts +4 -1
- package/dist/profiles.js +137 -42
- package/dist/profiles.mjs +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
allProfiles,
|
|
3
3
|
resolveModelAlias,
|
|
4
4
|
tryGetProfile
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-HHIXHL4O.mjs";
|
|
6
6
|
|
|
7
7
|
// src/brain-query.ts
|
|
8
8
|
var FRESH_SNAPSHOT = {
|
|
@@ -182,7 +182,7 @@ function mapPerAxisMetrics(raw, fallbackAppId, fallbackArchetype, fallbackModel,
|
|
|
182
182
|
var ARCHETYPE_FLOOR_DEFAULT = 6;
|
|
183
183
|
var ABSOLUTE_FLOOR = 4;
|
|
184
184
|
function rawArchetypePerf(profile, archetype) {
|
|
185
|
-
return profile.archetypePerf?.[archetype] ??
|
|
185
|
+
return profile.archetypePerf?.[archetype] ?? ARCHETYPE_FLOOR_DEFAULT;
|
|
186
186
|
}
|
|
187
187
|
function hasSequentialToolCliffForHunt(profile) {
|
|
188
188
|
if (profile.parallelToolCalls !== false) return false;
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
getModelCompatibility,
|
|
10
10
|
isBrainQueryActiveFor,
|
|
11
11
|
policySetHas
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-77AHSX6Y.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-
|
|
33
|
+
} from "./chunk-HHIXHL4O.mjs";
|
|
34
34
|
|
|
35
35
|
// src/models-brain.ts
|
|
36
36
|
function isModelRow(x) {
|
|
@@ -2597,7 +2597,7 @@ function lower(ir, profile, hints = {}) {
|
|
|
2597
2597
|
case "openai":
|
|
2598
2598
|
return lowerOpenAI(ir, profile, hints);
|
|
2599
2599
|
case "deepseek":
|
|
2600
|
-
return lowerDeepSeek(ir, profile);
|
|
2600
|
+
return lowerDeepSeek(ir, profile, hints);
|
|
2601
2601
|
case "zai":
|
|
2602
2602
|
return lowerZai(ir, profile, hints);
|
|
2603
2603
|
case "moonshot":
|
|
@@ -2858,7 +2858,7 @@ function toOpenAITools(tools) {
|
|
|
2858
2858
|
}
|
|
2859
2859
|
}));
|
|
2860
2860
|
}
|
|
2861
|
-
function lowerDeepSeek(ir, profile) {
|
|
2861
|
+
function lowerDeepSeek(ir, profile, hints) {
|
|
2862
2862
|
const ordered = sortSections(ir.sections);
|
|
2863
2863
|
const systemText = ordered.map((s) => s.text).join("\n\n");
|
|
2864
2864
|
const messages = systemText ? [{ role: "system", content: systemText }] : [];
|
|
@@ -2880,7 +2880,8 @@ function lowerDeepSeek(ir, profile) {
|
|
|
2880
2880
|
provider: "deepseek",
|
|
2881
2881
|
model: profile.id,
|
|
2882
2882
|
messages,
|
|
2883
|
-
|
|
2883
|
+
// Every tool the IR carries. Never fewer — see the note above.
|
|
2884
|
+
tools: ir.tools && ir.tools.length > 0 ? ir.tools.map((t) => ({
|
|
2884
2885
|
type: "function",
|
|
2885
2886
|
function: {
|
|
2886
2887
|
name: t.name,
|
|
@@ -798,18 +798,22 @@ var PROFILES_RAW = [
|
|
|
798
798
|
maxContextTokens: 1e6,
|
|
799
799
|
maxOutputTokens: 384e3,
|
|
800
800
|
maxTools: 16,
|
|
801
|
-
|
|
801
|
+
// alpha.96 — CORRECTED from `false`, which was AI-generated at greenfield
|
|
802
|
+
// (2026-04-25) and never re-checked. Measured 2026-08-28 direct to
|
|
803
|
+
// api.deepseek.com, no kgauto in the path, 6 tools offered, 3 trials:
|
|
804
|
+
// 3 parallel tool calls returned, 3/3. L-040's original evidence said
|
|
805
|
+
// "7-8 calls per step" — which was never a claim that only one tool may be
|
|
806
|
+
// offered. See the note in lower.ts:lowerDeepSeek.
|
|
807
|
+
parallelToolCalls: true,
|
|
802
808
|
structuredOutput: "native",
|
|
803
809
|
systemPromptMode: "inline",
|
|
804
810
|
streaming: true,
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
}
|
|
812
|
-
],
|
|
811
|
+
// alpha.96 — the `tool_count@1 -> drop_to_top_relevant` cliff was DELETED.
|
|
812
|
+
// It restated `parallelToolCalls: false` as a threshold and was falsified by
|
|
813
|
+
// the same measurement. It is not kept-and-flagged (the usual lifecycle)
|
|
814
|
+
// because it was never a real failure mode: it was a second enforcement of a
|
|
815
|
+
// wrong belief, and keeping it active would keep amputating tools.
|
|
816
|
+
cliffs: [],
|
|
813
817
|
costInputPer1m: 0.44,
|
|
814
818
|
costOutputPer1m: 1.32,
|
|
815
819
|
lowering: {
|
|
@@ -821,7 +825,12 @@ var PROFILES_RAW = [
|
|
|
821
825
|
{ signal: "rate_limit", action: "escalate", reason: "429 \u2014 escalate" }
|
|
822
826
|
],
|
|
823
827
|
strengths: ["cost", "1m_context", "json_output", "code", "reasoning"],
|
|
824
|
-
|
|
828
|
+
// alpha.96 — 'parallel_tools' REMOVED: measurably false (2026-08-28, direct
|
|
829
|
+
// to api.deepseek.com, 6 tools, 3 trials, 3 parallel calls, both models).
|
|
830
|
+
// 'large_tool_sets' KEPT and explicitly unverified — the probe offered 6 of
|
|
831
|
+
// a declared maxTools 16, so it says nothing about behaviour at 16. Not
|
|
832
|
+
// falsified is not the same as confirmed.
|
|
833
|
+
weaknesses: ["large_tool_sets"],
|
|
825
834
|
// alpha.47 — explicit slow override. Tag derivation would say 'medium'
|
|
826
835
|
// (no 'latency' weakness, no 'speed' strength), but the alpha.46 shadow
|
|
827
836
|
// probe MEASURED deepseek-v4-flash at 20485ms served (2026-06-03) — ~2.3×
|
|
@@ -833,7 +842,11 @@ var PROFILES_RAW = [
|
|
|
833
842
|
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. PEAK/OFF-PEAK since 2026-08-16 (page fetched 2026-08-24): peak = weekdays 01:00-04:00 + 06:00-10:00 UTC, off-peak = all other hours at HALF peak. Encoded prices ARE the peak rate (conservative: never understate cost); off-peak traffic costs half what the estimate says. alpha.87 was built + verified 2026-08-14 (prices then live), held at the publish gate 10 days, and published 2026-08-24 \u2014 by which time the 08-16 transition had killed them ($0.14/$0.28 flash, $0.435/$0.87 pro); corrected here (alpha.88). Build-then-hold is the mechanism: re-verify prices at publish when publish is not same-session as build. A single price field cannot represent a two-rate schedule; catalog-sync extractions oscillate between the rates day-to-day (peak read 08-21, off-peak read 08-22) \u2014 time-of-day pricing remains unmodeled, roadmap.",
|
|
834
843
|
// Master plan §6.2 anchor. Brain-validated tier 1 cross-provider for
|
|
835
844
|
// classify (169 rows, 0% empty). Tier 0 for summarize-with-no-tools.
|
|
836
|
-
//
|
|
845
|
+
// alpha.96 — the hunt half of this sentence is RETRACTED: "sequential tools
|
|
846
|
+
// — L-040" was falsified 2026-08-28 (direct measurement, 3 parallel tool
|
|
847
|
+
// calls, both models). Do not use this comment to re-lower `hunt`; it is
|
|
848
|
+
// the exact prose that justified the wrong score. The reasoning-depth
|
|
849
|
+
// rationale is untouched and still carries `critique`.
|
|
837
850
|
archetypePerf: {
|
|
838
851
|
classify: 7,
|
|
839
852
|
// brain-validated, 169 rows
|
|
@@ -845,8 +858,16 @@ var PROFILES_RAW = [
|
|
|
845
858
|
plan: 5,
|
|
846
859
|
extract: 5,
|
|
847
860
|
critique: 4,
|
|
848
|
-
|
|
849
|
-
//
|
|
861
|
+
// alpha.96 — was 4. Its ONLY written justification was "sequential tool
|
|
862
|
+
// calls only — L-040", which is falsified. A score derived from a false
|
|
863
|
+
// premise cannot be kept, and re-guessing a penalty would just relaunder
|
|
864
|
+
// the same belief. Set to the floor (6) = "no evidence of deficiency",
|
|
865
|
+
// NOT an endorsement. This is a JUDGMENT, not a measurement, and it is
|
|
866
|
+
// the honest direction of the two: the only hunt-shaped evidence we have
|
|
867
|
+
// is positive (a research-agent fixture, 3 of 3 demanded tools correctly
|
|
868
|
+
// selected from a 6-tool menu, 3/3 trials, both models). Replace with a
|
|
869
|
+
// real number from the golden-eval hunt corpus — that is what it is for.
|
|
870
|
+
hunt: 6
|
|
850
871
|
},
|
|
851
872
|
// alpha.43 — family-level conventions for the `deepseek-chat` family
|
|
852
873
|
// (V4-Flash + future non-thinking-mode members). V4-Flash struggles
|
|
@@ -871,18 +892,22 @@ var PROFILES_RAW = [
|
|
|
871
892
|
maxContextTokens: 1e6,
|
|
872
893
|
maxOutputTokens: 384e3,
|
|
873
894
|
maxTools: 16,
|
|
874
|
-
|
|
895
|
+
// alpha.96 — CORRECTED from `false`, which was AI-generated at greenfield
|
|
896
|
+
// (2026-04-25) and never re-checked. Measured 2026-08-28 direct to
|
|
897
|
+
// api.deepseek.com, no kgauto in the path, 6 tools offered, 3 trials:
|
|
898
|
+
// 3 parallel tool calls returned, 3/3. L-040's original evidence said
|
|
899
|
+
// "7-8 calls per step" — which was never a claim that only one tool may be
|
|
900
|
+
// offered. See the note in lower.ts:lowerDeepSeek.
|
|
901
|
+
parallelToolCalls: true,
|
|
875
902
|
structuredOutput: "native",
|
|
876
903
|
systemPromptMode: "inline",
|
|
877
904
|
streaming: true,
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
}
|
|
885
|
-
],
|
|
905
|
+
// alpha.96 — the `tool_count@1 -> drop_to_top_relevant` cliff was DELETED.
|
|
906
|
+
// It restated `parallelToolCalls: false` as a threshold and was falsified by
|
|
907
|
+
// the same measurement. It is not kept-and-flagged (the usual lifecycle)
|
|
908
|
+
// because it was never a real failure mode: it was a second enforcement of a
|
|
909
|
+
// wrong belief, and keeping it active would keep amputating tools.
|
|
910
|
+
cliffs: [],
|
|
886
911
|
// Verified against the live DeepSeek pricing page 2026-06-22: the 75%-off
|
|
887
912
|
// launch "promo" ($0.435/$0.87) did NOT revert on 2026-05-31 — it became the
|
|
888
913
|
// standing price (docs show $0.435 in / $0.87 out cache-miss, $0.003625
|
|
@@ -900,7 +925,12 @@ var PROFILES_RAW = [
|
|
|
900
925
|
{ signal: "rate_limit", action: "escalate", reason: "429 \u2014 escalate" }
|
|
901
926
|
],
|
|
902
927
|
strengths: ["quality", "reasoning", "1m_context", "json_output", "code", "extended_thinking"],
|
|
903
|
-
|
|
928
|
+
// alpha.96 — 'parallel_tools' REMOVED: measurably false (2026-08-28, direct
|
|
929
|
+
// to api.deepseek.com, 6 tools, 3 trials, 3 parallel calls, both models).
|
|
930
|
+
// 'large_tool_sets' KEPT and explicitly unverified — the probe offered 6 of
|
|
931
|
+
// a declared maxTools 16, so it says nothing about behaviour at 16. Not
|
|
932
|
+
// falsified is not the same as confirmed.
|
|
933
|
+
weaknesses: ["large_tool_sets"],
|
|
904
934
|
// alpha.47 — explicit slow override. Measured 47722ms on the alpha.46
|
|
905
935
|
// shadow probe (2026-06-03) — it's an extended-thinking reasoner, slowest
|
|
906
936
|
// of the served set. Tag derivation would say 'medium'; the measurement says
|
|
@@ -919,14 +949,24 @@ var PROFILES_RAW = [
|
|
|
919
949
|
summarize: 7,
|
|
920
950
|
extract: 6,
|
|
921
951
|
transform: 6,
|
|
922
|
-
|
|
923
|
-
//
|
|
952
|
+
// alpha.96 — was 4. Its ONLY written justification was "sequential tool
|
|
953
|
+
// calls only — L-040", which is falsified. A score derived from a false
|
|
954
|
+
// premise cannot be kept, and re-guessing a penalty would just relaunder
|
|
955
|
+
// the same belief. Set to the floor (6) = "no evidence of deficiency",
|
|
956
|
+
// NOT an endorsement. This is a JUDGMENT, not a measurement, and it is
|
|
957
|
+
// the honest direction of the two: the only hunt-shaped evidence we have
|
|
958
|
+
// is positive (a research-agent fixture, 3 of 3 demanded tools correctly
|
|
959
|
+
// selected from a 6-tool menu, 3/3 trials, both models). Replace with a
|
|
960
|
+
// real number from the golden-eval hunt corpus — that is what it is for.
|
|
961
|
+
hunt: 6
|
|
924
962
|
},
|
|
925
963
|
// alpha.43 — family-level conventions for the `deepseek-reasoner` family
|
|
926
964
|
// (V4-Pro is the family rep; future thinking-mode members inherit).
|
|
927
965
|
//
|
|
928
|
-
// The decisive-archetype suffix is the load-bearing piece:
|
|
929
|
-
//
|
|
966
|
+
// The decisive-archetype suffix is the load-bearing piece. ⚠️ alpha.96:
|
|
967
|
+
// its evidence was purged as poison on 2026-05-29 (s51) — retained as a
|
|
968
|
+
// hypothesis, not a finding. Original claim, for the record: 2026-05-28
|
|
969
|
+
// first real V4-Pro probe on tt-intel/classify
|
|
930
970
|
// showed 8/10 judge rationales citing "candidate hedges and fails to
|
|
931
971
|
// commit to a single classification" or "candidate refuses to pick
|
|
932
972
|
// among the labels." Without the forcing-function suffix, every
|
|
@@ -947,24 +987,35 @@ var PROFILES_RAW = [
|
|
|
947
987
|
{
|
|
948
988
|
archetype: "classify",
|
|
949
989
|
promptSuffix: "\n\nOutput exactly one classification label. Do not hedge, do not add preamble, do not explain your reasoning. If uncertain, pick the most likely label and commit to it.",
|
|
950
|
-
reason:
|
|
990
|
+
reason: 'Reasoners (deepseek-reasoner family) hedge on decisive-output archetypes by design. UNEVIDENCED HYPOTHESIS as of alpha.96 \u2014 this reason used to cite a 2026-05-28 V4-Pro probe on tt-intel/classify ("8 of 10 judge rationales cited hedging") and named `brain probe_outcomes` as its source. That source is EMPTY: probed 2026-08-28, zero probe_outcomes rows exist before 2026-06-01 and zero `classify` rows have ever existed. The probe was deleted on 2026-05-29 by the s51 poison purge \u2014 it replayed against truncated `prompt_preview`, which s51 established yields meaningless verdicts. The conclusion outlived the purge of its own evidence and kept shaping prompts for three months. The pointer was wrong too: exclusion-finding ID 20 is a zero-calls `recommend-probe` on classify, confidence low, later declined \u2014 the probe TRIGGER, never its result. KEPT because a promptSuffix is capability-PRESERVING (adds an instruction, removes nothing a raw call had) and is visible in mutations_applied. Re-evidence from the golden-eval corpus or drop it.'
|
|
951
991
|
},
|
|
952
992
|
{
|
|
953
993
|
archetype: "extract",
|
|
954
994
|
promptSuffix: "\n\nOutput exactly the requested structured fields. Do not hedge, do not add preamble, do not explain your reasoning. If a field is unknown, emit the field with a null/empty value and commit to that \u2014 do not refuse to extract.",
|
|
955
|
-
reason:
|
|
995
|
+
reason: 'Reasoners (deepseek-reasoner family) hedge on decisive-output archetypes by design. UNEVIDENCED HYPOTHESIS as of alpha.96 \u2014 the supporting evidence NO LONGER EXISTS. The cited 2026-05-28 V4-Pro classify probe ("8/10 judge rationales") was deleted on 2026-05-29 by the s51 poison purge, because it replayed against truncated `prompt_preview` and s51 established such verdicts are meaningless. Probed: zero probe_outcomes rows exist before 2026-06-01 and zero `classify` rows have EVER existed. The pointer was also wrong \u2014 exclusion-finding ID 20 is a zero-calls `recommend-probe` on classify, confidence low, later declined; it was the trigger for the probe, never its result. KEPT anyway because a promptSuffix is capability-PRESERVING (it adds an instruction and removes nothing a raw call had), so the cost of being wrong is bounded and a consumer can see it in mutations_applied. Re-evidence it from the golden-eval corpus or drop it.'
|
|
956
996
|
},
|
|
957
997
|
{
|
|
958
998
|
archetype: "ask",
|
|
959
999
|
promptSuffix: "\n\nAnswer the question directly. Do not hedge, do not add preamble, do not explain your reasoning unless explicitly asked. If uncertain, give your best answer and commit to it.",
|
|
960
|
-
reason:
|
|
961
|
-
},
|
|
962
|
-
{
|
|
963
|
-
archetype: "hunt",
|
|
964
|
-
whenToolCountAtLeast: 3,
|
|
965
|
-
cliffWarning: "Reasoners (deepseek-reasoner family) produce sequential reasoning chains by design; hunt archetypes with 3+ parallel tools lose substantial throughput. Consider gemini-flash family (parallel-strong) instead \u2014 see L-040 / L-041.",
|
|
966
|
-
reason: "L-040 + L-041 architectural reading; 2026-05-28 V4-Pro probe evidence (exclusion-finding ID 20) confirms reasoner-family hunt fit is structurally weak."
|
|
1000
|
+
reason: 'Reasoners (deepseek-reasoner family) hedge on decisive-output archetypes by design. UNEVIDENCED HYPOTHESIS as of alpha.96 \u2014 the supporting evidence NO LONGER EXISTS. The cited 2026-05-28 V4-Pro classify probe ("8/10 judge rationales") was deleted on 2026-05-29 by the s51 poison purge, because it replayed against truncated `prompt_preview` and s51 established such verdicts are meaningless. Probed: zero probe_outcomes rows exist before 2026-06-01 and zero `classify` rows have EVER existed. The pointer was also wrong \u2014 exclusion-finding ID 20 is a zero-calls `recommend-probe` on classify, confidence low, later declined; it was the trigger for the probe, never its result. KEPT anyway because a promptSuffix is capability-PRESERVING (it adds an instruction and removes nothing a raw call had), so the cost of being wrong is bounded and a consumer can see it in mutations_applied. Re-evidence it from the golden-eval corpus or drop it.'
|
|
967
1001
|
}
|
|
1002
|
+
// alpha.96 — the `hunt` convention was DELETED, not corrected.
|
|
1003
|
+
// It warned that "hunt archetypes with 3+ parallel tools lose substantial
|
|
1004
|
+
// throughput" and steered callers to gemini-flash. Measured false
|
|
1005
|
+
// 2026-08-28: 6 tools offered, 3 of 3 demanded served in parallel, 3/3
|
|
1006
|
+
// trials, both V4 models, direct to the provider.
|
|
1007
|
+
//
|
|
1008
|
+
// Its cited evidence did not say what it claimed. exclusion-finding ID 20
|
|
1009
|
+
// is `intent_archetype: 'classify'` (not hunt), `verdict:
|
|
1010
|
+
// 'recommend-probe'` (i.e. NOBODY PROBED), `confidence: 'low'`, its
|
|
1011
|
+
// message reads "deepseek-v4-pro has zero calls", it was later
|
|
1012
|
+
// `declined`, and its own `parallel_tool_hint: false` was this profile's
|
|
1013
|
+
// own belief round-tripped back as input. A no-data finding on the wrong
|
|
1014
|
+
// archetype was paraphrased into "probe evidence confirms".
|
|
1015
|
+
//
|
|
1016
|
+
// Deleted rather than re-scoped because a cliffWarning is
|
|
1017
|
+
// capability-REDUCING (it steers traffic away from a model) and nothing
|
|
1018
|
+
// evidenced remains. Re-add only from a measured hunt eval.
|
|
968
1019
|
]
|
|
969
1020
|
},
|
|
970
1021
|
// ── OpenAI ──
|
|
@@ -1863,6 +1914,19 @@ var PROFILES_RAW = [
|
|
|
1863
1914
|
id: "glm-5.2",
|
|
1864
1915
|
verifiedAgainstDocs: "2026-07-18",
|
|
1865
1916
|
provider: "zai",
|
|
1917
|
+
probedLimits: [
|
|
1918
|
+
{
|
|
1919
|
+
metric: "tool_count",
|
|
1920
|
+
testedAt: 6,
|
|
1921
|
+
demanded: 3,
|
|
1922
|
+
served: [3, 3, 3],
|
|
1923
|
+
outcome: "held",
|
|
1924
|
+
trials: 3,
|
|
1925
|
+
lastProbed: "2026-08-29",
|
|
1926
|
+
route: "openrouter:baidu",
|
|
1927
|
+
claim: "Measured 2026-08-29 via OpenRouter (served-by Baidu): 6 tools offered, 3 of 3 demanded served in parallel, 3/3 trials. Route-scoped \u2014 direct z.ai is unmeasured (no key held)."
|
|
1928
|
+
}
|
|
1929
|
+
],
|
|
1866
1930
|
status: "preview",
|
|
1867
1931
|
maxContextTokens: 1048576,
|
|
1868
1932
|
maxOutputTokens: 131072,
|
|
@@ -1873,7 +1937,8 @@ var PROFILES_RAW = [
|
|
|
1873
1937
|
// NOTHING about multiple tool_calls per response. Conservative false so
|
|
1874
1938
|
// hunt-shaped ranking doesn't over-promise; flip on doc or probe
|
|
1875
1939
|
// evidence (L-081: undocumented ≠ true).
|
|
1876
|
-
parallelToolCalls:
|
|
1940
|
+
parallelToolCalls: true,
|
|
1941
|
+
// alpha.96 — see weaknesses note; was an unevidenced blanket false
|
|
1877
1942
|
structuredOutput: "native",
|
|
1878
1943
|
systemPromptMode: "inline",
|
|
1879
1944
|
streaming: true,
|
|
@@ -1896,7 +1961,17 @@ var PROFILES_RAW = [
|
|
|
1896
1961
|
{ signal: "model_not_found", action: "escalate", reason: "Deprecated \u2014 escalate (L-061)" }
|
|
1897
1962
|
],
|
|
1898
1963
|
strengths: ["cost", "1m_context", "code", "tool_use", "json_output", "reasoning"],
|
|
1899
|
-
|
|
1964
|
+
// alpha.96 — 'parallel_tools' REMOVED. Measured 2026-08-29 via OpenRouter
|
|
1965
|
+
// (served-by Baidu), 6 tools offered, 3 of 3 demanded served in PARALLEL,
|
|
1966
|
+
// 3/3 trials. ROUTE-SCOPED: per the alpha.92 execute-leg contract there is
|
|
1967
|
+
// no cross-route verdict transfer, and direct z.ai is UNMEASURED (we hold
|
|
1968
|
+
// no zai key). But `parallelToolCalls: false` was a blanket claim with no
|
|
1969
|
+
// route qualification and no evidence at all, and it is capability-
|
|
1970
|
+
// REDUCING — it drives requires-adapter/reject. An unsubstantiated reducer
|
|
1971
|
+
// must not reduce. Contradicted on the one route we can reach is enough to
|
|
1972
|
+
// stop enforcing it; it is not enough to claim the opposite, which is why
|
|
1973
|
+
// probedLimits below carries the route.
|
|
1974
|
+
weaknesses: [],
|
|
1900
1975
|
notes: "GLM-5.2 (Z.ai, 2026-06): agentic-coding flagship. 1,048,576 ctx / 131,072 max out. $1.40/$4.40 per 1M; cached input $0.26/M (automatic caching, no marker; storage limited-time free as of 2026-07-18). Thinking on by default (`thinking.type`), `reasoning_effort` max..none. Parallel tool calls UNDOCUMENTED on the hosted API \u2014 profile says false until doc or probe evidence. status:preview \u2014 no brain evidence yet; earns placement via the machinery.",
|
|
1901
1976
|
// Starter hypotheses — verify with telemetry/probes; NO brain evidence
|
|
1902
1977
|
// yet. Anchored on the vendor's agentic-coding positioning at a
|
|
@@ -1914,8 +1989,11 @@ var PROFILES_RAW = [
|
|
|
1914
1989
|
extract: 6,
|
|
1915
1990
|
critique: 6,
|
|
1916
1991
|
classify: 6,
|
|
1917
|
-
|
|
1918
|
-
//
|
|
1992
|
+
// alpha.96 — was 5, discounted for "parallel unproven". Parallel is no
|
|
1993
|
+
// longer unproven on the reachable route (3/3, 2026-08-29). The discount
|
|
1994
|
+
// had no other stated basis, so it is withdrawn to the neutral floor.
|
|
1995
|
+
// Judgment, not measurement — same standard as the DeepSeek correction.
|
|
1996
|
+
hunt: 6
|
|
1919
1997
|
}
|
|
1920
1998
|
},
|
|
1921
1999
|
// ── Moonshot (Kimi) ──
|
|
@@ -2048,7 +2126,24 @@ function bestEffortProfile(id) {
|
|
|
2048
2126
|
maxContextTokens: 128e3,
|
|
2049
2127
|
maxOutputTokens: 4096,
|
|
2050
2128
|
maxTools: donor.maxTools,
|
|
2051
|
-
|
|
2129
|
+
// alpha.97 — was `false`. That was the SAME MISTAKE as the three profiles
|
|
2130
|
+
// corrected in alpha.96, in the one place it does the most damage: applied
|
|
2131
|
+
// to models nobody has measured at all.
|
|
2132
|
+
//
|
|
2133
|
+
// `false` here is capability-REDUCING and unsubstantiated by construction —
|
|
2134
|
+
// a synthesized profile exists precisely because we know nothing. It made
|
|
2135
|
+
// `getModelCompatibility(<any unprofiled model>, {archetype:'hunt'})`
|
|
2136
|
+
// return `requires-adapter` (verified: raw score 5 vs floor 6, adapter
|
|
2137
|
+
// offered), so every consumer on `onUnprofiledModel:'best-effort'` was told
|
|
2138
|
+
// to serialize tool calls on a model we had never touched.
|
|
2139
|
+
//
|
|
2140
|
+
// The never-worse-than-raw rule decides it: for an unknown model kgauto
|
|
2141
|
+
// must behave exactly as a direct call would, and a direct call passes
|
|
2142
|
+
// every tool and lets the provider default apply. `true` is not a claim
|
|
2143
|
+
// that the model parallelises — it is the absence of a claim, expressed as
|
|
2144
|
+
// non-interference. The honest long-term fix is a third state (unknown)
|
|
2145
|
+
// rather than a boolean; that is P4 in the rebuild contract.
|
|
2146
|
+
parallelToolCalls: true,
|
|
2052
2147
|
structuredOutput: "none",
|
|
2053
2148
|
systemPromptMode: donor.systemPromptMode,
|
|
2054
2149
|
streaming: donor.streaming,
|
|
@@ -2058,7 +2153,7 @@ function bestEffortProfile(id) {
|
|
|
2058
2153
|
lowering: donor.lowering,
|
|
2059
2154
|
recovery: [],
|
|
2060
2155
|
strengths: [],
|
|
2061
|
-
weaknesses: ["best-effort synthesized profile \u2014 no verified capability data"],
|
|
2156
|
+
weaknesses: ["best-effort synthesized profile \u2014 no verified capability data; kgauto does not reduce capability for a model it has never measured (alpha.97)"],
|
|
2062
2157
|
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.`
|
|
2063
2158
|
};
|
|
2064
2159
|
CONSUMER_INDEX.set(canonical, synth);
|