Files
recap/docs/guides/relay-client.md
T
Keysat 982e1b0d66 Retrofit: fix stale command docs, extract relay-client guide
- Replace the Commands-table Lint/Type-check TODOs with the real, verified
  commands: `npm run check` (tsc --noEmit over startos/) and `npm run prettier`.
  There is no ESLint/linter; server/ JS is untooled.
- Move the client-side relay contract (env vars, /relay/* endpoints, X-Recap-*
  headers, file map) out of AGENTS.md into docs/guides/relay-client.md with
  paths: frontmatter, lazy-loaded via a .claude/rules symlink; AGENTS.md keeps
  a one-line pointer.
- Un-ignore .claude/rules/ so the guide auto-attaches in any clone, while
  .claude/ local state (worktrees, plans) stays ignored.
2026-06-13 14:58:05 -05:00

1.7 KiB

paths
paths
server/providers/relay.js
server/relay-capabilities.js
server/relay-default.js
server/billing-routes.js
server/credits-purchase.js
server/subscription-reminders.js
server/config.js

Client-side contract with the relay

Endpoint shapes + auth model are documented canonically in ../recap-relay/AGENTS.md. The client side is:

  • Env varsRECAP_RELAY_BASE_URL (default https://relay.recaps.cc) + RECAP_RELAY_OPERATOR_KEY (matches the relay's relay_cloud_operator_key). Both gitignored; reference names, never values. Resolved in server/relay-default.js and server/config.js.
  • Auth direction (what the client SENDS) — cloud calls send X-Recap-Operator-Key + X-Recap-User-Id; self-hosted calls send X-Recap-Install-Id (+ optional Authorization: <license>). Set the same X-Recap-Job-Id on transcribe + analyze in one summary so the relay bills one credit, not two.
  • Endpoints called/relay/{transcribe, transcribe-url, jobs/:id, summarize-url, summarize-url/:jobId/events, analyze, tts, balance, capabilities, policy, credits/packages, credits/buy, credits/invoice/:id, user-tier, user-tier/:id, tier-invoice, tier-zaprite-order, tier-plans, expiring-subscriptions}. Settle webhooks land on the relay side, never here.
  • Filesserver/providers/relay.js (transcribe/summarize/analyze/tts + balance + tier reads/writes), server/relay-capabilities.js (capabilities poll), server/billing-routes.js (tier purchase orchestration), server/credits-purchase.js (credit-pack purchase proxy), server/subscription-reminders.js (polls /relay/expiring-subscriptions). (/relay/policy is a small inline proxy in index.js.)