yarp-cli 0.3.1

Prune Pi command output and archive tool calls locally
Documentation
# YARP

- Keep the command rewrite allowlist narrow. Rewrite failures fail open to the original command; archive failures follow `docs/tool-call-archive-spec.md`.
- Preserve child exit codes and keep stdout and stderr on their original streams.
- Do not add telemetry, analytics, or network access.
- Keep persistent runtime state limited to the local tool-call archive defined in `docs/tool-call-archive-spec.md` unless the user explicitly approves another store.
- Apply the configurable global text cap after command-aware summaries. Ensure an exact `result_text` or typed-summary recovery source is committed before shortening, keep bounded head and tail evidence plus a valid `yarp search` marker, and fail open if recovery is unavailable.
- Keep `toolcall-extractor` offline and independent from the live archive and pruning runtime. It may read only explicitly supplied local session roots, must never alter agent state, and writes only its own DuckDB database. Follow `docs/toolcall-extractor-implementation-plan.md`.
- Use strict TypeScript without explicit `any`, unsafe casts, or unchecked external input.
- Do not use unsafe Rust.
- Add tests for every behavior change.
- Avoid runtime dependencies when the standard library is enough.
- Follow https://github.com/osolmaz/slophammer/blob/main/docs/AGENT_ENTRYPOINT.md.
- Match validation effort to the changed surface:
  - For documentation, skill text, and package-resource metadata, run the relevant focused test, `slophammer-rs check .`, and `git diff --check`. Run the Pi typecheck when TypeScript or the Pi manifest changes.
  - For localized Rust or TypeScript changes, run formatting, check or typecheck, linting, and targeted tests for the affected package and behavior.
  - When a dependency manifest or lockfile changes, run the relevant package audit.
  - For core execution, archive, rewrite, reducer, parser, protocol, security, or privacy changes, run `cargo fmt --check`, `cargo check --workspace --locked`, `cargo clippy --workspace --all-targets --locked -- -D warnings`, `cargo test --workspace --all-targets --locked`, `cargo llvm-cov --workspace --all-targets --fail-under-lines 85`, `cargo audit --deny warnings`, `npm audit`, `npm run typecheck:pi`, `npm run test:pi`, `slophammer-rs check .`, and `git diff --check`.
- Let CI provide broad workspace coverage for low-risk, localized changes. Run full local coverage only for high-risk or coverage-sensitive changes, or when the user explicitly requests it.
- For a small, bounded change, commit and push after the targeted checks pass. Do not block the first push on broad checks that CI will run, and do not repeat an automated test with a manual canary unless there is a specific test gap or the user requests it.
- Mutation tests are declared in CI. Run them only when explicitly requested or when investigating test quality.