Metadata-Version: 2.4
Name: tev-lnu-sdk
Version: 0.2.0rc2
Summary: Reusable LNU-governed Python SDK for exact contracts, evidence, bounded execution, testing, and application composition
Author: Marcbeacve
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: pytest>=8; extra == "dev"

# TEV-LNU-SDK

Biblioteca y framework opcional bajo LNU para construir aplicaciones con contratos tipados, resultados explícitos, faults estructurados, estado/receipts/replay, presupuestos, procesos acotados, sandbox, testing negativo y composición gobernada.

## Estado

```text
R2_FOUNDATION_AND_TYPED_ENCODING_VERIFIED
R3_TO_R14_IMPLEMENTED_CERTIFICATION_PENDING
DECOUPLING_CANDIDATE=0.2.0rc2
NO_RELEASE_AUTHORITY
NO_AUTOMATIC_PROMOTION
```

R2 fue verificado con wheel aislada, TEVProver fijado y equivalencia IA-TEV. Las capas posteriores permanecen provisionales hasta ejecutar los gates acumulativos en Windows, WSL y Linux nativo con Python 3.11/3.12.

El candidato `0.2.0rc2` refactoriza la frontera pública sin reutilizar los bytes ni la identidad `0.2.0rc1`. Se consume como wheel instalada; no depende de un checkout hermano, `PYTHONPATH` ni modo editable. El contrato y la identidad instalada están descritos en `docs/PUBLIC_DISTRIBUTION_BOUNDARY_V1.md`.

## Fronteras desacopladas

El SDK no importa TEVProber, TEVProver, TEV-LNU-Runtime, TEVScript, IA-TEV ni `TEV_OS`. Las integraciones se realizan únicamente mediante contratos públicos.

```text
tev_lnu.ports
├── ProverPort   -> tribunal formal externo
├── ProbePort    -> planificador TEVProber externo
├── RuntimePort  -> ejecutor externo
├── ApplicationPort
├── StateStorePort
└── WitnessStorePort
```

`tev_lnu.ports` es la única autoridad de esos contratos. `tev_lnu.adapters` conserva imports históricos como fachada de compatibilidad y no define protocolos paralelos.

El framework también separa propietarios internos:

```text
tev_lnu.lifecycle   -> lifecycle y transiciones
tev_lnu.components  -> registros de componentes
tev_lnu.composition -> composition root
tev_lnu.application_framework -> fachada opcional
```

La API raíz se deriva de `tev_lnu.public_api_registry`; `public_api_root()` liga tanto la superficie estable como la superficie de compatibilidad. `tev_lnu.architecture_layers` proporciona el gate ejecutable para dependencias entre capas y ciclos de imports.

## Biblioteca

```python
from tev_lnu import Identifier, Result, StateSnapshot

state = StateSnapshot.create(
    state_id=Identifier("STATE", "example"),
    revision=0,
    values={"ready": True},
)
assert Result.pass_(state).passed
```

## Framework opcional

```python
from tev_lnu import (
    AuthorityGrant,
    Identifier,
    LNUFramework,
    Result,
    RouteRegistration,
)

route = Identifier("ROUTE", "echo")
authority = AuthorityGrant(
    Identifier("AUTHORITY", "local"),
    Identifier("SUBJECT", "operator"),
    ("route.echo",),
    "sha256:" + "a" * 64,
)
framework = LNUFramework().add_route(
    RouteRegistration(route, lambda value: Result.pass_(value), ("route.echo",))
)
assert framework.handle(route, b"ok", authority=authority).unwrap() == b"ok"
```

El framework es una fachada opcional sobre registries explícitos. No existe service locator global y ninguna extensión puede ampliar autoridad.

## Integración con TEVProber

El SDK sólo conoce el contrato:

```python
from tev_lnu import ProbePort, Result

class MyProbeAdapter:
    def plan(self, request: bytes) -> Result[bytes]:
        ...
```

La implementación de TEVProber y las políticas específicas de cada repositorio quedan fuera del SDK.

## CLI

```text
tev-lnu version
tev-lnu canonical-hash value.json --domain EXAMPLE/V1
tev-lnu verify-hash value.json sha256:... --domain EXAMPLE/V1
tev-lnu scaffold ./my-app --package my_app
tev-lnu scaffold ./my-app --package my_app --write
```

`scaffold` es dry-run salvo que se indique `--write`; nunca sobrescribe un destino no vacío.

## Verificación

```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\tools\VERIFY_TEV_LNU_SDK_R3_R8_WINDOWS.ps1
```

El gate preserva R2 mediante un worktree fijado al snapshot certificado, ejecuta toda la suite, construye una wheel del head actual, instala sin editable mode y prueba el framework desde un entorno limpio.

El refactor `0.2.0rc2` no está certificado por el mero hecho de existir en la rama. Requiere suite completa, wheel reproducible, instalación aislada y receipts exactos antes de cualquier claim de release.

## Documentación

- `docs/PUBLIC_DISTRIBUTION_BOUNDARY_V1.md`
- `docs/FRAMEWORK_GUIDE.md`
- `docs/SECURITY_MODEL.md`
- `docs/MIGRATION_GUIDE.md`
- `docs/architecture/TEV_LNU_SDK_MASTER_DESIGN_V1.md`

## Alcance

La certificación es finita y ligada a fuente, dependencias, wheels, plataforma y receipts. No implica infalibilidad, ausencia universal de bugs ni autoridad automática de release o merge.
