learning_ai_common_plat/README.md
saravanakumardb1 a383b245e5 ci: disable GitHub Actions and add manual quality checks
- Disable CI workflows due to billing issues
- Add quick-check.sh script for 5-min pre-push validation
- Add MANUAL_CI.md with comprehensive instructions
- Update README with CI disabled notice
- Production readiness workflow updated with manual check note
2026-02-12 23:13:07 -08:00

134 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ByteLyst Common Platform
> Shared packages and microservices for ByteLyst ecosystem products.
## ⚠️ GitHub Actions Temporarily Disabled
CI/CD is currently disabled due to billing issues. Please run manual quality checks before merging:
- See [MANUAL_CI.md](./MANUAL_CI.md) for instructions
- Use `.windsurf/workflows/production-readiness.md` for comprehensive checks
## Quick Start
```bash
# Install dependencies
pnpm install
# Build all packages + services
pnpm build
# Quick quality check (5 min) - run before pushing!
./quick-check.sh
# Run all tests (165 total across packages + services)
pnpm test
# Type-check all packages
pnpm typecheck
# Run a specific service in dev mode
pnpm --filter @lysnrai/platform-service dev
```
## Repository Structure
```
learning_ai_common_plat/
├── packages/ # Shared libraries (@bytelyst/*)
│ ├── errors/ # Typed HTTP service errors (400429)
│ ├── cosmos/ # Azure Cosmos DB client + container registry
│ ├── config/ # Zod env loader + product identity
│ ├── auth/ # JWT, middleware, password hashing
│ ├── api-client/ # Configurable fetch wrapper
│ ├── react-auth/ # React auth context factory
│ └── design-tokens/ # Cross-platform tokens (JSON → CSS/TS/Kotlin/Swift)
├── services/ # Product-agnostic microservices
│ ├── platform-service/ # Auth, audit, flags, notifications, blob (port 4003)
│ ├── billing-service/ # Subscriptions, Stripe, usage, licenses (port 4002)
│ ├── growth-service/ # Invitations, referrals, promos (port 4001)
│ ├── tracker-service/ # Items, comments, votes, public roadmap (port 4004)
│ └── monitoring/ # Loki + Grafana config, health-check
└── docs/ # Architecture docs, roadmap, analysis
```
## Shared Libraries
| Package | Description | Peer Dependencies |
| ------------------------- | --------------------------------------------------------- | ------------------ |
| `@bytelyst/errors` | Typed HTTP service errors (400429) | — |
| `@bytelyst/cosmos` | Azure Cosmos DB client singleton + container registry | `@azure/cosmos` |
| `@bytelyst/config` | Zod-based env config loader + product identity | `zod` |
| `@bytelyst/auth` | JWT utilities, auth middleware, password hashing | `jose`, `bcryptjs` |
| `@bytelyst/api-client` | Configurable fetch wrapper with auth token injection | — |
| `@bytelyst/react-auth` | React auth context factory (typed provider + hook) | `react` |
| `@bytelyst/design-tokens` | Cross-platform design tokens (JSON → CSS/TS/Kotlin/Swift) | — |
## Shared Services
| Service | Port | Description | Tests |
| ------------------ | ---- | --------------------------------------------------------------- | ----- |
| `platform-service` | 4003 | Auth, audit, feature flags, notifications, blob storage | 55 |
| `billing-service` | 4002 | Subscriptions, Stripe webhooks, usage tracking, licenses, plans | 32 |
| `growth-service` | 4001 | Invitations, referrals, promo codes | 33 |
| `tracker-service` | 4004 | Feature requests, bugs, tasks, public roadmap | 45 |
| `monitoring` | — | Loki + Grafana dashboards, health-check script | — |
All services are **product-agnostic** — every Cosmos document includes a `productId` field, so a single deployment serves LysnrAI, MindLyst, or any future product.
## Quick Start
```bash
# Install dependencies
pnpm install
# Build all packages + services
pnpm build
# Quick quality check (5 min) - run before pushing!
./quick-check.sh
# Run all tests (165 total across packages + services)
pnpm test
# Type-check all packages
pnpm typecheck
# Run a specific service in dev mode
pnpm --filter @lysnrai/platform-service dev
```
## Consuming Libraries from Product Repos
During development, use `file:` references in consumer `package.json`:
```jsonc
// From a Next.js dashboard at repo root (2 levels up):
"@bytelyst/errors": "file:../../learning_ai_common_plat/packages/errors"
// From MindLyst web (3 levels up — inside mindlyst-native/web/):
"@bytelyst/design-tokens": "file:../../../learning_ai_common_plat/packages/design-tokens"
```
All repos must be cloned side-by-side under the same parent directory.
## Design Tokens
Generate platform-specific token files from the canonical JSON:
```bash
cd packages/design-tokens
pnpm generate
```
Outputs in `packages/design-tokens/generated/`:
- `tokens.css` — CSS custom properties (`--ml-*`)
- `tokens.ts` — TypeScript constants
- `MindLystTokens.kt` — Kotlin object for KMP
- `MindLystTheme.swift` — Swift structs for SwiftUI
## Roadmap
See [docs/ROADMAP.md](docs/ROADMAP.md) for the full phased extraction plan.