yore-cli 0.4.0

Fast document indexer for finding duplicates and searching content
# YARLI runtime configuration
# Generated by: yarli init
#
# Start conservative, then tune by measured behavior.
# All values are editable; comments explain intent and defaults.

[core]
# Backend for run/task/event persistence.
# - "in-memory": ephemeral; write commands are blocked unless allow_in_memory_writes=true.
# - "postgres": durable production-style mode.
backend = "in-memory"

# Explicit ephemeral override.
# Keep false for durable-by-default safety; set true only for local throwaway usage.
allow_in_memory_writes = true

# Safety policy mode: observe | restricted | execute | breakglass
safe_mode = "execute"

# Optional worker identity for scheduler/audit attribution.
# worker_id = "worker-1"

[postgres]
# Required when core.backend = "postgres".
# database_url = "postgres://postgres:postgres@localhost:5432/yarli"

[cli]
backend = "custom"
prompt_mode = "arg"
command = "codex"
args = ["--dangerously-bypass-approvals-and-sandbox", "exec", "--json", "--model", "gpt-5.3-codex-spark", "--config", "model_reasoning_effort=medium"]

[event_loop]
max_iterations = 5
max_runtime_seconds = 14400
idle_timeout_secs = 1800
checkpoint_interval = 5

[features]
parallel = true



[queue]
# How many ready tasks a worker claims per tick.
claim_batch_size = 4
# Lease timeout for claimed tasks.
lease_ttl_seconds = 30
# Lease heartbeat interval.
heartbeat_interval_seconds = 5
# Stale lease sweep interval.
reclaim_interval_seconds = 10
# Additional grace before reclaiming stale leases.
reclaim_grace_seconds = 5
# Concurrency caps.
per_run_cap = 8
io_cap = 16
cpu_cap = 4
git_cap = 2
tool_cap = 8

[execution]
# Runner backend: native | overwatch
runner = "native"
# Working directory for command execution (`~` and `$VARS` are expanded).
working_dir = "."
# Root directory for per-task workspaces/worktrees (required when features.parallel = true).
# `~` and `$VARS` are expanded.
worktree_root = ".yarl/workspaces"
# Directory names or paths to exclude from per-task workspace copies.
worktree_exclude_paths = [".yarl/workspaces", ".yarli", "target", "node_modules", ".venv", "venv", "__pycache__"]
# Default command timeout in seconds (0 disables timeout).
command_timeout_seconds = 14400
# Scheduler tick cadence.
tick_interval_ms = 100

[execution.overwatch]
# Overwatch service settings (used only when execution.runner = "overwatch").
service_url = "http://127.0.0.1:8089"
# profile = "default"
# soft_timeout_seconds = 300
# silent_timeout_seconds = 120
# max_log_bytes = 131072

[run]
# Optional default prompt file for `yarli run`.
# Resolution precedence: --prompt-file > run.prompt_file > PROMPT.md fallback.
prompt_file = "PROMPT.md"
# Optional default objective when no prompt override is present.
# objective = "verify workspace"
# Seconds to wait for continuation payload availability (`yarli run continue`).
continue_wait_timeout_seconds = 0
# Legacy compatibility toggle for stable-trend auto-advance.
allow_stable_auto_advance = false
# Preferred auto-advance policy: improving-only | stable-ok | always
auto_advance_policy = "stable-ok"
# Maximum planned-tranche auto-advances per invocation (0 = unlimited).
max_auto_advance_tranches = 0
# Group adjacent open plan entries with matching `tranche_group=<name>` metadata.
enable_plan_tranche_grouping = false
# Cap grouped tasks per tranche (0 = unlimited).
max_grouped_tasks_per_tranche = 0
# Surface per-tranche `allowed_paths=...` metadata as explicit scope instructions.
enforce_plan_tranche_allowed_paths = false
# Merge conflict resolution strategy: fail | agent | manual
# merge_conflict_resolution = "fail"
# Optional run-spec task catalog (project-level verification/work commands).
# [[run.tasks]]
# key = "lint"
# cmd = "cargo clippy --workspace -- -D warnings"
# class = "cpu"
#
# [[run.tasks]]
# key = "test"
# cmd = "cargo test --workspace"
# class = "io"
#
# Optional explicit tranche definitions for run-spec execution.
# [[run.tranches]]
# key = "verify"
# objective = "verification tranche"
# task_keys = ["lint", "test"]
#
# Optional plan-guard contract for run-spec execution.
# [run.plan_guard]
# target = "I8B"
# mode = "implement"
# default_pace = "batch"

[budgets]
# Token guardrails (enabled by default to prevent runaway cost).
max_task_total_tokens = 500000
max_run_total_tokens = 5000000

# Optional hard limits. Leave commented/unset for no limit.
# max_task_rss_bytes = 1073741824
# max_task_cpu_user_ticks = 100000
# max_task_cpu_system_ticks = 100000
# max_task_io_read_bytes = 1073741824
# max_task_io_write_bytes = 1073741824
# max_run_peak_rss_bytes = 2147483648
# max_run_cpu_user_ticks = 500000
# max_run_cpu_system_ticks = 500000
# max_run_io_read_bytes = 4294967296
# max_run_io_write_bytes = 4294967296

[git]
default_target_branch = "main"
destructive_default_deny = true

[policy]
enforce_policies = true
audit_decisions = true

[memory.haake]
enabled = false
# [memory]
# enabled = true
# project_id = "my-project"
# command = "haake"
# project_dir = "."            # defaults to the directory containing PROMPT.md
# query_limit = 8
# inject_on_run_start = true
# inject_on_failure = true
#
# Bootstrap Haake for a repository:
# - `haake init -y`
#
# Then YARLI can store/query memories during `yarli run` when enabled=true.
# endpoint is reserved for a future native gRPC/HTTP adapter.
# endpoint = "http://localhost:8080"

[observability]
audit_file = ".yarl/audit.jsonl"
# log_level = "info"

[ui]
# auto | stream | tui
mode = "auto"
# verbose_output = false
# cancellation_diagnostics = false