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

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/profiles.js CHANGED
@@ -836,18 +836,22 @@ var PROFILES_RAW = [
836
836
  maxContextTokens: 1e6,
837
837
  maxOutputTokens: 384e3,
838
838
  maxTools: 16,
839
- parallelToolCalls: false,
839
+ // alpha.96 — CORRECTED from `false`, which was AI-generated at greenfield
840
+ // (2026-04-25) and never re-checked. Measured 2026-08-28 direct to
841
+ // api.deepseek.com, no kgauto in the path, 6 tools offered, 3 trials:
842
+ // 3 parallel tool calls returned, 3/3. L-040's original evidence said
843
+ // "7-8 calls per step" — which was never a claim that only one tool may be
844
+ // offered. See the note in lower.ts:lowerDeepSeek.
845
+ parallelToolCalls: true,
840
846
  structuredOutput: "native",
841
847
  systemPromptMode: "inline",
842
848
  streaming: true,
843
- cliffs: [
844
- {
845
- metric: "tool_count",
846
- threshold: 1,
847
- action: "drop_to_top_relevant",
848
- reason: "Sequential tool calls only \u2014 L-040"
849
- }
850
- ],
849
+ // alpha.96 — the `tool_count@1 -> drop_to_top_relevant` cliff was DELETED.
850
+ // It restated `parallelToolCalls: false` as a threshold and was falsified by
851
+ // the same measurement. It is not kept-and-flagged (the usual lifecycle)
852
+ // because it was never a real failure mode: it was a second enforcement of a
853
+ // wrong belief, and keeping it active would keep amputating tools.
854
+ cliffs: [],
851
855
  costInputPer1m: 0.44,
852
856
  costOutputPer1m: 1.32,
853
857
  lowering: {
@@ -859,7 +863,12 @@ var PROFILES_RAW = [
859
863
  { signal: "rate_limit", action: "escalate", reason: "429 \u2014 escalate" }
860
864
  ],
861
865
  strengths: ["cost", "1m_context", "json_output", "code", "reasoning"],
862
- weaknesses: ["parallel_tools", "large_tool_sets"],
866
+ // alpha.96 — 'parallel_tools' REMOVED: measurably false (2026-08-28, direct
867
+ // to api.deepseek.com, 6 tools, 3 trials, 3 parallel calls, both models).
868
+ // 'large_tool_sets' KEPT and explicitly unverified — the probe offered 6 of
869
+ // a declared maxTools 16, so it says nothing about behaviour at 16. Not
870
+ // falsified is not the same as confirmed.
871
+ weaknesses: ["large_tool_sets"],
863
872
  // alpha.47 — explicit slow override. Tag derivation would say 'medium'
864
873
  // (no 'latency' weakness, no 'speed' strength), but the alpha.46 shadow
865
874
  // probe MEASURED deepseek-v4-flash at 20485ms served (2026-06-03) — ~2.3×
@@ -871,7 +880,11 @@ var PROFILES_RAW = [
871
880
  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.",
872
881
  // Master plan §6.2 anchor. Brain-validated tier 1 cross-provider for
873
882
  // classify (169 rows, 0% empty). Tier 0 for summarize-with-no-tools.
874
- // Falls off on hunt (sequential tools L-040) and reasoning depth.
883
+ // alpha.96 the hunt half of this sentence is RETRACTED: "sequential tools
884
+ // — L-040" was falsified 2026-08-28 (direct measurement, 3 parallel tool
885
+ // calls, both models). Do not use this comment to re-lower `hunt`; it is
886
+ // the exact prose that justified the wrong score. The reasoning-depth
887
+ // rationale is untouched and still carries `critique`.
875
888
  archetypePerf: {
876
889
  classify: 7,
877
890
  // brain-validated, 169 rows
@@ -883,8 +896,16 @@ var PROFILES_RAW = [
883
896
  plan: 5,
884
897
  extract: 5,
885
898
  critique: 4,
886
- hunt: 4
887
- // sequential tool calls only — L-040
899
+ // alpha.96 — was 4. Its ONLY written justification was "sequential tool
900
+ // calls only — L-040", which is falsified. A score derived from a false
901
+ // premise cannot be kept, and re-guessing a penalty would just relaunder
902
+ // the same belief. Set to the floor (6) = "no evidence of deficiency",
903
+ // NOT an endorsement. This is a JUDGMENT, not a measurement, and it is
904
+ // the honest direction of the two: the only hunt-shaped evidence we have
905
+ // is positive (a research-agent fixture, 3 of 3 demanded tools correctly
906
+ // selected from a 6-tool menu, 3/3 trials, both models). Replace with a
907
+ // real number from the golden-eval hunt corpus — that is what it is for.
908
+ hunt: 6
888
909
  },
889
910
  // alpha.43 — family-level conventions for the `deepseek-chat` family
890
911
  // (V4-Flash + future non-thinking-mode members). V4-Flash struggles
@@ -909,18 +930,22 @@ var PROFILES_RAW = [
909
930
  maxContextTokens: 1e6,
910
931
  maxOutputTokens: 384e3,
911
932
  maxTools: 16,
912
- parallelToolCalls: false,
933
+ // alpha.96 — CORRECTED from `false`, which was AI-generated at greenfield
934
+ // (2026-04-25) and never re-checked. Measured 2026-08-28 direct to
935
+ // api.deepseek.com, no kgauto in the path, 6 tools offered, 3 trials:
936
+ // 3 parallel tool calls returned, 3/3. L-040's original evidence said
937
+ // "7-8 calls per step" — which was never a claim that only one tool may be
938
+ // offered. See the note in lower.ts:lowerDeepSeek.
939
+ parallelToolCalls: true,
913
940
  structuredOutput: "native",
914
941
  systemPromptMode: "inline",
915
942
  streaming: true,
916
- cliffs: [
917
- {
918
- metric: "tool_count",
919
- threshold: 1,
920
- action: "drop_to_top_relevant",
921
- reason: "Sequential tool calls only \u2014 L-040"
922
- }
923
- ],
943
+ // alpha.96 — the `tool_count@1 -> drop_to_top_relevant` cliff was DELETED.
944
+ // It restated `parallelToolCalls: false` as a threshold and was falsified by
945
+ // the same measurement. It is not kept-and-flagged (the usual lifecycle)
946
+ // because it was never a real failure mode: it was a second enforcement of a
947
+ // wrong belief, and keeping it active would keep amputating tools.
948
+ cliffs: [],
924
949
  // Verified against the live DeepSeek pricing page 2026-06-22: the 75%-off
925
950
  // launch "promo" ($0.435/$0.87) did NOT revert on 2026-05-31 — it became the
926
951
  // standing price (docs show $0.435 in / $0.87 out cache-miss, $0.003625
@@ -938,7 +963,12 @@ var PROFILES_RAW = [
938
963
  { signal: "rate_limit", action: "escalate", reason: "429 \u2014 escalate" }
939
964
  ],
940
965
  strengths: ["quality", "reasoning", "1m_context", "json_output", "code", "extended_thinking"],
941
- weaknesses: ["parallel_tools", "large_tool_sets"],
966
+ // alpha.96 — 'parallel_tools' REMOVED: measurably false (2026-08-28, direct
967
+ // to api.deepseek.com, 6 tools, 3 trials, 3 parallel calls, both models).
968
+ // 'large_tool_sets' KEPT and explicitly unverified — the probe offered 6 of
969
+ // a declared maxTools 16, so it says nothing about behaviour at 16. Not
970
+ // falsified is not the same as confirmed.
971
+ weaknesses: ["large_tool_sets"],
942
972
  // alpha.47 — explicit slow override. Measured 47722ms on the alpha.46
943
973
  // shadow probe (2026-06-03) — it's an extended-thinking reasoner, slowest
944
974
  // of the served set. Tag derivation would say 'medium'; the measurement says
@@ -957,14 +987,24 @@ var PROFILES_RAW = [
957
987
  summarize: 7,
958
988
  extract: 6,
959
989
  transform: 6,
960
- hunt: 4
961
- // sequential toolssame as V4-Flash
990
+ // alpha.96 — was 4. Its ONLY written justification was "sequential tool
991
+ // calls onlyL-040", which is falsified. A score derived from a false
992
+ // premise cannot be kept, and re-guessing a penalty would just relaunder
993
+ // the same belief. Set to the floor (6) = "no evidence of deficiency",
994
+ // NOT an endorsement. This is a JUDGMENT, not a measurement, and it is
995
+ // the honest direction of the two: the only hunt-shaped evidence we have
996
+ // is positive (a research-agent fixture, 3 of 3 demanded tools correctly
997
+ // selected from a 6-tool menu, 3/3 trials, both models). Replace with a
998
+ // real number from the golden-eval hunt corpus — that is what it is for.
999
+ hunt: 6
962
1000
  },
963
1001
  // alpha.43 — family-level conventions for the `deepseek-reasoner` family
964
1002
  // (V4-Pro is the family rep; future thinking-mode members inherit).
965
1003
  //
966
- // The decisive-archetype suffix is the load-bearing piece: 2026-05-28
967
- // first real V4-Pro probe on tt-intel/classify (exclusion-finding ID 20)
1004
+ // The decisive-archetype suffix is the load-bearing piece. ⚠️ alpha.96:
1005
+ // its evidence was purged as poison on 2026-05-29 (s51) retained as a
1006
+ // hypothesis, not a finding. Original claim, for the record: 2026-05-28
1007
+ // first real V4-Pro probe on tt-intel/classify
968
1008
  // showed 8/10 judge rationales citing "candidate hedges and fails to
969
1009
  // commit to a single classification" or "candidate refuses to pick
970
1010
  // among the labels." Without the forcing-function suffix, every
@@ -985,24 +1025,35 @@ var PROFILES_RAW = [
985
1025
  {
986
1026
  archetype: "classify",
987
1027
  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.",
988
- reason: "Reasoners (deepseek-reasoner family) hedge on decisive-output archetypes by design. Evidence: 2026-05-28 V4-Pro probe on tt-intel/classify (exclusion-finding ID 20, brain probe_outcomes); 8 of 10 judge rationales cited hedging or refusal-to-commit. Forcing-function suffix converts reasoner output to decisive labels."
1028
+ 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.'
989
1029
  },
990
1030
  {
991
1031
  archetype: "extract",
992
1032
  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.",
993
- reason: "Reasoners (deepseek-reasoner family) hedge on decisive-output archetypes by design. Evidence: same family failure shape as classify (exclusion-finding ID 20, 2026-05-28). Forcing-function suffix asks for commitment instead of epistemic-humility hedging."
1033
+ 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.'
994
1034
  },
995
1035
  {
996
1036
  archetype: "ask",
997
1037
  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.",
998
- reason: "Reasoners (deepseek-reasoner family) hedge on decisive-output archetypes by design. Evidence: same family failure shape as classify (exclusion-finding ID 20, 2026-05-28). Forcing-function suffix asks for commitment instead of epistemic-humility hedging."
999
- },
1000
- {
1001
- archetype: "hunt",
1002
- whenToolCountAtLeast: 3,
1003
- 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.",
1004
- 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."
1038
+ 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.'
1005
1039
  }
1040
+ // alpha.96 — the `hunt` convention was DELETED, not corrected.
1041
+ // It warned that "hunt archetypes with 3+ parallel tools lose substantial
1042
+ // throughput" and steered callers to gemini-flash. Measured false
1043
+ // 2026-08-28: 6 tools offered, 3 of 3 demanded served in parallel, 3/3
1044
+ // trials, both V4 models, direct to the provider.
1045
+ //
1046
+ // Its cited evidence did not say what it claimed. exclusion-finding ID 20
1047
+ // is `intent_archetype: 'classify'` (not hunt), `verdict:
1048
+ // 'recommend-probe'` (i.e. NOBODY PROBED), `confidence: 'low'`, its
1049
+ // message reads "deepseek-v4-pro has zero calls", it was later
1050
+ // `declined`, and its own `parallel_tool_hint: false` was this profile's
1051
+ // own belief round-tripped back as input. A no-data finding on the wrong
1052
+ // archetype was paraphrased into "probe evidence confirms".
1053
+ //
1054
+ // Deleted rather than re-scoped because a cliffWarning is
1055
+ // capability-REDUCING (it steers traffic away from a model) and nothing
1056
+ // evidenced remains. Re-add only from a measured hunt eval.
1006
1057
  ]
1007
1058
  },
1008
1059
  // ── OpenAI ──
package/dist/profiles.mjs CHANGED
@@ -14,7 +14,7 @@ import {
14
14
  registerProfiles,
15
15
  resolveModelAlias,
16
16
  tryGetProfile
17
- } from "./chunk-D3BVYXNA.mjs";
17
+ } from "./chunk-AMV3M2KH.mjs";
18
18
  export {
19
19
  ALIASES,
20
20
  LATENCY_TIER_MS,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@warmdrift/kgauto-compiler",
3
- "version": "2.0.0-alpha.95",
3
+ "version": "2.0.0-alpha.96",
4
4
  "description": "Prompt compiler with executable provider knowledge for multi-model AI apps: normalized multi-provider transport with fallback chains, compile-time cliff guards, a curated model registry, and a telemetry flight recorder. Swap models without rewriting prompts.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",