runner configuration
Generated from the typed agent gate registry. Edit the registry, then regenerate.
Reachability records its evidence; source wiring does not prove runtime efficacy.
| Name | Repo | Default | Readers | Headless reachability and evidence | Verdict | Reason / expiry |
|---|---|---|---|---|---|---|
| AgentBudget.max_cost_usd | harn | absent; no per-call cost ceiling | crates/harn-vm/src/llm/cost.rs (get) | unknown: cost.parse_budget_fields sets this optional ceiling only when the nested field is present. | KEEP-with-expiry | Preserve the nested contract at the owning budget, routing or prompt assembler. / 2026-09-13 |
| AgentBudget.max_input_tokens | harn | absent; no input-token ceiling | crates/harn-vm/src/llm/cost.rs (get) | unknown: cost.parse_budget_fields sets this optional ceiling only when the nested field is present. | KEEP-with-expiry | Preserve the nested contract at the owning budget, routing or prompt assembler. / 2026-09-13 |
| AgentBudget.max_output_tokens | harn | absent; no output-token ceiling | crates/harn-vm/src/llm/cost.rs (get) | unknown: cost.parse_budget_fields sets this optional ceiling only when the nested field is present. | KEEP-with-expiry | Preserve the nested contract at the owning budget, routing or prompt assembler. / 2026-09-13 |
| AgentSpec.equivalent_failover.max_routes | harn | 3 | crates/harn-vm/src/llm/helpers/options/routing.rs (get) | unknown: helpers/options/routing.parse_equivalent_failover_option starts with DEFAULT_EQUIVALENT_FAILOVER_MAX_ROUTES. | KEEP-with-expiry | Preserve the nested contract at the owning budget, routing or prompt assembler. / 2026-09-13 |
| AgentSpec.equivalent_failover.on_no_dispatch | harn | false in the native parser; true in the agent default failover object | crates/harn-vm/src/llm/helpers/options/routing.rs (get) | unknown: The native parser defaults false; llm/options.llm_enable_equivalent_failover explicitly injects true for the agent default. | KEEP-with-expiry | Preserve the nested contract at the owning budget, routing or prompt assembler. / 2026-09-13 |
| AgentSpec.models[].model | harn | required nonempty string in each object step | crates/harn-vm/src/llm/routing.rs (native-model-step-identity) | unknown: routing.parse_ladder_step_value rejects an object without a nonempty model. | KEEP-with-expiry | Preserve the nested contract at the owning budget, routing or prompt assembler. / 2026-09-13 |
| AgentSpec.models[].provider | harn | absent; inherited routing resolution | crates/harn-vm/src/llm/routing.rs (native-model-step-identity) | unknown: routing.parse_ladder_step_value returns None when provider is missing, nil or blank. | KEEP-with-expiry | Preserve the nested contract at the owning budget, routing or prompt assembler. / 2026-09-13 |
| AgentSpec.models[].label | harn | absent; no step label | crates/harn-vm/src/llm/routing.rs (native-model-step-identity) | unknown: routing.parse_ladder_step_value returns None when label is missing, nil or blank. | KEEP-with-expiry | Preserve the nested contract at the owning budget, routing or prompt assembler. / 2026-09-13 |
| AgentSpec.models[].options | harn | absent; no step overrides | crates/harn-vm/src/llm/routing.rs (get) | unknown: routing.parse_ladder_step_overrides returns None for missing or nil options and validates present keys against LADDER_STEP_OVERRIDE_KEYS. | KEEP-with-expiry | Preserve the nested contract at the owning budget, routing or prompt assembler. / 2026-09-13 |
| AgentSpec.models[].family | harn | absent; ignored by the native inline ladder parser | unknown: Declared inside AgentModelSpec.models; routing.parse_ladder_step_value consumes only model, provider, label and options. | DELETE | Remove a declared inline-ladder field that the native parser ignores. / none | |
| AgentSpec.models[].capabilities | harn | absent; ignored by the native inline ladder parser | unknown: Declared inside AgentModelSpec.models; routing.parse_ladder_step_value consumes only model, provider, label and options. | DELETE | Remove a declared inline-ladder field that the native parser ignores. / none | |
| AgentSpec.system.mode | harn | required literal replace in the object form | crates/harn-vm/src/llm/helpers/options/system_prompt.rs (get) | unknown: helpers/options/system_prompt rejects an exclusive replacement object without mode equal to replace. | KEEP-with-expiry | Preserve the nested contract at the owning budget, routing or prompt assembler. / 2026-09-13 |
| AgentSpec.system.content | harn | required string in the object form | crates/harn-vm/src/llm/helpers/options/system_prompt.rs (get) | unknown: helpers/options/system_prompt rejects an exclusive replacement object without string content. | KEEP-with-expiry | Preserve the nested contract at the owning budget, routing or prompt assembler. / 2026-09-13 |
| AgentSpec.resume_event_topic | harn | absent | crates/harn-stdlib/src/stdlib/agent/daemon.harn (__agent_daemon_raw_resume_conditions) | unknown: daemon.__agent_daemon_raw_resume_conditions adds on_event only when the resolved topic is non-nil. | KEEP-with-expiry | Preserve one event subscription input at the resumption owner. / 2026-09-13 |
| AgentSpec.equivalent_failover.enabled | harn | true within an explicit equivalent_failover object | crates/harn-vm/src/llm/helpers/options/routing.rs (get); crates/harn-stdlib/src/stdlib/llm/options.harn (llm_equivalent_failover_enabled) | unknown: llm/options.llm_equivalent_failover_enabled returns true for an object with no enabled member; absent equivalent_failover returns false. | KEEP-with-expiry | Retain the routing owner's explicit failover policy pending its public contract review. / 2026-09-13 |
| AgentSpec.skill_match.strategy | harn | catalog | crates/harn-vm/src/llm/skill_score.rs (get); crates/harn-stdlib/src/stdlib/agent/skills.harn (__match_strategy) | unknown: skills.__match_strategy supplies catalog when the normalized skill_match object omits strategy. | KEEP-with-expiry | Retain the selection strategy at its owning skill matcher. / 2026-09-13 |
| AgentSpec.skill_match.top_n | harn | 1 | crates/harn-stdlib/src/stdlib/agent/skills.harn (__match_top_n) | unknown: skills.__match_top_n accepts a positive integer and otherwise uses one. | KEEP-with-expiry | Bound automatic skill selection in its owning matcher. / 2026-09-13 |
| AgentSpec.skill_match.sticky | harn | true | crates/harn-stdlib/src/stdlib/agent/skills.harn (__match_sticky) | unknown: skills.__match_sticky defaults to preserving the previous active skill selection. | KEEP-with-expiry | Review selection lifetime with the skill matcher rather than adding a runner switch. / 2026-09-13 |
| AgentSpec.skill_match.catalog_limit | harn | 12 | crates/harn-stdlib/src/stdlib/agent/skills.harn (__skill_catalog_limit) | unknown: skills.__skill_catalog_limit accepts a positive catalog_limit under skill_match and otherwise uses twelve entries. | KEEP-with-expiry | Keep the nested skill catalog bound while removing its duplicate spelling. / 2026-09-13 |
| AgentSpec.skill_match.catalog_budget | harn | 2000 | crates/harn-stdlib/src/stdlib/agent/skills.harn (__skill_catalog_budget) | unknown: skills.__skill_catalog_budget accepts a positive catalog_budget under skill_match and otherwise uses two thousand. | KEEP-with-expiry | Keep the nested skill catalog budget while removing its duplicate spelling. / 2026-09-13 |
| AgentSpec.skill_match.catalog_always | harn | false | crates/harn-stdlib/src/stdlib/agent/skills.harn (__skill_catalog_always) | unknown: skills.__skill_catalog_always supplies false when skill_match.catalog_always is not a boolean. | KEEP-with-expiry | Review repeated catalog presentation with the skill matcher. / 2026-09-13 |
| AgentSpec.compaction.classify | harn | absent; required only by the explicit classify strategy | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compact_options) | yes: autocompact.__compact_options forwards this typed classification configuration to the shared compaction owner unless auto_compact already supplies it. compaction_classify.harn reaches this exact wrapper and asserts applied decisions and preserved source. | KEEP-with-expiry | Keep explicit evaluator and confidence-floor authority; fixture evidence establishes application semantics, not model quality or default promotion. / 2026-10-22 |
| AgentSpec.auto_compact.enabled | harn | true within an explicitly supplied auto_compact object | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_enabled) | unknown: autocompact.__compaction_enabled disables an object configuration only for explicit enabled=false; absent compaction configuration does not enable compaction. | KEEP-with-expiry | Retain the compaction activation contract until the caller and native compaction policy are consolidated. / 2026-09-13 |
| AgentSpec.compaction.strategy | harn | hybrid for an object | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_strategy_label); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_enabled) | unknown: autocompact.__compaction_strategy_label reads strategy from an object; a string configuration is already the strategy label. | KEEP-with-expiry | Keep one canonical strategy field while retiring duplicate spellings. / 2026-09-13 |
| AgentSpec.compaction.keep_last_n | harn | compact_keep_last, then engine default | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_keep_last) | unknown: autocompact.__compaction_keep_last accepts an integer under keep_last_n before the top-level compact_keep_last. | KEEP-with-expiry | Retain the primary field until compaction request normalization has one owner. / 2026-09-13 |
| AgentSpec.llm_caller_transport.forwards_assistant_prefill | harn | false | crates/harn-stdlib/src/stdlib/agent/caller_transport.harn (__normalize_llm_caller_transport); crates/harn-stdlib/src/stdlib/agent/prefill.harn (agent_prefill_eligibility) | unknown: caller_transport.__normalize_llm_caller_transport defaults the capability to false; prefill.agent_prefill_eligibility requires it for an external LLM caller. Canonical runtime reachability remains unmeasured. | KEEP-with-expiry | A caller must declare whether its transport preserves assistant prefill before the runner relies on that capability. / 2026-09-13 |
| AgentSpec.approval_policy | harn | absent; inherit the current approval policy | crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__loop_dispatch_options) | unknown: agent_session_host.session_policies installs an approval-policy override only when parse_approval_policy returns one. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.approval_reviewer | harn | absent; inherit the current reviewer | crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__loop_dispatch_options) | unknown: agent_session_host.session_policies pushes an approval reviewer only when an explicit value parses. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.autonomy_budget | harn | absent; no additional autonomy budget | unknown: llm.autonomy_budget.parse_autonomy_budget returns None for absent or nil autonomy_budget. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| AgentSpec.mcp_servers | harn | absent; no MCP bootstrap | crates/harn-stdlib/src/stdlib/agent/mcp.harn (agent_mcp_bootstrap_if_needed) | unknown: mcp.agent_mcp_bootstrap_if_needed returns options unchanged when no server specs exist. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.missing_tool_call_recovery | harn | enabled with inherited runner model/provider and classifier defaults | crates/harn-stdlib/src/stdlib/agent/loop_support.harn (__agent_loop_next_tool_output_contract); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_callback_options); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__missing_tool_call_recovery_config) | unknown: postturn.__missing_tool_call_recovery_config enables absent configuration and resolves classifier route inheritance. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.permissions | harn | absent; inherit the current permissions | crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__loop_dispatch_options) | unknown: agent_session_host.session_policies installs dynamic permissions only when an explicit permission value parses. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.policy | harn | absent; inherit the current capability policy | crates/harn-stdlib/src/stdlib/agent/judge_evidence.harn (__judge_tool_descriptor); crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__loop_dispatch_options); crates/harn-stdlib/src/stdlib/agent/loop_resource_dispatch.harn (__tool_batch_call_classification); crates/harn-stdlib/src/stdlib/agent/loop_resource_dispatch.harn (__intra_turn_resource_keys); crates/harn-stdlib/src/stdlib/agent/loop_resource_dispatch.harn (__intra_turn_resource_guard); crates/harn-stdlib/src/stdlib/agent/loop_support.harn (__agent_loop_next_tool_output_contract); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__tool_envelope); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__run_structural_validator); crates/harn-stdlib/src/stdlib/agent/mcp.harn (__with_mcp_tool_ceiling); crates/harn-stdlib/src/stdlib/agent/monologue_actuation.harn (agent_monologue_actuation_take_for_turn); crates/harn-stdlib/src/stdlib/agent/stance.harn (__stance_policy_patch); crates/harn-stdlib/src/stdlib/agent/stance.harn (agent_stance_prepare); crates/harn-stdlib/src/stdlib/agent/stance.harn (agent_stance_apply); crates/harn-stdlib/src/stdlib/agent/step_judge.harn (__step_is_read_only); crates/harn-stdlib/src/stdlib/agent/tool_annotations.harn (agent_collapse_duplicate_read_calls); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (__tool_surface_claim_authority); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (agent_apply_tool_surface_narrowing) | unknown: agent_session_host.session_policies installs a capability policy only when supplied, intersecting it with any outer policy. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.progress_tool | harn | absent; no injected progress tool | crates/harn-stdlib/src/stdlib/agent/progress.harn (agent_progress_apply_options) | unknown: progress.__agent_progress_tool_config returns nil for absent input; agent_progress_apply_options then returns the original options. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.read_only_stance | harn | dynamic: observed local fallback {}; normalization may override | crates/harn-stdlib/src/stdlib/agent/stance.harn (__stance_config) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.subagent_tools | harn | false; existing worker tool entries can independently establish capability | crates/harn-stdlib/src/stdlib/agent/workers.harn (__agent_lifecycle_has_subagent_capability) | unknown: workers.__agent_lifecycle_has_subagent_capability inspects both settings and tool entries. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.subagents | harn | false; existing worker tool entries can independently establish capability | crates/harn-stdlib/src/stdlib/agent/workers.harn (__agent_lifecycle_has_subagent_capability) | unknown: workers.__agent_lifecycle_has_subagent_capability inspects both settings and tool entries. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.auto_context_profile | harn | enabled unless explicitly false | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__context_profile_disabled) | unknown: options_validation.__context_profile_disabled disables only a false boolean. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.context_profile_options | harn | dynamic: observed local fallback {}; normalization may override | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__context_profile_options) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.context_profile_root | harn | project_root, then root, then cwd, then current directory | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__context_profile_root) | unknown: options_validation.__context_profile_root resolves the context-root precedence. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.deliverables | harn | empty list | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__task_ledger_from_shorthand) | unknown: options_validation.__task_ledger_from_shorthand filters nonempty deliverable text from the supplied list. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.prompt_overrides | harn | absent; built-in prompt catalog; prompts takes precedence | crates/harn-stdlib/src/stdlib/agent/prompts.harn (__agent_prompt_overrides) | unknown: prompts.__agent_prompt_overrides checks prompts before this compatibility input. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.prompts | harn | absent; built-in prompt catalog | crates/harn-stdlib/src/stdlib/agent/prompts.harn (__agent_prompt_overrides) | unknown: prompts.__agent_prompt_overrides checks prompts, then prompt_overrides, then a direct prompt catalog, otherwise an empty override map. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.reminders | harn | empty policy object; native default reminder providers apply | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/reminder_providers.rs (get); crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__loop_dispatch_options); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_reminder_provider_options) | unknown: options_validation.__normalize_reminder_provider_options inserts an empty dictionary when omitted. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.root | harn | absent; session-store environment root, otherwise runtime state root | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__context_profile_root) | unknown: stdlib.session_store.canonical_store_state_dir resolves explicit root, HARN_SESSION_STORE_ROOT, then runtime_paths.state_root(runtime_root_base()). Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.root_task | harn | dynamic: observed local fallback ""; normalization may override | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__task_ledger_from_shorthand) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.scratchpad | harn | disabled | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_callback_options); crates/harn-stdlib/src/stdlib/agent/scratchpad.harn (agent_scratchpad_options) | unknown: scratchpad.agent_scratchpad_options returns disabled default options when scratchpad is absent. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.skill_match | harn | empty configuration: catalog strategy, top_n 1, sticky true | crates/harn-stdlib/src/stdlib/agent/skills.harn (__match_config) | unknown: skills.__match_config defaults to an empty object; the strategy/top_n/sticky consumers supply these fallbacks. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.skills | harn | absent; no fallback skill registry | crates/harn-stdlib/src/stdlib/agent/skills.harn (__skills_registry) | unknown: skills.__skills_registry reads skills; __skills_entries returns an empty list for absent registry. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.task_ledger | harn | derived from root_task and deliverables when present; otherwise absent | crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_text_tool_contract_prompt) | unknown: options_validation.__with_task_ledger_shorthand retains explicit task_ledger and constructs only a nonempty shorthand ledger. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.timestamp_messages | harn | false; legacy message_timestamps is consulted when absent | crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_decorate_turn_message); crates/harn-stdlib/src/stdlib/agent/preflight.harn (agent_build_turn_messages) | unknown: preflight.__agent_decorate_turn_message resolves the timestamp switches before applying the decorator. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.transcript_projection | harn | absent; no explicit projection override | crates/harn-stdlib/src/stdlib/agent/loop_turn_scope.harn (__agent_loop_final_wrapup); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_callback_options); crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_projection_options) | unknown: preflight.__agent_projection_options returns nil when omitted. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.working_files | harn | empty list | crates/harn-stdlib/src/stdlib/agent/skills.harn (__score_candidates); crates/harn-stdlib/src/stdlib/agent/skills.harn (__record_matched) | unknown: skills skill-scoring input construction defaults working_files to an empty list. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.active_skills | harn | empty list; no active-skill prompt fragment | crates/harn-stdlib/src/stdlib/agent/loop_turn_setup.harn (__agent_loop_turn_setup); crates/harn-stdlib/src/stdlib/agent/preflight.harn (agent_build_turn_system_fragments) | unknown: preflight.__agent_active_skill_prompt returns empty text for an absent or empty active list. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.call_budget_reserve_signal | harn | false; owner loop_run/loop_finalize/loop_resource_dispatch/loop_call_budget/loop_turn_scope | crates/harn-stdlib/src/stdlib/agent/loop_call_budget.harn (__agent_loop_call_budget_new) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.code_librarian_signals | harn | absent; context_profile_options signals remain unchanged | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__context_profile_options) | unknown: options_validation.__context_profile_options overlays context_signals and then code_librarian_signals only when supplied. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.command_policy | harn | absent; inherit the current command policy | crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__loop_dispatch_options) | unknown: agent_session_host.session_policies pushes a command-policy override only when an explicit value parses. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.command_wait | harn | command_wait_normalize defaults; automatic resolution kills a held command | crates/harn-stdlib/src/stdlib/agent/loop_lifecycle.harn (agent_loop_run_settings); crates/harn-stdlib/src/stdlib/agent/loop_run.harn (__agent_loop_run) | unknown: loop_lifecycle passes the optional record to command_wait_normalize, which owns all timing, reentry and wording defaults. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.context_callback | harn | absent at the public input boundary | unknown: options_types.AgentExecutionSpec declares an optional callback; workers forwards only explicitly supplied context callbacks. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| AgentSpec.context_filter | harn | absent at the public input boundary | unknown: options_types.AgentExecutionSpec declares an optional callback; workers forwards only explicitly supplied context filters. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| AgentSpec.context_signals | harn | absent; context_profile_options signals remain unchanged | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__context_profile_options) | unknown: options_validation.__context_profile_options overlays context_signals and then code_librarian_signals only when supplied. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.cwd | harn | dynamic: observed local fallback "."; normalization may override | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__context_profile_root) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.deadline_ms | harn | absent; no independent deadline, though iteration_budget.wall_clock_ms can impose one | crates/harn-stdlib/src/stdlib/agent/loop_foundation.harn (__agent_loop_apply_deadline) | unknown: loop_foundation.__agent_loop_deadline_contract selects the earliest positive configured duration. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.decorate_message | harn | absent; no decorator; message_decorator takes precedence | crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_decorate_turn_message); crates/harn-stdlib/src/stdlib/agent/preflight.harn (agent_build_turn_messages) | unknown: preflight.__agent_decorate_turn_message returns the message when both callback spellings are absent. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.input_guardrail | harn | absent; no custom input guardrail | crates/harn-stdlib/src/stdlib/agent/loop_turn_setup.harn (__agent_loop_turn_setup); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_callback_options) | unknown: options_public.agent_options reads the optional input_guardrail and projects it to internal runner options. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.intra_turn_failure_fanout_cap | harn | 0, disabled; owner loop_run/loop_finalize/loop_resource_dispatch/loop_call_budget/loop_turn_scope | crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__resolve_intra_turn_failure_fanout_cap); crates/harn-stdlib/src/stdlib/agent/loop_resource_dispatch.harn (__dispatch_tool_calls_with_middleware) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.intra_turn_resource_fail_fast | harn | true; owner loop_run/loop_finalize/loop_resource_dispatch/loop_call_budget/loop_turn_scope | crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__resolve_intra_turn_resource_fail_fast); crates/harn-stdlib/src/stdlib/agent/loop_resource_dispatch.harn (__dispatch_tool_calls_with_middleware) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.iteration | harn | dynamic: observed local fallback 0; normalization may override | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| AgentSpec.iteration_budget | harn | fixed at the selected profile max_iterations (50 for default tool_using) | crates/harn-stdlib/src/stdlib/workflow/options.harn (workflow-loop-key-domain); crates/harn-stdlib/src/stdlib/agent/loop_lifecycle.harn (agent_loop_run_settings); crates/harn-stdlib/src/stdlib/agent/loop_run.harn (__agent_loop_run); crates/harn-stdlib/src/stdlib/agent/options_public.harn (__normalize_iteration_budget) | unknown: options_public.__normalize_iteration_budget uses the profile max_iterations inserted by agent_loop_options and disables budget extension. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.llm_caller | harn | absent; use the runtime provider caller | crates/harn-stdlib/src/stdlib/agent/llm_dispatch.harn (__dispatch_invoke_once); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_callback_options); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__missing_tool_call_recovery_classifier); crates/harn-stdlib/src/stdlib/agent/prefill.harn (agent_prefill_eligibility); crates/harn-stdlib/src/stdlib/agent/retry.harn (agent_apply_default_retry) | unknown: options_public.agent_options reads the optional llm_caller and projects it to internal runner options. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.llm_caller_transport | harn | forwards_assistant_prefill false | crates/harn-stdlib/src/stdlib/agent/prefill.harn (agent_prefill_eligibility) | unknown: caller_transport.__normalize_llm_caller_transport resolves an omitted transport declaration to this capability. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.llm_options | harn | dynamic: observed local fallback {}; normalization may override | crates/harn-stdlib/src/stdlib/agent/judge_internals.harn (__judge_run_checkpoint); crates/harn-stdlib/src/stdlib/agent/loop_support.harn (__agent_loop_llm_overrides); crates/harn-stdlib/src/stdlib/agent/prefill.harn (agent_take_one_shot_prefill) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.llm_retry | harn | three attempts unless retry overrides it; explicit nil disables retries | crates/harn-stdlib/src/stdlib/agent/llm_dispatch.harn (__dispatch_invoke_once); crates/harn-stdlib/src/stdlib/agent/retry.harn (__agent_loop_retry_config); crates/harn-stdlib/src/stdlib/agent/retry.harn (__validate_agent_loop_retry) | unknown: retry.__agent_loop_retry_config resolves retry, then llm_retry, then max_attempts 3. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.loop_control | harn | absent; adaptive budget uses the default controller, fixed budget takes no extension action | crates/harn-stdlib/src/stdlib/agent/control.harn (agent_loop_control_invoke); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_callback_options) | unknown: control.agent_loop_control_invoke calls the supplied closure only when present and otherwise selects by budget.mode. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.max_concurrent_tools | harn | dynamic: observed local fallback 1; normalization may override | crates/harn-vm/src/llm/agent_host_primitives.rs (agent_primitive_option_int); crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__resolve_max_concurrent_tools); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__tool_envelope); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_callback_options) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.max_iterations | harn | 50 for tool_using profile; options_formats.harn:15 owns other profiles | crates/harn-vm/src/llm/agent_session_host/lifecycle.rs (opt_int); crates/harn-stdlib/src/stdlib/agent/loop_lifecycle.harn (agent_loop_run_settings); crates/harn-stdlib/src/stdlib/agent/options_public.harn (__normalize_iteration_budget) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.mcp_context | harn | absent; no initialize-advisory context | crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_mcp_initialize_advisory_prompt) | unknown: preflight.__agent_mcp_initialize_advisory_prompt requires explicit mcp_context.initialize_advisory before rendering. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.mcp_initialize_advisory | harn | absent; advisory disabled | crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_mcp_initialize_advisory_prompt) | unknown: preflight.__agent_mcp_initialize_advisory_prompt requires both this value and mcp_context.initialize_advisory. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.message_decorator | harn | absent; legacy decorate_message fallback, otherwise no decorator | crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_decorate_turn_message); crates/harn-stdlib/src/stdlib/agent/preflight.harn (agent_build_turn_messages) | unknown: preflight.__agent_decorate_turn_message resolves the canonical callback before the compatibility input. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.message_timestamps | harn | dynamic: observed local fallback false; normalization may override | crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_decorate_turn_message); crates/harn-stdlib/src/stdlib/agent/preflight.harn (agent_build_turn_messages) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.mid_conversation_mcp_mount | harn | dynamic: observed local fallback false; normalization may override | crates/harn-stdlib/src/stdlib/agent/loop_turn_setup.harn (__agent_loop_turn_setup) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.mock_queue | harn | absent; no diagnostic queue snapshot | unknown: loop_turn_options.agent_stage only emits the diagnostic mock queue when an iteration_end payload explicitly supplies it; this is not a public AgentSpec declaration. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| AgentSpec.native_tool_fallback | harn | dynamic: observed local fallback "reject"; normalization may override | crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__detect_native_fallback) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.nudge | harn | absent at the public input boundary; no concrete consumer resolved | crates/harn-stdlib/src/stdlib/workflow/options.harn (workflow-loop-key-domain) | unknown: options_types.AgentExecutionSpec declares an optional string. The inspected postturn recovery uses its owned feedback rather than reading this field. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.post_turn_callback | harn | absent; no callback verdict | crates/harn-stdlib/src/stdlib/agent/postturn.harn (__post_turn_callback_verdict) | unknown: postturn.__post_turn_callback_verdict returns kind none when the callback is absent. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.pre_turn_scope_classifier | harn | absent; no custom pre-turn classifier | crates/harn-stdlib/src/stdlib/agent/loop_turn_setup.harn (__agent_loop_turn_setup); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_callback_options) | unknown: options_public.agent_options reads the optional pre_turn_scope_classifier and projects it to internal runner options. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.prefetch_next_turn | harn | false; owner loop_run/loop_finalize/loop_resource_dispatch/loop_call_budget/loop_turn_scope | crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__loop_dispatch_options); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__tool_envelope); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_callback_options) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.profile | harn | tool_using for tool_using profile; options_formats.harn:15 owns other profiles | crates/harn-stdlib/src/stdlib/agent/options_public.harn (agent_loop_options) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.project_context_profile | harn | dynamic: observed local fallback {}; normalization may override | crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_context_profile_fragments); crates/harn-stdlib/src/stdlib/agent/skills.harn (__context_profile) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.project_root | harn | absent; context-profile root falls through to root, cwd, then current directory | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__context_profile_root) | unknown: options_validation.__context_profile_root resolves context_profile_root, project_root, root, cwd, then dot. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.retry | harn | enabled with three attempts | crates/harn-stdlib/src/stdlib/agent/retry.harn (__validate_agent_loop_retry); crates/harn-stdlib/src/stdlib/agent/retry.harn (__agent_loop_retry_config) | unknown: retry.__agent_loop_retry_config disables retries only for false or an explicit nil llm_retry fallback. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.run_id | harn | internal _run_id fallback; otherwise absent | crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__loop_dispatch_options); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__tool_envelope); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__run_structural_validator) | unknown: loop_tool_calls.__tool_envelope and __run_structural_validator project this precedence. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.shared_types | harn | dynamic: observed local fallback ""; normalization may override | crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_text_tool_contract_prompt) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.skill_catalog_prompt | harn | dynamic: observed local fallback ""; normalization may override | crates/harn-stdlib/src/stdlib/agent/preflight.harn (agent_build_turn_system_fragments) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.structural_validator | harn | absent; no custom structural validator | crates/harn-stdlib/src/stdlib/agent/loop_run.harn (__agent_loop_run); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_callback_options) | unknown: options_public.agent_options reads the optional structural_validator and projects it to internal runner options. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.tool_backoff_ms | harn | 1000; clamp to at least 1 | crates/harn-vm/src/llm/agent_host_primitives.rs (agent_primitive_option_int); crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__loop_dispatch_options) | unknown: agent_host_primitives uses the integer option or 1000 before clamping the tool retry delay. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.tool_caller | harn | absent; use ordinary tool dispatch | crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__loop_dispatch_options); crates/harn-stdlib/src/stdlib/agent/loop_run.harn (__agent_loop_run); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__invoke_tool); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_callback_options) | unknown: options_public.agent_options reads the optional tool_caller and projects it to internal runner options. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.tool_examples | harn | dynamic: observed local fallback ""; normalization may override | crates/harn-stdlib/src/stdlib/workflow/options.harn (workflow-loop-key-domain); crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_text_tool_contract_prompt) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.tool_format_override_reason | harn | absent; no explicit format override authority | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_str); crates/harn-stdlib/src/stdlib/agent/options_formats.harn (agent_tool_format_resolution) | unknown: options_formats.agent_tool_format_resolution and native extract require a nonempty reason to authorize the override. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.tool_retries | harn | 0 for tool_using profile; options_formats.harn:15 owns other profiles | crates/harn-vm/src/llm/agent_host_primitives.rs (agent_primitive_option_int); crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__loop_dispatch_options) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.tool_surface_narrowing | harn | dynamic: observed local fallback {}; normalization may override | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_callback_options); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (__tool_surface_narrowing_post_turn) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.turn_policy | harn | dynamic: observed local fallback {}; normalization may override | crates/harn-stdlib/src/stdlib/workflow/options.harn (workflow-loop-key-domain); crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_text_tool_contract_prompt) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.auto_compact | harn | false for idle daemon compaction | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compact_options); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_enabled); crates/harn-stdlib/src/stdlib/agent/daemon.harn (__daemon_compaction_summary) | unknown: daemon.__daemon_compaction_summary requires both consolidate_on_idle and auto_compact before invoking the callback. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.compact_callback | harn | absent; no idle compaction summary | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compact_options); crates/harn-stdlib/src/stdlib/agent/daemon.harn (__daemon_compaction_summary) | unknown: daemon.__daemon_compaction_summary returns nil when the callback is absent. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.compact_keep_first | harn | absent at the public input boundary; no concrete reader resolved | unknown: options_types.AgentLifecycleSpec declares the optional integer; the inspected compaction projection does not consume this spelling. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| AgentSpec.compact_keep_last | harn | absent; defer tail retention to the compaction engine | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_keep_last) | unknown: autocompact.__compaction_keep_last first reads compaction.keep_last_n or keep_last, then compact_keep_last, and otherwise returns nil. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.compact_strategy | harn | observation_mask when compaction is enabled without a policy strategy | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compact_options); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (agent_autocompact_if_needed) | unknown: autocompact.agent_autocompact_if_needed selects compaction policy strategy, compact_strategy, then observation_mask. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.compact_threshold | harn | absent; no standalone threshold override | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compact_options); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_enabled) | unknown: autocompact.__compact_options copies compact_threshold only when explicitly supplied and not already set by auto_compact. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.compaction | harn | absent; does not enable compaction by itself | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_keep_last); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_enabled); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (agent_autocompact_if_needed); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compact_options) | unknown: autocompact.__compaction_enabled returns false when auto_compact, compaction and compact_threshold are all absent. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.consolidate_on_idle | harn | false | crates/harn-vm/src/llm/daemon.rs (get); crates/harn-stdlib/src/stdlib/agent/daemon.harn (__daemon_compaction_summary); crates/harn-stdlib/src/stdlib/agent/daemon.harn (agent_daemon_step) | unknown: daemon.__daemon_compaction_summary and native daemon configuration enable only a true boolean. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.daemon | harn | false | crates/harn-stdlib/src/stdlib/agent/loop_finalize.harn (__agent_loop_finalize); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__text_family_toolless_turn); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__native_completion_context) | unknown: loop_finalize.__agent_loop_finalize snapshots only an enabled daemon; postturn uses absent as false. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.idle_watchdog_attempts | harn | absent at native decoding | crates/harn-vm/src/llm/daemon.rs (get) | unknown: llm.daemon parses an optional nonnegative integer without supplying an attempt limit. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.persist_path | harn | absent; effective persistence path falls back to resume_path | crates/harn-vm/src/llm/daemon.rs (get) | unknown: native daemon.parse_daemon_loop_config omits empty paths and DaemonLoopConfig.effective_persist_path supplies the resume fallback. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.resume_path | harn | absent; no explicit resume path | crates/harn-vm/src/llm/daemon.rs (get) | unknown: native daemon.parse_daemon_loop_config keeps only a nonempty supplied path. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.stall_checkpoint | harn | fresh checkpoint for the current session | crates/harn-stdlib/src/stdlib/agent/loop_run.harn (__agent_loop_run) | unknown: loop_run.__agent_loop_run calls agent_stall_initial_checkpoint when no checkpoint is supplied and rejects another session identity. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.stall_diagnostics | harn | disabled; enabling an object inherits AgentStallConfig defaults | crates/harn-stdlib/src/stdlib/workflow/options.harn (workflow-loop-key-domain); crates/harn-stdlib/src/stdlib/agent/loop_lifecycle.harn (agent_loop_run_settings); crates/harn-stdlib/src/stdlib/agent/loop_run.harn (__agent_loop_run); crates/harn-stdlib/src/stdlib/agent/monologue_actuation.harn (agent_monologue_actuation_take_for_turn) | unknown: stall_config.__agent_stall_config returns __agent_stall_default_config for nil, whose enabled field is false. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.tool_precheck | harn | absent; no pre-approval precheck | crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__loop_dispatch_options) | unknown: agent_session_host.session_policies pushes the precheck only when an explicit closure parses; tool_precheck_loop conformance proves a precheck passed to agent_loop denies a call. | KEEP-with-expiry | The embedder's pre-approval deny seam; forwarded to dispatch so the session policy guard installs it. / 2026-12-31 |
| AgentSpec.wake_interval_ms | harn | 0; timer wake disabled | crates/harn-vm/src/llm/daemon.rs (get); crates/harn-stdlib/src/stdlib/agent/daemon.harn (agent_daemon_step) | unknown: daemon.agent_daemon_step supplies zero; the native daemon parser accepts only positive wake intervals. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.watch_paths | harn | empty list | crates/harn-vm/src/llm/daemon.rs (get) | unknown: native daemon.parse_daemon_loop_config normalizes an absent path input to an empty vector. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentLifecycleToolsOptions.agent_await_resumption_enabled | harn | true | crates/harn-stdlib/src/stdlib/agent/workers.harn (__agent_lifecycle_await_enabled) | unknown: workers.__agent_lifecycle_await_enabled enables the structural await control when the setting is absent. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentLifecycleToolsOptions.subagent_tools | harn | false; existing sub_agent_run or spawn_agent tool entries also establish capability | crates/harn-stdlib/src/stdlib/agent/workers.harn (__agent_lifecycle_has_subagent_capability) | unknown: workers.__agent_lifecycle_has_subagent_capability checks both explicit settings and the tool registry. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentLifecycleToolsOptions.subagents | harn | false; existing sub_agent_run or spawn_agent tool entries also establish capability | crates/harn-stdlib/src/stdlib/agent/workers.harn (__agent_lifecycle_has_subagent_capability) | unknown: workers.__agent_lifecycle_has_subagent_capability checks both explicit settings and the tool registry. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentLoopRetryOptions.backoff | harn | exponential | crates/harn-stdlib/src/stdlib/llm/resilience.harn (with_retry) | unknown: llm.resilience.with_retry destructures its retry configuration with this fallback. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentLoopRetryOptions.base_ms | harn | 250 | crates/harn-stdlib/src/stdlib/llm/resilience.harn (with_retry) | unknown: llm.resilience.with_retry destructures its retry configuration with this fallback. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentLoopRetryOptions.honor_retry_after | harn | true | crates/harn-stdlib/src/stdlib/llm/resilience.harn (with_retry) | unknown: llm.resilience.with_retry destructures its retry configuration with this fallback. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentLoopRetryOptions.jitter | harn | full | crates/harn-stdlib/src/stdlib/llm/resilience.harn (with_retry) | unknown: llm.resilience.with_retry destructures its retry configuration with this fallback. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentLoopRetryOptions.max_attempts | harn | 3 | crates/harn-stdlib/src/stdlib/llm/resilience.harn (with_retry) | unknown: agent.retry supplies three attempts and llm.resilience.with_retry uses the same fallback. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentLoopRetryOptions.max_ms | harn | 8000 | crates/harn-stdlib/src/stdlib/llm/resilience.harn (with_retry) | unknown: llm.resilience.with_retry destructures its retry configuration with this fallback. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentLoopRetryOptions.predicate | harn | agent_loop_default_retry_predicate | crates/harn-stdlib/src/stdlib/agent/llm_dispatch.harn (__dispatch_invoke_once); crates/harn-stdlib/src/stdlib/agent/retry.harn (__agent_loop_retry_with_default_predicate); crates/harn-stdlib/src/stdlib/llm/resilience.harn (with_retry) | unknown: agent.retry.__agent_loop_retry_with_default_predicate fills only an absent predicate. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.anchor | harn | dynamic: absent unless sub_agent_run supplies it; the host then resolves the child's workspace scope from it | unknown: Host-injected child-run workspace anchor. Read by the sub-agent request parser, not by the loop. | KEEP-with-expiry | Lineage input the host writes into the child's option dict; retain until the worker request carries it on its own channel rather than through loop options. / 2026-09-13 | |
| AgentSpec.anthropic_beta_features | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.api_mode | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.audio | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.background | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.budget | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-stdlib/src/stdlib/agent/budget.harn (__budget_envelope) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.cache | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.call_role | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_str); crates/harn-stdlib/src/stdlib/agent/loop_support.harn (__agent_loop_effective_llm_options) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.capabilities | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.compact | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.context_profile | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_context_profile_fragments); crates/harn-stdlib/src/stdlib/agent/preflight.harn (__with_prompt_fragment); crates/harn-stdlib/src/stdlib/agent/skills.harn (__context_profile) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.data_controls | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.effort | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.frequency_penalty | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/cache.rs (super::helpers::opt_float); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_float) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.history | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 | |
| AgentSpec.idle_timeout_ms | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_int) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.include | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_str_list) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.interleaved_thinking | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.logit_bias | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.logprobs | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.max_tokens | harn | dynamic: observed local fallback 0; normalization may override | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/cache.rs (super::helpers::opt_int); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_int); crates/harn-stdlib/src/stdlib/agent/loop_foundation.harn (__invoke_llm_with_autocontinue); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__run_structural_validator) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.max_tool_calls | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_int) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.messages | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-stdlib/src/stdlib/agent/llm_dispatch.harn (__dispatch_request_has_payload) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.metadata | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.min_p | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_float) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.mirostat | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.mock_scope | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_str); crates/harn-stdlib/src/stdlib/agent/loop_support.harn (__agent_loop_effective_llm_options) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.operation_timeout_ms | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.output | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-stdlib/src/stdlib/agent/llm_dispatch.harn (__dispatch_structured_output_schema); crates/harn-stdlib/src/stdlib/agent/loop_support.harn (__agent_loop_output_contract) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.parallel_tool_calls | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.parent_run_id | harn | dynamic: absent for a top-level run; set by the host when a run is spawned from another | unknown: Host-injected run lineage. agents_sub_agent_lifecycle.normalize_run_identity writes it into the child option dict; worker and workflow records preserve parent-run linkage. | KEEP-with-expiry | Provenance a fan-out is reconstructed from; retain until worker lineage moves off the loop option dict. / 2026-09-13 | |
| AgentSpec.parent_session_id | harn | dynamic: absent for a top-level run; set by the host when a run is spawned from another | unknown: Host-injected session lineage. Read at the session journal and at session-bundle snapshot resolution. | KEEP-with-expiry | Provenance a fan-out is reconstructed from; retain until worker lineage moves off the loop option dict. / 2026-09-13 | |
| AgentSpec.pdf | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.prediction | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.prefill | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-stdlib/src/stdlib/agent/prefill.harn (agent_take_one_shot_prefill) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.presence_penalty | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/cache.rs (super::helpers::opt_float); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_float) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.previous_response_id | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_str) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.prompt_cache_ttl | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.provider_options | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.provider_tools | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.reasoning_policy | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-stdlib/src/stdlib/workflow/options.harn (workflow-loop-key-domain); crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.reasoning_scale | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-stdlib/src/stdlib/workflow/options.harn (workflow-loop-key-domain); crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.reasoning_task | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-stdlib/src/stdlib/workflow/options.harn (workflow-loop-key-domain); crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.repair | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.repetition_penalty | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_float) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.retries | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.schema_recover | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.schema_retries | harn | 0 for tool_using profile; options_formats.harn:15 owns other profiles | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/call.rs (helpers::opt_int) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.schema_retry_nudge | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.seed | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_int) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.session_id | harn | dynamic: observed local fallback ""; normalization may override | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/agent_host_primitives.rs (agent_primitive_option_str); crates/harn-vm/src/llm/agent_session_host/lifecycle.rs (opt_str); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_str); crates/harn-stdlib/src/stdlib/agent/llm_dispatch.harn (__dispatch_emit_call_start); crates/harn-stdlib/src/stdlib/agent/llm_dispatch.harn (__dispatch_invoke_once); crates/harn-stdlib/src/stdlib/agent/loop_resource_dispatch.harn (__tool_batch_emit_receipt); crates/harn-stdlib/src/stdlib/agent/loop_resource_dispatch.harn (__tool_batch_plan); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__tool_envelope) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.session_type | harn | dynamic: unset for a top-level run; the host sets "subagent" when the loop is entered through sub_agent_run | unknown: Host-injected journal classification. Read at the session journal boundary, not by the loop. | KEEP-with-expiry | Classifies the transcript the journal opens; retain until the journal takes it from run identity rather than from loop options. / 2026-09-13 | |
| AgentSpec.speed | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_str) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.stop | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_str_list) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.stop_at_tool_call | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_bool) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.store | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.stream | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.structural_experiment | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.system | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_primary_system_text); crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_has_system_prompt_options) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.temperature | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/cache.rs (super::helpers::opt_float); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_float) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.thinking | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.timeout_ms | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_int) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.tool_choice | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.tool_format | harn | dynamic: observed local fallback ""; normalization may override | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/agent_config.rs (opt_str); crates/harn-vm/src/llm/agent_session_host/lifecycle.rs (opt_str); crates/harn-vm/src/llm/call.rs (helpers::opt_str); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_str); crates/harn-stdlib/src/stdlib/agent/llm_dispatch.harn (__dispatch_emit_call_start); crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__loop_dispatch_options); crates/harn-stdlib/src/stdlib/agent/loop_foundation.harn (__autocontinue_should_continue); crates/harn-stdlib/src/stdlib/agent/loop_lifecycle.harn (agent_loop_run_settings); crates/harn-stdlib/src/stdlib/agent/loop_run.harn (__agent_loop_run); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__detect_native_fallback); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__run_structural_validator); crates/harn-stdlib/src/stdlib/agent/loop_turn_options.harn (agent_direct_llm_options); crates/harn-stdlib/src/stdlib/agent/loop_turn_scope.harn (__agent_loop_final_wrapup); crates/harn-stdlib/src/stdlib/agent/loop_turn_scope.harn (__agent_loop_prepare_output_contract); crates/harn-stdlib/src/stdlib/agent/options_formats.harn (__explicit_tool_format); crates/harn-stdlib/src/stdlib/agent/options_formats.harn (__capability_gap_event); crates/harn-stdlib/src/stdlib/agent/options_public.harn (agent_refresh_tool_format_for_route); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__native_tools_complete_naturally); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__native_completion_context); crates/harn-stdlib/src/stdlib/agent/postturn.harn (agent_extract_tool_calls); crates/harn-stdlib/src/stdlib/agent/postturn.harn (agent_compute_post_turn); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__text_family_toolless_turn); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__classify_missing_tool_call); crates/harn-stdlib/src/stdlib/agent/tool_annotations.harn (agent_collapse_duplicate_read_calls) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.tool_search | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-stdlib/src/stdlib/agent/tool_search.harn (__tool_search_client_requested); crates/harn-stdlib/src/stdlib/agent/tool_search.harn (__tool_search_initial_state) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.tools | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-stdlib/src/stdlib/agent/completion_claim.harn (agent_completion_claim_apply_options); crates/harn-stdlib/src/stdlib/agent/judge_evidence.harn (__judge_tool_entries); crates/harn-stdlib/src/stdlib/agent/loop.harn (agent_loop); crates/harn-stdlib/src/stdlib/agent/loop_foundation.harn (__autocontinue_should_continue); crates/harn-stdlib/src/stdlib/agent/loop_resource_dispatch.harn (__dispatch_tool_calls); crates/harn-stdlib/src/stdlib/agent/loop_run.harn (__agent_loop_run); crates/harn-stdlib/src/stdlib/agent/loop_support.harn (__agent_loop_next_tool_output_contract); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__parse_feedback_has_non_structural_tools); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__run_structural_validator); crates/harn-stdlib/src/stdlib/agent/loop_turn_projection.harn (agent_loop_turn_projection); crates/harn-stdlib/src/stdlib/agent/loop_turn_scope.harn (__agent_loop_final_wrapup); crates/harn-stdlib/src/stdlib/agent/mcp.harn (__mcp_admit_tools); crates/harn-stdlib/src/stdlib/agent/monologue_actuation.harn (agent_monologue_actuation_take_for_turn); crates/harn-stdlib/src/stdlib/agent/options_public.harn (agent_refresh_tool_format_for_route); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__native_tools_complete_naturally); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__classify_missing_tool_call); crates/harn-stdlib/src/stdlib/agent/postturn.harn (agent_extract_tool_calls); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__native_completion_context); crates/harn-stdlib/src/stdlib/agent/postturn.harn (agent_compute_post_turn); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__maybe_inject_action_nudge); crates/harn-stdlib/src/stdlib/agent/preflight.harn (agent_has_tools); crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_text_tool_contract_prompt); crates/harn-stdlib/src/stdlib/agent/preflight.harn (agent_build_turn_system_fragments); crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_json_tool_contract_prompt); crates/harn-stdlib/src/stdlib/agent/progress.harn (agent_progress_apply_options); crates/harn-stdlib/src/stdlib/agent/skills.harn (__with_load_skill_tool); crates/harn-stdlib/src/stdlib/agent/skills.harn (__skill_scoped_tools); crates/harn-stdlib/src/stdlib/agent/skills.harn (__served_tool_groups); crates/harn-stdlib/src/stdlib/agent/stance.harn (__stance_register_escape_tool); crates/harn-stdlib/src/stdlib/agent/stance.harn (agent_stance_apply); crates/harn-stdlib/src/stdlib/agent/step_judge.harn (__step_is_read_only); crates/harn-stdlib/src/stdlib/agent/tool_search.harn (__tool_search_initial_state); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (__tool_surface_current_entries); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (__tool_surface_claim_authority); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (agent_apply_tool_surface_narrowing) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.top_k | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/cache.rs (super::helpers::opt_int); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_int) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.top_p | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/cache.rs (super::helpers::opt_float); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_float) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.truncation | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_str) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.verbosity | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.video | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.vision | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_bool) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.llm_transcript_dir | harn | absent; no explicit transcript-directory override | crates/harn-vm/src/llm/agent_session_host/lifecycle.rs (opt_str) | unknown: native lifecycle converts an absent or empty llm_transcript_dir to no override. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.on_delta | harn | absent; no custom delta callback | crates/harn-stdlib/src/stdlib/agent/loop_finalize.harn (__agent_loop_project_terminal_result); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_callback_options) | unknown: options_public.agent_options reads the optional callback and projects it into _on_delta without supplying one. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.purpose_labels | harn | disabled | crates/harn-stdlib/src/stdlib/agent/loop.harn (agent_loop); crates/harn-stdlib/src/stdlib/agent/loop_purpose_labels.harn (__purpose_label_arm); crates/harn-stdlib/src/stdlib/agent/loop_turn_setup.harn (__agent_loop_turn_setup) | unknown: purpose_labels.agent_purpose_label_config returns disabled configuration when no setting is supplied. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentStopOptions.graceful | harn | false | crates/harn-stdlib/src/stdlib/agent/workers.harn (__agent_stop_options) | unknown: workers.__agent_stop_options normalizes the public stop request. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentStopOptions.reason | harn | absent; an empty or whitespace-only reason is removed | crates/harn-stdlib/src/stdlib/agent/workers.harn (__agent_stop_options) | unknown: workers.__agent_stop_options trims the reason and omits an empty result. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CommandWaitOptions.auto_resolve | harn | kill unless explicitly release; owner command_ledger.harn:107 | crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_wait_normalize); crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_ledger_apply_ceiling) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CommandWaitOptions.decision_base_ms | harn | 30000; owner command_ledger.harn:107 | crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (__cl_new_row); crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_wait_normalize) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CommandWaitOptions.decision_cap_ms | harn | 300000; owner command_ledger.harn:107 | crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (__cl_advance_schedule_row); crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_wait_normalize); crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_ledger_after_digest) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CommandWaitOptions.decision_multiplier | harn | 2; owner command_ledger.harn:107 | crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (__cl_advance_schedule_row); crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_wait_normalize); crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_ledger_after_digest) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CommandWaitOptions.hold_reentry_budget | harn | 8; owner command_ledger.harn:107 | crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_ledger_hold); crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_wait_normalize) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CommandWaitOptions.hold_reentry_max_tokens | harn | 96; owner command_ledger.harn:107 | crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_wait_normalize); crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_ledger_hold) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CommandWaitOptions.inline_window_ms | harn | 10000; owner command_ledger.harn:107 | crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_wait_normalize) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CommandWaitOptions.max_awaited_wall_ms | harn | 900000; owner command_ledger.harn:107 | crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_wait_normalize); crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (__cl_earliest_deadline); crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (__cl_ceiling_breaches) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CommandWaitOptions.silence_floor_ms | harn | 300000; owner command_ledger.harn:107 | crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_wait_normalize); crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (__cl_row_fires) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CommandWaitOptions.stall_after_ms | harn | 300000; owner command_ledger.harn:107 | crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (__cl_row_fires); crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_wait_normalize); crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (__cl_decision_wording); crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_ledger_after_digest) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CommandWaitOptions.wording | harn | {}; owner command_ledger.harn:107 | crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (command_wait_normalize); crates/harn-stdlib/src/stdlib/agent/command_ledger.harn (__cl_decision_wording) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompactionPolicy.author | harn | absent | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_policy_merge_fields); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_policy_event_fields); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__has_compaction_policy) | unknown: autocompact.__compaction_policy_merge_fields copies only explicitly supplied attribution. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompactionPolicy.drop | harn | empty list | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_policy_merge_fields); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_policy_from_options); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_instruction_mode); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__has_compaction_policy) | unknown: autocompact.__compaction_policy_list normalizes absent exclusion content to an empty list. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompactionPolicy.extend_default_instructions | harn | true in compaction_policy; absent when no policy is configured | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_policy_merge_fields); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (compaction_policy); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_instruction_mode); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__has_compaction_policy) | unknown: autocompact.compaction_policy defaults a nonempty policy to extending the standard instructions. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompactionPolicy.instructions | harn | absent; use default compaction instructions | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__has_compaction_policy); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_policy_merge_fields); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_instruction_mode) | unknown: autocompact.compaction_policy adds instructions only when supplied. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompactionPolicy.mode | harn | absent | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_policy_merge_fields); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__has_compaction_policy) | unknown: autocompact.__compaction_policy_merge_fields copies only an explicitly supplied mode. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompactionPolicy.preserve | harn | empty list | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_policy_merge_fields); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_policy_from_options); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_instruction_mode); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__has_compaction_policy) | unknown: autocompact.__compaction_policy_list normalizes absent preservation content to an empty list. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| CompactionPolicy.scope | harn | absent | crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compaction_policy_merge_fields); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__has_compaction_policy) | unknown: autocompact.__compaction_policy_merge_fields copies only an explicitly supplied scope. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ConsecutiveFailureBudget.kinds | harn | transient, rate_limit, provider_5xx | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_consecutive_failure_budget) | unknown: options_validation.__normalize_consecutive_failure_budget supplies these transient failure classes. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ConsecutiveFailureBudget.max | harn | required when consecutive_failures is configured | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_consecutive_failure_budget) | unknown: options_validation.__normalize_consecutive_failure_budget rejects a configured object without max. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ConsecutiveFailureBudget.paused_for_ms | harn | 0 | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_consecutive_failure_budget) | unknown: options_validation.__normalize_consecutive_failure_budget supplies a zero pause duration. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| DetectorSpec.enabled | harn | dynamic: observed local fallback true; normalization may override | crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (detector_spec_to_stall) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| DetectorSpec.token_runaway.fallback | harn | 0.0; no token ceiling without positive history or fallback | crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (token_runaway_resolve_cap); crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (token_runaway_decision) | unknown: stall_detectors.token_runaway_decision supplies zero and returns no_cap when the resolved ceiling is nonpositive. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| DetectorSpec.token_runaway.hard_multiple | harn | 3.0 | crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (token_runaway_decision) | unknown: stall_detectors.token_runaway_decision uses TOKEN_RUNAWAY_HARD_OVERSHOOT_MULTIPLE. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| DetectorSpec.hard_stop_after_trips | harn | 3 via the native stall configuration | crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (detector_spec_to_stall) | unknown: stall_detectors.detector_spec_to_stall overrides hard_stop_after_trips only when supplied; stall_config defaults it to STALL_HARD_STOP_AFTER_TRIPS. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| DetectorSpec.loop | harn | absent; preserve native loop-detector defaults | crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (detector_spec_to_stall) | unknown: stall_detectors.detector_spec_to_stall overrides repeat and ping-pong only when supplied. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| DetectorSpec.token_runaway.median | harn | 0.0; no median history | crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (token_runaway_resolve_cap); crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (token_runaway_decision) | unknown: stall_detectors.token_runaway_decision supplies zero to token_runaway_resolve_cap when no history is supplied. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| DetectorSpec.no_progress.messages | harn | 3 via the native stall configuration | crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (detector_spec_to_stall) | unknown: stall_detectors.detector_spec_to_stall leaves no_progress_messages unchanged when absent; stall_config defaults it to STALL_NO_PROGRESS_MESSAGES. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| DetectorSpec.no_progress | harn | absent; preserve native no-progress default | crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (detector_spec_to_stall) | unknown: stall_detectors.detector_spec_to_stall overrides no_progress_messages only when supplied. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| DetectorSpec.loop.ping_pong_cycles | harn | 6 via the native stall configuration | crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (detector_spec_to_stall) | unknown: stall_detectors.detector_spec_to_stall leaves ping_pong_cycles unchanged when absent; stall_config defaults it to STALL_PING_PONG_CYCLES. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| DetectorSpec.loop.repeat | harn | 4 via the native stall configuration | crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (detector_spec_to_stall) | unknown: stall_detectors.detector_spec_to_stall leaves repeat_same_observation unchanged when absent; stall_config defaults it to STALL_REPEAT_SAME_OBSERVATION. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| DetectorSpec.stuck.same_diagnostic | harn | absent; does not independently enable repair-aware detection | crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (detector_spec_to_stall) | unknown: stall_detectors.detector_spec_to_stall sets repair_aware only for an explicit same_diagnostic value; native stall configuration owns its own defaults. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| DetectorSpec.stuck.same_error | harn | 3 via the native stall configuration | crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (detector_spec_to_stall) | unknown: stall_detectors.detector_spec_to_stall leaves repeat_same_error unchanged when absent; stall_config defaults it to STALL_REPEAT_SAME_ERROR. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| DetectorSpec.token_runaway.sigma | harn | 2.0 | crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (token_runaway_resolve_cap); crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (token_runaway_decision) | unknown: stall_detectors.token_runaway_decision uses TOKEN_RUNAWAY_DEFAULT_SIGMA. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| DetectorSpec.token_runaway.stddev | harn | 0.0; use the thin-history margin | crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (token_runaway_resolve_cap); crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (token_runaway_decision) | unknown: stall_detectors.token_runaway_resolve_cap uses a 0.6 relative margin when standard deviation is nonpositive. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| DetectorSpec.stuck | harn | absent; preserve native stuck-detector defaults | crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (detector_spec_to_stall) | unknown: stall_detectors.detector_spec_to_stall overrides error/diagnostic behavior only when supplied. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| DetectorSpec.token_runaway | harn | absent; no token-runaway post-turn overlay | crates/harn-stdlib/src/stdlib/agent/stall_detectors.harn (detector_spec_token_runaway) | unknown: stall_detectors.unified_detectors_post_turn returns nil when token_runaway is absent. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| HARN_AGENT_TOOL_FORMAT | harn | dynamic: provider catalog default | crates/harn-vm/src/orchestration/stage_options.rs (non_empty_env) | unknown: Native workflow stage preparation injects into std/workflow/options; static only | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| HARN_LLM_MODEL | harn | dynamic: configured model | crates/harn-vm/src/llm/config_builtins/healthcheck_builtins.rs (crate::test_env::env_var_seamed); crates/harn-vm/src/orchestration/stage_options.rs (non_empty_env) | unknown: Native workflow route/default owner; CLI try also reads at try_cmd.rs:51,59; static only | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| HARN_LLM_PROVIDER | harn | dynamic: configured provider | crates/harn-vm/src/orchestration/stage_options.rs (non_empty_env) | unknown: Native workflow route/default owner; CLI try also reads at try_cmd.rs:37,48; static only | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| HARN_TRY_MAX_ITERS | harn | {"kind": "value", "value": 5} | crates/harn-stdlib/src/stdlib/cli/try.harn (get_or) | unknown: commands/try_cmd.rs injects environment; cli/try.harn:49 passes max_iterations into agent_loop. This proves harn try source wiring, not downstream canonical headless binding. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| HARN_TRY_MODEL | harn | {"kind": "dynamic", "reason": "CLI routing/default selection or absent optional override"} | crates/harn-stdlib/src/stdlib/cli/try.harn (__trimmed_env) | unknown: commands/try_cmd.rs injects environment; cli/try.harn:49 passes model into agent_loop. This proves harn try source wiring, not downstream canonical headless binding. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| HARN_TRY_OVERRIDE_REASON | harn | {"kind": "dynamic", "reason": "CLI routing/default selection or absent optional override"} | crates/harn-stdlib/src/stdlib/cli/try.harn (__trimmed_env) | unknown: commands/try_cmd.rs injects environment; cli/try.harn:49 passes tool_format_override_reason into agent_loop. This proves harn try source wiring, not downstream canonical headless binding. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| HARN_TRY_PROVIDER | harn | {"kind": "dynamic", "reason": "CLI routing/default selection or absent optional override"} | crates/harn-stdlib/src/stdlib/cli/try.harn (__trimmed_env) | unknown: commands/try_cmd.rs injects environment; cli/try.harn:49 passes provider into agent_loop. This proves harn try source wiring, not downstream canonical headless binding. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| HARN_TRY_TOOL_FORMAT | harn | {"kind": "dynamic", "reason": "CLI routing/default selection or absent optional override"} | crates/harn-stdlib/src/stdlib/cli/try.harn (__trimmed_env) | unknown: commands/try_cmd.rs injects environment; cli/try.harn:49 passes tool_format into agent_loop. This proves harn try source wiring, not downstream canonical headless binding. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| IterationBudget.consecutive_failures | harn | nil; owner options_public.harn:47 | crates/harn-stdlib/src/stdlib/agent/options_public.harn (__normalize_iteration_budget) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| IterationBudget.expose_decisions | harn | false; owner options_public.harn:47 | crates/harn-stdlib/src/stdlib/agent/options_public.harn (__normalize_iteration_budget) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| IterationBudget.extend_by | harn | 0 in fixed mode; adaptive mode resolves caller value; owner options_public.harn:47 | crates/harn-stdlib/src/stdlib/agent/options_public.harn (__normalize_iteration_budget) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| IterationBudget.initial | harn | dynamic: max_iterations/profile, otherwise50; owner options_public.harn:47 | crates/harn-stdlib/src/stdlib/agent/loop_lifecycle.harn (agent_loop_run_settings); crates/harn-stdlib/src/stdlib/agent/loop_run.harn (__agent_loop_run); crates/harn-stdlib/src/stdlib/agent/options_public.harn (__normalize_iteration_budget) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| IterationBudget.max | harn | dynamic: max_iterations/profile, otherwise50; owner options_public.harn:47 | crates/harn-stdlib/src/stdlib/agent/options_public.harn (__normalize_iteration_budget) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| IterationBudget.mode | harn | fixed; owner options_public.harn:47 | crates/harn-stdlib/src/stdlib/agent/options_public.harn (__normalize_iteration_budget) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| IterationBudget.progress_window | harn | 0 in fixed mode; adaptive mode resolves caller value; owner options_public.harn:47 | crates/harn-stdlib/src/stdlib/agent/options_public.harn (__normalize_iteration_budget) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| IterationBudget.total_cost_usd | harn | nil; owner options_public.harn:47 | crates/harn-stdlib/src/stdlib/agent/options_public.harn (__normalize_iteration_budget) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| IterationBudget.wall_clock_ms | harn | nil; owner options_public.harn:47 | crates/harn-stdlib/src/stdlib/agent/options_public.harn (__normalize_iteration_budget) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| MissingToolCallRecoveryOptions.evaluation | harn | absent; resolve the loop route and select its decision backend | crates/harn-stdlib/src/stdlib/llm/missing_tool_call.harn (__missing_tool_call_policy) | yes: __missing_tool_call_policy accepts an explicit EvaluationPolicy or resolves the configured model route. Consumer fixtures exercise both backends without provider fallback. | KEEP-with-expiry | The typed policy selects the classifier backend and route; the consumer owns confidence thresholding. / 2026-11-10 |
| MissingToolCallRecoveryOptions.classifier | harn | absent; use the built-in batched evaluation | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_missing_tool_call_recovery); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__missing_tool_call_recovery_classifier); crates/harn-stdlib/src/stdlib/llm/missing_tool_call.harn (missing_tool_call_classifier) | unknown: llm.missing_tool_call.missing_tool_call_classifier invokes the custom closure only when supplied. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| MissingToolCallRecoveryOptions.confidence_threshold | harn | 0.65 | crates/harn-stdlib/src/stdlib/llm/missing_tool_call.harn (missing_tool_call_classifier) | unknown: llm.missing_tool_call.__missing_tool_call_threshold supplies and validates the confidence threshold. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| MissingToolCallRecoveryOptions.effort | harn | none on the inherited chat route | crates/harn-stdlib/src/stdlib/llm/missing_tool_call.harn (__missing_tool_call_policy) | unknown: __missing_tool_call_policy sets effort for structured evaluation; explicit evaluation policy owns its settings. Native policies omit chat options. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| MissingToolCallRecoveryOptions.enabled | harn | true; a false parent missing_tool_call_recovery setting disables recovery | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_missing_tool_call_recovery); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__missing_tool_call_recovery_config); crates/harn-stdlib/src/stdlib/llm/missing_tool_call.harn (missing_tool_call_classifier) | unknown: postturn.__missing_tool_call_recovery_config and llm.missing_tool_call.missing_tool_call_classifier both enable omitted configuration. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| MissingToolCallRecoveryOptions.max_tokens | harn | 192 | crates/harn-stdlib/src/stdlib/llm/missing_tool_call.harn (__missing_tool_call_policy) | unknown: __missing_tool_call_policy supplies the inherited structured evaluation output bound. Consumer mocks assert an overridden cap reaches the one physical request. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| MissingToolCallRecoveryOptions.model | harn | inherit runner model; standalone classifier omits the model for provider resolution | crates/harn-stdlib/src/stdlib/agent/postturn.harn (__missing_tool_call_recovery_config); crates/harn-stdlib/src/stdlib/llm/missing_tool_call.harn (missing_tool_call_classifier); crates/harn-stdlib/src/stdlib/llm/missing_tool_call.harn (__missing_tool_call_policy) | unknown: postturn.__missing_tool_call_recovery_config copies the actor model only when classifier configuration omits it. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| MissingToolCallRecoveryOptions.provider | harn | inherit runner provider; standalone classifier omits the provider for normal resolution | crates/harn-stdlib/src/stdlib/agent/postturn.harn (__missing_tool_call_recovery_config); crates/harn-stdlib/src/stdlib/llm/missing_tool_call.harn (__missing_tool_call_policy) | unknown: postturn.__missing_tool_call_recovery_config copies the actor provider only when classifier configuration omits it. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| MissingToolCallRecoveryOptions.seed | harn | absent; provider default | crates/harn-stdlib/src/stdlib/llm/missing_tool_call.harn (__missing_tool_call_policy) | unknown: __missing_tool_call_policy forwards seed only when supplied on the inherited chat route; consumer mocks assert the seed reaches the physical request. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| MissingToolCallRecoveryOptions.temperature | harn | 0.0 | crates/harn-stdlib/src/stdlib/llm/missing_tool_call.harn (__missing_tool_call_policy) | unknown: llm.missing_tool_call.missing_tool_call_classifier supplies the classifier sampling temperature. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| MissingToolCallRecoveryOptions.timeout_ms | harn | absent; checkpoint/provider default | crates/harn-stdlib/src/stdlib/llm/missing_tool_call.harn (__missing_tool_call_policy) | unknown: __missing_tool_call_policy forwards timeout_ms only when supplied on the inherited chat route. The evaluator owns transport option admission. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| MissingToolCallRecoveryOptions.top_p | harn | absent; provider default | crates/harn-stdlib/src/stdlib/llm/missing_tool_call.harn (__missing_tool_call_policy) | unknown: __missing_tool_call_policy forwards top_p only when supplied on the inherited chat route; consumer mocks assert sampling reaches the physical request. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ModelPolicySpec.iteration_budget | harn | absent; use the stage max_iterations bound | unknown: orchestration.policy.types ModelPolicy defaults iteration_budget to None; workflow.options omits nil keys. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| ModelPolicySpec.max_iterations | harn | 16 | crates/harn-stdlib/src/stdlib/workflow/options.harn (__workflow_agent_loop_options) | unknown: workflow.options.__workflow_agent_loop_options sets the workflow stage iteration bound. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ModelPolicySpec.max_nudges | harn | 3 | crates/harn-stdlib/src/stdlib/workflow/options.harn (__workflow_agent_loop_options) | unknown: workflow.options.__workflow_agent_loop_options sets the workflow stage nudge bound. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ModelPolicySpec.max_tokens | harn | absent; provider/model defaults apply | unknown: orchestration.policy.types ModelPolicy defaults max_tokens to None; workflow.options omits nil model keys. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| ModelPolicySpec.model | harn | absent; inherited model resolution | unknown: orchestration.policy.types ModelPolicy defaults model to None; workflow.options omits nil model keys. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| ModelPolicySpec.model_tier | harn | absent; no stage tier override | unknown: orchestration.policy.types ModelPolicy defaults model_tier to None; workflow.options omits nil model keys. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| ModelPolicySpec.native_tool_fallback | harn | reject | crates/harn-stdlib/src/stdlib/workflow/options.harn (__workflow_agent_loop_options) | unknown: workflow.options.__workflow_native_tool_fallback resolves an absent policy. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ModelPolicySpec.nudge | harn | absent; runner default nudge | unknown: orchestration.policy.types ModelPolicy defaults nudge to None; workflow.options omits nil loop keys. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| ModelPolicySpec.post_turn_callback | harn | absent; no stage callback | unknown: orchestration.policy.types ModelPolicy defaults post_turn_callback to None. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| ModelPolicySpec.provider | harn | absent; inherited provider resolution | unknown: orchestration.policy.types ModelPolicy defaults provider to None; workflow.options omits nil model keys. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| ModelPolicySpec.require_successful_tools | harn | absent; no stage successful-tool clauses | unknown: orchestration.policy.types ModelPolicy defaults require_successful_tools to None. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| ModelPolicySpec.stop_after_successful_tools | harn | absent; no tool-triggered stage stop | unknown: orchestration.policy.types ModelPolicy defaults stop_after_successful_tools to None. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| ModelPolicySpec.temperature | harn | absent; provider/model defaults apply | unknown: orchestration.policy.types ModelPolicy defaults temperature to None; workflow.options omits nil model keys. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| ModelPolicySpec.tool_examples | harn | absent; no stage examples | unknown: orchestration.policy.types ModelPolicy defaults tool_examples to None. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| ModelPolicySpec.tool_format | harn | host environment format, then host default format, then text | crates/harn-stdlib/src/stdlib/workflow/options.harn (__workflow_stage_tool_format) | unknown: workflow.options.__workflow_stage_tool_format resolves this precedence. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ModelPolicySpec.turn_policy | harn | absent; no stage turn-policy override | unknown: orchestration.policy.types ModelPolicy defaults turn_policy to None. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| PurposeLabelConfig.delivery | harn | system | crates/harn-stdlib/src/stdlib/agent/purpose_labels.harn (agent_purpose_label_turn_nudge); crates/harn-stdlib/src/stdlib/agent/purpose_labels.harn (agent_purpose_label_prefill); crates/harn-stdlib/src/stdlib/agent/purpose_labels.harn (agent_purpose_label_extract); crates/harn-stdlib/src/stdlib/agent/purpose_labels.harn (agent_purpose_label_config); crates/harn-stdlib/src/stdlib/agent/purpose_labels.harn (agent_purpose_label_prompt_fragment) | unknown: purpose_labels.agent_purpose_label_config selects the default delivery channel. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| PurposeLabelConfig.enabled | harn | false when omitted; true for a supplied configuration object | crates/harn-stdlib/src/stdlib/agent/purpose_labels.harn (agent_purpose_label_turn_nudge); crates/harn-stdlib/src/stdlib/agent/purpose_labels.harn (agent_purpose_label_prefill); crates/harn-stdlib/src/stdlib/agent/purpose_labels.harn (agent_purpose_label_prompt_fragment); crates/harn-stdlib/src/stdlib/agent/purpose_labels.harn (agent_purpose_label_extract) | unknown: purpose_labels.agent_purpose_label_config distinguishes an absent configuration from an explicit object. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| PurposeLabelConfig.max_chars | harn | 64 | crates/harn-stdlib/src/stdlib/agent/purpose_labels.harn (agent_purpose_label_extract); crates/harn-stdlib/src/stdlib/agent/purpose_labels.harn (agent_purpose_label_config); crates/harn-stdlib/src/stdlib/agent/purpose_labels.harn (__purpose_label_instruction) | unknown: purpose_labels.agent_purpose_label_config uses PURPOSE_LABEL_DEFAULT_MAX_CHARS. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ReadOnlyStanceOptions.armed | harn | nil; owner options_validation.harn:486 | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_read_only_stance); crates/harn-stdlib/src/stdlib/agent/stance.harn (agent_stance_prepare) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ReadOnlyStanceOptions.classifier | harn | nil; owner options_validation.harn:486 | crates/harn-stdlib/src/stdlib/agent/stance.harn (agent_stance_prepare) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ReadOnlyStanceOptions.consent_check | harn | nil; owner options_validation.harn:486 | crates/harn-stdlib/src/stdlib/agent/stance.harn (__stance_register_escape_tool) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ReadOnlyStanceOptions.enabled | harn | false when absent; object form true; owner options_validation.harn:486 | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_read_only_stance); crates/harn-stdlib/src/stdlib/agent/stance.harn (agent_stance_prepare) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ReadOnlyStanceOptions.escape_tool | harn | request_write_access; owner options_validation.harn:486 | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_read_only_stance); crates/harn-stdlib/src/stdlib/agent/stance.harn (__stance_register_escape_tool); crates/harn-stdlib/src/stdlib/agent/stance.harn (agent_stance_prepare); crates/harn-stdlib/src/stdlib/agent/stance.harn (agent_stance_post_turn) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ReadOnlyStanceOptions.hard_keep | harn | []; owner options_validation.harn:486 | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_read_only_stance); crates/harn-stdlib/src/stdlib/agent/stance.harn (agent_stance_prepare) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ReadOnlyStanceOptions.min_confidence | harn | 0.8; owner options_validation.harn:486 | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_read_only_stance); crates/harn-stdlib/src/stdlib/agent/stance.harn (agent_stance_prepare) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| StageSpec.approval_policy | harn | empty rules and allowlists; sensitive/external path opt-outs false; repeat settings absent | unknown: orchestration.policy.ToolApprovalPolicy derives Default; default policy guards still apply. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.auto_compact | harn | disabled; optional bounds and strategies absent | crates/harn-stdlib/src/stdlib/workflow/stage.harn (__stage_compaction_options) | unknown: orchestration.workflow WorkflowNode defaults to AutoCompactPolicy::default, whose enabled field is false and optional fields are None. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| StageSpec.branch_semantics | harn | all branch destinations absent | unknown: orchestration.policy.types BranchSemantics derives Default with optional destinations. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.capability_policy | harn | empty capability collections; optional limits absent; worktree sandbox profile | unknown: orchestration.policy.types CapabilityPolicy derives Default and SandboxProfile defaults to Worktree. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.context_assembler | harn | absent; no custom context assembler | unknown: orchestration.workflow WorkflowNode defaults raw_context_assembler to None; closures are preserved separately from JSON. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.context_policy | harn | empty selectors; optional bounds absent; prefer_recent and prefer_fresh false | unknown: orchestration.policy.types ContextPolicy derives Default. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.done_sentinel | harn | absent at decoding; runner resolves its default | unknown: orchestration.workflow WorkflowNode derives Default with done_sentinel None. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.escalation_policy | harn | level, queue and reason absent | unknown: orchestration.policy.types EscalationPolicy derives Default. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.exit_when_verified | harn | false | unknown: orchestration.workflow WorkflowNode derives Default with a false exit_when_verified field. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.id | harn | absent at decoding | unknown: orchestration.workflow WorkflowNode derives Default with id None. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.input_contract | harn | empty kind lists; bounds/schema absent; transcript not required | unknown: orchestration.policy.types StageContract derives Default. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.join_policy | harn | empty strategy; require_all_inputs false; minimum absent | unknown: orchestration.policy.types JoinPolicy derives Default; strategy validation remains with the stage executor. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.kind | harn | empty string at decoding; stage validation still applies | unknown: orchestration.workflow WorkflowNode derives Default with an empty kind string. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.map_policy | harn | empty items; kinds and bounds absent | unknown: orchestration.policy.types MapPolicy derives Default. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.metadata | harn | empty map | crates/harn-stdlib/src/stdlib/workflow/stage.harn (__stage_compaction_options) | unknown: orchestration.workflow WorkflowNode derives Default with an empty metadata map. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| StageSpec.mode | harn | absent at decoding | unknown: orchestration.workflow WorkflowNode derives Default with mode None. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.model_policy | harn | optional model/loop overrides absent; native fallback reject | unknown: orchestration.policy.types ModelPolicy derives Default; workflow.options separately supplies 16 iterations and 3 nudges. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.output_contract | harn | empty kind lists; bounds/schema absent; transcript not required | unknown: orchestration.policy.types StageContract derives Default. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.output_visibility | harn | absent; preserve output visibility | unknown: orchestration.workflow WorkflowNode defaults output_visibility to None, documented as no filtering. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.prompt | harn | absent at decoding | unknown: orchestration.workflow WorkflowNode derives Default with prompt None. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.reduce_policy | harn | empty strategy; separator and output kind absent | unknown: orchestration.policy.types ReducePolicy derives Default; strategy validation remains with the stage executor. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.retry_policy | harn | one effective attempt; verification, repair and feedback disabled; no backoff | crates/harn-stdlib/src/stdlib/workflow/stage.harn (__stage_max_attempts) | unknown: orchestration.policy.types RetryPolicy decodes max_attempts as zero; workflow.stage.__stage_max_attempts clamps it to one. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| StageSpec.system | harn | absent at decoding | unknown: orchestration.workflow WorkflowNode derives Default with system None. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.task_label | harn | absent at decoding | unknown: orchestration.workflow WorkflowNode derives Default with task_label None. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.tools | harn | null at decoding | unknown: orchestration.workflow WorkflowNode derives Default with a null serde_json tools value. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| StageSpec.verify | harn | absent; no stage verifier | unknown: orchestration.workflow WorkflowNode derives Default with verify None. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| ToolSurfaceNarrowingOptions.enabled | harn | true; owner options_validation.harn:434 | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_tool_surface_narrowing); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (__tool_surface_narrowing_post_turn) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ToolSurfaceNarrowingOptions.hard_keep | harn | dynamic: __default_tool_surface_hard_keep(); owner options_validation.harn:434 | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_tool_surface_narrowing); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (__tool_surface_removed); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (__tool_surface_narrowing_post_turn) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ToolSurfaceNarrowingOptions.keep_classes | harn | safe mode: mutating, approval, session_control, progress, result_polling, unknown; aggressive mode: empty list | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_tool_surface_narrowing); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (__tool_surface_entry_prunable); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (__tool_surface_narrowing_post_turn) | unknown: options_validation.__normalize_tool_surface_narrowing selects the owning mode defaults. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ToolSurfaceNarrowingOptions.mode | harn | safe; owner options_validation.harn:434 | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_tool_surface_narrowing); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (__tool_surface_entry_prunable); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (__tool_surface_narrowing_post_turn) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ToolSurfaceNarrowingOptions.narrow_window_turns | harn | 5; legacy alias used only when window_turns is absent | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_tool_surface_narrowing) | unknown: options_validation.__normalize_tool_surface_narrowing prefers window_turns before this alias and the mode default. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ToolSurfaceNarrowingOptions.prune_classes | harn | [read_only]; owner options_validation.harn:434 | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_tool_surface_narrowing); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (__tool_surface_entry_prunable); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (__tool_surface_narrowing_post_turn) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ToolSurfaceNarrowingOptions.unknown_tool_policy | harn | keep; owner options_validation.harn:434 | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_tool_surface_narrowing); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (__tool_surface_entry_prunable); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (__tool_surface_narrowing_post_turn) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| ToolSurfaceNarrowingOptions.window_turns | harn | 5; owner options_validation.harn:434 | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__normalize_tool_surface_narrowing); crates/harn-stdlib/src/stdlib/agent/tool_surface.harn (__tool_surface_narrowing_post_turn) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| TurnPolicy.allow_done_sentinel | harn | true | unknown: orchestration.policy.types TurnPolicy::default enables the done sentinel. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| TurnPolicy.max_prose_chars | harn | absent; no turn-policy prose cap | unknown: orchestration.policy.types TurnPolicy::default sets max_prose_chars to None. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| TurnPolicy.require_action_or_yield | harn | false | crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_text_tool_contract_prompt) | unknown: orchestration.policy.types TurnPolicy::default does not require an action or yield. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| agent_done_contract.feedback_fallback | harn | judge.feedback_fallback, then a built-in request to address the specific gaps | crates/harn-stdlib/src/stdlib/agent/judge.harn (agent_done_contract) | unknown: judge.agent_done_contract resolves outer and nested feedback before its default text. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| agent_done_contract.judge | harn | empty dictionary | crates/harn-stdlib/src/stdlib/agent/judge.harn (agent_done_contract) | unknown: judge.agent_done_contract uses an empty judge configuration unless a dictionary is supplied. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| agent_done_contract.loop_until_done | harn | dynamic: observed local fallback true; normalization may override | crates/harn-stdlib/src/stdlib/agent/judge.harn (agent_done_contract) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| agent_done_contract.max_invocations | harn | judge.max_invocations, then 3 | crates/harn-stdlib/src/stdlib/agent/judge.harn (agent_done_contract) | unknown: judge.agent_done_contract resolves the outer cap before the nested judge and fallback. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| agent_done_contract.model | harn | judge.model; otherwise absent for catalog resolution | crates/harn-stdlib/src/stdlib/agent/judge.harn (agent_done_contract) | unknown: judge.agent_done_contract resolves the outer model before the nested judge model. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| agent_done_contract.provider | harn | judge.provider; otherwise absent for runner/provider resolution | crates/harn-stdlib/src/stdlib/agent/judge.harn (agent_done_contract) | unknown: judge.agent_done_contract resolves the outer provider before the nested judge provider. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| agent_done_contract.rubric | harn | dynamic: observed local fallback ""; normalization may override | crates/harn-stdlib/src/stdlib/agent/judge.harn (__done_contract_judge_system); crates/harn-stdlib/src/stdlib/agent/judge.harn (__judge_stable_prefix) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| agent_done_contract.system | harn | judge.system, then the built-in done-contract judge prompt | crates/harn-stdlib/src/stdlib/agent/judge.harn (agent_done_contract) | unknown: judge.agent_done_contract resolves outer and nested system text before __done_contract_judge_system. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| autonomy_policy.action_tiers | harn | dynamic: observed local fallback {}; normalization may override | crates/harn-stdlib/src/stdlib/agent/options_public.harn (autonomy_policy) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| autonomy_policy.agent | harn | absent; consulted only when agent_id is absent | crates/harn-stdlib/src/stdlib/agent/options_public.harn (autonomy_policy) | unknown: options_public.autonomy_policy resolves the canonical identity before this compatibility input. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| autonomy_policy.agent_action_tiers | harn | dynamic: observed local fallback {}; normalization may override | crates/harn-stdlib/src/stdlib/agent/options_public.harn (autonomy_policy) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| autonomy_policy.agent_id | harn | agent alias; otherwise absent | crates/harn-stdlib/src/stdlib/agent/options_public.harn (autonomy_policy) | unknown: options_public.autonomy_policy resolves agent_id before agent. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| autonomy_policy.agent_tiers | harn | dynamic: observed local fallback {}; normalization may override | crates/harn-stdlib/src/stdlib/agent/options_public.harn (autonomy_policy) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| autonomy_policy.reviewers | harn | dynamic: observed local fallback []; normalization may override | crates/harn-stdlib/src/stdlib/agent/options_public.harn (autonomy_policy) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.inference_boundary | harn | absent; a supplied host ceiling still applies to every resolved route | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | yes: The typed agent option narrows the host grant; policy and transport tests exercise the effective route before dispatch. | KEEP-with-expiry | Retain the explicit per-agent narrowing control and review its host adoption after the first downstream host integration lands. / 2026-12-31 |
| AgentSpec.equivalent_failover | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-stdlib/src/stdlib/llm/options.harn (llm_equivalent_failover_enabled); crates/harn-stdlib/src/stdlib/llm/options.harn (llm_enable_equivalent_failover) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.fallback_chain | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-stdlib/src/stdlib/llm/options.harn (explicit-routing-key-domain); crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.ladder | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-stdlib/src/stdlib/llm/options.harn (explicit-routing-key-domain); crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.model | harn | dynamic: observed local fallback ""; normalization may override | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compact_options); crates/harn-stdlib/src/stdlib/agent/completion_review.harn (__agent_completion_review); crates/harn-stdlib/src/stdlib/agent/judge_internals.harn (__judge_provider_family); crates/harn-stdlib/src/stdlib/agent/llm_dispatch.harn (__dispatch_emit_call_start); crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__loop_dispatch_options); crates/harn-stdlib/src/stdlib/agent/loop_lifecycle.harn (agent_loop_run_settings); crates/harn-stdlib/src/stdlib/agent/loop_provider_failure.harn (agent_loop_provider_failure); crates/harn-stdlib/src/stdlib/agent/loop_run.harn (__agent_loop_run); crates/harn-stdlib/src/stdlib/agent/loop_support.harn (__agent_loop_enable_equivalent_failover); crates/harn-stdlib/src/stdlib/agent/loop_support.harn (__agent_loop_with_llm_render_context); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__tool_envelope); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__run_structural_validator); crates/harn-stdlib/src/stdlib/agent/loop_turn_options.harn (agent_loop_demote_empty_turn); crates/harn-stdlib/src/stdlib/agent/loop_turn_options.harn (__agent_loop_emit_provider_error); crates/harn-stdlib/src/stdlib/agent/loop_turn_scope.harn (__run_input_guardrail); crates/harn-stdlib/src/stdlib/agent/loop_turn_scope.harn (__run_pre_turn_scope_classifier); crates/harn-stdlib/src/stdlib/agent/loop_turn_setup.harn (__agent_loop_turn_setup); crates/harn-stdlib/src/stdlib/agent/options_formats.harn (__tool_format_route); crates/harn-stdlib/src/stdlib/agent/options_formats.harn (__capability_gap_event); crates/harn-stdlib/src/stdlib/agent/options_public.harn (__agent_route_identity); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__missing_tool_call_recovery_config); crates/harn-stdlib/src/stdlib/agent/postturn.harn (agent_compute_post_turn); crates/harn-stdlib/src/stdlib/agent/state.harn (agent_session_record_usage); crates/harn-stdlib/src/stdlib/agent/tool_search.harn (__tool_search_provider_has_native) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.model_role | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.model_tier | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.models | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-stdlib/src/stdlib/llm/options.harn (explicit-routing-key-domain); crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.provider | harn | dynamic: observed local fallback ""; normalization may override | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-stdlib/src/stdlib/agent/autocompact.harn (__compact_options); crates/harn-stdlib/src/stdlib/agent/judge_internals.harn (__judge_provider_family); crates/harn-stdlib/src/stdlib/agent/judge_internals.harn (__judge_run_checkpoint); crates/harn-stdlib/src/stdlib/agent/llm_dispatch.harn (__dispatch_emit_call_start); crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__loop_dispatch_options); crates/harn-stdlib/src/stdlib/agent/loop_lifecycle.harn (agent_loop_run_settings); crates/harn-stdlib/src/stdlib/agent/loop_provider_failure.harn (agent_loop_provider_failure); crates/harn-stdlib/src/stdlib/agent/loop_run.harn (__agent_loop_run); crates/harn-stdlib/src/stdlib/agent/loop_support.harn (__agent_loop_enable_equivalent_failover); crates/harn-stdlib/src/stdlib/agent/loop_support.harn (__agent_loop_with_llm_render_context); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__tool_envelope); crates/harn-stdlib/src/stdlib/agent/loop_tool_calls.harn (__run_structural_validator); crates/harn-stdlib/src/stdlib/agent/loop_turn_options.harn (agent_loop_demote_empty_turn); crates/harn-stdlib/src/stdlib/agent/loop_turn_options.harn (__agent_loop_emit_provider_error); crates/harn-stdlib/src/stdlib/agent/loop_turn_scope.harn (__run_input_guardrail); crates/harn-stdlib/src/stdlib/agent/loop_turn_scope.harn (__run_pre_turn_scope_classifier); crates/harn-stdlib/src/stdlib/agent/loop_turn_setup.harn (__agent_loop_turn_setup); crates/harn-stdlib/src/stdlib/agent/options_formats.harn (__explicit_provider); crates/harn-stdlib/src/stdlib/agent/options_public.harn (__agent_route_identity); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__missing_tool_call_recovery_config); crates/harn-stdlib/src/stdlib/agent/postturn.harn (agent_compute_post_turn); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__missing_tool_call_recovery_classifier); crates/harn-stdlib/src/stdlib/agent/state.harn (agent_session_record_usage); crates/harn-stdlib/src/stdlib/agent/tool_search.harn (__tool_search_provider_has_native) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.rate_limit_consumer_id | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain); crates/harn-vm/src/llm/helpers/options/extract.rs (opt_str) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.route_policy | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-stdlib/src/stdlib/llm/options.harn (explicit-routing-key-domain); crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.routing | harn | dynamic: options pass through agent model normalization; provider/model catalog and llm_call own the omitted-value policy | crates/harn-stdlib/src/stdlib/llm/options.harn (explicit-routing-key-domain); crates/harn-builtin-meta/src/llm_options.rs (model-registry-key-domain) | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Public model/provider control rather than a recovery experiment; preserve until its owning API contract is reviewed. / 2026-09-13 |
| AgentSpec.completion_tool | harn | false | crates/harn-stdlib/src/stdlib/agent/completion_claim.harn (agent_completion_claim_apply_options) | unknown: completion_claim.agent_completion_claim_apply_options defaults the typed completion claim tool off. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.done_sentinel | harn | dynamic: observed local fallback "the configured done sentinel"; normalization may override | crates/harn-vm/src/llm/helpers/options/extract.rs (opt_str); crates/harn-stdlib/src/stdlib/agent/judge.harn (__done_contract_primary_prompt); crates/harn-stdlib/src/stdlib/agent/loop_turn_scope.harn (__agent_loop_wrapup_response_protocol_tail); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_completion_options); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__default_done_sentinel); crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_done_sentinel) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.exit_when_verified | harn | dynamic: observed local fallback false; normalization may override | crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_loop_contract_prompt) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.final_wrapup | harn | true; owner loop_run/loop_finalize/loop_resource_dispatch/loop_call_budget/loop_turn_scope | crates/harn-stdlib/src/stdlib/agent/loop_finalize.harn (__agent_loop_finalize) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.loop_until_done | harn | dynamic: observed local fallback false; normalization may override | crates/harn-stdlib/src/stdlib/agent/postturn.harn (__native_completion_context); crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_loop_contract_prompt) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.max_nudges | harn | 8 for tool_using profile; options_formats.harn:15 owns other profiles | unknown: Typed configuration declaration; no resolved runtime reader in current bounded pass. Dynamic forwarding remains possible. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| AgentSpec.max_verify_attempts | harn | 20; owner loop_run/loop_finalize/loop_resource_dispatch/loop_call_budget/loop_turn_scope | crates/harn-vm/src/llm/agent_session_host/lifecycle.rs (opt_int); crates/harn-stdlib/src/stdlib/agent/loop_lifecycle.harn (agent_loop_run_settings); crates/harn-stdlib/src/stdlib/agent/loop_run.harn (__agent_loop_run) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.require_action_or_yield | harn | dynamic: observed local fallback false; normalization may override | crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_text_tool_contract_prompt) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.require_artifacts | harn | empty list | unknown: AgentExecutionSpec documents an empty default that checks no paths; canonical reachability remains unmeasured. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 | |
| AgentSpec.require_successful_tools | harn | empty list | crates/harn-stdlib/src/stdlib/workflow/options.harn (workflow-loop-key-domain); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__required_tools_text_completion); crates/harn-stdlib/src/stdlib/agent/required_tools.harn (__agent_required_tools_from_options) | unknown: required_tools.__agent_required_tools_from_options returns no required tools when omitted. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.step_judge | harn | absent; skip the step judge as not_configured | crates/harn-stdlib/src/stdlib/agent/loop_run.harn (__agent_loop_run); crates/harn-stdlib/src/stdlib/agent/step_judge.harn (agent_step_judge) | unknown: step_judge.agent_step_judge returns an explicit skipped result when configuration is absent. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.stop_after_successful_tools | harn | dynamic: observed local fallback []; normalization may override | crates/harn-stdlib/src/stdlib/workflow/options.harn (workflow-loop-key-domain); crates/harn-stdlib/src/stdlib/agent/loop_dispatch_options.harn (__loop_dispatch_options); crates/harn-stdlib/src/stdlib/agent/loop_resource_dispatch.harn (__tool_batch_call_classification); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__stop_after_successful_tools) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.terminal_callback | harn | absent; no callback verdict | crates/harn-stdlib/src/stdlib/agent/loop_run.harn (__agent_loop_run); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_callback_options); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__terminal_callback_verdict) | unknown: postturn.__terminal_callback_verdict returns kind none when the callback is absent. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.turn_end_condition | harn | absent; no turn-end judge | crates/harn-stdlib/src/stdlib/agent/completion_claim.harn (__completion_claim_requirement_ids); crates/harn-stdlib/src/stdlib/agent/judge.harn (__completion_policy_plan); crates/harn-stdlib/src/stdlib/agent/judge.harn (__completion_boundary_requirements); crates/harn-stdlib/src/stdlib/agent/loop_finalize.harn (__agent_loop_project_terminal_result); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_completion_options); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__arbitrate_stalled_toolless_turn); crates/harn-stdlib/src/stdlib/agent/turn_end.harn (__agent_turn_end_judge_stall_cadence); crates/harn-stdlib/src/stdlib/agent/turn_end.harn (__turn_end_condition_config) | unknown: options_public.agent_loop_options materializes this judge only when explicitly configured. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.verify_completion | harn | absent; no deterministic completion callback | crates/harn-stdlib/src/stdlib/agent/judge.harn (__completion_policy_plan); crates/harn-stdlib/src/stdlib/agent/loop_turn_options.harn (__agent_loop_verify_closure_exists); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_completion_options); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__completion_result) | unknown: judge.__completion_policy_plan adds a deterministic stage only when a callback is supplied. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.verify_completion_judge | harn | absent; no verification judge | crates/harn-stdlib/src/stdlib/agent/completion_claim.harn (__completion_claim_requirement_ids); crates/harn-stdlib/src/stdlib/agent/judge.harn (__completion_policy_plan); crates/harn-stdlib/src/stdlib/agent/judge.harn (__completion_boundary_requirements); crates/harn-stdlib/src/stdlib/agent/loop_finalize.harn (__agent_loop_project_terminal_result); crates/harn-stdlib/src/stdlib/agent/loop_turn_options.harn (__agent_loop_verify_closure_exists); crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_agent_loop_completion_options); crates/harn-stdlib/src/stdlib/agent/postturn.harn (__completion_result) | unknown: options_public.agent_loop_options materializes this judge only when explicitly configured. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.wrapup_context | harn | empty dictionary | crates/harn-stdlib/src/stdlib/agent/loop_turn_scope.harn (__agent_loop_effective_wrapup_context) | unknown: loop_turn_scope.__agent_loop_effective_wrapup_context treats an absent or non-dictionary host context as empty. Source review establishes the fallback; canonical host reachability is not inferred. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.wrapup_directive | harn | empty string: use canonical terminal instruction; owner loop_run/loop_finalize/loop_resource_dispatch/loop_call_budget/loop_turn_scope | crates/harn-stdlib/src/stdlib/agent/loop_turn_scope.harn (__agent_loop_wrapup_directive); crates/harn-stdlib/src/stdlib/agent/loop_turn_scope.harn (__agent_loop_has_host_wrapup_directive) | unknown: Static declaration/read only; downstream headless binding not observed. | KEEP-with-expiry | Retain public configuration until its owning normalization and caller contract are reviewed; not classified as an experiment. / 2026-09-13 |
| AgentSpec.output.schema | harn | absent; no output-schema contract | crates/harn-stdlib/src/stdlib/agent/llm_dispatch.harn (__dispatch_structured_output_schema); crates/harn-stdlib/src/stdlib/agent/loop_support.harn (__agent_loop_output_contract) | unknown: Structural read at crates/harn-stdlib/src/stdlib/agent/loop_support.harn:165; canonical host binding has not been observed. | KEEP-with-expiry | Explicit configuration consumed by the owning module; retain until the typed runner/stop/stall migration settles this seam. / 2026-09-13 |
| MissingToolCallRecoveryOptions.output_contract | harn | true | crates/harn-stdlib/src/stdlib/agent/loop_support.harn (__agent_loop_next_tool_output_contract) | unknown: Structural read at crates/harn-stdlib/src/stdlib/agent/loop_support.harn:196; canonical host binding has not been observed. | KEEP-with-expiry | Explicit configuration consumed by the owning module; retain until the typed runner/stop/stall migration settles this seam. / 2026-09-13 |
| AgentSpec.mcp_context.initialize_advisory | harn | absent; advisory omitted | crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_mcp_initialize_advisory_prompt) | unknown: Structural read at crates/harn-stdlib/src/stdlib/agent/preflight.harn:505; canonical host binding has not been observed. | KEEP-with-expiry | Explicit configuration consumed by the owning module; retain until the typed runner/stop/stall migration settles this seam. / 2026-09-13 |
| AgentSpec.policy.tools | harn | absent; inherit the owning tool policy | crates/harn-stdlib/src/stdlib/agent/mcp.harn (__with_mcp_tool_ceiling); crates/harn-stdlib/src/stdlib/agent/stance.harn (__stance_policy_patch) | unknown: Structural read at crates/harn-stdlib/src/stdlib/agent/stance.harn:79; canonical host binding has not been observed. | KEEP-with-expiry | Explicit configuration consumed by the owning module; retain until the typed runner/stop/stall migration settles this seam. / 2026-09-13 |
| StageSpec.retry_policy.max_attempts | harn | 1; explicit retry policy takes precedence | crates/harn-stdlib/src/stdlib/workflow/stage.harn (__stage_max_attempts) | unknown: Structural read at crates/harn-stdlib/src/stdlib/workflow/stage.harn:836; canonical host binding has not been observed. | KEEP-with-expiry | Explicit configuration consumed by the owning module; retain until the typed runner/stop/stall migration settles this seam. / 2026-09-13 |
| HARN_INFERENCE_BOUNDARY_JSON | harn | absent in standalone Harn; malformed supplied grant refuses inference | crates/harn-llm/src/inference.rs (HOST_BOUNDARY_ENV) | yes: The source-built mechanism contract and route tests exercise a supplied host grant, including malformed input and pre-dispatch refusal. | KEEP-with-expiry | Retain the host-owned session ceiling and review the environment seam after a downstream host projects it end to end. / 2026-12-31 |
| HARN_LLM_TRANSCRIPT_VERBOSE | harn | false | crates/harn-vm/src/llm/agent_observe.rs (env_flag_enabled) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/agent_observe.rs:156; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_LLM_TRANSCRIPT_RAW | harn | false | crates/harn-vm/src/llm/agent_observe/raw_provider_capture.rs (super::env_flag_enabled) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/agent_observe/raw_provider_capture.rs:46; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_LLM_TRANSCRIPT_DIR | harn | unset; use the ambient transcript directory | crates/harn-vm/src/llm/agent_observe/transcript_ambient.rs (std::env::var) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/agent_observe/transcript_ambient.rs:217; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_DEBUG_MESSAGE_SHAPES | harn | false | crates/harn-vm/src/llm/api/openai_normalize.rs (std::env::var) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/api/openai_normalize.rs:389; canonical headless use is not observed by a source scan. | DELETE | Remove the separate debug-print switch during the runner cleanup; inspect structured provider/transcript evidence instead. / none |
| HARN_LLM_TIMEOUT | harn | 120 seconds | crates/harn-vm/src/llm/api/options.rs (std::env::var) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/api/options.rs:1283; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| OLLAMA_HOST | harn | unset; use the default Ollama endpoint | crates/harn-vm/src/llm/api/transport_stub_tests.rs (std::env::var); crates/harn-vm/src/llm/api/transport_stub_tests/ollama_openai_compat.rs (std::env::var); crates/harn-vm/src/llm/api/ollama.rs (OLLAMA_HOST_ENV) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/api/transport_stub_tests.rs:521; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_OLLAMA_NUM_CTX | harn | 32768 | crates/harn-vm/src/llm/api/transport_stub_tests.rs (std::env::var); crates/harn-vm/src/llm/api/ollama.rs (HARN_OLLAMA_NUM_CTX_ENV) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/api/transport_stub_tests.rs:1127; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_OLLAMA_KEEP_ALIVE | harn | 30m | crates/harn-vm/src/llm/api/transport_stub_tests.rs (std::env::var); crates/harn-vm/src/llm/api/ollama.rs (HARN_OLLAMA_KEEP_ALIVE_ENV) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/api/transport_stub_tests.rs:1128; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| LOCAL_LLM_BASE_URL | harn | unset; use the configured local provider endpoint | crates/harn-vm/src/llm/api/transport_stub_tests.rs (std::env::var) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/api/transport_stub_tests.rs:1417; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| LOCAL_LLM_MODEL | harn | unset; use the configured local provider model | crates/harn-vm/src/llm/config_builtins/healthcheck_builtins.rs (crate::test_env::env_var_seamed) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/config_builtins/healthcheck_builtins.rs:43; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_CANON_ROOT | harn | unset; use the canonical memory root resolver | crates/harn-stdlib/src/stdlib/agent/canon.harn (get_or) | unknown: Structural environment access/declaration at crates/harn-stdlib/src/stdlib/agent/canon.harn:148; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_BIN | harn | harn on PATH | crates/harn-stdlib/src/stdlib/agent/crystallization_curator.harn (get) | unknown: Structural environment access/declaration at crates/harn-stdlib/src/stdlib/agent/crystallization_curator.harn:221; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_OLLAMA_UNLOAD_GRACE_MS | harn | 10000 | crates/harn-vm/src/llm/api/ollama.rs (HARN_OLLAMA_UNLOAD_GRACE_MS_ENV) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/api/ollama.rs:118; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| OLLAMA_UNLOAD_GRACE_MS | harn | 10000; HARN_OLLAMA_UNLOAD_GRACE_MS takes precedence | crates/harn-vm/src/llm/api/ollama.rs (OLLAMA_UNLOAD_GRACE_MS_ENV) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/api/ollama.rs:119; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_HARNESS | harn | harn | crates/harn-vm/src/llm/introspection.rs (HARN_HARNESS_ENV) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/introspection.rs:38; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_EFFORT_PROBE_UNGATED | harn | false | crates/harn-vm/src/llm/mod.rs (EFFORT_LADDER_UNGATED_ENV) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/mod.rs:107; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_LLM_CALLS_DISABLED | harn | false | crates/harn-vm/src/llm/mod.rs (LLM_CALLS_DISABLED_ENV) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/mod.rs:329; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_LLM_RATE_GOVERNOR | harn | false | crates/harn-vm/src/llm/rate_governor.rs (RATE_GOVERNOR_ENABLED_ENV) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/rate_governor.rs:44; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_LLM_RATE_LIMIT_DURABLE | harn | true | crates/harn-vm/src/llm/rate_limit.rs (DURABLE_RATE_LIMIT_ENABLED_ENV) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/rate_limit.rs:40; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_LLM_RATE_LIMIT_STATE_PATH | harn | unset; use the runtime state-root resolver | crates/harn-vm/src/llm/rate_limit.rs (DURABLE_RATE_LIMIT_STATE_PATH_ENV) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/rate_limit.rs:41; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_LLM_RATE_LIMIT_MAX_WAIT_MS | harn | 30000 | crates/harn-vm/src/llm/rate_limit.rs (DURABLE_RATE_LIMIT_MAX_WAIT_MS_ENV) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/rate_limit.rs:52; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_STRUCTURAL_EXPERIMENT | harn | unset; no structural experiment | crates/harn-vm/src/llm/structural_experiments.rs (STRUCTURAL_EXPERIMENT_ENV) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/structural_experiments.rs:35; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_TOOL_FORMAT_FITNESS_PATH | harn | unset; use the default tool-format fitness artifact | crates/harn-vm/src/llm/tool_scorecard/fitness.rs (TOOL_FORMAT_FITNESS_PATH_ENV) | unknown: Structural environment access/declaration at crates/harn-vm/src/llm/tool_scorecard/fitness.rs:14; canonical headless use is not observed by a source scan. | KEEP-with-expiry | The environment registry retains ownership of name/value validation. Keep this consumer input until the corresponding typed configuration boundary is reviewed. / 2026-09-13 |
| HARN_MACHINE_SPEND_TEST_CHILD_PATH | harn | unset; the test parent supplies its private SQLite path | crates/harn-vm/src/llm/admission/durable.rs (std::env::var_os) | unknown: Structural environment access/declaration in the separate-process spend quota test; production model calls do not read this test input. | KEEP-with-expiry | Test-only child-process handoff for the cross-process reservation falsifier; it does not configure production model routing. / 2026-10-24 |
| AgentSpec.scratchpad.enabled | harn | true when a scratchpad object is supplied; false when scratchpad is absent | crates/harn-stdlib/src/stdlib/agent/scratchpad.harn (agent_scratchpad_options) | unknown: Read by agent_scratchpad_options; no canonical headless activation trace collected. | KEEP-with-expiry | Controls whether the caller supplies persistent working notes. / 2026-09-13 |
| AgentSpec.scratchpad.initial | harn | nil | crates/harn-stdlib/src/stdlib/agent/scratchpad.harn (agent_scratchpad_options) | unknown: Read by agent_scratchpad_options; no canonical headless activation trace collected. | KEEP-with-expiry | Caller-provided initial notes are policy data. / 2026-09-13 |
| AgentSpec.scratchpad.recite | harn | true when scratchpad is enabled | crates/harn-stdlib/src/stdlib/agent/scratchpad.harn (agent_scratchpad_options) | unknown: Read by agent_scratchpad_options; no canonical headless activation trace collected. | KEEP-with-expiry | Controls the projection of working notes into the transcript. / 2026-09-13 |
| AgentSpec.scratchpad.reorganize_every | harn | 3 | crates/harn-stdlib/src/stdlib/agent/scratchpad.harn (agent_scratchpad_options) | unknown: Read by agent_scratchpad_options; no canonical headless activation trace collected. | KEEP-with-expiry | Caller-selected cadence for reorganizing working notes. / 2026-09-13 |
| AgentSpec.scratchpad.max_recent_messages | harn | 8 | crates/harn-stdlib/src/stdlib/agent/scratchpad.harn (agent_scratchpad_options) | unknown: Read by agent_scratchpad_options; no canonical headless activation trace collected. | KEEP-with-expiry | Bounds the transcript context used to reorganize working notes. / 2026-09-13 |
| AgentSpec.scratchpad.schema_retries | harn | 1 | crates/harn-stdlib/src/stdlib/agent/scratchpad.harn (agent_scratchpad_options) | unknown: Read by agent_scratchpad_options; no canonical headless activation trace collected. | KEEP-with-expiry | Bounds recovery from malformed note output. / 2026-09-13 |
| AgentSpec.scratchpad.reorganizer | harn | {} | crates/harn-stdlib/src/stdlib/agent/scratchpad.harn (agent_scratchpad_options) | unknown: Read by agent_scratchpad_options; no canonical headless activation trace collected. | KEEP-with-expiry | Caller-supplied model policy for reorganizing working notes. / 2026-09-13 |
| AgentSpec.done_judge | harn | absent; a supplied key is rejected | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_removed_agent_loop_options) | unknown: __validate_removed_agent_loop_options rejects this renamed option and names turn_end_condition. | DELETE | Move renamed-option rejection to the owning closed input contract and remove the one-off guard. / none |
| TurnPolicy.tool_examples | harn | AgentSpec.tool_examples, then empty string | crates/harn-stdlib/src/stdlib/agent/preflight.harn (__agent_text_tool_contract_prompt) | unknown: The text tool contract reads turn_policy.tool_examples before the runner fallback. | KEEP-with-expiry | Caller-provided tool examples are prompt policy content. / 2026-09-13 |
| AgentSpec.persistent | harn | absent; a supplied key is rejected | crates/harn-stdlib/src/stdlib/agent/options_validation.harn (__validate_removed_agent_loop_options) | unknown: __validate_removed_agent_loop_options rejects this removed option. | DELETE | Move removed-option rejection to the owning closed input contract and remove the one-off guard. / none |
| AgentBudget.total_budget_usd | harn | nil; no envelope cost ceiling | crates/harn-vm/src/llm/cost.rs (get); crates/harn-stdlib/src/stdlib/agent/budget.harn (agent_budget_post_call_stop_reason) | unknown: Adaptive mode checks measured cost after each call. Explicit conservative admission reserves a full-context bound before native provider transport and shares its ceiling across child execution scopes. | KEEP-with-expiry | Preserve the resource ceiling while consolidating budget admission and removing the inert pre-call projection. / 2026-09-13 |
| AgentSpec.token_budget | harn | nil; no token ceiling | crates/harn-stdlib/src/stdlib/agent/budget.harn (agent_budget_post_call_stop_reason) | unknown: agent_budget_post_call_stop_reason compares tokens_used against this ceiling. | KEEP-with-expiry | A caller-selected run resource ceiling. / 2026-09-13 |
| AgentBudget.admission | harn | nil; adaptive accounting without pre-call reservation | crates/harn-vm/src/llm/cost.rs (get) | yes: The native agent-loop mechanism contract refuses an unaffordable call before transport; omission cannot escape an activated conservative scope. | KEEP-with-expiry | Conservative admission deliberately refuses unsupported billing shapes; retain explicit opt-in until supported caller coverage justifies a default change. / 2026-10-13 |
| AgentSpec.context_overflow_recover_max | harn | 3; nonnegative integer overrides the default | crates/harn-stdlib/src/stdlib/agent/loop_foundation.harn (__agent_loop_context_overflow_max_recoveries) | unknown: __agent_loop_context_overflow_max_recoveries bounds emergency compaction retries after provider context overflow. | KEEP-with-expiry | Preserve bounded recovery while moving the recovery policy into the typed runner contract. / 2026-09-13 |
| AgentSpec.truncation_auto_continue_max | harn | 2; nonnegative integer overrides the default | crates/harn-stdlib/src/stdlib/agent/loop_foundation.harn (__autocontinue_max_continuations) | unknown: __autocontinue_max_continuations bounds retries after truncated tool calls or hidden-reasoning-only responses. | KEEP-with-expiry | Preserve bounded recovery while moving the recovery policy into the typed runner contract. / 2026-09-13 |
| AgentSpec.truncation_auto_continue_base | harn | 16384; positive integer overrides the default | crates/harn-stdlib/src/stdlib/agent/loop_foundation.harn (__autocontinue_raised_cap) | unknown: __autocontinue_raised_cap uses this output-token cap when the original call had no explicit cap, then clamps it to the configured ceiling. | KEEP-with-expiry | Preserve explicit recovery resource limits in the typed runner contract. / 2026-09-13 |
| AgentSpec.truncation_auto_continue_ceiling | harn | 32768; positive integer overrides the default | crates/harn-stdlib/src/stdlib/agent/loop_foundation.harn (__autocontinue_raised_cap) | unknown: __autocontinue_raised_cap clamps the doubled or base output-token cap to this ceiling. | KEEP-with-expiry | Preserve explicit recovery resource limits in the typed runner contract. / 2026-09-13 |
| AgentSpec.user_visible | harn | false | crates/harn-vm/src/llm/agent_config.rs (opt_bool); crates/harn-vm/src/llm/call.rs (helpers::opt_bool) | unknown: The bridge-observed llm_call reads this flag before producing call notifications. | KEEP-with-expiry | Preserve the host visibility contract while consolidating call observation. / 2026-09-13 |
| AgentSpec.initial_user_content | harn | the initial message string | crates/harn-vm/src/llm/agent_session_host.rs (opt_json) | unknown: agent_session_host.initial_user_content selects structured initial transcript content. | KEEP-with-expiry | The initial transcript must preserve caller-provided structured content. / 2026-09-13 |
| AgentSpec.reasoning_mode | harn | standard | crates/harn-vm/src/llm/helpers/options/extract.rs (opt_str) | unknown: The native options extractor delegates catalog validation and execution-mode selection to reasoning_modes.resolve_requested. | KEEP-with-expiry | Model execution-mode intent belongs in the typed model request. / 2026-09-13 |
| AgentSpec.reminders.enabled | harn | true; reminders=false also disables providers | crates/harn-vm/src/llm/reminder_providers.rs (get) | unknown: reminder_providers.enabled_provider_ids returns an empty provider set when this field is false. | KEEP-with-expiry | Keep explicit provider admission policy until the typed runner reminder contract is settled. / 2026-09-13 |
| AgentSpec.reminders.providers | harn | canonical default-enabled providers plus user providers | crates/harn-vm/src/llm/reminder_providers.rs (get) | unknown: reminder_providers.enabled_provider_ids adds selected ids and removes ids prefixed with a minus sign. | KEEP-with-expiry | Provider admission is caller policy over the canonical provider registry. / 2026-09-13 |
| AgentSpec.reminders.config | harn | absent; provider-specific defaults apply | crates/harn-vm/src/llm/reminder_providers.rs (get) | unknown: provider_config_json resolves each provider's policy content from this map, then checks the legacy direct provider key. | KEEP-with-expiry | Keep provider policy content as data while eliminating competing configuration shapes. / 2026-09-13 |