Metadata-Version: 2.3
Name: signal-space
Version: 0.1.0
Summary: Signal Space graph, timeline, inspector, and intent types for Python
Author: Brian Takita
Author-email: Brian Takita <brian.takita@gmail.com>
License: MIT
Requires-Dist: lazily>=0.11.0
Requires-Dist: pytest>=9.0.0 ; extra == 'dev'
Requires-Dist: ruff>=0.14.0 ; extra == 'dev'
Requires-Python: >=3.12
Project-URL: Homepage, https://github.com/signal-space/signal-space-py
Project-URL: Source, https://github.com/signal-space/signal-space-py
Project-URL: Spec, https://github.com/signal-space/signal-space-spec
Provides-Extra: dev
Description-Content-Type: text/markdown

# signal-space-py

Python types and conformance helpers for Signal Space.

Supported `signal-space-spec`: `0.1.0`

The package is intended to layer on top of `lazily-py` for reactive runtime
integration. The current implementation focuses on fixture parsing,
round-tripping, validation of ids, edges, authority levels, derived state fields,
and immutable inspector/view-model projections for local tools.

Core helpers:

- `load_document(path)` / `validate_document(data)`
- `validate_graph(graph)`
- `get_node(graph, node_id)`
- `get_decision_nodes(graph)`
- `get_timeline_by_class(graph, state_class)`
- `get_allowed_intents(graph, target=None)`
- `summarize_graph(graph)`
- `create_inspector_model(graph, target)`
- `create_graph_view_model(graph, selected_node_id=None)`

Typing and lazily integration policy is documented in
[`docs/typing-policy.md`](docs/typing-policy.md).
