|
Download docs/evidyne_integration.md from desiree/spi: direct link, hf CLI and curl.
- Browser
- Download file 1.91 kB
-
https://huggingface.co/desiree/spi/resolve/main/docs/evidyne_integration.md
- Command line
-
hf download hf://desiree/spi/docs/evidyne_integration.md
-
curl -L -o evidyne_integration.md https://huggingface.co/desiree/spi/resolve/main/docs/evidyne_integration.md
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. |