Agent-based dashboard: how a deepfake spreads through a school network, and where a limited education budget actually helps. Illustrative, not validated.
App.vue fetches the default config, posts it to /api/comparison, and renders ComparisonTable; the Vite dev server proxies /api to the Go server so the browser sees one origin. src/lib/api.ts is the only fetch code and uses exclusively generated types: no shape is defined on the frontend. Scaffold example components removed. Engine fix surfaced by the smoke test: a nil Go slice marshals to JSON null, violating the generated 'educated: number[]' contract; RunScenario now returns an empty slice instead. Verified end to end: curl through the Vite proxy returns the golden 99/70/7. Vitest covers the table rendering; type-check, oxlint, eslint clean. This completes the milestone 2 parity check. |
||
|---|---|---|
| cmd/spreadlab | ||
| internal | ||
| web | ||
| .gitignore | ||
| generate.go | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| README.md | ||
| tygo.yaml | ||
spreadlab
Self-hosted dashboard that runs an agent-based deepfake-spread model live: change the levers, watch the spread, and (later) search for the best intervention under a budget. Output is illustrative, not validated.
Status: milestone 1, porting the simulation engine.
Layout:
internal/engine/- the pure simulation engine (no web dependencies)cmd/spreadlab/- the server binary (milestone 2)web/- Vue 3 + TypeScript frontend (milestone 2+)
MIT licensed.