Metadata-Version: 2.3
Name: k-flow
Version: 0.4.1
Summary: Channel-modular voice kernel with contract-first dispatch
Author: KpihX
Author-email: KpihX <kapoivha@gmail.com>
Requires-Dist: pydantic>=2.8.0
Requires-Dist: pyyaml>=6.0.0
Requires-Dist: typer>=0.12.0
Requires-Dist: websockets>=12.0
Requires-Python: >=3.12
Description-Content-Type: text/markdown

## flow

Channel-modular voice kernel with a single business core and transport-specific channel packages.

Legacy implementation is preserved under `old/`.

## Source of truth

- `CONTRACT.md` — API and wrapper contract.
- `ARCHITECTURE.md` — modular channel architecture rules.

## Runtime binaries

- `flow` — global admin (`health`, `status`, `doctor`, aggregate `auth`).
- `flow-stdio` — stdio channel CLI/admin/auth.
- `flow-ws` — websocket channel CLI/admin/auth.
- `flow-http` — http channel CLI/admin/auth.

## Quickstart

```bash
make test
uv tool install . --editable --force
flow --help
flow-stdio --help
flow-ws --help
flow-http --help
```

## Auth model

- Channel-local auth:
  - `flow-stdio auth ...`
  - `flow-ws auth ...`
  - `flow-http auth ...`
- Global aggregate auth:
  - `flow auth ...` (scans `src/flow/channels/`, no `--channel` flag)
- Security baseline:
  - API key secrets are returned once on create and stored hashed at rest.
  - Key expiration is supported via `--ttl-days`.
  - Audit commands:
    - `flow auth audit`
    - `flow-stdio auth audit`
    - `flow-ws auth audit`
    - `flow-http auth audit`

## STT runtime

- STT orchestration: `src/flow/stt/runtime.py`
- Audio normalisation: `src/flow/stt/normalise.py`
- Diagnostics only bootstrap: `src/flow/bootstrap.py`

To enable real STT execution:

```bash
export FLOW_ENABLE_REAL_STT=1
```

## Release

- Distribution name: `k-flow` (import name: `flow`)
- Build/publish/push:

```bash
make release
```
