HomePilot / packages /README.md
HomePilot Deploy Bot
fix(hf): include packages/ in Space bundle so frontend build resolves @homepilot/*
302854a unverified
|
Raw
History Blame Contribute Delete
2.27 kB

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

  1. 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.
  2. Types flow down, never up. Apps import @homepilot/types; packages never import from apps.
  3. compute-client is 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.