Behind jackin❯ — crates

jackin-core

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

  • 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

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

ModuleOwnsTests
lib.rscrate root, re-exports
agent.rs · agent/agent identitytests.rs
instance.rsinstance type
manifest.rsmanifest fragment
status.rs · status/status typetests.rs
operator_notice.rsoperator notice
auth.rsauth model
account_key.rs · account_key/account keytests.rs
env_model.rs · env_model/env modeltests.rs
env_value.rs · env_value/env valuetests.rs
paths.rs · paths/host paths + PathsErrortests.rs
isolation.rsisolation type
isolation_record.rsisolation record
worktree_dirty.rs · worktree_dirty/worktree-dirty checktests.rs
runner.rsCommandRunner port
clock.rs · clock/Clock port + ManualClocktests.rs
launch_progress.rslaunch progress
prompt_result.rsprompt result
selector.rsselector
docker.rsdocker types
docker_security.rs · docker_security/docker securitytests.rs
debug_log.rsdebug_log stub
build_log_sink.rsbuild-log sink stub
host_colors.rshost color tokens
ansi_tokens.rsansi tokens
tui_widgets.rstui widget stubs
standalone_dialog.rs · standalone_dialog/standalone dialogtests.rs
url_text.rsurl text
path_text.rs · path_text/path texttests.rs
op_cache.rs · op_cache/op cachetests.rs
op_probe_error.rs · op_probe_error/typed op probe errorstests.rs
op_reference.rs · op_reference/op referencetests.rs
op_types.rsop types
constants.rsshared constants
container_paths.rs · container_paths/container-side /jackin/ path chokepointtests.rs

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

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

On this page