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



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

Universal vocabulary types shared across **every** jackin❯ crate. This is the leaf at the bottom of the workspace dependency graph: no jackin❯ dependencies, no `tokio`, no subprocess, no filesystem, no presentation.

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

* Domain nouns every other crate speaks in: agent identity, instance, isolation, manifest fragments, env model, status, launch progress, operator notices.
* Port traits and shared abstractions higher crates implement (e.g. `CommandRunner`, `Clock`), plus the constants, paths, and selector/url/path text helpers reused everywhere.
* Small self-contained widgets/ansi/host-color tokens re-exported by presentation crates.

Because everything depends on `jackin-core`, it must stay dependency-free, side-effect-free, and cheap to compile. Anything that needs `tokio`, the filesystem, a subprocess, or a real adapter belongs in a higher crate.

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

**L0 leaf/domain.** Allowed workspace dependencies: **none**. No `tokio`, no I/O, no presentation. This is the floor; nothing in `jackin-core` may depend upward.

## Structure [#structure]

| Module                                                                                                                                                                                        | Owns                                      | Tests                                                                                    |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | ---------------------------------------------------------------------------------------- |
| <RepoFile path="crates/jackin-core/src/lib.rs">`lib.rs`</RepoFile>                                                                                                                            | crate root, re-exports                    | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/agent.rs">`agent.rs`</RepoFile> · <RepoFile path="crates/jackin-core/src/agent.rs">`agent/`</RepoFile>                                                 | agent identity                            | <RepoFile path="crates/jackin-core/src/agent/tests.rs">`tests.rs`</RepoFile>             |
| <RepoFile path="crates/jackin-core/src/instance.rs">`instance.rs`</RepoFile>                                                                                                                  | instance type                             | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/manifest.rs">`manifest.rs`</RepoFile>                                                                                                                  | manifest fragment                         | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/status.rs">`status.rs`</RepoFile> · <RepoFile path="crates/jackin-core/src/status.rs">`status/`</RepoFile>                                             | status type                               | <RepoFile path="crates/jackin-core/src/status/tests.rs">`tests.rs`</RepoFile>            |
| <RepoFile path="crates/jackin-core/src/operator_notice.rs">`operator_notice.rs`</RepoFile>                                                                                                    | operator notice                           | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/auth.rs">`auth.rs`</RepoFile>                                                                                                                          | auth model                                | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/account_key.rs">`account_key.rs`</RepoFile> · <RepoFile path="crates/jackin-core/src/account_key.rs">`account_key/`</RepoFile>                         | account key                               | <RepoFile path="crates/jackin-core/src/account_key/tests.rs">`tests.rs`</RepoFile>       |
| <RepoFile path="crates/jackin-core/src/env_model.rs">`env_model.rs`</RepoFile> · <RepoFile path="crates/jackin-core/src/env_model.rs">`env_model/`</RepoFile>                                 | env model                                 | <RepoFile path="crates/jackin-core/src/env_model/tests.rs">`tests.rs`</RepoFile>         |
| <RepoFile path="crates/jackin-core/src/env_value.rs">`env_value.rs`</RepoFile> · <RepoFile path="crates/jackin-core/src/env_value.rs">`env_value/`</RepoFile>                                 | env value                                 | <RepoFile path="crates/jackin-core/src/env_value/tests.rs">`tests.rs`</RepoFile>         |
| <RepoFile path="crates/jackin-core/src/paths.rs">`paths.rs`</RepoFile> · <RepoFile path="crates/jackin-core/src/paths.rs">`paths/`</RepoFile>                                                 | host paths + `PathsError`                 | <RepoFile path="crates/jackin-core/src/paths/tests.rs">`tests.rs`</RepoFile>             |
| <RepoFile path="crates/jackin-core/src/isolation.rs">`isolation.rs`</RepoFile>                                                                                                                | isolation type                            | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/isolation_record.rs">`isolation_record.rs`</RepoFile>                                                                                                  | isolation record                          | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/worktree_dirty.rs">`worktree_dirty.rs`</RepoFile> · <RepoFile path="crates/jackin-core/src/worktree_dirty.rs">`worktree_dirty/`</RepoFile>             | worktree-dirty check                      | <RepoFile path="crates/jackin-core/src/worktree_dirty/tests.rs">`tests.rs`</RepoFile>    |
| <RepoFile path="crates/jackin-core/src/runner.rs">`runner.rs`</RepoFile>                                                                                                                      | `CommandRunner` port                      | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/clock.rs">`clock.rs`</RepoFile> · <RepoFile path="crates/jackin-core/src/clock.rs">`clock/`</RepoFile>                                                 | `Clock` port + `ManualClock`              | <RepoFile path="crates/jackin-core/src/clock/tests.rs">`tests.rs`</RepoFile>             |
| <RepoFile path="crates/jackin-core/src/launch_progress.rs">`launch_progress.rs`</RepoFile>                                                                                                    | launch progress                           | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/prompt_result.rs">`prompt_result.rs`</RepoFile>                                                                                                        | prompt result                             | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/selector.rs">`selector.rs`</RepoFile>                                                                                                                  | selector                                  | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/docker.rs">`docker.rs`</RepoFile>                                                                                                                      | docker types                              | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/docker_security.rs">`docker_security.rs`</RepoFile> · <RepoFile path="crates/jackin-core/src/docker_security.rs">`docker_security/`</RepoFile>         | docker security                           | <RepoFile path="crates/jackin-core/src/docker_security/tests.rs">`tests.rs`</RepoFile>   |
| <RepoFile path="crates/jackin-core/src/debug_log.rs">`debug_log.rs`</RepoFile>                                                                                                                | `debug_log` stub                          | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/build_log_sink.rs">`build_log_sink.rs`</RepoFile>                                                                                                      | build-log sink stub                       | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/host_colors.rs">`host_colors.rs`</RepoFile>                                                                                                            | host color tokens                         | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/ansi_tokens.rs">`ansi_tokens.rs`</RepoFile>                                                                                                            | ansi tokens                               | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/tui_widgets.rs">`tui_widgets.rs`</RepoFile>                                                                                                            | tui widget stubs                          | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/standalone_dialog.rs">`standalone_dialog.rs`</RepoFile> · <RepoFile path="crates/jackin-core/src/standalone_dialog.rs">`standalone_dialog/`</RepoFile> | standalone dialog                         | <RepoFile path="crates/jackin-core/src/standalone_dialog/tests.rs">`tests.rs`</RepoFile> |
| <RepoFile path="crates/jackin-core/src/url_text.rs">`url_text.rs`</RepoFile>                                                                                                                  | url text                                  | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/path_text.rs">`path_text.rs`</RepoFile> · <RepoFile path="crates/jackin-core/src/path_text.rs">`path_text/`</RepoFile>                                 | path text                                 | <RepoFile path="crates/jackin-core/src/path_text/tests.rs">`tests.rs`</RepoFile>         |
| <RepoFile path="crates/jackin-core/src/op_cache.rs">`op_cache.rs`</RepoFile> · <RepoFile path="crates/jackin-core/src/op_cache.rs">`op_cache/`</RepoFile>                                     | op cache                                  | <RepoFile path="crates/jackin-core/src/op_cache/tests.rs">`tests.rs`</RepoFile>          |
| <RepoFile path="crates/jackin-core/src/op_probe_error.rs">`op_probe_error.rs`</RepoFile> · <RepoFile path="crates/jackin-core/src/op_probe_error.rs">`op_probe_error/`</RepoFile>             | typed `op` probe errors                   | <RepoFile path="crates/jackin-core/src/op_probe_error/tests.rs">`tests.rs`</RepoFile>    |
| <RepoFile path="crates/jackin-core/src/op_reference.rs">`op_reference.rs`</RepoFile> · <RepoFile path="crates/jackin-core/src/op_reference.rs">`op_reference/`</RepoFile>                     | op reference                              | <RepoFile path="crates/jackin-core/src/op_reference/tests.rs">`tests.rs`</RepoFile>      |
| <RepoFile path="crates/jackin-core/src/op_types.rs">`op_types.rs`</RepoFile>                                                                                                                  | op types                                  | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/constants.rs">`constants.rs`</RepoFile>                                                                                                                | shared constants                          | —                                                                                        |
| <RepoFile path="crates/jackin-core/src/container_paths.rs">`container_paths.rs`</RepoFile> · <RepoFile path="crates/jackin-core/src/container_paths.rs">`container_paths/`</RepoFile>         | container-side `/jackin/` path chokepoint | <RepoFile path="crates/jackin-core/src/container_paths/tests.rs">`tests.rs`</RepoFile>   |

## Public API [#public-api]

The crate is a vocabulary library: re-export the types/ports/constants you need from `jackin_core::…`. Higher crates implement the port traits defined here (e.g. `CommandRunner`) and pass the domain types through.

Typed construction/parse errors (thiserror): `ParseProfileError`, `ParseMountIsolationError`, `ParseAgentError`, `SelectorError`, `EnvCycleError` (`env_model`), `PathsError`, `OpProbeError`.

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

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