Skip to content

Configuration Reference

Generated file — do not edit by hand. Regenerate with python scripts/gen_config_reference.py. Every description below comes from the Field(description=...) in src/probos/config.py, so the way to improve this page is to improve that.

ProbOS runs with zero configuration — every field has a default. The shipped config/system.yaml deliberately does not list every knob; this page does.

A value marked default-OFF ships inert. Turning it on is an operator decision, and each one states what changes when you do.

system

Top-level system identity.

Field Type Default Bounds Description
name str 'ProbOS'
version str '0.1.0'
log_level str 'INFO'

pools

Agent pool configuration.

Field Type Default Bounds Description
default_pool_size int 3
max_pool_size int 7
min_pool_size int 2
spawn_cooldown_ms int 500
health_check_interval_seconds float 5.0

mesh

Mesh communication configuration.

Field Type Default Bounds Description
gossip_interval_ms int 1000
hebbian_decay_rate float 0.995
hebbian_social_decay_rate float 0.995
intent_skill_map dict[str, str] {}
hebbian_reward float 0.05
signal_ttl_seconds float 30.0
capability_broadcast_interval_seconds float 5.0
semantic_matching bool True
handler_latency_deterministic_ms float 100.0
handler_latency_network_ms float 10000.0
handler_latency_cognitive_ms float 30000.0

consensus

Consensus layer configuration.

Field Type Default Bounds Description
min_votes int 3
approval_threshold float 0.6
use_confidence_weights bool True
verification_timeout_seconds float 5.0
red_team_pool_size int 2
trust_prior_alpha float 2.0
trust_prior_beta float 2.0
trust_decay_rate float 0.999

cognitive

Cognitive layer configuration.

Field Type Default Bounds Description
llm_base_url str 'http://127.0.0.1:8080/v1'
llm_api_key str ''
llm_timeout_seconds float 30.0
llm_model_fast str 'claude-sonnet-4-6'
llm_model_standard str 'claude-sonnet-4-6'
llm_model_deep str 'claude-opus-4-6'
llm_health_min_consecutive_healthy int 3
llm_base_url_fast str | None None
llm_api_key_fast str | None None
llm_timeout_fast float | None None
llm_api_format_fast str | None None
llm_base_url_standard str | None None
llm_api_key_standard str | None None
llm_timeout_standard float | None None
llm_api_format_standard str | None None
llm_base_url_deep str | None None
llm_api_key_deep str | None None
llm_timeout_deep float | None None
llm_api_format_deep str | None None
llm_base_url_vision str | None None
llm_api_key_vision str | None None
llm_model_vision str | None None
llm_timeout_vision float | None None
llm_api_format_vision str | None None
llm_base_url_compute_use str | None None
llm_api_key_compute_use str | None None
llm_model_compute_use str | None None
llm_timeout_compute_use float | None None
llm_api_format_compute_use str | None None
llm_temperature_compute_use float | None None
llm_top_p_compute_use float | None None
llm_max_tokens_compute_use int | None None
llm_base_url_vision_fast str | None None
llm_api_key_vision_fast str | None None
llm_model_vision_fast str | None None
llm_timeout_vision_fast float | None None
llm_api_format_vision_fast str | None None
whisper_model_path str 'whisper/ggml-tiny.en.bin'
offline_stt_enabled bool False
primary_stt Literal['transformers', 'whisper', 'browser'] 'transformers' BF-301 (was AD-826): which STT engine the UI PTT handler arms first. transformers = local @huggingface/transformers Whisper running in a Web Worker (cross-browser, no operator setup, default since BF-301). whisper = DEPRECATED alias for transformers — retained for back-compat with saved operator configs; resolves to engine='transformers' in the health endpoint. browser = Web Speech API (Chrome-only reliable; flaky on Edge/Firefox/Safari). When transformers is selected AND offline_stt_enabled is False, the UI honest-degrades to the browser engine. Hot-reload.
transformers_model str 'Xenova/whisper-tiny.en' BF-301: HuggingFace model id for the browser-side transformers.js ASR pipeline. Browser fetches and caches; the runtime never holds the weights. Hot-reload.
fallback_stt_enabled bool True AD-826: when True, two consecutive empty transcripts from the primary STT engine fall through to the other engine for the next press. When False, the primary engine is the only path and empty transcripts are surfaced as-is. Hot-reload.
conversation_mode_enabled bool False AD-747: when ON, opening a DM thread arms an always-on conversation. Default OFF; press-to-talk preserved. Hot-reload.
conversation_silence_timeout_ms int 30000 ≥ 1000, ≤ 300000 AD-747: silence-timeout in ms after the agent's TTS reply finishes; expiry disarms the conversation and returns to wake-word. 30000 matches ChatGPT advanced voice mode. Hot-reload.
conversation_barge_in_enabled bool True AD-747: when ON, VAD speech_start during agent_speaking stops the TTS mid-utterance and re-arms STT. Operators in noisy environments can disable; AD-747-1 forward marker for prosody-gated barge-in. Hot-reload.
llm_base_url_image_gen str | None None
llm_api_key_image_gen str | None None
llm_model_image_gen str | None None
llm_timeout_image_gen float | None None
llm_api_format_image_gen str | None None
llm_temperature_fast float | None None
llm_temperature_standard float | None None
llm_temperature_deep float | None None
llm_temperature_vision float | None None
llm_top_p_fast float | None None
llm_top_p_standard float | None None
llm_top_p_deep float | None None
llm_top_p_vision float | None None
llm_max_tokens_fast int | None None
llm_max_tokens_standard int | None None
llm_max_tokens_deep int | None None
llm_max_tokens_vision int | None None
llm_system_prompt_suffix_fast str | None None
llm_system_prompt_suffix_standard str | None None
llm_system_prompt_suffix_deep str | None None
llm_system_prompt_suffix_vision str | None None
default_llm_tier str 'fast'
ollama_keep_alive str '30m'
working_memory_token_budget int 4000
decomposition_timeout_seconds float 30.0
dag_execution_timeout_seconds float 60.0
use_consensus_for_writes bool True
max_concurrent_tasks int 8
deferred_capability_threshold int 0
attention_decay_rate float 0.95
focus_history_size int 10
background_demotion_factor float 0.25
captain_card_enabled bool True AD-739: inject the Captain Card into CognitiveAgent system prompts. Default ON — the Card is a benign context anchor.
captain_card_path str 'captain_card.json' AD-739: relative path under runtime.data_dir for the Captain Card JSON sidecar.
captain_card_max_tokens int 500 ≥ 100, ≤ 1500 AD-739: token budget for the rendered Card text injected into system prompts. Approximated as max chars / 4.
captain_card_refresh_min_interval_seconds int 3600 ≥ 60 AD-739: minimum interval between Dreaming-driven Card refreshes.
artifact_fenced_threshold_lines int 40 ≥ 10 AD-797: fenced code block line-count threshold for artifact extraction. Blocks shorter than this stay inline.

memory

Episodic memory configuration.

