2.4 KiB
2.4 KiB
Repository Guidelines
Project Structure & Module Organization
- Source code:
src/(CLI wiring insrc/cli, commands insrc/commands, Twilio insrc/twilio, Web provider insrc/provider-web.ts, infra insrc/infra, media pipeline insrc/media). - Tests: colocated
*.test.tsplus e2e insrc/cli/relay.e2e.test.ts. - Docs:
docs/(images, queue, Claude config). Built output lives indist/.
Build, Test, and Development Commands
- Install deps:
pnpm install - Run CLI in dev:
pnpm warelay ...(tsx entry) orpnpm devforsrc/index.ts. - Type-check/build:
pnpm build(tsc) - Lint/format:
pnpm lint(biome check),pnpm format(biome format) - Tests:
pnpm test(vitest); coverage:pnpm test:coverage
Coding Style & Naming Conventions
- Language: TypeScript (ESM). Prefer strict typing; avoid
any. - Formatting/linting via Biome; run
pnpm lintbefore commits. - Keep files concise; extract helpers instead of “V2” copies. Use existing patterns for CLI options and dependency injection via
createDefaultDeps.
Testing Guidelines
- Framework: Vitest with V8 coverage thresholds (70% lines/branches/functions/statements).
- Naming: match source names with
*.test.ts; e2e in*.e2e.test.ts. - Run
pnpm test(orpnpm test:coverage) before pushing when you touch logic.
Commit & Pull Request Guidelines
- Follow concise, action-oriented commit messages (e.g.,
CLI: add verbose flag to send). - Group related changes; avoid bundling unrelated refactors.
- PRs should summarize scope, note testing performed, and mention any user-facing changes or new flags.
Security & Configuration Tips
- Environment: copy
.env.example; set Twilio creds and WhatsApp sender (TWILIO_WHATSAPP_FROM). - Web provider stores creds at
~/.warelay/credentials/; rerunwarelay loginif logged out. - Media hosting relies on Tailscale Funnel when using Twilio; use
warelay webhook --ingress tailscaleor--serve-mediafor local hosting.
Agent-Specific Notes
- If the relay is running in tmux (
warelay-relay), restart it after code changes: kill pane/session and runpnpm warelay relay --verboseinside tmux. Check tmux before editing; keep the watcher healthy if you start it. - Also read the shared guardrails at
~/Projects/oracle/AGENTS.mdand~/Projects/agent-scripts/AGENTS.MDbefore making changes; align with any cross-repo rules noted there.