Files
pyre/.serena/memories/codebase_structure.md
RogueWave c20094ab56 chore: scaffold PYRE MVP monorepo (structure + docs)
pnpm + TypeScript workspace per design doc §13:
- apps/{web,api,worker} skeletons (Next.js 16, Fastify 5, BullMQ)
- packages/{core,solana,prometheus,db,config} (core has real types/DTOs;
  solana/prometheus are stubs)
- programs/pyre-core placeholder (future Anchor, v1.0)
- docs/: PYRE_MVP_DESIGN (canonical), ARCHITECTURE, SECURITY, TOKEN_CLASSIFICATION
- CLAUDE.md, README, .env.example (no private-key var by design)

Skeleton + docs only — no Solana/business logic yet. All workspaces typecheck clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 02:20:55 +00:00

2.2 KiB

Repo structure (pnpm + TypeScript monorepo)

Root: /home/pyre/pyre. pnpm workspaces (apps/*, packages/*). All packages: @pyre/<name>, ESM ("type":"module"), tsconfig extends tsconfig.base.json (strict, Bundler resolution, verbatimModuleSyntax → use .js extensions on relative imports).

apps/ (runtime services)

  • apps/web (@pyre/web) — Next.js 15 + React 19 + Tailwind + Solana Wallet Adapter. Landing, wallet connect, scanner UI, cleanup preview, receipt page, Prometheus preview, admin review.
  • apps/api (@pyre/api) — Fastify 5. Endpoints (§14): POST /api/scan, /api/build/close-empty, /api/build/burn, /api/receipt, /api/prometheus/generate, + admin. Has /health live.
  • apps/worker (@pyre/worker) — BullMQ jobs: metadata enrichment, AI generation, image prompts, safety checks, collision checks, confirmation tracking, receipt enrichment.

packages/ (shared libs)

  • packages/core (@pyre/core) — real type defs: TokenClassification enum (EMPTY_CLOSE_ONLY, INCINERATE_ONLY, TRANSMUTABLE, PROTECTED_SKIP, UNSUPPORTED), API DTOs, CleanupReceipt, Prometheus I/O, risk types. Lamports as strings.
  • packages/solana (@pyre/solana) — STUBS only (throw "not implemented"): parseTokenAccounts, buildCloseEmptyAccountsTx, buildBurnTx, simulateTransaction, decodeTransaction. deps @solana/web3.js, @solana/spl-token.
  • packages/prometheus (@pyre/prometheus) — STUBS: buildPrompt, runMetaMixer, parseOutput, runSafetyChecks, generateImagePrompt.
  • packages/db (@pyre/db) — table-name constants + createPool() stub (pg). Tables in §15.
  • packages/config (@pyre/config) — Env interface + loadConfig() stub mapping .env.example. No private-key var by design.

other

  • programs/pyre-core — future Anchor program (v1.0, placeholder README).
  • docs/ — PYRE_MVP_DESIGN.md (canonical), ARCHITECTURE.md, SECURITY.md, TOKEN_CLASSIFICATION.md.
  • preview.html, scripts/, infra/, CLAUDE.md, .env.example.

CURRENT STATE

Scaffold + docs only. NO Solana/business logic implemented (intentional). pnpm install has NOT been run. Dependency version ranges were set from model knowledge — verify against registry/context7 before relying on exact majors.