HomePilot Deploy Bot
fix(hf): include packages/ in Space bundle so frontend build resolves @homepilot/*
302854a unverified
packages/ — the single source of truth
Status: design-only. This folder documents the shared-package catalog; the packages are not implemented yet. Standing them up is additive (Phase M1) and breaks nothing. Full design:
../docs/design/MONOREPO_AND_WAVE_B.md.
Every app in ../apps/* (and the legacy ../frontend, ../desktop) consumes
these internal packages via the workspace protocol ("@homepilot/x": "workspace:*"),
so there is no version drift — a change here propagates to web, desktop, and
mobile on their next build.
Catalog
| Package | Owns | Representative exports |
|---|---|---|
@homepilot/types |
Shared DTOs | Persona, Job, JobEvent, Artifact, ComputeStatus, Device, SupplierPolicy, CreditsWallet |
@homepilot/config |
Env, constants, client feature flags | getBaseUrl(), flags.sharingTiers, flags.computeModeDefault |
@homepilot/api-client |
Base HTTP (auth header, retries, errors, transport port) | createClient({ baseUrl, tokenProvider, fetchImpl }) |
@homepilot/auth |
Login, sessions, device pairing, token-storage port | signIn, signOut, useSession, startPairing, TokenStorage |
@homepilot/compute-client |
Jobs, progress, devices, policy, credits | createImageJob, createVideoJob, editImage, getJobStatus, subscribeToJobEvents, getComputeStatus, listUserDevices, getDevicePolicy, setDevicePolicy, getWallet |
@homepilot/core |
Domain/product logic | personas, generation-request builders, zod validation, analytics events |
@homepilot/ui |
Design tokens (+ optional primitives) | tokens (color/spacing/type/motion) |
Golden rules
- No platform APIs in packages. Declare a port (interface); each app injects
the adapter (
TokenStorage,fetchImpl,EventTransport,Notifier). This keeps shared code pure, testable, and identical across platforms. - Types flow down, never up. Apps import
@homepilot/types; packages never import from apps. compute-clientis the Wave A/B heart. Job creation, progress handling, the compute-status pill data, and Batch 8's device/policy logic live here once and are shared by all apps.