Built by 2 parallel agents (+ image-API research):
- @pyre/prometheus: generateSpawn() engine — deterministic §9 meta-mixer
(40/25/20/15), prompt builder ("inspired mutation, not a clone" + no
people/brands), name/ticker/lore/tagline gen, image-prompt, denylist + moderation
safety. PROVIDER-ABSTRACTED (TextProvider/ImageProvider/ModerationProvider) with
deterministic STUBS so it runs keyless today; real call shapes documented (Claude
Haiku text · FLUX schnell image · OpenAI omni-moderation). 13 tests.
- @pyre/db: migration 002 (prometheus_generations, spawn_records) + record/list/get.
- @pyre/api: admin-gated POST /api/prometheus/generate + /api/spawn/launch
(x-admin-token; CLOSED with 403 when ADMIN_API_TOKEN unset; timing-safe compare),
public GET /api/spawns + /api/spawn/:id.
- @pyre/web: public /spawn record page; @pyre/core SpawnRecord type.
Verified: typecheck 8/8, 134 tests (core 91 + prometheus 13 + solana 30), web build
(+/spawn), migrate 002 live, /api/spawns OK, admin gate returns 403 (unconfigured).
Follow-ups: set ADMIN_API_TOKEN to use admin endpoints; wire real provider keys;
receiptId→DB-id wiring; admin generation UI.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@pyre/prometheus
AI generation logic for the Prometheus meta mixer.
Purpose
Generates Spawn identity (name, ticker, lore, image prompt, metadata) from cleanup receipts. Per §13 its responsibilities are:
- Prompt templates.
- Meta mixer.
- Output parser.
- Safety checks.
- Image-prompt generator.
See §9 (meta mixer) and §10 (Pump.fun creator workflow). Prometheus never controls funds; it only produces creative identity for manual, human-reviewed launch in the MVP.
Design rules
- Meta influence is probabilistic, not deterministic.
- Produce inspired mutations, not direct clones — reject exact copyrighted or existing meme identities.
Status
Stubs only. Every exported function throws Error("not implemented").
TODO
- Implement
buildPrompt,runMetaMixer,parseOutput,runSafetyChecks,generateImagePrompt. - The AI client (Anthropic / OpenAI / image-gen provider) is configured via
@pyre/configand injected here. This package adds no SDK dependencies of its own.