Metadata-Version: 2.4
Name: ai-hats-cline
Version: 0.3.0
Summary: Cline surface plugin for the ai-hats framework — registers the `cline` CLI as an ai-hats provider via the `ai_hats.providers` entry point.
Project-URL: Homepage, https://github.com/muratovv/ai-hats
Project-URL: Repository, https://github.com/muratovv/ai-hats
Project-URL: Changelog, https://github.com/muratovv/ai-hats/blob/master/packages/surfaces/cline/CHANGELOG.md
Author-email: muratovv <f@muratovv.me>
License-Expression: MIT
License-File: LICENSE
Keywords: agent,ai-hats,cline,llm,provider,surface
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Requires-Dist: ai-hats
Requires-Dist: ai-hats-observe>=0.3.0
Requires-Dist: filelock>=3.0
Description-Content-Type: text/markdown

# ai-hats-cline

A **Cline surface plugin** for the [ai-hats](https://github.com/muratovv/ai-hats)
framework. It registers the [`cline`](https://cline.bot) CLI as a first-class
ai-hats **provider** through the `ai_hats.providers` entry point, so ai-hats
discovers it with zero edits to `src/ai_hats/**` (the T10 IoC seam, HATS-870).

Install it alongside `ai-hats` and `cline` appears next to the built-ins:

```console
$ ai-hats list providers
  claude  →  CLAUDE.md
  gemini  →  GEMINI.md
  cline   →  CLINE.md
```

(The `→ CLINE.md` column is nominal — cline takes the role inline via `-s`, so
no `CLINE.md` file is ever written; it is just this provider's system-prompt
path label.)

Then compose any role onto cline:

```console
$ ai-hats -p cline -r <role>          # HITL: launches an interactive cline TUI
```

## What it owns

- **`ClineProvider`** — the `ai_hats.providers.Provider` adapter for `cline`:
  - the composed role reaches cline **inline** via `-s "<role>"` (no static
    `CLINE.md` — `update_system_prompt` is a no-op);
  - HITL launches the interactive TUI (`cline -i`); the automate path runs
    headless (`cline --yolo --json "<prompt>"`);
  - `--worktree` is never passed (ai-hats-wt owns isolation), and
    `CLINE_DATA_DIR` is left ambient so cline keeps the machine's auth;
  - the role's skills are materialized into `.cline/skills/` (cline's native
    discovery path) so `/skills` shows them and `/skill-name` loads bodies
    (HATS-963). User-authored skills in `.cline/skills/` are preserved.

## Requirements

- `cline` v3.x on `PATH`, authenticated (`cline auth`).
- `ai-hats` (this plugin depends on the integrator for the `Provider` ABC, per
  ADR-0014).

## Not yet here

- **`ClineParser`** — a structured `.messages.json` → audit + usage adapter
  (follow-up); until it lands the provider rides ai-hats-observe's default
  trace parser.
- `--hooks-dir` runtime-hook wiring, cline `teams`/`spawn`, and PyPI publish.
