# jackin-console-oppicker (https://jackin.tailrocks.com/reference/crates/jackin-console-oppicker/)



{/* GENERATED from crates/jackin-console-oppicker/README.md — edit the README, not this file */}

Pure model and planning helpers for the 1Password picker — the side-effect-free half of the operator secret-selection flow. Holds picker state, input handling, and load planning with zero `op` CLI calls.

Split out of the console so the picker's decision logic is unit-testable without touching `op` or the terminal.

## What this crate owns [#what-this-crate-owns]

* Picker state machine (`state`) and input handling (`input`).
* Load/planning helpers (`load`) — what to fetch and how to present it, with no I/O.

## Architecture tier and allowed dependencies [#architecture-tier-and-allowed-dependencies]

**Presentation-adjacent pure model.** Allowed workspace dependencies: `jackin-core`, `jackin-diagnostics`, `jackin-tui`. No `op`, no `tokio`, no filesystem — the `op` side-effects live in `jackin-env`.

## Structure [#structure]

| Module                                                                             | Owns                  | Tests |
| ---------------------------------------------------------------------------------- | --------------------- | ----- |
| <RepoFile path="crates/jackin-console-oppicker/src/lib.rs">`lib.rs`</RepoFile>     | re-exports            | —     |
| <RepoFile path="crates/jackin-console-oppicker/src/state.rs">`state.rs`</RepoFile> | picker state machine  | —     |
| <RepoFile path="crates/jackin-console-oppicker/src/input.rs">`input.rs`</RepoFile> | input handling        | —     |
| <RepoFile path="crates/jackin-console-oppicker/src/load.rs">`load.rs`</RepoFile>   | load/planning helpers | —     |

## Public API [#public-api]

Picker state + planning consumed by `jackin-console` (and the side-effect adapters in `jackin-env`). The console/oppicker extraction pattern is the template for future pure-model splits.

## How to verify [#how-to-verify]

```sh
cargo nextest run -p jackin-console-oppicker
cargo clippy -p jackin-console-oppicker --all-targets -- -D warnings
```
