Metadata-Version: 2.5
Name: ki-protocol
Version: 1.1.0
Summary: KubeIntellect wire protocol — single source of truth for the typed SSE event format shared by server and clients.
Project-URL: Homepage, https://github.com/MSKazemi/kubeintellect
Project-URL: Documentation, https://github.com/MSKazemi/kubeintellect#readme
Project-URL: Repository, https://github.com/MSKazemi/kubeintellect
Project-URL: Changelog, https://github.com/MSKazemi/kubeintellect/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/MSKazemi/kubeintellect/issues
Author-email: Mohsen Seyedkazemi Ardebili <mskazemi@gmail.com>
License-Expression: AGPL-3.0-or-later
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.12
Requires-Dist: pydantic>=2.10
Description-Content-Type: text/markdown

# ki-protocol

Single source of truth for the KubeIntellect SSE wire protocol (version 1.0).

Two views of the same protocol:

- `ki_protocol.wire` — the **emission models** used by the server. Flat shape:
  `{"type": "...", <fields>, "session_id": "...", "ts": ...}`. This is exactly
  what goes over the wire inside the `ki_event` side-channel.
- `ki_protocol.events` — the **typed client view**: an envelope/`data`
  discriminated union plus `parse_event()`, which normalizes the flat wire
  shape into the nested form. Used by kube-q and any SDK consumer.

Wire-format changes must update both views in the same commit — that is the
point of this package (before V4, the two definitions lived in separate repos
and drifted).
