harn-vm 0.10.122

Async bytecode virtual machine for the Harn programming language
Documentation
# Generation defaults are inherited when a call does not set the option.
# Exact route patterns may override publisher defaults selected through
# `logical:<logical_model>`.

# OpenAI's GPT-OSS reference configuration recommends neutral sampling and
# high reasoning effort for maximum coding/reasoning quality. Every hosted
# route below shares `logical_model = "openai-gpt-oss-120b"`; provider-specific
# wire translation remains owned by the capability registry.
# https://huggingface.co/openai/gpt-oss-120b/discussions/21
[model_defaults."logical:openai-gpt-oss-120b"]
temperature = 1.0
top_p = 1.0
reasoning_effort = "high"

# Baseten's managed GPT-OSS route does not expose nucleus sampling. Keep the
# remaining logical defaults while omitting the unsupported field at the route
# boundary. https://docs.baseten.co/inference/model-apis/overview
[model_defaults."baseten/openai/gpt-oss-120b"]
_unset = ["top_p"]

# Groq compound systems publish an 8192-token completion ceiling.
[model_defaults."groq/compound*"]
max_tokens = 8192

# Moonshot's direct Kimi K2.5 route accepts only temperature 1.
[model_defaults."moonshot/kimi-k2.5"]
temperature = 1.0

# K3 always reasons and accepts low, high, or maximum effort. Sampling is
# omitted by the capability row; this default preserves Moonshot's documented
# maximum-effort default without leaking route-specific logic into callers.
[model_defaults."moonshot/kimi-k3"]
reasoning_effort = "max"

# GLM-5.3 always reasons; Z.AI accepts `low`, `high`, and `max` and defaults
# to `max`. Harn defaults it to `high` instead, and that is a deliberate
# cost/quality choice rather than a claim about the provider -- the previous
# `low` pin's mistake was disguising exactly such a choice as a compatibility
# note, so this one is stated plainly.
#
# The ladder is not evenly spaced in cost. Measured 2026-08-23 over 24
# short-answer CS/Python tasks x 3 trials x 3 levels (two independent sets,
# ~70 samples per level), against the live `glm-5.3` route:
#
#   level   accuracy [95% CI]     output tokens   $/100 correct
#   low     85.1% [76.1, 92.5]        1.0x            $0.057
#   high    90.3% [83.3, 97.2]        1.4x            $0.060
#   max     95.7% [90.0, 100.0]      13.4x            $0.224
#
# Only `max` - `low` (+10.6 pts) clears the noise floor at that sample size;
# the adjacent steps do not. But `high` costs 40% more output than `low` while
# `max` costs 13x, so `high` sits on the cheap side of the cliff and captures
# roughly half the total gain for 3% more spend per correct answer. `max`
# remains one option away for callers that want it.
#
# This also makes Harn's two entry points agree. Since the ladder snap landed,
# the reasoning policy resolves `high` for an agent or code task at the default
# scale, and the policy outranks this default -- which applies only to a bare
# `llm_call` that sets neither an explicit effort nor a policy. Pinning `max`
# here would have made "GLM-5.3 with no special instruction" mean two different
# things depending on the entry point, with the expensive reading attached to
# the less deliberate one.
[model_defaults."zai/glm-5.3"]
reasoning_effort = "high"