Add ManifestStore that loads TOML agent type manifests from a directory. Each manifest defines allowed tools, path allowlists, network egress policies, lineage constraints (can_spawn), and max spawn depth. Includes validation, reload support, and lookup by ID or name. 14 manifest tests + 8 existing = 22 total, clippy clean. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.2 KiB
1.2 KiB
Implementation Plan — Issue #52: Implement Agent Type Manifest loader
Metadata
| Field | Value |
|---|---|
| Issue | #52 |
| Title | Implement Agent Type Manifest loader |
| Milestone | Phase 7: Tool Broker |
| Labels | — |
| Status | COMPLETED |
| Language | Rust |
| Related Plans | issue-051.md |
| Blocked by | #51 |
Acceptance Criteria
- Manifest file format defined (TOML)
- Loader reads and validates manifests at startup
- Manifest includes: agent type, allowed tools, path allowlists, network egress rules
- Lineage constraints: which agent types can spawn which
- Hot-reload support (reload method on ManifestStore)
- Validation errors reported clearly at startup
Files to Create/Modify
| File | Action | Purpose |
|---|---|---|
services/tool-broker/src/manifest.rs |
Create | ManifestStore, AgentManifest, loading/validation |
services/tool-broker/src/lib.rs |
Modify | Export manifest module |
Deviation Log
| Deviation | Reason |
|---|---|
Hot-reload via reload() method instead of filesystem watcher |
Simpler, watcher can be added later if needed |