Field Type Default Bounds Description
collection_name str 'probos_episodes'
max_episodes int 100000
access_policy str 'permissive'
relevance_threshold float 0.7
agent_recall_threshold float 0.25
fts_keyword_semantic_floor float 0.2
embedding_model str 'multi-qa-MiniLM-L6-cos-v1'
query_reformulation_enabled bool True
similarity_threshold float 0.6
verify_content_hash bool True
eviction_audit_enabled bool True
shutdown_consolidation_timeout_s float 30.0
migration_timeout_s float 300.0 ≥ 10.0, ≤ 3600.0 BF-295 (#748): per-migration timeout in seconds for episodic-memory startup migrations. Stuck migrations honest-degrade after this ceiling. Default 300s; range 10s–3600s.
schema_version_tracking bool False
oracle_match_reason_enabled bool False
shutdown_drain_timeout_s float 30.0 ≥ 1.0, ≤ 300.0 AD-825: max seconds to wait for write-holding tasks (dreaming, consolidation, episodic backup) to finish current operation before falling through to AD-824 cancel sweep.
hnsw_sync_threshold int 64 ≥ 4, ≤ 10000
hnsw_batch_size int 32 ≥ 1, ≤ 10000
backup_enabled bool True
backup_retain_days int 7 ≥ 1, ≤ 365
recall_weights dict[str, float] {'semantic': 0.35, 'keyword': 0.2, 'trust': 0.1, 'hebbian': 0.05, 'recency': 0.15, 'anchor': 0.15}
recall_convergence_bonus float 0.1
recall_rerank_enabled bool False
recall_rerank_weights dict[str, float] {'strength': 1.0, 'recency': 0.5, 'importance': 0.5, 'affect': 0.0}
affect_capture_enabled bool False
recall_temporal_match_weight float 0.25
recall_temporal_mismatch_penalty float 0.15
recall_confidence_weak_floor float 0.45
hybrid_recall_enabled bool False
hybrid_rrf_k int 60
recall_fok_logging_enabled bool False
remember_know_typing_enabled bool False
cross_agent_recall_enabled bool False
recall_confidence_gating_enabled bool False
reconsolidation_enabled bool False
transcript_grounded_recall_enabled bool False
transcript_grounding_max_threads int 8
transcript_grounding_max_chars int 1200
transcript_retention_days int 0
transcript_reaper_interval_seconds int 3600
group_episode_enrichment_enabled bool False
group_reflection_max_chars int 600
episode_visual_binding_enabled bool False
tcm_enabled bool True
tcm_dimension int 16
tcm_drift_rate float 0.95
tcm_weight float 0.15
tcm_fallback_watch_weight float 0.05
recall_context_budget_chars int 4000
anchor_dimension_weights dict[str, float] {'temporal': 0.25, 'spatial': 0.25, 'social': 0.25, 'causal': 0.15, 'evidential': 0.1}
anchor_confidence_gate float 0.3
composite_score_floor float 0.35
max_recall_episodes int 0
recall_quality_floor float 0.4
recall_tiers dict[str, dict[str, Any]] {'basic': {'k': 3, 'context_budget': 1500, 'anchor_confidence_gate': 0.0, 'composite_score_floor': 0.0, 'max_recall_episodes': 0, 'recall_quality_floor': 0.0, 'use_salience_weights': False, 'cross_department_anchors': False}, 'enhanced': {'k': 5, 'context_budget': 4000, 'anchor_confidence_gate': 0.3, 'composite_score_floor': 0.35, 'max_recall_episodes': 0, 'recall_quality_floor': 0.4, 'use_salience_weights': True, 'cross_department_anchors': False}, 'full': {'k': 8, 'context_budget': 6000, 'anchor_confidence_gate': 0.3, 'composite_score_floor': 0.35, 'max_recall_episodes': 0, 'recall_quality_floor': 0.4, 'use_salience_weights': True, 'cross_department_anchors': True}, 'oracle': {'k': 10, 'context_budget': 8000, 'anchor_confidence_gate': 0.2, 'composite_score_floor': 0.0, 'max_recall_episodes': 0, 'recall_quality_floor': 0.0, 'use_salience_weights': True, 'cross_department_anchors': True}}

attention

AD-1028: ContextAssembler / global token-budget configuration.

Field Type Default Bounds Description
enabled bool False
token_budget int 120000 ≥ 1000
salience_scoring bool False
w_rel float 1.0 ≥ 0.0
w_rec float 0.5 ≥ 0.0
w_imp float 0.5 ≥ 0.0
recency_half_life_seconds float 86400.0 > 0.0
camera_scene_bid_enabled bool True
camera_novelty_minimum float 0.3 ≥ 0.0, ≤ 1.0
camera_novelty_ema_alpha float 0.3 > 0.0, ≤ 1.0
camera_recessive_suppress_threshold float 0.15 ≥ 0.0, ≤ 1.0
arousal_enabled bool False
arousal_red_budget_multiplier float 0.5 > 0.0, ≤ 1.0
arousal_full_decay_seconds float 300.0 > 0.0
arousal_repeat_window_seconds float 60.0 > 0.0

dreaming

Dreaming / offline consolidation configuration.

Field Type Default Bounds Description
organ_enabled bool False
idle_threshold_seconds float 120.0
dream_interval_seconds float 600.0
replay_episode_count int 50
pathway_strengthening_factor float 0.03
pathway_weakening_factor float 0.02
prune_threshold float 0.01
trust_boost float 0.1
trust_penalty float 0.1
pre_warm_top_k int 5
notebook_consolidation_enabled bool True
notebook_consolidation_threshold float 0.6
notebook_consolidation_min_entries int 2
notebook_convergence_threshold float 0.5
notebook_convergence_min_agents int 3
notebook_convergence_min_departments int 2
active_retrieval_enabled bool False
retrieval_episodes_per_cycle int 3
retrieval_success_threshold float 0.6
retrieval_partial_threshold float 0.3
retrieval_initial_interval_hours float 24.0
retrieval_max_interval_hours float 168.0
retrieval_counselor_failure_streak int 3
reminiscence_enabled bool True
reminiscence_episodes_per_session int 3
reminiscence_concern_threshold int 3
reminiscence_confabulation_alert float 0.3
reminiscence_cooldown_hours float 2.0
activation_enabled bool True
activation_decay_d float 0.5
activation_prune_threshold float -2.0
activation_access_max_age_days int 180
prune_min_age_hours int 24
prune_max_fraction float 0.1
reflection_enabled bool True
reflection_max_per_cycle int 3
reflection_min_importance int 8
per_agent_dream_attribution_enabled bool False
aggressive_prune_enabled bool True
aggressive_prune_min_age_hours int 168
aggressive_prune_threshold float 0.0
aggressive_prune_max_fraction float 0.25
episode_pressure_threshold int 5000
episode_pressure_multiplier float 1.5
trace_exemplars_per_procedure int 3
relationship_inference_enabled bool True
relationship_inference_max_pairs_per_run int 50
relationship_inference_max_per_entity int 5
relationship_inference_min_confidence float 0.6

dream_wm

AD-671: Dream-Working Memory bridge configuration.

Field Type Default Bounds Description
enabled bool True
max_priming_entries int 3
flush_min_entries int 5
priming_category str 'observation'

scaling

Adaptive pool scaling configuration.

Field Type Default Bounds Description
enabled bool True
scale_up_threshold float 0.8
scale_down_threshold float 0.2
scale_up_step int 1
scale_down_step int 1
cooldown_seconds float 30.0
observation_window_seconds float 60.0
idle_scale_down_seconds float 120.0

federation

Multi-node federation configuration.

Field Type Default Bounds Description
enabled bool False
node_id str 'node-1'
bind_address str 'tcp://127.0.0.1:5555'
peers list[probos.config.PeerConfig] []
forward_timeout_ms int 5000
gossip_interval_seconds float 10.0
validate_remote_results bool True
memory_policy str 'clean_room'
memory_policy_selective_tags list[str] []
min_peer_trust_score float 0.0
memory_access_policy str 'shared_trust'
shared_trust_min_score float 0.5 ≥ 0.0, ≤ 1.0
dp_min_cohort_size int 3 ≥ 1

mcp_server

AD-480a: Inbound MCP server — exposes ProbOS capabilities as MCP tools.

Field Type Default Bounds Description
enabled bool False
bind_host str '127.0.0.1'
bind_port int 8765 ≥ 1, ≤ 65535
path_prefix str '/mcp'

a2a

AD-480d / AD-480e: Inbound A2A server + outbound A2A clients.

Field Type Default Bounds Description
enabled bool False
bind_host str '127.0.0.1'
bind_port int 8766 ≥ 1, ≤ 65535
agent_card_path str '/.well-known/agent.json'
outbound_peers list[probos.config.A2APeerConfig] []

ard

AD-1040: ARD (Agentic Resource Discovery) integration. Default-OFF.

Field Type Default Bounds Description
enabled bool False
well_known_path str '/.well-known/ai-catalog.json'
discovery_endpoints list[str] []
registry_url str ''
publisher_namespace_domain str ''
discovery_before_design bool False
federation_mode Literal['none', 'referrals', 'auto'] 'none'
max_referral_peers int 5 ≥ 0, ≤ 50

peer_trust

AD-480g: Probationary trust prior for federated peers.

Field Type Default Bounds Description
probationary_alpha float 1.0 > 0.0
probationary_beta float 3.0 > 0.0

tls

AD-479f: Federation TLS surface (NATS pass-through in v1).

Field Type Default Bounds Description
enabled bool False
cert_file str | None None
key_file str | None None
ca_file str | None None
verify_peer bool True

discovery

AD-479h: Multicast peer discovery (opt-in, default-False).

Field Type Default Bounds Description
multicast_enabled bool False
multicast_group str '239.255.42.99'
multicast_port int 5556
announce_interval_seconds float 5.0

cluster_monitor

AD-479g: Cluster health monitor.

Field Type Default Bounds Description
enabled bool True
peer_unreachable_seconds float 60.0

self_mod

Self-modification configuration.

Field Type Default Bounds Description
enabled bool False
require_user_approval bool True
probationary_alpha float 1.0
probationary_beta float 3.0
max_designed_agents int 5
sandbox_timeout_seconds float 60.0
allowed_imports list[str] ['asyncio', 'pathlib', 'json', 'os', 're', 'datetime', 'typing', 'dataclasses', 'collections', 'math', 'hashlib', 'urllib.parse', 'base64', 'csv', 'io', 'tempfile']
forbidden_patterns list[str] ['subprocess', 'shutil\\.rmtree', 'os\\.remove', 'os\\.unlink', 'eval\\s*\\(', 'exec\\s*\\(', '__import__', 'open\\s*\\(.*[\'\\"][waxWAX]', 'socket\\b', 'ctypes\\b', 'os\\.system', 'os\\.popen', 'os\\.exec', 'os\\.kill', '\\.write_text\\s*\\(', '\\.write_bytes\\s*\\(', '\\.unlink\\s*\\(', '__builtins__', 'compile\\s*\\(']
research_enabled bool False
research_domain_whitelist list[str] ['docs.python.org', 'pypi.org', 'developer.mozilla.org', 'learn.microsoft.com']
research_max_pages int 3
research_max_content_per_page int 2000

device

AD-843b: probationary Beta trust prior for paired devices (brain->limb tier).

Field Type Default Bounds Description
enabled bool False
probationary_alpha float 1.0 > 0.0
probationary_beta float 3.0 > 0.0

os_activity

AD-1054: consent gate for the desktop OS-activity sensor.

Field Type Default Bounds Description
enabled bool False Consent gate for the OS-activity sensor. Default OFF (no capture without consent).
poll_interval_seconds int 5 ≥ 1, ≤ 60 Heartbeat cadence (seconds) the desktop watcher reads to poll the active window.

grounding

AD-1119: consent/enable gate for the referent-grounding gate (guard G1).

Field Type Default Bounds Description
referent_gate_enabled bool False AD-1119: consent/enable gate for the referent-grounding gate. Default OFF (byte-identical when off).
ground_before_collaborate_enabled bool False AD-1120: when True (and referent_gate_enabled is also True), inject the AD-1119 honest-absence cue for an unresolved CENTRAL room referent into each dispatched crew agent's context. Default OFF (injection path byte-identical when off; has no effect unless referent_gate_enabled is on).
confab_probe_enabled bool False AD-1121: when True (and referent_gate_enabled is also True), run a context-free self-consistency divergence probe on an UNRESOLVED central room referent; on a divergence verdict, record a CASCADE_CONFAB observation and notify the Captain. Best-effort + non-blocking. Default OFF (byte-identical when off; no effect unless referent_gate_enabled is on).

dependency

AD-838c: Dynamic dependency installation for the task path.

Field Type Default Bounds Description
dynamic_install_enabled bool False
dynamic_install_policy Literal['whitelist', 'prompt_unlisted'] 'prompt_unlisted'
dynamic_install_deny list[str] []

execution

AD-993/994: governed ephemeral code execution (tiered isolation).

Field Type Default Bounds Description
enabled bool False
default_tier int 1
scratch_dir str 'data/execution'
persistent_workspaces bool True
workspace_root str 'data/execution/workspaces'
workspace_write_enabled bool False
timeout_seconds float 30.0
max_output_bytes int 65536
max_memory_mb int 512
stage_thread_artifacts bool False
max_staged_artifacts int 20
allow_package_install bool False
pip_index_url str 'https://pypi.org/simple'
install_timeout_seconds float 180.0

hooks

AD-1004: lifecycle-hook bus (deterministic interception at agent-loop points — the VS Code / Claude / Copilot hook model).

Field Type Default Bounds Description
enabled bool False

packs

AD-1003c: Capability Packs — installed-pack inventory directory.

Field Type Default Bounds Description
enabled bool False
packs_dir str 'data/packs'

skills_marketplace

AD-813: remote skill/pack marketplace BROWSE (read-only, default-OFF).

Field Type Default Bounds Description
enabled bool False
registry_url str ''
timeout_seconds float 10.0 > 0, ≤ 60
max_bytes int 2000000 > 0
max_results int 100 ≥ 1, ≤ 1000
default_page_size int 20 ≥ 1, ≤ 100

workstations

AD-1022: HXI workstation-type surface (Experience layer).

Field Type Default Bounds Description
enabled bool False

qa

SystemQAAgent configuration.

Field Type Default Bounds Description
enabled bool True
smoke_test_count int 5
timeout_per_test_seconds float 10.0
total_timeout_seconds float 30.0
pass_threshold float 0.6
trust_reward_weight float 1.0
trust_penalty_weight float 2.0
flag_on_fail bool True
auto_remove_on_total_fail bool False

knowledge

Persistent knowledge store configuration.

Field Type Default Bounds Description
enabled bool True
repo_path str ''
auto_commit bool True
commit_debounce_seconds float 5.0
max_episodes int 1000
max_workflows int 200
restore_on_boot bool True

records

Ship's Records — the durable, classified, cross-session knowledge commons (Nooplex Σ). Distinct from an agent's sovereign episodic shard (Nooplex A), which lives behind a different filter.

Ship's Records configuration (AD-434).

Field Type Default Bounds Description
enabled bool True
repo_path str ''
auto_commit bool True
commit_debounce_seconds float 5.0
max_episodes_per_hour int 20
notebook_dedup_enabled bool True
notebook_similarity_threshold float 0.8
notebook_staleness_hours float 72.0
notebook_max_scan_entries int 20
notebook_repetition_enabled bool True
notebook_repetition_window_hours float 48.0
notebook_repetition_threshold_count int 3
notebook_repetition_novelty_threshold float 0.2
notebook_repetition_suppression_count int 5
notebook_metrics_enabled bool True
realtime_convergence_enabled bool True
realtime_convergence_threshold float 0.5
realtime_divergence_threshold float 0.3
realtime_convergence_staleness_hours float 72.0
realtime_max_scan_per_agent int 5
realtime_min_convergence_agents int 2
realtime_min_convergence_departments int 2
convergence_independence_threshold float 0.3
notebook_quality_enabled bool True
notebook_quality_low_threshold float 0.3
notebook_quality_warn_threshold float 0.5
notebook_staleness_alert_rate float 0.7
semantic_index_enabled bool False

archive

Ship's Archive configuration (AD-524).

Field Type Default Bounds Description
enabled bool True
db_path str ''

telemetry

Ship's Telemetry configuration (AD-461).

Field Type Default Bounds Description
enabled bool True
report_interval_seconds float 60.0
max_samples_per_bucket int 1000

post_budget_telemetry

BF-238: Post-budget exhaustion telemetry configuration.

Field Type Default Bounds Description
enabled bool True
exhaustion_alert_threshold float 0.5
min_samples_for_alert int 10
recent_suppressions_max int 100

confidence

AD-444: Knowledge confidence scoring configuration.

Field Type Default Bounds Description
enabled bool True
default_confidence float 0.5
confirm_delta float 0.15
contradict_delta float 0.25
auto_supersede_threshold float 0.1
auto_apply_threshold float 0.8
suppress_threshold float 0.5

lint

AD-563: Knowledge linting configuration.

Field Type Default Bounds Description
enabled bool True
min_coverage_per_department int 5
inconsistency_keywords dict[str, str] {'increased': 'decreased', 'improved': 'degraded', 'rising': 'falling', 'positive': 'negative', 'success': 'failure'}

quality_trigger

AD-564: Quality-triggered forced consolidation configuration.

Field Type Default Bounds Description
enabled bool True
min_quality_threshold float 0.4
max_stale_rate float 0.3
max_repetition_rate float 0.2
cooldown_seconds float 1800.0
max_forced_per_day int 5

quality_router

AD-565: Quality-informed routing configuration.

Field Type Default Bounds Description
enabled bool True
min_weight float 0.5
max_weight float 1.5
concern_threshold float 0.3

onboarding

AD-442: Onboarding ceremony configuration.

Field Type Default Bounds Description
enabled bool True
activation_trust_threshold float 0.65
naming_ceremony bool True

holodeck_birth_chamber

AD-486: Holodeck Birth Chamber — graduated cognitive onboarding.

Field Type Default Bounds Description
enabled bool False
bypass_for_existing_agents bool True
department_order list[str] ['security', 'operations', 'engineering', 'science', 'medical']
calibration_min_episodes int 5 ≥ 1
affective_baseline_check_enabled bool True
auto_advance_enabled bool True
auto_advance_poll_interval_seconds float 2.0 ≥ 0.1, ≤ 30.0
max_self_discovery_probe_attempts int 3 ≥ 1

holodeck_scenarios

AD-539b: Holodeck scenario generation from skill gaps.

Field Type Default Bounds Description
enabled bool False
auto_register_with_harness bool True
default_threshold float 0.6 ≥ 0.0, ≤ 1.0
default_tier int 2 ≥ 1, ≤ 3
category_fallback str 'construction'
persist_to_sqlite bool False
data_subdir str 'holodeck_scenarios'

team_simulations

AD-510: Holodeck team simulations — group discovery & collaboration.

Field Type Default Bounds Description
enabled bool False
auto_register_with_harness bool True
default_threshold float 0.6 ≥ 0.0, ≤ 1.0
default_tier int 2 ≥ 1, ≤ 3
enforce_required_departments bool True
persist_to_sqlite bool False
data_subdir str 'team_simulations'

skill_requests

AD-906: Crew skill-acquisition request queue.

Field Type Default Bounds Description
enabled bool False
data_subdir str 'skill_requests'

naming

Ship & crew naming conventions (AD-499).

Field Type Default Bounds Description
enabled bool True
captain_ship_override str ''
extra_banned_words list[str] []

runtime_overrides

Runtime override layer configuration (AD-468).

Field Type Default Bounds Description
enabled bool True
store_filename str 'runtime_overrides.json'

utility_agents

Utility agent suite configuration (AD-252).

Field Type Default Bounds Description
enabled bool True

swe_specialists

AD-476 v1 — opt-in pool registration for the five SWE specialists.

Field Type Default Bounds Description
enabled bool False
pool_size_per_specialty int 1
model_tier_overrides dict[str, str] {'backend': 'deep', 'frontend': 'standard', 'test': 'fast', 'infrastructure': 'standard', 'data': 'deep'}

native_swe_harness

AD-549: Configuration for the native SWE agentic harness.

Field Type Default Bounds Description
enabled bool False Master gate. When False, builds route to existing native/visiting paths.
eligibility_modify_only bool True Phase α default. Only modify-only builds (all targets exist) eligible.
max_iterations int 25 ≥ 1, ≤ 200
max_fix_iterations int 5 ≥ 1, ≤ 20
token_budget int | None None ≥ 1024
compaction_threshold_pct float 0.8 ≥ 0.1, ≤ 0.95
blocked_paths list[str] ['src/probos/security/', '.env', 'config/sealed_modules.yaml'] AD-548: Pre-hook denies tool calls touching these path substrings.

agentic_loop

Conversation mechanics for the agentic loop. tool_result_max_chars is the one to look at first: it ships at 0, meaning unbounded, and max_iterations bounds turns rather than bytes — so a single large tool result can exhaust the context window.

AD-1146: configuration shared by every AgenticLoop.

Field Type Default Bounds Description
structured_tool_messages bool False AD-1146: emit the provider's real multi-turn message array (assistant.tool_calls + role:'tool' results keyed by tool_call_id) instead of flattening the transcript into one prompt string. Default-OFF per convention #14 — the flattened AD-545 path stays byte-identical until the operator opts in.
tool_result_max_chars int 0 ≥ 0 AD-1148: maximum characters of a single tool result allowed into the loop's message history. 0 = unbounded (default-OFF), which keeps message content byte-identical. Applies to both the legacy flattened path and the AD-1146 structured path, and to error results. The durable tool trace is unaffected — bounding is a working-context concern only.
tool_result_head_chars int 4000 ≥ 0 AD-1148: characters kept from the START of a bounded tool result. Mirrors TOOL_RESULT_HEAD_CHARS in swe_harness/agentic_loop.py. Head and tail are both preserved because many tools print their header first and their summary line last. Shrunk proportionally when tool_result_max_chars cannot hold head + tail + the elision marker. Only consulted once tool_result_max_chars is non-zero.
tool_result_tail_chars int 2000 ≥ 0 AD-1148: characters kept from the END of a bounded tool result. Mirrors TOOL_RESULT_TAIL_CHARS in swe_harness/agentic_loop.py. Only consulted once tool_result_max_chars is non-zero.
parallel_tool_calls_enabled bool False AD-1147: execute the read-only tool calls from a single LLM response concurrently instead of one at a time. Default-OFF per convention #14 — the AD-545 sequential loop stays byte-identical until the operator opts in. Only tool ids on the PARALLEL_SAFE_TOOL_IDS allowlist in swe_harness/agentic_loop.py ever run concurrently; mutating tools and unrecognised tool ids stay sequential. That allowlist is deliberately NOT configurable — it is a safety property, not a tuning knob.
max_parallel_tool_calls int 3 ≥ 1, ≤ 16 AD-1147: ceiling on concurrently in-flight tool calls within one LLM response. Mirrors PARALLEL_TOOL_CALLS_DEFAULT / PARALLEL_TOOL_CALLS_MAX in swe_harness/agentic_loop.py and the AgenticDispatchConfig.max_parallel_subtasks default — fan-out is a Safety Budget concern, so it is bounded rather than unlimited. Only consulted once parallel_tool_calls_enabled is True.
tool_trace_output_max_chars int 8192 ≥ 0 AD-1151: maximum characters of a single tool OUTPUT persisted into the durable tool trace. 0 = do not persist outputs at all, which yields a blob byte-identical to the pre-AD-1151 trace. Mirrors TOOL_TRACE_OUTPUT_MAX_CHARS in swe_harness/agentic_loop.py. The durable head/tail split is derived from THIS cap (2:1, the AD-1148 ratio), not from tool_result_head_chars / tool_result_tail_chars, so raising this value really does retain more. resolve_tool_trace_bounds clamps the effective value UP to tool_result_max_chars when a non-zero context cap exceeds it, so the trace is never bounded tighter than the transcript the model already saw. The clamp is skipped when this field is 0, which stays an explicit opt-out rather than being silently re-enabled. HONEST SCOPE: this closes the gap only against a BOUNDED context. tool_result_max_chars ships at 0 (unbounded), and no finite durable cap can retain more than an unbounded transcript — so on the shipped defaults the trace still records LESS than the model saw. What it does guarantee is that the output survives the conversation at all, which is what did not happen before. DEFAULT-ON: an explicit, documented carve-out from convention #14 (default-OFF on transitional flags), granted on the same grounds as warm_boot.enabled — an audit trail that is off by default does not audit. The carve-out is NOT precedent for a non-guarantee feature: the cost is bounded by tool_trace_max_bytes and the array shape plus every legacy key are preserved either way, so nothing breaks when it is on.
tool_trace_max_bytes int 262144 ≥ 0 AD-1151: ceiling on the whole encoded tool-trace blob, in bytes (256 KiB). 0 = no total cap. Mirrors TOOL_TRACE_MAX_BYTES in swe_harness/agentic_loop.py. Deliberately conservative against the 5 GiB attachments.max_store_bytes default: AttachmentStore.write can raise AttachmentStoreFullError, which honest-degrades the WHOLE trace to None, call records included — so a smaller blob protects the request records this AD must not regress. When the cap binds, later outputs are elided whole and marked; call records are never dropped.

ward_room

Ward Room communication fabric configuration (AD-407).

Field Type Default Bounds Description
enabled bool False
max_agent_rounds int 5
agent_cooldown_seconds float 45
max_thread_posts int 50
default_discuss_responder_cap int 3
retention_days int 7
retention_days_endorsed int 30
retention_days_captain int 0
archive_enabled bool True
prune_interval_seconds float 86400.0
dm_exchange_limit int 15
dm_similarity_threshold float 0.6
router_concurrency_limit int 10
event_coalesce_ms int 200
dm_response_budget int 6
dm_response_window_seconds float 600.0
dm_pair_exchange_budget int 8

group_chat

AD-915: ad-hoc group-chat turn-taking facilitator.

Field Type Default Bounds Description
max_speakers_per_turn int 0
convergence_enabled bool True
convergence_similarity_threshold float 0.6
convergence_min_messages int 4
convergence_min_agents int 2
weight_mention float 0.4
weight_recency float 0.25
weight_department float 0.25
weight_trust float 0.1
weight_exploration float 0.0
conversation_trust_enabled bool False
conversation_trust_positive_weight float 0.05
conversation_trust_negative_weight float 0.15
conversation_trust_max_outcomes int 4
conversation_trust_correction_observe_enabled bool False
agent_create_cooldown_seconds float 60.0
agent_create_max_per_window int 5
agent_create_window_seconds float 3600.0
auto_task_room_enabled bool False
agent_reactivity_enabled bool False
max_agent_rounds int 2
agent_next_speaker_selection_enabled bool False
max_address_extensions int 1
agent_initiated_kickoff_enabled bool False
escalation_suggestion_enabled bool False
escalation_min_crew int 3
escalation_min_posts int 6
broadcast_terminator_enabled bool False
turn_mode_policy_enabled bool False
broadcast_weight_mention float 0.2
broadcast_weight_recency float 0.15
broadcast_weight_department float 0.5
broadcast_weight_trust float 0.1
scale_aware_facilitation_enabled bool False
facilitation_gate_threshold int 5 ≥ 2
force_facilitation_min int 0 ≥ 0

visiting_officers

AD-701: Visiting officer registry tunables.

Field Type Default Bounds Description
enabled bool False
session_ttl_seconds float 3600.0 > 0.0
sweep_interval_seconds float 60.0 > 0.0
default_capabilities list[str] ['ward_room.post', 'ward_room.read']

workflow_cron

AD-707: Workflow cron-trigger scheduler configuration.

Field Type Default Bounds Description
enabled bool False
db_path str ''
tick_interval_seconds float 1.0 > 0.0
initial_triggers list[dict[str, str]] []

query_planner

Memvid pattern 1: relational query routing for the recall pipeline.

Field Type Default Bounds Description
enabled bool False
fall_through_on_empty bool True

assignments

Dynamic assignment groups configuration (AD-408).

Field Type Default Bounds Description
enabled bool False

bridge_alerts

Bridge Alerts — proactive Captain & crew notifications (AD-410).

Field Type Default Bounds Description
enabled bool False
cooldown_seconds float 300
trust_drop_threshold float 0.15
trust_drop_alert_threshold float 0.25
resolve_clean_period float 3600.0
default_dismiss_duration float 14400.0

firewall

AD-529: Communication Contagion Firewall configuration.

Field Type Default Bounds Description
enabled bool True
scan_trust_threshold float 0.65
low_trust_threshold float 0.45
hex_id_min_length int 6
hex_id_threshold int 2
fabricated_metrics_threshold int 3
flag_window_seconds float 3600.0
quarantine_threshold int 3

security

Security Team configuration (AD-455).

Field Type Default Bounds Description
enabled bool True
max_payload_bytes int 65536 ≥ 1024
rate_window_seconds float 60.0 ≥ 1.0
rate_max_requests int 60 ≥ 1
max_threat_severity float 0.8 ≥ 0.0, ≤ 1.0
burst_window_seconds float 60.0 ≥ 1.0
burst_threshold int 20 ≥ 2
campaign_interval_seconds float 3600.0 ≥ 60.0
profile Literal['strict', 'relaxed'] 'strict'
permission_mode Literal['manual', 'autopilot'] 'manual'
policy_engine_class str 'NullPolicyEngine'

permissions

AD-711: declarative permission lists (enforcement deferred to AD-711-1).

Field Type Default Bounds Description
allow list[str] []
deny list[str] []

auth

AD-722b-1: minimal crew-scope authentication.

Field Type Default Bounds Description
crew_scope_token str '' Shared bearer token for crew-scope auth on telemetry surfaces. Empty string disables auth. Set via config/system.yaml to opt in.

emergent_detector

BF-124: Emergent detector calibration parameters.

Field Type Default Bounds Description
cluster_edge_threshold float 0.3
cluster_min_size int 3
cluster_min_avg_weight float 0.25
cluster_cooldown_seconds float 1800.0
cluster_activity_window float 900.0
dream_min_history int 5
dream_anomaly_min_strengthened int 10
dream_anomaly_min_pruned int 5
dream_anomaly_min_trust_adj int 10
adaptive_window_size int 30
adaptive_z_threshold float 2.5
adaptive_debounce_count int 2
adaptive_min_history int 8

emergence_collector

AD-454: EvidenceCollector — research opt-in, default disabled.

Field Type Default Bounds Description
enabled bool False
confidence_threshold float 0.7 ≥ 0.0, ≤ 1.0
dedup_window_seconds float 600.0 ≥ 0.0
output_dir str 'data/research/emergence-evidence'
llm_tier str 'fast'
trial_id str 'default'
thread_context_limit int 5 ≥ 0, ≤ 50
max_reasoning_chars int 2000 ≥ 100, ≤ 20000

novelty_gate

AD-493: Semantic novelty gate — suppress rehashed observations.

Field Type Default Bounds Description
enabled bool True
similarity_threshold float 0.82
max_fingerprints_per_agent int 50
decay_hours float 24.0
min_text_length int 80

earned_agency

Earned Agency — trust-tiered behavioral gating (AD-357).

Field Type Default Bounds Description
enabled bool False
initiative_trust_thresholds dict[str, float] {'responsive': 0.3, 'contributory': 0.5, 'proactive': 0.7}

duty_schedule

Captain-configured work-hours/quiet-hours policy for proactive scans.

Field Type Default Bounds Description
scan_throttle_sec dict[str, int] {'inbox': 300, 'calendar': 600, 'teams': 900}
daily_briefing_time str '08:00'
briefing_reminder_throttle_sec int 3600

work_hours

Time window policy definition used for proactive scheduling.

Field Type Default Bounds Description
start_time str '08:00'
end_time str '18:00'
days list[int] [0, 1, 2, 3, 4]

quiet_hours

Time window policy definition used for proactive scheduling.

Field Type Default Bounds Description
start_time str '08:00'
end_time str '18:00'
days list[int] [0, 1, 2, 3, 4]

proactive_cognitive

Proactive Cognitive Loop — periodic idle-think (Phase 28b).

Field Type Default Bounds Description
enabled bool False
interval_seconds float 120.0
cooldown_seconds float 300.0
trust_reward_weight float 0.1
trust_no_response_weight float 0.0
trust_duty_bonus float 0.1
stagger_enabled bool True
min_stagger_seconds float 5.0
yeoman_digest_window_seconds float 60.0

proactive_scan

AD-763: scoping config for proactive scans (folders, calendars, filters).

inbox

AD-763: per-operator scoping of the inbox proactive scan.

Field Type Default Bounds Description
folders list[str] ['Inbox'] Graph mail folder IDs (or 'Inbox' alias) to include in scans.
lookback_hours int 24 ≥ 1, ≤ 336 Window (hours) to query backward from now.
importance_filter Literal['any', 'high'] 'any' 'any' includes all importance levels; 'high' restricts to high-importance only.
unread_only bool False If True, only unread messages are surfaced.
sender_allowlist list[str] [] Email addresses or domains (e.g. '@acme.com'). Empty = no allow filter.
sender_denylist list[str] [] Email addresses or domains. Senders matching are dropped post-fetch.

calendar

AD-763: per-operator scoping of the calendar proactive scan.

Field Type Default Bounds Description
calendar_ids list[str] ['primary'] Graph calendar IDs ('primary' alias resolves to default calendar).
lookahead_hours int 24 ≥ 1, ≤ 720 Window (hours) to query forward from now.
include_declined bool False If True, events the operator has declined are still surfaced.

persistent_tasks

Persistent Task Engine — SQLite-backed scheduled tasks (Phase 25a).

Field Type Default Bounds Description
enabled bool False
tick_interval_seconds float 5.0
max_concurrent_executions int 1
dag_auto_resume bool False

channels

Channel adapter configurations.

discord

Discord bot adapter configuration.

Field Type Default Bounds Description
enabled bool False
token str ''
allowed_channel_ids list[int] []
allowed_user_ids list[int] []
command_prefix str '!'
mention_required bool False
scout_channel_id int 0

slack

Slack adapter configuration (AD-472 + AD-804).

Field Type Default Bounds Description
enabled bool False
bot_token str ''
signing_secret str ''
allowed_channel_ids list[str] []
allowed_user_ids list[str] []
default_thread_ts bool True
channels list[str] []
poll_interval_s float 8.0
poll_inbound bool True
api_base str 'https://slack.com/api'

webhook

Webhook adapter configuration (AD-472).

Field Type Default Bounds Description
enabled bool False
shared_secret str ''
allowed_channels list[str] []

m365

AD-749: Microsoft 365 integration configuration. OSS (personal): single-user OAuth device-code flow with local token caching. Commercial: multi-tenant SSO + enterprise policy extensions (not in OSS).

Field Type Default Bounds Description
enabled bool False
client_id str | None None
authority str 'https://login.microsoftonline.com/common'
scopes list[str] ['https://graph.microsoft.com/.default']
cache_dir str '~/.probos/m365_cache'

office_skills

AD-755: Local office-document skills and template registry config.

Field Type Default Bounds Description
enabled bool False
template_dir str '~/.probos/templates'
output_dir str '~/.probos/output'

medical

Medical team pool configuration (AD-290).

Field Type Default Bounds Description
enabled bool True
vitals_interval_seconds float 5.0
vitals_window_size int 12
pool_health_min float 0.5
trust_floor float 0.3
health_floor float 0.6
max_trust_outliers int 3
scheduled_diagnosis_interval float 300.0

counselor

Counselor cognitive wellness configuration (AD-503).

Field Type Default Bounds Description
enabled bool True
profile_retention_days int 90
trust_delta_threshold float 0.15
sweep_max_agents int 50
alert_on_red bool True
alert_on_yellow bool False

circuit_breaker

Cognitive circuit breaker thresholds (AD-506a).

Field Type Default Bounds Description
velocity_threshold int 8
velocity_window_seconds float 300.0
similarity_threshold float 0.6
similarity_min_events int 4
base_cooldown_seconds float 900.0
max_cooldown_seconds float 3600.0
amber_similarity_ratio float 0.25
amber_velocity_ratio float 0.6
amber_decay_seconds float 900.0
red_decay_seconds float 1800.0
critical_decay_seconds float 3600.0
critical_trip_window_seconds float 3600.0
critical_trip_count int 3

trait_adaptive

Trait-adaptive circuit breaker configuration (AD-494).

Field Type Default Bounds Description
enabled bool True

concurrency

AD-672: Per-agent concurrency management.

Field Type Default Bounds Description
enabled bool True
default_max_concurrent int 4
queue_max_size int 10
capacity_warning_ratio float 0.75
role_overrides dict[str, int] {'bridge': 3, 'operations': 6, 'engineering': 5, 'science': 4, 'medical': 3, 'security': 3}

trust_dampening

Trust cascade dampening configuration (AD-558).

Field Type Default Bounds Description
dampening_window_seconds float 300.0
dampening_geometric_factors tuple[float, ...] (1.0, 0.75, 0.5, 0.25)
dampening_floor float 0.25
hard_trust_floor float 0.05
cascade_agent_threshold int 3
cascade_department_threshold int 2
cascade_delta_threshold float 0.15
cascade_window_seconds float 300.0
cascade_global_dampening float 0.5
cascade_cooldown_seconds float 600.0
cold_start_observation_threshold float 20.0
cold_start_dampening_floor float 0.5

emergence_metrics

Configuration for emergence metrics computation (AD-557).

Field Type Default Bounds Description
pid_bins int 2
pid_permutation_shuffles int 50
pid_significance_threshold float 0.05
min_thread_contributors int 2
min_thread_posts int 3
thread_lookback_hours float 24.0
groupthink_redundancy_threshold float 0.8
fragmentation_synergy_threshold float 0.1
tom_baseline_window int 20
tom_trend_min_samples int 10
hebbian_synergy_min_interactions int 5

emergent_leadership

Emergent leadership detection configuration (AD-439).

Field Type Default Bounds Description
enabled bool True
min_weight float 0.1
min_ratio float 1.5

orders

Chain-of-command order configuration (AD-440).

Field Type Default Bounds Description
enabled bool True
max_active_per_post int 8 ≥ 1, ≤ 64
default_ttl_seconds float 3600.0 ≥ 60.0, ≤ 86400.0

validation_framework

Validation framework configuration (AD-451).

Field Type Default Bounds Description
enabled bool True
metadata_threshold float 0.85 ≥ 0.0, ≤ 1.0
min_confidence_delta float 0.2 ≥ 0.0, ≤ 1.0

pre_flight

Pre-flight validation configuration (AD-458 / AD-458b).

Field Type Default Bounds Description
enabled bool True
llm_tier_check_enabled bool True
required_llm_tier str 'deep'
token_budget_check_enabled bool True
token_budget_blocking bool False

engineering

Engineering crew configuration (AD-457).

Field Type Default Bounds Description
enabled bool True
performance_interval_seconds float 10.0 ≥ 1.0
maintenance_interval_seconds float 300.0 ≥ 60.0
damage_control_cooldown_seconds float 60.0 ≥ 1.0

degradation

Saucer separation / graceful degradation (AD-459 / AD-459b).

Field Type Default Bounds Description
auto_pause_enabled bool False

infodynamic

Infodynamic telemetry configuration (AD-491).

Field Type Default Bounds Description
enabled bool True
event_window_seconds float 3600.0 ≥ 60.0
trust_buckets int 10 ≥ 2, ≤ 100

infrastructure

Engineering infrastructure configuration (AD-466).

Field Type Default Bounds Description
enabled bool True
backup_enabled bool True
backup_subdir str 'backups'

security_infra

Security infrastructure configuration (AD-456 + AD-456b).

Field Type Default Bounds Description
secrets_persistence_enabled bool True
secrets_store_filename str 'secrets.json'
egress_enabled bool True
egress_deny_by_default bool True
audit_enabled bool True
sandbox_enabled bool True
sandbox_default_wall_timeout_seconds float 30.0
sandbox_default_memory_peak_mb float 256.0
egress_active_enforcement bool False
credential_tier_enforcement bool False
audit_persistence_enabled bool False
audit_persistence_filename str 'audit_log.db'
audit_retention_days int 90

ground_truth

Ground-truth task verification configuration (AD-528, AD-528b, AD-528c).

Field Type Default Bounds Description
enabled bool True
threshold float 0.75 ≥ 0.0, ≤ 1.0
event_window_seconds float 600.0 ≥ 10.0
write_episode bool True
active_rejection_enabled bool False
quarantine_metadata_key str 'ground_truth_quarantine'
trust_feedback_enabled bool False
trust_feedback_success_weight float 1.0 ≥ 0.0
trust_feedback_failure_weight float 0.5 ≥ 0.0

operations

Operations crew configuration (AD-467).

Field Type Default Bounds Description
enabled bool True
resource_interval_seconds float 30.0 ≥ 1.0
resource_emit_interval_seconds float 60.0 ≥ 10.0
scheduler_interval_seconds float 60.0 ≥ 10.0
coordinator_interval_seconds float 60.0 ≥ 10.0

model_routing

Model routing configuration (AD-463).

Field Type Default Bounds Description
enabled bool True
cost_ceiling_per_million_output_tokens float | None None

ready_room

Captain's Ready Room configuration (AD-475).

Field Type Default Bounds Description
enabled bool True
idea_store_filename str 'ready_room/ideas.json'
wardroom_channel_id str 'ready_room'

dept_profiles

AD-656: dict of department-name -> DepartmentCognitiveProfile.

Field Type Default Bounds Description
profiles dict[str, probos.config.DepartmentCognitiveProfile] {}

eps

EPS - Compute/Token Distribution (AD-469).

Field Type Default Bounds Description
enabled bool True
window_seconds float 60.0 ≥ 10.0
over_budget_threshold float 1.25 ≥ 1.0, ≤ 10.0
departments list[probos.config.EPSDepartmentConfig] [EPSDepartmentConfig(name='engineering', percent=0.3, priority=3), EPSDepartmentConfig(name='science', percent=0.2, priority=4), EPSDepartmentConfig(name='medical', percent=0.15, priority=2), EPSDepartmentConfig(name='security', percent=0.15, priority=2), EPSDepartmentConfig(name='operations', percent=0.1, priority=4), EPSDepartmentConfig(name='other', percent=0.1, priority=6)]

mcp

MCP Bridge configuration (AD-449; AD-1014 stdio).

Field Type Default Bounds Description
enabled bool True
request_timeout_seconds float 30.0 ≥ 1.0
servers list[probos.config.MCPServerConfig] []
stdio_enabled bool False
command_allowlist list[str] ['uvx', 'npx', 'python', 'node', 'docker']
management_enabled bool False
agent_tools_enabled bool False
agent_tool_idle_ttl_seconds float 86400.0 ≥ 1.0
agent_tool_reaper_interval_seconds float 3600.0 ≥ 1.0

mcp_app_host

AD-597 — MCP App Host configuration.

Field Type Default Bounds Description
enabled bool False
serve_internal_games bool True
discover_external_apps bool False
internal_default_csp str "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'"
external_default_csp str "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'"
bundles_dir str ''

browser_tool

AD-706: BrowserTool (Computer Use via Playwright).

Field Type Default Bounds Description
enabled bool False
headless bool True
default_timeout_ms int 30000
session_max_duration_seconds int 1800
session_reaper_interval_seconds int 60
domain_allowlist list[str] | None None
domain_denylist list[str] []
screenshot_max_width int 1024
screenshot_max_height int 768
require_confirmation_for_tier_3 bool True
confirmation_timeout_seconds int 300
default_min_interval_seconds float 1.0
per_action_timeout_ms dict[str, int] {}
tier_3_domain_patterns list[str] ['*bank*', '*paypal*', '*stripe*', '*chase*', '*coinbase*', '*checkout*']
llm_classifier_enabled bool False AD-706d: LLM-driven tier classifier for Browser Tool actions. Augments the rule-based classifier; default OFF.
llm_classifier_tier str 'fast' AD-706d: LLM tier for classification calls. Fast is cheapest and adequate for tier classification.
llm_classifier_max_per_hour int 60 ≥ 0 AD-706d: per-runtime hourly cap on LLM classifier calls. 0 disables. Reuses the AD-722a-1 VisionLLMRateLimit primitive under scope 'browser_action_classifier'.
llm_classifier_cache_ttl_seconds int 300 ≥ 0 AD-706d: in-memory cache TTL for identical (action, url-prefix, element-text, page-title) tuples. 0 disables caching.
compute_use_max_consecutive_autonomous_actions int 5 ≥ 0, ≤ 20 AD-706c-2: per-session cap on consecutive compute_use_click actions without a Captain ACK. Resets on any tier-3 ACK signal. 0 disables compute_use entirely.
compute_use_max_per_session int 50 ≥ 0, ≤ 500 AD-706c-2: per-session hard cap on total compute_use_click calls. Independent of the consecutive-autonomous cap. 0 disables.
streaming_enabled bool False AD-706a: enable MJPEG-over-HTTP Captain-watch streaming. Default-OFF (Wave 10 convention #14).
streaming_fps int 4 ≥ 1, ≤ 15 AD-706a: frames-per-second for MJPEG streaming. Higher fps quickly overwhelms localhost.
streaming_jpeg_quality int 60 ≥ 20, ≤ 95 AD-706a: JPEG quality (Playwright page.screenshot quality param).
streaming_max_concurrent_viewers int 4 ≥ 1, ≤ 16 AD-706a: per-runtime cap on concurrent Captain-watch viewer slots.
recording_enabled bool False AD-706b: enable Playwright record_video_dir on each BrowserSession. Default-OFF.
recording_dir str 'data/browser-sessions' AD-706b: directory tree where session subdirs (and .webm files) are written.
recording_retention_days int 7 ≥ 1, ≤ 365 AD-706b: delete recordings older than this many days.
recording_reaper_interval_seconds int 3600 ≥ 60, ≤ 86400 AD-706b: sleep interval between recording-reaper sweeps.
recording_max_size_mb_per_session int 500 ≥ 10, ≤ 5000 AD-706b: per-session size cap (MB); oldest webm files deleted when exceeded.
bridge_enabled bool False AD-1052b: enable BRIDGE mode (connect_over_cdp to an external user-launched Chrome). Higher-risk than headless; default OFF.
bridge_allowed_hosts list[str] ['127.0.0.1', 'localhost', '[::1]'] AD-1052b: SSRF allowlist — the CDP endpoint host must match one of these (case-insensitive exact match). Refuses arbitrary remote CDP endpoints (exfil/SSRF guard). Localhost-only by default.
input_forwarding_enabled bool False AD-1052c: enable forwarding human pointer/keyboard input from the HXI watch canvas to the live browser page. Higher-risk (the human drives the shared/real browser); default OFF.
viewport_width int 1280 ≥ 1, ≤ 16384 AD-1052c: viewport width (CSS px) fallback for normalized-coord mapping when page.viewport_size is None.
viewport_height int 720 ≥ 1, ≤ 16384 AD-1052c: viewport height (CSS px) fallback for normalized-coord mapping when page.viewport_size is None.
action_dispatch_enabled bool False AD-745: master switch for parsing [ACTION: ...] markers in DM replies and dispatching them to BrowserTool. Default OFF.
action_dispatch_max_consecutive_autonomous int 5 ≥ 0, ≤ 20 AD-745: consecutive tier-1/2 dispatched actions before forcing tier-3 Captain confirm. Reuses AD-706c-2 Guard #10 trust-budget pattern across all action verbs (not just compute_use_click).
action_dispatch_max_per_dm_turn int 1 ≥ 1, ≤ 10 AD-745 v1: single action per DM reply. >1 reserved for AD-745-6 multi-step plans (forward marker).
action_dispatch_ack_timeout_seconds int 60 ≥ 5, ≤ 600 AD-745: tier-2 ACK timeout. Honest-degrade to TIMED_OUT after this many seconds without Captain ack. Tier-3 confirms NEVER time out (Captain decision required).
destructive_url_patterns list[str] ['*/checkout*', '*/payment*', '*/billing*', '*/auth/*', '*/login*', '*/oauth*', '*/admin/*', '*/settings/account*', '*/delete*', '*/destroy*'] AD-745: fnmatch patterns. URLs matching any pattern force ALL action verbs to tier-3 (Captain ACK every call).

credential_vault

AD-706f: Browser Tool credential vault.

Field Type Default Bounds Description
enabled bool False AD-706f: enable encrypted credential vault. Default OFF.
backend str 'file' AD-706f/AD-1016: credential backend kind. 'file' (default) = encrypted JSON vault (Fernet KEK from auth.crew_scope_token); 'keychain' = OS keychain (DPAPI / macOS Keychain / libsecret) with a non-secret metadata sidecar.
file_path str 'data/credential_vault.json' AD-706f: JSON sidecar path for the EncryptedFileCredentialVault.
keyring_index_path str 'data/credential_keyring_index.json' AD-1016: non-secret metadata sidecar path for the keychain backend (holds scope/timestamps only — never a secret value).
keyring_service_name str 'probos.credentials' AD-1016: OS-keychain service name for the keychain backend (CredentialEncryptor namespace).
max_credentials int 100 ≥ 1, ≤ 10000 AD-706f: per-vault hard cap on stored credentials.
require_https_for_fill bool True AD-706f: when True, fill_credential blocks page.fill on http:// URLs. Operators override only for explicit dev/local scenarios.

avatars

AD-721: 3D crew avatars (VRM popout).

Field Type Default Bounds Description
enabled bool True
avatars_dir str 'data/avatars'
max_vrm_size_bytes int 26214400
fallback_to_parametric_on_error bool True
blender_path str ''
blender_render_timeout_s int 180
dsl_drafts_dir str 'data/avatars/.drafts'
renderer_enabled bool False
procedural_base_mesh_fallback bool True
max_proposal_iterations int 3
proposal_history_path str | None None AD-721d-4: filesystem path for the per-agent DSL proposal history JSON sidecar. When None, defaults to <runtime.data_dir>/proposal_history.json.
vision_proposal_history_path str | None None AD-720d-2.1: filesystem path for the vision-capability proposal-history JSON sidecar.
vision_intent_divergence_enabled bool False AD-722a-1: enable vision-LLM intent-vs-render divergence detection. Default-OFF until AD-721i backend renderer ref lookup is stable.
vision_intent_divergence_max_per_hour_per_agent int 3 AD-722a-1: per-agent hourly call cap for vision-LLM intent divergence (aligns with AD-728 cost ceiling).
self_render_verify_enabled bool False AD-722e-2: enable vision-LLM digital-vs-render coherence verification. Default-OFF until AD-721i backend renderer ref lookup is stable.
self_render_verify_max_per_hour_per_agent int 3 AD-722e-2: per-agent hourly call cap for vision-LLM self-render verification (aligns with AD-728 cost ceiling).
render_verification_enabled bool False AD-728: vision-LLM render-coherence mirror. Default OFF until AD-721i backend renderer is stable.
render_verification_max_per_hour_per_agent int 3 ≥ 0 AD-728: per-agent hourly cap for render-verification vision calls. 0 disables. Shares the AD-722a-1 VisionLLMRateLimit primitive under scope 'render_verification'.
render_verification_followup_enabled bool False AD-728: when True, an AD-722a-1 intent-divergence observation triggers a render-coherence mirror call with trigger='divergence_followup'. Default OFF; flip after AD-728 RENDER_DIVERGENCE_OBSERVED telemetry is stable.
render_self_check_enabled bool False AD-728c: flip agent_initiated_stub trigger from hard-reject to a gated, rate-limited self-check. Default OFF; flip after AD-728 telemetry confirms vision-tier cost is bounded.
render_self_check_max_per_hour_per_agent int 3 ≥ 0 AD-728c: per-agent hourly cap for agent-initiated render self-checks. Applies when the agent is NOT in an active conversation. 0 disables. Uses the AD-722a-1 VisionLLMRateLimit primitive under scope 'render_self_check_hour'.
render_self_check_max_per_active_conversation int 2 ≥ 0 AD-728c: per-agent budget within a single active conversation window. Pattern: 'before reply + 1 mid-conversation'. Applies INSTEAD OF the hourly budget while the agent is in an active conversation. 0 disables self-check during active conversations.
render_self_check_active_window_seconds int 600 ≥ 0 AD-728c: seconds since the agent's last reply emission to consider it 'in an active conversation' for self-check budget selection. Default 600s = 10 minutes. Uses CognitiveAgent.last_reply_emitted_at (AD-722).
affect_drift_default_window int 8 ≥ 2, ≤ 128 AD-740: default window size (most recent N divergence entries) for affect-vs-intent drift trend summary. Operators may pass an explicit window to get_affect_drift to override.
affect_drift_threshold float 0.7 ≥ 0.0, ≤ 1.0 AD-740: match-score threshold below which an entry counts as a 'divergent' turn in the drift summary. Default 0.7 mirrors the conservative end of the AD-722a divergence band.
image_gen_enabled bool False AD-730-3: master switch for agent image generation via [GEN_IMAGE ...] bracket marker. Default OFF (transitional). Requires CognitiveConfig.llm_base_url_image_gen to be set.
image_gen_max_prompt_chars int 512 ≥ 8, ≤ 4000 AD-730-3: hard cap on the [GEN_IMAGE ...] prompt length. Markers exceeding this are silently stripped and a single WARNING is logged.
image_gen_wellness_review_required bool True AD-730-3: when True, the FIRST image_gen invocation per agent per process triggers a Counselor wellness review log entry (AD-727 governance pattern). Subsequent invocations by the same agent skip the review until process restart.
image_gen_max_image_bytes int 4194304 ≥ 65536, ≤ 26214400 AD-730-3: per-image size cap on bytes written to AttachmentStore. Defense in depth alongside the upstream API's own limits.
image_gen_mime str 'image/png' AD-730-3: declared MIME for stored images. PNG is OpenAI's default. Operator may set to image/jpeg if their endpoint returns JPEG.
peer_perception_enabled bool False AD-729: peer avatar perception capability. Default OFF until AD-729a Standing Orders ship and AD-729b certification grades at least one officer.
peer_observation_decay_seconds int 604800 ≥ 3600 AD-729: impression decay window in seconds. Observations older than this are filtered from composite impressions.
peer_observation_max_per_pair_per_thread int 1 ≥ 0 AD-729: mechanical floor — max observations per (observer, observed) pair per WR thread. 0 disables capability entirely.
cross_agent_divergence_observation_enabled bool False AD-722a-6: peer perception of intent-vs-presentation. Default OFF; requires peer_perception_enabled True AND AD-729a Standing Orders shipped before being flipped.
canvas_render_vrm_avatars bool False AD-721f: render registered VRMs in the Cognitive Canvas at canvas scale for agents within the LOD distance threshold. Default OFF -- operators with low-end GPUs keep the orb-only path.
canvas_max_concurrent_vrms int 12 ≥ 0, ≤ 64 AD-721f: max VRMs rendered simultaneously in the canvas. Agents beyond this count fall back to orb instances.
canvas_vrm_lod_distance float 15.0 > 0.0 AD-721f: camera-distance threshold (world units) under which agents render as VRMs. Beyond this distance, the orb path is used.
animations_dir str 'data/avatars/animations' AD-721e: directory of operator-installed CC0/MIT animation clips. Gitignored; operator-fetched via scripts/animations-fetch.ps1.
animations_enabled bool False AD-721e: enable AnimationMixer playback in CrewVRM. Default OFF -- operators without animations installed keep the procedural idle fallback.
pacing_enabled bool False AD-743: enable [FOLLOW_UP delay reason] marker parsing and the ConversationPacingScheduler runtime service. Default OFF transitional flag (convention #14) — existing turn-taking DM behavior is bit-for-bit preserved when disabled.
pacing_max_followups_per_active_conversation int 2 ≥ 0, ≤ 10 AD-743: per-conversation cap on synthesized follow-ups before the active window resets.
pacing_max_followups_per_hour_per_agent int 6 ≥ 0, ≤ 60 AD-743: rolling 1h ceiling on follow-ups per agent across all conversations (safety cap).
pacing_active_window_seconds int 600 ≥ 60, ≤ 3600 AD-743: silence threshold beyond which a conversation is considered inactive and the per-conversation budget resets.
pacing_min_delay_seconds int 1 ≥ 1, ≤ 60 AD-743: minimum allowed delay for a [FOLLOW_UP] marker. Markers below this floor are stripped and discarded.
pacing_max_delay_seconds int 300 ≥ 1, ≤ 900 AD-743: maximum allowed delay for a [FOLLOW_UP] marker. Markers above this ceiling are stripped and discarded.

baseline_vrms

AD-721g: per-rank baseline VRM filenames.

Field Type Default Bounds Description
ensign str ''
lieutenant str ''
commander str ''
senior str ''

avatar_telemetry

AD-722: agent-observable avatar telemetry channel.

Field Type Default Bounds Description
enabled bool True
inject_into_agent_context bool False
mouth_active_window_seconds float 3.0
polling_interval_ms int 2000
max_connections_per_agent int 4
divergence_detection bool False
divergence_negative_threshold float 0.3
divergence_positive_threshold float 0.5
divergence_negative_weight float 0.4
divergence_positive_weight float 0.1
divergence_history_size int 100
divergence_aggregate_window int 50
auto_correct_enabled bool False
auto_correct_threshold float 0.6
max_corrections_per_utterance int 1
correction_noise_factor float 1.15
correction_length_factor float 0.92
history_enabled bool True
history_retention_days int 30
history_dir str 'data/avatar_telemetry'
records_auto_write_enabled bool False
records_throttle_seconds int 3600
records_significant_events list[str] ['emotion_divergence_high', 'working_state_transition_to_blocked', 'sustained_silence']
sustained_silence_seconds int 1800
ws_diff_enabled bool True
ws_diff_threshold float 0.05
ws_full_snapshot_every_n int 10
fleet_stream_enabled bool True

sampling_rates

AD-722f: per-agent avatar-telemetry sampling rates (3 tiers).

Field Type Default Bounds Description
high_ms int 250
normal_ms int 2000
low_ms int 10000

dm_sanity_gate

Configuration for the DM one-shot sanity gate.

Field Type Default Bounds Description
enabled bool True
length_floor int 5
repetition_prefix_chars int 100
repetition_similarity_threshold float 0.85
retry_on_rejection bool True
retry_warnings list[str] ['length_floor', 'orphaned_tag']

dm_targeted_lookup

AD-725: pre-LLM targeted sub-intent dispatch on the DM one-shot path.

Field Type Default Bounds Description
enabled bool False
classifier_tier str 'regex'
timeout_ms int 500
enable_oracle bool True
enable_episodic bool True
enable_codebase bool False
enable_knowledge bool True
identity_enabled bool True
max_lookup_chars int 1500

dm_deliberate

AD-934 (Option C): flag-gated [THINK]/[DELIBERATE] deep-tier re-roll. Default OFF — opt-in because the re-roll adds a full deep-tier LLM pass (latency + cost) per marker-bearing reply.

Field Type Default Bounds Description
enabled bool False
tier str 'deep'
max_tokens int 800

dm_agentic

AD-1065: flag-gated conversational agentic turn. When enabled, a 1:1 direct_message reply runs the AgenticLoop (tool-calling) instead of a single LLM pass, so an agent can read / write / execute on the Captain's behalf mid-conversation (Claude Cowork / Codex / Copilot parity). A no-tool turn is a single pass (the model just answers), so the flag only adds latency when the agent actually calls a tool. Default OFF (opt-in: adds tool-calling + per-call latency); 1:1 only (group / ward-room / proactive / vision turns keep the single-pass path).

Field Type Default Bounds Description
enabled bool False
max_iterations int 5 ≥ 1, ≤ 25
tier str 'standard'
continue_or_ask_enabled bool False AD-1164: when a conversational turn exhausts max_iterations, continue it or ask the Captain, instead of stopping silently. BF-697 stopped the partial work being DISCARDED; this stops it being reported as though the turn had finished. With the gate on, a turn that hits the step limit either (a) re-invokes with a fresh max_iterations allowance when a standing rule from AD-1154's ActionApprovalStore covers this agent, bounded by continue_or_ask_max_passes, or (b) files a kind='continue' request into the AD-853 approval queue and returns the partial work with an explicit statement that it stopped mid-task. Default-OFF per convention #14 — with the gate off the turn behaves exactly as it does today. Only max_iterations is ever continued: token_budget is a spend ceiling the operator set, error is usually provider-window exhaustion that a longer prompt makes worse, and complete means the model chose to stop. Every failure path (absent store, raising cache read, failed re-invocation) degrades to today's behaviour, so arming this can cost you an unnecessary question but never a turn.
continue_or_ask_max_passes int 2 ≥ 1, ≤ 5 AD-1164: the hard cap on how many times ONE conversational turn's agentic loop is run, COUNTING THE FIRST. 1 means no re-invocation, identical to today; the cap is a bound, never an enable — continue_or_ask_enabled is what turns the feature on. Mirrors agentic_dispatch.crew_loop_until_done_max_iterations, which is the same bound on the crew fan-out. WORST CASE: each pass gets a fresh max_iterations (default 5, ceiling 25) turns and one turn can carry up to agentic_loop.max_parallel_tool_calls (ceiling 16) concurrent tool calls, so at this ceiling of 5 that is 5 x 25 x 16 = 2000 tool invocations for a single chat turn. A pass only happens while a live standing rule permits it, so reaching that ceiling requires the Captain to have issued one.
promote_to_task_after_seconds float 0.0 ≥ 0.0, ≤ 600.0 AD-1165: seconds a conversational agentic turn may run before it stops being a reply and becomes a background task. A Captain DM is dispatched with a 60s intent TTL, so a turn that does real work (driving a browser, producing a document) is cancelled mid-flight and the Captain is told the agent did not respond — for a turn in which it was working correctly. Past this budget the run is NOT cancelled or restarted: the same in-flight loop keeps going, a work item is opened for it, the turn returns an acknowledgement inside the TTL, and the result is posted into the same thread when it lands. Set it BELOW the 60s chat TTL with room for one more loop iteration — 35 is a reasonable starting value. 0 disables promotion, which is the default and is byte-identical to AD-1164: the turn is awaited inline and a long one still trips the TTL. Promotion needs a chat thread and a work-item store; without either it degrades to that same inline wait rather than promising a report nothing would deliver.
compaction_enabled bool False AD-1167: compact the working context of a long conversational turn. The agentic loop re-flattens its entire message history into one prompt every iteration, so without compaction each added step re-pays for every step before it. Measured on a live instance: raising max_iterations from 10 to 20 took one turn from 218,957 to 474,736 tokens — more than double for twice the steps — and produced a WORSE answer, because the early tool result that had located the target was buried under twenty rounds of re-flattened history. Compaction summarises older messages through the fast tier and preserves the most recent ones. The durable tool trace is unaffected: it is persisted after the loop finishes, so transparency is retained. Off by default; when off the loop is constructed exactly as before. Turn this on before raising max_iterations, not after.
compaction_threshold_tokens int 60000 ≥ 0 AD-1167: estimated working-context size, in tokens, at which compaction runs. Only consulted when compaction_enabled is true; 0 disables compaction even then. The default leaves generous room below a 200k context window while still engaging well before the runaway growth measured above.

agentic_tools

Tools offered inside the agentic loop, including the Σ commons read/write verbs. The publish path has no consensus gate — the rate and size bounds are the control.

AD-1072: conversational-loop discovery + delegation tools (default-OFF).

Field Type Default Bounds Description
tool_search_enabled bool False
delegation_enabled bool False
delegation_max_depth int 1 ≥ 0, ≤ 3
delegation_max_iterations int 5 ≥ 1, ≤ 25
delegation_tier str 'standard'
oracle_query_enabled bool False
publish_finding_enabled bool False
publish_finding_max_per_hour int 12 ≥ 1, ≤ 100
publish_finding_max_content_chars int 4000 ≥ 200, ≤ 20000
publish_finding_max_per_hour_ship int 40 ≥ 1, ≤ 500
browser_enabled bool False AD-1153: offer the registered BrowserTool to the agentic loop. v1 is READ-ONLY — the loop admits only goto, state, extract_text, back, forward and wait, which are exactly the actions that stay below the tier-3 confirmation gate; click/type/scroll wait on AD-1154. Also requires browser_tool.enabled plus an importable Playwright. Egress consequence: browser_tool.domain_allowlist defaults to None, which permits every host absent from domain_denylist — set an allowlist to bound where an agent may navigate.
crew_sigma_context_enabled bool False
crew_sigma_max_chars int 2000 ≥ 200, ≤ 8000
crew_sigma_max_entries int 4 ≥ 1, ≤ 12
crew_sigma_min_score float 0.35 ≥ 0.0, ≤ 1.0

repair

Dispatching a reported fault to a harness of the Captain's choosing.

Field Type Default Bounds Description
enabled bool False AD-1172: propose a repair when a fault is reported. Off by default. When on, a fault that reaches propose_after_occurrences raises an approval asking the Captain whether to dispatch it and to which harness. Approval is required before anything is spent: an Architect run costs deep-tier tokens, and a tool failing in a loop must not be able to spend them on its own.
targets list[str] ['architect'] AD-1172: harnesses this instance can dispatch a repair brief to, in the order they are offered. 'architect' is the internal crew (ArchitectAgent then BuilderAgent). Any other name is an external harness — GitHub Copilot, Claude Code, a person — reached by rendering the brief for the Captain to carry across. External targets need no code: the brief IS the interface, which is what keeps them first-class rather than a degraded path.
propose_after_occurrences int 2 ≥ 1 AD-1172: how many times a fault must recur before a repair is proposed. Matches the AD-1168/1170/1171 threshold: once is a transient, twice is the tool.

approval_inbox

AD-1154: park an unattended consequential action instead of performing it.

Field Type Default Bounds Description
enabled bool False AD-1154: park a tier-3 unattended tool action as a durable capability request (kind='action') instead of letting the tier-3 gate return its success-shaped intervention_required no-op. The agent is told in an ERROR-shaped result that the step did not run, and the run continues. Approval does NOT replay the parked action — the browser session TTL (1800s) is far shorter than human decision latency, so replaying a page-relative selector against a changed page would be a different act. Off by default; off means the dispatch path is byte-identical to AD-1153.
standing_rules_enabled bool False AD-1154: additionally permit the Captain to convert an approval into a standing, scoped, mandatorily-expiring rule that answers the same ask on the next run. Separate from 'enabled' so an operator can take the audit trail without the durable privilege grant. Rules match (agent_id, tool_id, action, scope_key) exactly — there is no wildcard, and scope_key='' matches only an ask whose scope is also ''. No HXI affordance ships with this: grant_standing is API-only on POST /api/capability-requests/{id}/decide, and the capability-request panel has no Approve-with-standing control until a follow-up adds one.
standing_rule_max_ttl_hours int 168 ≥ 1, ≤ 720 AD-1154: hard ceiling on a standing rule's lifetime. A requested TTL above this is clamped, not rejected. expires_at is NOT NULL in the action_approvals schema, so no standing rule can be issued without an expiry.
standing_rule_default_ttl_hours int 24 ≥ 1, ≤ 720 AD-1154: TTL applied when the Captain approves with grant_standing but names no duration. Deliberately far below standing_rule_max_ttl_hours so the low-effort path is the short-lived one. Should be <= the max; clamped at issue time rather than validated, so an out-of-order pair cannot 422 an unrelated config write.
max_pending_per_agent int 20 ≥ 1, ≤ 200 AD-1154: per-agent cap on undecided action asks. At the cap the wrapper REFUSES without filing and logs at WARNING with the agent id and count — a neglected inbox becomes an honest refusal within this many asks per agent rather than an unbounded queue that looks like progress.
pending_ask_ttl_hours int 72 ≥ 1, ≤ 720 AD-1154: age at which an undecided ask is treated as stale. Stale asks are excluded from the max_pending_per_agent count but are NEITHER auto-approved NOR auto-denied — they keep status='pending' and keep appearing in the pending list, because auto-approving on timeout would make walking away the approval mechanism.
work_permits_enabled bool False AD-1159: issue single-holder, expiring work permits over a workstation within a crew session, so at most one agent holds (session_id, workstation_id) at a time and its hazard ceiling is explicit rather than implied. A permit's issuing authority must differ from its holder — the officer who authorizes never performs — and every permit carries a mandatory expiry (expires_at is NOT NULL in the work_permits schema). Off by default; off means the dispatch path is byte-identical to AD-1158. Nothing consumes the store in AD-1159: it lands with tests and no callers so its first exercise is not in production. AD-1160 wires it.
work_permit_default_ttl_seconds float 3600.0 > 0.0, ≤ 86400.0 AD-1159: lifetime applied to a work permit whose issuer names no duration. One hour, deliberately short: a permit is authority to act on a live workstation, and the cost of an expiry that is too short is a reissue, while the cost of one that is too long is an authority nobody remembers granting. Expiry is lazy — a lapsed permit answers as absent on the next read rather than being reaped — so a stale row is inert, not active.
work_permit_max_tier_ceiling int 2 ≥ 1, ≤ 3 AD-1159: highest classify_action hazard tier a work permit may authorize by default. 2 covers observation plus ordinary click/type/goto; tier 3 (eval_js, upload_file, fill_credential, checkout and payment paths) is excluded so reaching it needs an explicit Captain-issued permit rather than an inherited default. Bounded 1-3 because that is the whole tier ladder classify_action returns; a ceiling outside it is unrepresentable rather than merely discouraged.

dm_mesh_synthesis

BF-629: after a requires_reflect inline mesh read (web_search / read_page) on the conversational path, make ONE LLM pass so the originating agent REASONS over the result in its own voice (search -> reason -> answer), like an agentic tool-use loop, instead of pasting raw links/page dumps verbatim.

Field Type Default Bounds Description
enabled bool False
tier str 'standard'
max_tokens int 700

attachments

AD-720: chat attachments configuration.

Field Type Default Bounds Description
enabled bool True
serve_remote_enabled bool False
auto_resolve_remote_enabled bool False
attachments_dir str 'data/attachments'
max_attachment_bytes int 10485760
allowed_mime_types list[str] ['image/png', 'image/jpeg', 'image/webp', 'image/gif', 'application/pdf', 'text/plain', 'text/markdown', 'application/json', 'text/csv', 'audio/webm', 'audio/wav', 'audio/mpeg', 'audio/mp4', 'audio/ogg']
vision_tier str 'vision'
text_extraction_max_bytes int 1048576
pdf_extraction_enabled bool False
multi_image_warn_threshold int 5
images_per_dm_hard_cap int 8
image_max_dimension int 1024
daily_image_budget_per_captain int 50
image_budget_path str | None None AD-730-2-1: filesystem path for the per-Captain image-budget JSON sidecar. When None, defaults to <runtime.config.data_dir>/image_budget.json.
vision_tier_overrides dict[str, str] {}
max_store_bytes int 5368709120 ≥ 0 AD-733-1: total bytes ceiling for attachments_dir. Reaper evicts oldest perception_frame entries first, then oldest chat_attachment entries, until under cap. 0 = disabled.

cloud_pickers

AD-720c: cloud file picker config (OAuth-bound). Default OFF.

Field Type Default Bounds Description
enabled bool False AD-720c master switch.
max_file_size_bytes int 50000000 ≥ 1
state_ttl_seconds int 300 ≥ 30 AD-720c: CSRF state-token TTL (seconds).

google_drive

AD-720c: per-provider OAuth client credentials. Operator-supplied (BYOC).

Field Type Default Bounds Description
enabled bool False AD-720c: enable this provider.
client_id str '' Operator-supplied OAuth client ID.
client_secret str '' Operator-supplied OAuth client secret.
redirect_uri str 'http://127.0.0.1:8081/api/cloud-pickers/{provider}/callback' AD-720c: OAuth redirect URI; must match the registration at the provider. {provider} is substituted with the provider id.

onedrive

AD-720c: per-provider OAuth client credentials. Operator-supplied (BYOC).

Field Type Default Bounds Description
enabled bool False AD-720c: enable this provider.
client_id str '' Operator-supplied OAuth client ID.
client_secret str '' Operator-supplied OAuth client secret.
redirect_uri str 'http://127.0.0.1:8081/api/cloud-pickers/{provider}/callback' AD-720c: OAuth redirect URI; must match the registration at the provider. {provider} is substituted with the provider id.

dropbox

AD-720c: per-provider OAuth client credentials. Operator-supplied (BYOC).

Field Type Default Bounds Description
enabled bool False AD-720c: enable this provider.
client_id str '' Operator-supplied OAuth client ID.
client_secret str '' Operator-supplied OAuth client secret.
redirect_uri str 'http://127.0.0.1:8081/api/cloud-pickers/{provider}/callback' AD-720c: OAuth redirect URI; must match the registration at the provider. {provider} is substituted with the provider id.

lipsync

AD-721b-1 — Server-side lip-sync backend selection.

Field Type Default Bounds Description
enabled bool True
backend Literal['heuristic', 'rhubarb'] 'heuristic'
binary_path str 'tools/rhubarb/rhubarb'
timeout_seconds float 30.0
ffmpeg_binary_path str 'tools/ffmpeg/ffmpeg'

tts

AD-738 — Server-side TTS backend selection.

Field Type Default Bounds Description
enabled bool True
backend Literal['browser', 'piper'] 'browser'
binary_path str 'tools/piper/piper'
voice_model str 'en_US-amy-medium'
voices_dir str 'tools/piper/voices'
timeout_seconds float 10.0
noise_scale float 0.85
length_scale float 1.0
noise_w float 1.0
sentence_silence float 0.35
sentence_pipelining_enabled bool False

spatial_explorer

AD-520: Spatial Knowledge Explorer (Phase 1 Knowledge Graph View + Phase 2 Spatial Ship Layout).

Field Type Default Bounds Description
enabled bool False
max_graph_edges int 500 ≥ 0, ≤ 5000
max_graph_nodes int 200 ≥ 0, ≤ 2000
spatial_layout_path str ''

knowledge_browser

AD-562: Ship's Records Knowledge Browser (Phases 1-4 OSS).

Field Type Default Bounds Description
enabled bool False
max_graph_nodes int 500 ≥ 0, ≤ 2000
max_graph_edges int 1000 ≥ 0, ≤ 5000
jaccard_threshold float 0.3 ≥ 0.0, ≤ 1.0
max_suggestions_per_entry int 5 ≥ 0, ≤ 50
index_refresh_seconds int 300 ≥ 10, ≤ 3600

extensions

AD-481: Extension subsystem master config.

Field Type Default Bounds Description
enabled bool False
enforce_sealed_core bool False
default_profile str 'minimal'
extensions_dir str 'src/probos/extensions'

observability_bridge

AD-641a: Observability Bridge configuration.

Field Type Default Bounds Description
enabled bool True
publish_interval_seconds float 60.0
system_channel str 'system_observability'

threshold_alerts

AD-695: Threshold-driven bridge alerts.

Field Type Default Bounds Description
enabled bool False
pool_saturation_floor float 0.9 ≥ 0.0, ≤ 1.0
degradation_min_severity str 'degraded'
attention_queue_depth int 20 ≥ 0
dedup_window_seconds float 300.0 ≥ 1.0

ward_room_hebbian

AD-641b: Ward Room Hebbian Router configuration.

Field Type Default Bounds Description
enabled bool True
learning_rate float 0.1
decay_factor float 0.99

perception

AD-733: visual sensor input from operator-side capture devices.

Field Type Default Bounds Description
enabled bool False
explicit_share_enabled bool True AD-744: master switch for Captain-initiated 'Share to agent' shortcuts. Default-ON because getDisplayMedia requires a fresh browser-prompt consent on every invocation; toggle off for kiosk mode.
camera_max_fps_server int 4 ≥ 1, ≤ 10 Server-side hard cap on frame ingestion rate per session.
screen_max_fps_server int 2 ≥ 1, ≤ 4 AD-733-2: server-side hard cap on screen-frame ingestion rate per session. Independent of camera cap.
frame_max_size_bytes int 524288 ≥ 4096, ≤ 5242880 Reject frame uploads larger than this. Default 512 KB.
frame_retention_seconds int 300 ≥ 30, ≤ 86400 AD-733-1: TTL for perception-origin attachments. Default 5 min -- covers VisionConsumer WM window + AD-733c-1 force-describe cache.
reaper_interval_seconds int 60 ≥ 10, ≤ 3600 AD-733-1: how often the AttachmentReaper sweeps. Default 60s -- produces at most one full directory scan per minute.
vision_consumer_enabled bool True Run the VisionConsumer that calls the vision LLM on supervisor-flagged frames.
vision_min_interval_seconds float 3.0 ≥ 1.0, ≤ 120.0 Minimum seconds between vision LLM calls per session. Cost-discipline floor.
vision_novelty_threshold float 0.08 ≥ 0.0, ≤ 1.0 Perceptual aHash diff threshold above which a frame is flagged as novel. Lower = more sensitive to small scene changes. BF-307: 0.08 default after empirical evidence that 0.15 was too high for static-camera setups.
vision_baseline_max_age_seconds float 30.0 ≥ 0.0, ≤ 600.0 BF-309: after this many seconds with no admit, the supervisor re-baselines on the next frame. Prevents static-scene anchoring where a steady pose makes every later frame look low-novelty against a stale baseline. 0 = disable.
vision_supervisor_strategy str 'ahash' AD-742d: frame-admission strategy. 'ahash' (default, perceptual-hash diff), 'motion' (per-pixel diff), 'scene_change' (HSV histogram delta), 'never' (drop all frames; describe only on force / DM), 'always' (admit all; debug/test only). Restart required to swap.
working_memory_capacity int 8 ≥ 1, ≤ 64 Per-agent vision working memory ring buffer size.
wm_persistence_enabled bool True AD-742f: persist VisionWorkingMemory rings to data/perception_wm.db so Captain's per-agent visual history survives restart. Set False to operate in-memory only (legacy behavior).
vision_tier str 'vision' LLM tier name for narrative / proactive-observer vision calls (AD-733b scene-introduction + high-novelty triggers). Falls back to standard/deep behavior if vision_fast is unset.
vision_fast_tier str 'vision_fast' AD-742a (Wave 174): LLM tier for per-frame supervisor-flagged describe calls. Falls back to vision_tier when unconfigured (which itself honest-degrades).
dm_force_describe_enabled bool True On every DM, synchronously describe the latest captured frame before composing the reply (4s timeout floor).
prompt_freshness_seconds float 120.0 ≥ 0.0, ≤ 86400.0 A vision observation older than this many seconds is treated as no-current-data (camera off) for prompt injection. 0 = disable the freshness guard (legacy behavior).
engaged_idle_seconds float 300.0 ≥ 30.0, ≤ 3600.0 ENGAGED -> AMBIENT after this many seconds of no DM activity. Default 5 min.
ambient_idle_seconds float 1800.0 ≥ 60.0, ≤ 86400.0 AMBIENT -> DORMANT after this many seconds in AMBIENT with no engagement signal. Default 30 min.
idle_watchdog_tick_seconds float 30.0 ≥ 5.0, ≤ 300.0 How often the controller's idle watchdog polls. Default 30s.
captain_avatar_ref str '' DEPRECATED (AD-742b): SHA-256 of a reference photo of the Captain in AttachmentStore. Use face-embedding enrollment instead.
identity_match_threshold float 0.6 ≥ 0.0, ≤ 2.0 Cosine distance threshold for face-embedding identity match. Smaller = stricter. facenet-pytorch VGGFace2-pretrained default: 0.6. Operator-tunable.
identity_resolver_enabled bool True AD-742b: use face-embedding identity resolution. False = fall back to AD-733b LLM-prompt path (deprecated, expensive).
proactive_observer_enabled bool True Allow the agent to proactively surface novel visual scenes in a DM.
proactive_max_emissions int 3 ≥ 0, ≤ 20 Maximum proactive vision DMs per session.
proactive_dwell_seconds float 30.0 ≥ 5.0, ≤ 600.0 Minimum seconds between consecutive proactive vision DMs.
proactive_novelty_threshold float 0.5 ≥ 0.0, ≤ 1.0 Minimum novelty score for a high-novelty proactive trigger (separate from supervisor admission threshold).
engaged_budget_enforcement bool True AD-733c-6: when True, exceeding the per-session or per-day vision call cap in ENGAGED mode auto-drops to AMBIENT. False = counters-only behavior (AD-742e baseline).
engaged_call_cap_per_session int 200 ≥ 10, ≤ 10000 AD-733c-6: vision LLM calls per session in ENGAGED mode before auto-drop to AMBIENT. Captain default 200; tune via Settings or BF-308 hot-reload.
engaged_call_cap_per_day int 2000 ≥ 50, ≤ 100000 AD-733c-6: vision LLM calls per UTC day before auto-drop to AMBIENT. Captain default 2000.
vad_engagement_enabled bool False AD-733c-7: enable Silero VAD as a secondary engagement trigger. Default OFF — endpoint exists but the browser never calls it. When enabled, browser POSTs speech-detected events to /api/perception/voice-activity which routes through the per-agent PerceptionEngagementRegistry (AD-733c-5).
vad_min_speech_duration_ms int 400 ≥ 100, ≤ 2000 AD-733c-7: browser-side debounce floor before firing the voice-activity endpoint. Prevents single-syllable false positives.
source_fusion_enabled bool True AD-746 Layer 1: when ON, ambient camera + screen frames are buffered within fusion_window_ms and forwarded as a single fused vision_observation. Reduces AD-733c-6 budget burn + AD-541b anchor noise when both sources stream. Hot-reload.
fusion_window_ms int 800 ≥ 100, ≤ 5000 AD-746 Layer 1: debounce window for cross-source fusion. Pipecat default. Hot-reload.

camera

AD-733: client-side camera streaming controls.

Field Type Default Bounds Description
enabled bool False
default_fps int 1 ≥ 1, ≤ 4 Client-side capture cadence. Vision tier inference budget caps this; 1 fps is the safe default.
frame_jpeg_quality float 0.6 ≥ 0.2, ≤ 0.95
frame_max_dimension int 512 ≥ 128, ≤ 1024 Longest-edge downsample target for capture.

screen

AD-733-2: client-side screen-share streaming controls.

Field Type Default Bounds Description
enabled bool False
default_fps int 1 ≥ 1, ≤ 4 Client-side screen-capture cadence. Vision tier inference budget caps this; 1 fps is the safe default.

wake_word

AD-705c (Wave 179) — custom wake-word training pipeline config.

Field Type Default Bounds Description
wake_word_trainer_enabled bool False
custom_model_filename str 'captain.onnx'
retain_training_samples bool False
training_samples_max_count int 200
training_audio_max_bytes int 1048576

engineering_sensors

AD-641f: Engineering Chief Observability configuration.

Field Type Default Bounds Description
enabled bool True
report_interval_seconds float 60.0
auto_start_periodic_report bool False

learned_shortcuts

AD-641e: LearnedShortcut Registry configuration.

Field Type Default Bounds Description
enabled bool True
register_workflow_cache bool True

thread_priority

AD-641c: Ward Room Thread Priority configuration.

Field Type Default Bounds Description
enabled bool True
weight_captain float 0.3
weight_unresolved float 0.2
weight_cross_department float 0.15
weight_recency float 0.2
weight_endorsement float 0.15
captain_callsign str 'Captain'

deliberation

AD-641d: Crew Deliberation Protocol configuration.

Field Type Default Bounds Description
enabled bool True
captain_callsign str 'Captain'

behavioral_metrics

AD-569: Observation-Grounded Crew Intelligence Metrics.

Field Type Default Bounds Description
thread_lookback_hours float 72.0
min_thread_contributors int 2
min_thread_posts int 3
frame_diversity_min_departments int 2
synthesis_novelty_threshold float 0.35
synthesis_min_thread_posts int 4
trigger_correlation_window_hours float 24.0
trigger_topic_similarity_threshold float 0.6
convergence_similarity_threshold float 0.75
convergence_min_agreeing int 2
anchor_independence_min_episodes int 3
max_snapshots int 100

event_log

Event log retention configuration.

Field Type Default Bounds Description
retention_days int 7
max_rows int 100000
prune_interval_seconds float 3600.0

cognitive_journal

Cognitive Journal — append-only LLM reasoning trace store (AD-431).

Field Type Default Bounds Description
enabled bool True
retention_days int 14
max_rows int 500000
prune_interval_seconds float 3600.0

knowledge_edges

Knowledge Edge Store — typed-triple graph (AD-687).

Field Type Default Bounds Description
enabled bool True
db_path str 'data/knowledge_edges.sqlite'
max_traverse_hops int 3

knowledge_edge_classification

AD-692: Classification enforcement on knowledge graph edges.

Field Type Default Bounds Description
enabled bool True
default_classification str 'private'

edge_backfill

AD-689: One-shot backfill of knowledge_edges from existing data.

Field Type Default Bounds Description
enabled bool True
run_on_warm_boot bool True
hebbian_threshold float 0.5
force bool False
decisions_paths list[str] ['DECISIONS.md', 'decisions-era-1-genesis.md', 'decisions-era-2-emergence.md', 'decisions-era-3-product.md', 'decisions-era-4-evolution.md']

communications

Communications settings (AD-485).

Field Type Default Bounds Description
dm_min_rank str 'ensign'
recreation_min_rank str 'ensign'
group_chat_min_rank str 'commander'
artifact_min_rank str 'lieutenant'
artifact_max_per_turn int 3
artifact_max_bytes int 262144
a2ui_enabled bool False AD-811a: enable the [A2UI] choice widget on the 1:1 DM path (default OFF -> byte-identical).
a2ui_min_rank str 'lieutenant' AD-811a: min rank to emit an [A2UI] choice widget: ensign|lieutenant|commander|senior
a2ui_max_options int 10 ≥ 2, ≤ 20 AD-811a: anti-flood cap on choice options honored per [A2UI] block (schema hard-caps at 20).
room_todos_enabled bool False AD-1081: enable [TODOS]/[TODO_DONE]/[TODO_CONFIRM]/[TODO_REJECT] room-task tags (default OFF).
room_todos_min_rank str 'commander' AD-1081: min rank to seed the plan + confirm/reject Todos (the senior/facilitator): ensign|lieutenant|commander|senior
room_todos_seed_min_rank str 'ensign' AD-1082: min rank to SEED the plan ([TODOS]) — open to any crew so the asked agent can plan; confirm/reject stay at room_todos_min_rank.
office_backend str 'python-docx' BF-646: Office doc backend: python-docx (default) | libreoffice (headless soffice, higher fidelity, degrades if absent).
libreoffice_path str '' BF-646: explicit soffice/soffice.exe path; empty = auto-detect on PATH.
status_min_rank str 'lieutenant'
status_max_per_turn int 3
status_max_bytes int 4096
presence_working_window_seconds float 90.0
proactive_conversation_enabled bool True
conversational_memory_enabled bool True
room_awareness_enabled bool True
recall_interpretation_enabled bool False
dream_interpretation_enabled bool False

workforce

Workforce Scheduling Engine configuration (AD-496).

Field Type Default Bounds Description
enabled bool False
tick_interval_seconds float 10.0
default_capacity int 1
custom_work_types list[dict] []
custom_templates list[dict] []
template_config_path str 'config/work_templates.yaml'

temporal

AD-502: Temporal awareness configuration.

Field Type Default Bounds Description
enabled bool True
include_birth_time bool True
include_system_uptime bool True
include_last_action bool True
include_post_count bool True
captain_timezone str ''
include_episode_timestamps bool True

qualification

Configuration for the Crew Qualification Battery (AD-566).

Field Type Default Bounds Description
enabled bool True
baseline_auto_capture bool True
significance_threshold float 0.15
test_timeout_seconds float 60.0
enforcement_enabled bool False
enforcement_log_only bool True
drift_check_enabled bool True
drift_check_interval_seconds float 604800.0
drift_warning_sigma float 2.0
drift_critical_sigma float 3.0
drift_min_samples int 3
drift_history_window int 20
drift_cooldown_seconds float 3600.0
drift_check_tiers list[int] [1, 2, 3]
peer_observation_module_path str 'config/manuals/peer_observation_conduct.yaml' AD-729b: training module YAML path. Loaded at Boot Camp graduation gate when peer_observation_certification_required is True.
peer_observation_certification_required bool False AD-729b: when True, Boot Camp / Qualification gates block advancement unless the peer-observation conduct module is passed. Default False — flips to True after AD-729a Standing Orders ship.

communication_benchmarks

AD-642: Communication Quality Benchmarks configuration.

Field Type Default Bounds Description
enabled bool True
frequency_hours float 12.0
probes list[str] ['thread_relevance', 'memory_grounding', 'memory_absence', 'expertise', 'silence_appropriateness', 'dm_action']

orientation

AD-567g: Cognitive re-localization configuration.

Field Type Default Bounds Description
enabled bool True
orientation_window_seconds float 600.0
cold_start_full_orientation bool True
warm_boot_orientation bool True
proactive_supplement bool True
populate_watch_section bool True
populate_ward_room_department bool True
populate_event_log_window bool True

social_verification

AD-567f: Social Verification Protocol configuration.

Field Type Default Bounds Description
enabled bool True
corroboration_threshold float 0.4
corroboration_max_agents int 5
corroboration_min_confidence float 0.3
cascade_enabled bool True
cascade_independence_threshold float 0.3
cascade_cooldown_seconds float 300.0
anomaly_window_discount float 0.5
provenance_version_independence_weight float 0.7
provenance_validation_enabled bool True
expose_episode_content bool False

anomaly_window

Anomaly window detection configuration (AD-673).

Field Type Default Bounds Description
enabled bool True
max_window_duration_seconds float 1800.0
lookback_seconds float 60.0

working_memory

AD-573: Unified agent working memory configuration.

Field Type Default Bounds Description
token_budget int 3000
max_recent_actions int 10
max_recent_observations int 5
max_recent_conversations int 5
max_events int 10
proactive_budget int 1500
stale_threshold_hours float 24.0
conclusion_ttl_seconds float 1800.0
max_conclusions int 20
duty_budget int 600
social_budget int 800
ship_budget int 800
engagement_budget int 800

predictive_branching

AD-633 v1: Predictive Cognitive Branching.

Field Type Default Bounds Description
enabled bool False
cache_ttl_seconds float 60.0 ≥ 1.0
cache_max_entries int 128 ≥ 1
speculation_tokens_per_window int 2000 ≥ 0
speculation_window_seconds float 300.0 ≥ 1.0
flush_rate_feedback_threshold float 0.3 ≥ 0.0, ≤ 1.0
flush_rate_window_seconds float 3600.0 ≥ 1.0
accuracy_ring_size int 100 ≥ 10
cheap_tier_min_confidence float 0.3 ≥ 0.0, ≤ 1.0
standard_tier_min_confidence float 0.7 ≥ 0.0, ≤ 1.0
anticipatory_tier_min_confidence float 0.85 ≥ 0.0, ≤ 1.0

self_improvement

AD-482 v1: Self-improvement pipeline (proposal -> approval -> QA -> evolution -> versioning).

Field Type Default Bounds Description
enabled bool False
qa_pool_size int 3 ≥ 1, ≤ 8
iteration_cap int 5 ≥ 1, ≤ 20
evolution_half_life_seconds float 2592000.0 ≥ 1.0
evolution_collection_name str 'self_improvement_lessons'
persistence_root_dir str 'src/probos/agents/designed'

memory_budget

AD-573: Memory budget accounting across recall tiers.

Field Type Default Bounds Description
enabled bool True
total_budget_tokens int 4650
l0_budget int 150
l1_budget int 3000
l2_budget int 1000
l3_budget int 500

metabolism

AD-670: Working memory metabolism — active lifecycle management.

Field Type Default Bounds Description
enabled bool True
decay_half_life_seconds float 3600.0
forget_threshold float 0.05
min_entries_per_buffer int 2
audit_enabled bool True
cycle_interval_seconds float 300.0
triage_fullness_threshold float 0.8
triage_base_score float 0.3

pinned_knowledge

AD-579a: Pinned knowledge buffer configuration.

Field Type Default Bounds Description
enabled bool True
max_tokens int 150
max_pins int 10
default_ttl_seconds float 86400.0

temporal_validity

AD-579b: Temporal validity windows for episodic memory.

Field Type Default Bounds Description
enabled bool True
default_validity_hours float 0.0

task_context

Task-contextual standing orders configuration (AD-586).

Field Type Default Bounds Description
enabled bool True
orders_dir str 'config/task_orders'
max_tokens int 500

question_adaptive

AD-602: Question-adaptive retrieval strategy configuration.

Field Type Default Bounds Description
enabled bool True
strategy_overrides dict[str, dict] {}

storage_gate

AD-610: Utility-based storage gating - write-time validation.

Field Type Default Bounds Description
enabled bool True
duplicate_threshold float 0.95
utility_floor float 0.2
recent_window int 50
contradiction_check_enabled bool True

salience

AD-668: Salience filter for working memory promotion.

Field Type Default Bounds Description
enabled bool True
weights dict[str, float] {'relevance': 0.3, 'recency': 0.25, 'novelty': 0.15, 'urgency': 0.2, 'social': 0.1}
threshold float 0.3
background_max_entries int 50

sensorium

AD-666/AD-1122: Agent Sensorium tracking configuration.

Field Type Default Bounds Description
enabled bool True
warning_chars int 10000
warning_cooldown_seconds float 21600.0
warning_rearm_ratio float 0.9
warning_escalation_ratio float 1.25
top_contributors int 5

source_tracing

AD-583g: Ward Room echo detection and source tracing.

Field Type Default Bounds Description
echo_min_chain_length int 3
echo_similarity_threshold float 0.4
echo_analysis_enabled bool True

observable_state

AD-583f: Observable state verification.

Field Type Default Bounds Description
verification_enabled bool True
max_claims_per_thread int 10

llm_rate

AD-617: LLM call rate governance configuration.

Field Type Default Bounds Description
rpm_fast int 120
rpm_standard int 120
rpm_deep int 30
max_wait_seconds float 30.0
cache_max_entries int 500
per_agent_hourly_token_cap int 0
max_concurrent_calls int 6
interactive_reserved_slots int 2
max_inflight_per_endpoint int 8
endpoint_failure_cooldown_seconds float 15.0 ≥ 0.0, ≤ 300.0

sub_task

AD-632a: Sub-task protocol configuration.

Field Type Default Bounds Description
enabled bool True
chain_timeout_ms int 30000
step_timeout_ms int 15000
max_chain_steps int 6
fallback_on_timeout str 'single_call'
max_concurrent_chains int 4
nats_publish_enabled bool False
nats_payload_max_bytes int 16384

boot_camp

AD-638: Cold-start boot camp configuration.

Field Type Default Bounds Description
enabled bool True
min_episodes int 5
min_ward_room_posts int 3
min_dm_conversations int 1
min_trust_score float 0.55
min_time_minutes int 60
timeout_minutes int 120
nudge_cooldown_seconds int 600

ship_state_snapshot

AD-683: Ship State Snapshot for Cold-Start Onboarding.

Field Type Default Bounds Description
enabled bool True

tiered_trust

AD-640: Role-based trust initialization tiers.

Field Type Default Bounds Description
enabled bool True
bridge_alpha float 4.5
bridge_beta float 1.0
chief_alpha float 3.0
chief_beta float 1.0
bridge_pools list[str] ['counselor', 'yeoman']
bridge_callsigns list[str] ['Meridian', 'Yeo']
chief_callsigns list[str] ['Bones', 'LaForge', 'Number One', 'Worf', "O'Brien"]

chain_tuning

AD-639: Trust-adaptive chain personality tuning.

Field Type Default Bounds Description
enabled bool True
low_trust_ceiling float 0.6
high_trust_floor float 0.75

chain_optimizer

AD-659 v1 + AD-659b: Cognitive Chain Self-Optimization service.

Field Type Default Bounds Description
enabled bool False
analysis_window int 100
latency_p95_ms_floor float 10000.0
success_rate_floor float 0.7
error_rate_ceiling float 0.3
min_samples_per_group int 20
apply_enabled bool False
analysis_interval_seconds int 0

chain_optimizer_counselor

AD-659c v1: OptimizationCounselor watchdog for AD-659b applied proposals.

Field Type Default Bounds Description
enabled bool False
baseline_window_seconds float 1800.0
observation_window_seconds float 1800.0
success_rate_drop_floor float 0.1
min_samples_per_window int 20
auto_revert_enabled bool False

causal_reasoning

AD-660 v1 + AD-660b: Agent Causal Reasoning Framework.

Field Type Default Bounds Description
enabled bool True
max_tokens int 700
tier str 'standard'
max_invocations_per_hour int 5

diagnostic_context

AD-661 v1 + AD-661b/c: Diagnostic Context Service — pull-based bundle assembly.

Field Type Default Bounds Description
enabled bool True
default_budget_tokens int 8000
chain_trace_ratio float 0.3
procedure_ratio float 0.25
episode_ratio float 0.25
records_ratio float 0.2
chars_per_token int 4
redistribute_remainder bool True

nl_graph_query

AD-691 v1: NL-to-Graph Query Service.

Field Type Default Bounds Description
enabled bool True
default_max_hops int 2
default_limit int 10
llm_tier str 'standard'
extraction_max_tokens int 600
synthesis_max_tokens int 800

clinical_telemetry

AD-635 / AD-635b / AD-635c: Clearance-gated clinical query facade (Medical / Counselor).

Field Type Default Bounds Description
enabled bool False
audit_max_entries int 1000
audit_persistence_enabled bool False
audit_db_path str 'data/clinical_audit.db'
circuit_breaker_history_persistence_enabled bool False
circuit_breaker_history_db_path str 'data/circuit_breaker_history.db'

consultation_workspaces

AD-594a v1: Session-scoped consultation workspace registry.

Field Type Default Bounds Description
enabled bool True
root_path str 'consultations'
input_processor str 'passthrough'

consultation_delivery

AD-594d v1: Consultation delivery pipeline.

Field Type Default Bounds Description
enabled bool True
local_file_enabled bool True
github_enabled bool True
local_file_allowed_roots list[str] []
github_token_env str 'GITHUB_TOKEN'
default_requires_approval bool False

consultation_dispatch

AD-594c v1: Parallel execution dispatch.

Field Type Default Bounds Description
enabled bool True
default_work_type str 'duty'
default_tags list[str] ['consultation']
blocker_threshold_seconds float 600.0
progress_subscription_enabled bool True
decomposer Literal['markdown', 'llm'] 'markdown'
max_subtasks int 12
decomposer_tier str 'standard'

capability_triage

AD-854: Acquire-vs-build triage grant fast-path gating.

Field Type Default Bounds Description
grant_fast_path_enabled bool False
grant_trust_floor float 0.8

agentic_dispatch

AD-856: Gate the AgenticLoop execution path for dispatched work items.

Field Type Default Bounds Description
enabled bool False
max_parallel_subtasks int 3 ≥ 1, ≤ 64
max_convergence_rounds int 2
orchestrator_enabled bool False
max_active_crew_sessions int 2 ≥ 1, ≤ 32
crew_resume_scan_limit int 100 ≥ 1, ≤ 1000
crew_ingress_scan_limit int 100 ≥ 1, ≤ 1000
crew_ingress_semantic_call_limit int 32 ≥ 1, ≤ 128
crew_ingress_semantic_threshold float 0.9 ≥ 0.0, ≤ 1.0
crew_provisioning_repair_limit int 100 ≥ 1, ≤ 1000
crew_recovery_max_retries int 3 ≥ 0, ≤ 10
crew_recovery_initial_backoff_seconds float 5.0 ≥ 0.0, ≤ 3600.0
crew_recovery_max_backoff_seconds float 300.0 ≥ 0.0, ≤ 86400.0
crew_compaction_enabled bool False AD-1142: compact a crew child's working context when it crosses crew_compaction_threshold_tokens, instead of letting it grow until the provider rejects the request. Default-OFF per convention #14 — with the gate off no compactor is threaded to the child's AgenticLoop at all and the run is byte-identical to pre-AD-1142. Compaction is BEST-EFFORT: a single AD-1147 tool-call group is preserved whole, so one turn's fan-out can exceed any threshold, in which case the loop warns and continues rather than retrying. Compaction is a context-window mechanism, NOT a transparency one: it drops assistant reasoning text, the flattened prompt and the summary itself, and NONE of those are recorded in any durable store. Only tool OUTPUTS survive, bounded, via the AD-1151 tool trace.
crew_compaction_threshold_tokens int 60000 ≥ 1000, ≤ 1000000 AD-1142: the crew child's working-context ceiling, in estimated tokens. Measures OCCUPANCY of the message list (content plus the serialised tool_calls array), not cumulative spend — see crew_token_budget for the spend ceiling. Crossing it shrinks the history and continues. 60000 is a STARTING VALUE, NOT A DERIVED ONE: the SWE harness compacts at 0.8 x 100000, and crew children run up to max_parallel_subtasks concurrently (default 3), so 60000 is 180000 of simultaneous provider load at the default fan-out. It is the first knob to tune if children still fail with stopped_reason='error'. AD-1147 interaction: one turn appends up to agentic_loop.max_parallel_tool_calls results, so with agentic_loop.tool_result_max_chars at 0 (unbounded, the shipped default) a SINGLE turn can cross any threshold and compaction cannot converge. With a non-zero tool_result_max_chars the per-turn ceiling is max_parallel_tool_calls x tool_result_max_chars characters, which must stay comfortably under crew_compaction_threshold_tokens x 4 for compaction to converge; at the AD-1147 ceiling of 16 that is 16 x the cap. There is deliberately no validator relating them — the relation is stated here and asserted in tests. Only consulted when crew_compaction_enabled is True.
crew_token_budget int | None None ≥ 1024 AD-1142: cumulative-spend ceiling for one crew child, in tokens. None (the default) means no budget, which is today's behaviour. This is a HARD STOP, not a shrink: crossing it returns stopped_reason='token_budget', which crew_executor maps to status='failed', so the child's DEPENDENTS STAY BLOCKED and no partial output is persisted as done. That consequence is why it defaults to None. It is INDEPENDENT of crew_compaction_enabled — a Safety Budget ceiling is useful with or without compaction, and gating it on the compaction flag would mean enabling compaction silently introduced a new failure mode. The two knobs are different mechanisms: crew_compaction_threshold_tokens is a working-context ceiling (cross it, shrink and continue); this is a spend ceiling (cross it, stop and fail). AD-1155 interaction: when crew_loop_until_done_enabled is True this budget is SHARED across the outer iterations and carried forward as a remainder, never reset per iteration, so iterations 2+ run with LESS room than the first one. It is a ceiling, not an allowance.
crew_loop_until_done_enabled bool False AD-1155: re-invoke a crew child that stopped without finishing, with a fresh independently governed run each time, bounded by crew_loop_until_done_max_iterations. Default-OFF per convention #14 — with the gate off the child runs exactly once and the call is byte-identical to pre-AD-1155. This does NOT replace SubtaskVerifier.converge_for_session, which is a separate LIVE outer loop driven by an LLM judge on the finalizer path; the two compose, and the four-way worst case in crew_loop_until_done_max_iterations assumes they do. Only a stopped_reason the executor classifies as re-invokable is ever re-run, which today is max_iterations ALONE: token_budget is a spend ceiling the operator set, error is usually provider-window exhaustion that a longer prompt makes worse, and complete means the model chose to stop.
crew_loop_until_done_max_iterations int 2 ≥ 1, ≤ 5 AD-1155: the hard outer cap on how many times ONE crew child is run. 1 means no re-invocation, identical to today; the cap is a bound, never an enable — crew_loop_until_done_enabled is what turns the feature on. WORST CASE, STATED PLAINLY: per outer iteration a child gets AGENTIC_MAX_ITERATIONS (25) turns, and one turn can carry up to agentic_loop.max_parallel_tool_calls (ceiling 16) concurrent tool calls, so at this ceiling of 5 that is 5 x 25 x 16 = 2000 tool invocations FOR ONE CHILD — before max_parallel_subtasks (default 3, ceiling 64) multiplies it across siblings and before converge_for_session adds up to 8 correction rounds on the finalizer path. That is the four-way product: convergence x outer x inner x parallel. There is deliberately no validator relating these fields — the relation is stated here and asserted in tests, because a cross-field validator would turn an unrelated POST /config into a 422.
crew_loop_until_done_predicate str 'stopped_reason' AD-1155: which completion predicate decides whether to re-invoke. An enum string, never an operator-supplied callable, which would be an arbitrary-code seam on the crew hot path. 'stopped_reason' (the default) continues only when the run was cut off by the turn counter — the one unambiguous signal. 'completion_marker' continues while crew_loop_until_done_completion_marker is absent from the trailing output; its weakness is that nothing teaches the agent to emit the marker on the FIRST pass, so a single-iteration run can never satisfy it. 'open_todos' continues while the PARENT work item has a checklist step in pending / in_progress / rejected; it is OPT-IN and INAPPLICABLE to the crew path as shipped — the crew fan-out never writes WorkItem.steps (steps move through the DM reply pipeline's [TODO_*] tags, which a crew child never enters), so a child with no checklist STOPS rather than being re-invoked forever. 'submitted' steps are excluded from 'actionable' because closing one needs rank >= communications.room_todos_min_rank, which the modal crew agent does not hold. An unknown value degrades to 'stopped_reason'.
crew_loop_until_done_completion_marker str 'TASK COMPLETE' AD-1155: the exact line the 'completion_marker' predicate looks for in the trailing 200 characters of a child's output. Only consulted when crew_loop_until_done_predicate is 'completion_marker', in which case the continuation block tells the agent to emit it. An empty or malformed value degrades to the default rather than to '', because an empty marker is contained in every string and would silently disable the predicate the operator just armed.

hybrid_dispatch

AD-581 v1: Hybrid dispatch routing policy (581a + 581d).

Field Type Default Bounds Description
enabled bool True
confidence_threshold float 0.4
confidence_margin float 0.05
min_hebbian_weight float 0.05
success_rate_window int 50
min_samples_for_routing int 3
dispatchable_tags list[str] ['consultation']

work_board_reconciler

AD-876: periodic + warm-boot work-board reconciliation (Quartermaster).

Field Type Default Bounds Description
enabled bool False
interval_seconds int 300 ≥ 30, ≤ 3600
warm_boot bool True
scan_limit int 200 ≥ 1, ≤ 2000
max_reconcile_attempts int 3 ≥ 1, ≤ 20
reconcile_backoff_seconds int 600 ≥ 0, ≤ 86400
min_item_age_seconds int 30 ≥ 0, ≤ 600
reactive_reclaim bool False
stall_timeout_seconds int 0 ≥ 0, ≤ 86400

process_chain_registry

AD-647b v1: Registry of named process chains (ProcessChainDefinition).

Field Type Default Bounds Description
enabled bool True

knowledge_loading

AD-585: Tiered knowledge loading configuration.

Field Type Default Bounds Description
enabled bool True
ambient_token_budget int 200
contextual_token_budget int 400
on_demand_token_budget int 600
ambient_max_age_seconds float 300.0
contextual_max_age_seconds float 60.0
on_demand_max_age_seconds float 0.0
intent_knowledge_map dict[str, list[str]] {'security_alert': ['trust', 'agents'], 'proactive_think': ['episodes', 'proactive'], 'ward_room_notification': ['episodes', 'agents'], 'direct_message': ['episodes', 'agents']}

step_instruction

AD-651: Step-specific standing order decomposition.

Field Type Default Bounds Description
enabled bool False
step_categories dict[str, list[str]] {'query': [], 'analyze': ['observation_guidelines', 'situation_assessment', 'when_to_act_vs_observe', 'memory_anchoring', 'source_attribution', 'self_monitoring'], 'compose': ['communication_style', 'personality_expression', 'audience_awareness', 'ward_room_actions', 'knowledge_capture', 'duty_reporting'], 'evaluate': ['self_monitoring', 'scope_discipline', 'communication_style'], 'reflect': ['self_monitoring', 'scope_discipline', 'knowledge_capture']}
universal_categories list[str] ['identity', 'chain_of_command', 'core_directives', 'encoding_safety']
log_token_savings bool True

agent_tiers

Agent tier classification for trust separation (AD-571).

Field Type Default Bounds Description
crew_types list[str] ['architect', 'builder', 'code_reviewer', 'counselor', 'diagnostician', 'surgeon', 'pharmacist', 'pathologist', 'red_team', 'system_qa', 'scout', 'data_analyst', 'systems_analyst', 'research_specialist']
core_types list[str] ['event_log', 'vitals_monitor', 'introspect']

operational_status

Operational status tracker configuration (AD-571b).

Field Type Default Bounds Description
sample_window_size int 50
available_success_rate float 0.85
degraded_p95_latency_ms float 5000.0
offline_consecutive_errors int 5

risk_tiers

Action Risk Tier configuration (AD-676).

Field Type Default Bounds Description
enabled bool True
elevated_min_trust float 0.0
critical_min_trust float 0.7

procedural_bridge

Episodic-procedural bridge configuration (AD-572).

Field Type Default Bounds Description
enabled bool True
min_cross_cycle_episodes int 5
novelty_threshold float 0.3

nats

NATS event bus configuration (AD-637).

Field Type Default Bounds Description
enabled bool False Enable NATS event bus. Overridden by PROBOS_NATS_ENABLED env var.
url str 'nats://localhost:4222'
connect_timeout_seconds float 5.0
max_reconnect_attempts int 60
reconnect_time_wait_seconds float 2.0
drain_timeout_seconds float 5.0
jetstream_enabled bool True
jetstream_domain str | None None
subject_prefix str 'probos.local'
js_publish_timeout float 5.0

bill

Configuration for the Bill System runtime (AD-618b).

Field Type Default Bounds Description
max_concurrent_instances int 10
default_step_timeout_seconds float 300.0
allow_partial_assignment bool False

consultation

AD-594: Crew Consultation Protocol configuration.

Field Type Default Bounds Description
enabled bool True
timeout_seconds float 30.0
max_consultations_per_agent_per_hour int 20
max_pending_requests int 10
expert_selection_max_candidates int 5
weight_capability_match float 0.5
weight_trust float 0.3
weight_billet_relevance float 0.2

expertise

AD-600: Transactive Memory expertise directory configuration.

Field Type Default Bounds Description
enabled bool True
max_topics_per_agent int 50
min_confidence float 0.1
decay_rate float 0.95
top_k_experts int 3

creative_expression

Configuration for AD-525 v1 (Skills Inventory + Records Output).

Field Type Default Bounds Description
enabled bool True
default_classification Literal['ship', 'department', 'private'] 'ship'

classification_gate

Configuration for AD-530 v1 disclosure gate.

Field Type Default Bounds Description
enabled bool True

autonomy_boundaries

AD-511 v1: Agent Autonomy Boundaries (registry + observational detector).

Field Type Default Bounds Description
enabled bool True

crew_development

AD-507 v1: Crew Development Framework (Core Knowledge Curriculum Registry).

Field Type Default Bounds Description
enabled bool True

boot_camp_phase

AD-509 v1: Boot Camp Phase Tracker (in-memory observational).

Field Type Default Bounds Description
enabled bool True

discovery_learning

AD-512 v1: Discovery-Based Capability Building substrate (observational).

Field Type Default Bounds Description
enabled bool True
confidence_prior_alpha float 1.0 ≥ 0.01
confidence_prior_beta float 1.0 ≥ 0.01
zpd_lower_bound float 0.4 ≥ 0.0, ≤ 1.0
zpd_upper_bound float 0.75 ≥ 0.0, ≤ 1.0

scoped_cognition

AD-508 v1: Duty Scope helper (read-only observational).

Field Type Default Bounds Description
enabled bool True

workspace_ontology

AD-478 v1: Workspace Ontology read-only register (frequency-bounded).

Field Type Default Bounds Description
enabled bool True
max_terms int 1000

gap_pipeline_extensions

AD-539c + AD-539d v1 config (observational gap pipeline extensions).

Field Type Default Bounds Description
remediation_tracker_enabled bool True
fleet_aggregator_enabled bool True
remediation_max_history int 100
active_remediation_enabled bool False

spreading_activation

AD-604: Spreading activation / multi-hop retrieval configuration.

Field Type Default Bounds Description
enabled bool True
max_hops int 2
k_per_hop int 5
hop_decay_factor float 0.6
min_anchor_fields int 2

thought_store

AD-606: Think-in-Memory thought storage configuration.

Field Type Default Bounds Description
enabled bool True
min_importance int 5
max_thoughts_per_cycle int 3

retroactive

AD-608: Retroactive memory evolution - store-time metadata propagation.

Field Type Default Bounds Description
enabled bool True
neighbor_k int 5
similarity_threshold float 0.7
max_relations_per_episode int 10
propagate_watch_section bool True
propagate_department bool True

distillation

AD-609: Multi-faceted distillation configuration.

Field Type Default Bounds Description
enabled bool True
min_failure_cluster_size int 3
comparative_enabled bool True

reconsolidation

AD-574: Episodic decay reconsolidation scheduling.

Field Type Default Bounds Description
enabled bool True
base_intervals_hours list[float] [1.0, 6.0, 24.0, 72.0, 168.0, 720.0]
importance_scale_factor float 0.1
max_scheduled int 500

Naval Organization Protocols (AD-477) — v1 ships Captain's Log + Plan of the Day.

captains_log

Captain's Log daily-narrative configuration (AD-477).

Field Type Default Bounds Description
enabled bool True
output_dir pathlib.Path 'data/captains_log'
end_of_day_hour int 23
top_episodes_count int 5
importance_threshold int 5

plan_of_day

Plan of the Day morning-summary configuration (AD-477).

Field Type Default Bounds Description
enabled bool True
output_dir pathlib.Path 'data/plan_of_day'
start_of_day_hour int 8
include_alert_conditions bool True

self_distillation

Configuration for AD-487 self-distillation v1 (Map step only).

Field Type Default Bounds Description
enabled bool True
rate_limit_hours int 24
llm_timeout_seconds float 30.0
max_sub_topics int 5
db_path pathlib.Path 'data/agent_probes.db'

spc

AD-522 v1: Statistical Process Control (calibration profile + WE rules).

Field Type Default Bounds Description
enabled bool True
sample_window int 100

desktop

AD-751: Desktop UX Surface — tray, hotkey, notifications, autostart.

Field Type Default Bounds Description
enabled bool False AD-751: master switch for desktop surface. Default OFF (Wave 10 convention #14).
tray_autostart bool True Auto-start tray icon on boot when desktop enabled.
hotkey str 'ctrl+shift+space' Global hotkey to activate mini-mode (pynput syntax).
notification_timeout_sec int 5 ≥ 1, ≤ 60 Toast notification display duration (seconds).
quiet_hours_start str '19:00' Start of quiet hours (HH:MM format, local time).
quiet_hours_end str '08:00' End of quiet hours (HH:MM format, local time).
lock_file str '~/.probos/yeo.lock' Single-instance lock file path.
autostart_enabled bool False Register for OS autostart on boot.