Metadata-Version: 2.4
Name: autonoesis
Version: 0.3.0
Summary: A self-modeling and phenomenology kernel for cognitive agents.
Project-URL: Homepage, https://github.com/bionicbutterfly13/autonoesis
Project-URL: Repository, https://github.com/bionicbutterfly13/autonoesis
Project-URL: Issues, https://github.com/bionicbutterfly13/autonoesis/issues
Author: Bionic Butterfly
License-Expression: MIT
License-File: LICENSE
Keywords: agency,ai-agents,cognitive-architecture,metacognition,phenomenology,self-modeling
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown

# Autonoesis

A self-modeling and phenomenology kernel for cognitive agents.

Autonoesis provides small, typed primitives for representing and updating an
agent's model of itself as a subject situated in a world. It is designed to be
embedded inside larger cognitive architectures without bringing a database, web
framework, agent runtime, or storage backend.

## What It Owns

- Phenomenal state records
- Self-model state records
- Agency and ownership attribution
- First-person perspective state
- Boundary and mineness checks
- Transparency / opacity markers
- Pure self-model update operations

## What It Does Not Own

- Memory storage
- Agent orchestration
- LLM prompting infrastructure
- Active inference policy selection
- Safety policy systems
- Product runtime surfaces

## Install

```bash
pip install autonoesis
```

## Minimal Example

```python
from autonoesis import PhenomenalState, SelfModel, assess_agency, update_self_model

state = PhenomenalState(
    salience=0.8,
    valence=0.2,
    arousal=0.4,
    perspective="first_person",
)

model = SelfModel(subject_id="agent")
agency = assess_agency(intention_strength=0.9, outcome_match=0.7, external_override=0.0)
updated = update_self_model(model, state, agency=agency)

assert updated.agency.confidence > 0.0
```

## Design Rule

Autonoesis is a kernel. It should stay pure, typed, dependency-light, and easy to
test. Host systems should attach storage, orchestration, LLM calls, and runtime
policy through adapters.

## Project Docs

- [Product requirements](docs/prd.md)
- [v0.1 self-model kernel spec](docs/specs/v0.1-self-model-kernel.md)
- [Testing and TDD](docs/testing.md)
