spi / docs /evidyne_integration.md
desiree's picture
Phase 1: Evidyne integration doc
7c8b051 verified
|
Raw History Blame Contribute Delete
1.91 kB
# Evidyne Integration (SPI)
## Contract
Every operation returns the §32 response contract:
```json
{
"status": "PASS|REPAIR|REGENERATE|REPLAN|REJECT|UNRESOLVED|BLOCKED",
"project_id": "...",
"state_version": 18,
"artifacts": ["A_JOB_SHOT_0001"],
"evidence": [],
"warnings": [],
"next_actions": ["render_master"]
}
```
Failures add `failure_type`, `location`, `repair_plan`.
## Operations (Phase 1 implemented)
| Operation | Purpose | Notes |
|---|---|---|
| `create_project(prompt)` | new ProjectState | returns project_id |
| `interpret_project(pid)` | IntentEngine + idea generation | separates `must:` constraints |
| `generate_ideas(pid, task)` | adaptive idea budget | normal=3 / important=5 / major=8 |
| `commit_concept(pid, idea_id)` | governing rules | |
| `compile_production(pid)` | plan → DAG; validates | BLOCKED on cycles/invalid jobs |
| `render_draft(pid)` | scheduler + renderer | cached artifacts |
| `evaluate_draft(pid)` | level-1 checks → fusion → arbiter | evidence attached |
| `get_project_state(pid, fields?)` | lazy field retrieval (§68) | |
| `get_evidence(pid)` / `get_job_status(pid)` | observation | |
## Evidyne loop
```
THINK interpret_project / generate_ideas / commit_concept
EXECUTE compile_production / render_draft
VERIFY evaluate_draft (status REPAIR -> repair_plan in response)
REPAIR (Phase 7; today evaluate_draft reports repair targets)
```
Evidyne only needs `project_id` + these JSON calls; renderer and model internals stay behind
`ModelRouter`. In Phase 1 Evidyne can run the whole mock loop without any GPU.
## Adding a renderer (§43-J)
Implement the `Renderer` protocol (`spi/renderers/base.py`): `name`, `kind`, `capabilities()`,
`generate(request) -> {"artifact": uri, ...}`. Register with `ModelRouter.register(kind, renderer)`.
Phase 2 ships `WanRenderer` (diffusers `WanPipeline`) behind this exact interface.