harn-vm 0.10.102

Async bytecode virtual machine for the Harn programming language
Documentation
# ---------- Baseten Model APIs -----------------------------------------------
#
# Baseten serves current open-weight frontier models through an
# OpenAI-compatible /v1/chat/completions surface, advertising
# tools/JSON/structured-output broadly.
#
# GLM used to be pinned to the text grammar here. A 2026-06-23 live probe saw
# GLM-5.2 emit visible `<tool_call><arg_key>...` content instead of OpenAI
# `message.tool_calls`, and that observation was the last survivor of a
# cross-host `glm-5` markup-leak verdict retired on 2026-08-15 (see
# capability_audit.rs). It could not be re-checked at the time because the fleet
# had no Baseten credential, so the row was left conservative rather than
# flipped on another host's evidence.
#
# 2026-08-15 re-probe with a Baseten key: 16/16 clean single
# `message.tool_calls`, across {sync, streaming} x {tool_choice auto, required},
# `finish_reason=tool_calls`, empty assistant content, no markup in any trial.
# The same sweep found GLM-4.7, GLM-5.2-Fast, and every Kimi/DeepSeek/Nemotron/
# GPT-OSS route clean on the native channel, so the pin is retired and Baseten
# now matches every other GLM host. No `glm-5` route anywhere in the catalog
# still carries the markup-leak rationale.

[[provider.baseten]]
model_match = "*glm-5*"
native_tools = true
preferred_tool_format = "native"
structured_output = "native"
thinking_modes = ["enabled"]
auto_reasoning_overrides = { agent = "off", verify = "off", code = "off" }
prompt_caching = true
honors_chat_template_kwargs = true
chat_template_options_field = "chat_template_args"
reasoning_text_promotable = false
# Baseten reports `supported_sampling_parameters` per route on /v1/models.
# GLM-5.2 and GLM-5.2-Fast list temperature/top_p/stop, so nucleus sampling is
# available but top-k is not. Declaring the absence turns a silently-ignored or
# rejected field into a typed admission error naming the route.
top_p_supported = true
top_k_supported = false
text_tool_wire_format_supported = true
prefers_xml_scaffolding = false
prefers_markdown_scaffolding = true
structured_output_mode = "native_json"
supports_assistant_prefill = false
prefers_role_developer = false
prefers_xml_tools = false
thinking_block_style = "inline"

[[provider.baseten]]
model_match = "*kimi-k2*"
native_tools = true
preferred_tool_format = "native"
structured_output = "native"
thinking_modes = ["enabled"]
prompt_caching = true
honors_chat_template_kwargs = true
chat_template_options_field = "chat_template_args"
vision = true
vision_supported = true
# Baseten's Kimi routes list only temperature/stop.
top_p_supported = false
top_k_supported = false
text_tool_wire_format_supported = true
prefers_xml_scaffolding = false
prefers_markdown_scaffolding = true
structured_output_mode = "native_json"
supports_assistant_prefill = false
prefers_role_developer = false
prefers_xml_tools = false
thinking_block_style = "inline"

[[provider.baseten]]
model_match = "*deepseek-v4*"
native_tools = true
preferred_tool_format = "native"
structured_output = "native"
thinking_modes = ["effort"]
reasoning_effort_supported = true
reasoning_effort_levels = ["low", "medium", "high"]
prompt_caching = true
# Baseten's DeepSeek V4 routes (undated Pro plus the 0813/0731 snapshots) list
# only temperature/stop.
top_p_supported = false
top_k_supported = false
text_tool_wire_format_supported = true
prefers_xml_scaffolding = false
prefers_markdown_scaffolding = true
structured_output_mode = "native_json"
supports_assistant_prefill = false
prefers_role_developer = false
prefers_xml_tools = false
thinking_block_style = "reasoning_summary"

[[provider.baseten]]
model_match = "*gpt-oss*"
native_tools = true
preferred_tool_format = "native"
structured_output = "native"
thinking_modes = ["effort"]
reasoning_effort_supported = true
reasoning_effort_levels = ["low", "medium", "high"]
reasoning_required_for_tools = true
prompt_caching = true
# Baseten's managed GPT-OSS route lists only temperature/stop. The shared
# `logical:openai-gpt-oss-120b` default still sets `top_p = 1.0` for every
# other host, so 40-defaults/generation.toml keeps `_unset = ["top_p"]` for
# this route; declaring the capability here is what makes that unset checkable
# instead of a lone hand-maintained exception.
top_p_supported = false
top_k_supported = false
text_tool_wire_format_supported = true
prefers_xml_scaffolding = false
prefers_markdown_scaffolding = true
structured_output_mode = "native_json"
supports_assistant_prefill = false
prefers_role_developer = false
prefers_xml_tools = false
thinking_block_style = "reasoning_summary"

[[provider.baseten]]
model_match = "*nemotron*"
native_tools = true
preferred_tool_format = "native"
structured_output = "native"
thinking_modes = ["enabled"]
prompt_caching = true
honors_chat_template_kwargs = true
chat_template_options_field = "chat_template_args"
top_p_supported = true
top_k_supported = true
text_tool_wire_format_supported = true
prefers_xml_scaffolding = false
prefers_markdown_scaffolding = true
structured_output_mode = "native_json"
supports_assistant_prefill = false
prefers_role_developer = false
prefers_xml_tools = false
thinking_block_style = "inline"

[[provider.baseten]]
model_match = "*"
native_tools = true
preferred_tool_format = "native"
structured_output = "native"
text_tool_wire_format_supported = true
prefers_xml_scaffolding = false
prefers_markdown_scaffolding = true
structured_output_mode = "native_json"
supports_assistant_prefill = false
prefers_role_developer = false
prefers_xml_tools = false
thinking_block_style = "none"