Metadata-Version: 2.4
Name: untaped
Version: 4.0.0rc1
Summary: A batteries-included CLI framework for building standalone DevOps tools.
Author: Alexis Beaulieu
Author-email: Alexis Beaulieu <alexisbeaulieu97@gmail.com>
License-Expression: MIT
License-File: LICENSE
Requires-Dist: cyclopts>=4.16.0,<5
Requires-Dist: filelock>=3.29.7,<4
Requires-Dist: httpx>=0.28.1
Requires-Dist: jinja2>=3.1.6,<4
Requires-Dist: packaging>=26.2,<27
Requires-Dist: prompt-toolkit>=3.0.52
Requires-Dist: pydantic>=2.13.3,<3
Requires-Dist: pydantic-settings>=2.14.0
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: rich>=15.0.0
Requires-Dist: ruamel-yaml>=0.18.16
Requires-Dist: tomli-w>=1.2,<2
Requires-Dist: tomlkit>=0.13,<1
Requires-Dist: truststore>=0.10.4
Requires-Python: >=3.14
Description-Content-Type: text/markdown

# untaped

**untaped** is one `untaped` application built on [cyclopts](https://cyclopts.readthedocs.io/). It provides the shared shell, five management command groups, and seven built-in capabilities from one install.

The root shell provides:

- **Config** — a shared `~/.untaped/config.yml` with top-level `active:` /
  `profiles:`, per-profile SDK `http` / `ui` settings, and each tool's own
  profile settings plus tool-managed top-level state.
- **Profiles** — named overlays (`dev`, `prod`, `homelab`) and a `--profile`
  root option, built in.
- **Themes** — built-in theme presets for consistent terminal styling.
- **Output** — consistent `--format json|yaml|table|raw|pipe` and `--columns`,
  so commands compose. `pipe` is a self-describing NDJSON record stream another
  untaped tool can read back. `emit(...)` renders a single entity as a vertical
  detail view or a sequence as a collection, dispatching by shape.
- **HTTP / UI helpers** — an `HttpClient` with profile-aware TLS, automatic
  retries for transient failures (`RetryPolicy`), and pagination helpers, plus a
  `UiContext` for messages, prompts, and progress.
- **Config tooling** — `untaped doctor` diagnoses the shared file and
  `untaped config edit` opens it in `$VISUAL`/`$EDITOR`; a `--quiet` root option
  mutes progress and `success`/`info` chatter.
- **Installed version reporting** — `untaped --version` prints the installed
  distribution version.

Capability providers use the stable surface in
[`src/untaped/capability_api.py`](./src/untaped/capability_api.py). Built-ins
are composed by [`src/untaped/bootstrap.py`](./src/untaped/bootstrap.py), and
each capability owns its commands, settings, state, and packaged skill.

The public package is built with `uv build --no-sources`; the release manifest
records the supported Python floor, capability order, direct requirements, and
selected source OIDs in [`release-manifest.toml`](./release-manifest.toml).

## Requirements

Python 3.14 and [uv](https://docs.astral.sh/uv/).

## Install and use

```bash
uv tool install untaped==4.0.0rc1
untaped --help
untaped --version
```

Every command reads the shared `~/.untaped/config.yml` and uses the same
`--format json|yaml|table|raw|pipe` output contract. A typical offline check is:

```bash
untaped config list --format yaml
untaped capabilities --format json
untaped doctor
```

## Built-in capabilities

The unified shell composes these capabilities under one executable:

- **`workspace`** — local git workspaces and repo sync.
- **`github`** — authenticated GitHub inventory, search, and corpus workflows.
- **`jira`** — Jira Data Center issue and sprint workflows.
- **`awx`** — AWX/AAP resource inspection and guarded reconciliation.
- **`ansible`** — Ansible dependency graph and impact analysis.
- **`recipe`** — local recipe pack planning, backup, and application.
- **`orchestration`** — typed repository decision and task orchestration stores.

All seven command roots resolve without network access when invoked with
`--help`:

```bash
untaped workspace --help
untaped github --help
untaped jira --help
untaped awx --help
untaped ansible --help
untaped recipe --help
untaped orchestration --help
```

See [docs/workspace/usage.md](./docs/workspace/usage.md) for the manifest
shape, command reference, and shell helper examples.

## Documentation

User-facing docs live in [`docs/`](./docs/README.md):

- [Capability authoring](./docs/plugins.md) — the stable provider surface and
  composition rules for built-in capabilities.
- [Configuration](./docs/configuration.md) — the `~/.untaped/config.yml`
  format, profiles, secrets, and TLS.
- [Agent Skills](./docs/skills.md) — how each tool ships and installs
  Codex/Claude agent skills.
- [Releasing](./docs/release.md) — PyPI/TestPyPI workflow, Trusted Publisher
  setup, and recovery rules.
- [Architecture decisions](./docs/decisions.md) — the settled ADRs behind the
  single application and its capability boundaries.

Historical source repositories imported into the built-in capabilities:

- [GitHub](https://github.com/alexisbeaulieu97/untaped-github)
- [Jira](https://github.com/alexisbeaulieu97/untaped-jira)
- [AWX / AAP](https://github.com/alexisbeaulieu97/untaped-awx)
- [Ansible](https://github.com/alexisbeaulieu97/untaped-ansible)
- [Workspaces](https://github.com/alexisbeaulieu97/untaped-workspace)
- [Recipe](https://github.com/alexisbeaulieu97/untaped-recipe)
- [Orchestration](https://github.com/alexisbeaulieu97/untaped-orchestration)

The imported source history remains available for provenance and review. The
public v4 application owns the installed command surface; private retirement
and cutover work are tracked separately from this release documentation.

## Security

Please report suspected vulnerabilities privately. See
[SECURITY.md](./SECURITY.md).

## Contributing

See [CONTRIBUTING.md](./CONTRIBUTING.md) and [AGENTS.md](./AGENTS.md) for the
local workflow, architecture rules, and recipes for extending the app.

## License

MIT. See [LICENSE](./LICENSE).
