assistant 1.2.0

Agent-agnostic CLI super-app; aggregates all coding agent CLI tools into a single binary
# All simple cargo modules share the workspace image.
# Build the image with: dev/run/runbox .build
image: workspace_test

# non-root so chmod-000 file-permission tests fail correctly (root bypasses checks)
test_user: testuser
# workspace scope — simple modules share the workspace image; no per-module build
cmd_scope: --workspace
# baked into the image default CMD; excludes tests needing external I/O (offline-safe default)
cmd_filter: "!binary(behavior)"

# script invoked by `.test` inside the container (path relative to /workspace)
test_script: module/assistant/verb/test.d/l1

# script invoked by `.lint` inside the container (path relative to /workspace)
lint_script: module/assistant/verb/lint.d/l1

# script invoked by `.run` inside the container (path relative to /workspace)
run_script: module/assistant/verb/run.d/l1
# optional binary plugin: name:container_path (binary found via 'which name' on host)
bin_plugin: w3:/usr/local/bin/w3
# container mount point for bin_plugin working volume (persists compilation artifacts)
bin_plugin_volume: /tmp/will_test_targets
# data directory plugin: host_path:container_path:check_type
# .test mounts as required+rw; .shell mounts as optional+ro
plugin_mount: ~/.claude:/workspace/.claude:directory

# cli_fmt is a co-developed companion crate; passed as a named build context (--build-context cli_fmt).
# Path is resolved relative to this file's directory (run/).
extra_build_context: cli_fmt=../../../../../wtools/dev/module/core/cli_fmt

# ── Formerly hardcoded parameters (now configurable) ─────────────────────────
# base_image: rust:slim          # FROM for chef and test stages
# rustup_components: clippy      # space-separated; e.g. "clippy rustfmt"
system_packages: curl procps
# cargo_features: --all-features # passed to nextest list and offline run CMD
# workspace_dir: /workspace      # container WORKDIR; must match in runbox/runbox.dockerfile and runbox-run